/**
 * @license
 * Cesium - https://github.com/CesiumGS/cesium
 * Version 1.123
 *
 * Copyright 2011-2022 Cesium Contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Columbus View (Pat. Pend.)
 *
 * Portions licensed separately.
 * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
 */

var wEe=Object.create;var eV=Object.defineProperty;var DEe=Object.getOwnPropertyDescriptor;var IEe=Object.getOwnPropertyNames;var PEe=Object.getPrototypeOf,REe=Object.prototype.hasOwnProperty;var OEe=(e,t)=>()=>(e&&(t=e(e=0)),t);var qn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),BQ=(e,t)=>{for(var n in t)eV(e,n,{get:t[n],enumerable:!0})},kQ=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of IEe(t))!REe.call(e,o)&&o!==n&&eV(e,o,{get:()=>t[o],enumerable:!(i=DEe(t,o))||i.enumerable});return e};var Vo=(e,t,n)=>(n=e!=null?wEe(PEe(e)):{},kQ(t||!e||!e.__esModule?eV(n,"default",{value:e,enumerable:!0}):n,e)),Xh=e=>kQ(eV({},"__esModule",{value:!0}),e);var tV=qn((Xvt,UQ)=>{var pp=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)};pp.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}};pp.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};pp.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};pp.prototype.random_int31=function(){return this.random_int()>>>1};pp.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};pp.prototype.random=function(){return this.random_int()*(1/4294967296)};pp.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};pp.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};UQ.exports=pp});var fJ=qn((BC,kC)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof BC=="object"&&BC&&!BC.nodeType&&BC,n=typeof kC=="object"&&kC&&!kC.nodeType&&kC,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,u=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"},C=s-a,A=Math.floor,E=String.fromCharCode,v;function D(V){throw new RangeError(T[V])}function O(V,G){for(var k=V.length,W=[];k--;)W[k]=G(V[k]);return W}function R(V,G){var k=V.split("@"),W="";k.length>1&&(W=k[0]+"@",V=k[1]),V=V.replace(b,".");var q=V.split("."),J=O(q,G).join(".");return W+J}function M(V){for(var G=[],k=0,W=V.length,q,J;k<W;)q=V.charCodeAt(k++),q>=55296&&q<=56319&&k<W?(J=V.charCodeAt(k++),(J&64512)==56320?G.push(((q&1023)<<10)+(J&1023)+65536):(G.push(q),k--)):G.push(q);return G}function N(V){return O(V,function(G){var k="";return G>65535&&(G-=65536,k+=E(G>>>10&1023|55296),G=56320|G&1023),k+=E(G),k}).join("")}function _(V){return V-48<10?V-22:V-65<26?V-65:V-97<26?V-97:s}function S(V,G){return V+22+75*(V<26)-((G!=0)<<5)}function w(V,G,k){var W=0;for(V=k?A(V/f):V>>1,V+=A(V/G);V>C*c>>1;W+=s)V=A(V/C);return A(W+(C+1)*V/(V+u))}function I(V){var G=[],k=V.length,W,q=0,J=p,j=d,K,Q,de,ye,ae,_e,xe,De,Ae;for(K=V.lastIndexOf(g),K<0&&(K=0),Q=0;Q<K;++Q)V.charCodeAt(Q)>=128&&D("not-basic"),G.push(V.charCodeAt(Q));for(de=K>0?K+1:0;de<k;){for(ye=q,ae=1,_e=s;de>=k&&D("invalid-input"),xe=_(V.charCodeAt(de++)),(xe>=s||xe>A((r-q)/ae))&&D("overflow"),q+=xe*ae,De=_e<=j?a:_e>=j+c?c:_e-j,!(xe<De);_e+=s)Ae=s-De,ae>A(r/Ae)&&D("overflow"),ae*=Ae;W=G.length+1,j=w(q-ye,W,ye==0),A(q/W)>r-J&&D("overflow"),J+=A(q/W),q%=W,G.splice(q++,0,J)}return N(G)}function L(V){var G,k,W,q,J,j,K,Q,de,ye,ae,_e=[],xe,De,Ae,ke;for(V=M(V),xe=V.length,G=p,k=0,J=d,j=0;j<xe;++j)ae=V[j],ae<128&&_e.push(E(ae));for(W=q=_e.length,q&&_e.push(g);W<xe;){for(K=r,j=0;j<xe;++j)ae=V[j],ae>=G&&ae<K&&(K=ae);for(De=W+1,K-G>A((r-k)/De)&&D("overflow"),k+=(K-G)*De,G=K,j=0;j<xe;++j)if(ae=V[j],ae<G&&++k>r&&D("overflow"),ae==G){for(Q=k,de=s;ye=de<=J?a:de>=J+c?c:de-J,!(Q<ye);de+=s)ke=Q-ye,Ae=s-ye,_e.push(E(S(ye+ke%Ae,0))),Q=A(ke/Ae);_e.push(E(S(Q,0))),J=w(k,De,W==q),k=0,++W}++k,++G}return _e.join("")}function B(V){return R(V,function(G){return m.test(G)?I(G.slice(4).toLowerCase()):G})}function U(V){return R(V,function(G){return x.test(G)?"xn--"+L(G):G})}if(o={version:"1.3.2",ucs2:{decode:M,encode:N},decode:I,encode:L,toASCII:U,toUnicode:B},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(kC.exports==t)n.exports=o;else for(v in o)o.hasOwnProperty(v)&&(t[v]=o[v]);else e.punycode=o})(BC)});var hJ=qn((dJ,TV)=>{/*!
 * URI.js - Mutating URLs
 * IPv6 Support
 *
 * Version: 1.19.11
 *
 * Author: Rodney Rehm
 * Web: http://medialize.github.io/URI.js/
 *
 * Licensed under
 *   MIT License http://www.opensource.org/licenses/mit-license
 *
 */(function(e,t){"use strict";typeof TV=="object"&&TV.exports?TV.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(dJ,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 u;for(u=0;u<a&&s[u]!=="";u++);if(u<c)for(s.splice(u,1,"0000");s.length<c;)s.splice(u,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 C="";for(s[0]===""&&(C=":"),d=0;d<a&&(C+=s[d],d!==a-1);d++)C+=":";return s[a-1]===""&&(C+=":"),C}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var pJ=qn((mJ,CV)=>{/*!
 * URI.js - Mutating URLs
 * Second Level Domain (SLD) Support
 *
 * Version: 1.19.11
 *
 * Author: Rodney Rehm
 * Web: http://medialize.github.io/URI.js/
 *
 * Licensed under
 *   MIT License http://www.opensource.org/licenses/mit-license
 *
 */(function(e,t){"use strict";typeof CV=="object"&&CV.exports?CV.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(mJ,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 au=qn((_J,AV)=>{/*!
 * URI.js - Mutating URLs
 *
 * Version: 1.19.11
 *
 * Author: Rodney Rehm
 * Web: http://medialize.github.io/URI.js/
 *
 * Licensed under
 *   MIT License http://www.opensource.org/licenses/mit-license
 *
 */(function(e,t){"use strict";typeof AV=="object"&&AV.exports?AV.exports=t(fJ(),hJ(),pJ()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(_J,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(S,w){var I=arguments.length>=1,L=arguments.length>=2;if(!(this instanceof r))return I?L?new r(S,w):new r(S):new r;if(S===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?S=location.href+"":S=""}if(S===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(S),w!==void 0?this.absoluteTo(w):this}function s(S){return/^[0-9]+$/.test(S)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function u(S){return S.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(S){return S===void 0?"Undefined":String(Object.prototype.toString.call(S)).slice(8,-1)}function d(S){return f(S)==="Array"}function p(S,w){var I={},L,B;if(f(w)==="RegExp")I=null;else if(d(w))for(L=0,B=w.length;L<B;L++)I[w[L]]=!0;else I[w]=!0;for(L=0,B=S.length;L<B;L++){var U=I&&I[S[L]]!==void 0||!I&&w.test(S[L]);U&&(S.splice(L,1),B--,L--)}return S}function g(S,w){var I,L;if(d(w)){for(I=0,L=w.length;I<L;I++)if(!g(S,w[I]))return!1;return!0}var B=f(w);for(I=0,L=S.length;I<L;I++)if(B==="RegExp"){if(typeof S[I]=="string"&&S[I].match(w))return!0}else if(S[I]===w)return!0;return!1}function m(S,w){if(!d(S)||!d(w)||S.length!==w.length)return!1;S.sort(),w.sort();for(var I=0,L=S.length;I<L;I++)if(S[I]!==w[I])return!1;return!0}function x(S){var w=/^\/+|\/+$/g;return S.replace(w,"")}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(S){if(!(!S||!S.nodeName)){var w=S.nodeName.toLowerCase();if(!(w==="input"&&S.type!=="image"))return r.domAttributes[w]}};function b(S){return escape(S)}function T(S){return encodeURIComponent(S).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(S,w){var I=r.encode(S+"");return w===void 0&&(w=r.escapeQuerySpace),w?I.replace(/%20/g,"+"):I},r.decodeQuery=function(S,w){S+="",w===void 0&&(w=r.escapeQuerySpace);try{return r.decode(w?S.replace(/\+/g,"%20"):S)}catch{return S}};var C={encode:"encode",decode:"decode"},A,E=function(S,w){return function(I){try{return r[w](I+"").replace(r.characters[S][w].expression,function(L){return r.characters[S][w].map[L]})}catch{return I}}};for(A in C)r[A+"PathSegment"]=E("pathname",C[A]),r[A+"UrnPathSegment"]=E("urnpath",C[A]);var v=function(S,w,I){return function(L){var B;I?B=function(k){return r[w](r[I](k))}:B=r[w];for(var U=(L+"").split(S),V=0,G=U.length;V<G;V++)U[V]=B(U[V]);return U.join(S)}};r.decodePath=v("/","decodePathSegment"),r.decodeUrnPath=v(":","decodeUrnPathSegment"),r.recodePath=v("/","encodePathSegment","decode"),r.recodeUrnPath=v(":","encodeUrnPathSegment","decode"),r.encodeReserved=E("reserved","encode"),r.parse=function(S,w){var I;return w||(w={preventInvalidHostname:r.preventInvalidHostname}),S=S.replace(r.leading_whitespace_expression,""),S=S.replace(r.ascii_tab_whitespace,""),I=S.indexOf("#"),I>-1&&(w.fragment=S.substring(I+1)||null,S=S.substring(0,I)),I=S.indexOf("?"),I>-1&&(w.query=S.substring(I+1)||null,S=S.substring(0,I)),S=S.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),S=S.replace(/^[/\\]{2,}/i,"//"),S.substring(0,2)==="//"?(w.protocol=null,S=S.substring(2),S=r.parseAuthority(S,w)):(I=S.indexOf(":"),I>-1&&(w.protocol=S.substring(0,I)||null,w.protocol&&!w.protocol.match(r.protocol_expression)?w.protocol=void 0:S.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(S=S.substring(I+3),S=r.parseAuthority(S,w)):(S=S.substring(I+1),w.urn=!0))),w.path=S,w},r.parseHost=function(S,w){S||(S=""),S=S.replace(/\\/g,"/");var I=S.indexOf("/"),L,B;if(I===-1&&(I=S.length),S.charAt(0)==="[")L=S.indexOf("]"),w.hostname=S.substring(1,L)||null,w.port=S.substring(L+2,I)||null,w.port==="/"&&(w.port=null);else{var U=S.indexOf(":"),V=S.indexOf("/"),G=S.indexOf(":",U+1);G!==-1&&(V===-1||G<V)?(w.hostname=S.substring(0,I)||null,w.port=null):(B=S.substring(0,I).split(":"),w.hostname=B[0]||null,w.port=B[1]||null)}return w.hostname&&S.substring(I).charAt(0)!=="/"&&(I++,S="/"+S),w.preventInvalidHostname&&r.ensureValidHostname(w.hostname,w.protocol),w.port&&r.ensureValidPort(w.port),S.substring(I)||"/"},r.parseAuthority=function(S,w){return S=r.parseUserinfo(S,w),r.parseHost(S,w)},r.parseUserinfo=function(S,w){var I=S,L=S.indexOf("\\");L!==-1&&(S=S.replace(/\\/g,"/"));var B=S.indexOf("/"),U=S.lastIndexOf("@",B>-1?B:S.length-1),V;return U>-1&&(B===-1||U<B)?(V=S.substring(0,U).split(":"),w.username=V[0]?r.decode(V[0]):null,V.shift(),w.password=V[0]?r.decode(V.join(":")):null,S=I.substring(U+1)):(w.username=null,w.password=null),S},r.parseQuery=function(S,w){if(!S)return{};if(S=S.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!S)return{};for(var I={},L=S.split("&"),B=L.length,U,V,G,k=0;k<B;k++)U=L[k].split("="),V=r.decodeQuery(U.shift(),w),G=U.length?r.decodeQuery(U.join("="),w):null,V!=="__proto__"&&(c.call(I,V)?((typeof I[V]=="string"||I[V]===null)&&(I[V]=[I[V]]),I[V].push(G)):I[V]=G);return I},r.build=function(S){var w="",I=!1;return S.protocol&&(w+=S.protocol+":"),!S.urn&&(w||S.hostname)&&(w+="//",I=!0),w+=r.buildAuthority(S)||"",typeof S.path=="string"&&(S.path.charAt(0)!=="/"&&I&&(w+="/"),w+=S.path),typeof S.query=="string"&&S.query&&(w+="?"+S.query),typeof S.fragment=="string"&&S.fragment&&(w+="#"+S.fragment),w},r.buildHost=function(S){var w="";if(S.hostname)r.ip6_expression.test(S.hostname)?w+="["+S.hostname+"]":w+=S.hostname;else return"";return S.port&&(w+=":"+S.port),w},r.buildAuthority=function(S){return r.buildUserinfo(S)+r.buildHost(S)},r.buildUserinfo=function(S){var w="";return S.username&&(w+=r.encode(S.username)),S.password&&(w+=":"+r.encode(S.password)),w&&(w+="@"),w},r.buildQuery=function(S,w,I){var L="",B,U,V,G;for(U in S)if(U!=="__proto__"&&c.call(S,U))if(d(S[U]))for(B={},V=0,G=S[U].length;V<G;V++)S[U][V]!==void 0&&B[S[U][V]+""]===void 0&&(L+="&"+r.buildQueryParameter(U,S[U][V],I),w!==!0&&(B[S[U][V]+""]=!0));else S[U]!==void 0&&(L+="&"+r.buildQueryParameter(U,S[U],I));return L.substring(1)},r.buildQueryParameter=function(S,w,I){return r.encodeQuery(S,I)+(w!==null?"="+r.encodeQuery(w,I):"")},r.addQuery=function(S,w,I){if(typeof w=="object")for(var L in w)c.call(w,L)&&r.addQuery(S,L,w[L]);else if(typeof w=="string"){if(S[w]===void 0){S[w]=I;return}else typeof S[w]=="string"&&(S[w]=[S[w]]);d(I)||(I=[I]),S[w]=(S[w]||[]).concat(I)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(S,w,I){if(typeof w=="object")for(var L in w)c.call(w,L)&&r.setQuery(S,L,w[L]);else if(typeof w=="string")S[w]=I===void 0?null:I;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(S,w,I){var L,B,U;if(d(w))for(L=0,B=w.length;L<B;L++)S[w[L]]=void 0;else if(f(w)==="RegExp")for(U in S)w.test(U)&&(S[U]=void 0);else if(typeof w=="object")for(U in w)c.call(w,U)&&r.removeQuery(S,U,w[U]);else if(typeof w=="string")I!==void 0?f(I)==="RegExp"?!d(S[w])&&I.test(S[w])?S[w]=void 0:S[w]=p(S[w],I):S[w]===String(I)&&(!d(I)||I.length===1)?S[w]=void 0:d(S[w])&&(S[w]=p(S[w],I)):S[w]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(S,w,I,L){switch(f(w)){case"String":break;case"RegExp":for(var B in S)if(c.call(S,B)&&w.test(B)&&(I===void 0||r.hasQuery(S,B,I)))return!0;return!1;case"Object":for(var U in w)if(c.call(w,U)&&!r.hasQuery(S,U,w[U]))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 w in S;case"Boolean":var V=!!(d(S[w])?S[w].length:S[w]);return I===V;case"Function":return!!I(S[w],w,S);case"Array":if(!d(S[w]))return!1;var G=L?g:m;return G(S[w],I);case"RegExp":return d(S[w])?L?g(S[w],I):!1:!!(S[w]&&S[w].match(I));case"Number":I=String(I);case"String":return d(S[w])?L?g(S[w],I):!1:S[w]===I;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var S=[],w=[],I=0,L=0;L<arguments.length;L++){var B=new r(arguments[L]);S.push(B);for(var U=B.segment(),V=0;V<U.length;V++)typeof U[V]=="string"&&w.push(U[V]),U[V]&&I++}if(!w.length||!I)return new r("");var G=new r("").segment(w);return(S[0].path()===""||S[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},r.commonPath=function(S,w){var I=Math.min(S.length,w.length),L;for(L=0;L<I;L++)if(S.charAt(L)!==w.charAt(L)){L--;break}return L<1?S.charAt(0)===w.charAt(0)&&S.charAt(0)==="/"?"/":"":((S.charAt(L)!=="/"||w.charAt(L)!=="/")&&(L=S.substring(0,L).lastIndexOf("/")),S.substring(0,L+1))},r.withinString=function(S,w,I){I||(I={});var L=I.start||r.findUri.start,B=I.end||r.findUri.end,U=I.trim||r.findUri.trim,V=I.parens||r.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(L.lastIndex=0;;){var k=L.exec(S);if(!k)break;var W=k.index;if(I.ignoreHtml){var q=S.slice(Math.max(W-3,0),W);if(q&&G.test(q))continue}for(var J=W+S.slice(W).search(B),j=S.slice(W,J),K=-1;;){var Q=V.exec(j);if(!Q)break;var de=Q.index+Q[0].length;K=Math.max(K,de)}if(K>-1?j=j.slice(0,K)+j.slice(K).replace(U,""):j=j.replace(U,""),!(j.length<=k[0].length)&&!(I.ignore&&I.ignore.test(j))){J=W+j.length;var ye=w(j,W,J,S);if(ye===void 0){L.lastIndex=J;continue}ye=String(ye),S=S.slice(0,W)+ye+S.slice(J),L.lastIndex=W+ye.length}}return L.lastIndex=0,S},r.ensureValidHostname=function(S,w){var I=!!S,L=!!w,B=!1;if(L&&(B=g(r.hostProtocols,w)),B&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+w);if(S&&S.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(S).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(S){if(S){var w=Number(S);if(!(s(w)&&w>0&&w<65536))throw new TypeError('Port "'+S+'" is not a valid port')}},r.noConflict=function(S){if(S){var w={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(w.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(w.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(w.SecondLevelDomains=i.SecondLevelDomains.noConflict()),w}else i.URI===this&&(i.URI=o);return this},a.build=function(S){return S===!0?this._deferred_build=!0:(S===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(S){return function(w,I){return w===void 0?this._parts[S]||"":(this._parts[S]=w||null,this.build(!I),this)}}function O(S,w){return function(I,L){return I===void 0?this._parts[S]||"":(I!==null&&(I=I+"",I.charAt(0)===w&&(I=I.substring(1))),this._parts[S]=I,this.build(!L),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(S,w){var I=this.query(S,w);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(S,w){var I=this.fragment(S,w);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(S,w){if(S===void 0||S===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return S?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=S?r.recodeUrnPath(S):"":this._parts.path=S?r.recodePath(S):"/",this.build(!w),this},a.path=a.pathname,a.href=function(S,w){var I;if(S===void 0)return this.toString();this._string="",this._parts=r._parts();var L=S instanceof r,B=typeof S=="object"&&(S.hostname||S.path||S.pathname);if(S.nodeName){var U=r.getDomAttribute(S);S=S[U]||"",B=!1}if(!L&&B&&S.pathname!==void 0&&(S=S.toString()),typeof S=="string"||S instanceof String)this._parts=r.parse(String(S),this._parts);else if(L||B){var V=L?S._parts:S;for(I in V)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=V[I]);V.query&&this.query(V.query,!1)}else throw new TypeError("invalid input");return this.build(!w),this},a.is=function(S){var w=!1,I=!1,L=!1,B=!1,U=!1,V=!1,G=!1,k=!this._parts.urn;switch(this._parts.hostname&&(k=!1,I=r.ip4_expression.test(this._parts.hostname),L=r.ip6_expression.test(this._parts.hostname),w=I||L,B=!w,U=B&&n&&n.has(this._parts.hostname),V=B&&r.idn_expression.test(this._parts.hostname),G=B&&r.punycode_expression.test(this._parts.hostname)),S.toLowerCase()){case"relative":return k;case"absolute":return!k;case"domain":case"name":return B;case"sld":return U;case"ip":return w;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return L;case"idn":return V;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var R=a.protocol,M=a.port,N=a.hostname;a.protocol=function(S,w){if(S&&(S=S.replace(/:(\/\/)?$/,""),!S.match(r.protocol_expression)))throw new TypeError('Protocol "'+S+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return R.call(this,S,w)},a.scheme=a.protocol,a.port=function(S,w){return this._parts.urn?S===void 0?"":this:(S!==void 0&&(S===0&&(S=null),S&&(S+="",S.charAt(0)===":"&&(S=S.substring(1)),r.ensureValidPort(S))),M.call(this,S,w))},a.hostname=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},L=r.parseHost(S,I);if(L!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');S=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(S,this._parts.protocol)}return N.call(this,S,w)},a.origin=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){var I=this.protocol(),L=this.authority();return L?(I?I+"://":"")+this.authority():""}else{var B=r(S);return this.protocol(B.protocol()).authority(B.authority()).build(!w),this}},a.host=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(S,this._parts);if(I!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.authority=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(S,this._parts);if(I!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.userinfo=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return S[S.length-1]!=="@"&&(S+="@"),r.parseUserinfo(S,this._parts),this.build(!w),this},a.resource=function(S,w){var I;return S===void 0?this.path()+this.search()+this.hash():(I=r.parse(S),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!w),this)},a.subdomain=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===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 L=this._parts.hostname.length-this.domain().length,B=this._parts.hostname.substring(0,L),U=new RegExp("^"+u(B));if(S&&S.charAt(S.length-1)!=="."&&(S+="."),S.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return S&&r.ensureValidHostname(S,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(U,S),this.build(!w),this}},a.domain=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S=="boolean"&&(w=S,S=void 0),S===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 L=this._parts.hostname.length-this.tld(w).length-1;return L=this._parts.hostname.lastIndexOf(".",L-1)+1,this._parts.hostname.substring(L)||""}else{if(!S)throw new TypeError("cannot set domain empty");if(S.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(S,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=S;else{var B=new RegExp(u(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(B,S)}return this.build(!w),this}},a.tld=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S=="boolean"&&(w=S,S=void 0),S===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),L=this._parts.hostname.substring(I+1);return w!==!0&&n&&n.list[L.toLowerCase()]&&n.get(this._parts.hostname)||L}else{var B;if(S)if(S.match(/[^a-zA-Z0-9-]/))if(n&&n.is(S))B=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,S);else throw new TypeError('TLD "'+S+'" 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(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,S)}else throw new TypeError("cannot set TLD empty");return this.build(!w),this}},a.directory=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0||S===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,L=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return S?r.decodePath(L):L}else{var B=this._parts.path.length-this.filename().length,U=this._parts.path.substring(0,B),V=new RegExp("^"+u(U));return this.is("relative")||(S||(S="/"),S.charAt(0)!=="/"&&(S="/"+S)),S&&S.charAt(S.length-1)!=="/"&&(S+="/"),S=r.recodePath(S),this._parts.path=this._parts.path.replace(V,S),this.build(!w),this}},a.filename=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),L=this._parts.path.substring(I+1);return S?r.decodePathSegment(L):L}else{var B=!1;S.charAt(0)==="/"&&(S=S.substring(1)),S.match(/\.?\//)&&(B=!0);var U=new RegExp(u(this.filename())+"$");return S=r.recodePath(S),this._parts.path=this._parts.path.replace(U,S),B?this.normalizePath(w):this.build(!w),this}},a.suffix=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0||S===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),L=I.lastIndexOf("."),B,U;return L===-1?"":(B=I.substring(L+1),U=/^[a-z0-9%]+$/i.test(B)?B:"",S?r.decodePathSegment(U):U)}else{S.charAt(0)==="."&&(S=S.substring(1));var V=this.suffix(),G;if(V)S?G=new RegExp(u(V)+"$"):G=new RegExp(u("."+V)+"$");else{if(!S)return this;this._parts.path+="."+r.recodePath(S)}return G&&(S=r.recodePath(S),this._parts.path=this._parts.path.replace(G,S)),this.build(!w),this}},a.segment=function(S,w,I){var L=this._parts.urn?":":"/",B=this.path(),U=B.substring(0,1)==="/",V=B.split(L);if(S!==void 0&&typeof S!="number"&&(I=w,w=S,S=void 0),S!==void 0&&typeof S!="number")throw new Error('Bad segment "'+S+'", must be 0-based integer');if(U&&V.shift(),S<0&&(S=Math.max(V.length+S,0)),w===void 0)return S===void 0?V:V[S];if(S===null||V[S]===void 0)if(d(w)){V=[];for(var G=0,k=w.length;G<k;G++)!w[G].length&&(!V.length||!V[V.length-1].length)||(V.length&&!V[V.length-1].length&&V.pop(),V.push(x(w[G])))}else(w||typeof w=="string")&&(w=x(w),V[V.length-1]===""?V[V.length-1]=w:V.push(w));else w?V[S]=x(w):V.splice(S,1);return U&&V.unshift(""),this.path(V.join(L),I)},a.segmentCoded=function(S,w,I){var L,B,U;if(typeof S!="number"&&(I=w,w=S,S=void 0),w===void 0){if(L=this.segment(S,w,I),!d(L))L=L!==void 0?r.decode(L):void 0;else for(B=0,U=L.length;B<U;B++)L[B]=r.decode(L[B]);return L}if(!d(w))w=typeof w=="string"||w instanceof String?r.encode(w):w;else for(B=0,U=w.length;B<U;B++)w[B]=r.encode(w[B]);return this.segment(S,w,I)};var _=a.query;return a.query=function(S,w){if(S===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof S=="function"){var I=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),L=S.call(this,I);return this._parts.query=r.buildQuery(L||I,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this}else return S!==void 0&&typeof S!="string"?(this._parts.query=r.buildQuery(S,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this):_.call(this,S,w)},a.setQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof S=="string"||S instanceof String)L[S]=w!==void 0?w:null;else if(typeof S=="object")for(var B in S)c.call(S,B)&&(L[B]=S[B]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=r.buildQuery(L,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(I=w),this.build(!I),this},a.addQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(L,S,w===void 0?null:w),this._parts.query=r.buildQuery(L,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(I=w),this.build(!I),this},a.removeQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(L,S,w),this._parts.query=r.buildQuery(L,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(I=w),this.build(!I),this},a.hasQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(L,S,w,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(S){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!S)),this},a.normalizeHostname=function(S){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(!S)),this},a.normalizePort=function(S){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!S)),this},a.normalizePath=function(S){var w=this._parts.path;if(!w)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!S),this;if(this._parts.path==="/")return this;w=r.recodePath(w);var I,L="",B,U;for(w.charAt(0)!=="/"&&(I=!0,w="/"+w),(w.slice(-3)==="/.."||w.slice(-2)==="/.")&&(w+="/"),w=w.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),I&&(L=w.substring(1).match(/^(\.\.\/)+/)||"",L&&(L=L[0]));B=w.search(/\/\.\.(\/|$)/),B!==-1;){if(B===0){w=w.substring(3);continue}U=w.substring(0,B).lastIndexOf("/"),U===-1&&(U=B),w=w.substring(0,U)+w.substring(B+3)}return I&&this.is("relative")&&(w=L+w.substring(1)),this._parts.path=w,this.build(!S),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(S){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(!S)),this},a.normalizeFragment=function(S){return this._parts.fragment||(this._parts.fragment=null,this.build(!S)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var S=r.encode,w=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=S,r.decode=w}return this},a.unicode=function(){var S=r.encode,w=r.decode;r.encode=T,r.decode=unescape;try{this.normalize()}finally{r.encode=S,r.decode=w}return this},a.readable=function(){var S=this.clone();S.username("").password("").normalize();var w="";if(S._parts.protocol&&(w+=S._parts.protocol+"://"),S._parts.hostname&&(S.is("punycode")&&e?(w+=e.toUnicode(S._parts.hostname),S._parts.port&&(w+=":"+S._parts.port)):w+=S.host()),S._parts.hostname&&S._parts.path&&S._parts.path.charAt(0)!=="/"&&(w+="/"),w+=S.path(!0),S._parts.query){for(var I="",L=0,B=S._parts.query.split("&"),U=B.length;L<U;L++){var V=(B[L]||"").split("=");I+="&"+r.decodeQuery(V[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),V[1]!==void 0&&(I+="="+r.decodeQuery(V[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}w+="?"+I.substring(1)}return w+=r.decodeQuery(S.hash(),!0),w},a.absoluteTo=function(S){var w=this.clone(),I=["protocol","username","password","hostname","port"],L,B,U;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(S instanceof r||(S=new r(S)),w._parts.protocol||(w._parts.protocol=S._parts.protocol,this._parts.hostname))return w;for(B=0;U=I[B];B++)w._parts[U]=S._parts[U];return w._parts.path?(w._parts.path.substring(-2)===".."&&(w._parts.path+="/"),w.path().charAt(0)!=="/"&&(L=S.directory(),L=L||(S.path().indexOf("/")===0?"/":""),w._parts.path=(L?L+"/":"")+w._parts.path,w.normalizePath())):(w._parts.path=S._parts.path,w._parts.query||(w._parts.query=S._parts.query)),w.build(),w},a.relativeTo=function(S){var w=this.clone().normalize(),I,L,B,U,V;if(w._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(S=new r(S).normalize(),I=w._parts,L=S._parts,U=w.path(),V=S.path(),U.charAt(0)!=="/")throw new Error("URI is already relative");if(V.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(I.protocol===L.protocol&&(I.protocol=null),I.username!==L.username||I.password!==L.password||I.protocol!==null||I.username!==null||I.password!==null)return w.build();if(I.hostname===L.hostname&&I.port===L.port)I.hostname=null,I.port=null;else return w.build();if(U===V)return I.path="",w.build();if(B=r.commonPath(U,V),!B)return w.build();var G=L.path.substring(B.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return I.path=G+I.path.substring(B.length)||"./",w.build()},a.equals=function(S){var w=this.clone(),I=new r(S),L={},B={},U={},V,G,k;if(w.normalize(),I.normalize(),w.toString()===I.toString())return!0;if(V=w.query(),G=I.query(),w.query(""),I.query(""),w.toString()!==I.toString()||V.length!==G.length)return!1;L=r.parseQuery(V,this._parts.escapeQuerySpace),B=r.parseQuery(G,this._parts.escapeQuerySpace);for(k in L)if(c.call(L,k)){if(d(L[k])){if(!m(L[k],B[k]))return!1}else if(L[k]!==B[k])return!1;U[k]=!0}for(k in B)if(c.call(B,k)&&!U[k])return!1;return!0},a.preventInvalidHostname=function(S){return this._parts.preventInvalidHostname=!!S,this},a.duplicateQueryParameters=function(S){return this._parts.duplicateQueryParameters=!!S,this},a.escapeQuerySpace=function(S){return this._parts.escapeQuerySpace=!!S,this},r})});var voe=qn((hZt,Soe)=>{"use strict";/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */var{entries:boe,setPrototypeOf:doe,isFrozen:aFe,getPrototypeOf:cFe,getOwnPropertyDescriptor:lFe}=Object,{freeze:qc,seal:vf,create:Toe}=Object,{apply:L9,construct:N9}=typeof Reflect<"u"&&Reflect;qc||(qc=function(t){return t});vf||(vf=function(t){return t});L9||(L9=function(t,n,i){return t.apply(n,i)});N9||(N9=function(t,n){return new t(...n)});var pU=yu(Array.prototype.forEach),hoe=yu(Array.prototype.pop),w1=yu(Array.prototype.push),gU=yu(String.prototype.toLowerCase),I9=yu(String.prototype.toString),moe=yu(String.prototype.match),D1=yu(String.prototype.replace),uFe=yu(String.prototype.indexOf),fFe=yu(String.prototype.trim),Ud=yu(Object.prototype.hasOwnProperty),jc=yu(RegExp.prototype.test),I1=dFe(TypeError);function yu(e){return function(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];return L9(e,t,i)}}function dFe(e){return function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return N9(e,n)}}function Di(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:gU;doe&&doe(e,null);let i=t.length;for(;i--;){let o=t[i];if(typeof o=="string"){let r=n(o);r!==o&&(aFe(t)||(t[i]=r),o=r)}e[o]=!0}return e}function hFe(e){for(let t=0;t<e.length;t++)Ud(e,t)||(e[t]=null);return e}function Wx(e){let t=Toe(null);for(let[n,i]of boe(e))Ud(e,n)&&(Array.isArray(i)?t[n]=hFe(i):i&&typeof i=="object"&&i.constructor===Object?t[n]=Wx(i):t[n]=i);return t}function P1(e,t){for(;e!==null;){let i=lFe(e,t);if(i){if(i.get)return yu(i.get);if(typeof i.value=="function")return yu(i.value)}e=cFe(e)}function n(){return null}return n}var poe=qc(["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"]),P9=qc(["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"]),R9=qc(["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"]),mFe=qc(["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"]),O9=qc(["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"]),pFe=qc(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),_oe=qc(["#text"]),goe=qc(["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","popover","popovertarget","popovertargetaction","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","wrap","xmlns","slot"]),M9=qc(["accent-height","accumulate","additive","alignment-baseline","amplitude","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","exponent","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","intercept","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","slope","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","tablevalues","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"]),yoe=qc(["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"]),_U=qc(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),_Fe=vf(/\{\{[\w\W]*|[\w\W]*\}\}/gm),gFe=vf(/<%[\w\W]*|[\w\W]*%>/gm),yFe=vf(/\${[\w\W]*}/gm),xFe=vf(/^data-[\-\w.\u00B7-\uFFFF]/),bFe=vf(/^aria-[\-\w]+$/),Coe=vf(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),TFe=vf(/^(?:\w+script|data):/i),CFe=vf(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Aoe=vf(/^html$/i),AFe=vf(/^[a-z][.\w]*(-[.\w]+)+$/i),xoe=Object.freeze({__proto__:null,MUSTACHE_EXPR:_Fe,ERB_EXPR:gFe,TMPLIT_EXPR:yFe,DATA_ATTR:xFe,ARIA_ATTR:bFe,IS_ALLOWED_URI:Coe,IS_SCRIPT_OR_DATA:TFe,ATTR_WHITESPACE:CFe,DOCTYPE_NAME:Aoe,CUSTOM_ELEMENT:AFe}),R1={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},EFe=function(){return typeof window>"u"?null:window},SFe=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null,o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(i=n.getAttribute(o));let r="dompurify"+(i?"#"+i:"");try{return t.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}};function Eoe(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:EFe(),t=sn=>Eoe(sn);if(t.version="3.1.7",t.removed=[],!e||!e.document||e.document.nodeType!==R1.document)return t.isSupported=!1,t;let{document:n}=e,i=n,o=i.currentScript,{DocumentFragment:r,HTMLTemplateElement:s,Node:a,Element:c,NodeFilter:u,NamedNodeMap:f=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:g}=e,m=c.prototype,x=P1(m,"cloneNode"),b=P1(m,"remove"),T=P1(m,"nextSibling"),C=P1(m,"childNodes"),A=P1(m,"parentNode");if(typeof s=="function"){let sn=n.createElement("template");sn.content&&sn.content.ownerDocument&&(n=sn.content.ownerDocument)}let E,v="",{implementation:D,createNodeIterator:O,createDocumentFragment:R,getElementsByTagName:M}=n,{importNode:N}=i,_={};t.isSupported=typeof boe=="function"&&typeof A=="function"&&D&&D.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:S,ERB_EXPR:w,TMPLIT_EXPR:I,DATA_ATTR:L,ARIA_ATTR:B,IS_SCRIPT_OR_DATA:U,ATTR_WHITESPACE:V,CUSTOM_ELEMENT:G}=xoe,{IS_ALLOWED_URI:k}=xoe,W=null,q=Di({},[...poe,...P9,...R9,...O9,..._oe]),J=null,j=Di({},[...goe,...M9,...yoe,..._U]),K=Object.seal(Toe(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}})),Q=null,de=null,ye=!0,ae=!0,_e=!1,xe=!0,De=!1,Ae=!0,ke=!1,ze=!1,tt=!1,wt=!1,pt=!1,Be=!1,Yt=!0,Ct=!1,lt="user-content-",tn=!0,Ce=!1,Te={},it=null,Wi=Di({},["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"]),ut=null,go=Di({},["audio","video","img","source","image","track"]),Yo=null,Ya=Di({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ir="http://www.w3.org/1998/Math/MathML",Cs="http://www.w3.org/2000/svg",Le="http://www.w3.org/1999/xhtml",ot=Le,qe=!1,Xe=null,dt=Di({},[Ir,Cs,Le],I9),Gt=null,wn=["application/xhtml+xml","text/html"],Io="text/html",Jn=null,ls=null,Xa=n.createElement("form"),Yr=function(Ee){return Ee instanceof RegExp||Ee instanceof Function},Fi=function(){let Ee=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(ls&&ls===Ee)){if((!Ee||typeof Ee!="object")&&(Ee={}),Ee=Wx(Ee),Gt=wn.indexOf(Ee.PARSER_MEDIA_TYPE)===-1?Io:Ee.PARSER_MEDIA_TYPE,Jn=Gt==="application/xhtml+xml"?I9:gU,W=Ud(Ee,"ALLOWED_TAGS")?Di({},Ee.ALLOWED_TAGS,Jn):q,J=Ud(Ee,"ALLOWED_ATTR")?Di({},Ee.ALLOWED_ATTR,Jn):j,Xe=Ud(Ee,"ALLOWED_NAMESPACES")?Di({},Ee.ALLOWED_NAMESPACES,I9):dt,Yo=Ud(Ee,"ADD_URI_SAFE_ATTR")?Di(Wx(Ya),Ee.ADD_URI_SAFE_ATTR,Jn):Ya,ut=Ud(Ee,"ADD_DATA_URI_TAGS")?Di(Wx(go),Ee.ADD_DATA_URI_TAGS,Jn):go,it=Ud(Ee,"FORBID_CONTENTS")?Di({},Ee.FORBID_CONTENTS,Jn):Wi,Q=Ud(Ee,"FORBID_TAGS")?Di({},Ee.FORBID_TAGS,Jn):{},de=Ud(Ee,"FORBID_ATTR")?Di({},Ee.FORBID_ATTR,Jn):{},Te=Ud(Ee,"USE_PROFILES")?Ee.USE_PROFILES:!1,ye=Ee.ALLOW_ARIA_ATTR!==!1,ae=Ee.ALLOW_DATA_ATTR!==!1,_e=Ee.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=Ee.ALLOW_SELF_CLOSE_IN_ATTR!==!1,De=Ee.SAFE_FOR_TEMPLATES||!1,Ae=Ee.SAFE_FOR_XML!==!1,ke=Ee.WHOLE_DOCUMENT||!1,wt=Ee.RETURN_DOM||!1,pt=Ee.RETURN_DOM_FRAGMENT||!1,Be=Ee.RETURN_TRUSTED_TYPE||!1,tt=Ee.FORCE_BODY||!1,Yt=Ee.SANITIZE_DOM!==!1,Ct=Ee.SANITIZE_NAMED_PROPS||!1,tn=Ee.KEEP_CONTENT!==!1,Ce=Ee.IN_PLACE||!1,k=Ee.ALLOWED_URI_REGEXP||Coe,ot=Ee.NAMESPACE||Le,K=Ee.CUSTOM_ELEMENT_HANDLING||{},Ee.CUSTOM_ELEMENT_HANDLING&&Yr(Ee.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(K.tagNameCheck=Ee.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Ee.CUSTOM_ELEMENT_HANDLING&&Yr(Ee.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(K.attributeNameCheck=Ee.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Ee.CUSTOM_ELEMENT_HANDLING&&typeof Ee.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(K.allowCustomizedBuiltInElements=Ee.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),De&&(ae=!1),pt&&(wt=!0),Te&&(W=Di({},_oe),J=[],Te.html===!0&&(Di(W,poe),Di(J,goe)),Te.svg===!0&&(Di(W,P9),Di(J,M9),Di(J,_U)),Te.svgFilters===!0&&(Di(W,R9),Di(J,M9),Di(J,_U)),Te.mathMl===!0&&(Di(W,O9),Di(J,yoe),Di(J,_U))),Ee.ADD_TAGS&&(W===q&&(W=Wx(W)),Di(W,Ee.ADD_TAGS,Jn)),Ee.ADD_ATTR&&(J===j&&(J=Wx(J)),Di(J,Ee.ADD_ATTR,Jn)),Ee.ADD_URI_SAFE_ATTR&&Di(Yo,Ee.ADD_URI_SAFE_ATTR,Jn),Ee.FORBID_CONTENTS&&(it===Wi&&(it=Wx(it)),Di(it,Ee.FORBID_CONTENTS,Jn)),tn&&(W["#text"]=!0),ke&&Di(W,["html","head","body"]),W.table&&(Di(W,["tbody"]),delete Q.tbody),Ee.TRUSTED_TYPES_POLICY){if(typeof Ee.TRUSTED_TYPES_POLICY.createHTML!="function")throw I1('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ee.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw I1('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=Ee.TRUSTED_TYPES_POLICY,v=E.createHTML("")}else E===void 0&&(E=SFe(g,o)),E!==null&&typeof v=="string"&&(v=E.createHTML(""));qc&&qc(Ee),ls=Ee}},ks=Di({},["mi","mo","mn","ms","mtext"]),Xr=Di({},["annotation-xml"]),lf=Di({},["title","style","font","a","script"]),yo=Di({},[...P9,...R9,...mFe]),Pr=Di({},[...O9,...pFe]),mp=function(Ee){let Rt=A(Ee);(!Rt||!Rt.tagName)&&(Rt={namespaceURI:ot,tagName:"template"});let pn=gU(Ee.tagName),Xo=gU(Rt.tagName);return Xe[Ee.namespaceURI]?Ee.namespaceURI===Cs?Rt.namespaceURI===Le?pn==="svg":Rt.namespaceURI===Ir?pn==="svg"&&(Xo==="annotation-xml"||ks[Xo]):!!yo[pn]:Ee.namespaceURI===Ir?Rt.namespaceURI===Le?pn==="math":Rt.namespaceURI===Cs?pn==="math"&&Xr[Xo]:!!Pr[pn]:Ee.namespaceURI===Le?Rt.namespaceURI===Cs&&!Xr[Xo]||Rt.namespaceURI===Ir&&!ks[Xo]?!1:!Pr[pn]&&(lf[pn]||!yo[pn]):!!(Gt==="application/xhtml+xml"&&Xe[Ee.namespaceURI]):!1},Kr=function(Ee){w1(t.removed,{element:Ee});try{A(Ee).removeChild(Ee)}catch{b(Ee)}},uf=function(Ee,Rt){try{w1(t.removed,{attribute:Rt.getAttributeNode(Ee),from:Rt})}catch{w1(t.removed,{attribute:null,from:Rt})}if(Rt.removeAttribute(Ee),Ee==="is"&&!J[Ee])if(wt||pt)try{Kr(Rt)}catch{}else try{Rt.setAttribute(Ee,"")}catch{}},Ka=function(Ee){let Rt=null,pn=null;if(tt)Ee="<remove></remove>"+Ee;else{let Ea=moe(Ee,/^[\r\n\t ]+/);pn=Ea&&Ea[0]}Gt==="application/xhtml+xml"&&ot===Le&&(Ee='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+Ee+"</body></html>");let Xo=E?E.createHTML(Ee):Ee;if(ot===Le)try{Rt=new p().parseFromString(Xo,Gt)}catch{}if(!Rt||!Rt.documentElement){Rt=D.createDocument(ot,"template",null);try{Rt.documentElement.innerHTML=qe?v:Xo}catch{}}let Za=Rt.body||Rt.documentElement;return Ee&&pn&&Za.insertBefore(n.createTextNode(pn),Za.childNodes[0]||null),ot===Le?M.call(Rt,ke?"html":"body")[0]:ke?Rt.documentElement:Za},X0=function(Ee){return O.call(Ee.ownerDocument||Ee,Ee,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Aa=function(Ee){return Ee instanceof d&&(typeof Ee.nodeName!="string"||typeof Ee.textContent!="string"||typeof Ee.removeChild!="function"||!(Ee.attributes instanceof f)||typeof Ee.removeAttribute!="function"||typeof Ee.setAttribute!="function"||typeof Ee.namespaceURI!="string"||typeof Ee.insertBefore!="function"||typeof Ee.hasChildNodes!="function")},bl=function(Ee){return typeof a=="function"&&Ee instanceof a},Oc=function(Ee,Rt,pn){_[Ee]&&pU(_[Ee],Xo=>{Xo.call(t,Rt,pn,ls)})},us=function(Ee){let Rt=null;if(Oc("beforeSanitizeElements",Ee,null),Aa(Ee))return Kr(Ee),!0;let pn=Jn(Ee.nodeName);if(Oc("uponSanitizeElement",Ee,{tagName:pn,allowedTags:W}),Ee.hasChildNodes()&&!bl(Ee.firstElementChild)&&jc(/<[/\w]/g,Ee.innerHTML)&&jc(/<[/\w]/g,Ee.textContent)||Ee.nodeType===R1.progressingInstruction||Ae&&Ee.nodeType===R1.comment&&jc(/<[/\w]/g,Ee.data))return Kr(Ee),!0;if(!W[pn]||Q[pn]){if(!Q[pn]&&df(pn)&&(K.tagNameCheck instanceof RegExp&&jc(K.tagNameCheck,pn)||K.tagNameCheck instanceof Function&&K.tagNameCheck(pn)))return!1;if(tn&&!it[pn]){let Xo=A(Ee)||Ee.parentNode,Za=C(Ee)||Ee.childNodes;if(Za&&Xo){let Ea=Za.length;for(let Tl=Ea-1;Tl>=0;--Tl){let Yh=x(Za[Tl],!0);Yh.__removalCount=(Ee.__removalCount||0)+1,Xo.insertBefore(Yh,T(Ee))}}}return Kr(Ee),!0}return Ee instanceof c&&!mp(Ee)||(pn==="noscript"||pn==="noembed"||pn==="noframes")&&jc(/<\/no(script|embed|frames)/i,Ee.innerHTML)?(Kr(Ee),!0):(De&&Ee.nodeType===R1.text&&(Rt=Ee.textContent,pU([S,w,I],Xo=>{Rt=D1(Rt,Xo," ")}),Ee.textContent!==Rt&&(w1(t.removed,{element:Ee.cloneNode()}),Ee.textContent=Rt)),Oc("afterSanitizeElements",Ee,null),!1)},ff=function(Ee,Rt,pn){if(Yt&&(Rt==="id"||Rt==="name")&&(pn in n||pn in Xa))return!1;if(!(ae&&!de[Rt]&&jc(L,Rt))){if(!(ye&&jc(B,Rt))){if(!J[Rt]||de[Rt]){if(!(df(Ee)&&(K.tagNameCheck instanceof RegExp&&jc(K.tagNameCheck,Ee)||K.tagNameCheck instanceof Function&&K.tagNameCheck(Ee))&&(K.attributeNameCheck instanceof RegExp&&jc(K.attributeNameCheck,Rt)||K.attributeNameCheck instanceof Function&&K.attributeNameCheck(Rt))||Rt==="is"&&K.allowCustomizedBuiltInElements&&(K.tagNameCheck instanceof RegExp&&jc(K.tagNameCheck,pn)||K.tagNameCheck instanceof Function&&K.tagNameCheck(pn))))return!1}else if(!Yo[Rt]){if(!jc(k,D1(pn,V,""))){if(!((Rt==="src"||Rt==="xlink:href"||Rt==="href")&&Ee!=="script"&&uFe(pn,"data:")===0&&ut[Ee])){if(!(_e&&!jc(U,D1(pn,V,"")))){if(pn)return!1}}}}}}return!0},df=function(Ee){return Ee!=="annotation-xml"&&moe(Ee,G)},hf=function(Ee){Oc("beforeSanitizeAttributes",Ee,null);let{attributes:Rt}=Ee;if(!Rt)return;let pn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:J},Xo=Rt.length;for(;Xo--;){let Za=Rt[Xo],{name:Ea,namespaceURI:Tl,value:Yh}=Za,Yv=Jn(Ea),Mc=Ea==="value"?Yh:fFe(Yh);if(pn.attrName=Yv,pn.attrValue=Mc,pn.keepAttr=!0,pn.forceKeepAttr=void 0,Oc("uponSanitizeAttribute",Ee,pn),Mc=pn.attrValue,pn.forceKeepAttr||(uf(Ea,Ee),!pn.keepAttr))continue;if(!xe&&jc(/\/>/i,Mc)){uf(Ea,Ee);continue}De&&pU([S,w,I],FQ=>{Mc=D1(Mc,FQ," ")});let NQ=Jn(Ee.nodeName);if(ff(NQ,Yv,Mc)){if(Ct&&(Yv==="id"||Yv==="name")&&(uf(Ea,Ee),Mc=lt+Mc),Ae&&jc(/((--!?|])>)|<\/(style|title)/i,Mc)){uf(Ea,Ee);continue}if(E&&typeof g=="object"&&typeof g.getAttributeType=="function"&&!Tl)switch(g.getAttributeType(NQ,Yv)){case"TrustedHTML":{Mc=E.createHTML(Mc);break}case"TrustedScriptURL":{Mc=E.createScriptURL(Mc);break}}try{Tl?Ee.setAttributeNS(Tl,Ea,Mc):Ee.setAttribute(Ea,Mc),Aa(Ee)?Kr(Ee):hoe(t.removed)}catch{}}}Oc("afterSanitizeAttributes",Ee,null)},Bo=function sn(Ee){let Rt=null,pn=X0(Ee);for(Oc("beforeSanitizeShadowDOM",Ee,null);Rt=pn.nextNode();)Oc("uponSanitizeShadowNode",Rt,null),!us(Rt)&&(Rt.content instanceof r&&sn(Rt.content),hf(Rt));Oc("afterSanitizeShadowDOM",Ee,null)};return t.sanitize=function(sn){let Ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Rt=null,pn=null,Xo=null,Za=null;if(qe=!sn,qe&&(sn="<!-->"),typeof sn!="string"&&!bl(sn))if(typeof sn.toString=="function"){if(sn=sn.toString(),typeof sn!="string")throw I1("dirty is not a string, aborting")}else throw I1("toString is not a function");if(!t.isSupported)return sn;if(ze||Fi(Ee),t.removed=[],typeof sn=="string"&&(Ce=!1),Ce){if(sn.nodeName){let Yh=Jn(sn.nodeName);if(!W[Yh]||Q[Yh])throw I1("root node is forbidden and cannot be sanitized in-place")}}else if(sn instanceof a)Rt=Ka("<!---->"),pn=Rt.ownerDocument.importNode(sn,!0),pn.nodeType===R1.element&&pn.nodeName==="BODY"||pn.nodeName==="HTML"?Rt=pn:Rt.appendChild(pn);else{if(!wt&&!De&&!ke&&sn.indexOf("<")===-1)return E&&Be?E.createHTML(sn):sn;if(Rt=Ka(sn),!Rt)return wt?null:Be?v:""}Rt&&tt&&Kr(Rt.firstChild);let Ea=X0(Ce?sn:Rt);for(;Xo=Ea.nextNode();)us(Xo)||(Xo.content instanceof r&&Bo(Xo.content),hf(Xo));if(Ce)return sn;if(wt){if(pt)for(Za=R.call(Rt.ownerDocument);Rt.firstChild;)Za.appendChild(Rt.firstChild);else Za=Rt;return(J.shadowroot||J.shadowrootmode)&&(Za=N.call(i,Za,!0)),Za}let Tl=ke?Rt.outerHTML:Rt.innerHTML;return ke&&W["!doctype"]&&Rt.ownerDocument&&Rt.ownerDocument.doctype&&Rt.ownerDocument.doctype.name&&jc(Aoe,Rt.ownerDocument.doctype.name)&&(Tl="<!DOCTYPE "+Rt.ownerDocument.doctype.name+`>
`+Tl),De&&pU([S,w,I],Yh=>{Tl=D1(Tl,Yh," ")}),E&&Be?E.createHTML(Tl):Tl},t.setConfig=function(){let sn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Fi(sn),ze=!0},t.clearConfig=function(){ls=null,ze=!1},t.isValidAttribute=function(sn,Ee,Rt){ls||Fi({});let pn=Jn(sn),Xo=Jn(Ee);return ff(pn,Xo,Rt)},t.addHook=function(sn,Ee){typeof Ee=="function"&&(_[sn]=_[sn]||[],w1(_[sn],Ee))},t.removeHook=function(sn){if(_[sn])return hoe(_[sn])},t.removeHooks=function(sn){_[sn]&&(_[sn]=[])},t.removeAllHooks=function(){_={}},t}var vFe=Eoe();Soe.exports=vFe});var ure=qn((z1,eW)=>{var PU=function(){"use strict";var e="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk: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:eqkzebbbebbbdbbba:vbb",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(g){n=g.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function o(g){for(var m=new Uint8Array(g.length),x=0;x<g.length;++x){var b=g.charCodeAt(x);m[x]=b>96?b-97:b>64?b-39:b+4}for(var T=0,x=0;x<g.length;++x)m[T++]=m[x]<60?t[m[x]]:(m[x]-60)*64+m[++x];return m.buffer.slice(0,T)}function r(g){if(!g)throw new Error("Assertion failed")}function s(g){return new Uint8Array(g.buffer,g.byteOffset,g.byteLength)}function a(g,m,x,b){var T=n.exports.sbrk,C=T(m.length*4),A=T(x*4),E=new Uint8Array(n.exports.memory.buffer),v=s(m);E.set(v,C),b&&b(C,C,m.length,x);var D=g(A,C,m.length,x);E=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(x);new Uint8Array(O.buffer).set(E.subarray(A,A+x*4)),v.set(E.subarray(C,C+m.length*4)),T(C-T(0));for(var R=0;R<m.length;++R)m[R]=O[m[R]];return[O,D]}function c(g,m,x,b){var T=n.exports.sbrk,C=T(x*4),A=T(x*b),E=new Uint8Array(n.exports.memory.buffer);E.set(s(m),A),g(C,A,x,b),E=new Uint8Array(n.exports.memory.buffer);var v=new Uint32Array(x);return new Uint8Array(v.buffer).set(E.subarray(C,C+x*4)),T(C-T(0)),v}function u(g,m,x,b,T){var C=n.exports.sbrk,A=C(m),E=C(b*T),v=new Uint8Array(n.exports.memory.buffer);v.set(s(x),E);var D=g(A,m,E,b,T),O=new Uint8Array(D);return O.set(v.subarray(A,A+D)),C(A-C(0)),O}function f(g){for(var m=0,x=0;x<g.length;++x){var b=g[x];m=m<b?b:m}return m}function d(g,m){if(r(m==2||m==4),m==4)return new Uint32Array(g.buffer,g.byteOffset,g.byteLength/4);var x=new Uint16Array(g.buffer,g.byteOffset,g.byteLength/2);return new Uint32Array(x)}function p(g,m,x,b,T,C,A){var E=n.exports.sbrk,v=E(x*b),D=E(x*C),O=new Uint8Array(n.exports.memory.buffer);O.set(s(m),D),g(v,x,b,T,D,A);var R=new Uint8Array(x*b);return R.set(O.subarray(v,v+x*b)),E(v-E(0)),R}return{ready:i,supported:!0,reorderMesh:function(g,m,x){var b=m?x?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(n.exports.meshopt_optimizeVertexFetchRemap,g,f(g)+1,b)},reorderPoints:function(g,m){return r(g instanceof Float32Array),r(g.length%m==0),r(m>=3),c(n.exports.meshopt_spatialSortRemap,g,g.length/m,m*4)},encodeVertexBuffer:function(g,m,x){r(x>0&&x<=256),r(x%4==0);var b=n.exports.meshopt_encodeVertexBufferBound(m,x);return u(n.exports.meshopt_encodeVertexBuffer,b,g,m,x)},encodeIndexBuffer:function(g,m,x){r(x==2||x==4),r(m%3==0);var b=d(g,x),T=n.exports.meshopt_encodeIndexBufferBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexBuffer,T,b,m,4)},encodeIndexSequence:function(g,m,x){r(x==2||x==4);var b=d(g,x),T=n.exports.meshopt_encodeIndexSequenceBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexSequence,T,b,m,4)},encodeGltfBuffer:function(g,m,x,b){var T={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(T[b]),T[b](g,m,x)},encodeFilterOct:function(g,m,x,b){return r(x==4||x==8),r(b>=1&&b<=16),p(n.exports.meshopt_encodeFilterOct,g,m,x,b,16)},encodeFilterQuat:function(g,m,x,b){return r(x==8),r(b>=4&&b<=16),p(n.exports.meshopt_encodeFilterQuat,g,m,x,b,16)},encodeFilterExp:function(g,m,x,b,T){r(x>0&&x%4==0),r(b>=1&&b<=24);var C={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return p(n.exports.meshopt_encodeFilterExp,g,m,x,b,x,T?C[T]:1)}}}();typeof z1=="object"&&typeof eW=="object"?eW.exports=PU:typeof define=="function"&&define.amd?define([],function(){return PU}):typeof z1=="object"?z1.MeshoptEncoder=PU:(typeof self<"u"?self:z1).MeshoptEncoder=PU});var fre=qn((H1,tW)=>{var RU=function(){"use strict";var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;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;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;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:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;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;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;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:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;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:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",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)?a(t):a(e),r,s=WebAssembly.instantiate(o,{}).then(function(T){r=T.instance,r.exports.__wasm_call_ctors()});function a(T){for(var C=new Uint8Array(T.length),A=0;A<T.length;++A){var E=T.charCodeAt(A);C[A]=E>96?E-97:E>64?E-39:E+4}for(var v=0,A=0;A<T.length;++A)C[v++]=C[A]<60?i[C[A]]:(C[A]-60)*64+C[++A];return C.buffer.slice(0,v)}function c(T,C,A,E,v,D,O){var R=T.exports.sbrk,M=E+3&-4,N=R(M*v),_=R(D.length),S=new Uint8Array(T.exports.memory.buffer);S.set(D,_);var w=C(N,E,v,_,D.length);if(w==0&&O&&O(N,M,v),A.set(S.subarray(N,N+E*v)),R(N-R(0)),w!=0)throw new Error("Malformed buffer data: "+w)}var u={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 C={object:new Worker(T),pending:0,requests:{}};return C.object.onmessage=function(A){var E=A.data;C.pending-=E.count,C.requests[E.id][E.action](E.value),delete C.requests[E.id]},C}function m(T){for(var C="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(o)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+b.name+";"+c.toString()+b.toString(),A=new Blob([C],{type:"text/javascript"}),E=URL.createObjectURL(A),v=d.length;v<T;++v)d[v]=g(E);for(var v=T;v<d.length;++v)d[v].object.postMessage({});d.length=T,URL.revokeObjectURL(E)}function x(T,C,A,E,v){for(var D=d[0],O=1;O<d.length;++O)d[O].pending<D.pending&&(D=d[O]);return new Promise(function(R,M){var N=new Uint8Array(A),_=++p;D.pending+=T,D.requests[_]={resolve:R,reject:M},D.object.postMessage({id:_,count:T,size:C,source:N,mode:E,filter:v},[N.buffer])})}function b(T){var C=T.data;if(!C.id)return self.close();self.ready.then(function(A){try{var E=new Uint8Array(C.count*C.size);c(A,A.exports[C.mode],E,C.count,C.size,C.source,A.exports[C.filter]),self.postMessage({id:C.id,count:C.count,action:"resolve",value:E},[E.buffer])}catch(v){self.postMessage({id:C.id,count:C.count,action:"reject",value:v})}})}return{ready:s,supported:!0,useWorkers:function(T){m(T)},decodeVertexBuffer:function(T,C,A,E,v){c(r,r.exports.meshopt_decodeVertexBuffer,T,C,A,E,r.exports[u[v]])},decodeIndexBuffer:function(T,C,A,E){c(r,r.exports.meshopt_decodeIndexBuffer,T,C,A,E)},decodeIndexSequence:function(T,C,A,E){c(r,r.exports.meshopt_decodeIndexSequence,T,C,A,E)},decodeGltfBuffer:function(T,C,A,E,v,D){c(r,r.exports[f[v]],T,C,A,E,r.exports[u[D]])},decodeGltfBufferAsync:function(T,C,A,E,v){return d.length>0?x(T,C,A,f[E],u[v]):s.then(function(){var D=new Uint8Array(T*C);return c(r,r.exports[f[E]],D,T,C,A,r.exports[u[v]]),D})}}}();typeof H1=="object"&&typeof tW=="object"?tW.exports=RU:typeof define=="function"&&define.amd?define([],function(){return RU}):typeof H1=="object"?H1.MeshoptDecoder=RU:(typeof self<"u"?self:H1).MeshoptDecoder=RU});var dre=qn((G1,nW)=>{var OU=function(){"use strict";var e="b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb",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(m){n=m.instance,n.exports.__wasm_call_ctors()});function o(m){for(var x=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);x[b]=T>96?T-97:T>64?T-39:T+4}for(var C=0,b=0;b<m.length;++b)x[C++]=x[b]<60?t[x[b]]:(x[b]-60)*64+x[++b];return x.buffer.slice(0,C)}function r(m){if(!m)throw new Error("Assertion failed")}function s(m){return new Uint8Array(m.buffer,m.byteOffset,m.byteLength)}function a(m,x,b){var T=n.exports.sbrk,C=T(x.length*4),A=T(b*4),E=new Uint8Array(n.exports.memory.buffer),v=s(x);E.set(v,C);var D=m(A,C,x.length,b);E=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(b);new Uint8Array(O.buffer).set(E.subarray(A,A+b*4)),v.set(E.subarray(C,C+x.length*4)),T(C-T(0));for(var R=0;R<x.length;++R)x[R]=O[x[R]];return[O,D]}function c(m){for(var x=0,b=0;b<m.length;++b){var T=m[b];x=x<T?T:x}return x}function u(m,x,b,T,C,A,E,v,D){var O=n.exports.sbrk,R=O(4),M=O(b*4),N=O(C*A),_=O(b*4),S=new Uint8Array(n.exports.memory.buffer);S.set(s(T),N),S.set(s(x),_);var w=m(M,_,b,N,C,A,E,v,D,R);S=new Uint8Array(n.exports.memory.buffer);var I=new Uint32Array(w);s(I).set(S.subarray(M,M+w*4));var L=new Float32Array(1);return s(L).set(S.subarray(R,R+4)),O(R-O(0)),[I,L[0]]}function f(m,x,b,T,C,A,E,v,D,O,R,M,N){var _=n.exports.sbrk,S=_(4),w=_(b*4),I=_(C*A),L=_(C*v),B=_(D.length*4),U=_(b*4),V=O?_(C):0,G=new Uint8Array(n.exports.memory.buffer);G.set(s(T),I),G.set(s(E),L),G.set(s(D),B),G.set(s(x),U),O&&G.set(s(O),V);var k=m(w,U,b,I,C,A,L,v,B,D.length,V,R,M,N,S);G=new Uint8Array(n.exports.memory.buffer);var W=new Uint32Array(k);s(W).set(G.subarray(w,w+k*4));var q=new Float32Array(1);return s(q).set(G.subarray(S,S+4)),_(S-_(0)),[W,q[0]]}function d(m,x,b,T){var C=n.exports.sbrk,A=C(b*T),E=new Uint8Array(n.exports.memory.buffer);E.set(s(x),A);var v=m(A,b,T);return C(A-C(0)),v}function p(m,x,b,T,C,A,E,v){var D=n.exports.sbrk,O=D(v*4),R=D(b*T),M=D(b*A),N=new Uint8Array(n.exports.memory.buffer);N.set(s(x),R),C&&N.set(s(C),M);var _=m(O,R,b,T,M,A,E,v);N=new Uint8Array(n.exports.memory.buffer);var S=new Uint32Array(_);return s(S).set(N.subarray(O,O+_*4)),D(O-D(0)),S}var g={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,_InternalDebug:1<<30};return{ready:i,supported:!0,useExperimentalFeatures:!1,compactMesh:function(m){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0);var x=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return a(n.exports.meshopt_optimizeVertexFetchRemap,x,c(m)+1)},simplify:function(m,x,b,T,C,A){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T>=0&&T<=m.length),r(T%3==0),r(C>=0);for(var E=0,v=0;v<(A?A.length:0);++v)r(A[v]in g),r(this.useExperimentalFeatures||A[v]!="Prune"),E|=g[A[v]];var D=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),O=u(n.exports.meshopt_simplify,D,m.length,x,x.length/b,b*4,T,C,E);return O[0]=m instanceof Uint32Array?O[0]:new m.constructor(O[0]),O},simplifyWithAttributes:function(m,x,b,T,C,A,E,v,D,O){r(this.useExperimentalFeatures),r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T instanceof Float32Array),r(T.length%C==0),r(C>=0),r(E==null||E instanceof Uint8Array),r(E==null||E.length==x.length/b),r(v>=0&&v<=m.length),r(v%3==0),r(D>=0),r(Array.isArray(A)),r(C>=A.length),r(A.length<=32);for(var R=0;R<A.length;++R)r(A[R]>=0);for(var M=0,R=0;R<(O?O.length:0);++R)r(O[R]in g),M|=g[O[R]];var N=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),_=f(n.exports.meshopt_simplifyWithAttributes,N,m.length,x,x.length/b,b*4,T,C*4,new Float32Array(A),E?new Uint8Array(E):null,v,D,M);return _[0]=m instanceof Uint32Array?_[0]:new m.constructor(_[0]),_},getScale:function(m,x){return r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),d(n.exports.meshopt_simplifyScale,m,m.length/x,x*4)},simplifyPoints:function(m,x,b,T,C,A){return r(this.useExperimentalFeatures),r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),r(b>=0&&b<=m.length/x),T?(r(T instanceof Float32Array),r(T.length%C==0),r(C>=3),r(m.length/x==T.length/C),p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,T,C*4,A,b)):p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,void 0,0,0,b)}}}();typeof G1=="object"&&typeof nW=="object"?nW.exports=OU:typeof define=="function"&&define.amd?define([],function(){return OU}):typeof G1=="object"?G1.MeshoptSimplifier=OU:(typeof self<"u"?self:G1).MeshoptSimplifier=OU});var hre=qn((W1,iW)=>{var MU=function(){var e="b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb",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(m){n=m.instance,n.exports.__wasm_call_ctors()});function o(m){for(var x=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);x[b]=T>96?T-97:T>64?T-39:T+4}for(var C=0,b=0;b<m.length;++b)x[C++]=x[b]<60?t[x[b]]:(x[b]-60)*64+x[++b];return x.buffer.slice(0,C)}function r(m){if(!m)throw new Error("Assertion failed")}function s(m){return new Uint8Array(m.buffer,m.byteOffset,m.byteLength)}var a=48,c=16;function u(m,x){var b=m.meshlets[x*4+0],T=m.meshlets[x*4+1],C=m.meshlets[x*4+2],A=m.meshlets[x*4+3];return{vertices:m.vertices.subarray(b,b+C),triangles:m.triangles.subarray(T,T+A*3)}}function f(m,x,b,T,C,A,E){var v=n.exports.sbrk,D=n.exports.meshopt_buildMeshletsBound(m.length,C,A),O=v(D*c),R=v(D*C*4),M=v(D*A*3),N=v(m.byteLength),_=v(x.byteLength),S=new Uint8Array(n.exports.memory.buffer);S.set(s(m),N),S.set(s(x),_);var w=n.exports.meshopt_buildMeshlets(O,R,M,N,m.length,_,b,T,C,A,E);S=new Uint8Array(n.exports.memory.buffer);for(var I=S.subarray(O,O+w*c),L=new Uint32Array(I.buffer,I.byteOffset,I.byteLength/4).slice(),B=0;B<w;++B){var U=L[B*4+0],V=L[B*4+1],b=L[B*4+2],G=L[B*4+3];n.exports.meshopt_optimizeMeshlet(R+U*4,M+V,G,b)}var k=L[(w-1)*4+0],W=L[(w-1)*4+1],q=L[(w-1)*4+2],J=L[(w-1)*4+3],j=k+q,K=W+(J*3+3&-4),Q={meshlets:L,vertices:new Uint32Array(S.buffer,R,j).slice(),triangles:new Uint8Array(S.buffer,M,K*3).slice(),meshletCount:w};return v(O-v(0)),Q}function d(m){var x=new Float32Array(n.exports.memory.buffer,m,a/4);return{centerX:x[0],centerY:x[1],centerZ:x[2],radius:x[3],coneApexX:x[4],coneApexY:x[5],coneApexZ:x[6],coneAxisX:x[7],coneAxisY:x[8],coneAxisZ:x[9],coneCutoff:x[10]}}function p(m,x,b,T){var C=n.exports.sbrk,A=[],E=C(x.byteLength),v=C(m.vertices.byteLength),D=C(m.triangles.byteLength),O=C(a),R=new Uint8Array(n.exports.memory.buffer);R.set(s(x),E),R.set(s(m.vertices),v),R.set(s(m.triangles),D);for(var M=0;M<m.meshletCount;++M){var N=m.meshlets[M*4+0],_=m.meshlets[M*4+0+1],S=m.meshlets[M*4+0+3];n.exports.meshopt_computeMeshletBounds(O,v+N*4,D+_,S,E,b,T),A.push(d(O))}return C(E-C(0)),A}function g(m,x,b,T){var C=n.exports.sbrk,A=C(a),E=C(m.byteLength),v=C(x.byteLength),D=new Uint8Array(n.exports.memory.buffer);D.set(s(m),E),D.set(s(x),v),n.exports.meshopt_computeClusterBounds(A,E,m.length,v,b,T);var O=d(A);return C(A-C(0)),O}return{ready:i,supported:!0,buildMeshlets:function(m,x,b,T,C,A){r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T<=255||T>0),r(C<=512),r(C%4==0),A=A||0;var E=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return f(E,x,x.length/b,b*4,T,C,A)},computeClusterBounds:function(m,x,b){r(m.length%3==0),r(m.length/3<=512),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3);var T=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return g(T,x,x.length/b,b*4)},computeMeshletBounds:function(m,x,b){return r(m.meshletCount!=0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),p(m,x,x.length/b,b*4)},extractMeshlet:function(m,x){return r(x>=0&&x<m.meshletCount),u(m,x)}}}();typeof W1=="object"&&typeof iW=="object"?iW.exports=MU:typeof define=="function"&&define.amd?define([],function(){return MU}):typeof W1=="object"?W1.MeshoptClusterizer=MU:(typeof self<"u"?self:W1).MeshoptClusterizer=MU});var pre=qn((Zen,mre)=>{var m3e=ure(),p3e=fre(),_3e=dre(),g3e=hre();mre.exports={MeshoptEncoder:m3e,MeshoptDecoder:p3e,MeshoptSimplifier:_3e,MeshoptClusterizer:g3e}});var wle=qn((pwn,vle)=>{"use strict";vle.exports=Sje;var UM=1e20;function Sje(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,u,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(u=c,c=Array(r*s),m=0,x=Math.floor(u.length/f);m<x;m++)c[m]=u[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),C=Array(a),A=Array(a),E=Array(a+1),v=Array(a);for(m=0,x=r*s;m<x;m++){var D=c[m];b[m]=D===1?0:D===0?UM:Math.pow(Math.max(0,.5-D),2),T[m]=D===1?UM:D===0?0:Math.pow(Math.max(0,D-.5),2)}Ele(b,r,s,C,A,v,E),Ele(T,r,s,C,A,v,E);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 Ele(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(Sle(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(Sle(i,o,r,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(o[a])}}function Sle(e,t,n,i,o){n[0]=0,i[0]=-UM,i[1]=+UM;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]=+UM}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 Ole=qn((Own,xz)=>{function Fje(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,u=9,f=10,d=11,p=12,g=13,m=14,x=15,b=16,T=17,C=0,A=1,E=2,v=3,D=4;function O(_,S){return 55296<=_.charCodeAt(S)&&_.charCodeAt(S)<=56319&&56320<=_.charCodeAt(S+1)&&_.charCodeAt(S+1)<=57343}function R(_,S){S===void 0&&(S=0);var w=_.charCodeAt(S);if(55296<=w&&w<=56319&&S<_.length-1){var I=w,L=_.charCodeAt(S+1);return 56320<=L&&L<=57343?(I-55296)*1024+(L-56320)+65536:I}if(56320<=w&&w<=57343&&S>=1){var I=_.charCodeAt(S-1),L=w;return 55296<=I&&I<=56319?(I-55296)*1024+(L-56320)+65536:L}return w}function M(_,S,w){var I=[_].concat(S).concat([w]),L=I[I.length-2],B=w,U=I.lastIndexOf(m);if(U>1&&I.slice(1,U).every(function(k){return k==i})&&[i,g,T].indexOf(_)==-1)return E;var V=I.lastIndexOf(o);if(V>0&&I.slice(1,V).every(function(k){return k==o})&&[p,o].indexOf(L)==-1)return I.filter(function(k){return k==o}).length%2==1?v:D;if(L==e&&B==t)return C;if(L==n||L==e||L==t)return B==m&&S.every(function(k){return k==i})?E:A;if(B==n||B==e||B==t)return A;if(L==s&&(B==s||B==a||B==u||B==f))return C;if((L==u||L==a)&&(B==a||B==c))return C;if((L==f||L==c)&&B==c)return C;if(B==i||B==x)return C;if(B==r)return C;if(L==p)return C;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||L==x&&[b,T].indexOf(B)!=-1?C:S.indexOf(o)!=-1?E:L==o&&B==o?C:A}this.nextBreak=function(_,S){if(S===void 0&&(S=0),S<0)return 0;if(S>=_.length-1)return _.length;for(var w=N(R(_,S)),I=[],L=S+1;L<_.length;L++)if(!O(_,L-1)){var B=N(R(_,L));if(M(w,I,B))return L;I.push(B)}return _.length},this.splitGraphemes=function(_){for(var S=[],w=0,I;(I=this.nextBreak(_,w))<_.length;)S.push(_.slice(w,I)),w=I;return w<_.length&&S.push(_.slice(w)),S},this.iterateGraphemes=function(_){var S=0,w={next:function(){var I,L;return(L=this.nextBreak(_,S))<_.length?(I=_.slice(S,L),S=L,{value:I,done:!1}):S<_.length?(I=_.slice(S),S=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(w[Symbol.iterator]=function(){return w}),w},this.countGraphemes=function(_){for(var S=0,w=0,I;(I=this.nextBreak(_,w))<_.length;)w=I,S++;return w<_.length&&S++,S};function N(_){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?u: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 xz<"u"&&xz.exports&&(xz.exports=Fje)});var xme=qn((rq,sq)=>{(function(e,t){typeof rq=="object"&&typeof sq<"u"?sq.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.RBush=t())})(rq,function(){"use strict";function e(A,E,v,D,O){t(A,E,v||0,D||A.length-1,O||i)}function t(A,E,v,D,O){for(;D>v;){if(D-v>600){var R=D-v+1,M=E-v+1,N=Math.log(R),_=.5*Math.exp(2*N/3),S=.5*Math.sqrt(N*_*(R-_)/R)*(M-R/2<0?-1:1),w=Math.max(v,Math.floor(E-M*_/R+S)),I=Math.min(D,Math.floor(E+(R-M)*_/R+S));t(A,E,w,I,O)}var L=A[E],B=v,U=D;for(n(A,v,E),O(A[D],L)>0&&n(A,v,D);B<U;){for(n(A,B,U),B++,U--;O(A[B],L)<0;)B++;for(;O(A[U],L)>0;)U--}O(A[v],L)===0?n(A,v,U):(U++,n(A,U,D)),U<=E&&(v=U+1),E<=U&&(D=U-1)}}function n(A,E,v){var D=A[E];A[E]=A[v],A[v]=D}function i(A,E){return A<E?-1:A>E?1:0}var o=function(E){E===void 0&&(E=9),this._maxEntries=Math.max(4,E),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()};o.prototype.all=function(){return this._all(this.data,[])},o.prototype.search=function(E){var v=this.data,D=[];if(!b(E,v))return D;for(var O=this.toBBox,R=[];v;){for(var M=0;M<v.children.length;M++){var N=v.children[M],_=v.leaf?O(N):N;b(E,_)&&(v.leaf?D.push(N):x(E,_)?this._all(N,D):R.push(N))}v=R.pop()}return D},o.prototype.collides=function(E){var v=this.data;if(!b(E,v))return!1;for(var D=[];v;){for(var O=0;O<v.children.length;O++){var R=v.children[O],M=v.leaf?this.toBBox(R):R;if(b(E,M)){if(v.leaf||x(E,M))return!0;D.push(R)}}v=D.pop()}return!1},o.prototype.load=function(E){if(!(E&&E.length))return this;if(E.length<this._minEntries){for(var v=0;v<E.length;v++)this.insert(E[v]);return this}var D=this._build(E.slice(),0,E.length-1,0);if(!this.data.children.length)this.data=D;else if(this.data.height===D.height)this._splitRoot(this.data,D);else{if(this.data.height<D.height){var O=this.data;this.data=D,D=O}this._insert(D,this.data.height-D.height-1,!0)}return this},o.prototype.insert=function(E){return E&&this._insert(E,this.data.height-1),this},o.prototype.clear=function(){return this.data=T([]),this},o.prototype.remove=function(E,v){if(!E)return this;for(var D=this.data,O=this.toBBox(E),R=[],M=[],N,_,S;D||R.length;){if(D||(D=R.pop(),_=R[R.length-1],N=M.pop(),S=!0),D.leaf){var w=r(E,D.children,v);if(w!==-1)return D.children.splice(w,1),R.push(D),this._condense(R),this}!S&&!D.leaf&&x(D,O)?(R.push(D),M.push(N),N=0,_=D,D=D.children[0]):_?(N++,D=_.children[N],S=!1):D=null}return this},o.prototype.toBBox=function(E){return E},o.prototype.compareMinX=function(E,v){return E.minX-v.minX},o.prototype.compareMinY=function(E,v){return E.minY-v.minY},o.prototype.toJSON=function(){return this.data},o.prototype.fromJSON=function(E){return this.data=E,this},o.prototype._all=function(E,v){for(var D=[];E;)E.leaf?v.push.apply(v,E.children):D.push.apply(D,E.children),E=D.pop();return v},o.prototype._build=function(E,v,D,O){var R=D-v+1,M=this._maxEntries,N;if(R<=M)return N=T(E.slice(v,D+1)),s(N,this.toBBox),N;O||(O=Math.ceil(Math.log(R)/Math.log(M)),M=Math.ceil(R/Math.pow(M,O-1))),N=T([]),N.leaf=!1,N.height=O;var _=Math.ceil(R/M),S=_*Math.ceil(Math.sqrt(M));C(E,v,D,S,this.compareMinX);for(var w=v;w<=D;w+=S){var I=Math.min(w+S-1,D);C(E,w,I,_,this.compareMinY);for(var L=w;L<=I;L+=_){var B=Math.min(L+_-1,I);N.children.push(this._build(E,L,B,O-1))}}return s(N,this.toBBox),N},o.prototype._chooseSubtree=function(E,v,D,O){for(;O.push(v),!(v.leaf||O.length-1===D);){for(var R=1/0,M=1/0,N=void 0,_=0;_<v.children.length;_++){var S=v.children[_],w=d(S),I=g(E,S)-w;I<M?(M=I,R=w<R?w:R,N=S):I===M&&w<R&&(R=w,N=S)}v=N||v.children[0]}return v},o.prototype._insert=function(E,v,D){var O=D?E:this.toBBox(E),R=[],M=this._chooseSubtree(O,this.data,v,R);for(M.children.push(E),c(M,O);v>=0&&R[v].children.length>this._maxEntries;)this._split(R,v),v--;this._adjustParentBBoxes(O,R,v)},o.prototype._split=function(E,v){var D=E[v],O=D.children.length,R=this._minEntries;this._chooseSplitAxis(D,R,O);var M=this._chooseSplitIndex(D,R,O),N=T(D.children.splice(M,D.children.length-M));N.height=D.height,N.leaf=D.leaf,s(D,this.toBBox),s(N,this.toBBox),v?E[v-1].children.push(N):this._splitRoot(D,N)},o.prototype._splitRoot=function(E,v){this.data=T([E,v]),this.data.height=E.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},o.prototype._chooseSplitIndex=function(E,v,D){for(var O,R=1/0,M=1/0,N=v;N<=D-v;N++){var _=a(E,0,N,this.toBBox),S=a(E,N,D,this.toBBox),w=m(_,S),I=d(_)+d(S);w<R?(R=w,O=N,M=I<M?I:M):w===R&&I<M&&(M=I,O=N)}return O||D-v},o.prototype._chooseSplitAxis=function(E,v,D){var O=E.leaf?this.compareMinX:u,R=E.leaf?this.compareMinY:f,M=this._allDistMargin(E,v,D,O),N=this._allDistMargin(E,v,D,R);M<N&&E.children.sort(O)},o.prototype._allDistMargin=function(E,v,D,O){E.children.sort(O);for(var R=this.toBBox,M=a(E,0,v,R),N=a(E,D-v,D,R),_=p(M)+p(N),S=v;S<D-v;S++){var w=E.children[S];c(M,E.leaf?R(w):w),_+=p(M)}for(var I=D-v-1;I>=v;I--){var L=E.children[I];c(N,E.leaf?R(L):L),_+=p(N)}return _},o.prototype._adjustParentBBoxes=function(E,v,D){for(var O=D;O>=0;O--)c(v[O],E)},o.prototype._condense=function(E){for(var v=E.length-1,D=void 0;v>=0;v--)E[v].children.length===0?v>0?(D=E[v-1].children,D.splice(D.indexOf(E[v]),1)):this.clear():s(E[v],this.toBBox)};function r(A,E,v){if(!v)return E.indexOf(A);for(var D=0;D<E.length;D++)if(v(A,E[D]))return D;return-1}function s(A,E){a(A,0,A.children.length,E,A)}function a(A,E,v,D,O){O||(O=T(null)),O.minX=1/0,O.minY=1/0,O.maxX=-1/0,O.maxY=-1/0;for(var R=E;R<v;R++){var M=A.children[R];c(O,A.leaf?D(M):M)}return O}function c(A,E){return A.minX=Math.min(A.minX,E.minX),A.minY=Math.min(A.minY,E.minY),A.maxX=Math.max(A.maxX,E.maxX),A.maxY=Math.max(A.maxY,E.maxY),A}function u(A,E){return A.minX-E.minX}function f(A,E){return A.minY-E.minY}function d(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function p(A){return A.maxX-A.minX+(A.maxY-A.minY)}function g(A,E){return(Math.max(E.maxX,A.maxX)-Math.min(E.minX,A.minX))*(Math.max(E.maxY,A.maxY)-Math.min(E.minY,A.minY))}function m(A,E){var v=Math.max(A.minX,E.minX),D=Math.max(A.minY,E.minY),O=Math.min(A.maxX,E.maxX),R=Math.min(A.maxY,E.maxY);return Math.max(0,O-v)*Math.max(0,R-D)}function x(A,E){return A.minX<=E.minX&&A.minY<=E.minY&&E.maxX<=A.maxX&&E.maxY<=A.maxY}function b(A,E){return E.minX<=A.maxX&&E.minY<=A.maxY&&E.maxX>=A.minX&&E.maxY>=A.minY}function T(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function C(A,E,v,D,O){for(var R=[E,v];R.length;)if(v=R.pop(),E=R.pop(),!(v-E<=D)){var M=E+Math.ceil((v-E)/D/2)*D;e(A,M,E,v,O),R.push(E,M,M,v)}}return o})});var rpe=qn((g4,ope)=>{(function(e,t){typeof g4=="object"&&typeof ope<"u"?t(g4):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.topojson=e.topojson||{}))})(g4,function(e){"use strict";function t(A){return A}function n(A){if(A==null)return t;var E,v,D=A.scale[0],O=A.scale[1],R=A.translate[0],M=A.translate[1];return function(N,_){_||(E=v=0);var S=2,w=N.length,I=new Array(w);for(I[0]=(E+=N[0])*D+R,I[1]=(v+=N[1])*O+M;S<w;)I[S]=N[S],++S;return I}}function i(A){var E=n(A.transform),v,D=1/0,O=D,R=-D,M=-D;function N(S){S=E(S),S[0]<D&&(D=S[0]),S[0]>R&&(R=S[0]),S[1]<O&&(O=S[1]),S[1]>M&&(M=S[1])}function _(S){switch(S.type){case"GeometryCollection":S.geometries.forEach(_);break;case"Point":N(S.coordinates);break;case"MultiPoint":S.coordinates.forEach(N);break}}A.arcs.forEach(function(S){for(var w=-1,I=S.length,L;++w<I;)L=E(S[w],w),L[0]<D&&(D=L[0]),L[0]>R&&(R=L[0]),L[1]<O&&(O=L[1]),L[1]>M&&(M=L[1])});for(v in A.objects)_(A.objects[v]);return[D,O,R,M]}function o(A,E){for(var v,D=A.length,O=D-E;O<--D;)v=A[O],A[O++]=A[D],A[D]=v}function r(A,E){return typeof E=="string"&&(E=A.objects[E]),E.type==="GeometryCollection"?{type:"FeatureCollection",features:E.geometries.map(function(v){return s(A,v)})}:s(A,E)}function s(A,E){var v=E.id,D=E.bbox,O=E.properties==null?{}:E.properties,R=a(A,E);return v==null&&D==null?{type:"Feature",properties:O,geometry:R}:D==null?{type:"Feature",id:v,properties:O,geometry:R}:{type:"Feature",id:v,bbox:D,properties:O,geometry:R}}function a(A,E){var v=n(A.transform),D=A.arcs;function O(w,I){I.length&&I.pop();for(var L=D[w<0?~w:w],B=0,U=L.length;B<U;++B)I.push(v(L[B],B));w<0&&o(I,U)}function R(w){return v(w)}function M(w){for(var I=[],L=0,B=w.length;L<B;++L)O(w[L],I);return I.length<2&&I.push(I[0]),I}function N(w){for(var I=M(w);I.length<4;)I.push(I[0]);return I}function _(w){return w.map(N)}function S(w){var I=w.type,L;switch(I){case"GeometryCollection":return{type:I,geometries:w.geometries.map(S)};case"Point":L=R(w.coordinates);break;case"MultiPoint":L=w.coordinates.map(R);break;case"LineString":L=M(w.arcs);break;case"MultiLineString":L=w.arcs.map(M);break;case"Polygon":L=_(w.arcs);break;case"MultiPolygon":L=w.arcs.map(_);break;default:return null}return{type:I,coordinates:L}}return S(E)}function c(A,E){var v={},D={},O={},R=[],M=-1;E.forEach(function(S,w){var I=A.arcs[S<0?~S:S],L;I.length<3&&!I[1][0]&&!I[1][1]&&(L=E[++M],E[M]=S,E[w]=L)}),E.forEach(function(S){var w=N(S),I=w[0],L=w[1],B,U;if(B=O[I])if(delete O[B.end],B.push(S),B.end=L,U=D[L]){delete D[U.start];var V=U===B?B:B.concat(U);D[V.start=B.start]=O[V.end=U.end]=V}else D[B.start]=O[B.end]=B;else if(B=D[L])if(delete D[B.start],B.unshift(S),B.start=I,U=O[I]){delete O[U.end];var G=U===B?B:U.concat(B);D[G.start=U.start]=O[G.end=B.end]=G}else D[B.start]=O[B.end]=B;else B=[S],D[B.start=I]=O[B.end=L]=B});function N(S){var w=A.arcs[S<0?~S:S],I=w[0],L;return A.transform?(L=[0,0],w.forEach(function(B){L[0]+=B[0],L[1]+=B[1]})):L=w[w.length-1],S<0?[L,I]:[I,L]}function _(S,w){for(var I in S){var L=S[I];delete w[L.start],delete L.start,delete L.end,L.forEach(function(B){v[B<0?~B:B]=1}),R.push(L)}}return _(O,D),_(D,O),E.forEach(function(S){v[S<0?~S:S]||R.push([S])}),R}function u(A){return a(A,f.apply(this,arguments))}function f(A,E,v){var D,O,R;if(arguments.length>1)D=d(A,E,v);else for(O=0,D=new Array(R=A.arcs.length);O<R;++O)D[O]=O;return{type:"MultiLineString",arcs:c(A,D)}}function d(A,E,v){var D=[],O=[],R;function M(I){var L=I<0?~I:I;(O[L]||(O[L]=[])).push({i:I,g:R})}function N(I){I.forEach(M)}function _(I){I.forEach(N)}function S(I){I.forEach(_)}function w(I){switch(R=I,I.type){case"GeometryCollection":I.geometries.forEach(w);break;case"LineString":N(I.arcs);break;case"MultiLineString":case"Polygon":_(I.arcs);break;case"MultiPolygon":S(I.arcs);break}}return w(E),O.forEach(v==null?function(I){D.push(I[0].i)}:function(I){v(I[0].g,I[I.length-1].g)&&D.push(I[0].i)}),D}function p(A){for(var E=-1,v=A.length,D,O=A[v-1],R=0;++E<v;)D=O,O=A[E],R+=D[0]*O[1]-D[1]*O[0];return Math.abs(R)}function g(A){return a(A,m.apply(this,arguments))}function m(A,E){var v={},D=[],O=[];E.forEach(R);function R(_){switch(_.type){case"GeometryCollection":_.geometries.forEach(R);break;case"Polygon":M(_.arcs);break;case"MultiPolygon":_.arcs.forEach(M);break}}function M(_){_.forEach(function(S){S.forEach(function(w){(v[w=w<0?~w:w]||(v[w]=[])).push(_)})}),D.push(_)}function N(_){return p(a(A,{type:"Polygon",arcs:[_]}).coordinates[0])}return D.forEach(function(_){if(!_._){var S=[],w=[_];for(_._=1,O.push(S);_=w.pop();)S.push(_),_.forEach(function(I){I.forEach(function(L){v[L<0?~L:L].forEach(function(B){B._||(B._=1,w.push(B))})})})}}),D.forEach(function(_){delete _._}),{type:"MultiPolygon",arcs:O.map(function(_){var S=[],w;if(_.forEach(function(V){V.forEach(function(G){G.forEach(function(k){v[k<0?~k:k].length<2&&S.push(k)})})}),S=c(A,S),(w=S.length)>1)for(var I=1,L=N(S[0]),B,U;I<w;++I)(B=N(S[I]))>L&&(U=S[0],S[0]=S[I],S[I]=U,L=B);return S}).filter(function(_){return _.length>0})}}function x(A,E){for(var v=0,D=A.length;v<D;){var O=v+D>>>1;A[O]<E?v=O+1:D=O}return v}function b(A){var E={},v=A.map(function(){return[]});function D(V,G){V.forEach(function(k){k<0&&(k=~k);var W=E[k];W?W.push(G):E[k]=[G]})}function O(V,G){V.forEach(function(k){D(k,G)})}function R(V,G){V.type==="GeometryCollection"?V.geometries.forEach(function(k){R(k,G)}):V.type in M&&M[V.type](V.arcs,G)}var M={LineString:D,MultiLineString:O,Polygon:O,MultiPolygon:function(V,G){V.forEach(function(k){O(k,G)})}};A.forEach(R);for(var N in E)for(var _=E[N],S=_.length,w=0;w<S;++w)for(var I=w+1;I<S;++I){var L=_[w],B=_[I],U;(U=v[L])[N=x(U,B)]!==B&&U.splice(N,0,B),(U=v[B])[N=x(U,L)]!==L&&U.splice(N,0,L)}return v}function T(A){if(A==null)return t;var E,v,D=A.scale[0],O=A.scale[1],R=A.translate[0],M=A.translate[1];return function(N,_){_||(E=v=0);var S=2,w=N.length,I=new Array(w),L=Math.round((N[0]-R)/D),B=Math.round((N[1]-M)/O);for(I[0]=L-E,E=L,I[1]=B-v,v=B;S<w;)I[S]=N[S],++S;return I}}function C(A,E){if(A.transform)throw new Error("already quantized");if(!E||!E.scale){if(!((M=Math.floor(E))>=2))throw new Error("n must be \u22652");_=A.bbox||i(A);var v=_[0],D=_[1],O=_[2],R=_[3],M;E={scale:[O-v?(O-v)/(M-1):1,R-D?(R-D)/(M-1):1],translate:[v,D]}}else _=A.bbox;var N=T(E),_,S,w=A.objects,I={};function L(V){return N(V)}function B(V){var G;switch(V.type){case"GeometryCollection":G={type:"GeometryCollection",geometries:V.geometries.map(B)};break;case"Point":G={type:"Point",coordinates:L(V.coordinates)};break;case"MultiPoint":G={type:"MultiPoint",coordinates:V.coordinates.map(L)};break;default:return V}return V.id!=null&&(G.id=V.id),V.bbox!=null&&(G.bbox=V.bbox),V.properties!=null&&(G.properties=V.properties),G}function U(V){var G=0,k=1,W=V.length,q,J=new Array(W);for(J[0]=N(V[0],0);++G<W;)((q=N(V[G],G))[0]||q[1])&&(J[k++]=q);return k===1&&(J[k++]=[0,0]),J.length=k,J}for(S in w)I[S]=B(w[S]);return{type:"Topology",bbox:_,transform:E,objects:I,arcs:A.arcs.map(U)}}e.bbox=i,e.feature=r,e.merge=g,e.mergeArcs=m,e.mesh=u,e.meshArcs=f,e.neighbors=b,e.quantize=C,e.transform=n,e.untransform=T,Object.defineProperty(e,"__esModule",{value:!0})})});var Spe=qn(b4=>{"use strict";Object.defineProperty(b4,"__esModule",{value:!0});b4.version=void 0;b4.version="4.0.0"});var _S=qn(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.assertNever=Cc.removeWithPredicate=Cc.remove=Cc.ellipsis=Cc.defaults=Cc.isBoolean=Cc.isUndefined=void 0;function vpe(e){return e===void 0}Cc.isUndefined=vpe;function tnt(e){return typeof e=="boolean"}Cc.isBoolean=tnt;function nnt(e,t){for(var n in t)t.hasOwnProperty(n)&&vpe(e[n])&&(e[n]=t[n]);return e}Cc.defaults=nnt;function int(e,t,n){var i;return e.length>t&&(n==null?(n="&hellip;",i=3):i=n.length,e=e.substring(0,t-i)+n),e}Cc.ellipsis=int;function ont(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}Cc.remove=ont;function rnt(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}Cc.removeWithPredicate=rnt;function snt(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}Cc.assertNever=snt});var _T=qn(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.alphaNumericAndMarksRe=Ei.alphaNumericAndMarksCharsStr=Ei.alphaNumericCharsRe=Ei.decimalNumbersStr=Ei.alphaCharsAndMarksStr=Ei.marksStr=Ei.emojiStr=Ei.alphaCharsStr=Ei.controlCharsRe=Ei.quoteRe=Ei.whitespaceRe=Ei.nonDigitRe=Ei.digitRe=Ei.letterRe=void 0;Ei.letterRe=/[A-Za-z]/;Ei.digitRe=/[\d]/;Ei.nonDigitRe=/[\D]/;Ei.whitespaceRe=/\s/;Ei.quoteRe=/['"]/;Ei.controlCharsRe=/[\x00-\x1F\x7F]/;Ei.alphaCharsStr=/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;Ei.emojiStr=/\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;Ei.marksStr=/\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;Ei.alphaCharsAndMarksStr=Ei.alphaCharsStr+Ei.emojiStr+Ei.marksStr;Ei.decimalNumbersStr=/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;Ei.alphaNumericCharsRe=new RegExp("[".concat(Ei.alphaCharsStr+Ei.decimalNumbersStr,"]"));Ei.alphaNumericAndMarksCharsStr=Ei.alphaCharsAndMarksStr+Ei.decimalNumbersStr;Ei.alphaNumericAndMarksRe=new RegExp("[".concat(Ei.alphaNumericAndMarksCharsStr,"]"))});var A4=qn(C4=>{"use strict";Object.defineProperty(C4,"__esModule",{value:!0});C4.HtmlTag=void 0;var T4=_T(),ant=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(T4.whitespaceRe):[],o=t.split(T4.whitespaceRe),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(T4.whitespaceRe):[],o=t.split(T4.whitespaceRe),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}();C4.HtmlTag=ant});var wpe=qn(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});E4.truncateSmart=void 0;function cnt(e,t,n){var i,o;n==null?(n="&hellip;",o=3,i=8):(o=n.length,i=n.length);var r=function(C){var A={},E=C,v=E.match(/^([a-z]+):\/\//i);return v&&(A.scheme=v[1],E=E.substr(v[0].length)),v=E.match(/^(.*?)(?=(\?|#|\/|$))/i),v&&(A.host=v[1],E=E.substr(v[0].length)),v=E.match(/^\/(.*?)(?=(\?|#|$))/i),v&&(A.path=v[1],E=E.substr(v[0].length)),v=E.match(/^\?(.*?)(?=(#|$))/i),v&&(A.query=v[1],E=E.substr(v[0].length)),v=E.match(/^#(.*?)$/i),v&&(A.fragment=v[1]),A},s=function(C){var A="";return C.scheme&&C.host&&(A+=C.scheme+"://"),C.host&&(A+=C.host),C.path&&(A+="/"+C.path),C.query&&(A+="?"+C.query),C.fragment&&(A+="#"+C.fragment),A},a=function(C,A){var E=A/2,v=Math.ceil(E),D=-1*Math.floor(E),O="";return D<0&&(O=C.substr(D)),C.substr(0,v)+n+O};if(e.length<=t)return e;var c=t-o,u=r(e);if(u.query){var f=u.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(u.query=u.query.substr(0,f[1].length),e=s(u))}if(e.length<=t||(u.host&&(u.host=u.host.replace(/^www\./,""),e=s(u)),e.length<=t))return e;var d="";if(u.host&&(d+=u.host),d.length>=c)return u.host.length==t?(u.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(u.path&&(p+="/"+u.path),u.query&&(p+="?"+u.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(u.fragment){var m="#"+u.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(u.scheme&&u.host){var b=u.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)}E4.truncateSmart=cnt});var Dpe=qn(S4=>{"use strict";Object.defineProperty(S4,"__esModule",{value:!0});S4.truncateMiddle=void 0;function lnt(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="&hellip;",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)}S4.truncateMiddle=lnt});var Ipe=qn(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});v4.truncateEnd=void 0;var unt=_S();function fnt(e,t,n){return(0,unt.ellipsis)(e,t,n)}v4.truncateEnd=fnt});var Aq=qn(w4=>{"use strict";Object.defineProperty(w4,"__esModule",{value:!0});w4.AnchorTagBuilder=void 0;var dnt=A4(),hnt=wpe(),mnt=Dpe(),pnt=Ipe(),_nt=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 dnt.HtmlTag({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"?(0,hnt.truncateSmart)(t,i):o==="middle"?(0,mnt.truncateMiddle)(t,i):(0,pnt.truncateEnd)(t,i)},e}();w4.AnchorTagBuilder=_nt});var Nm={};BQ(Nm,{__addDisposableResource:()=>e_e,__assign:()=>D4,__asyncDelegator:()=>qpe,__asyncGenerator:()=>jpe,__asyncValues:()=>Ype,__await:()=>gS,__awaiter:()=>Vpe,__classPrivateFieldGet:()=>$pe,__classPrivateFieldIn:()=>Jpe,__classPrivateFieldSet:()=>Qpe,__createBinding:()=>P4,__decorate:()=>Ope,__disposeResources:()=>t_e,__esDecorate:()=>Lpe,__exportStar:()=>zpe,__extends:()=>Ppe,__generator:()=>Upe,__importDefault:()=>Zpe,__importStar:()=>Kpe,__makeTemplateObject:()=>Xpe,__metadata:()=>kpe,__param:()=>Mpe,__propKey:()=>Fpe,__read:()=>vq,__rest:()=>Rpe,__rewriteRelativeImportExtension:()=>n_e,__runInitializers:()=>Npe,__setFunctionName:()=>Bpe,__spread:()=>Hpe,__spreadArray:()=>Wpe,__spreadArrays:()=>Gpe,__values:()=>I4,default:()=>xnt});function Ppe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Eq(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Rpe(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]]);return n}function Ope(e,t,n,i){var o=arguments.length,r=o<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,n):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(r=(o<3?s(r):o>3?s(t,n,r):s(t,n))||r);return o>3&&r&&Object.defineProperty(t,n,r),r}function Mpe(e,t){return function(n,i){t(n,i,e)}}function Lpe(e,t,n,i,o,r){function s(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var a=i.kind,c=a==="getter"?"get":a==="setter"?"set":"value",u=!t&&e?i.static?e:e.prototype:null,f=t||(u?Object.getOwnPropertyDescriptor(u,i.name):{}),d,p=!1,g=n.length-1;g>=0;g--){var m={};for(var x in i)m[x]=x==="access"?{}:i[x];for(var x in i.access)m.access[x]=i.access[x];m.addInitializer=function(T){if(p)throw new TypeError("Cannot add initializers after decoration has completed");r.push(s(T||null))};var b=(0,n[g])(a==="accessor"?{get:f.get,set:f.set}:f[c],m);if(a==="accessor"){if(b===void 0)continue;if(b===null||typeof b!="object")throw new TypeError("Object expected");(d=s(b.get))&&(f.get=d),(d=s(b.set))&&(f.set=d),(d=s(b.init))&&o.unshift(d)}else(d=s(b))&&(a==="field"?o.unshift(d):f[c]=d)}u&&Object.defineProperty(u,i.name,f),p=!0}function Npe(e,t,n){for(var i=arguments.length>2,o=0;o<t.length;o++)n=i?t[o].call(e,n):t[o].call(e);return i?n:void 0}function Fpe(e){return typeof e=="symbol"?e:"".concat(e)}function Bpe(e,t,n){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function kpe(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function Vpe(e,t,n,i){function o(r){return r instanceof n?r:new n(function(s){s(r)})}return new(n||(n=Promise))(function(r,s){function a(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?r(f.value):o(f.value).then(a,c)}u((i=i.apply(e,t||[])).next())})}function Upe(e,t){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},i,o,r,s=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(n=0)),n;)try{if(i=1,o&&(r=u[0]&2?o.return:u[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,u[1])).done)return r;switch(o=0,r&&(u=[u[0]&2,r.value]),u[0]){case 0:case 1:r=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,o=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(r=n.trys,!(r=r.length>0&&r[r.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!r||u[1]>r[0]&&u[1]<r[3])){n.label=u[1];break}if(u[0]===6&&n.label<r[1]){n.label=r[1],r=u;break}if(r&&n.label<r[2]){n.label=r[2],n.ops.push(u);break}r[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(f){u=[6,f],o=0}finally{i=r=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function zpe(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&P4(t,e,n)}function I4(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function vq(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var i=n.call(e),o,r=[],s;try{for(;(t===void 0||t-- >0)&&!(o=i.next()).done;)r.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(s)throw s.error}}return r}function Hpe(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(vq(arguments[t]));return e}function Gpe(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var i=Array(e),o=0,t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}function Wpe(e,t,n){if(n||arguments.length===2)for(var i=0,o=t.length,r;i<o;i++)(r||!(i in t))&&(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function gS(e){return this instanceof gS?(this.v=e,this):new gS(e)}function jpe(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n.apply(e,t||[]),o,r=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(g){return function(m){return Promise.resolve(m).then(g,d)}}function a(g,m){i[g]&&(o[g]=function(x){return new Promise(function(b,T){r.push([g,x,b,T])>1||c(g,x)})},m&&(o[g]=m(o[g])))}function c(g,m){try{u(i[g](m))}catch(x){p(r[0][3],x)}}function u(g){g.value instanceof gS?Promise.resolve(g.value.v).then(f,d):p(r[0][2],g)}function f(g){c("next",g)}function d(g){c("throw",g)}function p(g,m){g(m),r.shift(),r.length&&c(r[0][0],r[0][1])}}function qpe(e){var t,n;return t={},i("next"),i("throw",function(o){throw o}),i("return"),t[Symbol.iterator]=function(){return this},t;function i(o,r){t[o]=e[o]?function(s){return(n=!n)?{value:gS(e[o](s)),done:!1}:r?r(s):s}:r}}function Ype(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof I4=="function"?I4(e):e[Symbol.iterator](),n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n);function i(r){n[r]=e[r]&&function(s){return new Promise(function(a,c){s=e[r](s),o(a,c,s.done,s.value)})}}function o(r,s,a,c){Promise.resolve(c).then(function(u){r({value:u,done:a})},s)}}function Xpe(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Kpe(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=Sq(e),i=0;i<n.length;i++)n[i]!=="default"&&P4(t,e,n[i]);return gnt(t,e),t}function Zpe(e){return e&&e.__esModule?e:{default:e}}function $pe(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)}function Qpe(e,t,n,i,o){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?o.call(e,n):o?o.value=n:t.set(e,n),n}function Jpe(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function e_e(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var i,o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=t[Symbol.asyncDispose]}if(i===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=t[Symbol.dispose],n&&(o=i)}if(typeof i!="function")throw new TypeError("Object not disposable.");o&&(i=function(){try{o.call(this)}catch(r){return Promise.reject(r)}}),e.stack.push({value:t,dispose:i,async:n})}else n&&e.stack.push({async:!0});return t}function t_e(e){function t(r){e.error=e.hasError?new ynt(r,e.error,"An error was suppressed during disposal."):r,e.hasError=!0}var n,i=0;function o(){for(;n=e.stack.pop();)try{if(!n.async&&i===1)return i=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var r=n.dispose.call(n.value);if(n.async)return i|=2,Promise.resolve(r).then(o,function(s){return t(s),o()})}else i|=1}catch(s){t(s)}if(i===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return o()}function n_e(e,t){return typeof e=="string"&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(n,i,o,r,s){return i?t?".jsx":".js":o&&(!r||!s)?n:o+r+"."+s.toLowerCase()+"js"}):e}var Eq,D4,P4,gnt,Sq,ynt,xnt,Fm=OEe(()=>{Eq=function(e,t){return Eq=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])},Eq(e,t)};D4=function(){return D4=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},D4.apply(this,arguments)};P4=Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]};gnt=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},Sq=function(e){return Sq=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},Sq(e)};ynt=typeof SuppressedError=="function"?SuppressedError:function(e,t,n){var i=new Error(n);return i.name="SuppressedError",i.error=e,i.suppressed=t,i};xnt={__extends:Ppe,__assign:D4,__rest:Rpe,__decorate:Ope,__param:Mpe,__esDecorate:Lpe,__runInitializers:Npe,__propKey:Fpe,__setFunctionName:Bpe,__metadata:kpe,__awaiter:Vpe,__generator:Upe,__createBinding:P4,__exportStar:zpe,__values:I4,__read:vq,__spread:Hpe,__spreadArrays:Gpe,__spreadArray:Wpe,__await:gS,__asyncGenerator:jpe,__asyncDelegator:qpe,__asyncValues:Ype,__makeTemplateObject:Xpe,__importStar:Kpe,__importDefault:Zpe,__classPrivateFieldGet:$pe,__classPrivateFieldSet:Qpe,__classPrivateFieldIn:Jpe,__addDisposableResource:e_e,__disposeResources:t_e,__rewriteRelativeImportExtension:n_e}});var gT=qn(R4=>{"use strict";Object.defineProperty(R4,"__esModule",{value:!0});R4.AbstractMatch=void 0;var bnt=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}();R4.AbstractMatch=bnt});var i_e=qn(yT=>{"use strict";Object.defineProperty(yT,"__esModule",{value:!0});yT.tldRegex=yT.tldRegexStr=void 0;yT.tldRegexStr="(?: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)";yT.tldRegex=new RegExp("^"+yT.tldRegexStr+"$")});var O4=qn(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.isValidIpV4Address=Bn.isValidTldMatch=Bn.isValidSchemeUrl=Bn.isKnownTld=Bn.isUrlSuffixStartChar=Bn.isPathChar=Bn.isDomainLabelChar=Bn.isDomainLabelStartChar=Bn.isSchemeChar=Bn.isSchemeStartChar=Bn.tldUrlHostRe=Bn.schemeUrlRe=Bn.invalidSchemeRe=Bn.urlSuffixedCharsNotAllowedAtEndRe=Bn.httpSchemePrefixRe=Bn.httpSchemeRe=Bn.urlSuffixNotAllowedAsLastCharRe=Bn.urlSuffixAllowedSpecialCharsRe=Bn.urlSuffixStartCharsRe=Bn.domainNameCharRegex=void 0;var xT=_T(),Tnt=i_e();Bn.domainNameCharRegex=xT.alphaNumericAndMarksRe;Bn.urlSuffixStartCharsRe=/[\/?#]/;Bn.urlSuffixAllowedSpecialCharsRe=/[-+&@#/%=~_()|'$*\[\]{}\u2713]/;Bn.urlSuffixNotAllowedAsLastCharRe=/[?!:,.;^]/;Bn.httpSchemeRe=/https?:\/\//i;Bn.httpSchemePrefixRe=new RegExp("^"+Bn.httpSchemeRe.source,"i");Bn.urlSuffixedCharsNotAllowedAtEndRe=new RegExp(Bn.urlSuffixNotAllowedAsLastCharRe.source+"$");Bn.invalidSchemeRe=/^(javascript|vbscript):/i;Bn.schemeUrlRe=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/;Bn.tldUrlHostRe=/^(?:\/\/)?([^/#?:]+)/;function Cnt(e){return xT.letterRe.test(e)}Bn.isSchemeStartChar=Cnt;function Ant(e){return xT.letterRe.test(e)||xT.digitRe.test(e)||e==="+"||e==="-"||e==="."}Bn.isSchemeChar=Ant;function o_e(e){return xT.alphaNumericAndMarksRe.test(e)}Bn.isDomainLabelStartChar=o_e;function Ent(e){return e==="_"||o_e(e)}Bn.isDomainLabelChar=Ent;function Snt(e){return xT.alphaNumericAndMarksRe.test(e)||Bn.urlSuffixAllowedSpecialCharsRe.test(e)||Bn.urlSuffixNotAllowedAsLastCharRe.test(e)}Bn.isPathChar=Snt;function vnt(e){return Bn.urlSuffixStartCharsRe.test(e)}Bn.isUrlSuffixStartChar=vnt;function r_e(e){return Tnt.tldRegex.test(e.toLowerCase())}Bn.isKnownTld=r_e;function wnt(e){if(Bn.invalidSchemeRe.test(e))return!1;var t=e.match(Bn.schemeUrlRe);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!xT.letterRe.test(i))}Bn.isValidSchemeUrl=wnt;function Dnt(e){var t=e.match(Bn.tldUrlHostRe);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var o=i[i.length-1];return!!r_e(o)}Bn.isValidTldMatch=Dnt;var Int=/^(?:(?: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]?)$/,Pnt=/[:/?#]/;function Rnt(e){var t=e.split(Pnt,1)[0];return Int.test(t)}Bn.isValidIpV4Address=Rnt});var wq=qn(M4=>{"use strict";Object.defineProperty(M4,"__esModule",{value:!0});M4.UrlMatch=void 0;var Ont=(Fm(),Xh(Nm)),Mnt=gT(),Lnt=O4(),Nnt=/^(https?:\/\/)?(www\.)?/i,Fnt=/^\/\//,Bnt=function(e){(0,Ont.__extends)(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(/&amp;/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=Unt(n)),this.stripPrefix.scheme&&(n=knt(n)),this.stripPrefix.www&&(n=Vnt(n)),this.stripTrailingSlash&&(n=znt(n)),this.decodePercentEncoding&&(n=Hnt(n)),n},t}(Mnt.AbstractMatch);M4.UrlMatch=Bnt;function knt(e){return e.replace(Lnt.httpSchemePrefixRe,"")}function Vnt(e){return e.replace(Nnt,"$1")}function Unt(e){return e.replace(Fnt,"")}function znt(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function Hnt(e){var t=e.replace(/%22/gi,"&quot;").replace(/%26/gi,"&amp;").replace(/%27/gi,"&#39;").replace(/%3C/gi,"&lt;").replace(/%3E/gi,"&gt;");try{return decodeURIComponent(t)}catch{return t}}});var a_e=qn(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.isValidEmail=Bm.isEmailLocalPartChar=Bm.isEmailLocalPartStartChar=Bm.mailtoSchemePrefixRe=void 0;var s_e=_T(),Gnt=O4();Bm.mailtoSchemePrefixRe=/^mailto:/i;var Wnt=new RegExp("[".concat(s_e.alphaNumericAndMarksCharsStr,"!#$%&'*+/=?^_`{|}~-]"));function jnt(e){return s_e.alphaNumericAndMarksRe.test(e)}Bm.isEmailLocalPartStartChar=jnt;function qnt(e){return Wnt.test(e)}Bm.isEmailLocalPartChar=qnt;function Ynt(e){var t=e.split(".").pop()||"";return(0,Gnt.isKnownTld)(t)}Bm.isValidEmail=Ynt});var Dq=qn(L4=>{"use strict";Object.defineProperty(L4,"__esModule",{value:!0});L4.EmailMatch=void 0;var Xnt=(Fm(),Xh(Nm)),Knt=gT(),Znt=function(e){(0,Xnt.__extends)(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}(Knt.AbstractMatch);L4.EmailMatch=Znt});var Iq=qn(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});r0.hashtagServices=r0.isValidHashtag=r0.isHashtagTextChar=void 0;var $nt=_T();function Qnt(e){return e==="_"||$nt.alphaNumericAndMarksRe.test(e)}r0.isHashtagTextChar=Qnt;function Jnt(e){return e.length<=140}r0.isValidHashtag=Jnt;r0.hashtagServices=["twitter","facebook","instagram","tiktok"]});var Pq=qn(N4=>{"use strict";Object.defineProperty(N4,"__esModule",{value:!0});N4.HashtagMatch=void 0;var eit=(Fm(),Xh(Nm)),tit=_S(),nit=gT(),iit=function(e){(0,eit.__extends)(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://twitter.com/hashtag/"+i;case"facebook":return"https://www.facebook.com/hashtag/"+i;case"instagram":return"https://instagram.com/explore/tags/"+i;case"tiktok":return"https://www.tiktok.com/tag/"+i;default:throw(0,tit.assertNever)(n),new Error("Invalid hashtag service: ".concat(n))}},t.prototype.getAnchorText=function(){return"#"+this.hashtag},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(nit.AbstractMatch);N4.HashtagMatch=iit});var Rq=qn(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});s0.mentionServices=s0.isValidMention=s0.isMentionTextChar=void 0;var oit={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/},rit=/[-\w.]/;function sit(e){return rit.test(e)}s0.isMentionTextChar=sit;function ait(e,t){var n=oit[t];return n.test(e)}s0.isValidMention=ait;s0.mentionServices=["twitter","instagram","soundcloud","tiktok"]});var Oq=qn(F4=>{"use strict";Object.defineProperty(F4,"__esModule",{value:!0});F4.MentionMatch=void 0;var cit=(Fm(),Xh(Nm)),lit=gT(),uit=function(e){(0,cit.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="mention",i.serviceName="twitter",i.mention="",i.mention=n.mention,i.serviceName=n.serviceName,i}return t.prototype.getType=function(){return"mention"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;case"tiktok":return"https://www.tiktok.com/@"+this.mention;default:throw new Error("Unknown service name to point mention to: "+this.serviceName)}},t.prototype.getAnchorText=function(){return"@"+this.mention},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(lit.AbstractMatch);F4.MentionMatch=uit});var c_e=qn(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});a0.isValidPhoneNumber=a0.isPhoneNumberControlChar=a0.isPhoneNumberSeparatorChar=void 0;var fit=/[-. ]/,dit=/[-. ()]/,hit=/[,;]/,mit=/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/,pit=/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/,_it=new RegExp("^".concat(mit.source,"|").concat(pit.source,"$"));function git(e){return fit.test(e)}a0.isPhoneNumberSeparatorChar=git;function yit(e){return hit.test(e)}a0.isPhoneNumberControlChar=yit;function xit(e){var t=e.charAt(0)==="+"||dit.test(e);return t&&_it.test(e)}a0.isValidPhoneNumber=xit});var Mq=qn(B4=>{"use strict";Object.defineProperty(B4,"__esModule",{value:!0});B4.PhoneMatch=void 0;var bit=(Fm(),Xh(Nm)),Tit=gT(),Cit=function(e){(0,bit.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="phone",i.number="",i.plusSign=!1,i.number=n.number,i.plusSign=n.plusSign,i}return t.prototype.getType=function(){return"phone"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return"tel:"+(this.plusSign?"+":"")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(Tit.AbstractMatch);B4.PhoneMatch=Cit});var Vq=qn(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.excludeUnbalancedTrailingBracesAndPunctuation=bS.parseMatches=void 0;var Ba=_T(),Ait=wq(),So=_S(),hr=O4(),yS=a_e(),Eit=Dq(),Lq=Iq(),Sit=Pq(),Nq=Rq(),vit=Oq(),xS=c_e(),wit=Mq();function Dit(e,t){for(var n=t.tagBuilder,i=t.stripPrefix,o=t.stripTrailingSlash,r=t.decodePercentEncoding,s=t.hashtagServiceName,a=t.mentionServiceName,c=[],u=e.length,f=[],d=0;d<u;d++){var p=e.charAt(d);if(f.length===0)b(p);else for(var g=f.length-1;g>=0;g--){var m=f[g];switch(m.state){case 11:D(m,p);break;case 12:O(m,p);break;case 0:T(m,p);break;case 1:C(m,p);break;case 2:A(m,p);break;case 3:E(m,p);break;case 4:v(m,p);break;case 5:R(m,p);break;case 6:M(m,p);break;case 7:N(m,p);break;case 13:_(m,p);break;case 14:S(m,p);break;case 8:w(m,p);break;case 9:I(m,p);break;case 10:L(m,p);break;case 15:B(m,p);break;case 16:U(m,p);break;case 17:V(m,p);break;case 18:G(m,p);break;case 19:k(m,p);break;case 20:W(m,p);break;case 21:q(m,p);break;case 22:J(m,p);break;case 23:j(m,p);break;case 24:K(m,p);break;case 25:Q(m,p);break;case 26:de(m,p);break;case 27:ye(m,p);break;case 28:ae(m,p);break;case 29:_e(m,p);break;case 30:xe(m,p);break;case 31:De(m,p);break;case 32:ke(m,p);break;case 33:ze(m,p);break;case 34:tt(m,p);break;case 35:wt(m,p);break;case 36:pt(m,p);break;case 37:Ae(m,p);break;case 38:Be(m,p);break;case 39:Yt(m,p);break;case 40:Ct(m,p);break;case 41:lt(m,p);break;default:(0,So.assertNever)(m.state)}}}for(var x=f.length-1;x>=0;x--)f.forEach(function(Ce){return tn(Ce)});return c;function b(Ce){if(Ce==="#")f.push(Oit(d,28));else if(Ce==="@")f.push(Mit(d,30));else if(Ce==="/")f.push(Bq(d,11));else if(Ce==="+")f.push(kq(d,37));else if(Ce==="(")f.push(kq(d,32));else{if(Ba.digitRe.test(Ce)&&(f.push(kq(d,38)),f.push(Pit(d,13))),(0,yS.isEmailLocalPartStartChar)(Ce)){var Te=Ce.toLowerCase()==="m"?15:22;f.push(Rit(d,Te))}(0,hr.isSchemeStartChar)(Ce)&&f.push(Fq(d,0)),Ba.alphaNumericAndMarksRe.test(Ce)&&f.push(Bq(d,5))}}function T(Ce,Te){Te===":"?Ce.state=2:Te==="-"?Ce.state=1:(0,hr.isSchemeChar)(Te)||(0,So.remove)(f,Ce)}function C(Ce,Te){Te==="-"||(Te==="/"?((0,So.remove)(f,Ce),f.push(Bq(d,11))):(0,hr.isSchemeChar)(Te)?Ce.state=0:(0,So.remove)(f,Ce))}function A(Ce,Te){Te==="/"?Ce.state=3:Te==="."?(0,So.remove)(f,Ce):(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=5,(0,hr.isSchemeStartChar)(Te)&&f.push(Fq(d,0))):(0,So.remove)(f,Ce)}function E(Ce,Te){Te==="/"?Ce.state=4:(0,hr.isPathChar)(Te)?(Ce.state=10,Ce.acceptStateReached=!0):tn(Ce)}function v(Ce,Te){Te==="/"?Ce.state=10:(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=5,Ce.acceptStateReached=!0):(0,So.remove)(f,Ce)}function D(Ce,Te){Te==="/"?Ce.state=12:(0,So.remove)(f,Ce)}function O(Ce,Te){(0,hr.isDomainLabelStartChar)(Te)?Ce.state=5:(0,So.remove)(f,Ce)}function R(Ce,Te){Te==="."?Ce.state=7:Te==="-"?Ce.state=6:Te===":"?Ce.state=8:(0,hr.isUrlSuffixStartChar)(Te)?Ce.state=10:(0,hr.isDomainLabelChar)(Te)||tn(Ce)}function M(Ce,Te){Te==="-"||(Te==="."?tn(Ce):(0,hr.isDomainLabelStartChar)(Te)?Ce.state=5:tn(Ce))}function N(Ce,Te){Te==="."?tn(Ce):(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=5,Ce.acceptStateReached=!0):tn(Ce)}function _(Ce,Te){Te==="."?Ce.state=14:Te===":"?Ce.state=8:Ba.digitRe.test(Te)||((0,hr.isUrlSuffixStartChar)(Te)?Ce.state=10:Ba.alphaNumericAndMarksRe.test(Te)?(0,So.remove)(f,Ce):tn(Ce))}function S(Ce,Te){Ba.digitRe.test(Te)?(Ce.octetsEncountered++,Ce.octetsEncountered===4&&(Ce.acceptStateReached=!0),Ce.state=13):tn(Ce)}function w(Ce,Te){Ba.digitRe.test(Te)?Ce.state=9:tn(Ce)}function I(Ce,Te){Ba.digitRe.test(Te)||((0,hr.isUrlSuffixStartChar)(Te)?Ce.state=10:tn(Ce))}function L(Ce,Te){(0,hr.isPathChar)(Te)||tn(Ce)}function B(Ce,Te){Te.toLowerCase()==="a"?Ce.state=16:J(Ce,Te)}function U(Ce,Te){Te.toLowerCase()==="i"?Ce.state=17:J(Ce,Te)}function V(Ce,Te){Te.toLowerCase()==="l"?Ce.state=18:J(Ce,Te)}function G(Ce,Te){Te.toLowerCase()==="t"?Ce.state=19:J(Ce,Te)}function k(Ce,Te){Te.toLowerCase()==="o"?Ce.state=20:J(Ce,Te)}function W(Ce,Te){Te.toLowerCase()===":"?Ce.state=21:J(Ce,Te)}function q(Ce,Te){(0,yS.isEmailLocalPartChar)(Te)?Ce.state=22:(0,So.remove)(f,Ce)}function J(Ce,Te){Te==="."?Ce.state=23:Te==="@"?Ce.state=24:(0,yS.isEmailLocalPartChar)(Te)?Ce.state=22:(0,So.remove)(f,Ce)}function j(Ce,Te){Te==="."||Te==="@"?(0,So.remove)(f,Ce):(0,yS.isEmailLocalPartChar)(Te)?Ce.state=22:(0,So.remove)(f,Ce)}function K(Ce,Te){(0,hr.isDomainLabelStartChar)(Te)?Ce.state=25:(0,So.remove)(f,Ce)}function Q(Ce,Te){Te==="."?Ce.state=27:Te==="-"?Ce.state=26:(0,hr.isDomainLabelChar)(Te)||tn(Ce)}function de(Ce,Te){Te==="-"||Te==="."?tn(Ce):(0,hr.isDomainLabelChar)(Te)?Ce.state=25:tn(Ce)}function ye(Ce,Te){Te==="."||Te==="-"?tn(Ce):(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=25,Ce.acceptStateReached=!0):tn(Ce)}function ae(Ce,Te){(0,Lq.isHashtagTextChar)(Te)?(Ce.state=29,Ce.acceptStateReached=!0):(0,So.remove)(f,Ce)}function _e(Ce,Te){(0,Lq.isHashtagTextChar)(Te)||tn(Ce)}function xe(Ce,Te){(0,Nq.isMentionTextChar)(Te)?(Ce.state=31,Ce.acceptStateReached=!0):(0,So.remove)(f,Ce)}function De(Ce,Te){(0,Nq.isMentionTextChar)(Te)||(Ba.alphaNumericAndMarksRe.test(Te)?(0,So.remove)(f,Ce):tn(Ce))}function Ae(Ce,Te){Ba.digitRe.test(Te)?Ce.state=38:((0,So.remove)(f,Ce),b(Te))}function ke(Ce,Te){Ba.digitRe.test(Te)?Ce.state=33:(0,So.remove)(f,Ce),b(Te)}function ze(Ce,Te){Ba.digitRe.test(Te)?Ce.state=34:(0,So.remove)(f,Ce)}function tt(Ce,Te){Ba.digitRe.test(Te)?Ce.state=35:(0,So.remove)(f,Ce)}function wt(Ce,Te){Te===")"?Ce.state=36:(0,So.remove)(f,Ce)}function pt(Ce,Te){Ba.digitRe.test(Te)?Ce.state=38:(0,xS.isPhoneNumberSeparatorChar)(Te)?Ce.state=39:(0,So.remove)(f,Ce)}function Be(Ce,Te){Ce.acceptStateReached=!0,(0,xS.isPhoneNumberControlChar)(Te)?Ce.state=40:Te==="#"?Ce.state=41:Ba.digitRe.test(Te)||(Te==="("?Ce.state=32:(0,xS.isPhoneNumberSeparatorChar)(Te)?Ce.state=39:(tn(Ce),(0,hr.isSchemeStartChar)(Te)&&f.push(Fq(d,0))))}function Yt(Ce,Te){Ba.digitRe.test(Te)?Ce.state=38:Te==="("?Ce.state=32:(tn(Ce),b(Te))}function Ct(Ce,Te){(0,xS.isPhoneNumberControlChar)(Te)||(Te==="#"?Ce.state=41:Ba.digitRe.test(Te)?Ce.state=38:tn(Ce))}function lt(Ce,Te){(0,xS.isPhoneNumberControlChar)(Te)?Ce.state=40:Ba.digitRe.test(Te)?(0,So.remove)(f,Ce):tn(Ce)}function tn(Ce){if((0,So.remove)(f,Ce),!!Ce.acceptStateReached){var Te=Ce.startIdx,it=e.slice(Ce.startIdx,d);if(it=f_e(it),Ce.type==="url"){var Wi=e.charAt(Ce.startIdx-1);if(Wi==="@")return;var ut=Ce.matchType;if(ut==="scheme"){var go=hr.httpSchemeRe.exec(it);if(go&&(Te=Te+go.index,it=it.slice(go.index)),!(0,hr.isValidSchemeUrl)(it))return}else if(ut==="tld"){if(!(0,hr.isValidTldMatch)(it))return}else if(ut==="ipV4"){if(!(0,hr.isValidIpV4Address)(it))return}else(0,So.assertNever)(ut);c.push(new Ait.UrlMatch({tagBuilder:n,matchedText:it,offset:Te,urlMatchType:ut,url:it,protocolRelativeMatch:it.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(Ce.type==="email")(0,yS.isValidEmail)(it)&&c.push(new Eit.EmailMatch({tagBuilder:n,matchedText:it,offset:Te,email:it.replace(yS.mailtoSchemePrefixRe,"")}));else if(Ce.type==="hashtag")(0,Lq.isValidHashtag)(it)&&c.push(new Sit.HashtagMatch({tagBuilder:n,matchedText:it,offset:Te,serviceName:s,hashtag:it.slice(1)}));else if(Ce.type==="mention")(0,Nq.isValidMention)(it,a)&&c.push(new vit.MentionMatch({tagBuilder:n,matchedText:it,offset:Te,serviceName:a,mention:it.slice(1)}));else if(Ce.type==="phone"){if(it=it.replace(/ +$/g,""),(0,xS.isValidPhoneNumber)(it)){var Yo=it.replace(/[^0-9,;#]/g,"");c.push(new wit.PhoneMatch({tagBuilder:n,matchedText:it,offset:Te,number:Yo,plusSign:it.charAt(0)==="+"}))}}else(0,So.assertNever)(Ce)}}}bS.parseMatches=Dit;var Iit=/[\(\{\[]/,l_e=/[\)\}\]]/,u_e={")":"(","}":"{","]":"["};function f_e(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n);Iit.test(i)?t[i]++:l_e.test(i)&&t[u_e[i]]--}for(var o=e.length-1,r;o>=0;)if(r=e.charAt(o),l_e.test(r)){var s=u_e[r];if(t[s]<0)t[s]++,o--;else break}else if(hr.urlSuffixedCharsNotAllowedAtEndRe.test(r))o--;else break;return e.slice(0,o+1)}bS.excludeUnbalancedTrailingBracesAndPunctuation=f_e;function Fq(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function Bq(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function Pit(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function Rit(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function Oit(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function Mit(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function kq(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}});var d_e=qn(k4=>{"use strict";Object.defineProperty(k4,"__esModule",{value:!0});k4.parseHtml=void 0;var Ac=(Fm(),Xh(Nm)),sl=_T(),Lit=_S();function Nit(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new km,c=0,u=e.length,f=0,d=0,p=a;c<u;){var g=e.charAt(c);switch(f){case 0:m(g);break;case 1:x(g);break;case 2:T(g);break;case 3:b(g);break;case 4:C(g);break;case 5:A(g);break;case 6:E(g);break;case 7:v(g);break;case 8:D(g);break;case 9:O(g);break;case 10:R(g);break;case 11:M(g);break;case 12:N(g);break;case 13:_(g);break;case 14:S(g);break;case 15:w(g);break;case 16:I(g);break;case 17:L(g);break;case 18:B(g);break;case 19:U(g);break;case 20:V(g);break;default:(0,Lit.assertNever)(f)}c++}d<c&&q();function m(K){K==="<"&&k()}function x(K){K==="!"?f=13:K==="/"?(f=2,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{isClosing:!0}))):K==="<"?k():sl.letterRe.test(K)?(f=3,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{isOpening:!0}))):(f=0,p=a)}function b(K){sl.whitespaceRe.test(K)?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{name:J()})),f=4):K==="<"?k():K==="/"?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{name:J()})),f=12):K===">"?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{name:J()})),W()):!sl.letterRe.test(K)&&!sl.digitRe.test(K)&&K!==":"&&G()}function T(K){K===">"?G():sl.letterRe.test(K)?f=3:G()}function C(K){sl.whitespaceRe.test(K)||(K==="/"?f=12:K===">"?W():K==="<"?k():K==="="||sl.quoteRe.test(K)||sl.controlCharsRe.test(K)?G():f=5)}function A(K){sl.whitespaceRe.test(K)?f=6:K==="/"?f=12:K==="="?f=7:K===">"?W():K==="<"?k():sl.quoteRe.test(K)&&G()}function E(K){sl.whitespaceRe.test(K)||(K==="/"?f=12:K==="="?f=7:K===">"?W():K==="<"?k():sl.quoteRe.test(K)?G():f=5)}function v(K){sl.whitespaceRe.test(K)||(K==='"'?f=8:K==="'"?f=9:/[>=`]/.test(K)?G():K==="<"?k():f=10)}function D(K){K==='"'&&(f=11)}function O(K){K==="'"&&(f=11)}function R(K){sl.whitespaceRe.test(K)?f=4:K===">"?W():K==="<"&&k()}function M(K){sl.whitespaceRe.test(K)?f=4:K==="/"?f=12:K===">"?W():K==="<"?k():(f=4,j())}function N(K){K===">"?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{isClosing:!0})),W()):f=4}function _(K){e.substr(c,2)==="--"?(c+=2,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{type:"doctype"})),f=20):G()}function S(K){K==="-"?f=15:K===">"?G():f=16}function w(K){K==="-"?f=18:K===">"?G():f=16}function I(K){K==="-"&&(f=17)}function L(K){K==="-"?f=18:f=16}function B(K){K===">"?W():K==="!"?f=19:K==="-"||(f=16)}function U(K){K==="-"?f=17:K===">"?W():f=16}function V(K){K===">"?W():K==="<"&&k()}function G(){f=0,p=a}function k(){f=1,p=new km({idx:c})}function W(){var K=e.slice(d,p.idx);K&&o(K,d),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),G(),d=c+1}function q(){var K=e.slice(d,c);o(K,d),d=c+1}function J(){var K=p.idx+(p.isClosing?2:1);return e.slice(K,c).toLowerCase()}function j(){c--}}k4.parseHtml=Nit;var km=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}()});var V4=qn(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});var Fit=Spe(),Rs=_S(),Bit=Aq(),kit=A4(),Vit=Vq(),Uit=d_e(),zit=Rq(),Hit=Iq(),Git=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=Wit(t.urls),this.email=(0,Rs.isBoolean)(t.email)?t.email:this.email,this.phone=(0,Rs.isBoolean)(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=(0,Rs.isBoolean)(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=jit(t.stripPrefix),this.stripTrailingSlash=(0,Rs.isBoolean)(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=(0,Rs.isBoolean)(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&zit.mentionServices.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&Hit.hashtagServices.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=qit(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return(0,Uit.parseHtml)(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi,u=s.split(c),f=a;u.forEach(function(d,p){if(p%2===0){var g=n.parseText(d,f);r.push.apply(r,g)}f+=d.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,u){return c.getOffset()-u.getOffset()});for(var n=0;n<t.length-1;){var i=t[n],o=i.getOffset(),r=i.getMatchedText().length,s=o+r;if(n+1<t.length){if(t[n+1].getOffset()===o){var a=t[n+1].getMatchedText().length>r?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()<s){t.splice(n+1,1);continue}}n++}return t},e.prototype.removeUnwantedMatches=function(t){return this.hashtag||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="hashtag"}),this.email||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="email"}),this.phone||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="phone"}),this.mention||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="ipV4"}),t},e.prototype.parseText=function(t,n){n===void 0&&(n=0),n=n||0;for(var i=(0,Vit.parseMatches)(t,{tagBuilder:this.getTagBuilder(),stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding,hashtagServiceName:this.hashtag,mentionServiceName:this.mention||"twitter"}),o=0,r=i.length;o<r;o++)i[o].setOffset(n+i[o].getOffset());return i},e.prototype.link=function(t){if(!t)return"";this.sanitizeHtml&&(t=t.replace(/</g,"&lt;").replace(/>/g,"&gt;"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r<s;r++){var a=n[r];i.push(t.substring(o,a.getOffset())),i.push(this.createMatchReturnVal(a)),o=a.getOffset()+a.getMatchedText().length}return i.push(t.substring(o)),i.join("")},e.prototype.createMatchReturnVal=function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this.context,t)),typeof n=="string")return n;if(n===!1)return t.getMatchedText();if(n instanceof kit.HtmlTag)return n.toAnchorString();var i=t.buildTag();return i.toAnchorString()},e.prototype.getTagBuilder=function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new Bit.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=Fit.version,e}();Uq.default=Git;function Wit(e){return e==null&&(e=!0),(0,Rs.isBoolean)(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:(0,Rs.isBoolean)(e.schemeMatches)?e.schemeMatches:!0,tldMatches:(0,Rs.isBoolean)(e.tldMatches)?e.tldMatches:!0,ipV4Matches:(0,Rs.isBoolean)(e.ipV4Matches)?e.ipV4Matches:!0}}function jit(e){return e==null&&(e=!0),(0,Rs.isBoolean)(e)?{scheme:e,www:e}:{scheme:(0,Rs.isBoolean)(e.scheme)?e.scheme:!0,www:(0,Rs.isBoolean)(e.www)?e.www:!0}}function qit(e){return typeof e=="number"?{length:e,location:"end"}:(0,Rs.defaults)(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})}});var m_e=qn(h_e=>{"use strict";Object.defineProperty(h_e,"__esModule",{value:!0})});var p_e=qn(Q_=>{"use strict";Object.defineProperty(Q_,"__esModule",{value:!0});var bT=(Fm(),Xh(Nm));(0,bT.__exportStar)(m_e(),Q_);(0,bT.__exportStar)(Dq(),Q_);(0,bT.__exportStar)(Pq(),Q_);(0,bT.__exportStar)(gT(),Q_);(0,bT.__exportStar)(Oq(),Q_);(0,bT.__exportStar)(Mq(),Q_);(0,bT.__exportStar)(wq(),Q_)});var __e=qn(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});var Yit=(Fm(),Xh(Nm));(0,Yit.__exportStar)(Vq(),zq)});var Hq=qn((Eh,y_e)=>{"use strict";Eh=y_e.exports=V4().default;Object.defineProperty(Eh,"__esModule",{value:!0});Eh.Autolinker=void 0;var TS=(Fm(),Xh(Nm)),g_e=(0,TS.__importDefault)(V4());Eh.Autolinker=g_e.default;Eh.default=g_e.default;(0,TS.__exportStar)(V4(),Eh);(0,TS.__exportStar)(Aq(),Eh);(0,TS.__exportStar)(A4(),Eh);(0,TS.__exportStar)(p_e(),Eh);(0,TS.__exportStar)(__e(),Eh)});var zZ=qn((exports,module)=>{/*!
 * protobuf.js v7.4.0 (c) 2016, daniel wirtz
 * compiled thu, 22 aug 2024 20:30:39 utc
 * licensed under the bsd-3-clause license
 * see: https://github.com/dcodeio/protobuf.js for details
 */(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,u=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(m){if(u)if(u=!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){u&&(u=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(u){var f=u.length;if(!f)return 0;for(var d=0;--f%4>1&&u.charAt(f)==="=";)++d;return Math.ceil(u.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(u,f,d){for(var p=null,g=[],m=0,x=0,b;f<d;){var T=u[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(u,f,d){for(var p=d,g=0,m,x=0;x<u.length;){var b=u.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(u){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(u)}},{}],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 u=new Float32Array([-0]),f=new Uint8Array(u.buffer),d=f[3]===128;function p(b,T,C){u[0]=b,T[C]=f[0],T[C+1]=f[1],T[C+2]=f[2],T[C+3]=f[3]}function g(b,T,C){u[0]=b,T[C]=f[3],T[C+1]=f[2],T[C+2]=f[1],T[C+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],u[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],u[0]}c.readFloatLE=d?m:x,c.readFloatBE=d?x:m}():function(){function u(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=u.bind(null,o),c.writeFloatBE=u.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 u=new Float64Array([-0]),f=new Uint8Array(u.buffer),d=f[7]===128;function p(b,T,C){u[0]=b,T[C]=f[0],T[C+1]=f[1],T[C+2]=f[2],T[C+3]=f[3],T[C+4]=f[4],T[C+5]=f[5],T[C+6]=f[6],T[C+7]=f[7]}function g(b,T,C){u[0]=b,T[C]=f[7],T[C+1]=f[6],T[C+2]=f[5],T[C+3]=f[4],T[C+4]=f[3],T[C+5]=f[2],T[C+6]=f[1],T[C+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],u[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],u[0]}c.readDoubleLE=d?m:x,c.readDoubleBE=d?x:m}():function(){function u(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 C;if(m<22250738585072014e-324)C=m/5e-324,d(C>>>0,x,b+p),d((T<<31|C/4294967296)>>>0,x,b+g);else{var A=Math.floor(Math.log(m)/Math.LN2);A===1024&&(A=1023),C=m*Math.pow(2,-A),d(C*4503599627370496>>>0,x,b+p),d((T<<31|A+1023<<20|C*1048576&1048575)>>>0,x,b+g)}}}c.writeDoubleLE=u.bind(null,o,0,4),c.writeDoubleBE=u.bind(null,r,4,0);function f(d,p,g,m,x){var b=d(m,x+p),T=d(m,x+g),C=(T>>31)*2+1,A=T>>>20&2047,E=4294967296*(T&1048575)+b;return A===2047?E?NaN:C*(1/0):A===0?C*5e-324*E:C*Math.pow(2,A-1075)*(E+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,u,f){u[f]=c&255,u[f+1]=c>>>8&255,u[f+2]=c>>>16&255,u[f+3]=c>>>24}function r(c,u,f){u[f]=c>>>24,u[f+1]=c>>>16&255,u[f+2]=c>>>8&255,u[f+3]=c&255}function s(c,u){return(c[u]|c[u+1]<<8|c[u+2]<<16|c[u+3]<<24)>>>0}function a(c,u){return(c[u]<<24|c[u+1]<<16|c[u+2]<<8|c[u+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,u=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(u=o(a),f=0);var g=r.call(u,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 u=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&&((u||(u=[])).push(String.fromCharCode.apply(String,f)),d=0);return u?(d&&u.push(String.fromCharCode.apply(String,f.slice(0,d))),u.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,u,f,d=0;d<r.length;++d)u=r.charCodeAt(d),u<128?s[a++]=u:u<2048?(s[a++]=u>>6|192,s[a++]=u&63|128):(u&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(u=65536+((u&1023)<<10)+(f&1023),++d,s[a++]=u>>18|240,s[a++]=u>>12&63|128,s[a++]=u>>6&63|128,s[a++]=u&63|128):(s[a++]=u>>12|224,s[a++]=u>>6&63|128,s[a++]=u&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 u=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(C){return i.Buffer.isBuffer(C)?new o(C):u(C)})(b)}:u};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 C=i.Buffer;return C?C.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,u,f){if(!u)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,u);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](u).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,u){this.lo=c>>>0,this.hi=u>>>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(u){if(u===0)return r;var f=u<0;f&&(u=-u);var d=u>>>0,p=(u-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(u){if(typeof u=="number")return o.fromNumber(u);if(i.isString(u))if(i.Long)u=i.Long.fromString(u);else return o.fromNumber(parseInt(u,10));return u.low||u.high?new o(u.low>>>0,u.high>>>0):r},o.prototype.toNumber=function(u){if(!u&&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(u){return i.Long?new i.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var a=String.prototype.charCodeAt;o.fromHash=function(u){return u===s?r:new o((a.call(u,0)|a.call(u,1)<<8|a.call(u,2)<<16|a.call(u,3)<<24)>>>0,(a.call(u,4)|a.call(u,5)<<8|a.call(u,6)<<16|a.call(u,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 u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},o.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},o.prototype.length=function(){var u=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?u<16384?u<128?1:2:u<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 u=a[c];return u!=null&&a.hasOwnProperty(c)?typeof u!="object"||(Array.isArray(u)?u.length:Object.keys(u).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 u=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(u.lo,u.hi,c):u.toNumber(!!c)};function o(s,a,c){for(var u=Object.keys(a),f=0;f<u.length;++f)(s[u[f]]===undefined||!c)&&(s[u[f]]=a[u[f]]);return s}i.merge=o,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function r(s){function a(c,u){if(!(this instanceof a))return new a(c,u);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),u&&o(this,u)}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={},u=0;u<a.length;++u)c[a[u]]=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 u=0;u<a.length;++u)a[u]!==c&&delete this[a[u]]}},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,u){return new s(c,u)},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(A,E,v){this.fn=A,this.len=E,this.next=undefined,this.val=v}function u(){}function f(A){this.head=A.head,this.tail=A.tail,this.len=A.len,this.next=A.states}function d(){this.len=0,this.head=new c(u,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(E){return new i.Array(E)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(E,v,D){return this.tail=this.tail.next=new c(E,v,D),this.len+=v,this};function g(A,E,v){E[v]=A&255}function m(A,E,v){for(;A>127;)E[v++]=A&127|128,A>>>=7;E[v]=A}function x(A,E){this.len=A,this.next=undefined,this.val=E}x.prototype=Object.create(c.prototype),x.prototype.fn=m,d.prototype.uint32=function(E){return this.len+=(this.tail=this.tail.next=new x((E=E>>>0)<128?1:E<16384?2:E<2097152?3:E<268435456?4:5,E)).len,this},d.prototype.int32=function(E){return E<0?this._push(b,10,r.fromNumber(E)):this.uint32(E)},d.prototype.sint32=function(E){return this.uint32((E<<1^E>>31)>>>0)};function b(A,E,v){for(;A.hi;)E[v++]=A.lo&127|128,A.lo=(A.lo>>>7|A.hi<<25)>>>0,A.hi>>>=7;for(;A.lo>127;)E[v++]=A.lo&127|128,A.lo=A.lo>>>7;E[v++]=A.lo}d.prototype.uint64=function(E){var v=r.from(E);return this._push(b,v.length(),v)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(E){var v=r.from(E).zzEncode();return this._push(b,v.length(),v)},d.prototype.bool=function(E){return this._push(g,1,E?1:0)};function T(A,E,v){E[v]=A&255,E[v+1]=A>>>8&255,E[v+2]=A>>>16&255,E[v+3]=A>>>24}d.prototype.fixed32=function(E){return this._push(T,4,E>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(E){var v=r.from(E);return this._push(T,4,v.lo)._push(T,4,v.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(E){return this._push(i.float.writeFloatLE,4,E)},d.prototype.double=function(E){return this._push(i.float.writeDoubleLE,8,E)};var C=i.Array.prototype.set?function(E,v,D){v.set(E,D)}:function(E,v,D){for(var O=0;O<E.length;++O)v[D+O]=E[O]};d.prototype.bytes=function(E){var v=E.length>>>0;if(!v)return this._push(g,1,0);if(i.isString(E)){var D=d.alloc(v=s.length(E));s.decode(E,D,0),E=D}return this.uint32(v)._push(C,v,E)},d.prototype.string=function(E){var v=a.length(E);return v?this.uint32(v)._push(a.write,v,E):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(u,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(u,0,0),this.len=0),this},d.prototype.ldelim=function(){var E=this.head,v=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=E.next,this.tail=v,this.len+=D),this},d.prototype.finish=function(){for(var E=this.head.next,v=this.constructor.alloc(this.len),D=0;E;)E.fn(E.val,v,D),D+=E.len,E=E.next;return v},d._configure=function(A){o=A,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,u,f){u.set(c,f)}:function(c,u,f){if(c.copy)c.copy(u,f,0,c.length);else for(var d=0;d<c.length;)u[f++]=c[d++]}},r.prototype.bytes=function(c){o.isString(c)&&(c=o._Buffer_from(c,"base64"));var u=c.length>>>0;return this.uint32(u),u&&this._push(r.writeBytesBuffer,u,c),this};function s(a,c,u){a.length<40?o.utf8.write(a,c,u):c.utf8Write?c.utf8Write(a,u):c.write(a,u)}r.prototype.string=function(c){var u=o.Buffer.byteLength(c);return this.uint32(u),u&&this._push(s,u,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var PAe=qn((yki,BG)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(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,C=Math.floor(f.width/b),A=Math.floor(f.height/T),E=2*f.maxZError,v=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 M=new Float32Array(C*A),N,_,S=0;S<=T;S++){var w=S!==T?A:f.height%T;if(w!==0)for(var I=0;I<=b;I++){var L=I!==b?C:f.width%b;if(L!==0){var B=S*f.width*A+I*C,U=f.width-L,V=f.pixels.blocks[x],G,k,W;V.encoding<2?(V.encoding===0?G=V.rawData:(u(V.stuffedData,V.bitsPerPixel,V.numValidPixels,V.offset,E,M,f.pixels.maxValue),G=M),k=0):V.encoding===2?W=0:W=V.offset;var q;if(p)for(_=0;_<w;_++){for(B&7&&(q=p[B>>3],q<<=B&7),N=0;N<L;N++)B&7||(q=p[B>>3]),q&128?(R&&(R[B]=1),D=V.encoding<2?G[k++]:W,v=v>D?D:v,O[B++]=D):(R&&(R[B]=0),O[B++]=g),q<<=1;B+=U}else if(V.encoding<2)for(_=0;_<w;_++){for(N=0;N<L;N++)D=G[k++],v=v>D?D:v,O[B++]=D;B+=U}else for(v=v>W?W:v,_=0;_<w;_++){for(N=0;N<L;N++)O[B++]=W;B+=U}if(V.encoding===1&&k!==V.numValidPixels)throw"Block and Mask do not match";x++}}}return{resultPixels:O,resultMask:R,minValue:v}},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),C=2,A=0;do{if(T>0)for(;T--;)b[A++]=x.getUint8(C++);else{var E=x.getUint8(C++);for(T=-T;T--;)b[A++]=E}T=x.getInt16(C,!0),C+=2}while(C<g.mask.numBytes);if(T!==-32768||A<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 v=g.pixels.numBlocksX,D=g.pixels.numBlocksY,O=v+(g.width%v>0?1:0),R=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*R);for(var M=0,N=0;N<R;N++)for(var _=0;_<O;_++){var S=0,w=f.byteLength-d;x=new DataView(f,d,Math.min(10,w));var I={};g.pixels.blocks[M++]=I;var L=x.getUint8(0);if(S++,I.encoding=L&63,I.encoding>3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(L!==0&&L!==2){if(L>>=6,I.offsetType=L,L===2)I.offset=x.getInt8(1),S++;else if(L===1)I.offset=x.getInt16(1,!0),S+=2;else if(L===0)I.offset=x.getFloat32(1,!0),S+=4;else throw"Invalid block offset type";if(I.encoding===1)if(L=x.getUint8(S),S++,I.bitsPerPixel=L&63,L>>=6,I.numValidPixelsType=L,L===2)I.numValidPixels=x.getUint8(S),S++;else if(L===1)I.numValidPixels=x.getUint16(S,!0),S+=2;else if(L===0)I.numValidPixels=x.getUint32(S,!0),S+=4;else throw"Invalid valid pixel count type"}if(d+=S,I.encoding!==3){var B,U;if(I.encoding===0){var V=(g.pixels.numBytes-1)/4;if(V!==Math.floor(V))throw"uncompressed block has invalid length";B=new ArrayBuffer(V*4),U=new Uint8Array(B),U.set(new Uint8Array(f,d,V*4));var G=new Float32Array(B);I.rawData=G,d+=V*4}else if(I.encoding===1){var k=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),W=Math.ceil(k/4);B=new ArrayBuffer(W*4),U=new Uint8Array(B),U.set(new Uint8Array(f,d,k)),I.stuffedData=new Uint32Array(B),d+=k}}}return g.eofOffset=d,g},u=function(f,d,p,g,m,x,b){var T=(1<<d)-1,C=0,A,E=0,v,D,O=Math.ceil((b-g)/m),R=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*R,A=0;A<p;A++){if(E===0&&(D=f[C++],E=32),E>=d)v=D>>>E-d&T,E-=d;else{var M=d-E;v=(D&T)<<M&T,D=f[C++],E=32-M,v+=D>>>E}x[A]=v<O?g+v*m:b}return x};return o}(),t=function(){"use strict";var o={unstuff:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,C,A=0,E,v,D,O,R=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*R,p)for(C=0;C<d;C++)A===0&&(v=c[T++],A=32),A>=f?(E=v>>>A-f&b,A-=f):(D=f-A,E=(v&b)<<D&b,v=c[T++],A=32-D,E+=v>>>A),u[C]=p[E];else for(O=Math.ceil((x-g)/m),C=0;C<d;C++)A===0&&(v=c[T++],A=32),A>=f?(E=v>>>A-f&b,A-=f):(D=f-A,E=(v&b)<<D&b,v=c[T++],A=32-D,E+=v>>>A),u[C]=E<O?g+E*m:x},unstuffLUT:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,C=0,A=0,E,v=[],D=c.length*4-Math.ceil(u*f/8);c[c.length-1]<<=8*D;var O=Math.ceil((g-d)/p);for(b=0;b<f;b++)C===0&&(E=c[x++],C=32),C>=u?(A=E>>>C-u&m,C-=u):(T=u-C,A=(E&m)<<T&m,E=c[x++],C=32-T,A+=E>>>C),v[b]=A<O?d+A*p:g;return v.unshift(d),v},unstuff2:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,C,A=0,E=0,v,D,O;if(p)for(C=0;C<d;C++)A===0&&(D=c[T++],A=32,E=0),A>=f?(v=D>>>E&b,A-=f,E+=f):(O=f-A,v=D>>>E&b,D=c[T++],A=32-O,v|=(D&(1<<O)-1)<<f-O,E=O),u[C]=p[v];else{var R=Math.ceil((x-g)/m);for(C=0;C<d;C++)A===0&&(D=c[T++],A=32,E=0),A>=f?(v=D>>>E&b,A-=f,E+=f):(O=f-A,v=D>>>E&b,D=c[T++],A=32-O,v|=(D&(1<<O)-1)<<f-O,E=O),u[C]=v<R?g+v*m:x}return u},unstuffLUT2:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,C=0,A=0,E=0,v,D=[],O=Math.ceil((g-d)/p);for(b=0;b<f;b++)C===0&&(v=c[x++],C=32,E=0),C>=u?(A=v>>>E&m,C-=u,E+=u):(T=u-C,A=v>>>E&m,v=c[x++],C=32-T,A|=(v&(1<<T)-1)<<u-T,E=T),D[b]=A<O?d+A*p:g;return D.unshift(d),D},originalUnstuff:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b,T,C,A=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*A,m=0;m<d;m++)x===0&&(T=c[g++],x=32),x>=f?(b=T>>>x-f&p,x-=f):(C=f-x,b=(T&p)<<C&p,T=c[g++],x=32-C,b+=T>>>x),u[m]=b;return u},originalUnstuff2:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b=0,T,C,A;for(m=0;m<d;m++)x===0&&(C=c[g++],x=32,b=0),x>=f?(T=C>>>b&p,x-=f,b+=f):(A=f-x,T=C>>>b&p,C=c[g++],x=32-A,T|=(C&(1<<A)-1)<<f-A,b=A),u[m]=T;return u}},r={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var u=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var m=p>=359?359:p;p-=m;do u+=c[g++]<<8,f+=u+=c[g++];while(--m);u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=u+=c[g]<<8),u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16),(f<<16|u)>>>0},readHeaderInfo:function(c,u){var f=u.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,u.headerInfo=p,u.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,u){var f=u.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,u.ptr,d,p),m=this.readSubArray(c,u.ptr+p,d,p);u.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,u,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,u,d);else{var g=new ArrayBuffer(d),m=new Uint8Array(g);m.set(new Uint8Array(c,u,d)),p=new f(g)}return p},readMask:function(c,u){var f=u.ptr,d=u.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),u.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 C=m.getInt16(0,!0),A=2,E=0,v=0;do{if(C>0)for(;C--;)b[E++]=m.getUint8(A++);else for(v=m.getUint8(A++),C=-C;C--;)b[E++]=v;C=m.getInt16(A,!0),A+=2}while(A<x.numBytes);if(C!==-32768||E<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);u.pixels.resultMask=T,x.bitset=b,f+=x.numBytes}return u.ptr=f,u.mask=x,!0},readDataOneSweep:function(c,u,f){var d=u.ptr,p=u.headerInfo,g=p.numDims,m=p.width*p.height,x=p.imageType,b=p.numValidPixel*r.getDataTypeSize(x)*g,T,C=u.pixels.resultMask;if(f===Uint8Array)T=new Uint8Array(c,d,b);else{var A=new ArrayBuffer(b),E=new Uint8Array(A);E.set(new Uint8Array(c,d,b)),T=new f(A)}if(T.length===m*g)u.pixels.resultPixels=T;else{u.pixels.resultPixels=new f(m*g);var v=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++)C[D]&&(u.pixels.resultPixels[R+D]=T[v++]);else for(D=0;D<m;D++)C[D]&&(u.pixels.resultPixels[D]=T[v++])}return d+=b,u.ptr=d,!0},readHuffmanTree:function(c,u){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,u.ptr,16);u.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,u,b);var T=[],C,A,E,v;for(C=m;C<x;C++)A=C-(C<g?0:g),T[A]={first:b[C-m],second:null};var D=c.byteLength-u.ptr,O=Math.ceil(D/4),R=new ArrayBuffer(O*4),M=new Uint8Array(R);M.set(new Uint8Array(c,u.ptr,D));var N=new Uint32Array(R),_=0,S,w=0;for(S=N[0],C=m;C<x;C++)A=C-(C<g?0:g),v=T[A].first,v>0&&(T[A].second=S<<_>>>32-v,32-_>=v?(_+=v,_===32&&(_=0,w++,S=N[w])):(_+=v-32,w++,S=N[w],T[A].second|=S>>>32-_));var I=0,L=0,B=new s;for(C=0;C<T.length;C++)T[C]!==void 0&&(I=Math.max(I,T[C].first));I>=f?L=f:L=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var U=[],V,G,k,W,q,J;for(C=m;C<x;C++)if(A=C-(C<g?0:g),v=T[A].first,v>0)if(V=[v,A],v<=L)for(G=T[A].second<<L-v,k=1<<L-v,E=0;E<k;E++)U[G|E]=V;else for(G=T[A].second,J=B,W=v-1;W>=0;W--)q=G>>>W&1,q?(J.right||(J.right=new s),J=J.right):(J.left||(J.left=new s),J=J.left),W===0&&!J.val&&(J.val=V[1]);return{decodeLut:U,numBitsLUTQick:L,numBitsLUT:I,tree:B,stuffedData:N,srcPtr:w,bitPos:_}},readHuffman:function(c,u,f){var d=u.headerInfo,p=d.numDims,g=u.headerInfo.height,m=u.headerInfo.width,x=m*g,b=this.readHuffmanTree(c,u),T=b.decodeLut,C=b.tree,A=b.stuffedData,E=b.srcPtr,v=b.bitPos,D=b.numBitsLUTQick,O=b.numBitsLUT,R=u.headerInfo.imageType===0?128:0,M,N,_,S=u.pixels.resultMask,w,I,L,B,U,V,G,k=0;v>0&&(E++,v=0);var W=A[E],q=u.encodeMode===1,J=new f(x*p),j=J,K;for(K=0;K<d.numDims;K++){if(p>1&&(j=new f(J.buffer,x*K,x),k=0),u.headerInfo.numValidPixel===m*g)for(V=0,B=0;B<g;B++)for(U=0;U<m;U++,V++){if(N=0,w=W<<v>>>32-D,I=w,32-v<D&&(w|=A[E+1]>>>64-v-D,I=w),T[I])N=T[I][1],v+=T[I][0];else for(w=W<<v>>>32-O,I=w,32-v<O&&(w|=A[E+1]>>>64-v-O,I=w),M=C,G=0;G<O;G++)if(L=w>>>O-G-1&1,M=L?M.right:M.left,!(M.left||M.right)){N=M.val,v=v+G+1;break}v>=32&&(v-=32,E++,W=A[E]),_=N-R,q?(U>0?_+=k:B>0?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}else for(V=0,B=0;B<g;B++)for(U=0;U<m;U++,V++)if(S[V]){if(N=0,w=W<<v>>>32-D,I=w,32-v<D&&(w|=A[E+1]>>>64-v-D,I=w),T[I])N=T[I][1],v+=T[I][0];else for(w=W<<v>>>32-O,I=w,32-v<O&&(w|=A[E+1]>>>64-v-O,I=w),M=C,G=0;G<O;G++)if(L=w>>>O-G-1&1,M=L?M.right:M.left,!(M.left||M.right)){N=M.val,v=v+G+1;break}v>=32&&(v-=32,E++,W=A[E]),_=N-R,q?(U>0&&S[V-1]?_+=k:B>0&&S[V-m]?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}u.ptr=u.ptr+(E+1)*4+(v>0?4:0)}u.pixels.resultPixels=J},decodeBits:function(c,u,f,d,p){{var g=u.headerInfo,m=g.fileVersion,x=0,b=new DataView(c,u.ptr,5),T=b.getUint8(0);x++;var C=T>>6,A=C===0?4:3-C,E=(T&32)>0,v=T&31,D=0;if(A===1)D=b.getUint8(x),x++;else if(A===2)D=b.getUint16(x,!0),x+=2;else if(A===4)D=b.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,R,M,N,_,S,w,I,L,B,U,V=g.numDims>1?g.maxValues[p]:g.zMax;if(E){for(u.counter.lut++,L=b.getUint8(x),B=v,x++,_=Math.ceil((L-1)*v/8),S=Math.ceil(_/4),M=new ArrayBuffer(S*4),N=new Uint8Array(M),u.ptr+=x,N.set(new Uint8Array(c,u.ptr,_)),I=new Uint32Array(M),u.ptr+=_,U=0;L-1>>>U;)U++;_=Math.ceil(D*U/8),S=Math.ceil(_/4),M=new ArrayBuffer(S*4),N=new Uint8Array(M),N.set(new Uint8Array(c,u.ptr,_)),R=new Uint32Array(M),u.ptr+=_,m>=3?w=o.unstuffLUT2(I,v,L-1,d,O,V):w=o.unstuffLUT(I,v,L-1,d,O,V),m>=3?o.unstuff2(R,f,U,D,w):o.unstuff(R,f,U,D,w)}else u.counter.bitstuffer++,U=v,u.ptr+=x,U>0&&(_=Math.ceil(D*U/8),S=Math.ceil(_/4),M=new ArrayBuffer(S*4),N=new Uint8Array(M),N.set(new Uint8Array(c,u.ptr,_)),R=new Uint32Array(M),u.ptr+=_,m>=3?d==null?o.originalUnstuff2(R,f,U,D):o.unstuff2(R,f,U,D,!1,d,O,V):d==null?o.originalUnstuff(R,f,U,D):o.unstuff(R,f,U,D,!1,d,O,V))}},readTiles:function(c,u,f){var d=u.headerInfo,p=d.width,g=d.height,m=d.microBlockSize,x=d.imageType,b=r.getDataTypeSize(x),T=Math.ceil(p/m),C=Math.ceil(g/m);u.pixels.numBlocksY=C,u.pixels.numBlocksX=T,u.pixels.ptr=0;var A=0,E=0,v=0,D=0,O=0,R=0,M=0,N=0,_=0,S=0,w=0,I=0,L=0,B=0,U=0,V=0,G,k,W,q,J,j,K=new f(m*m),Q=g%m||m,de=p%m||m,ye,ae,_e=d.numDims,xe,De=u.pixels.resultMask,Ae=u.pixels.resultPixels;for(v=0;v<C;v++)for(O=v!==C-1?m:Q,D=0;D<T;D++)for(R=D!==T-1?m:de,w=v*p*m+D*m,I=p-R,xe=0;xe<_e;xe++){if(_e>1&&(Ae=new f(u.pixels.resultPixels.buffer,p*g*xe*b,p*g)),M=c.byteLength-u.ptr,G=new DataView(c,u.ptr,Math.min(10,M)),k={},V=0,N=G.getUint8(0),V++,_=N>>6&255,S=N>>2&15,S!==(D*m>>3&15))throw"integrity issue";if(j=N&3,j>3)throw u.ptr+=V,"Invalid block encoding ("+j+")";if(j===2){u.counter.constant++,u.ptr+=V;continue}else if(j===0){if(u.counter.uncompressed++,u.ptr+=V,L=O*R*b,B=c.byteLength-u.ptr,L=L<B?L:B,W=new ArrayBuffer(L%b===0?L:L+b-L%b),q=new Uint8Array(W),q.set(new Uint8Array(c,u.ptr,L)),J=new f(W),U=0,De)for(A=0;A<O;A++){for(E=0;E<R;E++)De[w]&&(Ae[w]=J[U++]),w++;w+=I}else for(A=0;A<O;A++){for(E=0;E<R;E++)Ae[w++]=J[U++];w+=I}u.ptr+=U*b}else if(ye=r.getDataTypeUsed(x,_),ae=r.getOnePixel(k,V,ye,G),V+=r.getDataTypeSize(ye),j===3)if(u.ptr+=V,u.counter.constantoffset++,De)for(A=0;A<O;A++){for(E=0;E<R;E++)De[w]&&(Ae[w]=ae),w++;w+=I}else for(A=0;A<O;A++){for(E=0;E<R;E++)Ae[w++]=ae;w+=I}else if(u.ptr+=V,r.decodeBits(c,u,K,ae,xe),V=0,De)for(A=0;A<O;A++){for(E=0;E<R;E++)De[w]&&(Ae[w]=K[V++]),w++;w+=I}else for(A=0;A<O;A++){for(E=0;E<R;E++)Ae[w++]=K[V++];w+=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 u=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]=u);else for(m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[m]=u);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(u);else for(m=0;m<p;m++)c.pixels.resultPixels[m]=u},getDataTypeArray:function(c){var u;switch(c){case 0:u=Int8Array;break;case 1:u=Uint8Array;break;case 2:u=Int16Array;break;case 3:u=Uint16Array;break;case 4:u=Int32Array;break;case 5:u=Uint32Array;break;case 6:u=Float32Array;break;case 7:u=Float64Array;break;default:u=Float32Array}return u},getPixelType:function(c){var u;switch(c){case 0:u="S8";break;case 1:u="U8";break;case 2:u="S16";break;case 3:u="U16";break;case 4:u="S32";break;case 5:u="U32";break;case 6:u="F32";break;case 7:u="F64";break;default:u="F32"}return u},isValidPixelValue:function(c,u){if(u==null)return!1;var f;switch(c){case 0:f=u>=-128&&u<=127;break;case 1:f=u>=0&&u<=255;break;case 2:f=u>=-32768&&u<=32767;break;case 3:f=u>=0&&u<=65536;break;case 4:f=u>=-2147483648&&u<=2147483647;break;case 5:f=u>=0&&u<=4294967296;break;case 6:f=u>=-34027999387901484e22&&u<=34027999387901484e22;break;case 7:f=u>=5e-324&&u<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var u=0;switch(c){case 0:case 1:u=1;break;case 2:case 3:u=2;break;case 4:case 5:case 6:u=4;break;case 7:u=8;break;default:u=c}return u},getDataTypeUsed:function(c,u){var f=c;switch(c){case 2:case 4:f=c-u;break;case 3:case 5:f=c-2*u;break;case 6:u===0?f=c:u===1?f=2:f=1;break;case 7:u===0?f=c:f=c-2*u+1;break;default:f=c;break}return f},getOnePixel:function(c,u,f,d){var p=0;switch(f){case 0:p=d.getInt8(u);break;case 1:p=d.getUint8(u);break;case 2:p=d.getInt16(u,!0);break;case 3:p=d.getUint16(u,!0);break;case 4:p=d.getInt32(u,!0);break;case 5:p=d.getUInt32(u,!0);break;case 6:p=d.getFloat32(u,!0);break;case 7:p=d.getFloat64(u,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,u,f){this.val=c,this.left=u,this.right=f},a={decode:function(c,u){u=u||{};var f=u.noDataValue,d=0,p={};if(p.ptr=u.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=u.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),C=T.getUint8(0);if(p.ptr++,C)r.readDataOneSweep(c,p,x);else if(m>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var A=T.getUint8(1);if(p.ptr++,p.encodeMode=A,A>2||m<4&&A>1)throw"Invalid Huffman flag "+A;A?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var E;u.inputOffset?(E=p.headerInfo.blobSize+u.inputOffset-p.ptr,Math.abs(E)>=1&&(p.eofOffset=u.inputOffset+p.headerInfo.blobSize)):(E=p.headerInfo.blobSize-p.ptr,Math.abs(E)>=1&&(p.eofOffset=p.headerInfo.blobSize));var v={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]||(v.pixelData[d]=f);v.noDataValue=f}return p.noDataValue=f,u.returnFileInfo&&(v.fileInfo=r.formatFileInfo(p)),v}},getBandCount:function(c){var u=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)r.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,u++,d.ptr=f;return u}};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),u,f;if(c.trim()==="CntZImage")u=e,f=1;else if(c.substring(0,5)==="Lerc2")u=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 C=u.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=C.fileInfo.eofOffset,d===0&&(g=C.encodedMaskData,b=C.maskData,T.width=C.width,T.height=C.height,T.dimCount=C.dimCount||1,T.pixelType=C.pixelType||C.fileInfo.pixelType,T.mask=C.maskData),f>1&&C.fileInfo.mask&&C.fileInfo.mask.numBytes>0&&m.push(C.maskData),d++,T.pixels.push(C.pixelData),T.statistics.push({minValue:C.minValue,maxValue:C.maxValue,noDataValue:C.noDataValue,dimStats:C.dimStats})}var A,E,v;if(f>1&&m.length>1){for(v=T.width*T.height,T.bandMasks=m,b=new Uint8Array(v),b.set(m[0]),A=1;A<m.length;A++)for(x=m[A],E=0;E<v;E++)b[E]=b[E]&x[E];T.maskData=b}return T}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof BG<"u"&&BG.exports?BG.exports=i:this.Lerc=i})()});var yEe=qn((Kk,vQ)=>{/*! NoSleep.min.js v0.12.0 - git.io/vfn01 - Rich Tibbett - MIT license */(function(e,t){typeof Kk=="object"&&typeof vQ=="object"?vQ.exports=t():typeof define=="function"&&define.amd?define([],t):typeof Kk=="object"?Kk.NoSleep=t():e.NoSleep=t()})(Kk,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(i,o,r){n.o(i,o)||Object.defineProperty(i,o,{enumerable:!0,get:r})},n.r=function(i){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},n.t=function(i,o){if(1&o&&(i=n(i)),8&o||4&o&&typeof i=="object"&&i&&i.__esModule)return i;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:i}),2&o&&typeof i!="string")for(var s in i)n.d(r,s,function(a){return i[a]}.bind(null,s));return r},n.n=function(i){var o=i&&i.__esModule?function(){return i.default}:function(){return i};return n.d(o,"a",o),o},n.o=function(i,o){return Object.prototype.hasOwnProperty.call(i,o)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var i=function(){function f(d,p){for(var g=0;g<p.length;g++){var m=p[g];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(d,m.key,m)}}return function(d,p,g){return p&&f(d.prototype,p),g&&f(d,g),d}}(),o=n(1),r=o.webm,s=o.mp4,a=function(){return 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},c=function(){return"wakeLock"in navigator},u=function(){function f(){var d=this;if(function(g,m){if(!(g instanceof m))throw new TypeError("Cannot call a class as a function")}(this,f),this.enabled=!1,c()){this._wakeLock=null;var p=function(){d._wakeLock!==null&&document.visibilityState==="visible"&&d.enable()};document.addEventListener("visibilitychange",p),document.addEventListener("fullscreenchange",p)}else a()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",r),this._addSourceToVideo(this.noSleepVideo,"mp4",s),this.noSleepVideo.addEventListener("loadedmetadata",function(){d.noSleepVideo.duration<=1?d.noSleepVideo.setAttribute("loop",""):d.noSleepVideo.addEventListener("timeupdate",function(){d.noSleepVideo.currentTime>.5&&(d.noSleepVideo.currentTime=Math.random())})}))}return i(f,[{key:"_addSourceToVideo",value:function(d,p,g){var m=document.createElement("source");m.src=g,m.type="video/"+p,d.appendChild(m)}},{key:"enable",value:function(){var d=this;return c()?navigator.wakeLock.request("screen").then(function(p){d._wakeLock=p,d.enabled=!0,console.log("Wake Lock active."),d._wakeLock.addEventListener("release",function(){console.log("Wake Lock released.")})}).catch(function(p){throw d.enabled=!1,console.error(p.name+", "+p.message),p}):a()?(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(function(){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(function(p){return d.enabled=!0,p}).catch(function(p){throw d.enabled=!1,p})}},{key:"disable",value:function(){c()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):a()?this.noSleepTimer&&(console.warn(`
          NoSleep now disabled for older iOS devices.
        `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}},{key:"isEnabled",get:function(){return this.enabled}}]),f}();e.exports=u},function(e,t,n){"use strict";e.exports={webm:"data:video/webm;base64, ",mp4:"data:video/mp4;base64, "}}])})});var Vvt={};BQ(Vvt,{AlphaMode:()=>pm,AlphaPipelineStage:()=>wO,AnchorPointDirect:()=>RR,AnchorPointIndirect:()=>OR,Animation:()=>hk,AnimationViewModel:()=>mk,Appearance:()=>no,ApproximateTerrainHeights:()=>li,ArcGISTiledElevationTerrainProvider:()=>SZ,ArcGisBaseMapType:()=>Oh,ArcGisMapServerImageryProvider:()=>rg,ArcGisMapService:()=>Yu,ArcType:()=>Jt,ArticulationStageType:()=>hc,AssociativeArray:()=>Et,Atmosphere:()=>_b,AtmospherePipelineStage:()=>aO,AttributeCompression:()=>Mn,AttributeType:()=>on,AutoExposure:()=>mB,AutomaticUniforms:()=>_p,Axis:()=>Oo,AxisAlignedBoundingBox:()=>Gg,B3dmLoader:()=>jR,B3dmParser:()=>HR,BaseLayerPicker:()=>_k,BaseLayerPickerViewModel:()=>pk,BatchTable:()=>Ex,BatchTableHierarchy:()=>Xx,BatchTexture:()=>Kc,BatchTexturePipelineStage:()=>DO,Billboard:()=>co,BillboardCollection:()=>wu,BillboardGraphics:()=>oc,BillboardVisualizer:()=>mP,BingMapsGeocoderService:()=>wZ,BingMapsImageryProvider:()=>LF,BingMapsStyle:()=>US,BlendEquation:()=>Pa,BlendFunction:()=>Co,BlendOption:()=>Eo,BlendingState:()=>un,BoundingRectangle:()=>je,BoundingSphere:()=>se,BoundingSphereState:()=>ct,BoundingVolumeSemantics:()=>fb,BoxEmitter:()=>p$,BoxGeometry:()=>Da,BoxGeometryUpdater:()=>S1,BoxGraphics:()=>Ox,BoxOutlineGeometry:()=>Md,BrdfLutGenerator:()=>h2,Buffer:()=>_t,BufferLoader:()=>eb,BufferUsage:()=>Fe,CPUStylingPipelineStage:()=>OO,CallbackPositionProperty:()=>v1,CallbackProperty:()=>Vd,Camera:()=>ro,CameraEventAggregator:()=>TB,CameraEventType:()=>Li,CameraFlightPath:()=>p2,Cartesian2:()=>z,Cartesian3:()=>h,Cartesian4:()=>oe,Cartographic:()=>fe,CartographicGeocoderService:()=>IZ,CatmullRomSpline:()=>PZ,Cesium3DContentGroup:()=>Yx,Cesium3DTile:()=>Xf,Cesium3DTileBatchTable:()=>Gp,Cesium3DTileColorBlendMode:()=>Ml,Cesium3DTileContent:()=>_$,Cesium3DTileContentFactory:()=>Pb,Cesium3DTileContentState:()=>jo,Cesium3DTileContentType:()=>ws,Cesium3DTileFeature:()=>Ws,Cesium3DTileFeatureTable:()=>Jd,Cesium3DTileOptimizationHint:()=>Hf,Cesium3DTileOptimizations:()=>pL,Cesium3DTilePass:()=>Fo,Cesium3DTilePassState:()=>hd,Cesium3DTilePointFeature:()=>g_,Cesium3DTileRefine:()=>Go,Cesium3DTileStyle:()=>bC,Cesium3DTileStyleEngine:()=>TL,Cesium3DTilesInspector:()=>Ck,Cesium3DTilesInspectorViewModel:()=>Tk,Cesium3DTilesVoxelProvider:()=>g$,Cesium3DTileset:()=>ha,Cesium3DTilesetBaseTraversal:()=>wL,Cesium3DTilesetCache:()=>yL,Cesium3DTilesetGraphics:()=>Vx,Cesium3DTilesetHeatmap:()=>xL,Cesium3DTilesetMetadata:()=>Ub,Cesium3DTilesetMostDetailedTraversal:()=>EL,Cesium3DTilesetSkipTraversal:()=>PL,Cesium3DTilesetStatistics:()=>R_,Cesium3DTilesetTraversal:()=>Zs,Cesium3DTilesetVisualizer:()=>RL,CesiumInspector:()=>Sk,CesiumInspectorViewModel:()=>Ek,CesiumTerrainProvider:()=>mC,CesiumWidget:()=>x3,Check:()=>xo,CheckerboardMaterialProperty:()=>bE,CircleEmitter:()=>V3,CircleGeometry:()=>FZ,CircleOutlineGeometry:()=>BZ,ClassificationModelDrawCommand:()=>EM,ClassificationPipelineStage:()=>IO,ClassificationPrimitive:()=>sA,ClassificationType:()=>Vn,ClearCommand:()=>ei,ClippingPlane:()=>db,ClippingPlaneCollection:()=>_s,ClippingPolygon:()=>NA,ClippingPolygonCollection:()=>Kd,Clock:()=>hh,ClockRange:()=>Wr,ClockStep:()=>mo,ClockViewModel:()=>lk,CloudCollection:()=>A$,CloudType:()=>Fv,Color:()=>H,ColorBlendMode:()=>dc,ColorGeometryInstanceAttribute:()=>Wt,ColorMaterialProperty:()=>Ut,Command:()=>dQ,ComponentDatatype:()=>X,Composite3DTileContent:()=>N1,CompositeEntityCollection:()=>i7,CompositeMaterialProperty:()=>CE,CompositePositionProperty:()=>ma,CompositeProperty:()=>yc,CompressedTextureBuffer:()=>pw,ComputeCommand:()=>Nc,ComputeEngine:()=>mw,ConditionsExpression:()=>N3,ConeEmitter:()=>S$,ConstantPositionProperty:()=>Gc,ConstantProperty:()=>Kn,ConstantSpline:()=>KR,ContentMetadata:()=>sL,Context:()=>aP,ContextLimits:()=>kt,CoplanarPolygonGeometry:()=>pN,CoplanarPolygonGeometryLibrary:()=>S_,CoplanarPolygonOutlineGeometry:()=>Yf,CornerType:()=>Pi,CorrelationGroup:()=>MR,CorridorGeometry:()=>qb,CorridorGeometryLibrary:()=>Hi,CorridorGeometryUpdater:()=>UL,CorridorGraphics:()=>Lx,CorridorOutlineGeometry:()=>VL,Credit:()=>vt,CreditDisplay:()=>x2,CubeMap:()=>br,CubeMapFace:()=>Sw,CubicRealPolynomial:()=>ux,CullFace:()=>gi,CullingVolume:()=>ps,CumulusCloud:()=>sf,CustomDataSource:()=>qL,CustomHeightmapTerrainProvider:()=>kZ,CustomShader:()=>sC,CustomShaderMode:()=>m_,CustomShaderPipelineStage:()=>VO,CustomShaderTranslucencyMode:()=>vy,CylinderGeometry:()=>YL,CylinderGeometryLibrary:()=>Yb,CylinderGeometryUpdater:()=>KL,CylinderGraphics:()=>Nx,CylinderOutlineGeometry:()=>XL,CzmlDataSource:()=>rN,DataSource:()=>Gr,DataSourceClock:()=>mh,DataSourceCollection:()=>sN,DataSourceDisplay:()=>WN,DebugAppearance:()=>v$,DebugCameraPrimitive:()=>Jm,DebugInspector:()=>IB,DebugModelMatrixPrimitive:()=>z3,DefaultProxy:()=>VZ,DepthFunction:()=>rc,DepthPlane:()=>w2,DequantizationPipelineStage:()=>zO,DerivedCommand:()=>ep,DeveloperError:()=>he,DeviceOrientationCameraController:()=>D2,DirectionalLight:()=>w$,DiscardEmptyTileImagePolicy:()=>zS,DiscardMissingTileImagePolicy:()=>OF,DistanceDisplayCondition:()=>Lt,DistanceDisplayConditionGeometryInstanceAttribute:()=>kn,DoubleEndedPriorityQueue:()=>oC,DoublyLinkedList:()=>gL,DracoLoader:()=>Zp,DrawCommand:()=>Ze,DynamicAtmosphereLightingType:()=>t_,DynamicEnvironmentMapManager:()=>i_,DynamicGeometryBatch:()=>tT,DynamicGeometryUpdater:()=>ni,EarthOrientationParameters:()=>rw,EarthOrientationParametersSample:()=>Dg,EasingFunction:()=>qr,EllipseGeometry:()=>rl,EllipseGeometryLibrary:()=>ql,EllipseGeometryUpdater:()=>cN,EllipseGraphics:()=>Fx,EllipseOutlineGeometry:()=>ku,Ellipsoid:()=>ee,EllipsoidGeodesic:()=>Op,EllipsoidGeometry:()=>Qs,EllipsoidGeometryUpdater:()=>uN,EllipsoidGraphics:()=>Bx,EllipsoidOutlineGeometry:()=>Iu,EllipsoidPrimitive:()=>a2,EllipsoidRhumbLine:()=>Ra,EllipsoidSurfaceAppearance:()=>D$,EllipsoidTangentPlane:()=>$r,EllipsoidTerrainProvider:()=>Km,EllipsoidalOccluder:()=>B_,Empty3DTileContent:()=>aE,EncodedCartesian3:()=>Gn,Entity:()=>er,EntityCluster:()=>Ou,EntityCollection:()=>$s,EntityView:()=>qN,Event:()=>me,EventHelper:()=>fr,Expression:()=>If,ExpressionNodeType:()=>ht,ExtrapolationType:()=>Lu,FeatureDetection:()=>Ht,FeatureIdPipelineStage:()=>Sy,Fog:()=>I2,ForEach:()=>Pe,FrameRateMonitor:()=>W3,FrameState:()=>P2,Framebuffer:()=>Mr,FramebufferManager:()=>hi,FrustumCommands:()=>N2,FrustumGeometry:()=>BT,FrustumOutlineGeometry:()=>C2,Fullscreen:()=>gr,FullscreenButton:()=>wk,FullscreenButtonViewModel:()=>vk,GeoJsonDataSource:()=>KN,GeoJsonLoader:()=>qR,GeocodeType:()=>k0,Geocoder:()=>Ik,GeocoderService:()=>Rv,GeocoderViewModel:()=>Dk,GeographicProjection:()=>vi,GeographicTilingScheme:()=>Yi,Geometry:()=>at,Geometry3DTileContent:()=>B1,GeometryAttribute:()=>Se,GeometryAttributes:()=>fn,GeometryFactory:()=>UZ,GeometryInstance:()=>St,GeometryInstanceAttribute:()=>sc,GeometryOffsetAttribute:()=>an,GeometryPipeline:()=>Ln,GeometryPipelineStage:()=>jO,GeometryType:()=>gf,GeometryUpdater:()=>ii,GeometryUpdaterSet:()=>dT,GeometryVisualizer:()=>ON,GetFeatureInfoFormat:()=>MT,Globe:()=>i2,GlobeDepth:()=>F2,GlobeSurfaceShaderSet:()=>RF,GlobeSurfaceTile:()=>ud,GlobeSurfaceTileProvider:()=>YF,GlobeTranslucency:()=>XF,GlobeTranslucencyFramebuffer:()=>B2,GlobeTranslucencyState:()=>R2,GltfBufferViewLoader:()=>xA,GltfDracoLoader:()=>bA,GltfGpmLoader:()=>NR,GltfGpmLocal:()=>BA,GltfImageLoader:()=>TA,GltfIndexBufferLoader:()=>CA,GltfJsonLoader:()=>EA,GltfLoader:()=>s_,GltfLoaderUtil:()=>Bl,GltfMeshPrimitiveGpmLoader:()=>VR,GltfStructuralMetadataLoader:()=>IR,GltfTextureLoader:()=>SA,GltfVertexBufferLoader:()=>vA,GoogleEarthEnterpriseImageryProvider:()=>P$,GoogleEarthEnterpriseMapsProvider:()=>BF,GoogleEarthEnterpriseMetadata:()=>Ag,GoogleEarthEnterpriseTerrainData:()=>Ov,GoogleEarthEnterpriseTerrainProvider:()=>XZ,GoogleEarthEnterpriseTileInformation:()=>w3,GoogleMaps:()=>_C,GpxDataSource:()=>JN,GregorianDate:()=>yp,GridImageryProvider:()=>R$,GridMaterialProperty:()=>OE,GroundGeometryUpdater:()=>Wn,GroundPolylineGeometry:()=>Dx,GroundPolylinePrimitive:()=>Ld,GroundPrimitive:()=>zc,GroupMetadata:()=>gE,HeadingPitchRange:()=>od,HeadingPitchRoll:()=>Sa,Heap:()=>tw,HeightReference:()=>Ye,HeightmapEncoding:()=>ad,HeightmapTerrainData:()=>za,HeightmapTessellator:()=>NS,HermitePolynomialApproximation:()=>ZL,HermiteSpline:()=>Cy,HilbertOrder:()=>pA,HomeButton:()=>Rk,HomeButtonViewModel:()=>Pk,HorizontalOrigin:()=>_i,I3SBuildingSceneLayerExplorer:()=>TQ,I3SBuildingSceneLayerExplorerViewModel:()=>Ok,I3SDataProvider:()=>jh,I3SDecoder:()=>j3,I3SFeature:()=>q3,I3SField:()=>Y3,I3SGeometry:()=>Bv,I3SLayer:()=>SC,I3SNode:()=>kv,I3SStatistics:()=>Z3,I3SSublayer:()=>Q3,I3SSymbology:()=>K3,I3dmLoader:()=>XR,I3dmParser:()=>YR,Iau2000Orientation:()=>r2,Iau2006XysData:()=>sw,Iau2006XysSample:()=>sx,IauOrientationAxes:()=>s2,IauOrientationParameters:()=>o2,ImageBasedLighting:()=>qx,ImageBasedLightingPipelineStage:()=>lO,ImageMaterialProperty:()=>Yg,Imagery:()=>YS,ImageryLayer:()=>Ga,ImageryLayerCollection:()=>KF,ImageryLayerFeatureInfo:()=>Rh,ImageryProvider:()=>fl,ImageryState:()=>ai,Implicit3DTileContent:()=>IA,ImplicitAvailabilityBitstream:()=>gA,ImplicitMetadataView:()=>yA,ImplicitSubdivisionScheme:()=>es,ImplicitSubtree:()=>lb,ImplicitSubtreeCache:()=>B3,ImplicitSubtreeMetadata:()=>k1,ImplicitTileCoordinates:()=>Gb,ImplicitTileset:()=>Hb,IndexDatatype:()=>Ne,InfoBox:()=>Lk,InfoBoxViewModel:()=>Mk,InspectorShared:()=>qa,InstanceAttributeSemantic:()=>ns,InstancingPipelineStage:()=>AO,InterpolationAlgorithm:()=>KZ,InterpolationType:()=>$d,Intersect:()=>jt,IntersectionTests:()=>$n,Intersections2D:()=>Tg,Interval:()=>wa,InvertClassification:()=>sv,Ion:()=>Hd,IonGeocoderService:()=>P3,IonImageryProvider:()=>sg,IonResource:()=>xu,IonWorldImageryStyle:()=>ag,Iso8601:()=>He,JobScheduler:()=>O2,JobType:()=>La,JsonMetadataTable:()=>o_,JulianDate:()=>Z,KTX2Transcoder:()=>_w,KeyboardEventModifier:()=>ia,KeyframeNode:()=>Ji,KmlCamera:()=>eF,KmlDataSource:()=>vF,KmlLookAt:()=>xF,KmlTour:()=>bF,KmlTourFlyTo:()=>CF,KmlTourWait:()=>AF,Label:()=>Oy,LabelCollection:()=>Cm,LabelGraphics:()=>Fd,LabelStyle:()=>Wo,LabelVisualizer:()=>MN,LagrangePolynomialApproximation:()=>$L,LeapSecond:()=>ji,Light:()=>N$,LightingModel:()=>ym,LightingPipelineStage:()=>YO,LinearApproximation:()=>Kb,LinearSpline:()=>Ty,ManagedArray:()=>Xc,MapMode2D:()=>tu,MapProjection:()=>QZ,MapboxImageryProvider:()=>kF,MapboxStyleImageryProvider:()=>F$,Material:()=>qi,MaterialAppearance:()=>so,MaterialPipelineStage:()=>KO,MaterialProperty:()=>Jo,Math:()=>P,Matrix2:()=>Bi,Matrix3:()=>$,Matrix4:()=>F,Megatexture:()=>hv,MeshPrimitiveGpmLocal:()=>kR,MetadataClass:()=>qd,MetadataClassProperty:()=>ny,MetadataComponentType:()=>zt,MetadataEntity:()=>Fn,MetadataEnum:()=>cR,MetadataEnumValue:()=>aR,MetadataPicking:()=>M2,MetadataPickingPipelineStage:()=>Su,MetadataPipelineStage:()=>Mf,MetadataSchema:()=>Au,MetadataSchemaLoader:()=>wA,MetadataSemantic:()=>ub,MetadataTable:()=>Nl,MetadataTableProperty:()=>U1,MetadataType:()=>At,MipmapHint:()=>rm,Model:()=>nh,Model3DTileContent:()=>xm,ModelAlphaOptions:()=>hM,ModelAnimation:()=>JR,ModelAnimationChannel:()=>QR,ModelAnimationCollection:()=>eO,ModelAnimationLoop:()=>Vl,ModelAnimationState:()=>eh,ModelArticulation:()=>fO,ModelArticulationStage:()=>uO,ModelClippingPlanesPipelineStage:()=>mO,ModelClippingPolygonsPipelineStage:()=>gO,ModelColorPipelineStage:()=>Ey,ModelComponents:()=>xn,ModelDrawCommand:()=>SM,ModelDrawCommands:()=>DM,ModelFeature:()=>tO,ModelFeatureTable:()=>iO,ModelGraphics:()=>Bp,ModelLightingOptions:()=>TM,ModelMatrixUpdateStage:()=>EO,ModelNode:()=>yO,ModelRenderResources:()=>mM,ModelRuntimeNode:()=>vO,ModelRuntimePrimitive:()=>fM,ModelSceneGraph:()=>IM,ModelSilhouettePipelineStage:()=>gM,ModelSkin:()=>dM,ModelSplitterPipelineStage:()=>xM,ModelStatistics:()=>PM,ModelType:()=>lr,ModelUtility:()=>Kt,ModelVisualizer:()=>LN,Moon:()=>l2,MorphTargetsPipelineStage:()=>$O,MorphWeightSpline:()=>JZ,MortonOrder:()=>ky,Multiple3DTileContent:()=>lL,MultisampleFramebuffer:()=>cP,NavigationHelpButton:()=>Fk,NavigationHelpButtonViewModel:()=>Nk,NearFarScalar:()=>Bt,NeverTileDiscardPolicy:()=>k$,NodeRenderResources:()=>bM,NodeStatisticsPipelineStage:()=>SO,NodeTransformationProperty:()=>kx,OIT:()=>V2,Occluder:()=>u2,OffsetGeometryInstanceAttribute:()=>Qi,OpenCageGeocoderService:()=>t$,OpenStreetMapImageryProvider:()=>Sg,OrderedGroundPrimitiveCollection:()=>aN,OrientedBoundingBox:()=>vn,OrthographicFrustum:()=>rn,OrthographicOffCenterFrustum:()=>Lr,Packable:()=>n$,PackableForInterpolation:()=>i$,Particle:()=>zv,ParticleBurst:()=>U$,ParticleEmitter:()=>z$,ParticleSystem:()=>H$,Pass:()=>ve,PassState:()=>ic,PathGraphics:()=>kp,PathVisualizer:()=>FN,PeliasGeocoderService:()=>I3,PerInstanceColorAppearance:()=>ln,PerformanceDisplay:()=>fg,PerformanceWatchdog:()=>kk,PerformanceWatchdogViewModel:()=>Bk,PerspectiveFrustum:()=>Si,PerspectiveOffCenterFrustum:()=>hl,PickDepth:()=>L2,PickDepthFramebuffer:()=>z2,PickFramebuffer:()=>G2,PickedMetadataInfo:()=>t3,Picking:()=>X2,PickingPipelineStage:()=>QO,PinBuilder:()=>$_,PixelDatatype:()=>Ke,PixelFormat:()=>Je,Plane:()=>cn,PlaneGeometry:()=>fN,PlaneGeometryUpdater:()=>hN,PlaneGraphics:()=>y1,PlaneOutlineGeometry:()=>dN,PntsLoader:()=>OM,PntsParser:()=>Eb,PointCloud:()=>g3,PointCloudEyeDomeLighting:()=>a_,PointCloudShading:()=>gm,PointCloudStylingPipelineStage:()=>eM,PointGraphics:()=>Ux,PointPrimitive:()=>Is,PointPrimitiveCollection:()=>wE,PointVisualizer:()=>kN,PolygonGeometry:()=>e_,PolygonGeometryLibrary:()=>zn,PolygonGeometryUpdater:()=>gN,PolygonGraphics:()=>Bd,PolygonHierarchy:()=>Oa,PolygonOutlineGeometry:()=>_N,PolygonPipeline:()=>si,Polyline:()=>Vf,PolylineArrowMaterialProperty:()=>LE,PolylineCollection:()=>oh,PolylineColorAppearance:()=>Qr,PolylineDashMaterialProperty:()=>FE,PolylineGeometry:()=>Z_,PolylineGeometryUpdater:()=>zN,PolylineGlowMaterialProperty:()=>kE,PolylineGraphics:()=>ac,PolylineMaterialAppearance:()=>ca,PolylineOutlineMaterialProperty:()=>qy,PolylinePipeline:()=>Ii,PolylineVisualizer:()=>GN,PolylineVolumeGeometry:()=>bN,PolylineVolumeGeometryLibrary:()=>lh,PolylineVolumeGeometryUpdater:()=>EN,PolylineVolumeGraphics:()=>zx,PolylineVolumeOutlineGeometry:()=>AN,PositionProperty:()=>Nd,PositionPropertyArray:()=>z_,PostProcessStage:()=>fo,PostProcessStageCollection:()=>gB,PostProcessStageComposite:()=>pl,PostProcessStageLibrary:()=>$u,PostProcessStageSampleMode:()=>Zu,PostProcessStageTextureCache:()=>KT,PpeMetadata:()=>BR,PpeSource:()=>cQ,PpeTexture:()=>FR,Primitive:()=>Dn,PrimitiveCollection:()=>jl,PrimitiveLoadPlan:()=>xb,PrimitiveOutlineGenerator:()=>yb,PrimitiveOutlinePipelineStage:()=>iM,PrimitivePipeline:()=>Sx,PrimitiveRenderResources:()=>CM,PrimitiveState:()=>Ar,PrimitiveStatisticsPipelineStage:()=>oM,PrimitiveType:()=>Me,ProjectionPicker:()=>Uk,ProjectionPickerViewModel:()=>Vk,Property:()=>Y,PropertyArray:()=>UE,PropertyAttribute:()=>gb,PropertyAttributeProperty:()=>SR,PropertyBag:()=>Rl,PropertyTable:()=>$c,PropertyTexture:()=>r_,PropertyTextureProperty:()=>ER,ProviderViewModel:()=>cs,Proxy:()=>o$,QuadraticRealPolynomial:()=>Fc,QuadtreeOccluders:()=>ZF,QuadtreePrimitive:()=>n2,QuadtreeTile:()=>$F,QuadtreeTileLoadState:()=>ea,QuadtreeTileProvider:()=>G$,QuantizedMeshTerrainData:()=>hC,QuarticRealPolynomial:()=>xw,Quaternion:()=>Oe,QuaternionSpline:()=>$R,Queue:()=>my,Ray:()=>mn,Rectangle:()=>re,RectangleCollisionChecker:()=>mT,RectangleGeometry:()=>sT,RectangleGeometryLibrary:()=>Ds,RectangleGeometryUpdater:()=>SN,RectangleGraphics:()=>kd,RectangleOutlineGeometry:()=>Mb,ReferenceFrame:()=>Vi,ReferenceProperty:()=>H_,RenderState:()=>Ve,Renderbuffer:()=>du,RenderbufferFormat:()=>kc,Request:()=>Ko,RequestErrorEvent:()=>$h,RequestScheduler:()=>ec,RequestState:()=>Zn,RequestType:()=>fs,Resource:()=>we,ResourceCache:()=>Ci,ResourceCacheKey:()=>kl,ResourceCacheStatistics:()=>fR,ResourceLoader:()=>Xi,ResourceLoaderState:()=>mt,Rotation:()=>Qf,RuntimeError:()=>ce,S2Cell:()=>qp,SDFSettings:()=>Xs,SampledPositionProperty:()=>_a,SampledProperty:()=>Fu,Sampler:()=>$t,ScaledPositionProperty:()=>Mm,Scene:()=>n3,SceneFramebuffer:()=>HT,SceneMode:()=>ne,SceneMode2DPipelineStage:()=>rM,SceneModePicker:()=>Hk,SceneModePickerViewModel:()=>zk,SceneTransforms:()=>Ui,SceneTransitioner:()=>bB,ScreenSpaceCameraController:()=>EB,ScreenSpaceEventHandler:()=>Ju,ScreenSpaceEventType:()=>bn,SelectedFeatureIdPipelineStage:()=>wy,SelectionIndicator:()=>jk,SelectionIndicatorViewModel:()=>Wk,SensorVolumePortionToDisplay:()=>WE,ShaderBuilder:()=>xx,ShaderCache:()=>nP,ShaderDestination:()=>pe,ShaderFunction:()=>fP,ShaderProgram:()=>Qt,ShaderSource:()=>Ue,ShaderStruct:()=>uP,ShadowMap:()=>mg,ShadowMapShader:()=>ip,ShadowMode:()=>yn,ShadowVolumeAppearance:()=>pu,ShowGeometryInstanceAttribute:()=>gn,Simon1994PlanetaryPositions:()=>Vg,SimplePolylineGeometry:()=>r$,SingleTileImageryProvider:()=>VF,SkinningPipelineStage:()=>aM,SkyAtmosphere:()=>r3,SkyBox:()=>c3,SpatialNode:()=>ZB,Spdcf:()=>LR,SpecularEnvironmentCubeMap:()=>zd,SphereEmitter:()=>j$,SphereGeometry:()=>s$,SphereOutlineGeometry:()=>w_,Spherical:()=>QL,Spline:()=>io,SplitDirection:()=>Nr,Splitter:()=>Tv,StaticGeometryColorBatch:()=>td,StaticGeometryPerMaterialBatch:()=>nd,StaticGroundGeometryColorBatch:()=>cS,StaticGroundGeometryPerMaterialBatch:()=>RN,StaticGroundPolylinePerMaterialBatch:()=>HN,StaticOutlineGeometryBatch:()=>fS,StencilConstants:()=>Vt,StencilFunction:()=>Un,StencilOperation:()=>ft,SteppedSpline:()=>ZR,Stereographic:()=>fc,StorageType:()=>gy,StripeMaterialProperty:()=>HE,StripeOrientation:()=>_h,StructuralMetadata:()=>qs,StyleCommandsNeeded:()=>th,StyleExpression:()=>q$,Sun:()=>m3,SunLight:()=>wp,SunPostProcess:()=>wB,SupportedImageFormats:()=>PR,SvgPathBindingHandler:()=>ak,TaskProcessor:()=>pi,Terrain:()=>tk,TerrainData:()=>Ph,TerrainEncoding:()=>Sc,TerrainFillMesh:()=>$S,TerrainMesh:()=>ld,TerrainOffsetProperty:()=>Hx,TerrainProvider:()=>os,TerrainQuantization:()=>Js,TerrainState:()=>uo,Texture:()=>Pt,TextureAtlas:()=>Ry,TextureCache:()=>iP,TextureMagnificationFilter:()=>di,TextureManager:()=>QB,TextureMinificationFilter:()=>Zt,TextureUniform:()=>sQ,TextureWrap:()=>Tn,TileAvailability:()=>Uh,TileBoundingRegion:()=>qf,TileBoundingS2Cell:()=>hL,TileBoundingSphere:()=>D_,TileBoundingVolume:()=>Y$,TileCoordinatesImageryProvider:()=>ik,TileDiscardPolicy:()=>K$,TileEdge:()=>_n,TileImagery:()=>XS,TileMapServiceImageryProvider:()=>C0,TileMetadata:()=>aL,TileOrientedBoundingBox:()=>Pu,TileProviderError:()=>wo,TileReplacementQueue:()=>QF,TileSelectionResult:()=>Xn,TileState:()=>Z$,Tileset3DTileContent:()=>NM,TilesetMetadata:()=>mL,TilesetPipelineStage:()=>oO,TilingScheme:()=>a$,TimeConstants:()=>Yn,TimeDynamicImagery:()=>LT,TimeDynamicPointCloud:()=>Av,TimeInterval:()=>Cn,TimeIntervalCollection:()=>Hr,TimeIntervalCollectionPositionProperty:()=>G_,TimeIntervalCollectionProperty:()=>W_,TimeStandard:()=>jn,Timeline:()=>Xk,TimelineHighlightRange:()=>qk,TimelineTrack:()=>Yk,Tipsify:()=>bw,ToggleButtonViewModel:()=>W0,Tonemapper:()=>_g,Transforms:()=>Mt,TranslationRotationScale:()=>Xg,TranslucentTileClassification:()=>j2,TridiagonalSystemSolver:()=>WA,TrustedServers:()=>zC,TweenCollection:()=>JT,UniformState:()=>sP,UniformType:()=>pv,UrlTemplateImageryProvider:()=>Ha,VERSION:()=>kvt,VRButton:()=>$k,VRButtonViewModel:()=>Zk,VRTheWorldTerrainProvider:()=>c$,VaryingType:()=>aQ,Vector3DTileBatch:()=>fm,Vector3DTileClampedPolylines:()=>iL,Vector3DTileContent:()=>rL,Vector3DTileGeometry:()=>jp,Vector3DTilePoints:()=>ZM,Vector3DTilePolygons:()=>$M,Vector3DTilePolylines:()=>Ib,Vector3DTilePrimitive:()=>$x,VelocityOrientationProperty:()=>eN,VelocityVectorProperty:()=>Jb,VertexArray:()=>ti,VertexArrayFacade:()=>Dp,VertexAttributeSemantic:()=>Tt,VertexFormat:()=>Ie,VerticalExaggeration:()=>Cr,VerticalExaggerationPipelineStage:()=>lM,VerticalOrigin:()=>Rn,VideoSynchronizer:()=>l$,View:()=>jT,Viewer:()=>DQ,ViewportQuad:()=>$$,Visibility:()=>pr,Visualizer:()=>lX,VoxelBoxShape:()=>ap,VoxelCell:()=>PB,VoxelContent:()=>k3,VoxelCylinderShape:()=>cp,VoxelEllipsoidShape:()=>iC,VoxelInspector:()=>Jk,VoxelInspectorViewModel:()=>Qk,VoxelPrimitive:()=>M0,VoxelProvider:()=>J$,VoxelRenderResources:()=>jB,VoxelShape:()=>eQ,VoxelShapeType:()=>Ni,VoxelTraversal:()=>mv,VulkanConstants:()=>u$,WallGeometry:()=>wN,WallGeometryLibrary:()=>aT,WallGeometryUpdater:()=>PN,WallGraphics:()=>Vp,WallOutlineGeometry:()=>IN,WebGLConstants:()=>te,WebMapServiceImageryProvider:()=>zF,WebMapTileServiceImageryProvider:()=>GF,WebMercatorProjection:()=>wi,WebMercatorTilingScheme:()=>rs,WindingOrder:()=>hs,WireframeIndexGenerator:()=>QA,WireframePipelineStage:()=>uM,_shadersAcesTonemappingStage:()=>K2,_shadersAdditiveBlend:()=>SB,_shadersAdjustTranslucentFS:()=>av,_shadersAllMaterialAppearanceFS:()=>gP,_shadersAllMaterialAppearanceVS:()=>yP,_shadersAmbientOcclusionGenerate:()=>Z2,_shadersAmbientOcclusionModulate:()=>$2,_shadersAspectRampMaterial:()=>AP,_shadersAtmosphereCommon:()=>Zd,_shadersAtmosphereStageFS:()=>rO,_shadersAtmosphereStageVS:()=>sO,_shadersBasicMaterialAppearanceFS:()=>xP,_shadersBasicMaterialAppearanceVS:()=>bP,_shadersBillboardCollectionFS:()=>FM,_shadersBillboardCollectionVS:()=>BM,_shadersBlackAndWhite:()=>Q2,_shadersBloomComposite:()=>J2,_shadersBrdfLutGeneratorFS:()=>f2,_shadersBrightPass:()=>vB,_shadersBrightness:()=>eB,_shadersBumpMapMaterial:()=>EP,_shadersCPUStylingStageFS:()=>RO,_shadersCPUStylingStageVS:()=>PO,_shadersCheckerboardMaterial:()=>SP,_shadersCloudCollectionFS:()=>b3,_shadersCloudCollectionVS:()=>T3,_shadersCloudNoiseFS:()=>C3,_shadersCloudNoiseVS:()=>A3,_shadersCompareAndPackTranslucentDepth:()=>W2,_shadersCompositeOITFS:()=>k2,_shadersCompositeTranslucentClassification:()=>WT,_shadersComputeIrradianceFS:()=>gR,_shadersComputeRadianceMapFS:()=>yR,_shadersContrastBias:()=>tB,_shadersConvolveSpecularMapFS:()=>xR,_shadersConvolveSpecularMapVS:()=>bR,_shadersCustomShaderStageFS:()=>LO,_shadersCustomShaderStageVS:()=>MO,_shadersCzmBuiltins:()=>_x,_shadersDepthOfField:()=>nB,_shadersDepthPlaneFS:()=>A2,_shadersDepthPlaneVS:()=>E2,_shadersDepthView:()=>iB,_shadersDepthViewPacked:()=>rQ,_shadersDotMaterial:()=>vP,_shadersEdgeDetection:()=>oB,_shadersElevationBandMaterial:()=>wP,_shadersElevationContourMaterial:()=>DP,_shadersElevationRampMaterial:()=>IP,_shadersEllipsoidFS:()=>JS,_shadersEllipsoidSurfaceAppearanceFS:()=>H3,_shadersEllipsoidSurfaceAppearanceVS:()=>G3,_shadersEllipsoidVS:()=>ev,_shadersFXAA:()=>aB,_shadersFXAA3_11:()=>hB,_shadersFadeMaterial:()=>PP,_shadersFeatureIdStageFS:()=>NO,_shadersFeatureIdStageVS:()=>FO,_shadersFilmicTonemapping:()=>rB,_shadersGaussianBlur1D:()=>P0,_shadersGeometryStageFS:()=>HO,_shadersGeometryStageVS:()=>GO,_shadersGlobeFS:()=>IF,_shadersGlobeVS:()=>PF,_shadersGridMaterial:()=>RP,_shadersGroundAtmosphere:()=>BS,_shadersHSBToRGB:()=>xD,_shadersHSLToRGB:()=>bD,_shadersImageBasedLightingStageFS:()=>cO,_shadersInstancingStageCommon:()=>xO,_shadersInstancingStageVS:()=>bO,_shadersIntersectBox:()=>BB,_shadersIntersectClippingPlanes:()=>FB,_shadersIntersectCylinder:()=>kB,_shadersIntersectDepth:()=>NB,_shadersIntersectEllipsoid:()=>VB,_shadersIntersectLongitude:()=>dv,_shadersIntersection:()=>nC,_shadersIntersectionUtils:()=>LB,_shadersLegacyInstancingStageVS:()=>TO,_shadersLensFlare:()=>cB,_shadersLightingStageFS:()=>qO,_shadersMaterialStageFS:()=>XO,_shadersMegatexture:()=>WB,_shadersMetadataStageFS:()=>BO,_shadersMetadataStageVS:()=>kO,_shadersModelClippingPlanesStageFS:()=>hO,_shadersModelClippingPolygonsStageFS:()=>_O,_shadersModelClippingPolygonsStageVS:()=>pO,_shadersModelColorStageFS:()=>dO,_shadersModelFS:()=>wM,_shadersModelSilhouetteStageFS:()=>pM,_shadersModelSilhouetteStageVS:()=>_M,_shadersModelSplitterStageFS:()=>yM,_shadersModelVS:()=>vM,_shadersModifiedReinhardTonemapping:()=>lB,_shadersMorphTargetsStageVS:()=>ZO,_shadersNightVision:()=>uB,_shadersNormalMapMaterial:()=>OP,_shadersOctree:()=>GB,_shadersPassThrough:()=>nu,_shadersPassThroughDepth:()=>w0,_shadersPbrNeutralTonemapping:()=>sB,_shadersPerInstanceColorAppearanceFS:()=>GP,_shadersPerInstanceColorAppearanceVS:()=>WP,_shadersPerInstanceFlatColorAppearanceFS:()=>Ax,_shadersPerInstanceFlatColorAppearanceVS:()=>jP,_shadersPointCloudEyeDomeLighting:()=>UR,_shadersPointCloudStylingStageVS:()=>JO,_shadersPointPrimitiveCollectionFS:()=>jy,_shadersPointPrimitiveCollectionVS:()=>zL,_shadersPolygonSignedDistanceFS:()=>pR,_shadersPolylineArrowMaterial:()=>MP,_shadersPolylineColorAppearanceVS:()=>r1,_shadersPolylineCommon:()=>_u,_shadersPolylineDashMaterial:()=>LP,_shadersPolylineFS:()=>Px,_shadersPolylineGlowMaterial:()=>NP,_shadersPolylineMaterialAppearanceVS:()=>s1,_shadersPolylineOutlineMaterial:()=>FP,_shadersPolylineShadowVolumeFS:()=>t1,_shadersPolylineShadowVolumeMorphFS:()=>n1,_shadersPolylineShadowVolumeMorphVS:()=>i1,_shadersPolylineShadowVolumeVS:()=>o1,_shadersPolylineVS:()=>WM,_shadersPrimitiveOutlineStageFS:()=>nM,_shadersPrimitiveOutlineStageVS:()=>tM,_shadersRGBToHSB:()=>TD,_shadersRGBToHSL:()=>CD,_shadersRGBToXYZ:()=>AD,_shadersReinhardTonemapping:()=>fB,_shadersReprojectWebMercatorFS:()=>WF,_shadersReprojectWebMercatorVS:()=>jF,_shadersRimLightingMaterial:()=>BP,_shadersSelectedFeatureIdStageCommon:()=>$A,_shadersShadowVolumeAppearanceFS:()=>oA,_shadersShadowVolumeAppearanceVS:()=>XP,_shadersShadowVolumeFS:()=>Wg,_shadersSilhouette:()=>dB,_shadersSkinningStageVS:()=>sM,_shadersSkyAtmosphereCommon:()=>gv,_shadersSkyAtmosphereFS:()=>i3,_shadersSkyAtmosphereVS:()=>o3,_shadersSkyBoxFS:()=>s3,_shadersSkyBoxVS:()=>a3,_shadersSlopeRampMaterial:()=>kP,_shadersStripeMaterial:()=>VP,_shadersSunFS:()=>l3,_shadersSunTextureFS:()=>u3,_shadersSunVS:()=>f3,_shadersTexturedMaterialAppearanceFS:()=>TP,_shadersTexturedMaterialAppearanceVS:()=>CP,_shadersVector3DTileClampedPolylinesFS:()=>tL,_shadersVector3DTileClampedPolylinesVS:()=>eL,_shadersVector3DTilePolylinesVS:()=>QM,_shadersVectorTileVS:()=>mA,_shadersVerticalExaggerationStageVS:()=>cM,_shadersViewportQuadFS:()=>E3,_shadersViewportQuadVS:()=>ax,_shadersVoxelFS:()=>OB,_shadersVoxelUtils:()=>RB,_shadersVoxelVS:()=>MB,_shadersWater:()=>zP,_shadersWaterMaskMaterial:()=>UP,_shadersXYZToRGB:()=>ED,_shadersacesTonemapping:()=>SD,_shadersalphaWeight:()=>vD,_shadersantialias:()=>wD,_shadersapplyHSBShift:()=>DD,_shadersapproximateSphericalCoordinates:()=>ID,_shadersapproximateTanh:()=>PD,_shadersbackFacing:()=>RD,_shadersbranchFreeTernary:()=>OD,_shaderscascadeColor:()=>MD,_shaderscascadeDistance:()=>LD,_shaderscascadeMatrix:()=>ND,_shaderscascadeWeights:()=>FD,_shadersclipPolygons:()=>BD,_shaderscolumbusViewMorph:()=>kD,_shaderscomputeAtmosphereColor:()=>VD,_shaderscomputeGroundAtmosphereScattering:()=>UD,_shaderscomputePosition:()=>zD,_shaderscomputeScattering:()=>HD,_shadersconvertUvToBox:()=>UB,_shadersconvertUvToCylinder:()=>zB,_shadersconvertUvToEllipsoid:()=>HB,_shaderscosineAndSine:()=>GD,_shadersdecompressTextureCoordinates:()=>WD,_shadersdegreesPerRadian:()=>ww,_shadersdepthClamp:()=>jD,_shadersdepthRange:()=>Dw,_shadersdepthRangeStruct:()=>fD,_shaderseastNorthUpToEyeCoordinates:()=>qD,_shadersellipsoidContainsPoint:()=>YD,_shadersellipsoidTextureCoordinates:()=>XD,_shadersepsilon1:()=>Iw,_shadersepsilon2:()=>Pw,_shadersepsilon3:()=>Rw,_shadersepsilon4:()=>Ow,_shadersepsilon5:()=>Mw,_shadersepsilon6:()=>Lw,_shadersepsilon7:()=>Nw,_shadersequalsEpsilon:()=>KD,_shaderseyeOffset:()=>ZD,_shaderseyeToWindowCoordinates:()=>$D,_shadersfastApproximateAtan:()=>QD,_shadersfog:()=>JD,_shadersgammaCorrect:()=>eI,_shadersgeodeticSurfaceNormal:()=>tI,_shadersgetDefaultMaterial:()=>nI,_shadersgetDynamicAtmosphereLightDirection:()=>iI,_shadersgetLambertDiffuse:()=>oI,_shadersgetSpecular:()=>rI,_shadersgetWaterNoise:()=>sI,_shadershue:()=>aI,_shadersinfinity:()=>Fw,_shadersinverseGamma:()=>cI,_shadersisEmpty:()=>lI,_shadersisFull:()=>uI,_shaderslatitudeToWebMercatorFraction:()=>fI,_shaderslineDistance:()=>dI,_shaderslinearToSrgb:()=>hI,_shadersluminance:()=>mI,_shadersmaterial:()=>dD,_shadersmaterialInput:()=>hD,_shadersmaximumComponent:()=>pI,_shadersmetersPerPixel:()=>_I,_shadersmodelMaterial:()=>mD,_shadersmodelToWindowCoordinates:()=>gI,_shadersmodelVertexOutput:()=>pD,_shadersmultiplyWithColorBalance:()=>yI,_shadersnearFarScalar:()=>xI,_shadersoctDecode:()=>bI,_shadersoneOverPi:()=>Bw,_shadersoneOverTwoPi:()=>kw,_shaderspackDepth:()=>TI,_shaderspassCesium3DTile:()=>Vw,_shaderspassCesium3DTileClassification:()=>Uw,_shaderspassCesium3DTileClassificationIgnoreShow:()=>zw,_shaderspassClassification:()=>Hw,_shaderspassCompute:()=>Gw,_shaderspassEnvironment:()=>Ww,_shaderspassGlobe:()=>jw,_shaderspassOpaque:()=>qw,_shaderspassOverlay:()=>Yw,_shaderspassTerrainClassification:()=>Xw,_shaderspassTranslucent:()=>Kw,_shaderspassVoxels:()=>Zw,_shaderspbrLighting:()=>CI,_shaderspbrNeutralTonemapping:()=>AI,_shadersphong:()=>EI,_shaderspi:()=>$w,_shaderspiOverFour:()=>Qw,_shaderspiOverSix:()=>Jw,_shaderspiOverThree:()=>eD,_shaderspiOverTwo:()=>tD,_shadersplaneDistance:()=>SI,_shaderspointAlongRay:()=>vI,_shadersradiansPerDegree:()=>nD,_shadersray:()=>_D,_shadersrayEllipsoidIntersectionInterval:()=>wI,_shadersraySegment:()=>gD,_shadersraySphereIntersectionInterval:()=>DI,_shadersreadDepth:()=>II,_shadersreadNonPerspective:()=>PI,_shadersreverseLogDepth:()=>RI,_shadersround:()=>OI,_shaderssaturation:()=>MI,_shaderssceneMode2D:()=>iD,_shaderssceneMode3D:()=>oD,_shaderssceneModeColumbusView:()=>rD,_shaderssceneModeMorphing:()=>sD,_shadersshadowDepthCompare:()=>LI,_shadersshadowParameters:()=>yD,_shadersshadowVisibility:()=>NI,_shaderssignNotZero:()=>FI,_shaderssolarRadius:()=>aD,_shaderssphericalHarmonics:()=>BI,_shaderssrgbToLinear:()=>kI,_shaderstangentToEyeSpaceMatrix:()=>VI,_shaderstextureCube:()=>UI,_shadersthreePiOver2:()=>cD,_shaderstransformPlane:()=>zI,_shaderstranslateRelativeToEye:()=>HI,_shaderstranslucentPhong:()=>GI,_shaderstranspose:()=>WI,_shaderstwoPi:()=>lD,_shadersunpackClippingExtents:()=>jI,_shadersunpackDepth:()=>qI,_shadersunpackFloat:()=>YI,_shadersunpackUint:()=>XI,_shadersvalueTransform:()=>KI,_shadersvertexLogDepth:()=>ZI,_shaderswebMercatorMaxLatitude:()=>uD,_shaderswindowToEyeCoordinates:()=>$I,_shaderswriteDepthClamp:()=>QI,_shaderswriteLogDepth:()=>JI,_shaderswriteNonPerspective:()=>eP,addBuffer:()=>J1,addDefaults:()=>j1,addExtensionsRequired:()=>Z1,addExtensionsUsed:()=>Pf,addPipelineExtras:()=>sy,addToArray:()=>Ss,appendForwardSlash:()=>$v,arrayRemoveDuplicates:()=>To,barycentricCoordinates:()=>lx,binarySearch:()=>Po,buildModuleUrl:()=>nn,buildVoxelDrawCommands:()=>YB,clone:()=>Ge,combine:()=>yt,computeFlyToLocationForRectangle:()=>PT,createBillboardPointCallback:()=>Sb,createCommand:()=>An,createDefaultImageryProviderViewModels:()=>gk,createDefaultTerrainProviderViewModels:()=>yk,createElevationBandMaterial:()=>tQ,createGooglePhotorealistic3DTileset:()=>nQ,createGuid:()=>Hn,createMaterialPropertyDescriptor:()=>Ro,createOsmBuildingsAsync:()=>iQ,createPropertyDescriptor:()=>le,createRawPropertyDescriptor:()=>Pl,createTangentSpaceDebugPrimitive:()=>oQ,createTaskProcessorWorker:()=>lQ,createUniform:()=>fw,createUniformArray:()=>dw,createWorldBathymetryAsync:()=>O3,createWorldImageryAsync:()=>cg,createWorldTerrainAsync:()=>yC,decodeGoogleEarthEnterpriseData:()=>M3,decodeVectorPolylinePositions:()=>oL,defaultValue:()=>y,defer:()=>Al,defined:()=>l,demodernizeShader:()=>tP,deprecationWarning:()=>ds,destroyObject:()=>ue,exportKml:()=>mX,findAccessorMinMax:()=>rb,findContentMetadata:()=>Rb,findGroupMetadata:()=>Ob,findTileMetadata:()=>cL,forEachTextureInMaterial:()=>AA,formatError:()=>Ym,freezeRenderState:()=>n6,getAbsoluteUri:()=>Kh,getAccessorByteStride:()=>Fl,getBaseUri:()=>Qv,getBinaryAccessor:()=>bu,getClipAndStyleCode:()=>p3,getClippingFunction:()=>og,getComponentReader:()=>Qp,getElement:()=>In,getExtensionFromUri:()=>Q0,getFilenameFromUri:()=>V_,getImageFromTypedArray:()=>$B,getImagePixels:()=>Ed,getJsonFromTypedArray:()=>Mo,getMagic:()=>Gd,getMetadataClassProperty:()=>e3,getStringFromTypedArray:()=>Ol,getTimestamp:()=>xi,hasExtension:()=>oi,heightReferenceOnEntityPropertyChanged:()=>Up,isBitSet:()=>Pc,isBlobUri:()=>J0,isCrossOriginUrl:()=>Pg,isDataUri:()=>xp,isLeapYear:()=>Ad,knockout:()=>be,knockout_3_5_1:()=>wC,knockout_es5:()=>sk,loadAndExecuteScript:()=>ex,loadCubeMap:()=>dP,loadImageFromTypedArray:()=>nb,loadKTX2:()=>Sl,mergeSort:()=>ug,moveTechniqueRenderStates:()=>K1,moveTechniquesToExtension:()=>$1,numberOfComponentsForType:()=>Cu,objectToQuery:()=>tx,oneTimeWarning:()=>xt,parseBatchTable:()=>u_,parseFeatureMetadataLegacy:()=>DR,parseGlb:()=>Y1,parseResponseHeaders:()=>Jv,parseStructuralMetadata:()=>wR,pickModel:()=>nE,pointInsideTriangle:()=>d$,preprocess3DTileContent:()=>Sm,processVoxelProperties:()=>qB,queryToObject:()=>cu,readAccessorPacked:()=>eR,removeExtension:()=>sb,removeExtensionsRequired:()=>q1,removeExtensionsUsed:()=>ob,removePipelineExtras:()=>X1,removeUnusedElements:()=>Q1,resizeImageToNextPowerOfTwo:()=>ly,sampleTerrain:()=>DF,sampleTerrainMostDetailed:()=>IT,scaleToGeodeticSurface:()=>$0,srgbToLinear:()=>xC,subdivideArray:()=>KP,subscribeAndEvaluate:()=>Ta,updateAccessorComponentTypes:()=>tR,updateVersion:()=>nR,usesExtension:()=>cr,viewerCesium3DTilesInspectorMixin:()=>IQ,viewerCesiumInspectorMixin:()=>PQ,viewerDragDropMixin:()=>OQ,viewerPerformanceWatchdogMixin:()=>MQ,viewerVoxelInspectorMixin:()=>LQ,webGLConstantToGlslType:()=>h$,wrapFunction:()=>L3,writeTextToCanvas:()=>wb});module.exports=Xh(Vvt);function MEe(e){return e!=null}var l=MEe;function K0(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(K0.prototype=Object.create(Error.prototype),K0.prototype.constructor=K0);K0.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=`
${this.stack.toString()}`),e};K0.throwInstantiationError=function(){throw new K0("This function defines an interface and should not be called directly.")};var he=K0;var As={};As.typeOf={};function LEe(e){return`${e} is required, actual value was undefined`}function RC(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}As.defined=function(e,t){if(!l(t))throw new he(LEe(e))};As.typeOf.func=function(e,t){if(typeof t!="function")throw new he(RC(typeof t,"function",e))};As.typeOf.string=function(e,t){if(typeof t!="string")throw new he(RC(typeof t,"string",e))};As.typeOf.number=function(e,t){if(typeof t!="number")throw new he(RC(typeof t,"number",e))};As.typeOf.number.lessThan=function(e,t,n){if(As.typeOf.number(e,t),t>=n)throw new he(`Expected ${e} to be less than ${n}, actual value was ${t}`)};As.typeOf.number.lessThanOrEquals=function(e,t,n){if(As.typeOf.number(e,t),t>n)throw new he(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};As.typeOf.number.greaterThan=function(e,t,n){if(As.typeOf.number(e,t),t<=n)throw new he(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};As.typeOf.number.greaterThanOrEquals=function(e,t,n){if(As.typeOf.number(e,t),t<n)throw new he(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};As.typeOf.object=function(e,t){if(typeof t!="object")throw new he(RC(typeof t,"object",e))};As.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new he(RC(typeof t,"boolean",e))};As.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new he(RC(typeof t,"bigint",e))};As.typeOf.number.equals=function(e,t,n,i){if(As.typeOf.number(e,n),As.typeOf.number(t,i),n!==i)throw new he(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var xo=As;function VQ(e,t){return e??t}VQ.EMPTY_OBJECT=Object.freeze({});var y=VQ;var h5=Vo(tV(),1);var st={};st.EPSILON1=.1;st.EPSILON2=.01;st.EPSILON3=.001;st.EPSILON4=1e-4;st.EPSILON5=1e-5;st.EPSILON6=1e-6;st.EPSILON7=1e-7;st.EPSILON8=1e-8;st.EPSILON9=1e-9;st.EPSILON10=1e-10;st.EPSILON11=1e-11;st.EPSILON12=1e-12;st.EPSILON13=1e-13;st.EPSILON14=1e-14;st.EPSILON15=1e-15;st.EPSILON16=1e-16;st.EPSILON17=1e-17;st.EPSILON18=1e-18;st.EPSILON19=1e-19;st.EPSILON20=1e-20;st.EPSILON21=1e-21;st.GRAVITATIONALPARAMETER=3986004418e5;st.SOLAR_RADIUS=6955e5;st.LUNAR_RADIUS=1737400;st.SIXTY_FOUR_KILOBYTES=64*1024;st.FOUR_GIGABYTES=4*1024*1024*1024;st.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});st.signNotZero=function(e){return e<0?-1:1};st.toSNorm=function(e,t){return t=y(t,255),Math.round((st.clamp(e,-1,1)*.5+.5)*t)};st.fromSNorm=function(e,t){return t=y(t,255),st.clamp(e,0,t)/t*2-1};st.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:st.clamp((e-t)/n,0,1)};st.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});st.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});st.lerp=function(e,t,n){return(1-n)*e+n*t};st.PI=Math.PI;st.ONE_OVER_PI=1/Math.PI;st.PI_OVER_TWO=Math.PI/2;st.PI_OVER_THREE=Math.PI/3;st.PI_OVER_FOUR=Math.PI/4;st.PI_OVER_SIX=Math.PI/6;st.THREE_PI_OVER_TWO=3*Math.PI/2;st.TWO_PI=2*Math.PI;st.ONE_OVER_TWO_PI=1/(2*Math.PI);st.RADIANS_PER_DEGREE=Math.PI/180;st.DEGREES_PER_RADIAN=180/Math.PI;st.RADIANS_PER_ARCSECOND=st.RADIANS_PER_DEGREE/3600;st.toRadians=function(e){return e*st.RADIANS_PER_DEGREE};st.toDegrees=function(e){return e*st.DEGREES_PER_RADIAN};st.convertLongitudeRange=function(e){let t=st.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};st.clampToLatitudeRange=function(e){return st.clamp(e,-1*st.PI_OVER_TWO,st.PI_OVER_TWO)};st.negativePiToPi=function(e){return e>=-st.PI&&e<=st.PI?e:st.zeroToTwoPi(e+st.PI)-st.PI};st.zeroToTwoPi=function(e){if(e>=0&&e<=st.TWO_PI)return e;let t=st.mod(e,st.TWO_PI);return Math.abs(t)<st.EPSILON14&&Math.abs(e)>st.EPSILON14?st.TWO_PI:t};st.mod=function(e,t){return st.sign(e)===st.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};st.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))};st.lessThan=function(e,t,n){return e-t<-n};st.lessThanOrEquals=function(e,t,n){return e-t<n};st.greaterThan=function(e,t,n){return e-t>n};st.greaterThanOrEquals=function(e,t,n){return e-t>-n};var nV=[1];st.factorial=function(e){let t=nV.length;if(e>=t){let n=nV[t-1];for(let i=t;i<=e;i++){let o=n*i;nV.push(o),n=o}}return nV[e]};st.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};st.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};st.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};st.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};st.clamp=function(e,t,n){return e<t?t:e>n?n:e};var zQ=new h5.default;st.setRandomNumberSeed=function(e){zQ=new h5.default(e)};st.nextRandomNumber=function(){return zQ.random()};st.randomBetween=function(e,t){return st.nextRandomNumber()*(t-e)+e};st.acosClamped=function(e){return Math.acos(st.clamp(e,-1,1))};st.asinClamped=function(e){return Math.asin(st.clamp(e,-1,1))};st.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};st.logBase=function(e,t){return Math.log(e)/Math.log(t)};st.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});st.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});st.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};st.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};st.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=st.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?st.PI_OVER_TWO-i:i,i=e<0?st.PI-i:i,i=t<0?-i:i,i};var P=st;function $e(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}$e.fromSpherical=function(e,t){l(t)||(t=new $e);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};$e.fromElements=function(e,t,n,i){return l(i)?(i.x=e,i.y=t,i.z=n,i):new $e(e,t,n)};$e.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new $e(e.x,e.y,e.z)};$e.fromCartesian4=$e.clone;$e.packedLength=3;$e.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};$e.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new $e),n.x=e[t++],n.y=e[t++],n.z=e[t],n};$e.packArray=function(e,t){let n=e.length,i=n*3;l(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*3);return t};$e.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let o=i/3;t[o]=$e.unpack(e,i,t[o])}return t};$e.fromArray=$e.unpack;$e.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};$e.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};$e.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};$e.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};$e.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};$e.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};$e.magnitude=function(e){return Math.sqrt($e.magnitudeSquared(e))};var oV=new $e;$e.distance=function(e,t){return $e.subtract(e,t,oV),$e.magnitude(oV)};$e.distanceSquared=function(e,t){return $e.subtract(e,t,oV),$e.magnitudeSquared(oV)};$e.normalize=function(e,t){let n=$e.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};$e.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};$e.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};$e.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};$e.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};$e.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};$e.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};$e.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};$e.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};$e.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 HQ=new $e;$e.lerp=function(e,t,n,i){return $e.multiplyByScalar(t,n,HQ),i=$e.multiplyByScalar(e,1-n,i),$e.add(HQ,i,i)};var iV=new $e,m5=new $e;$e.angleBetween=function(e,t){$e.normalize(e,iV),$e.normalize(t,m5);let n=$e.dot(iV,m5),i=$e.magnitude($e.cross(iV,m5,iV));return Math.atan2(i,n)};var NEe=new $e;$e.mostOrthogonalAxis=function(e,t){let n=$e.normalize(e,NEe);return $e.abs(n,n),n.x<=n.y?n.x<=n.z?t=$e.clone($e.UNIT_X,t):t=$e.clone($e.UNIT_Z,t):n.y<=n.z?t=$e.clone($e.UNIT_Y,t):t=$e.clone($e.UNIT_Z,t),t};$e.projectVector=function(e,t,n){let i=$e.dot(e,t)/$e.dot(t,t);return $e.multiplyByScalar(t,i,n)};$e.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};$e.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};$e.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(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)};$e.cross=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=t.x,a=t.y,c=t.z,u=o*c-r*a,f=r*s-i*c,d=i*a-o*s;return n.x=u,n.y=f,n.z=d,n};$e.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};$e.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(e),t=P.toRadians(t),$e.fromRadians(e,t,n,i,o)};var mf=new $e,OC=new $e;$e._ellipsoidRadiiSquared=new $e(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);$e.fromRadians=function(e,t,n,i,o){n=y(n,0);let r=l(i)?i.radiiSquared:$e._ellipsoidRadiiSquared,s=Math.cos(t);mf.x=s*Math.cos(e),mf.y=s*Math.sin(e),mf.z=Math.sin(t),mf=$e.normalize(mf,mf),$e.multiplyComponents(r,mf,OC);let a=Math.sqrt($e.dot(mf,OC));return OC=$e.divideByScalar(OC,a,OC),mf=$e.multiplyByScalar(mf,n,mf),l(o)||(o=new $e),$e.add(OC,mf,o)};$e.fromDegreesArray=function(e,t,n){let i=e.length;l(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]=$e.fromDegrees(r,s,0,t,n[a])}return n};$e.fromRadiansArray=function(e,t,n){let i=e.length;l(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]=$e.fromRadians(r,s,0,t,n[a])}return n};$e.fromDegreesArrayHeights=function(e,t,n){let i=e.length;l(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]=$e.fromDegrees(r,s,a,t,n[c])}return n};$e.fromRadiansArrayHeights=function(e,t,n){let i=e.length;l(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]=$e.fromRadians(r,s,a,t,n[c])}return n};$e.ZERO=Object.freeze(new $e(0,0,0));$e.ONE=Object.freeze(new $e(1,1,1));$e.UNIT_X=Object.freeze(new $e(1,0,0));$e.UNIT_Y=Object.freeze(new $e(0,1,0));$e.UNIT_Z=Object.freeze(new $e(0,0,1));$e.prototype.clone=function(e){return $e.clone(this,e)};$e.prototype.equals=function(e){return $e.equals(this,e)};$e.prototype.equalsEpsilon=function(e,t,n){return $e.equalsEpsilon(this,e,t,n)};$e.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var h=$e;function gt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}gt.fromElements=function(e,t,n,i,o){return l(o)?(o.x=e,o.y=t,o.z=n,o.w=i,o):new gt(e,t,n,i)};gt.fromColor=function(e,t){return l(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new gt(e.red,e.green,e.blue,e.alpha)};gt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new gt(e.x,e.y,e.z,e.w)};gt.packedLength=4;gt.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};gt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new gt),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};gt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)gt.pack(e[o],t,o*4);return t};gt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=gt.unpack(e,i,t[o])}return t};gt.fromArray=gt.unpack;gt.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)};gt.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)};gt.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};gt.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};gt.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};gt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};gt.magnitude=function(e){return Math.sqrt(gt.magnitudeSquared(e))};var rV=new gt;gt.distance=function(e,t){return gt.subtract(e,t,rV),gt.magnitude(rV)};gt.distanceSquared=function(e,t){return gt.subtract(e,t,rV),gt.magnitudeSquared(rV)};gt.normalize=function(e,t){let n=gt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t};gt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};gt.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};gt.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};gt.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};gt.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};gt.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};gt.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};gt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};gt.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 GQ=new gt;gt.lerp=function(e,t,n,i){return gt.multiplyByScalar(t,n,GQ),i=gt.multiplyByScalar(e,1-n,i),gt.add(GQ,i,i)};var FEe=new gt;gt.mostOrthogonalAxis=function(e,t){let n=gt.normalize(e,FEe);return gt.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=gt.clone(gt.UNIT_X,t):t=gt.clone(gt.UNIT_W,t):n.z<=n.w?t=gt.clone(gt.UNIT_Z,t):t=gt.clone(gt.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=gt.clone(gt.UNIT_Y,t):t=gt.clone(gt.UNIT_W,t):n.z<=n.w?t=gt.clone(gt.UNIT_Z,t):t=gt.clone(gt.UNIT_W,t),t};gt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};gt.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]};gt.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(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)};gt.ZERO=Object.freeze(new gt(0,0,0,0));gt.ONE=Object.freeze(new gt(1,1,1,1));gt.UNIT_X=Object.freeze(new gt(1,0,0,0));gt.UNIT_Y=Object.freeze(new gt(0,1,0,0));gt.UNIT_Z=Object.freeze(new gt(0,0,1,0));gt.UNIT_W=Object.freeze(new gt(0,0,0,1));gt.prototype.clone=function(e){return gt.clone(this,e)};gt.prototype.equals=function(e){return gt.equals(this,e)};gt.prototype.equalsEpsilon=function(e,t,n){return gt.equalsEpsilon(this,e,t,n)};gt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var p5=new Float32Array(1),$a=new Uint8Array(p5.buffer),BEe=new Uint32Array([287454020]),kEe=new Uint8Array(BEe.buffer),WQ=kEe[0]===68;gt.packFloat=function(e,t){return l(t)||(t=new gt),p5[0]=e,WQ?(t.x=$a[0],t.y=$a[1],t.z=$a[2],t.w=$a[3]):(t.x=$a[3],t.y=$a[2],t.z=$a[1],t.w=$a[0]),t};gt.unpackFloat=function(e){return WQ?($a[0]=e.x,$a[1]=e.y,$a[2]=e.z,$a[3]=e.w):($a[0]=e.w,$a[1]=e.z,$a[2]=e.y,$a[3]=e.x),p5[0]};var oe=gt;function et(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)}et.packedLength=9;et.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};et.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new et),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};et.packArray=function(e,t){let n=e.length,i=n*9;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)et.pack(e[o],t,o*9);return t};et.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let o=i/9;t[o]=et.unpack(e,i,t[o])}return t};et.clone=function(e,t){if(l(e))return l(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 et(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};et.fromArray=et.unpack;et.fromColumnMajorArray=function(e,t){return et.clone(e,t)};et.fromRowMajorArray=function(e,t){return l(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 et(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};et.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,u=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-u+d,g=2*(i-f),m=2*(o+c),x=2*(i+f),b=-n+s-u+d,T=2*(a-r),C=2*(o-c),A=2*(a+r),E=-n-s+u+d;return l(t)?(t[0]=p,t[1]=x,t[2]=C,t[3]=g,t[4]=b,t[5]=A,t[6]=m,t[7]=T,t[8]=E,t):new et(p,g,m,x,b,T,C,A,E)};et.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,u=-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 l(t)?(t[0]=c,t[1]=d,t[2]=m,t[3]=u,t[4]=p,t[5]=x,t[6]=f,t[7]=g,t[8]=b,t):new et(c,u,f,d,p,g,m,x,b)};et.fromScale=function(e,t){return l(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 et(e.x,0,0,0,e.y,0,0,0,e.z)};et.fromUniformScale=function(e,t){return l(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 et(e,0,0,0,e,0,0,0,e)};et.fromCrossProduct=function(e,t){return l(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 et(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};et.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(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 et(1,0,0,0,n,-i,0,i,n)};et.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(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 et(n,0,i,0,1,0,-i,0,n)};et.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(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 et(n,-i,0,i,n,0,0,0,1)};et.toArray=function(e,t){return l(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]]};et.getElementIndex=function(e,t){return e*3+t};et.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};et.setColumn=function(e,t,n,i){i=et.clone(e,i);let o=t*3;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i};et.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};et.setRow=function(e,t,n,i){return i=et.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var VEe=new h;et.setScale=function(e,t,n){let i=et.getScale(e,VEe),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 UEe=new h;et.setUniformScale=function(e,t,n){let i=et.getScale(e,UEe),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 _5=new h;et.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],_5)),t.y=h.magnitude(h.fromElements(e[3],e[4],e[5],_5)),t.z=h.magnitude(h.fromElements(e[6],e[7],e[8],_5)),t};var jQ=new h;et.getMaximumScale=function(e){return et.getScale(e,jQ),h.maximumComponent(jQ)};var zEe=new h;et.setRotation=function(e,t,n){let i=et.getScale(e,zEe);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 HEe=new h;et.getRotation=function(e,t){let n=et.getScale(e,HEe);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};et.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],u=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]=u,n[7]=f,n[8]=d,n};et.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};et.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};et.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};et.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};et.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};et.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};et.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};et.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],u=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]=u,t[8]=f,t};function GEe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var g5=[1,0,0],y5=[2,2,1];function WEe(e){let t=0;for(let n=0;n<3;++n){let i=e[et.getElementIndex(y5[n],g5[n])];t+=2*i*i}return Math.sqrt(t)}function jEe(e,t){let n=P.EPSILON15,i=0,o=1;for(let u=0;u<3;++u){let f=Math.abs(e[et.getElementIndex(y5[u],g5[u])]);f>i&&(o=u,i=f)}let r=1,s=0,a=g5[o],c=y5[o];if(Math.abs(e[et.getElementIndex(c,a)])>n){let u=e[et.getElementIndex(c,c)],f=e[et.getElementIndex(a,a)],d=e[et.getElementIndex(c,a)],p=(u-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=et.clone(et.IDENTITY,t),t[et.getElementIndex(a,a)]=t[et.getElementIndex(c,c)]=r,t[et.getElementIndex(c,a)]=s,t[et.getElementIndex(a,c)]=-s,t}var sV=new et,qQ=new et;et.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,o=0,r=0;l(t)||(t={});let s=t.unitary=et.clone(et.IDENTITY,t.unitary),a=t.diagonal=et.clone(e,t.diagonal),c=n*GEe(a);for(;r<i&&WEe(a)>c;)jEe(a,sV),et.transpose(sV,qQ),et.multiply(a,sV,a),et.multiply(qQ,a,a),et.multiply(s,sV,s),++o>2&&(++r,o=0);return t};et.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};et.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],u=e[8];return t*(r*u-c*s)+o*(c*i-n*u)+a*(n*s-r*i)};et.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],u=e[7],f=e[8],d=et.determinant(e);t[0]=s*f-u*a,t[1]=u*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*u-c*s,t[7]=c*i-n*u,t[8]=n*s-r*i;let p=1/d;return et.multiplyByScalar(t,p,t)};var qEe=new et;et.inverseTranspose=function(e,t){return et.inverse(et.transpose(e,qEe),t)};et.equals=function(e,t){return e===t||l(e)&&l(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]};et.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(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};et.IDENTITY=Object.freeze(new et(1,0,0,0,1,0,0,0,1));et.ZERO=Object.freeze(new et(0,0,0,0,0,0,0,0,0));et.COLUMN0ROW0=0;et.COLUMN0ROW1=1;et.COLUMN0ROW2=2;et.COLUMN1ROW0=3;et.COLUMN1ROW1=4;et.COLUMN1ROW2=5;et.COLUMN2ROW0=6;et.COLUMN2ROW1=7;et.COLUMN2ROW2=8;Object.defineProperties(et.prototype,{length:{get:function(){return et.packedLength}}});et.prototype.clone=function(e){return et.clone(this,e)};et.prototype.equals=function(e){return et.equals(this,e)};et.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]};et.prototype.equalsEpsilon=function(e,t){return et.equalsEpsilon(this,e,t)};et.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]})
(${this[1]}, ${this[4]}, ${this[7]})
(${this[2]}, ${this[5]}, ${this[8]})`};var $=et;function Xv(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(Xv.prototype=Object.create(Error.prototype),Xv.prototype.constructor=Xv);Xv.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=`
${this.stack.toString()}`),e};var ce=Xv;function Qe(e,t,n,i,o,r,s,a,c,u,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(u,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)}Qe.packedLength=16;Qe.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};Qe.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Qe),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};Qe.packArray=function(e,t){let n=e.length,i=n*16;l(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*16);return t};Qe.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let o=i/16;t[o]=Qe.unpack(e,i,t[o])}return t};Qe.clone=function(e,t){if(l(e))return l(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 Qe(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])};Qe.fromArray=Qe.unpack;Qe.fromColumnMajorArray=function(e,t){return Qe.clone(e,t)};Qe.fromRowMajorArray=function(e,t){return l(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 Qe(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])};Qe.fromRotationTranslation=function(e,t,n){return t=y(t,h.ZERO),l(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 Qe(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)};Qe.fromTranslationQuaternionRotationScale=function(e,t,n,i){l(i)||(i=new Qe);let o=n.x,r=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,u=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,C=2*(c-x),A=2*(u+g),E=2*(c+x),v=-a+d-m+b,D=2*(p-f),O=2*(u-g),R=2*(p+f),M=-a-d+m+b;return i[0]=T*o,i[1]=E*o,i[2]=O*o,i[3]=0,i[4]=C*r,i[5]=v*r,i[6]=R*r,i[7]=0,i[8]=A*s,i[9]=D*s,i[10]=M*s,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,i};Qe.fromTranslationRotationScale=function(e,t){return Qe.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};Qe.fromTranslation=function(e,t){return Qe.fromRotationTranslation($.IDENTITY,e,t)};Qe.fromScale=function(e,t){return l(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 Qe(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};Qe.fromUniformScale=function(e,t){return l(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 Qe(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};Qe.fromRotation=function(e,t){return l(t)||(t=new Qe),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 MC=new h,LC=new h,Kv=new h;Qe.fromCamera=function(e,t){let n=e.position,i=e.direction,o=e.up;h.normalize(i,MC),h.normalize(h.cross(MC,o,LC),LC),h.normalize(h.cross(LC,MC,Kv),Kv);let r=LC.x,s=LC.y,a=LC.z,c=MC.x,u=MC.y,f=MC.z,d=Kv.x,p=Kv.y,g=Kv.z,m=n.x,x=n.y,b=n.z,T=r*-m+s*-x+a*-b,C=d*-m+p*-x+g*-b,A=c*m+u*x+f*b;return l(t)?(t[0]=r,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-u,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=T,t[13]=C,t[14]=A,t[15]=1,t):new Qe(r,s,a,T,d,p,g,C,-c,-u,-f,A,0,0,0,1)};Qe.computePerspectiveFieldOfView=function(e,t,n,i,o){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),u=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]=u,o[15]=0,o};Qe.computeOrthographicOffCenter=function(e,t,n,i,o,r,s){let a=1/(t-e),c=1/(i-n),u=1/(r-o),f=-(t+e)*a,d=-(i+n)*c,p=-(r+o)*u;return a*=2,c*=2,u*=-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]=u,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};Qe.computePerspectiveOffCenter=function(e,t,n,i,o,r,s){let a=2*o/(t-e),c=2*o/(i-n),u=(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]=u,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};Qe.computeInfinitePerspectiveOffCenter=function(e,t,n,i,o,r){let s=2*o/(t-e),a=2*o/(i-n),c=(t+e)/(t-e),u=(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]=u,r[10]=f,r[11]=d,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r};Qe.computeViewportTransformation=function(e,t,n,i){l(i)||(i=new Qe),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,u=a*.5,f=(n-t)*.5,d=c,p=u,g=f,m=o+c,x=r+u,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};Qe.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};Qe.toArray=function(e,t){return l(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]]};Qe.getElementIndex=function(e,t){return e*4+t};Qe.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};Qe.setColumn=function(e,t,n,i){i=Qe.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};Qe.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};Qe.setRow=function(e,t,n,i){return i=Qe.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};Qe.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 YEe=new h;Qe.setScale=function(e,t,n){let i=Qe.getScale(e,YEe),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 XEe=new h;Qe.setUniformScale=function(e,t,n){let i=Qe.getScale(e,XEe),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 x5=new h;Qe.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],x5)),t.y=h.magnitude(h.fromElements(e[4],e[5],e[6],x5)),t.z=h.magnitude(h.fromElements(e[8],e[9],e[10],x5)),t};var YQ=new h;Qe.getMaximumScale=function(e){return Qe.getScale(e,YQ),h.maximumComponent(YQ)};var KEe=new h;Qe.setRotation=function(e,t,n){let i=Qe.getScale(e,KEe);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 ZEe=new h;Qe.getRotation=function(e,t){let n=Qe.getScale(e,ZEe);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};Qe.multiply=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[3],a=e[4],c=e[5],u=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],C=e[15],A=t[0],E=t[1],v=t[2],D=t[3],O=t[4],R=t[5],M=t[6],N=t[7],_=t[8],S=t[9],w=t[10],I=t[11],L=t[12],B=t[13],U=t[14],V=t[15],G=i*A+a*E+d*v+x*D,k=o*A+c*E+p*v+b*D,W=r*A+u*E+g*v+T*D,q=s*A+f*E+m*v+C*D,J=i*O+a*R+d*M+x*N,j=o*O+c*R+p*M+b*N,K=r*O+u*R+g*M+T*N,Q=s*O+f*R+m*M+C*N,de=i*_+a*S+d*w+x*I,ye=o*_+c*S+p*w+b*I,ae=r*_+u*S+g*w+T*I,_e=s*_+f*S+m*w+C*I,xe=i*L+a*B+d*U+x*V,De=o*L+c*B+p*U+b*V,Ae=r*L+u*B+g*U+T*V,ke=s*L+f*B+m*U+C*V;return n[0]=G,n[1]=k,n[2]=W,n[3]=q,n[4]=J,n[5]=j,n[6]=K,n[7]=Q,n[8]=de,n[9]=ye,n[10]=ae,n[11]=_e,n[12]=xe,n[13]=De,n[14]=Ae,n[15]=ke,n};Qe.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};Qe.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};Qe.multiplyTransformation=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=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],C=t[4],A=t[5],E=t[6],v=t[8],D=t[9],O=t[10],R=t[12],M=t[13],N=t[14],_=i*x+s*b+u*T,S=o*x+a*b+f*T,w=r*x+c*b+d*T,I=i*C+s*A+u*E,L=o*C+a*A+f*E,B=r*C+c*A+d*E,U=i*v+s*D+u*O,V=o*v+a*D+f*O,G=r*v+c*D+d*O,k=i*R+s*M+u*N+p,W=o*R+a*M+f*N+g,q=r*R+c*M+d*N+m;return n[0]=_,n[1]=S,n[2]=w,n[3]=0,n[4]=I,n[5]=L,n[6]=B,n[7]=0,n[8]=U,n[9]=V,n[10]=G,n[11]=0,n[12]=k,n[13]=W,n[14]=q,n[15]=1,n};Qe.multiplyByMatrix3=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=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],C=t[6],A=t[7],E=t[8],v=i*p+s*g+u*m,D=o*p+a*g+f*m,O=r*p+c*g+d*m,R=i*x+s*b+u*T,M=o*x+a*b+f*T,N=r*x+c*b+d*T,_=i*C+s*A+u*E,S=o*C+a*A+f*E,w=r*C+c*A+d*E;return n[0]=v,n[1]=D,n[2]=O,n[3]=0,n[4]=R,n[5]=M,n[6]=N,n[7]=0,n[8]=_,n[9]=S,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};Qe.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};Qe.multiplyByScale=function(e,t,n){let i=t.x,o=t.y,r=t.z;return i===1&&o===1&&r===1?Qe.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)};Qe.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};Qe.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,u=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=u,n.w=f,n};Qe.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};Qe.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};Qe.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};Qe.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};Qe.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};Qe.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};Qe.equals=function(e,t){return e===t||l(e)&&l(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]};Qe.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(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};Qe.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};Qe.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 $Ee=new $,QEe=new $,JEe=new oe,eSe=new oe(0,0,0,1);Qe.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],u=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],C=p*T,A=g*b,E=d*T,v=g*x,D=d*b,O=p*x,R=f*T,M=g*m,N=f*b,_=p*m,S=f*x,w=d*m,I=C*a+v*c+D*u-(A*a+E*c+O*u),L=A*s+R*c+_*u-(C*s+M*c+N*u),B=E*s+M*a+S*u-(v*s+R*a+w*u),U=O*s+N*a+w*c-(D*s+_*a+S*c),V=A*i+E*o+O*r-(C*i+v*o+D*r),G=C*n+M*o+N*r-(A*n+R*o+_*r),k=v*n+R*i+w*r-(E*n+M*i+S*r),W=D*n+_*i+S*o-(O*n+N*i+w*o);C=o*u,A=r*c,E=i*u,v=r*a,D=i*c,O=o*a,R=n*u,M=r*s,N=n*c,_=o*s,S=n*a,w=i*s;let q=C*x+v*b+D*T-(A*x+E*b+O*T),J=A*m+R*b+_*T-(C*m+M*b+N*T),j=E*m+M*x+S*T-(v*m+R*x+w*T),K=O*m+N*x+w*b-(D*m+_*x+S*b),Q=E*p+O*g+A*d-(D*g+C*d+v*p),de=N*g+C*f+M*p-(R*p+_*g+A*f),ye=R*d+w*g+v*f-(S*g+E*f+M*d),ae=S*p+D*f+_*d-(N*d+w*p+O*f),_e=n*I+i*L+o*B+r*U;if(Math.abs(_e)<P.EPSILON21){if($.equalsEpsilon(Qe.getMatrix3(e,$Ee),QEe,P.EPSILON7)&&oe.equals(Qe.getRow(e,3,JEe),eSe))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 ce("matrix is not invertible because its determinate is zero.")}return _e=1/_e,t[0]=I*_e,t[1]=L*_e,t[2]=B*_e,t[3]=U*_e,t[4]=V*_e,t[5]=G*_e,t[6]=k*_e,t[7]=W*_e,t[8]=q*_e,t[9]=J*_e,t[10]=j*_e,t[11]=K*_e,t[12]=Q*_e,t[13]=de*_e,t[14]=ye*_e,t[15]=ae*_e,t};Qe.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],u=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-u*p-f*g;return t[0]=n,t[1]=r,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=u,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 tSe=new Qe;Qe.inverseTranspose=function(e,t){return Qe.inverse(Qe.transpose(e,tSe),t)};Qe.IDENTITY=Object.freeze(new Qe(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));Qe.ZERO=Object.freeze(new Qe(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));Qe.COLUMN0ROW0=0;Qe.COLUMN0ROW1=1;Qe.COLUMN0ROW2=2;Qe.COLUMN0ROW3=3;Qe.COLUMN1ROW0=4;Qe.COLUMN1ROW1=5;Qe.COLUMN1ROW2=6;Qe.COLUMN1ROW3=7;Qe.COLUMN2ROW0=8;Qe.COLUMN2ROW1=9;Qe.COLUMN2ROW2=10;Qe.COLUMN2ROW3=11;Qe.COLUMN3ROW0=12;Qe.COLUMN3ROW1=13;Qe.COLUMN3ROW2=14;Qe.COLUMN3ROW3=15;Object.defineProperties(Qe.prototype,{length:{get:function(){return Qe.packedLength}}});Qe.prototype.clone=function(e){return Qe.clone(this,e)};Qe.prototype.equals=function(e){return Qe.equals(this,e)};Qe.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]};Qe.prototype.equalsEpsilon=function(e,t){return Qe.equalsEpsilon(this,e,t)};Qe.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 F=Qe;var nSe={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},te=Object.freeze(nSe);var iSe=new h;function Dt(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var ra={};ra[te.FLOAT]="float";ra[te.FLOAT_VEC2]="vec2";ra[te.FLOAT_VEC3]="vec3";ra[te.FLOAT_VEC4]="vec4";ra[te.INT]="int";ra[te.INT_VEC2]="ivec2";ra[te.INT_VEC3]="ivec3";ra[te.INT_VEC4]="ivec4";ra[te.BOOL]="bool";ra[te.BOOL_VEC2]="bvec2";ra[te.BOOL_VEC3]="bvec3";ra[te.BOOL_VEC4]="bvec4";ra[te.FLOAT_MAT2]="mat2";ra[te.FLOAT_MAT3]="mat3";ra[te.FLOAT_MAT4]="mat4";ra[te.SAMPLER_2D]="sampler2D";ra[te.SAMPLER_CUBE]="samplerCube";Dt.prototype.getDeclaration=function(e){let t=`uniform ${ra[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var oSe={czm_viewport:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new Dt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_eyeEllipsoidNormalEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.eyeEllipsoidNormalEC}}),czm_eyeEllipsoidCurvature:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeEllipsoidCurvature}}),czm_modelToEnu:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelToEnu}}),czm_enuToModel:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.enuToModel}}),czm_entireFrustum:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return F.getTranslation(e.inverseView,iSe)}}),czm_frameNumber:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new Dt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new Dt({size:1,datatype:te.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new Dt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapsMaximumLOD:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new Dt({size:9,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogDensity}}),czm_fogVisualDensityScalar:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogVisualDensityScalar}}),czm_fogMinimumBrightness:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogMinimumBrightness}}),czm_atmosphereHsbShift:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereHsbShift}}),czm_atmosphereLightIntensity:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereLightIntensity}}),czm_atmosphereRayleighCoefficient:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereRayleighCoefficient}}),czm_atmosphereRayleighScaleHeight:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereRayleighScaleHeight}}),czm_atmosphereMieCoefficient:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereMieCoefficient}}),czm_atmosphereMieScaleHeight:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereMieScaleHeight}}),czm_atmosphereMieAnisotropy:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereMieAnisotropy}}),czm_atmosphereDynamicLighting:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereDynamicLighting}}),czm_splitPosition:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},_p=oSe;function rSe(){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 Hn=rSe;function sSe(){return!0}function aSe(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=sSe}var ue=aSe;var Vs={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT};Vs.getSizeInBytes=function(e){switch(e){case Vs.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Vs.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Vs.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};Vs.fromSizeInBytes=function(e){switch(e){case 2:return Vs.UNSIGNED_SHORT;case 4:return Vs.UNSIGNED_INT;case 1:return Vs.UNSIGNED_BYTE}};Vs.validate=function(e){return l(e)&&(e===Vs.UNSIGNED_BYTE||e===Vs.UNSIGNED_SHORT||e===Vs.UNSIGNED_INT)};Vs.createTypedArray=function(e,t){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};Vs.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};Vs.fromTypedArray=function(e){if(e instanceof Uint8Array)return Vs.UNSIGNED_BYTE;if(e instanceof Uint16Array)return Vs.UNSIGNED_SHORT;if(e instanceof Uint32Array)return Vs.UNSIGNED_INT};var Ne=Object.freeze(Vs);var aV={STREAM_DRAW:te.STREAM_DRAW,STATIC_DRAW:te.STATIC_DRAW,DYNAMIC_DRAW:te.DYNAMIC_DRAW,validate:function(e){return e===aV.STREAM_DRAW||e===aV.STATIC_DRAW||e===aV.DYNAMIC_DRAW}},Fe=Object.freeze(aV);function pf(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=l(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=Hn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}pf.createVertexBuffer=function(e){return new pf({context:e.context,bufferTarget:te.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};pf.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ne.getSizeInBytes(n),o=new pf({context:t,bufferTarget:te.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(pf.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});pf.prototype._getBuffer=function(){return this._buffer};pf.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)};pf.prototype.copyFromBuffer=function(e,t,n,i){let o=te.COPY_READ_BUFFER,r=te.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)};pf.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=te.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};pf.prototype.isDestroyed=function(){return!1};pf.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var _t=pf;var wg,Rr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},Cl={};Object.defineProperties(Cl,{element:{get:function(){if(Cl.supportsFullscreen())return document[Rr.fullscreenElement]}},changeEventName:{get:function(){if(Cl.supportsFullscreen())return Rr.fullscreenchange}},errorEventName:{get:function(){if(Cl.supportsFullscreen())return Rr.fullscreenerror}},enabled:{get:function(){if(Cl.supportsFullscreen())return document[Rr.fullscreenEnabled]}},fullscreen:{get:function(){if(Cl.supportsFullscreen())return Cl.element!==null}}});Cl.supportsFullscreen=function(){if(l(wg))return wg;wg=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return Rr.requestFullscreen="requestFullscreen",Rr.exitFullscreen="exitFullscreen",Rr.fullscreenEnabled="fullscreenEnabled",Rr.fullscreenElement="fullscreenElement",Rr.fullscreenchange="fullscreenchange",Rr.fullscreenerror="fullscreenerror",wg=!0,wg;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"?(Rr.requestFullscreen=n,wg=!0):(n=`${r}RequestFullScreen`,typeof e[n]=="function"&&(Rr.requestFullscreen=n,wg=!0)),n=`${r}ExitFullscreen`,typeof document[n]=="function"?Rr.exitFullscreen=n:(n=`${r}CancelFullScreen`,typeof document[n]=="function"&&(Rr.exitFullscreen=n)),n=`${r}FullscreenEnabled`,document[n]!==void 0?Rr.fullscreenEnabled=n:(n=`${r}FullScreenEnabled`,document[n]!==void 0&&(Rr.fullscreenEnabled=n)),n=`${r}FullscreenElement`,document[n]!==void 0?Rr.fullscreenElement=n:(n=`${r}FullScreenElement`,document[n]!==void 0&&(Rr.fullscreenElement=n)),n=`${r}fullscreenchange`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenChange"),Rr.fullscreenchange=n),n=`${r}fullscreenerror`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenError"),Rr.fullscreenerror=n)}return wg};Cl.requestFullscreen=function(e,t){Cl.supportsFullscreen()&&e[Rr.requestFullscreen]({vrDisplay:t})};Cl.exitFullscreen=function(){Cl.supportsFullscreen()&&document[Rr.exitFullscreen]()};Cl._names=Rr;var gr=Cl;var Qa;typeof navigator<"u"?Qa=navigator:Qa={};function Z0(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var cV,XQ;function S5(){if(!l(cV)&&(cV=!1,!mV())){let e=/ Chrome\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(cV=!0,XQ=Z0(e[1]))}return cV}function cSe(){return S5()&&XQ}var lV,KQ;function ZQ(){if(!l(lV)&&(lV=!1,!S5()&&!mV()&&/ Safari\/[\.0-9]+/.test(Qa.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(lV=!0,KQ=Z0(e[1]))}return lV}function lSe(){return ZQ()&&KQ}var uV,A5;function $Q(){if(!l(uV)){uV=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(Qa.userAgent);e!==null&&(uV=!0,A5=Z0(e[1]),A5.isNightly=!!e[2])}return uV}function uSe(){return $Q()&&A5}var Zv,E5;function QQ(){if(!l(Zv)){Zv=!1;let e;Qa.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Qa.userAgent),e!==null&&(Zv=!0,E5=Z0(e[1]))):Qa.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Qa.userAgent),e!==null&&(Zv=!0,E5=Z0(e[1])))}return Zv}function fSe(){return QQ()&&E5}var fV,JQ;function mV(){if(!l(fV)){fV=!1;let e=/ Edg\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(fV=!0,JQ=Z0(e[1]))}return fV}function dSe(){return mV()&&JQ}var dV,v5;function pV(){if(!l(dV)){dV=!1;let e=/Firefox\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(dV=!0,v5=Z0(e[1]))}return dV}var b5;function hSe(){return l(b5)||(b5=/Windows/i.test(Qa.appVersion)),b5}var T5;function mSe(){return l(T5)||(T5=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),T5}function pSe(){return pV()&&v5}var C5;function _Se(){return l(C5)||(C5=!pV()&&typeof PointerEvent<"u"&&(!l(Qa.pointerEnabled)||Qa.pointerEnabled)),C5}var eJ,hV;function tJ(){if(!l(hV)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;hV=l(t)&&t!=="",hV&&(eJ=t)}return hV}function gSe(){return tJ()?eJ:void 0}function Lc(){return Lc._result}Lc._promise=void 0;Lc._result=void 0;Lc.initialize=function(){return l(Lc._promise)||(Lc._promise=new Promise(e=>{let t=new Image;t.onload=function(){Lc._result=t.width>0&&t.height>0,e(Lc._result)},t.onerror=function(){Lc._result=!1,e(Lc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),Lc._promise};Object.defineProperties(Lc,{initialized:{get:function(){return l(Lc._result)}}});var NC=[];typeof ArrayBuffer<"u"&&(NC.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&NC.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&NC.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&NC.push(BigInt64Array),typeof BigUint64Array<"u"&&NC.push(BigUint64Array));var _f={isChrome:S5,chromeVersion:cSe,isSafari:ZQ,safariVersion:lSe,isWebkit:$Q,webkitVersion:uSe,isInternetExplorer:QQ,internetExplorerVersion:fSe,isEdge:mV,edgeVersion:dSe,isFirefox:pV,firefoxVersion:pSe,isWindows:hSe,isIPadOrIOS:mSe,hardwareConcurrency:y(Qa.hardwareConcurrency,3),supportsPointerEvents:_Se,supportsImageRenderingPixelated:tJ,supportsWebP:Lc,imageRenderingValue:gSe,typedArrayTypes:NC};_f.supportsBasis=function(e){return _f.supportsWebAssembly()&&e.context.supportsBasis};_f.supportsFullscreen=function(){return gr.supportsFullscreen()};_f.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};_f.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};_f.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};_f.supportsBigInt=function(){return typeof BigInt<"u"};_f.supportsWebWorkers=function(){return typeof Worker<"u"};_f.supportsWebAssembly=function(){return typeof WebAssembly<"u"};_f.supportsWebgl2=function(e){return e.context.webgl2};_f.supportsEsmWebWorkers=function(){return!pV()||parseInt(v5)>=114};var Ht=_f;function w5(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 ie(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ie.fromCartesian4=function(e,t){return l(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ie(e.x,e.y,e.z,e.w)};ie.fromBytes=function(e,t,n,i,o){return e=ie.byteToFloat(y(e,255)),t=ie.byteToFloat(y(t,255)),n=ie.byteToFloat(y(n,255)),i=ie.byteToFloat(y(i,255)),l(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ie(e,t,n,i)};ie.fromAlpha=function(e,t,n){return l(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ie(e.red,e.green,e.blue,t)};var D5,I5,gp;Ht.supportsTypedArrays()&&(D5=new ArrayBuffer(4),I5=new Uint32Array(D5),gp=new Uint8Array(D5));ie.fromRgba=function(e,t){return I5[0]=e,ie.fromBytes(gp[0],gp[1],gp[2],gp[3],t)};ie.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 u=2*n-c;r=w5(u,c,e+1/3),s=w5(u,c,e),a=w5(u,c,e-1/3)}return l(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ie(r,s,a,i)};ie.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!l(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!l(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let o=e.blue;if(!l(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+P.nextRandomNumber()*(a-s)}let r=e.alpha;if(!l(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+P.nextRandomNumber()*(a-s)}return l(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ie(n,i,o,r)};var ySe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,xSe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,bSe=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,TSe=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;ie.fromCssColorString=function(e,t){l(t)||(t=new ie),e=e.trim();let n=ie[e.toUpperCase()];if(l(n))return ie.clone(n,t),t;let i=ySe.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=xSe.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=bSe.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=TSe.exec(e),i!==null?ie.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ie.packedLength=4;ie.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};ie.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ie),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ie.byteToFloat=function(e){return e/255};ie.floatToByte=function(e){return e===1?255:e*256|0};ie.clone=function(e,t){if(l(e))return l(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ie(e.red,e.green,e.blue,e.alpha)};ie.equals=function(e,t){return e===t||l(e)&&l(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ie.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]};ie.prototype.clone=function(e){return ie.clone(this,e)};ie.prototype.equals=function(e){return ie.equals(this,e)};ie.prototype.equalsEpsilon=function(e,t){return this===e||l(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};ie.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ie.prototype.toCssColorString=function(){let e=ie.floatToByte(this.red),t=ie.floatToByte(this.green),n=ie.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ie.prototype.toCssHexString=function(){let e=ie.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ie.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ie.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ie.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ie.prototype.toBytes=function(e){let t=ie.floatToByte(this.red),n=ie.floatToByte(this.green),i=ie.floatToByte(this.blue),o=ie.floatToByte(this.alpha);return l(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ie.prototype.toRgba=function(){return gp[0]=ie.floatToByte(this.red),gp[1]=ie.floatToByte(this.green),gp[2]=ie.floatToByte(this.blue),gp[3]=ie.floatToByte(this.alpha),I5[0]};ie.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};ie.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};ie.prototype.withAlpha=function(e,t){return ie.fromAlpha(this,e,t)};ie.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};ie.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};ie.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};ie.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};ie.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};ie.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};ie.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};ie.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};ie.ALICEBLUE=Object.freeze(ie.fromCssColorString("#F0F8FF"));ie.ANTIQUEWHITE=Object.freeze(ie.fromCssColorString("#FAEBD7"));ie.AQUA=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.AQUAMARINE=Object.freeze(ie.fromCssColorString("#7FFFD4"));ie.AZURE=Object.freeze(ie.fromCssColorString("#F0FFFF"));ie.BEIGE=Object.freeze(ie.fromCssColorString("#F5F5DC"));ie.BISQUE=Object.freeze(ie.fromCssColorString("#FFE4C4"));ie.BLACK=Object.freeze(ie.fromCssColorString("#000000"));ie.BLANCHEDALMOND=Object.freeze(ie.fromCssColorString("#FFEBCD"));ie.BLUE=Object.freeze(ie.fromCssColorString("#0000FF"));ie.BLUEVIOLET=Object.freeze(ie.fromCssColorString("#8A2BE2"));ie.BROWN=Object.freeze(ie.fromCssColorString("#A52A2A"));ie.BURLYWOOD=Object.freeze(ie.fromCssColorString("#DEB887"));ie.CADETBLUE=Object.freeze(ie.fromCssColorString("#5F9EA0"));ie.CHARTREUSE=Object.freeze(ie.fromCssColorString("#7FFF00"));ie.CHOCOLATE=Object.freeze(ie.fromCssColorString("#D2691E"));ie.CORAL=Object.freeze(ie.fromCssColorString("#FF7F50"));ie.CORNFLOWERBLUE=Object.freeze(ie.fromCssColorString("#6495ED"));ie.CORNSILK=Object.freeze(ie.fromCssColorString("#FFF8DC"));ie.CRIMSON=Object.freeze(ie.fromCssColorString("#DC143C"));ie.CYAN=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.DARKBLUE=Object.freeze(ie.fromCssColorString("#00008B"));ie.DARKCYAN=Object.freeze(ie.fromCssColorString("#008B8B"));ie.DARKGOLDENROD=Object.freeze(ie.fromCssColorString("#B8860B"));ie.DARKGRAY=Object.freeze(ie.fromCssColorString("#A9A9A9"));ie.DARKGREEN=Object.freeze(ie.fromCssColorString("#006400"));ie.DARKGREY=ie.DARKGRAY;ie.DARKKHAKI=Object.freeze(ie.fromCssColorString("#BDB76B"));ie.DARKMAGENTA=Object.freeze(ie.fromCssColorString("#8B008B"));ie.DARKOLIVEGREEN=Object.freeze(ie.fromCssColorString("#556B2F"));ie.DARKORANGE=Object.freeze(ie.fromCssColorString("#FF8C00"));ie.DARKORCHID=Object.freeze(ie.fromCssColorString("#9932CC"));ie.DARKRED=Object.freeze(ie.fromCssColorString("#8B0000"));ie.DARKSALMON=Object.freeze(ie.fromCssColorString("#E9967A"));ie.DARKSEAGREEN=Object.freeze(ie.fromCssColorString("#8FBC8F"));ie.DARKSLATEBLUE=Object.freeze(ie.fromCssColorString("#483D8B"));ie.DARKSLATEGRAY=Object.freeze(ie.fromCssColorString("#2F4F4F"));ie.DARKSLATEGREY=ie.DARKSLATEGRAY;ie.DARKTURQUOISE=Object.freeze(ie.fromCssColorString("#00CED1"));ie.DARKVIOLET=Object.freeze(ie.fromCssColorString("#9400D3"));ie.DEEPPINK=Object.freeze(ie.fromCssColorString("#FF1493"));ie.DEEPSKYBLUE=Object.freeze(ie.fromCssColorString("#00BFFF"));ie.DIMGRAY=Object.freeze(ie.fromCssColorString("#696969"));ie.DIMGREY=ie.DIMGRAY;ie.DODGERBLUE=Object.freeze(ie.fromCssColorString("#1E90FF"));ie.FIREBRICK=Object.freeze(ie.fromCssColorString("#B22222"));ie.FLORALWHITE=Object.freeze(ie.fromCssColorString("#FFFAF0"));ie.FORESTGREEN=Object.freeze(ie.fromCssColorString("#228B22"));ie.FUCHSIA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.GAINSBORO=Object.freeze(ie.fromCssColorString("#DCDCDC"));ie.GHOSTWHITE=Object.freeze(ie.fromCssColorString("#F8F8FF"));ie.GOLD=Object.freeze(ie.fromCssColorString("#FFD700"));ie.GOLDENROD=Object.freeze(ie.fromCssColorString("#DAA520"));ie.GRAY=Object.freeze(ie.fromCssColorString("#808080"));ie.GREEN=Object.freeze(ie.fromCssColorString("#008000"));ie.GREENYELLOW=Object.freeze(ie.fromCssColorString("#ADFF2F"));ie.GREY=ie.GRAY;ie.HONEYDEW=Object.freeze(ie.fromCssColorString("#F0FFF0"));ie.HOTPINK=Object.freeze(ie.fromCssColorString("#FF69B4"));ie.INDIANRED=Object.freeze(ie.fromCssColorString("#CD5C5C"));ie.INDIGO=Object.freeze(ie.fromCssColorString("#4B0082"));ie.IVORY=Object.freeze(ie.fromCssColorString("#FFFFF0"));ie.KHAKI=Object.freeze(ie.fromCssColorString("#F0E68C"));ie.LAVENDER=Object.freeze(ie.fromCssColorString("#E6E6FA"));ie.LAVENDAR_BLUSH=Object.freeze(ie.fromCssColorString("#FFF0F5"));ie.LAWNGREEN=Object.freeze(ie.fromCssColorString("#7CFC00"));ie.LEMONCHIFFON=Object.freeze(ie.fromCssColorString("#FFFACD"));ie.LIGHTBLUE=Object.freeze(ie.fromCssColorString("#ADD8E6"));ie.LIGHTCORAL=Object.freeze(ie.fromCssColorString("#F08080"));ie.LIGHTCYAN=Object.freeze(ie.fromCssColorString("#E0FFFF"));ie.LIGHTGOLDENRODYELLOW=Object.freeze(ie.fromCssColorString("#FAFAD2"));ie.LIGHTGRAY=Object.freeze(ie.fromCssColorString("#D3D3D3"));ie.LIGHTGREEN=Object.freeze(ie.fromCssColorString("#90EE90"));ie.LIGHTGREY=ie.LIGHTGRAY;ie.LIGHTPINK=Object.freeze(ie.fromCssColorString("#FFB6C1"));ie.LIGHTSEAGREEN=Object.freeze(ie.fromCssColorString("#20B2AA"));ie.LIGHTSKYBLUE=Object.freeze(ie.fromCssColorString("#87CEFA"));ie.LIGHTSLATEGRAY=Object.freeze(ie.fromCssColorString("#778899"));ie.LIGHTSLATEGREY=ie.LIGHTSLATEGRAY;ie.LIGHTSTEELBLUE=Object.freeze(ie.fromCssColorString("#B0C4DE"));ie.LIGHTYELLOW=Object.freeze(ie.fromCssColorString("#FFFFE0"));ie.LIME=Object.freeze(ie.fromCssColorString("#00FF00"));ie.LIMEGREEN=Object.freeze(ie.fromCssColorString("#32CD32"));ie.LINEN=Object.freeze(ie.fromCssColorString("#FAF0E6"));ie.MAGENTA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.MAROON=Object.freeze(ie.fromCssColorString("#800000"));ie.MEDIUMAQUAMARINE=Object.freeze(ie.fromCssColorString("#66CDAA"));ie.MEDIUMBLUE=Object.freeze(ie.fromCssColorString("#0000CD"));ie.MEDIUMORCHID=Object.freeze(ie.fromCssColorString("#BA55D3"));ie.MEDIUMPURPLE=Object.freeze(ie.fromCssColorString("#9370DB"));ie.MEDIUMSEAGREEN=Object.freeze(ie.fromCssColorString("#3CB371"));ie.MEDIUMSLATEBLUE=Object.freeze(ie.fromCssColorString("#7B68EE"));ie.MEDIUMSPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FA9A"));ie.MEDIUMTURQUOISE=Object.freeze(ie.fromCssColorString("#48D1CC"));ie.MEDIUMVIOLETRED=Object.freeze(ie.fromCssColorString("#C71585"));ie.MIDNIGHTBLUE=Object.freeze(ie.fromCssColorString("#191970"));ie.MINTCREAM=Object.freeze(ie.fromCssColorString("#F5FFFA"));ie.MISTYROSE=Object.freeze(ie.fromCssColorString("#FFE4E1"));ie.MOCCASIN=Object.freeze(ie.fromCssColorString("#FFE4B5"));ie.NAVAJOWHITE=Object.freeze(ie.fromCssColorString("#FFDEAD"));ie.NAVY=Object.freeze(ie.fromCssColorString("#000080"));ie.OLDLACE=Object.freeze(ie.fromCssColorString("#FDF5E6"));ie.OLIVE=Object.freeze(ie.fromCssColorString("#808000"));ie.OLIVEDRAB=Object.freeze(ie.fromCssColorString("#6B8E23"));ie.ORANGE=Object.freeze(ie.fromCssColorString("#FFA500"));ie.ORANGERED=Object.freeze(ie.fromCssColorString("#FF4500"));ie.ORCHID=Object.freeze(ie.fromCssColorString("#DA70D6"));ie.PALEGOLDENROD=Object.freeze(ie.fromCssColorString("#EEE8AA"));ie.PALEGREEN=Object.freeze(ie.fromCssColorString("#98FB98"));ie.PALETURQUOISE=Object.freeze(ie.fromCssColorString("#AFEEEE"));ie.PALEVIOLETRED=Object.freeze(ie.fromCssColorString("#DB7093"));ie.PAPAYAWHIP=Object.freeze(ie.fromCssColorString("#FFEFD5"));ie.PEACHPUFF=Object.freeze(ie.fromCssColorString("#FFDAB9"));ie.PERU=Object.freeze(ie.fromCssColorString("#CD853F"));ie.PINK=Object.freeze(ie.fromCssColorString("#FFC0CB"));ie.PLUM=Object.freeze(ie.fromCssColorString("#DDA0DD"));ie.POWDERBLUE=Object.freeze(ie.fromCssColorString("#B0E0E6"));ie.PURPLE=Object.freeze(ie.fromCssColorString("#800080"));ie.RED=Object.freeze(ie.fromCssColorString("#FF0000"));ie.ROSYBROWN=Object.freeze(ie.fromCssColorString("#BC8F8F"));ie.ROYALBLUE=Object.freeze(ie.fromCssColorString("#4169E1"));ie.SADDLEBROWN=Object.freeze(ie.fromCssColorString("#8B4513"));ie.SALMON=Object.freeze(ie.fromCssColorString("#FA8072"));ie.SANDYBROWN=Object.freeze(ie.fromCssColorString("#F4A460"));ie.SEAGREEN=Object.freeze(ie.fromCssColorString("#2E8B57"));ie.SEASHELL=Object.freeze(ie.fromCssColorString("#FFF5EE"));ie.SIENNA=Object.freeze(ie.fromCssColorString("#A0522D"));ie.SILVER=Object.freeze(ie.fromCssColorString("#C0C0C0"));ie.SKYBLUE=Object.freeze(ie.fromCssColorString("#87CEEB"));ie.SLATEBLUE=Object.freeze(ie.fromCssColorString("#6A5ACD"));ie.SLATEGRAY=Object.freeze(ie.fromCssColorString("#708090"));ie.SLATEGREY=ie.SLATEGRAY;ie.SNOW=Object.freeze(ie.fromCssColorString("#FFFAFA"));ie.SPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FF7F"));ie.STEELBLUE=Object.freeze(ie.fromCssColorString("#4682B4"));ie.TAN=Object.freeze(ie.fromCssColorString("#D2B48C"));ie.TEAL=Object.freeze(ie.fromCssColorString("#008080"));ie.THISTLE=Object.freeze(ie.fromCssColorString("#D8BFD8"));ie.TOMATO=Object.freeze(ie.fromCssColorString("#FF6347"));ie.TURQUOISE=Object.freeze(ie.fromCssColorString("#40E0D0"));ie.VIOLET=Object.freeze(ie.fromCssColorString("#EE82EE"));ie.WHEAT=Object.freeze(ie.fromCssColorString("#F5DEB3"));ie.WHITE=Object.freeze(ie.fromCssColorString("#FFFFFF"));ie.WHITESMOKE=Object.freeze(ie.fromCssColorString("#F5F5F5"));ie.YELLOW=Object.freeze(ie.fromCssColorString("#FFFF00"));ie.YELLOWGREEN=Object.freeze(ie.fromCssColorString("#9ACD32"));ie.TRANSPARENT=Object.freeze(new ie(0,0,0,0));var H=ie;function _V(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}_V.ALL=Object.freeze(new _V({color:new H(0,0,0,0),depth:1,stencil:0}));_V.prototype.execute=function(e,t){e.clear(this,t)};var ei=_V;var CSe={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},ve=Object.freeze(CSe);function nJ(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=ve.COMPUTE,this.owner=e.owner}nJ.prototype.execute=function(e){e.execute(this)};var Nc=nJ;function Ft(e,t){this.x=y(e,0),this.y=y(t,0)}Ft.fromElements=function(e,t,n){return l(n)?(n.x=e,n.y=t,n):new Ft(e,t)};Ft.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t):new Ft(e.x,e.y)};Ft.fromCartesian3=Ft.clone;Ft.fromCartesian4=Ft.clone;Ft.packedLength=2;Ft.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};Ft.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ft),n.x=e[t++],n.y=e[t],n};Ft.packArray=function(e,t){let n=e.length,i=n*2;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Ft.pack(e[o],t,o*2);return t};Ft.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let o=i/2;t[o]=Ft.unpack(e,i,t[o])}return t};Ft.fromArray=Ft.unpack;Ft.maximumComponent=function(e){return Math.max(e.x,e.y)};Ft.minimumComponent=function(e){return Math.min(e.x,e.y)};Ft.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};Ft.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};Ft.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};Ft.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};Ft.magnitude=function(e){return Math.sqrt(Ft.magnitudeSquared(e))};var gV=new Ft;Ft.distance=function(e,t){return Ft.subtract(e,t,gV),Ft.magnitude(gV)};Ft.distanceSquared=function(e,t){return Ft.subtract(e,t,gV),Ft.magnitudeSquared(gV)};Ft.normalize=function(e,t){let n=Ft.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};Ft.dot=function(e,t){return e.x*t.x+e.y*t.y};Ft.cross=function(e,t){return e.x*t.y-e.y*t.x};Ft.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};Ft.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};Ft.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};Ft.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};Ft.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};Ft.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};Ft.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};Ft.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var iJ=new Ft;Ft.lerp=function(e,t,n,i){return Ft.multiplyByScalar(t,n,iJ),i=Ft.multiplyByScalar(e,1-n,i),Ft.add(iJ,i,i)};var oJ=new Ft,rJ=new Ft;Ft.angleBetween=function(e,t){return Ft.normalize(e,oJ),Ft.normalize(t,rJ),P.acosClamped(Ft.dot(oJ,rJ))};var ASe=new Ft;Ft.mostOrthogonalAxis=function(e,t){let n=Ft.normalize(e,ASe);return Ft.abs(n,n),n.x<=n.y?t=Ft.clone(Ft.UNIT_X,t):t=Ft.clone(Ft.UNIT_Y,t),t};Ft.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y};Ft.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};Ft.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)};Ft.ZERO=Object.freeze(new Ft(0,0));Ft.ONE=Object.freeze(new Ft(1,1));Ft.UNIT_X=Object.freeze(new Ft(1,0));Ft.UNIT_Y=Object.freeze(new Ft(0,1));Ft.prototype.clone=function(e){return Ft.clone(this,e)};Ft.prototype.equals=function(e){return Ft.equals(this,e)};Ft.prototype.equalsEpsilon=function(e,t,n){return Ft.equalsEpsilon(this,e,t,n)};Ft.prototype.toString=function(){return`(${this.x}, ${this.y})`};var z=Ft;var ESe=new h,SSe=new h;function vSe(e,t,n,i,o){let r=e.x,s=e.y,a=e.z,c=t.x,u=t.y,f=t.z,d=r*r*c*c,p=s*s*u*u,g=a*a*f*f,m=d+p+g,x=Math.sqrt(1/m),b=h.multiplyByScalar(e,x,ESe);if(m<i)return isFinite(x)?h.clone(b,o):void 0;let T=n.x,C=n.y,A=n.z,E=SSe;E.x=b.x*T*2,E.y=b.y*C*2,E.z=b.z*A*2;let v=(1-x)*h.magnitude(e)/(.5*h.magnitude(E)),D=0,O,R,M,N,_,S,w,I,L,B,U;do{v-=D,M=1/(1+v*T),N=1/(1+v*C),_=1/(1+v*A),S=M*M,w=N*N,I=_*_,L=S*M,B=w*N,U=I*_,O=d*S+p*w+g*I-1,R=d*L*T+p*B*C+g*U*A;let V=-2*R;D=O/V}while(Math.abs(O)>P.EPSILON12);return l(o)?(o.x=r*M,o.y=s*N,o.z=a*_,o):new h(r*M,s*N,a*_)}var $0=vSe;function Uo(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Uo.fromRadians=function(e,t,n,i){return n=y(n,0),l(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Uo(e,t,n)};Uo.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Uo.fromRadians(e,t,n,i)};var wSe=new h,DSe=new h,ISe=new h;Uo._ellipsoidOneOverRadii=new h(1/6378137,1/6378137,1/6356752314245179e-9);Uo._ellipsoidOneOverRadiiSquared=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9));Uo._ellipsoidCenterToleranceSquared=P.EPSILON1;Uo.fromCartesian=function(e,t,n){let i=l(t)?t.oneOverRadii:Uo._ellipsoidOneOverRadii,o=l(t)?t.oneOverRadiiSquared:Uo._ellipsoidOneOverRadiiSquared,r=l(t)?t._centerToleranceSquared:Uo._ellipsoidCenterToleranceSquared,s=$0(e,i,o,r,DSe);if(!l(s))return;let a=h.multiplyComponents(s,o,wSe);a=h.normalize(a,a);let c=h.subtract(e,s,ISe),u=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(h.dot(c,e))*h.magnitude(c);return l(n)?(n.longitude=u,n.latitude=f,n.height=d,n):new Uo(u,f,d)};Uo.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Uo.clone=function(e,t){if(l(e))return l(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Uo(e.longitude,e.latitude,e.height)};Uo.equals=function(e,t){return e===t||l(e)&&l(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Uo.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Uo.ZERO=Object.freeze(new Uo(0,0,0));Uo.prototype.clone=function(e){return Uo.clone(this,e)};Uo.prototype.equals=function(e){return Uo.equals(this,e)};Uo.prototype.equalsEpsilon=function(e,t){return Uo.equalsEpsilon(this,e,t)};Uo.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var fe=Uo;function aJ(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 mi(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,aJ(this,e,t,n)}Object.defineProperties(mi.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}}});mi.clone=function(e,t){if(!l(e))return;let n=e._radii;return l(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 mi(n.x,n.y,n.z)};mi.fromCartesian3=function(e,t){return l(t)||(t=new mi),l(e)&&aJ(t,e.x,e.y,e.z),t};mi.WGS84=Object.freeze(new mi(6378137,6378137,6356752314245179e-9));mi.UNIT_SPHERE=Object.freeze(new mi(1,1,1));mi.MOON=Object.freeze(new mi(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));mi._default=mi.WGS84;Object.defineProperties(mi,{default:{get:function(){return mi._default},set:function(e){mi._default=e,h._ellipsoidRadiiSquared=e.radiiSquared,fe._ellipsoidOneOverRadii=e.oneOverRadii,fe._ellipsoidOneOverRadiiSquared=e.oneOverRadiiSquared,fe._ellipsoidCenterToleranceSquared=e._centerToleranceSquared}}});mi.prototype.clone=function(e){return mi.clone(this,e)};mi.packedLength=h.packedLength;mi.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};mi.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return mi.fromCartesian3(i,n)};mi.prototype.geocentricSurfaceNormal=h.normalize;mi.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 l(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};mi.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,P.EPSILON14))return l(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var PSe=new h,RSe=new h;mi.prototype.cartographicToCartesian=function(e,t){let n=PSe,i=RSe;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),l(t)||(t=new h),h.add(i,n,t)};mi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;l(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 OSe=new h,MSe=new h,LSe=new h;mi.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,MSe);if(!l(n))return;let i=this.geodeticSurfaceNormal(n,OSe),o=h.subtract(e,n,LSe),r=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=P.sign(h.dot(o,e))*h.magnitude(o);return l(t)?(t.longitude=r,t.latitude=s,t.height=a,t):new fe(r,s,a)};mi.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;l(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};mi.prototype.scaleToGeodeticSurface=function(e,t){return $0(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};mi.prototype.scaleToGeocentricSurface=function(e,t){l(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)};mi.prototype.transformPositionToScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._oneOverRadii,t)};mi.prototype.transformPositionFromScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._radii,t)};mi.prototype.equals=function(e){return this===e||l(e)&&h.equals(this._radii,e._radii)};mi.prototype.toString=function(){return this._radii.toString()};mi.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(l(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 NSe=new h;mi.prototype.getLocalCurvature=function(e,t){l(t)||(t=new z);let n=this.getSurfaceNormalIntersectionWithZAxis(e,0,NSe),i=h.distance(e,n),o=this.minimumRadius*i/this.maximumRadius**2,r=i*o**2;return z.fromElements(1/i,1/r,t)};var FSe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],BSe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function sJ(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*FSe[s];r+=BSe[s]*(n(i+a)+n(i-a))}return r*=o,r}mi.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,u=s*a;return sJ(i,o,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*sJ(t,n,function(g){let m=Math.cos(g),x=Math.sin(g);return Math.sqrt(u*p*p+c*(a*m*m+s*x*x)*d*d)})})};var ee=mi;function yV(e){this._ellipsoid=y(e,ee.default),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(yV.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});yV.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=e.latitude*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};yV.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=e.y*n,r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var vi=yV;var kSe={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},jt=Object.freeze(kSe);function VSe(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 Po=VSe;function USe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var Dg=USe;function zSe(e){return e%4===0&&e%100!==0||e%400===0}var Ad=zSe;var cJ=[31,28,31,30,31,30,31,31,30,31,30,31];function HSe(e,t,n,i,o,r,s,a){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,0),o=y(o,0),r=y(r,0),s=y(s,0),a=y(a,!1),this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a;function x(){xo.typeOf.number.greaterThanOrEquals("Year",e,1),xo.typeOf.number.lessThanOrEquals("Year",e,9999),xo.typeOf.number.greaterThanOrEquals("Month",t,1),xo.typeOf.number.lessThanOrEquals("Month",t,12),xo.typeOf.number.greaterThanOrEquals("Day",n,1),xo.typeOf.number.lessThanOrEquals("Day",n,31),xo.typeOf.number.greaterThanOrEquals("Hour",i,0),xo.typeOf.number.lessThanOrEquals("Hour",i,23),xo.typeOf.number.greaterThanOrEquals("Minute",o,0),xo.typeOf.number.lessThanOrEquals("Minute",o,59),xo.typeOf.bool("IsLeapSecond",a),xo.typeOf.number.greaterThanOrEquals("Second",r,0),xo.typeOf.number.lessThanOrEquals("Second",r,a?60:59),xo.typeOf.number.greaterThanOrEquals("Millisecond",s,0),xo.typeOf.number.lessThan("Millisecond",s,1e3)}function b(){let T=t===2&&Ad(e)?cJ[t-1]+1:cJ[t-1];if(n>T)throw new he("Month and Day represents invalid date")}}var yp=HSe;function GSe(e,t){this.julianDate=e,this.offset=t}var ji=GSe;var WSe={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},Yn=Object.freeze(WSe);var jSe={UTC:0,TAI:1},jn=Object.freeze(jSe);var uJ=new yp,P5=[31,28,31,30,31,30,31,31,30,31,30,31],R5=29;function O5(e,t){return Ot.compare(e.julianDate,t.julianDate)}var FC=new ji;function bV(e){FC.julianDate=e;let t=Ot.leapSeconds,n=Po(t,FC,O5);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&Ot.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),Ot.addSeconds(e,i,e)}function lJ(e,t){FC.julianDate=e;let n=Ot.leapSeconds,i=Po(n,FC,O5);if(i<0&&(i=~i),i===0)return Ot.addSeconds(e,-n[0].offset,t);if(i>=n.length)return Ot.addSeconds(e,-n[i-1].offset,t);let o=Ot.secondsDifference(n[i].julianDate,e);if(o===0)return Ot.addSeconds(e,-n[i].offset,t);if(!(o<=1))return Ot.addSeconds(e,-n[--i].offset,t)}function Ig(e,t,n){let i=t/Yn.SECONDS_PER_DAY|0;return e+=i,t-=Yn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Yn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function M5(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,u=(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*Yn.SECONDS_PER_HOUR+o*Yn.SECONDS_PER_MINUTE+s*Yn.SECONDS_PER_MILLISECOND);return f>=43200&&(u-=1),[u,f]}var qSe=/^(\d{4})$/,YSe=/^(\d{4})-(\d{2})$/,XSe=/^(\d{4})-?(\d{3})$/,KSe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,ZSe=/^(\d{4})-?(\d{2})-?(\d{2})$/,L5=/([Z+\-])?(\d{2})?:?(\d{2})?$/,$Se=/^(\d{2})(\.\d+)?/.source+L5.source,QSe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+L5.source,JSe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+L5.source;function Ot(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,jn.UTC);let i=e|0;t=t+(e-i)*Yn.SECONDS_PER_DAY,Ig(i,t,this),n===jn.UTC&&bV(this)}Ot.fromGregorianDate=function(e,t){let n=M5(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return l(t)?(Ig(n[0],n[1],t),bV(t),t):new Ot(n[0],n[1],jn.UTC)};Ot.fromDate=function(e,t){let n=M5(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return l(t)?(Ig(n[0],n[1],t),bV(t),t):new Ot(n[0],n[1],jn.UTC)};Ot.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,u=0,f=n[0],d=n[1],p,g;if(n=f.match(ZSe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(YSe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(qSe),n!==null)i=+n[1];else{let T;if(n=f.match(XSe),n!==null)i=+n[1],T=+n[2],g=Ad(i);else if(n=f.match(KSe),n!==null){i=+n[1];let C=+n[2],A=+n[3]||0,E=new Date(Date.UTC(i,0,4));T=C*7+A-E.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(T),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=Ad(i);let m;if(l(d)){n=d.match(JSe),n!==null?(s=+n[1],a=+n[2],c=+n[3],u=+(n[4]||0)*1e3,m=5):(n=d.match(QSe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,m=4):(n=d.match($Se),n!==null&&(s=+n[1],a=+(n[2]||0)*60,m=3)));let T=n[m],C=+n[m+1],A=+(n[m+2]||0);switch(T){case"+":s=s-C,a=a-A;break;case"-":s=s+C,a=a+A;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?R5:P5[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?R5:P5[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?R5:P5[o-1],r+=p;let b=M5(i,o,r,s,a,c,u);return l(t)?(Ig(b[0],b[1],t),bV(t)):t=new Ot(b[0],b[1],jn.UTC),x&&Ot.addSeconds(t,1,t),t};Ot.now=function(e){return Ot.fromDate(new Date,e)};var xV=new Ot(0,0,jn.TAI);Ot.toGregorianDate=function(e,t){let n=!1,i=lJ(e,xV);l(i)||(Ot.addSeconds(e,-1,xV),i=lJ(xV,xV),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 u=80*s/2447|0,f=s-(2447*u/80|0)|0;s=u/11|0;let d=u+2-12*s|0,p=100*(a-49)+c+s|0,g=r/Yn.SECONDS_PER_HOUR|0,m=r-g*Yn.SECONDS_PER_HOUR,x=m/Yn.SECONDS_PER_MINUTE|0;m=m-x*Yn.SECONDS_PER_MINUTE;let b=m|0,T=(m-b)/Yn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(b+=1),l(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 yp(p,d,f,g,x,b,T,n)};Ot.toDate=function(e){let t=Ot.toGregorianDate(e,uJ),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))};Ot.toIso8601=function(e,t){let n=Ot.toGregorianDate(e,uJ),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,u=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&u===0&&(i=9999,o=12,r=31,s=24);let f;return!l(t)&&u!==0?(f=(u*.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`):!l(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=(u*.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`)};Ot.clone=function(e,t){if(l(e))return l(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new Ot(e.dayNumber,e.secondsOfDay,jn.TAI)};Ot.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};Ot.equals=function(e,t){return e===t||l(e)&&l(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};Ot.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(Ot.secondsDifference(e,t))<=n};Ot.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Yn.SECONDS_PER_DAY};Ot.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Yn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};Ot.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Yn.SECONDS_PER_DAY;return n+i};Ot.computeTaiMinusUtc=function(e){FC.julianDate=e;let t=Ot.leapSeconds,n=Po(t,FC,O5);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};Ot.addSeconds=function(e,t,n){return Ig(e.dayNumber,e.secondsOfDay+t,n)};Ot.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Yn.SECONDS_PER_MINUTE;return Ig(e.dayNumber,i,n)};Ot.addHours=function(e,t,n){let i=e.secondsOfDay+t*Yn.SECONDS_PER_HOUR;return Ig(e.dayNumber,i,n)};Ot.addDays=function(e,t,n){let i=e.dayNumber+t;return Ig(i,e.secondsOfDay,n)};Ot.lessThan=function(e,t){return Ot.compare(e,t)<0};Ot.lessThanOrEquals=function(e,t){return Ot.compare(e,t)<=0};Ot.greaterThan=function(e,t){return Ot.compare(e,t)>0};Ot.greaterThanOrEquals=function(e,t){return Ot.compare(e,t)>=0};Ot.prototype.clone=function(e){return Ot.clone(this,e)};Ot.prototype.equals=function(e){return Ot.equals(this,e)};Ot.prototype.equalsEpsilon=function(e,t){return Ot.equalsEpsilon(this,e,t)};Ot.prototype.toString=function(){return Ot.toIso8601(this)};Ot.leapSeconds=[new ji(new Ot(2441317,43210,jn.TAI),10),new ji(new Ot(2441499,43211,jn.TAI),11),new ji(new Ot(2441683,43212,jn.TAI),12),new ji(new Ot(2442048,43213,jn.TAI),13),new ji(new Ot(2442413,43214,jn.TAI),14),new ji(new Ot(2442778,43215,jn.TAI),15),new ji(new Ot(2443144,43216,jn.TAI),16),new ji(new Ot(2443509,43217,jn.TAI),17),new ji(new Ot(2443874,43218,jn.TAI),18),new ji(new Ot(2444239,43219,jn.TAI),19),new ji(new Ot(2444786,43220,jn.TAI),20),new ji(new Ot(2445151,43221,jn.TAI),21),new ji(new Ot(2445516,43222,jn.TAI),22),new ji(new Ot(2446247,43223,jn.TAI),23),new ji(new Ot(2447161,43224,jn.TAI),24),new ji(new Ot(2447892,43225,jn.TAI),25),new ji(new Ot(2448257,43226,jn.TAI),26),new ji(new Ot(2448804,43227,jn.TAI),27),new ji(new Ot(2449169,43228,jn.TAI),28),new ji(new Ot(2449534,43229,jn.TAI),29),new ji(new Ot(2450083,43230,jn.TAI),30),new ji(new Ot(2450630,43231,jn.TAI),31),new ji(new Ot(2451179,43232,jn.TAI),32),new ji(new Ot(2453736,43233,jn.TAI),33),new ji(new Ot(2454832,43234,jn.TAI),34),new ji(new Ot(2456109,43235,jn.TAI),35),new ji(new Ot(2457204,43236,jn.TAI),36),new ji(new Ot(2457754,43237,jn.TAI),37)];var Z=Ot;var IJ=Vo(au(),1);function eve(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var $v=eve;function gJ(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=gJ(o,t)),n[i]=o}return n}var Ge=gJ;function yJ(e,t,n){n=y(n,!1);let i={},o=l(e),r=l(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]=yJ(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 yt=yJ;function tve(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var Al=tve;var xJ=Vo(au(),1);function N5(e,t){let n;return typeof document<"u"&&(n=document),N5._implementation(e,t,n)}N5._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new xJ.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var Kh=N5;var bJ=Vo(au(),1);function nve(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new bJ.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var Qv=nve;var TJ=Vo(au(),1);function ive(e){let t=new TJ.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 Q0=ive;var CJ={};function ove(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=CJ[t];l(i)||(i={},CJ[t]=i);let o=i[n];if(!l(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 Ed=ove;var rve=/^blob:/i;function sve(e){return rve.test(e)}var J0=sve;var Zh;function ave(e){l(Zh)||(Zh=document.createElement("a")),Zh.href=window.location.href;let t=Zh.host,n=Zh.protocol;return Zh.href=e,Zh.href=Zh.href,n!==Zh.protocol||t!==Zh.host}var Pg=ave;var cve=/^data:/i;function lve(e){return cve.test(e)}var xp=lve;function uve(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 ex=uve;function fve(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 tx=fve;function dve(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];l(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 cu=dve;var hve={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},Zn=Object.freeze(hve);var mve={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},fs=Object.freeze(mve);function EV(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,fs.OTHER),this.serverKey=e.serverKey,this.state=Zn.UNISSUED,this.deferred=void 0,this.cancelled=!1}EV.prototype.cancel=function(){this.cancelled=!0};EV.prototype.clone=function(e){return l(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=Zn.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new EV(this)};var Ko=EV;function pve(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 Jv=pve;function AJ(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=Jv(this.responseHeaders))}AJ.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var $h=AJ;var SV=Vo(au(),1);function ew(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(ew.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});ew.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};ew.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 _ve(e,t){return t-e}ew.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];l(r)&&t[e].apply(n[e],arguments)}let o=this._toRemove;if(i=o.length,i>0){for(o.sort(_ve),e=0;e<i;e++){let r=o[e];t.splice(r,1),n.splice(r,1)}o.length=0}this._insideRaiseEvent=!1};var me=ew;function nx(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(nx.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 F5(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}nx.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};nx.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?(F5(i,o,e),e=o):r=!1}};nx.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};nx.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)F5(t,o,s),o=s;else break}let r;return l(i)&&this._length>i&&(r=t[i],this._length=i),r};nx.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return F5(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var tw=nx;function gve(e,t){return e.priority-t.priority}var eo={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},VC=20,Ja=new tw({comparator:gve});Ja.maximumLength=VC;Ja.reserve(VC);var Qh=[],bp={},yve=typeof document<"u"?new SV.default(document.location.href):new SV.default,vV=new me;function Zo(){}Zo.maximumRequests=50;Zo.maximumRequestsPerServer=18;Zo.requestsByServer={};Zo.throttleRequests=!0;Zo.debugShowStatistics=!1;Zo.requestCompletedEvent=vV;Object.defineProperties(Zo,{statistics:{get:function(){return eo}},priorityHeapLength:{get:function(){return VC},set:function(e){if(e<VC)for(;Ja.length>e;){let t=Ja.pop();ix(t)}VC=e,Ja.maximumLength=e,Ja.reserve(e)}}});function EJ(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}Zo.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(Zo.requestsByServer[e],Zo.maximumRequestsPerServer);return bp[e]+t<=n};Zo.heapHasOpenSlots=function(e){return Ja.length+e<=VC};function SJ(e){return e.state===Zn.UNISSUED&&(e.state=Zn.ISSUED,e.deferred=Al()),e.deferred.promise}function xve(e){return function(t){if(e.state===Zn.CANCELLED)return;let n=e.deferred;--eo.numberOfActiveRequests,--bp[e.serverKey],vV.raiseEvent(),e.state=Zn.RECEIVED,e.deferred=void 0,n.resolve(t)}}function bve(e){return function(t){e.state!==Zn.CANCELLED&&(++eo.numberOfFailedRequests,--eo.numberOfActiveRequests,--bp[e.serverKey],vV.raiseEvent(t),e.state=Zn.FAILED,e.deferred.reject(t))}}function vJ(e){let t=SJ(e);return e.state=Zn.ACTIVE,Qh.push(e),++eo.numberOfActiveRequests,++eo.numberOfActiveRequestsEver,++bp[e.serverKey],e.requestFunction().then(xve(e)).catch(bve(e)),t}function ix(e){let t=e.state===Zn.ACTIVE;if(e.state=Zn.CANCELLED,++eo.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--eo.numberOfActiveRequests,--bp[e.serverKey],++eo.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}Zo.update=function(){let e,t,n=0,i=Qh.length;for(e=0;e<i;++e){if(t=Qh[e],t.cancelled&&ix(t),t.state!==Zn.ACTIVE){++n;continue}n>0&&(Qh[e-n]=t)}Qh.length-=n;let o=Ja.internalArray,r=Ja.length;for(e=0;e<r;++e)EJ(o[e]);Ja.resort();let s=Math.max(Zo.maximumRequests-Qh.length,0),a=0;for(;a<s&&Ja.length>0;){if(t=Ja.pop(),t.cancelled){ix(t);continue}if(t.throttleByServer&&!Zo.serverHasOpenSlots(t.serverKey)){ix(t);continue}vJ(t),++a}Tve()};Zo.getServerKey=function(e){let t=new SV.default(e);t.scheme()===""&&(t=t.absoluteTo(yve),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=bp[n];return l(i)||(bp[n]=0),n};Zo.request=function(e){if(xp(e.url)||J0(e.url))return vV.raiseEvent(),e.state=Zn.RECEIVED,e.requestFunction();if(++eo.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=Zo.getServerKey(e.url)),Zo.throttleRequests&&e.throttleByServer&&!Zo.serverHasOpenSlots(e.serverKey))return;if(!Zo.throttleRequests||!e.throttle)return vJ(e);if(Qh.length>=Zo.maximumRequests)return;EJ(e);let t=Ja.insert(e);if(l(t)){if(t===e)return;ix(t)}return SJ(e)};function Tve(){Zo.debugShowStatistics&&(eo.numberOfActiveRequests===0&&eo.lastNumberOfActiveRequests>0&&(eo.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${eo.numberOfAttemptedRequests}`),eo.numberOfAttemptedRequests=0),eo.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${eo.numberOfCancelledRequests}`),eo.numberOfCancelledRequests=0),eo.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${eo.numberOfCancelledActiveRequests}`),eo.numberOfCancelledActiveRequests=0),eo.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${eo.numberOfFailedRequests}`),eo.numberOfFailedRequests=0)),eo.lastNumberOfActiveRequests=eo.numberOfActiveRequests)}Zo.clearForSpecs=function(){for(;Ja.length>0;){let t=Ja.pop();ix(t)}let e=Qh.length;for(let t=0;t<e;++t)ix(Qh[t]);Qh.length=0,bp={},eo.numberOfAttemptedRequests=0,eo.numberOfActiveRequests=0,eo.numberOfCancelledRequests=0,eo.numberOfCancelledActiveRequests=0,eo.numberOfFailedRequests=0,eo.numberOfActiveRequestsEver=0,eo.lastNumberOfActiveRequests=0};Zo.numberOfActiveRequestsByServer=function(e){return bp[e]};Zo.requestHeap=Ja;var ec=Zo;var wJ=Vo(au(),1);var nw={},UC={};nw.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(UC[n])||(UC[n]=!0)};nw.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(UC[n])&&delete UC[n]};function Cve(e){let t=new wJ.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}}nw.contains=function(e){let t=Cve(e);return!!(l(t)&&l(UC[t]))};nw.clear=function(){UC={}};var zC=nw;var PJ=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function It(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=Jh(e.templateValues,{}),this._queryParameters=Jh(e.queryParameters,{}),this.headers=Jh(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 Jh(e,t){return l(e)?Ge(e):t}It.createIfNeeded=function(e){return e instanceof It?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new It({url:e})};var HC;It.supportsImageBitmapOptions=function(){return l(HC)?HC:typeof createImageBitmap!="function"?(HC=Promise.resolve(!1),HC):(HC=It.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=Ed(t[0]),i=Ed(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),HC)};Object.defineProperties(It,{isBlobSupported:{get:function(){return PJ}}});Object.defineProperties(It.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 Q0(this._url)}},isDataUri:{get:function(){return xp(this._url)}},isBlobUri:{get:function(){return J0(this._url)}},isCrossOriginUrl:{get:function(){return Pg(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});It.prototype.toString=function(){return this.getUrlComponent(!0,!0)};It.prototype.parseUrl=function(e,t,n,i){let o=new IJ.default(e),r=Ave(o.query());this._queryParameters=t?DV(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo(Kh(i))),this._url=o.toString()};function Ave(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:cu(e)}function DV(e,t,n){if(!n)return yt(e,t);let i=Ge(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}It.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${Eve(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 l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function Eve(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${tx(e)}`}It.prototype.setQueryParameters=function(e,t){t?this._queryParameters=DV(this._queryParameters,e,!1):this._queryParameters=DV(e,this._queryParameters,!1)};It.prototype.appendQueryParameters=function(e){this._queryParameters=DV(e,this._queryParameters,!0)};It.prototype.setTemplateValues=function(e,t){t?this._templateValues=yt(this._templateValues,e):this._templateValues=yt(e,this._templateValues)};It.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=yt(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=yt(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=yt(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};It.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})};It.prototype.clone=function(e){return l(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 It({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:l(this.credits)?this.credits.slice():void 0})};It.prototype.getBaseUri=function(e){return Qv(this.getUrlComponent(e),e)};It.prototype.appendForwardSlash=function(){this._url=$v(this._url)};It.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};It.fetchArrayBuffer=function(e){return new It(e).fetchArrayBuffer()};It.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};It.fetchBlob=function(e){return new It(e).fetchBlob()};It.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(k5(this.request),!PJ||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return B5({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,u;return It.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!l(f))return;if(u=f,a)return It.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new It({url:d}),B5({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(l(f))return f.blob=u,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return l(c)&&window.URL.revokeObjectURL(c.url),f.blob=u,Promise.reject(f)})};function B5(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=Al();return It._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=ec.request(r);if(l(s))return s.catch(function(a){return r.state!==Zn.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=Zn.UNISSUED,r.deferred=void 0,B5({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}It.fetchImage=function(e){return new It(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};It.prototype.fetchText=function(){return this.fetch({responseType:"text"})};It.fetchText=function(e){return new It(e).fetchText()};It.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};It.fetchJson=function(e){return new It(e).fetchJson()};It.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};It.fetchXML=function(e){return new It(e).fetchXML()};It.prototype.fetchJsonp=function(e){e=y(e,"callback"),k5(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return RJ(this,e,t)};function RJ(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=Al();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},It._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=ec.request(o);if(l(s))return s.catch(function(a){return o.state!==Zn.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=Zn.UNISSUED,o.deferred=void 0,RJ(e,t,n)):Promise.reject(a)})})}It.fetchJsonp=function(e){return new It(e).fetchJsonp(e.callbackParameterName)};It.prototype._makeRequest=function(e){let t=this;k5(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=yt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,u=e.data,f=Al(),d=It._Implementations.loadWithXhr(i,r,c,u,s,f,a);return l(d)&&l(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=ec.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==Zn.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=Zn.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function k5(e){if(e.state===Zn.ISSUED||e.state===Zn.ACTIVE)throw new ce("The Resource is already being fetched.");e.state=Zn.UNISSUED,e.deferred=void 0}var Sve=/^data:(.*?)(;base64)?,(.*)$/;function wV(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function DJ(e,t){let n=wV(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 vve(e,t){t=y(t,"");let n=e[1],i=!!e[2],o=e[3],r,s;switch(t){case"":case"text":return wV(i,o);case"arraybuffer":return DJ(i,o);case"blob":return r=DJ(i,o),new Blob([r],{type:n});case"document":return s=new DOMParser,s.parseFromString(wV(i,o),n);case"json":return JSON.parse(wV(i,o));default:}}It.prototype.fetch=function(e){return e=Jh(e,{}),e.method="GET",this._makeRequest(e)};It.fetch=function(e){return new It(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.delete=function(e){return e=Jh(e,{}),e.method="DELETE",this._makeRequest(e)};It.delete=function(e){return new It(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};It.prototype.head=function(e){return e=Jh(e,{}),e.method="HEAD",this._makeRequest(e)};It.head=function(e){return new It(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.options=function(e){return e=Jh(e,{}),e.method="OPTIONS",this._makeRequest(e)};It.options=function(e){return new It(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.post=function(e,t){return xo.defined("data",e),t=Jh(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};It.post=function(e){return new It(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.put=function(e,t){return xo.defined("data",e),t=Jh(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};It.put=function(e){return new It(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.patch=function(e,t){return xo.defined("data",e),t=Jh(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};It.patch=function(e){return new It(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It._Implementations={};It._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&&(zC.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};It._Implementations.createImage=function(e,t,n,i,o,r){let s=e.url;It.supportsImageBitmapOptions().then(function(a){if(!(a&&r)){It._Implementations.loadImageElement(s,t,n);return}let c="blob",u="GET",f=Al(),d=It._Implementations.loadWithXhr(s,c,u,void 0,void 0,f,void 0,void 0,void 0);return l(d)&&l(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!l(p)){n.reject(new ce(`Successfully retrieved ${s} but it contained no content.`));return}return It.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};It.createImageBitmapFromBlob=function(e,t){return xo.defined("options",t),xo.typeOf.bool("options.flipY",t.flipY),xo.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),xo.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function wve(e,t,n,i,o,r,s){fetch(e,{method:n,headers:o}).then(async a=>{if(!a.ok){let c={};a.headers.forEach((u,f)=>{c[f]=u}),r.reject(new $h(a.status,a,c));return}switch(t){case"text":r.resolve(a.text());break;case"json":r.resolve(a.json());break;default:r.resolve(new Uint8Array(await a.arrayBuffer()).buffer);break}}).catch(()=>{r.reject(new $h)})}var Dve=typeof XMLHttpRequest>"u";It._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=Sve.exec(e);if(a!==null){r.resolve(vve(a,t));return}if(Dve){wve(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(zC.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);l(t)&&(c.responseType=t);let u=!1;return typeof e=="string"&&(u=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(u&&c.status===0)){r.reject(new $h(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(void 0);else if(l(f)&&(!l(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")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new ce("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new $h)},c.send(i),c};It._Implementations.loadAndExecuteScript=function(e,t,n){return ex(e,t).catch(function(i){n.reject(i)})};It._DefaultImplementations={};It._DefaultImplementations.createImage=It._Implementations.createImage;It._DefaultImplementations.loadWithXhr=It._Implementations.loadWithXhr;It._DefaultImplementations.loadAndExecuteScript=It._Implementations.loadAndExecuteScript;It.DEFAULT=Object.freeze(new It({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var we=It;function ow(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),l(e.data)?OJ(this,e.data):OJ(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}ow.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new ce(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new ow({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};ow.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new Dg(0,0,0,0,0),t}});ow.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new Dg(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(l(i)){let a=n[i],c=n[i+1],u=Z.lessThanOrEquals(a,e),f=!l(c),d=f||Z.greaterThanOrEquals(c,e);if(u&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,LJ(this,n,this._samples,e,o,r,t),t}let s=Po(n,e,Z.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,LJ(this,n,this._samples,e,o,r,t),t};function Ive(e,t){return Z.compare(e.julianDate,t)}function OJ(e,t){if(!l(t.columnNames))throw new ce("Error in loaded EOP data: The columnNames property is required.");if(!l(t.samples))throw new ce("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 ce("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let u=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=u.length;g<m;g+=e._columnCount){let x=u[g+n],b=u[g+c],T=x+Yn.MODIFIED_JULIAN_DATE_DIFFERENCE,C=new Z(T,b,jn.TAI);if(f.push(C),p){if(b!==d&&l(d)){let A=Z.leapSeconds,E=Po(A,C,Ive);if(E<0){let v=new ji(C,b);A.splice(~E,0,v)}}d=b}}}function MJ(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 iw(e,t,n){return t+e*(n-t)}function LJ(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],u=t[r];if(c.equals(u)||i.equals(c))return MJ(e,n,o,a,s),s;if(i.equals(u))return MJ(e,n,r,a,s),s;let f=Z.secondsDifference(i,c)/Z.secondsDifference(u,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&&(u.equals(i)?g=m:m-=T-b)}return s.xPoleWander=iw(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=iw(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=iw(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=iw(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=iw(f,g,m),s}var rw=ow;function tc(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}tc.fromQuaternion=function(e,t){l(t)||(t=new tc);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};tc.fromDegrees=function(e,t,n,i){return l(i)||(i=new tc),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};tc.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new tc(e.heading,e.pitch,e.roll)};tc.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};tc.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(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)};tc.prototype.clone=function(e){return tc.clone(this,e)};tc.prototype.equals=function(e){return tc.equals(this,e)};tc.prototype.equalsEpsilon=function(e,t,n){return tc.equalsEpsilon(this,e,t,n)};tc.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Sa=tc;var NJ={},FJ=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function Pve(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),o=FJ.exec(i);if(o!==null)return o[1]}}var IV;function BJ(e){return typeof document>"u"?e:(l(IV)||(IV=document.createElement("a")),IV.href=e,IV.href)}var ox;function kJ(){if(l(ox))return ox;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:l(NJ?.url)?e=Kh(".",NJ.url):typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(require.toUrl)?e=Kh("..",rx("Core/buildModuleUrl.js")):e=Pve(),ox=new we({url:BJ(e)}),ox.appendForwardSlash(),ox}function Rve(e){return BJ(require.toUrl(`../${e}`))}function VJ(e){return kJ().getDerivedResource({url:e}).url}var PV;function rx(e){return l(PV)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(require.toUrl)?PV=Rve:PV=VJ),PV(e)}rx._cesiumScriptRegex=FJ;rx._buildModuleUrlFromBaseUrl=VJ;rx._clearBaseResource=function(){ox=void 0};rx.setBaseUrl=function(e){ox=we.DEFAULT.getDerivedResource({url:e})};rx.getCesiumBaseUrl=kJ;var nn=rx;function Ove(e,t,n){this.x=e,this.y=t,this.s=n}var sx=Ove;function z5(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=we.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new Z(this._sampleZeroJulianEphemerisDate,0,jn.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 Mve=new Z(0,0,jn.TAI);function V5(e,t,n){let i=Mve;return i.dayNumber=t,i.secondsOfDay=n,Z.daysDifference(i,e._sampleZeroDateTT)}z5.prototype.preload=function(e,t,n,i){let o=V5(this,e,t),r=V5(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,u=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=u;++d)f.push(U5(this,d));return Promise.all(f)};z5.prototype.computeXysRadians=function(e,t,n){let i=V5(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,u=this._samples;if(l(u[s*3])||(U5(this,s/this._samplesPerXysFile|0),c=!0),l(u[a*3])||(U5(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new sx(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]*u[T++],n.y+=g[x]*u[T++],n.s+=g[x]*u[T]}return n};function U5(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;l(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new we({url:nn(`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 u=0,f=a.length;u<f;++u)s[c+u]=a[u]});return e._chunkDownloadsInProgress[t]=o,o}var sw=z5;function nt(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 aw=new h;nt.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);aw=h.normalize(e,aw);let r=aw.x*o,s=aw.y*o,a=aw.z*o,c=Math.cos(i);return l(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new nt(r,s,a,c)};var Lve=[1,2,0],Nve=new Array(3);nt.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[$.COLUMN0ROW0],c=e[$.COLUMN1ROW1],u=e[$.COLUMN2ROW2],f=a+c+u;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=Lve,p=0;c>a&&(p=1),u>a&&u>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=Nve;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 l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new nt(i,o,r,s)};var UJ=new nt,zJ=new nt,H5=new nt,HJ=new nt;nt.fromHeadingPitchRoll=function(e,t){return HJ=nt.fromAxisAngle(h.UNIT_X,e.roll,UJ),H5=nt.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=nt.multiply(H5,HJ,H5),zJ=nt.fromAxisAngle(h.UNIT_Z,-e.heading,UJ),nt.multiply(zJ,t,t)};var RV=new h,G5=new h,Sd=new nt,GJ=new nt,OV=new nt;nt.packedLength=4;nt.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};nt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new nt),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};nt.packedInterpolationLength=3;nt.convertPackedArrayForInterpolation=function(e,t,n,i){nt.unpack(e,n*4,OV),nt.conjugate(OV,OV);for(let o=0,r=n-t+1;o<r;o++){let s=o*3;nt.unpack(e,(t+o)*4,Sd),nt.multiply(Sd,OV,Sd),Sd.w<0&&nt.negate(Sd,Sd),nt.computeAxis(Sd,RV);let a=nt.computeAngle(Sd);l(i)||(i=[]),i[s]=RV.x*a,i[s+1]=RV.y*a,i[s+2]=RV.z*a}};nt.unpackInterpolationResult=function(e,t,n,i,o){l(o)||(o=new nt),h.fromArray(e,0,G5);let r=h.magnitude(G5);return nt.unpack(t,i*4,GJ),r===0?nt.clone(nt.IDENTITY,Sd):nt.fromAxisAngle(G5,r,Sd),nt.multiply(Sd,GJ,o)};nt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new nt(e.x,e.y,e.z,e.w)};nt.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};nt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};nt.magnitude=function(e){return Math.sqrt(nt.magnitudeSquared(e))};nt.normalize=function(e,t){let n=1/nt.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};nt.inverse=function(e,t){let n=nt.magnitudeSquared(e);return t=nt.conjugate(e,t),nt.multiplyByScalar(t,1/n,t)};nt.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};nt.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};nt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};nt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};nt.multiply=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=e.w,a=t.x,c=t.y,u=t.z,f=t.w,d=s*a+i*f+o*u-r*c,p=s*c-i*u+o*f+r*a,g=s*u+i*c-o*a+r*f,m=s*f-i*a-o*c-r*u;return n.x=d,n.y=p,n.z=g,n.w=m,n};nt.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};nt.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};nt.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<P.EPSILON6||Math.abs(n+1)<P.EPSILON6)return t.x=1,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};nt.computeAngle=function(e){return Math.abs(e.w-1)<P.EPSILON6?0:2*Math.acos(e.w)};var W5=new nt;nt.lerp=function(e,t,n,i){return W5=nt.multiplyByScalar(t,n,W5),i=nt.multiplyByScalar(e,1-n,i),nt.add(W5,i,i)};var WJ=new nt,j5=new nt,q5=new nt;nt.slerp=function(e,t,n,i){let o=nt.dot(e,t),r=t;if(o<0&&(o=-o,r=WJ=nt.negate(t,WJ)),1-o<P.EPSILON6)return nt.lerp(e,r,n,i);let s=Math.acos(o);return j5=nt.multiplyByScalar(e,Math.sin((1-n)*s),j5),q5=nt.multiplyByScalar(r,Math.sin(n*s),q5),i=nt.add(j5,q5,i),nt.multiplyByScalar(i,1/Math.sin(s),i)};nt.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)};nt.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 Fve=new h,Bve=new h,cw=new nt,GC=new nt;nt.computeInnerQuadrangle=function(e,t,n,i){let o=nt.conjugate(t,cw);nt.multiply(o,n,GC);let r=nt.log(GC,Fve);nt.multiply(o,e,GC);let s=nt.log(GC,Bve);return h.add(r,s,r),h.multiplyByScalar(r,.25,r),h.negate(r,r),nt.exp(r,cw),nt.multiply(t,cw,i)};nt.squad=function(e,t,n,i,o,r){let s=nt.slerp(e,t,o,cw),a=nt.slerp(n,i,o,GC);return nt.slerp(s,a,2*o*(1-o),r)};var kve=new nt,jJ=1.9011074535173003,MV=Ht.supportsTypedArrays()?new Float32Array(8):[],LV=Ht.supportsTypedArrays()?new Float32Array(8):[],Tp=Ht.supportsTypedArrays()?new Float32Array(8):[],Cp=Ht.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;MV[e]=1/(t*n),LV[e]=t/n}MV[7]=jJ/(8*17);LV[7]=jJ*8/17;nt.fastSlerp=function(e,t,n,i){let o=nt.dot(e,t),r;o>=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,u=a*a;for(let g=7;g>=0;--g)Tp[g]=(MV[g]*c-LV[g])*s,Cp[g]=(MV[g]*u-LV[g])*s;let f=r*n*(1+Tp[0]*(1+Tp[1]*(1+Tp[2]*(1+Tp[3]*(1+Tp[4]*(1+Tp[5]*(1+Tp[6]*(1+Tp[7])))))))),d=a*(1+Cp[0]*(1+Cp[1]*(1+Cp[2]*(1+Cp[3]*(1+Cp[4]*(1+Cp[5]*(1+Cp[6]*(1+Cp[7])))))))),p=nt.multiplyByScalar(e,d,kve);return nt.multiplyByScalar(t,f,i),nt.add(p,i,i)};nt.fastSquad=function(e,t,n,i,o,r){let s=nt.fastSlerp(e,t,o,cw),a=nt.fastSlerp(n,i,o,GC);return nt.fastSlerp(s,a,2*o*(1-o),r)};nt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};nt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(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};nt.ZERO=Object.freeze(new nt(0,0,0,0));nt.IDENTITY=Object.freeze(new nt(0,0,0,1));nt.prototype.clone=function(e){return nt.clone(this,e)};nt.prototype.equals=function(e){return nt.equals(this,e)};nt.prototype.equalsEpsilon=function(e,t){return nt.equalsEpsilon(this,e,t)};nt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Oe=nt;var ui={},Y5={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"}},WC={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},X5={},El={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},Rg=new h,Og=new h,Mg=new h;ui.localFrameToFixedFrameGenerator=function(e,t){if(!Y5.hasOwnProperty(e)||!Y5[e].hasOwnProperty(t))throw new he("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=Y5[e][t],i,o=e+t;return l(X5[o])?i=X5[o]:(i=function(r,s,a){if(l(a)||(a=new F),h.equalsEpsilon(r,h.ZERO,P.EPSILON14))h.unpack(WC[e],0,Rg),h.unpack(WC[t],0,Og),h.unpack(WC[n],0,Mg);else if(P.equalsEpsilon(r.x,0,P.EPSILON14)&&P.equalsEpsilon(r.y,0,P.EPSILON14)){let c=P.sign(r.z);h.unpack(WC[e],0,Rg),e!=="east"&&e!=="west"&&h.multiplyByScalar(Rg,c,Rg),h.unpack(WC[t],0,Og),t!=="east"&&t!=="west"&&h.multiplyByScalar(Og,c,Og),h.unpack(WC[n],0,Mg),n!=="east"&&n!=="west"&&h.multiplyByScalar(Mg,c,Mg)}else{s=y(s,ee.default),s.geodeticSurfaceNormal(r,El.up);let c=El.up,u=El.east;u.x=-r.y,u.y=r.x,u.z=0,h.normalize(u,El.east),h.cross(c,u,El.north),h.multiplyByScalar(El.up,-1,El.down),h.multiplyByScalar(El.east,-1,El.west),h.multiplyByScalar(El.north,-1,El.south),Rg=El[e],Og=El[t],Mg=El[n]}return a[0]=Rg.x,a[1]=Rg.y,a[2]=Rg.z,a[3]=0,a[4]=Og.x,a[5]=Og.y,a[6]=Og.z,a[7]=0,a[8]=Mg.x,a[9]=Mg.y,a[10]=Mg.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},X5[o]=i),i};ui.eastNorthUpToFixedFrame=ui.localFrameToFixedFrameGenerator("east","north");ui.northEastDownToFixedFrame=ui.localFrameToFixedFrameGenerator("north","east");ui.northUpEastToFixedFrame=ui.localFrameToFixedFrameGenerator("north","up");ui.northWestUpToFixedFrame=ui.localFrameToFixedFrameGenerator("north","west");var Vve=new Oe,Uve=new h(1,1,1),zve=new F;ui.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,ui.eastNorthUpToFixedFrame);let r=Oe.fromHeadingPitchRoll(t,Vve),s=F.fromTranslationQuaternionRotationScale(h.ZERO,r,Uve,zve);return o=i(e,n,o),F.multiply(o,s,o)};var Hve=new F,Gve=new $;ui.headingPitchRollQuaternion=function(e,t,n,i,o){let r=ui.headingPitchRollToFixedFrame(e,t,n,i,Hve),s=F.getMatrix3(r,Gve);return Oe.fromRotationMatrix(s,o)};var Wve=new h(1,1,1),jve=new h,qJ=new F,qve=new F,Yve=new $,Xve=new Oe;ui.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,ee.default),n=y(n,ui.eastNorthUpToFixedFrame),l(i)||(i=new Sa);let o=F.getTranslation(e,jve);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=F.inverseTransformation(n(o,t,qJ),qJ),s=F.setScale(e,Wve,qve);s=F.setTranslation(s,h.ZERO,s),r=F.multiply(r,s,r);let a=Oe.fromRotationMatrix(F.getMatrix3(r,Yve),Xve);return a=Oe.normalize(a,a),Sa.fromQuaternion(a,i)};var Kve=6*3600+41*60+50.54841,Zve=8640184812866e-6,$ve=.093104,Qve=-62e-7,Jve=11772758384668e-32,ewe=72921158553e-15,twe=P.TWO_PI/86400,NV=new Z;ui.computeIcrfToCentralBodyFixedMatrix=function(e,t){let n=ui.computeIcrfToFixedMatrix(e,t);return l(n)||(n=ui.computeTemeToPseudoFixedMatrix(e,t)),n};ui.computeTemeToPseudoFixedMatrix=function(e,t){NV=Z.addSeconds(e,-Z.computeTaiMinusUtc(e),NV);let n=NV.dayNumber,i=NV.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/Yn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Yn.DAYS_PER_JULIAN_CENTURY;let a=(Kve+o*(Zve+o*($ve+o*Qve)))*twe%P.TWO_PI,c=ewe+Jve*(n-24515455e-1),u=(i+Yn.SECONDS_PER_DAY*.5)%Yn.SECONDS_PER_DAY,f=a+c*u,d=Math.cos(f),p=Math.sin(f);return l(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)};ui.iau2006XysData=new sw;ui.earthOrientationParameters=rw.NONE;var $5=32.184,nwe=2451545;ui.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+$5,i=e.stop.dayNumber,o=e.stop.secondsOfDay+$5;return ui.iau2006XysData.preload(t,n,i,o)};ui.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new $);let n=ui.computeFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var iwe=32.184,owe=2451545,FV=new Sa,rwe=new $,swe=new Z;ui.computeMoonFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=Z.addSeconds(e,iwe,swe),i=Z.totalDays(n)-owe,o=P.toRadians(12.112)-P.toRadians(.052992)*i,r=P.toRadians(24.224)-P.toRadians(.105984)*i,s=P.toRadians(227.645)+P.toRadians(13.012)*i,a=P.toRadians(261.105)+P.toRadians(13.340716)*i,c=P.toRadians(358)+P.toRadians(.9856)*i;return FV.pitch=P.toRadians(180)-P.toRadians(3.878)*Math.sin(o)-P.toRadians(.12)*Math.sin(r)+P.toRadians(.07)*Math.sin(s)-P.toRadians(.017)*Math.sin(a),FV.roll=P.toRadians(66.53-90)+P.toRadians(1.543)*Math.cos(o)+P.toRadians(.24)*Math.cos(r)-P.toRadians(.028)*Math.cos(s)+P.toRadians(.007)*Math.cos(a),FV.heading=P.toRadians(244.375-90)+P.toRadians(13.17635831)*i+P.toRadians(3.558)*Math.sin(o)+P.toRadians(.121)*Math.sin(r)-P.toRadians(.064)*Math.sin(s)+P.toRadians(.016)*Math.sin(a)+P.toRadians(.025)*Math.sin(c),$.fromHeadingPitchRoll(FV,rwe)};ui.computeIcrfToMoonFixedMatrix=function(e,t){l(t)||(t=new $);let n=ui.computeMoonFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var awe=new sx(0,0,0),cwe=new Dg(0,0,0,0,0,0),K5=new $,Z5=new $;ui.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=ui.earthOrientationParameters.compute(e,cwe);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+$5,r=ui.iau2006XysData.computeXysRadians(i,o,awe);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),u=K5;u[0]=1-c*s*s,u[3]=-c*s*a,u[6]=s,u[1]=-c*s*a,u[4]=1-c*a*a,u[7]=a,u[2]=-s,u[5]=-a,u[8]=1-c*(s*s+a*a);let f=$.fromRotationZ(-r.s,Z5),d=$.multiply(u,f,K5),p=e.dayNumber,g=e.secondsOfDay-Z.computeTaiMinusUtc(e)+n.ut1MinusUtc,m=p-2451545,x=g/Yn.SECONDS_PER_DAY,b=.779057273264+x+.00273781191135448*(m+x);b=b%1*P.TWO_PI;let T=$.fromRotationZ(b,Z5),C=$.multiply(d,T,K5),A=Math.cos(n.xPoleWander),E=Math.cos(n.yPoleWander),v=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-nwe+o/Yn.SECONDS_PER_DAY;O/=36525;let R=-47e-6*O*P.RADIANS_PER_DEGREE/3600,M=Math.cos(R),N=Math.sin(R),_=Z5;return _[0]=A*M,_[1]=A*N,_[2]=v,_[3]=-E*N+D*v*M,_[4]=E*M+D*v*N,_[5]=-D*A,_[6]=-D*N-E*v*M,_[7]=D*M-E*v*N,_[8]=E*A,$.multiply(C,_,t)};var lwe=new oe;ui.pointToWindowCoordinates=function(e,t,n,i){return i=ui.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};ui.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new z);let o=lwe;return F.multiplyByVector(e,oe.fromElements(n.x,n.y,n.z,1,o),o),oe.multiplyByScalar(o,1/o.w,o),F.multiplyByVector(t,o,o),z.fromCartesian4(o,i)};var uwe=new h,fwe=new h,dwe=new h;ui.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,ee.default).geodeticSurfaceNormal(e,uwe),r=h.cross(t,o,fwe);h.equalsEpsilon(r,h.ZERO,P.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,dwe);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),l(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 YJ=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),XJ=new fe,Q5=new h,hwe=new h,mwe=new $,J5=new F,KJ=new F;ui.basisTo2D=function(e,t,n){let i=F.getTranslation(t,hwe),o=e.ellipsoid,r;if(h.equals(i,h.ZERO))r=h.clone(h.ZERO,Q5);else{let f=o.cartesianToCartographic(i,XJ);r=e.project(f,Q5),h.fromElements(r.z,r.x,r.y,r)}let s=ui.eastNorthUpToFixedFrame(i,o,J5),a=F.inverseTransformation(s,KJ),c=F.getMatrix3(t,mwe),u=F.multiplyByMatrix3(a,c,n);return F.multiply(YJ,u,n),F.setTranslation(n,r,n),n};ui.ellipsoidTo2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=ui.eastNorthUpToFixedFrame(t,i,J5),r=F.inverseTransformation(o,KJ),s=i.cartesianToCartographic(t,XJ),a=e.project(s,Q5);h.fromElements(a.z,a.x,a.y,a);let c=F.fromTranslation(a,J5);return F.multiply(YJ,r,n),F.multiply(c,n,n),n};var Mt=ui;var ZJ={};function lw(e,t){l(ZJ[e])||(ZJ[e]=!0,console.warn(y(t,e)))}lw.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.";lw.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined.  zIndex will be ignored";lw.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height.  heightReference will be ignored";lw.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight.  extrudedHeightReference will be ignored";var xt=lw;function pwe(e,t){xt(e,t)}var ds=pwe;function En(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(En.prototype,{width:{get:function(){return En.computeWidth(this)}},height:{get:function(){return En.computeHeight(this)}}});En.packedLength=4;En.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};En.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new En),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};En.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=P.TWO_PI),t-n};En.computeHeight=function(e){return e.north-e.south};En.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)),l(o)?(o.west=e,o.south=t,o.east=n,o.north=i,o):new En(e,t,n,i)};En.fromRadians=function(e,t,n,i,o){return l(o)?(o.west=y(e,0),o.south=y(t,0),o.east=y(n,0),o.north=y(i,0),o):new En(e,t,n,i)};En.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,u=e.length;c<u;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)),l(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new En(n,s,i,a)};En.fromCartesianArray=function(e,t,n){t=y(t,ee.default);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 u=0,f=e.length;u<f;u++){let d=t.cartesianToCartographic(e[u]);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)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new En(i,a,o,c)};var _we=new h,gwe=new h,ywe=new h,xwe=new h,bwe=new h,e6=new Array(5);for(let e=0;e<e6.length;++e)e6[e]=new h;En.fromBoundingSphere=function(e,t,n){let i=e.center,o=e.radius;if(l(t)||(t=ee.default),l(n)||(n=new En),h.equals(i,h.ZERO))return En.clone(En.MAX_VALUE,n),n;let r=Mt.eastNorthUpToFixedFrame(i,t,_we),s=F.multiplyByPointAsVector(r,h.UNIT_X,gwe);h.normalize(s,s);let a=F.multiplyByPointAsVector(r,h.UNIT_Y,ywe);h.normalize(a,a),h.multiplyByScalar(a,o,a),h.multiplyByScalar(s,o,s);let c=h.negate(a,bwe),u=h.negate(s,xwe),f=e6,d=f[0];return h.add(i,a,d),d=f[1],h.add(i,u,d),d=f[2],h.add(i,c,d),d=f[3],h.add(i,s,d),f[4]=i,En.fromCartesianArray(f,t,n)};En.clone=function(e,t){if(l(e))return l(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new En(e.west,e.south,e.east,e.north)};En.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(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};En.prototype.clone=function(e){return En.clone(this,e)};En.prototype.equals=function(e){return En.equals(this,e)};En.equals=function(e,t){return e===t||l(e)&&l(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};En.prototype.equalsEpsilon=function(e,t){return En.equalsEpsilon(this,e,t)};En.validate=function(e){return ds("Rectangle.validate","Rectangle.validate is a no-op and has been deprecated. It will be removed in Cesium 1.124."),En._validate(e)};En._validate=function(e){};En.southwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new fe(e.west,e.south)};En.northwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new fe(e.west,e.north)};En.northeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new fe(e.east,e.north)};En.southeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new fe(e.east,e.south)};En.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 l(t)?(t.longitude=o,t.latitude=r,t.height=0,t):new fe(o,r)};En.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 u=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(u>=f))return l(n)?(n.west=a,n.south=u,n.east=c,n.north=f,n):new En(a,u,c,f)};En.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 l(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new En(i,o,r,s)};En.union=function(e,t,n){l(n)||(n=new En);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};En.expand=function(e,t,n){return l(n)||(n=new En),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};En.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 Twe=new fe;En.subsample=function(e,t,n,i){t=y(t,ee.default),n=y(n,0),l(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,u=Twe;u.height=n,u.longitude=c,u.latitude=r,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.latitude=s,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,r<0?u.latitude=r:s>0?u.latitude=s:u.latitude=0;for(let f=1;f<8;++f)u.longitude=-Math.PI+f*P.PI_OVER_TWO,En.contains(e,u)&&(i[o]=t.cartographicToCartesian(u,i[o]),o++);return u.latitude===0&&(u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++),i.length=o,i};En.subsection=function(e,t,n,i,o,r){if(l(r)||(r=new En),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};En.MAX_VALUE=Object.freeze(new En(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var re=En;function Or(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}Or.packedLength=4;Or.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};Or.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Or),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};Or.fromPoints=function(e,t){if(l(t)||(t=new Or),!l(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],u=c.x,f=c.y;i=Math.min(u,i),r=Math.max(u,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 $J=new vi,Cwe=new fe,Awe=new fe;Or.fromRectangle=function(e,t,n){if(l(n)||(n=new Or),!l(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;$J._ellipsoid=ee.default,t=y(t,$J);let i=t.project(re.southwest(e,Cwe)),o=t.project(re.northeast(e,Awe));return z.subtract(o,i,o),n.x=i.x,n.y=i.y,n.width=o.x,n.height=o.y,n};Or.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new Or(e.x,e.y,e.width,e.height)};Or.union=function(e,t,n){l(n)||(n=new Or);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};Or.expand=function(e,t,n){n=Or.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};Or.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?jt.OUTSIDE:jt.INTERSECTING};Or.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};Or.prototype.clone=function(e){return Or.clone(this,e)};Or.prototype.intersect=function(e){return Or.intersect(this,e)};Or.prototype.equals=function(e){return Or.equals(this,e)};var je=Or;var va={POINTS:te.POINTS,LINES:te.LINES,LINE_LOOP:te.LINE_LOOP,LINE_STRIP:te.LINE_STRIP,TRIANGLES:te.TRIANGLES,TRIANGLE_STRIP:te.TRIANGLE_STRIP,TRIANGLE_FAN:te.TRIANGLE_FAN};va.isLines=function(e){return e===va.LINES||e===va.LINE_LOOP||e===va.LINE_STRIP};va.isTriangles=function(e){return e===va.TRIANGLES||e===va.TRIANGLE_STRIP||e===va.TRIANGLE_FAN};va.validate=function(e){return e===va.POINTS||e===va.LINES||e===va.LINE_LOOP||e===va.LINE_STRIP||e===va.TRIANGLES||e===va.TRIANGLE_STRIP||e===va.TRIANGLE_FAN};var Me=Object.freeze(va);var ax=`in vec4 position;
in vec2 textureCoordinates;

out vec2 v_textureCoordinates;

void main() 
{
    gl_Position = position;
    v_textureCoordinates = textureCoordinates;
}
`;var yr={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 uw(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Me.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._pickMetadataAllowed=e.pickMetadataAllowed===!0,this._pickedMetadataInfo=void 0,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 nc(e,t){return(e._flags&t)===t}function Lg(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(uw.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 nc(this,yr.CULL)},set:function(e){nc(this,yr.CULL)!==e&&(Lg(this,yr.CULL,e),this.dirty=!0)}},occlude:{get:function(){return nc(this,yr.OCCLUDE)},set:function(e){nc(this,yr.OCCLUDE)!==e&&(Lg(this,yr.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 nc(this,yr.CAST_SHADOWS)},set:function(e){nc(this,yr.CAST_SHADOWS)!==e&&(Lg(this,yr.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return nc(this,yr.RECEIVE_SHADOWS)},set:function(e){nc(this,yr.RECEIVE_SHADOWS)!==e&&(Lg(this,yr.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 nc(this,yr.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){nc(this,yr.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(Lg(this,yr.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 nc(this,yr.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){nc(this,yr.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(Lg(this,yr.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)}},pickMetadataAllowed:{get:function(){return this._pickMetadataAllowed}},pickedMetadataInfo:{get:function(){return this._pickedMetadataInfo},set:function(e){this._pickedMetadataInfo!==e&&(this._pickedMetadataInfo=e,this.dirty=!0)}},pickOnly:{get:function(){return nc(this,yr.PICK_ONLY)},set:function(e){nc(this,yr.PICK_ONLY)!==e&&(Lg(this,yr.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return nc(this,yr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){nc(this,yr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(Lg(this,yr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});uw.shallowClone=function(e,t){if(l(e))return l(t)||(t=new uw),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._pickMetadataAllowed=e._pickMetadataAllowed,t._pickedMetadataInfo=e._pickedMetadataInfo,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};uw.prototype.execute=function(e,t){e.draw(this,t)};var Ze=uw;var fi={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,HALF_FLOAT:te.HALF_FLOAT_OES,UNSIGNED_INT_24_8:te.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:te.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:te.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:te.UNSIGNED_SHORT_5_6_5};fi.toWebGLConstant=function(e,t){switch(e){case fi.UNSIGNED_BYTE:return te.UNSIGNED_BYTE;case fi.UNSIGNED_SHORT:return te.UNSIGNED_SHORT;case fi.UNSIGNED_INT:return te.UNSIGNED_INT;case fi.FLOAT:return te.FLOAT;case fi.HALF_FLOAT:return t.webgl2?te.HALF_FLOAT:te.HALF_FLOAT_OES;case fi.UNSIGNED_INT_24_8:return te.UNSIGNED_INT_24_8;case fi.UNSIGNED_SHORT_4_4_4_4:return te.UNSIGNED_SHORT_4_4_4_4;case fi.UNSIGNED_SHORT_5_5_5_1:return te.UNSIGNED_SHORT_5_5_5_1;case fi.UNSIGNED_SHORT_5_6_5:return fi.UNSIGNED_SHORT_5_6_5}};fi.isPacked=function(e){return e===fi.UNSIGNED_INT_24_8||e===fi.UNSIGNED_SHORT_4_4_4_4||e===fi.UNSIGNED_SHORT_5_5_5_1||e===fi.UNSIGNED_SHORT_5_6_5};fi.sizeInBytes=function(e){switch(e){case fi.UNSIGNED_BYTE:return 1;case fi.UNSIGNED_SHORT:case fi.UNSIGNED_SHORT_4_4_4_4:case fi.UNSIGNED_SHORT_5_5_5_1:case fi.UNSIGNED_SHORT_5_6_5:case fi.HALF_FLOAT:return 2;case fi.UNSIGNED_INT:case fi.FLOAT:case fi.UNSIGNED_INT_24_8:return 4}};fi.validate=function(e){return e===fi.UNSIGNED_BYTE||e===fi.UNSIGNED_SHORT||e===fi.UNSIGNED_INT||e===fi.FLOAT||e===fi.HALF_FLOAT||e===fi.UNSIGNED_INT_24_8||e===fi.UNSIGNED_SHORT_4_4_4_4||e===fi.UNSIGNED_SHORT_5_5_5_1||e===fi.UNSIGNED_SHORT_5_6_5};fi.getTypedArrayConstructor=function(e){let t=fi.sizeInBytes(e);return t===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:t===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:t===Float32Array.BYTES_PER_ELEMENT&&e===fi.FLOAT?Float32Array:Uint32Array};var Ke=Object.freeze(fi);var rt={DEPTH_COMPONENT:te.DEPTH_COMPONENT,DEPTH_STENCIL:te.DEPTH_STENCIL,ALPHA:te.ALPHA,RED:te.RED,RG:te.RG,RGB:te.RGB,RGBA:te.RGBA,LUMINANCE:te.LUMINANCE,LUMINANCE_ALPHA:te.LUMINANCE_ALPHA,RGB_DXT1:te.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:te.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:te.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:te.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:te.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:te.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:te.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:te.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:te.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:te.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:te.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:te.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:te.COMPRESSED_RGBA_BPTC_UNORM};rt.componentsLength=function(e){switch(e){case rt.RGB:return 3;case rt.RGBA:return 4;case rt.LUMINANCE_ALPHA:case rt.RG:return 2;case rt.ALPHA:case rt.RED:case rt.LUMINANCE:return 1;default:return 1}};rt.validate=function(e){return e===rt.DEPTH_COMPONENT||e===rt.DEPTH_STENCIL||e===rt.ALPHA||e===rt.RED||e===rt.RG||e===rt.RGB||e===rt.RGBA||e===rt.LUMINANCE||e===rt.LUMINANCE_ALPHA||e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5||e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1||e===rt.RGBA_ASTC||e===rt.RGB_ETC1||e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC||e===rt.RGBA_BC7};rt.isColorFormat=function(e){return e===rt.RED||e===rt.ALPHA||e===rt.RGB||e===rt.RGBA||e===rt.LUMINANCE||e===rt.LUMINANCE_ALPHA};rt.isDepthFormat=function(e){return e===rt.DEPTH_COMPONENT||e===rt.DEPTH_STENCIL};rt.isCompressedFormat=function(e){return e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5||e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1||e===rt.RGBA_ASTC||e===rt.RGB_ETC1||e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC||e===rt.RGBA_BC7};rt.isDXTFormat=function(e){return e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5};rt.isPVRTCFormat=function(e){return e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1};rt.isASTCFormat=function(e){return e===rt.RGBA_ASTC};rt.isETC1Format=function(e){return e===rt.RGB_ETC1};rt.isETC2Format=function(e){return e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC};rt.isBC7Format=function(e){return e===rt.RGBA_BC7};rt.compressedTextureSizeInBytes=function(e,t,n){switch(e){case rt.RGB_DXT1:case rt.RGBA_DXT1:case rt.RGB_ETC1:case rt.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case rt.RGBA_DXT3:case rt.RGBA_DXT5:case rt.RGBA_ASTC:case rt.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case rt.RGB_PVRTC_4BPPV1:case rt.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case rt.RGB_PVRTC_2BPPV1:case rt.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case rt.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};rt.textureSizeInBytes=function(e,t,n,i){let o=rt.componentsLength(e);return Ke.isPacked(t)&&(o=1),o*Ke.sizeInBytes(t)*n*i};rt.alignmentInBytes=function(e,t,n){let i=rt.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};rt.createTypedArray=function(e,t,n,i){let o=Ke.getTypedArrayConstructor(t),r=rt.componentsLength(e)*n*i;return new o(r)};rt.flipY=function(e,t,n,i,o){if(o===1)return e;let r=rt.createTypedArray(t,n,i,o),s=rt.componentsLength(t),a=i*s;for(let c=0;c<o;++c){let u=c*i*s,f=(o-c-1)*i*s;for(let d=0;d<a;++d)r[f+d]=e[u+d]}return r};rt.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===rt.DEPTH_STENCIL)return te.DEPTH24_STENCIL8;if(e===rt.DEPTH_COMPONENT){if(t===Ke.UNSIGNED_SHORT)return te.DEPTH_COMPONENT16;if(t===Ke.UNSIGNED_INT)return te.DEPTH_COMPONENT24}if(t===Ke.FLOAT)switch(e){case rt.RGBA:return te.RGBA32F;case rt.RGB:return te.RGB32F;case rt.RG:return te.RG32F;case rt.RED:return te.R32F}if(t===Ke.HALF_FLOAT)switch(e){case rt.RGBA:return te.RGBA16F;case rt.RGB:return te.RGB16F;case rt.RG:return te.RG16F;case rt.RED:return te.R16F}return e};var Je=Object.freeze(rt);var xr={_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(xr,{maximumCombinedTextureImageUnits:{get:function(){return xr._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return xr._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return xr._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return xr._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return xr._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return xr._maximumTextureSize}},maximumVaryingVectors:{get:function(){return xr._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return xr._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return xr._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return xr._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return xr._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return xr._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return xr._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return xr._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return xr._maximumViewportWidth}},maximumViewportHeight:{get:function(){return xr._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return xr._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return xr._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return xr._maximumColorAttachments}},maximumSamples:{get:function(){return xr._maximumSamples}},highpFloatSupported:{get:function(){return xr._highpFloatSupported}},highpIntSupported:{get:function(){return xr._highpIntSupported}}});var kt=xr;function t6(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function BV(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function vd(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=kt.maximumColorAttachments;if(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),this._bind(),l(e.colorTextures)){let o=e.colorTextures,r=this._colorTextures.length=this._activeColorAttachments.length=o.length;for(let s=0;s<r;++s){let a=o[s],c=this._gl.COLOR_ATTACHMENT0+s;t6(this,c,a),this._activeColorAttachments[s]=c,this._colorTextures[s]=a}}if(l(e.colorRenderbuffers)){let o=e.colorRenderbuffers,r=this._colorRenderbuffers.length=this._activeColorAttachments.length=o.length;for(let s=0;s<r;++s){let a=o[s],c=this._gl.COLOR_ATTACHMENT0+s;BV(this,c,a),this._activeColorAttachments[s]=c,this._colorRenderbuffers[s]=a}}if(l(e.depthTexture)){let o=e.depthTexture;t6(this,this._gl.DEPTH_ATTACHMENT,o),this._depthTexture=o}if(l(e.depthRenderbuffer)){let o=e.depthRenderbuffer;BV(this,this._gl.DEPTH_ATTACHMENT,o),this._depthRenderbuffer=o}if(l(e.stencilRenderbuffer)){let o=e.stencilRenderbuffer;BV(this,this._gl.STENCIL_ATTACHMENT,o),this._stencilRenderbuffer=o}if(l(e.depthStencilTexture)){let o=e.depthStencilTexture;t6(this,this._gl.DEPTH_STENCIL_ATTACHMENT,o),this._depthStencilTexture=o}if(l(e.depthStencilRenderbuffer)){let o=e.depthStencilRenderbuffer;BV(this,this._gl.DEPTH_STENCIL_ATTACHMENT,o),this._depthStencilRenderbuffer=o}this._unBind()}Object.defineProperties(vd.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)}}});vd.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};vd.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};vd.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};vd.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};vd.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};vd.prototype.getColorTexture=function(e){return this._colorTextures[e]};vd.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};vd.prototype.isDestroyed=function(){return!1};vd.prototype.destroy=function(){if(this.destroyAttachments){let e=this._colorTextures;for(let n=0;n<e.length;++n){let i=e[n];l(i)&&i.destroy()}let t=this._colorRenderbuffers;for(let n=0;n<t.length;++n){let i=t[n];l(i)&&i.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),ue(this)};var Mr=vd;var kV={CLOCKWISE:te.CW,COUNTER_CLOCKWISE:te.CCW};kV.validate=function(e){return e===kV.CLOCKWISE||e===kV.COUNTER_CLOCKWISE};var hs=Object.freeze(kV);function QJ(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]=QJ(e[t]));return Object.freeze(e)}var n6=QJ;function tm(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),u=y(t.blending,y.EMPTY_OBJECT),f=y(u.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,hs.COUNTER_CLOCKWISE),this.cull={enabled:y(n.enabled,!1),face:y(n.face,te.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:je.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,te.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(u.enabled,!1),color:new H(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(u.equationRgb,te.FUNC_ADD),equationAlpha:y(u.equationAlpha,te.FUNC_ADD),functionSourceRgb:y(u.functionSourceRgb,te.ONE),functionSourceAlpha:y(u.functionSourceAlpha,te.ONE),functionDestinationRgb:y(u.functionDestinationRgb,te.ZERO),functionDestinationAlpha:y(u.functionDestinationAlpha,te.ZERO)},this.stencilTest={enabled:y(d.enabled,!1),frontFunction:y(d.frontFunction,te.ALWAYS),backFunction:y(d.backFunction,te.ALWAYS),reference:y(d.reference,0),mask:y(d.mask,-1),frontOperation:{fail:y(p.fail,te.KEEP),zFail:y(p.zFail,te.KEEP),zPass:y(p.zPass,te.KEEP)},backOperation:{fail:y(g.fail,te.KEEP),zFail:y(g.zFail,te.KEEP),zPass:y(g.zPass,te.KEEP)}},this.sampleCoverage={enabled:y(m.enabled,!1),value:y(m.value,1),invert:y(m.invert,!1)},this.viewport=l(x)?new je(x.x,x.y,x.width,x.height):void 0,this.id=0,this._applyFunctions=[]}var Ewe=0,em={};tm.fromCache=function(e){let t=JSON.stringify(e),n=em[t];if(l(n))return++n.referenceCount,n.state;let i=new tm(e),o=JSON.stringify(i);return n=em[o],l(n)||(i.id=Ewe++,n={referenceCount:0,state:i},em[o]=n),++n.referenceCount,em[t]={referenceCount:1,state:n.state},n.state};tm.removeFromCache=function(e){let t=new tm(e),n=JSON.stringify(t),i=em[n],o=JSON.stringify(e),r=em[o];l(r)&&(--r.referenceCount,r.referenceCount===0&&(delete em[o],l(i)&&--i.referenceCount)),l(i)&&i.referenceCount===0&&delete em[n]};tm.getCache=function(){return em};tm.clearCache=function(){em={}};function cx(e,t,n){n?e.enable(t):e.disable(t)}function JJ(e,t){e.frontFace(t.frontFace)}function eee(e,t){let n=t.cull,i=n.enabled;cx(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function tee(e,t){e.lineWidth(t.lineWidth)}function nee(e,t){let n=t.polygonOffset,i=n.enabled;cx(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function iee(e,t,n){let i=t.scissorTest,o=l(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(cx(e,e.SCISSOR_TEST,o),o){let r=l(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(r.x,r.y,r.width,r.height)}}function oee(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function ree(e,t){let n=t.depthTest,i=n.enabled;cx(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function see(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function aee(e,t){e.depthMask(t.depthMask)}function cee(e,t){e.stencilMask(t.stencilMask)}function Swe(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function lee(e,t,n){let i=t.blending,o=l(n.blendingEnabled)?n.blendingEnabled:i.enabled;cx(e,e.BLEND,o),o&&(Swe(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function uee(e,t){let n=t.stencilTest,i=n.enabled;if(cx(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,u=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,u,f,d);let p=n.backOperation,g=p.fail,m=p.zFail,x=p.zPass;e.stencilOpSeparate(e.BACK,g,m,x)}}function fee(e,t){let n=t.sampleCoverage,i=n.enabled;cx(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var vwe=new je;function dee(e,t,n){let i=y(t.viewport,n.viewport);l(i)||(i=vwe,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)}tm.apply=function(e,t,n){JJ(e,t),eee(e,t),tee(e,t),nee(e,t),oee(e,t),ree(e,t),see(e,t),aee(e,t),cee(e,t),uee(e,t),fee(e,t),iee(e,t,n),lee(e,t,n),dee(e,t,n)};function wwe(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(JJ),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push(eee),e.lineWidth!==t.lineWidth&&n.push(tee),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(nee),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(oee),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(ree),(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(see),e.depthMask!==t.depthMask&&n.push(aee),e.stencilMask!==t.stencilMask&&n.push(cee),(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(uee),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(fee),n}tm.partialApply=function(e,t,n,i,o,r){if(t!==n){let f=n._applyFunctions[t.id];l(f)||(f=wwe(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=l(i.scissorTest)?i.scissorTest:t.scissorTest,a=l(o.scissorTest)?o.scissorTest:n.scissorTest;(s!==a||r)&&iee(e,n,o);let c=l(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,u=l(o.blendingEnabled)?o.blendingEnabled:n.blending.enabled;(c!==u||u&&t.blending!==n.blending)&&lee(e,n,o),(t!==n||i!==o||i.context!==o.context)&&dee(e,n,o)};tm.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:je.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:H.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:l(e.viewport)?je.clone(e.viewport):void 0}};var Ve=tm;function Xt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}Xt.packedLength=4;Xt.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};Xt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Xt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};Xt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Xt.pack(e[o],t,o*4);return t};Xt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=Xt.unpack(e,i,t[o])}return t};Xt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new Xt(e[0],e[2],e[1],e[3])};Xt.fromArray=Xt.unpack;Xt.fromColumnMajorArray=function(e,t){return Xt.clone(e,t)};Xt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new Xt(e[0],e[1],e[2],e[3])};Xt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new Xt(e.x,0,0,e.y)};Xt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new Xt(e,0,0,e)};Xt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new Xt(n,-i,i,n)};Xt.toArray=function(e,t){return l(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]]};Xt.getElementIndex=function(e,t){return e*2+t};Xt.getColumn=function(e,t,n){let i=t*2,o=e[i],r=e[i+1];return n.x=o,n.y=r,n};Xt.setColumn=function(e,t,n,i){i=Xt.clone(e,i);let o=t*2;return i[o]=n.x,i[o+1]=n.y,i};Xt.getRow=function(e,t,n){let i=e[t],o=e[t+2];return n.x=i,n.y=o,n};Xt.setRow=function(e,t,n,i){return i=Xt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var Dwe=new z;Xt.setScale=function(e,t,n){let i=Xt.getScale(e,Dwe),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 Iwe=new z;Xt.setUniformScale=function(e,t,n){let i=Xt.getScale(e,Iwe),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 hee=new z;Xt.getScale=function(e,t){return t.x=z.magnitude(z.fromElements(e[0],e[1],hee)),t.y=z.magnitude(z.fromElements(e[2],e[3],hee)),t};var mee=new z;Xt.getMaximumScale=function(e){return Xt.getScale(e,mee),z.maximumComponent(mee)};var Pwe=new z;Xt.setRotation=function(e,t,n){let i=Xt.getScale(e,Pwe);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 Rwe=new z;Xt.getRotation=function(e,t){let n=Xt.getScale(e,Rwe);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};Xt.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};Xt.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};Xt.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};Xt.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};Xt.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};Xt.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};Xt.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};Xt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};Xt.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};Xt.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};Xt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};Xt.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]};Xt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(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};Xt.IDENTITY=Object.freeze(new Xt(1,0,0,1));Xt.ZERO=Object.freeze(new Xt(0,0,0,0));Xt.COLUMN0ROW0=0;Xt.COLUMN0ROW1=1;Xt.COLUMN1ROW0=2;Xt.COLUMN1ROW1=3;Object.defineProperties(Xt.prototype,{length:{get:function(){return Xt.packedLength}}});Xt.prototype.clone=function(e){return Xt.clone(this,e)};Xt.prototype.equals=function(e){return Xt.equals(this,e)};Xt.prototype.equalsEpsilon=function(e,t){return Xt.equalsEpsilon(this,e,t)};Xt.prototype.toString=function(){return`(${this[0]}, ${this[2]})
(${this[1]}, ${this[3]})`};var Bi=Xt;function Owe(e,t,n,i){switch(t.type){case e.FLOAT:return new pee(e,t,n,i);case e.FLOAT_VEC2:return new _ee(e,t,n,i);case e.FLOAT_VEC3:return new gee(e,t,n,i);case e.FLOAT_VEC4:return new yee(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new i6(e,t,n,i);case e.INT:case e.BOOL:return new xee(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new bee(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new Tee(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new Cee(e,t,n,i);case e.FLOAT_MAT2:return new Aee(e,t,n,i);case e.FLOAT_MAT3:return new Eee(e,t,n,i);case e.FLOAT_MAT4:return new See(e,t,n,i);default:throw new ce(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function pee(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}pee.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function _ee(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}_ee.prototype.set=function(){let e=this.value;z.equals(e,this._value)||(z.clone(e,this._value),this._gl.uniform2f(this._location,e.x,e.y))};function gee(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}gee.prototype.set=function(){let e=this.value;l(e.red)?H.equals(e,this._value)||(this._value=H.clone(e,this._value),this._gl.uniform3f(this._location,e.red,e.green,e.blue)):l(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 yee(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}yee.prototype.set=function(){let e=this.value;l(e.red)?H.equals(e,this._value)||(this._value=H.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):l(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 i6(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}i6.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};i6.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function xee(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}xee.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function bee(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}bee.prototype.set=function(){let e=this.value;z.equals(e,this._value)||(z.clone(e,this._value),this._gl.uniform2i(this._location,e.x,e.y))};function Tee(e,t,n,i){this.name=n,this.value=void 0,this._value=new h,this._gl=e,this._location=i}Tee.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 Cee(e,t,n,i){this.name=n,this.value=void 0,this._value=new oe,this._gl=e,this._location=i}Cee.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 Mwe=new Float32Array(4);function Aee(e,t,n,i){this.name=n,this.value=void 0,this._value=new Bi,this._gl=e,this._location=i}Aee.prototype.set=function(){if(!Bi.equalsArray(this.value,this._value,0)){Bi.clone(this.value,this._value);let e=Bi.toArray(this.value,Mwe);this._gl.uniformMatrix2fv(this._location,!1,e)}};var Lwe=new Float32Array(9);function Eee(e,t,n,i){this.name=n,this.value=void 0,this._value=new $,this._gl=e,this._location=i}Eee.prototype.set=function(){if(!$.equalsArray(this.value,this._value,0)){$.clone(this.value,this._value);let e=$.toArray(this.value,Lwe);this._gl.uniformMatrix3fv(this._location,!1,e)}};var Nwe=new Float32Array(16);function See(e,t,n,i){this.name=n,this.value=void 0,this._value=new F,this._gl=e,this._location=i}See.prototype.set=function(){if(!F.equalsArray(this.value,this._value,0)){F.clone(this.value,this._value);let e=F.toArray(this.value,Nwe);this._gl.uniformMatrix4fv(this._location,!1,e)}};var fw=Owe;function Fwe(e,t,n,i){switch(t.type){case e.FLOAT:return new vee(e,t,n,i);case e.FLOAT_VEC2:return new wee(e,t,n,i);case e.FLOAT_VEC3:return new Dee(e,t,n,i);case e.FLOAT_VEC4:return new Iee(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new o6(e,t,n,i);case e.INT:case e.BOOL:return new Pee(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new Ree(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new Oee(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new Mee(e,t,n,i);case e.FLOAT_MAT2:return new Lee(e,t,n,i);case e.FLOAT_MAT3:return new Nee(e,t,n,i);case e.FLOAT_MAT4:return new Fee(e,t,n,i);default:throw new ce(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function vee(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]}vee.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 wee(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]}wee.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];z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2fv(this._location,n)};function Dee(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]}Dee.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(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):l(s.x)&&(h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0)),o+=3}i&&this._gl.uniform3fv(this._location,n)};function Iee(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]}Iee.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(s.red)?H.equalsArray(s,n,o)||(H.pack(s,n,o),i=!0):l(s.x)&&(oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0)),o+=4}i&&this._gl.uniform4fv(this._location,n)};function o6(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}o6.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)}};o6.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 Pee(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]}Pee.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 Ree(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]}Ree.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];z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2iv(this._location,n)};function Oee(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]}Oee.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 Mee(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]}Mee.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 Lee(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]}Lee.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];Bi.equalsArray(s,n,o)||(Bi.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniformMatrix2fv(this._location,!1,n)};function Nee(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]}Nee.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 Fee(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]}Fee.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];F.equalsArray(s,n,o)||(F.pack(s,n,o),i=!0),o+=16}i&&this._gl.uniformMatrix4fv(this._location,!1,n)};var dw=Fwe;var Bwe=0;function Ap(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=kwe(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=Bwe++}Ap.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};Ap.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties(Ap.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return VV(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return VV(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return VV(this),this._uniformsByName}}});function Bee(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(l(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 kwe(e,t){let n={};if(!kt.highpFloatSupported||!kt.highpIntSupported){let i,o,r,s,a=Bee(e),c=Bee(t),u=a.length,f=c.length;for(i=0;i<u;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 nm="[Cesium WebGL] ";function Vwe(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(l(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),l(c)&&c.length>0&&console.log(`${nm}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${nm}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${nm}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let u,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${nm}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),u=`Program failed to link.  Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${nm}Vertex shader compile log: ${c}`),console.error(`${nm} Vertex shader source:
${n}`),u=`Vertex shader failed to compile.  Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${nm}Fragment shader compile log: ${c}`),console.error(`${nm} Fragment shader source:
${i}`),u=`Fragment shader failed to compile.  Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new ce(u);function d(p,g){if(!l(f))return;let m=f.getTranslatedShaderSource(p);if(m===""){console.error(`${nm}${g} shader translation failed.`);return}console.error(`${nm}Translated ${g} shaderSource:
${m}`)}}function Uwe(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 zwe(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]",u=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(u.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,u);if(f!==null){let d=fw(e,a,u,f);n[u]=d,i.push(d),d._setSampler&&o.push(d)}}else{let f,d,p,g,m=u.indexOf("[");if(m>=0){if(f=n[u.slice(0,m)],!l(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,u),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,`${u}[${x}]`),g!==null&&d.push(g);f=dw(e,a,u,d),n[u]=f,i.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:o}}function Hwe(e,t){let n=[],i=[];for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=o,a=e._duplicateUniformNames[s];l(a)&&(r.name=a,s=a);let c=_p[s];l(c)?n.push({uniform:r,automaticUniform:c}):i.push(r)}return{automaticUniforms:n,manualUniforms:i}}function Gwe(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 VV(e){l(e._program)||kee(e)}function kee(e){let t=e._program,n=e._gl,i=Vwe(n,e,e._debugShaders),o=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),r=zwe(n,i),s=Hwe(e,r.uniformsByName);e._program=i,e._numberOfVertexAttributes=o,e._vertexAttributes=Uwe(n,i,o),e._uniformsByName=r.uniformsByName,e._uniforms=r.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=Gwe(n,i,r.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,u,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{kee(e),u(e._program)}catch(m){e._vertexShaderText=d,e._fragmentShaderText=p;let b=/(?:Compile|Link) error: ([^]*)/.exec(m.message);f(b?b[1]:m.message)}})}Ap.prototype._bind=function(){VV(this),this._gl.useProgram(this._program)};Ap.prototype._setUniforms=function(e,t,n){let i,o;if(l(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)}};Ap.prototype.isDestroyed=function(){return!1};Ap.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};Ap.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),ue(this)};var Qt=Ap;function UV(e){this._context=e}var hw,Wwe=new Ze({primitiveType:Me.TRIANGLES}),jwe=new ei({color:new H(0,0,0,0)});function qwe(e,t){return new Mr({context:e,colorTextures:[t],destroyAttachments:!1})}function Ywe(e,t){return Qt.fromCache({context:e,vertexShaderSource:ax,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function Xwe(e,t){return(!l(hw)||hw.viewport.width!==e||hw.viewport.height!==t)&&(hw=Ve.fromCache({viewport:new je(0,0,e,t)})),hw}UV.prototype.execute=function(e){l(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=l(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=l(e.shaderProgram)?e.shaderProgram:Ywe(o,e.fragmentShaderSource),a=qwe(o,t),c=Xwe(n,i),u=e.uniformMap,f=jwe;f.framebuffer=a,f.renderState=c,f.execute(o);let d=Wwe;d.vertexArray=r,d.renderState=c,d.shaderProgram=s,d.uniformMap=u,d.framebuffer=a,d.execute(o),a.destroy(),e.persists||(s.destroy(),l(e.vertexArray)&&r.destroy()),l(e.postExecute)&&e.postExecute(t)};UV.prototype.isDestroyed=function(){return!1};UV.prototype.destroy=function(){return ue(this)};var mw=UV;var Sn={BYTE:te.BYTE,UNSIGNED_BYTE:te.UNSIGNED_BYTE,SHORT:te.SHORT,UNSIGNED_SHORT:te.UNSIGNED_SHORT,INT:te.INT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,DOUBLE:te.DOUBLE};Sn.getSizeInBytes=function(e){switch(e){case Sn.BYTE:return Int8Array.BYTES_PER_ELEMENT;case Sn.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Sn.SHORT:return Int16Array.BYTES_PER_ELEMENT;case Sn.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Sn.INT:return Int32Array.BYTES_PER_ELEMENT;case Sn.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case Sn.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case Sn.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};Sn.fromTypedArray=function(e){if(e instanceof Int8Array)return Sn.BYTE;if(e instanceof Uint8Array)return Sn.UNSIGNED_BYTE;if(e instanceof Int16Array)return Sn.SHORT;if(e instanceof Uint16Array)return Sn.UNSIGNED_SHORT;if(e instanceof Int32Array)return Sn.INT;if(e instanceof Uint32Array)return Sn.UNSIGNED_INT;if(e instanceof Float32Array)return Sn.FLOAT;if(e instanceof Float64Array)return Sn.DOUBLE};Sn.validate=function(e){return l(e)&&(e===Sn.BYTE||e===Sn.UNSIGNED_BYTE||e===Sn.SHORT||e===Sn.UNSIGNED_SHORT||e===Sn.INT||e===Sn.UNSIGNED_INT||e===Sn.FLOAT||e===Sn.DOUBLE)};Sn.createTypedArray=function(e,t){switch(e){case Sn.BYTE:return new Int8Array(t);case Sn.UNSIGNED_BYTE:return new Uint8Array(t);case Sn.SHORT:return new Int16Array(t);case Sn.UNSIGNED_SHORT:return new Uint16Array(t);case Sn.INT:return new Int32Array(t);case Sn.UNSIGNED_INT:return new Uint32Array(t);case Sn.FLOAT:return new Float32Array(t);case Sn.DOUBLE:return new Float64Array(t)}};Sn.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/Sn.getSizeInBytes(e)),e){case Sn.BYTE:return new Int8Array(t,n,i);case Sn.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case Sn.SHORT:return new Int16Array(t,n,i);case Sn.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case Sn.INT:return new Int32Array(t,n,i);case Sn.UNSIGNED_INT:return new Uint32Array(t,n,i);case Sn.FLOAT:return new Float32Array(t,n,i);case Sn.DOUBLE:return new Float64Array(t,n,i)}};Sn.fromName=function(e){switch(e){case"BYTE":return Sn.BYTE;case"UNSIGNED_BYTE":return Sn.UNSIGNED_BYTE;case"SHORT":return Sn.SHORT;case"UNSIGNED_SHORT":return Sn.UNSIGNED_SHORT;case"INT":return Sn.INT;case"UNSIGNED_INT":return Sn.UNSIGNED_INT;case"FLOAT":return Sn.FLOAT;case"DOUBLE":return Sn.DOUBLE}};var X=Object.freeze(Sn);var Kwe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},gf=Object.freeze(Kwe);function r6(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Me.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,gf.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}r6.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&l(e.attributes[n])&&l(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var Zwe=new fe,$we=new h,Vee=new F,Qwe=[new fe,new fe,new fe],Jwe=[new z,new z,new z],eDe=[new z,new z,new z],tDe=new h,nDe=new Oe,iDe=new F,oDe=new Bi;r6._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=re.center(i,Zwe),s=fe.toCartesian(r,n,$we),a=Mt.eastNorthUpToFixedFrame(s,n,Vee),c=F.inverse(a,Vee),u=Jwe,f=Qwe;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=tDe;for(o=0;o<3;o++)fe.toCartesian(f[o],n,d),d=F.multiplyByPointAsVector(c,d,d),u[o].x=d.x,u[o].y=d.y;let p=Oe.fromAxisAngle(h.UNIT_Z,-t,nDe),g=$.fromQuaternion(p,iDe),m=e.length,x=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,C=Number.NEGATIVE_INFINITY;for(o=0;o<m;o++)d=F.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),C=Math.max(C,d.y);let A=Bi.fromRotation(t,oDe),E=eDe;E[0].x=x,E[0].y=b,E[1].x=x,E[1].y=C,E[2].x=T,E[2].y=b;let v=u[0],D=u[2].x-v.x,O=u[1].y-v.y;for(o=0;o<3;o++){let S=E[o];Bi.multiplyByVector(A,S,S),S.x=(S.x-v.x)/D,S.y=(S.y-v.y)/O}let R=E[0],M=E[1],N=E[2],_=new Array(6);return z.pack(R,_),z.pack(M,_,2),z.pack(N,_,4),_};var at=r6;function rDe(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=rDe;function jC(e,t,n,i,o){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=o}Object.defineProperties(jC.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}},arrayBufferView:{get:function(){return this._buffer}}});jC.clone=function(e){if(l(e))return new jC(e._format,e._datatype,e._width,e._height,e._buffer)};jC.prototype.clone=function(){return jC.clone(this)};var pw=jC;var Uee=Vo(au(),1);function zee(){if(!l(sa._canTransferArrayBuffer)){let e=c6("transferTypedArrayTest");e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return sa._canTransferArrayBuffer=!1,sa._canTransferArrayBuffer}sa._canTransferArrayBuffer=new Promise(i=>{e.onmessage=function(o){let r=o.data.array,s=l(r)&&r[0]===t;i(s),e.terminate(),sa._canTransferArrayBuffer=s}})}return sa._canTransferArrayBuffer}var a6=new me;function s6(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 c6(e){let t=new Uee.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i=e.replace(/\.js$/,""),o={},r,s;if(Pg(e))s=e;else if(!n){let a=nn(`${sa._workerModulePrefix}/${i}.js`);Pg(a)&&(s=a)}if(s){let a=`import "${s}";`;return r=s6(a),o.type="module",new Worker(r,o)}if(!n&&typeof CESIUM_WORKERS<"u"){let a=`
      importScripts("${s6(CESIUM_WORKERS)}");
      CesiumWorkers["${i}"]();
    `;return r=s6(a),new Worker(r,o)}if(r=e,n||(r=nn(`${sa._workerModulePrefix+i}.js`)),!Ht.supportsEsmWebWorkers())throw new ce("This browser is not supported. Please update your browser to continue.");return o.type="module",new Worker(r,o)}async function sDe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Ht.supportsWebAssembly()){if(!l(t.fallbackModulePath))throw new ce(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=nn(t.fallbackModulePath),n}n.wasmBinaryFile=nn(t.wasmBinaryFile);let i=await we.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function sa(e,t){this._workerPath=e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var aDe=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(l(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new ce(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new he(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),a6.raiseEvent(s),i(s)}else a6.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},cDe=[];async function lDe(e,t,n){let i=await Promise.resolve(zee());l(n)?i||(n.length=0):n=cDe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",aDe(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:nn.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function uDe(e,t,n){++e._activeTasks;try{let i=await lDe(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}sa.prototype.scheduleTask=function(e,t){if(l(this._worker)||(this._worker=c6(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return uDe(this,e,t)};sa.prototype.initWebAssemblyModule=async function(e){if(l(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=c6(this._workerPath),i=await sDe(this,e),o=await Promise.resolve(zee()),r,s=i.wasmBinary;l(s)&&o&&(r=[s]);let a=new Promise((c,u)=>{n.onmessage=function({data:f}){l(f)?c(f.result):u(new ce("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};sa.prototype.isDestroyed=function(){return!1};sa.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),ue(this)};sa.taskCompletedEvent=a6;sa._defaultWorkerModulePrefix="Workers/";sa._workerModulePrefix=sa._defaultWorkerModulePrefix;sa._canTransferArrayBuffer=void 0;var pi=sa;function Ep(){}Ep._transcodeTaskProcessor=new pi("transcodeKTX2",Number.POSITIVE_INFINITY);Ep._readyPromise=void 0;function fDe(){let e=Ep._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return Ep._transcodeTaskProcessor;throw new ce("KTX2 transcoder could not be initialized.")});Ep._readyPromise=e}Ep.transcode=function(e,t){return l(Ep._readyPromise)||fDe(),Ep._readyPromise.then(function(n){let i=e;e instanceof ArrayBuffer&&(i=new Uint8Array(e));let o={supportedTargetFormats:t,ktx2Buffer:i};return n.scheduleTask(o,[i.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]);for(let r=0;r<i;r++){let s=n[r];for(let a=0;a<o.length;a++){let c=s[o[a]];s[o[a]]=new pw(c.internalFormat,c.datatype,c.width,c.height,c.levelBuffer)}}if(o.length===1){for(let r=0;r<i;++r)n[r]=n[r][o[0]];i===1&&(n=n[0])}return n}).catch(function(n){throw n})};var _w=Ep;var Hee;Gee.setKTX2SupportedFormats=function(e,t,n,i,o,r){Hee={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:o,bc7:r}};function Gee(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=we.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return _w.transcode(n,Hee)})}var Sl=Gee;function dDe(e,t){this.start=y(e,0),this.stop=y(t,0)}var wa=dDe;function hn(e,t){this.center=h.clone(y(e,h.ZERO)),this.radius=y(t,0)}var f6=new h,d6=new h,h6=new h,m6=new h,p6=new h,_6=new h,g6=new h,aa=new h,y6=new h,x6=new h,b6=new h,T6=new h,hDe=4/3*P.PI;hn.fromPoints=function(e,t){if(l(t)||(t=new hn),!l(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],g6),i=h.clone(n,f6),o=h.clone(n,d6),r=h.clone(n,h6),s=h.clone(n,m6),a=h.clone(n,p6),c=h.clone(n,_6),u=e.length,f;for(f=1;f<u;f++){h.clone(e[f],n);let R=n.x,M=n.y,N=n.z;R<i.x&&h.clone(n,i),R>s.x&&h.clone(n,s),M<o.y&&h.clone(n,o),M>a.y&&h.clone(n,a),N<r.z&&h.clone(n,r),N>c.z&&h.clone(n,c)}let d=h.magnitudeSquared(h.subtract(s,i,aa)),p=h.magnitudeSquared(h.subtract(a,o,aa)),g=h.magnitudeSquared(h.subtract(c,r,aa)),m=i,x=s,b=d;p>b&&(b=p,m=o,x=a),g>b&&(b=g,m=r,x=c);let T=y6;T.x=(m.x+x.x)*.5,T.y=(m.y+x.y)*.5,T.z=(m.z+x.z)*.5;let C=h.magnitudeSquared(h.subtract(x,T,aa)),A=Math.sqrt(C),E=x6;E.x=i.x,E.y=o.y,E.z=r.z;let v=b6;v.x=s.x,v.y=a.y,v.z=c.z;let D=h.midpoint(E,v,T6),O=0;for(f=0;f<u;f++){h.clone(e[f],n);let R=h.magnitude(h.subtract(n,D,aa));R>O&&(O=R);let M=h.magnitudeSquared(h.subtract(n,T,aa));if(M>C){let N=Math.sqrt(M);A=(A+N)*.5,C=A*A;let _=N-A;T.x=(A*T.x+_*n.x)/N,T.y=(A*T.y+_*n.y)/N,T.z=(A*T.z+_*n.z)/N}}return A<O?(h.clone(T,t.center),t.radius=A):(h.clone(D,t.center),t.radius=O),t};var Wee=new vi,mDe=new h,pDe=new h,l6=new fe,u6=new fe;hn.fromRectangle2D=function(e,t,n){return hn.fromRectangleWithHeights2D(e,t,0,0,n)};hn.fromRectangleWithHeights2D=function(e,t,n,i,o){if(l(o)||(o=new hn),!l(e))return o.center=h.clone(h.ZERO,o.center),o.radius=0,o;Wee._ellipsoid=ee.default,t=y(t,Wee),re.southwest(e,l6),l6.height=n,re.northeast(e,u6),u6.height=i;let r=t.project(l6,mDe),s=t.project(u6,pDe),a=s.x-r.x,c=s.y-r.y,u=s.z-r.z;o.radius=Math.sqrt(a*a+c*c+u*u)*.5;let f=o.center;return f.x=r.x+a*.5,f.y=r.y+c*.5,f.z=r.z+u*.5,o};var _De=[];hn.fromRectangle3D=function(e,t,n,i){if(t=y(t,ee.default),n=y(n,0),l(i)||(i=new hn),!l(e))return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;let o=re.subsample(e,t,n,_De);return hn.fromPoints(o,i)};hn.fromVertices=function(e,t,n,i){if(l(i)||(i=new hn),!l(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=g6;o.x=e[0]+t.x,o.y=e[1]+t.y,o.z=e[2]+t.z;let r=h.clone(o,f6),s=h.clone(o,d6),a=h.clone(o,h6),c=h.clone(o,m6),u=h.clone(o,p6),f=h.clone(o,_6),d=e.length,p;for(p=0;p<d;p+=n){let N=e[p]+t.x,_=e[p+1]+t.y,S=e[p+2]+t.z;o.x=N,o.y=_,o.z=S,N<r.x&&h.clone(o,r),N>c.x&&h.clone(o,c),_<s.y&&h.clone(o,s),_>u.y&&h.clone(o,u),S<a.z&&h.clone(o,a),S>f.z&&h.clone(o,f)}let g=h.magnitudeSquared(h.subtract(c,r,aa)),m=h.magnitudeSquared(h.subtract(u,s,aa)),x=h.magnitudeSquared(h.subtract(f,a,aa)),b=r,T=c,C=g;m>C&&(C=m,b=s,T=u),x>C&&(C=x,b=a,T=f);let A=y6;A.x=(b.x+T.x)*.5,A.y=(b.y+T.y)*.5,A.z=(b.z+T.z)*.5;let E=h.magnitudeSquared(h.subtract(T,A,aa)),v=Math.sqrt(E),D=x6;D.x=r.x,D.y=s.y,D.z=a.z;let O=b6;O.x=c.x,O.y=u.y,O.z=f.z;let R=h.midpoint(D,O,T6),M=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 N=h.magnitude(h.subtract(o,R,aa));N>M&&(M=N);let _=h.magnitudeSquared(h.subtract(o,A,aa));if(_>E){let S=Math.sqrt(_);v=(v+S)*.5,E=v*v;let w=S-v;A.x=(v*A.x+w*o.x)/S,A.y=(v*A.y+w*o.y)/S,A.z=(v*A.z+w*o.z)/S}}return v<M?(h.clone(A,i.center),i.radius=v):(h.clone(R,i.center),i.radius=M),i};hn.fromEncodedCartesianVertices=function(e,t,n){if(l(n)||(n=new hn),!l(e)||!l(t)||e.length!==t.length||e.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=g6;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let o=h.clone(i,f6),r=h.clone(i,d6),s=h.clone(i,h6),a=h.clone(i,m6),c=h.clone(i,p6),u=h.clone(i,_6),f=e.length,d;for(d=0;d<f;d+=3){let M=e[d]+t[d],N=e[d+1]+t[d+1],_=e[d+2]+t[d+2];i.x=M,i.y=N,i.z=_,M<o.x&&h.clone(i,o),M>a.x&&h.clone(i,a),N<r.y&&h.clone(i,r),N>c.y&&h.clone(i,c),_<s.z&&h.clone(i,s),_>u.z&&h.clone(i,u)}let p=h.magnitudeSquared(h.subtract(a,o,aa)),g=h.magnitudeSquared(h.subtract(c,r,aa)),m=h.magnitudeSquared(h.subtract(u,s,aa)),x=o,b=a,T=p;g>T&&(T=g,x=r,b=c),m>T&&(T=m,x=s,b=u);let C=y6;C.x=(x.x+b.x)*.5,C.y=(x.y+b.y)*.5,C.z=(x.z+b.z)*.5;let A=h.magnitudeSquared(h.subtract(b,C,aa)),E=Math.sqrt(A),v=x6;v.x=o.x,v.y=r.y,v.z=s.z;let D=b6;D.x=a.x,D.y=c.y,D.z=u.z;let O=h.midpoint(v,D,T6),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 M=h.magnitude(h.subtract(i,O,aa));M>R&&(R=M);let N=h.magnitudeSquared(h.subtract(i,C,aa));if(N>A){let _=Math.sqrt(N);E=(E+_)*.5,A=E*E;let S=_-E;C.x=(E*C.x+S*i.x)/_,C.y=(E*C.y+S*i.y)/_,C.z=(E*C.z+S*i.z)/_}}return E<R?(h.clone(C,n.center),n.radius=E):(h.clone(O,n.center),n.radius=R),n};hn.fromCornerPoints=function(e,t,n){l(n)||(n=new hn);let i=h.midpoint(e,t,n.center);return n.radius=h.distance(i,t),n};hn.fromEllipsoid=function(e,t){return l(t)||(t=new hn),h.clone(h.ZERO,t.center),t.radius=e.maximumRadius,t};var gDe=new h;hn.fromBoundingSpheres=function(e,t){if(l(t)||(t=new hn),!l(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 hn.clone(e[0],t);if(n===2)return hn.union(e[0],e[1],t);let i=[],o;for(o=0;o<n;o++)i.push(e[o].center);t=hn.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,gDe)+a.radius)}return t.radius=s,t};var yDe=new h,xDe=new h,bDe=new h;hn.fromOrientedBoundingBox=function(e,t){l(t)||(t=new hn);let n=e.halfAxes,i=$.getColumn(n,0,yDe),o=$.getColumn(n,1,xDe),r=$.getColumn(n,2,bDe);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 TDe=new h,CDe=new h;hn.fromTransformation=function(e,t){l(t)||(t=new hn);let n=F.getTranslation(e,TDe),i=F.getScale(e,CDe),o=.5*h.magnitude(i);return t.center=h.clone(n,t.center),t.radius=o,t};hn.clone=function(e,t){if(l(e))return l(t)?(t.center=h.clone(e.center,t.center),t.radius=e.radius,t):new hn(e.center,e.radius)};hn.packedLength=4;hn.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};hn.unpack=function(e,t,n){t=y(t,0),l(n)||(n=new hn);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var ADe=new h,EDe=new h;hn.union=function(e,t,n){l(n)||(n=new hn);let i=e.center,o=e.radius,r=t.center,s=t.radius,a=h.subtract(r,i,ADe),c=h.magnitude(a);if(o>=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let u=(o+c+s)*.5,f=h.multiplyByScalar(a,(-o+u)/c,EDe);return h.add(f,i,f),h.clone(f,n.center),n.radius=u,n};var SDe=new h;hn.expand=function(e,t,n){n=hn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,SDe));return i>n.radius&&(n.radius=i),n};hn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=h.dot(o,n)+t.distance;return r<-i?jt.OUTSIDE:r<i?jt.INTERSECTING:jt.INSIDE};hn.transform=function(e,t,n){return l(n)||(n=new hn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=F.getMaximumScale(t)*e.radius,n};var vDe=new h;hn.distanceSquaredTo=function(e,t){let n=h.subtract(e.center,t,vDe),i=h.magnitude(n)-e.radius;return i<=0?0:i*i};hn.transformWithoutScale=function(e,t,n){return l(n)||(n=new hn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var wDe=new h;hn.computePlaneDistances=function(e,t,n,i){l(i)||(i=new wa);let o=h.subtract(e.center,t,wDe),r=h.dot(n,o);return i.start=r-e.radius,i.stop=r+e.radius,i};var jee=new h,DDe=new h,IDe=new h,PDe=new h,RDe=new h,ODe=new fe,Yee=new Array(8);for(let e=0;e<8;++e)Yee[e]=new h;var qee=new vi;hn.projectTo2D=function(e,t,n){qee._ellipsoid=ee.default,t=y(t,qee);let i=t.ellipsoid,o=e.center,r=e.radius,s;h.equals(o,h.ZERO)?s=h.clone(h.UNIT_X,jee):s=i.geodeticSurfaceNormal(o,jee);let a=h.cross(h.UNIT_Z,s,DDe);h.normalize(a,a);let c=h.cross(s,a,IDe);h.normalize(c,c),h.multiplyByScalar(s,r,s),h.multiplyByScalar(c,r,c),h.multiplyByScalar(a,r,a);let u=h.negate(c,RDe),f=h.negate(a,PDe),d=Yee,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,u,p),h.add(p,f,p),p=d[3],h.add(s,u,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,u,p),h.add(p,f,p),p=d[7],h.add(s,u,p),h.add(p,a,p);let g=d.length;for(let T=0;T<g;++T){let C=d[T];h.add(o,C,C);let A=i.cartesianToCartographic(C,ODe);t.project(A,C)}n=hn.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};hn.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)};hn.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&e.radius===t.radius};hn.prototype.intersectPlane=function(e){return hn.intersectPlane(this,e)};hn.prototype.distanceSquaredTo=function(e){return hn.distanceSquaredTo(this,e)};hn.prototype.computePlaneDistances=function(e,t,n){return hn.computePlaneDistances(this,e,t,n)};hn.prototype.isOccluded=function(e){return hn.isOccluded(this,e)};hn.prototype.equals=function(e){return hn.equals(this,e)};hn.prototype.clone=function(e){return hn.clone(this,e)};hn.prototype.volume=function(){let e=this.radius;return hDe*e*e*e};var se=hn;function MDe(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 fn=MDe;var LDe={NONE:0,TOP:1,ALL:2},an=Object.freeze(LDe);function ms(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)}ms.POSITION_ONLY=Object.freeze(new ms({position:!0}));ms.POSITION_AND_NORMAL=Object.freeze(new ms({position:!0,normal:!0}));ms.POSITION_NORMAL_AND_ST=Object.freeze(new ms({position:!0,normal:!0,st:!0}));ms.POSITION_AND_ST=Object.freeze(new ms({position:!0,st:!0}));ms.POSITION_AND_COLOR=Object.freeze(new ms({position:!0,color:!0}));ms.ALL=Object.freeze(new ms({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));ms.DEFAULT=ms.POSITION_NORMAL_AND_ST;ms.packedLength=6;ms.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};ms.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ms),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};ms.clone=function(e,t){if(l(e))return l(t)||(t=new ms),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 Ie=ms;var NDe=new h;function lu(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Ie.DEFAULT);this._minimum=h.clone(t),this._maximum=h.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}lu.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new lu({minimum:h.negate(n,new h),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};lu.fromAxisAlignedBoundingBox=function(e){return new lu({minimum:e.minimum,maximum:e.maximum})};lu.packedLength=2*h.packedLength+Ie.packedLength+1;lu.pack=function(e,t,n){return n=y(n,0),h.pack(e._minimum,t,n),h.pack(e._maximum,t,n+h.packedLength),Ie.pack(e._vertexFormat,t,n+2*h.packedLength),t[n+2*h.packedLength+Ie.packedLength]=y(e._offsetAttribute,-1),t};var Kee=new h,Zee=new h,$ee=new Ie,Xee={minimum:Kee,maximum:Zee,vertexFormat:$ee,offsetAttribute:void 0};lu.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,Kee),o=h.unpack(e,t+h.packedLength,Zee),r=Ie.unpack(e,t+2*h.packedLength,$ee),s=e[t+2*h.packedLength+Ie.packedLength];return l(n)?(n._minimum=h.clone(i,n._minimum),n._maximum=h.clone(o,n._maximum),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(Xee.offsetAttribute=s===-1?void 0:s,new lu(Xee))};lu.createGeometry=function(e){let t=e._minimum,n=e._maximum,i=e._vertexFormat;if(h.equals(t,n))return;let o=new fn,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 u=new Float32Array(72);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=0,u[5]=1,u[6]=0,u[7]=0,u[8]=1,u[9]=0,u[10]=0,u[11]=1,u[12]=0,u[13]=0,u[14]=-1,u[15]=0,u[16]=0,u[17]=-1,u[18]=0,u[19]=0,u[20]=-1,u[21]=0,u[22]=0,u[23]=-1,u[24]=1,u[25]=0,u[26]=0,u[27]=1,u[28]=0,u[29]=0,u[30]=1,u[31]=0,u[32]=0,u[33]=1,u[34]=0,u[35]=0,u[36]=-1,u[37]=0,u[38]=0,u[39]=-1,u[40]=0,u[41]=0,u[42]=-1,u[43]=0,u[44]=0,u[45]=-1,u[46]=0,u[47]=0,u[48]=0,u[49]=1,u[50]=0,u[51]=0,u[52]=1,u[53]=0,u[54]=0,u[55]=1,u[56]=0,u[57]=0,u[58]=1,u[59]=0,u[60]=0,u[61]=-1,u[62]=0,u[63]=0,u[64]=-1,u[65]=0,u[66]=0,u[67]=-1,u[68]=0,u[69]=0,u[70]=-1,u[71]=0,o.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.st){let u=new Float32Array(48);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=1,u[5]=1,u[6]=0,u[7]=1,u[8]=1,u[9]=0,u[10]=0,u[11]=0,u[12]=0,u[13]=1,u[14]=1,u[15]=1,u[16]=0,u[17]=0,u[18]=1,u[19]=0,u[20]=1,u[21]=1,u[22]=0,u[23]=1,u[24]=1,u[25]=0,u[26]=0,u[27]=0,u[28]=0,u[29]=1,u[30]=1,u[31]=1,u[32]=1,u[33]=0,u[34]=0,u[35]=0,u[36]=0,u[37]=1,u[38]=1,u[39]=1,u[40]=0,u[41]=0,u[42]=1,u[43]=0,u[44]=1,u[45]=1,u[46]=0,u[47]=1,o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:u})}if(i.tangent){let u=new Float32Array(72);u[0]=1,u[1]=0,u[2]=0,u[3]=1,u[4]=0,u[5]=0,u[6]=1,u[7]=0,u[8]=0,u[9]=1,u[10]=0,u[11]=0,u[12]=-1,u[13]=0,u[14]=0,u[15]=-1,u[16]=0,u[17]=0,u[18]=-1,u[19]=0,u[20]=0,u[21]=-1,u[22]=0,u[23]=0,u[24]=0,u[25]=1,u[26]=0,u[27]=0,u[28]=1,u[29]=0,u[30]=0,u[31]=1,u[32]=0,u[33]=0,u[34]=1,u[35]=0,u[36]=0,u[37]=-1,u[38]=0,u[39]=0,u[40]=-1,u[41]=0,u[42]=0,u[43]=-1,u[44]=0,u[45]=0,u[46]=-1,u[47]=0,u[48]=-1,u[49]=0,u[50]=0,u[51]=-1,u[52]=0,u[53]=0,u[54]=-1,u[55]=0,u[56]=0,u[57]=-1,u[58]=0,u[59]=0,u[60]=1,u[61]=0,u[62]=0,u[63]=1,u[64]=0,u[65]=0,u[66]=1,u[67]=0,u[68]=0,u[69]=1,u[70]=0,u[71]=0,o.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.bitangent){let u=new Float32Array(72);u[0]=0,u[1]=1,u[2]=0,u[3]=0,u[4]=1,u[5]=0,u[6]=0,u[7]=1,u[8]=0,u[9]=0,u[10]=1,u[11]=0,u[12]=0,u[13]=1,u[14]=0,u[15]=0,u[16]=1,u[17]=0,u[18]=0,u[19]=1,u[20]=0,u[21]=0,u[22]=1,u[23]=0,u[24]=0,u[25]=0,u[26]=1,u[27]=0,u[28]=0,u[29]=1,u[30]=0,u[31]=0,u[32]=1,u[33]=0,u[34]=0,u[35]=1,u[36]=0,u[37]=0,u[38]=1,u[39]=0,u[40]=0,u[41]=1,u[42]=0,u[43]=0,u[44]=1,u[45]=0,u[46]=0,u[47]=1,u[48]=0,u[49]=0,u[50]=1,u[51]=0,u[52]=0,u[53]=1,u[54]=0,u[55]=0,u[56]=1,u[57]=0,u[58]=0,u[59]=1,u[60]=0,u[61]=0,u[62]=1,u[63]=0,u[64]=0,u[65]=1,u[66]=0,u[67]=0,u[68]=1,u[69]=0,u[70]=0,u[71]=1,o.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}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]=6,r[7]=5,r[8]=4,r[9]=7,r[10]=6,r[11]=4,r[12]=8,r[13]=9,r[14]=10,r[15]=8,r[16]=10,r[17]=11,r[18]=14,r[19]=13,r[20]=12,r[21]=15,r[22]=14,r[23]=12,r[24]=18,r[25]=17,r[26]=16,r[27]=19,r[28]=18,r[29]=16,r[30]=20,r[31]=21,r[32]=22,r[33]=20,r[34]=22,r[35]=23}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,NDe),c=h.magnitude(a)*.5;if(l(e._offsetAttribute)){let u=s.length,f=e._offsetAttribute===an.NONE?0:1,d=new Uint8Array(u/3).fill(f);o.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new at({attributes:o,indices:r,primitiveType:Me.TRIANGLES,boundingSphere:new se(h.ZERO,c),offsetAttribute:e._offsetAttribute})};var C6;lu.getUnitBox=function(){return l(C6)||(C6=lu.createGeometry(lu.fromDimensions({dimensions:new h(1,1,1),vertexFormat:Ie.POSITION_ONLY}))),C6};var Da=lu;var to={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};to.getMathType=function(e){switch(e){case to.SCALAR:return Number;case to.VEC2:return z;case to.VEC3:return h;case to.VEC4:return oe;case to.MAT2:return Bi;case to.MAT3:return $;case to.MAT4:return F}};to.getNumberOfComponents=function(e){switch(e){case to.SCALAR:return 1;case to.VEC2:return 2;case to.VEC3:return 3;case to.VEC4:case to.MAT2:return 4;case to.MAT3:return 9;case to.MAT4:return 16}};to.getAttributeLocationCount=function(e){switch(e){case to.SCALAR:case to.VEC2:case to.VEC3:case to.VEC4:return 1;case to.MAT2:return 2;case to.MAT3:return 3;case to.MAT4:return 4}};to.getGlslType=function(e){switch(e){case to.SCALAR:return"float";case to.VEC2:return"vec2";case to.VEC3:return"vec3";case to.VEC4:return"vec4";case to.MAT2:return"mat2";case to.MAT3:return"mat3";case to.MAT4:return"mat4"}};var on=Object.freeze(to);var Qee=1/256,Jee=256,bo={};bo.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};bo.octEncode=function(e,t){return bo.octEncodeInRange(e,255,t)};var gw=new z,ete=new Uint8Array(1);function zV(e){return ete[0]=e,ete[0]}bo.octEncodeToCartesian4=function(e,t){return bo.octEncodeInRange(e,65535,gw),t.x=zV(gw.x*Qee),t.y=zV(gw.x),t.z=zV(gw.y*Qee),t.w=zV(gw.y),t};bo.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)};bo.octDecode=function(e,t,n){return bo.octDecodeInRange(e,t,255,n)};bo.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,o=e.z,r=e.w,s=n*Jee+i,a=o*Jee+r;return bo.octDecodeInRange(s,a,65535,t)};bo.octPackFloat=function(e){return 256*e.x+e.y};var E6=new z;bo.octEncodeFloat=function(e){return bo.octEncode(e,E6),bo.octPackFloat(E6)};bo.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),o=(n-i)*256;return bo.octDecode(i,o,t)};bo.octPack=function(e,t,n,i){let o=bo.octEncodeFloat(e),r=bo.octEncodeFloat(t),s=bo.octEncode(n,E6);return i.x=65536*s.x+o,i.y=65536*s.y+r,i};bo.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;bo.octDecodeFloat(s,t),bo.octDecodeFloat(c,n),bo.octDecode(r,a,i)};bo.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};bo.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 A6(e){return e>>1^-(e&1)}bo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a<i;++a)o+=A6(e[a]),r+=A6(t[a]),e[a]=o,t[a]=r,l(n)&&(s+=A6(n[a]),n[a]=s)};bo.dequantize=function(e,t,n,i){let o=on.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 u=a*o+c;s[u]=Math.max(e[u]/r,-1)}return s};bo.decodeRGB565=function(e,t){let n=e.length;l(t)||(t=new Float32Array(n*3));let i=31,o=63,r=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],u=c>>11,f=c>>5&o,d=c&i,p=3*a;t[p]=u*r,t[p+1]=f*s,t[p+2]=d*r}return t};var Mn=bo;var tte=new h,nte=new h,ite=new h;function FDe(e,t,n,i,o){l(o)||(o=new h);let r,s,a,c,u,f,d,p;if(l(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,tte),s=h.subtract(i,t,nte),a=h.subtract(e,t,ite),c=h.dot(r,r),u=h.dot(r,s),f=h.dot(r,a),d=h.dot(s,s),p=h.dot(s,a)}else{if(z.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(z.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(z.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=z.subtract(n,t,tte),s=z.subtract(i,t,nte),a=z.subtract(e,t,ite),c=z.dot(r,r),u=z.dot(r,s),f=z.dot(r,a),d=z.dot(s,s),p=z.dot(s,a)}o.y=d*f-u*p,o.z=c*p-u*f;let g=c*d-u*u;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var lx=FDe;function im(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}im.encode=function(e,t){l(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 Sp={high:0,low:0};im.fromCartesian=function(e,t){l(t)||(t=new im);let n=t.high,i=t.low;return im.encode(e.x,Sp),n.x=Sp.high,i.x=Sp.low,im.encode(e.y,Sp),n.y=Sp.high,i.y=Sp.low,im.encode(e.z,Sp),n.z=Sp.high,i.z=Sp.low,t};var S6=new im;im.writeElements=function(e,t,n){im.fromCartesian(e,S6);let i=S6.high,o=S6.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 Gn=im;var v6={};v6.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function ote(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}v6.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),u=Math.abs(e);if(c<u&&c/u<P.EPSILON14)return[0,0];if(c>u&&u/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=ote(o,-r,P.EPSILON14);if(s<0)return[];let a=-.5*ote(t,P.sign(t)*Math.sqrt(s),P.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var Fc=v6;var D6={};D6.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 w6(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,u=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 W,q,J;f*u>=c*d?(W=o,q=p,J=-2*r*p+o*g):(W=a,q=m,J=-a*g+2*s*m);let K=-(J<0?-1:1)*Math.abs(W)*Math.sqrt(-x);T=-J+K;let Q=T/2,de=Q<0?-Math.pow(-Q,1/3):Math.pow(Q,1/3),ye=T===K?-de:-q/de;return b=q<=0?de+ye:-J/(de*de+ye*ye+q),f*u>=c*d?[(b-r)/o]:[-a/(b+s)]}let C=p,A=-2*r*p+o*g,E=m,v=-a*g+2*s*m,D=Math.sqrt(x),O=Math.sqrt(3)/2,R=Math.abs(Math.atan2(o*D,-A)/3);b=2*Math.sqrt(-C);let M=Math.cos(R);T=b*M;let N=b*(-M/2-O*Math.sin(R)),_=T+N>2*r?T-r:N-r,S=o,w=_/S;R=Math.abs(Math.atan2(a*D,-v)/3),b=2*Math.sqrt(-E),M=Math.cos(R),T=b*M,N=b*(-M/2-O*Math.sin(R));let I=-a,L=T+N<2*s?T+s:N+s,B=I/L,U=S*L,V=-_*L-S*I,G=_*I,k=(s*V-r*G)/(-r*V+s*U);return w<=k?w<=B?k<=B?[w,k,B]:[w,B,k]:[B,w,k]:w<=B?[k,w,B]:k<=B?[k,B,w]:[B,k,w]}D6.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return Fc.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=Fc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return w6(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):w6(e,t,0,i);if(i===0)return o=Fc.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 w6(e,t,n,i)};var ux=D6;var I6={};I6.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,u=n*n,f=u*n,d=i*i,p=d*i,g=o*o,m=g*o;return a*u*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*u*u-80*e*t*u*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*u-192*r*t*i)};function wd(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=ux.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let u=-e/4,f=c[c.length-1];if(Math.abs(f)<P.EPSILON14){let d=Fc.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[u-b,u-x,u+x,u+b]}else{if(p>=0&&g<0)return m=Math.sqrt(p),[u-m,u+m];if(p<0&&g>=0)return m=Math.sqrt(g),[u-m,u+m]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,m=Fc.computeRealRoots(1,d,p),x=Fc.computeRealRoots(1,-d,g);return m.length!==0?(m[0]+=u,m[1]+=u,x.length!==0?(x[0]+=u,x[1]+=u,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]+=u,x[1]+=u,x):[]}}return[]}function yw(e,t,n,i){let o=n*n,r=t*t,s=e*e,a=-2*t,c=n*e+r-4*i,u=s*i-n*t*e+o,f=ux.computeRealRoots(1,a,c,u);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),C=s-4*d,A=s+4*Math.abs(d),E,v;if(d<0||b*A<C*T){let S=Math.sqrt(C);E=S/2,v=S===0?0:(e*x-n)/S}else{let S=Math.sqrt(b);E=S===0?0:(e*x-n)/S,v=S/2}let D,O;m===0&&E===0?(D=0,O=0):P.sign(m)===P.sign(E)?(D=m+E,O=d/D):(O=m-E,D=d/O);let R,M;x===0&&v===0?(R=0,M=0):P.sign(x)===P.sign(v)?(R=x+v,M=i/R):(M=x-v,R=i/M);let N=Fc.computeRealRoots(1,D,R),_=Fc.computeRealRoots(1,O,M);if(N.length!==0)return _.length!==0?N[1]<=_[0]?[N[0],N[1],_[0],_[1]]:_[1]<=N[0]?[_[0],_[1],N[0],N[1]]:N[0]>=_[0]&&N[1]<=_[1]?[_[0],N[0],N[1],_[1]]:_[0]>=N[0]&&_[1]<=N[1]?[N[0],_[0],_[1],N[1]]:N[0]>_[0]&&N[0]<_[1]?[_[0],N[0],_[1],N[1]]:[N[0],_[0],N[1],_[1]]:N;if(_.length!==0)return _}return[]}I6.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)<P.EPSILON15)return ux.computeRealRoots(t,n,i,o);let r=t/e,s=n/e,a=i/e,c=o/e,u=r<0?1:0;switch(u+=s<0?u+1:u,u+=a<0?u+1:u,u+=c<0?u+1:u,u){case 0:return wd(r,s,a,c);case 1:return yw(r,s,a,c);case 2:return yw(r,s,a,c);case 3:return wd(r,s,a,c);case 4:return wd(r,s,a,c);case 5:return yw(r,s,a,c);case 6:return wd(r,s,a,c);case 7:return wd(r,s,a,c);case 8:return yw(r,s,a,c);case 9:return wd(r,s,a,c);case 10:return wd(r,s,a,c);case 11:return yw(r,s,a,c);case 12:return wd(r,s,a,c);case 13:return wd(r,s,a,c);case 14:return wd(r,s,a,c);case 15:return wd(r,s,a,c);default:return}};var xw=I6;function HV(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}HV.clone=function(e,t){if(l(e))return l(t)?(t.origin=h.clone(e.origin),t.direction=h.clone(e.direction),t):new HV(e.origin,e.direction)};HV.getPoint=function(e,t,n){return l(n)||(n=new h),n=h.multiplyByScalar(e.direction,t,n),h.add(e.origin,n,n)};var mn=HV;var zo={};zo.rayPlane=function(e,t,n){l(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 BDe=new h,kDe=new h,dte=new h,rte=new h,ste=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,BDe),c=h.subtract(i,t,kDe),u=h.cross(s,c,dte),f=h.dot(a,u),d,p,g,m,x;if(o){if(f<P.EPSILON6||(d=h.subtract(r,t,rte),g=h.dot(d,u),g<0||g>f)||(p=h.cross(d,a,ste),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,rte),g=h.dot(d,u)*b,g<0||g>1||(p=h.cross(d,a,ste),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(!(!l(s)||s<0))return l(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var VDe=new mn;zo.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=VDe;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(!(!l(c)||c<0||c>h.distance(e,t)))return l(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function UDe(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,u=(-t-a)*s;return c<u?(i.root0=c,i.root1=u):(i.root0=u,i.root1=c),i}let r=-t/(2*e);if(r!==0)return i.root0=i.root1=r,i}var zDe={root0:0,root1:0};function hte(e,t,n){l(n)||(n=new wa);let i=e.origin,o=e.direction,r=t.center,s=t.radius*t.radius,a=h.subtract(i,r,dte),c=h.dot(o,o),u=2*h.dot(o,a),f=h.magnitudeSquared(a)-s,d=UDe(c,u,f,zDe);if(l(d))return n.start=d.root0,n.stop=d.root1,n}zo.raySphere=function(e,t,n){if(n=hte(e,t,n),!(!l(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var HDe=new mn;zo.lineSegmentSphere=function(e,t,n,i){let o=HDe;h.clone(e,o.origin);let r=h.subtract(t,e,o.direction),s=h.magnitude(r);if(h.normalize(r,r),i=hte(o,n,i),!(!l(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var GDe=new h,WDe=new h;zo.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,GDe),o=h.multiplyComponents(n,e.direction,WDe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,u,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),u=c*a,p<u)return;if(p>u){f=s*s-u,d=-s+Math.sqrt(f);let m=d/c,x=a/d;return m<x?new wa(m,x):{start:x,stop:m}}let g=Math.sqrt(a/c);return new wa(g,g)}else if(r<1)return a=r-1,c=h.magnitudeSquared(o),u=c*a,f=s*s-u,d=-s+Math.sqrt(f),new wa(0,d/c);if(s<0)return c=h.magnitudeSquared(o),new wa(0,-s/c)};function fx(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}zo.quadraticVectorExpression=function(e,t,n,i,o){let r=i*i,s=o*o,a=(e[$.COLUMN1ROW1]-e[$.COLUMN2ROW2])*s,c=o*(i*fx(e[$.COLUMN1ROW0],e[$.COLUMN0ROW1],P.EPSILON15)+t.y),u=e[$.COLUMN0ROW0]*r+e[$.COLUMN2ROW2]*s+i*t.x+n,f=s*fx(e[$.COLUMN2ROW1],e[$.COLUMN1ROW2],P.EPSILON15),d=o*(i*fx(e[$.COLUMN2ROW0],e[$.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=Fc.computeRealRoots(a,c,u),p.length===0)return g;let R=p[0],M=Math.sqrt(Math.max(1-R*R,0));if(g.push(new h(i,o*R,o*-M)),g.push(new h(i,o*R,o*M)),p.length===2){let N=p[1],_=Math.sqrt(Math.max(1-N*N,0));g.push(new h(i,o*N,o*-_)),g.push(new h(i,o*N,o*_))}return g}let m=d*d,x=f*f,b=a*a,T=d*f,C=b+x,A=2*(c*a+T),E=2*u*a+c*c-x+m,v=2*(u*c-T),D=u*u-m;if(C===0&&A===0&&E===0&&v===0)return g;p=xw.computeRealRoots(C,A,E,v,D);let O=p.length;if(O===0)return g;for(let R=0;R<O;++R){let M=p[R],N=M*M,_=Math.max(1-N,0),S=Math.sqrt(_),w;P.sign(a)===P.sign(u)?w=fx(a*N+u,c*M,P.EPSILON12):P.sign(u)===P.sign(c*M)?w=fx(a*N,c*M+u,P.EPSILON12):w=fx(a*N+c*M,u,P.EPSILON12);let I=fx(f*M,d,P.EPSILON15),L=w*I;L<0?g.push(new h(i,o*M,o*S)):L>0?g.push(new h(i,o*M,o*-S)):S!==0?(g.push(new h(i,o*M,o*-S)),g.push(new h(i,o*M,o*S)),++R):g.push(new h(i,o*M,o*S))}return g};var P6=new h,ate=new h,cte=new h,GV=new h,jDe=new h,qDe=new $,YDe=new $,XDe=new $,KDe=new $,ZDe=new $,lte=new $,ute=new $,fte=new h,$De=new h,QDe=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,P6);if(h.dot(i,D)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,P6),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,GV),c=h.normalize(h.cross(a,s,ate),ate),u=h.normalize(h.cross(s,c,cte),cte),f=qDe;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]=u.x,f[7]=u.y,f[8]=u.z;let d=$.transpose(f,YDe),p=$.fromScale(t.radii,XDe),g=$.fromScale(t.oneOverRadii,KDe),m=ZDe;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,lte),m,lte),b=$.multiply($.multiply(x,p,ute),f,ute),T=$.multiplyByVector(x,n,jDe),C=zo.quadraticVectorExpression(b,h.negate(T,P6),0,0,1),A,E,v=C.length;if(v>0){let D=h.clone(h.ZERO,$De),O=Number.NEGATIVE_INFINITY;for(let M=0;M<v;++M){A=$.multiplyByVector(p,$.multiplyByVector(f,C[M],fte),fte);let N=h.normalize(h.subtract(A,n,GV),GV),_=h.dot(N,i);_>O&&(O=_,D=h.clone(A,D))}let R=t.cartesianToCartographic(D,QDe);return O=P.clamp(O,0,1),E=h.magnitude(h.subtract(D,n,GV))*Math.sqrt(1-O*O),E=o?-E:E,R.height=E,t.cartographicToCartesian(R,new h)}};var JDe=new h;zo.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new h);let o=h.subtract(t,e,JDe),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,u=0;u+=s?1:0,u+=a?1:0,u+=c?1:0;let f,d;if((u===1||u===2)&&(f=new h,d=new h),u===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(u===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 $n=zo;function Us(e,t){this.normal=h.clone(e),this.distance=t}Us.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return l(n)?(h.clone(t,n.normal),n.distance=i,n):new Us(t,i)};var eIe=new h;Us.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,eIe),i=e.w;return l(t)?(h.clone(n,t.normal),t.distance=i,t):new Us(n,i)};Us.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var tIe=new h;Us.projectPointOntoPlane=function(e,t,n){l(n)||(n=new h);let i=Us.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,tIe);return h.subtract(t,o,n)};var nIe=new F,iIe=new oe,oIe=new h;Us.transform=function(e,t,n){let i=e.normal,o=e.distance,r=F.inverseTranspose(t,nIe),s=oe.fromElements(i.x,i.y,i.z,o,iIe);s=F.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,oIe);return s=oe.divideByScalar(s,h.magnitude(a),s),Us.fromCartesian4(s,n)};Us.clone=function(e,t){return l(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new Us(e.normal,e.distance)};Us.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};Us.ORIGIN_XY_PLANE=Object.freeze(new Us(h.UNIT_Z,0));Us.ORIGIN_YZ_PLANE=Object.freeze(new Us(h.UNIT_X,0));Us.ORIGIN_ZX_PLANE=Object.freeze(new Us(h.UNIT_Y,0));var cn=Us;var R6={};R6.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(!l(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)};R6.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,S,w,I){for(;S.length>=1;){let L=S[S.length-1];if(S.splice(S.length-1,1),_[L].numLiveTriangles>0)return L}for(;o<I;){if(_[o].numLiveTriangles>0)return++o,o-1;++o}return-1}function s(_,S,w,I,L,B,U){let V=-1,G,k=-1,W=0;for(;W<w.length;){let q=w[W];I[q].numLiveTriangles&&(G=0,L-I[q].timeStamp+2*I[q].numLiveTriangles<=S&&(G=L-I[q].timeStamp),(G>k||k===-1)&&(k=G,V=q)),++W}return V===-1?r(I,B,_,U):V}let a=t.length,c=0,u=0,f=t[u],d=a;if(l(n))c=n+1;else{for(;u<d;)f>c&&(c=f),++u,f=t[u];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let m=0;for(;u<d;)p[t[u]].vertexTriangles.push(m),++p[t[u]].numLiveTriangles,p[t[u+1]].vertexTriangles.push(m),++p[t[u+1]].numLiveTriangles,p[t[u+2]].vertexTriangles.push(m),++p[t[u+2]].numLiveTriangles,++m,u+=3;let x=0,b=i+1;o=1;let T=[],C=[],A,E,v=0,D=[],O=a/3,R=[];for(g=0;g<O;g++)R[g]=!1;let M,N;for(;x!==-1;){T=[],E=p[x],N=E.vertexTriangles.length;for(let _=0;_<N;++_)if(m=E.vertexTriangles[_],!R[m]){R[m]=!0,u=m+m+m;for(let S=0;S<3;++S)M=t[u],T.push(M),C.push(M),D[v]=M,++v,A=p[M],--A.numLiveTriangles,b-A.timeStamp>i&&(A.timeStamp=b,++b),++u}x=s(t,i,T,p,b,C,c)}return D};var bw=R6;var Bc={};function ZV(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function rIe(e){let t=e.length,n=t/3*6,i=Ne.createTypedArray(t,n),o=0;for(let r=0;r<t;r+=3,o+=6)ZV(i,o,e[r],e[r+1],e[r+2]);return i}function sIe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=Ne.createTypedArray(t,n);ZV(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r<t;++r,o+=6)ZV(i,o,e[r-1],e[r],e[r-2]);return i}return new Uint16Array}function aIe(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=Ne.createTypedArray(t,n),o=e[0],r=0;for(let s=1;s<t;++s,r+=6)ZV(i,r,o,e[s],e[s+1]);return i}return new Uint16Array}Bc.toWireframe=function(e){let t=e.indices;if(l(t)){switch(e.primitiveType){case Me.TRIANGLES:e.indices=rIe(t);break;case Me.TRIANGLE_STRIP:e.indices=sIe(t);break;case Me.TRIANGLE_FAN:e.indices=aIe(t);break}e.primitiveType=Me.LINES}return e};Bc.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,u=e.boundingSphere;return l(u)&&(c=new se(u.center,u.radius+n)),new at({attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Me.LINES,boundingSphere:c})};Bc.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];l(n[a])&&(i[a]=o++)}for(let a in n)n.hasOwnProperty(a)&&!l(i[a])&&(i[a]=o++);return i};Bc.reorderForPreVertexCache=function(e){let t=at.computeNumberOfVertices(e),n=e.indices;if(l(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let o=n,r=o.length,s=Ne.createTypedArray(t,r),a=0,c=0,u=0,f;for(;a<r;)f=i[o[a]],f!==-1?s[c]=f:(f=o[a],i[f]=u,s[c]=u,++u),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&l(d[p])&&l(d[p].values)){let g=d[p],m=g.values,x=0,b=g.componentsPerAttribute,T=X.createTypedArray(g.componentDatatype,u*b);for(;x<t;){let C=i[x];if(C!==-1)for(let A=0;A<b;A++)T[b*C+A]=m[b*x+A];++x}g.values=T}}return e};Bc.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Me.TRIANGLES&&l(n)){let i=n.length,o=0;for(let r=0;r<i;r++)n[r]>o&&(o=n[r]);e.indices=bw.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function mte(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new Se({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function cIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(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])}}Bc.fitToUnsignedShortIndices=function(e){let t=[],n=at.computeNumberOfVertices(e);if(l(e.indices)&&n>=P.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=mte(e.attributes),a=e.indices,c=a.length,u;e.primitiveType===Me.TRIANGLES?u=3:e.primitiveType===Me.LINES?u=2:e.primitiveType===Me.POINTS&&(u=1);for(let f=0;f<c;f+=u){for(let d=0;d<u;++d){let p=a[f+d],g=i[p];l(g)||(g=r++,i[p]=g,cIe(s,e.attributes,p)),o.push(g)}r+u>=P.SIXTY_FOUR_KILOBYTES&&(t.push(new at({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=mte(e.attributes))}o.length!==0&&t.push(new at({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var pte=new h,lIe=new fe;Bc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new vi;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),u=0;for(let f=0;f<a.length;f+=3){let d=h.fromArray(a,f,pte),p=s.cartesianToCartographic(d,lIe),g=o.project(p,pte);c[u++]=g.x,c[u++]=g.y,c[u++]=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 O6={high:0,low:0};Bc.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)Gn.encode(r[f],O6),a[f]=O6.high,c[f]=O6.low;let u=o.componentsPerAttribute;return e.attributes[n]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:a}),e.attributes[i]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:c}),delete e.attributes[t],e};var Id=new h;function M6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,Id),F.multiplyByPoint(e,Id,Id),h.pack(Id,n,o)}}function L6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,Id),$.multiplyByVector(e,Id,Id),Id=h.normalize(Id,Id),h.pack(Id,n,o)}}var WV=new F,jV=new $;Bc.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(F.equals(t,F.IDENTITY))return e;let n=e.geometry.attributes;M6(t,n.position),M6(t,n.prevPosition),M6(t,n.nextPosition),(l(n.normal)||l(n.tangent)||l(n.bitangent))&&(F.inverse(t,WV),F.transpose(WV,WV),F.getMatrix3(WV,jV),L6(jV,n.normal),L6(jV,n.tangent),L6(jV,n.bitangent));let i=e.geometry.boundingSphere;return l(i)&&(e.geometry.boundingSphere=se.transform(i,t,i)),e.modelMatrix=F.clone(F.IDENTITY),e};function uIe(e,t){let n=e.length,i={},o=e[0][t].attributes,r;for(r in o)if(o.hasOwnProperty(r)&&l(o[r])&&l(o[r].values)){let s=o[r],a=s.values.length,c=!0;for(let u=1;u<n;++u){let f=e[u][t].attributes[r];if(!l(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 fIe=new h;function N6(e,t){let n=e.length,i,o,r,s,a=e[0].modelMatrix,c=l(e[0][t].indices),u=e[0][t].primitiveType,f=uIe(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 C=0;for(o=0;o<n;++o)C+=e[o][t].indices.length;let A=at.computeNumberOfVertices(new at({attributes:f,primitiveType:Me.POINTS})),E=Ne.createTypedArray(A,C),v=0,D=0;for(o=0;o<n;++o){let O=e[o][t].indices,R=O.length;for(s=0;s<R;++s)E[v++]=D+O[s];D+=at.computeNumberOfVertices(e[o][t])}m=E}let x=new h,b=0,T;for(o=0;o<n;++o){if(T=e[o][t].boundingSphere,!l(T)){x=void 0;break}h.add(T.center,x,x)}if(l(x))for(h.divideByScalar(x,n,x),o=0;o<n;++o){T=e[o][t].boundingSphere;let C=h.magnitude(h.subtract(T.center,x,fIe))+T.radius;C>b&&(b=C)}return new at({attributes:f,indices:m,primitiveType:u,boundingSphere:l(x)?new se(x,b):void 0})}Bc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let s=e[r];l(s.geometry)?t.push(s):l(s.westHemisphereGeometry)&&l(s.eastHemisphereGeometry)&&n.push(s)}let o=[];return t.length>0&&o.push(N6(t,"geometry")),n.length>0&&(o.push(N6(n,"westHemisphereGeometry")),o.push(N6(n,"eastHemisphereGeometry"))),o};var yf=new h,Tw=new h,qC=new h,YC=new h;Bc.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),u;for(u=0;u<o;u++)s[u]={indexOffset:0,count:0,currentCount:0};let f=0;for(u=0;u<r;u+=3){let m=t[u],x=t[u+1],b=t[u+2],T=m*3,C=x*3,A=b*3;Tw.x=i[T],Tw.y=i[T+1],Tw.z=i[T+2],qC.x=i[C],qC.y=i[C+1],qC.z=i[C+2],YC.x=i[A],YC.y=i[A+1],YC.z=i[A+2],s[m].count++,s[x].count++,s[b].count++,h.subtract(qC,Tw,qC),h.subtract(YC,Tw,YC),a[f]=h.cross(qC,YC,new h),f++}let d=0;for(u=0;u<o;u++)s[u].indexOffset+=d,d+=s[u].count;f=0;let p;for(u=0;u<r;u+=3){p=s[t[u]];let m=p.indexOffset+p.currentCount;c[m]=f,p.currentCount++,p=s[t[u+1]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,p=s[t[u+2]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,f++}let g=new Float32Array(o*3);for(u=0;u<o;u++){let m=u*3;if(p=s[u],h.clone(h.ZERO,yf),p.count>0){for(f=0;f<p.count;f++)h.add(yf,a[c[p.indexOffset+f]],yf);h.equalsEpsilon(h.ZERO,yf,P.EPSILON10)&&h.clone(a[c[p.indexOffset]],yf)}h.equalsEpsilon(h.ZERO,yf,P.EPSILON10)&&(yf.z=1),h.normalize(yf,yf),g[m]=yf.x,g[m+1]=yf.y,g[m+2]=yf.z}return e.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var dIe=new h,_te=new h,hIe=new h;Bc.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),u;for(u=0;u<c.length;u++)c[u]=0;let f,d,p;for(u=0;u<a;u+=3){let x=n[u],b=n[u+1],T=n[u+2];f=x*3,d=b*3,p=T*3;let C=x*2,A=b*2,E=T*2,v=i[f],D=i[f+1],O=i[f+2],R=r[C],M=r[C+1],N=r[A+1]-M,_=r[E+1]-M,S=1/((r[A]-R)*_-(r[E]-R)*N),w=(_*(i[d]-v)-N*(i[p]-v))*S,I=(_*(i[d+1]-D)-N*(i[p+1]-D))*S,L=(_*(i[d+2]-O)-N*(i[p+2]-O))*S;c[f]+=w,c[f+1]+=I,c[f+2]+=L,c[d]+=w,c[d+1]+=I,c[d+2]+=L,c[p]+=w,c[p+1]+=I,c[p+2]+=L}let g=new Float32Array(s*3),m=new Float32Array(s*3);for(u=0;u<s;u++){f=u*3,d=f+1,p=f+2;let x=h.fromArray(o,f,dIe),b=h.fromArray(c,f,hIe),T=h.dot(x,b);h.multiplyByScalar(x,T,_te),h.normalize(h.subtract(b,_te,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 Cw=new z,Dd=new h,gte=new h,yte=new h,qV=new z;Bc.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(l(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,Dd),h.equals(Dd,h.ZERO)){R+=2;continue}qV=Mn.octEncodeInRange(Dd,65535,qV),O[R++]=qV.x,O[R++]=qV.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=l(o),a=l(r);if(!s&&!a)return e;let c=e.attributes.tangent,u=e.attributes.bitangent,f=l(c),d=l(u),p,g,m,x;s&&(p=o.values),a&&(g=r.values),f&&(m=c.values),d&&(x=u.values),i=(s?p.length:g.length)/(s?3:2);let C=i,A=a&&s?2:1;A+=f||d?1:0,C*=A;let E=new Float32Array(C),v=0;for(n=0;n<i;++n){a&&(z.fromArray(g,n*2,Cw),E[v++]=Mn.compressTextureCoordinates(Cw));let D=n*3;s&&l(m)&&l(x)?(h.fromArray(p,D,Dd),h.fromArray(m,D,gte),h.fromArray(x,D,yte),Mn.octPack(Dd,gte,yte,Cw),E[v++]=Cw.x,E[v++]=Cw.y):(s&&(h.fromArray(p,D,Dd),E[v++]=Mn.octEncodeFloat(Dd)),f&&(h.fromArray(m,D,Dd),E[v++]=Mn.octEncodeFloat(Dd)),d&&(h.fromArray(x,D,Dd),E[v++]=Mn.octEncodeFloat(Dd)))}return e.attributes.compressedAttributes=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:A,values:E}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function mIe(e){if(l(e.indices))return e;let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function pIe(e){let t=at.computeNumberOfVertices(e),n=Ne.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=Me.TRIANGLES,e}function _Ie(e){let t=at.computeNumberOfVertices(e),n=Ne.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=Me.TRIANGLES,e}function gIe(e){if(l(e.indices))return e;let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function yIe(e){let t=at.computeNumberOfVertices(e),n=Ne.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=Me.LINES,e}function xIe(e){let t=at.computeNumberOfVertices(e),n=Ne.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=Me.LINES,e}function bIe(e){switch(e.primitiveType){case Me.TRIANGLE_FAN:return pIe(e);case Me.TRIANGLE_STRIP:return _Ie(e);case Me.TRIANGLES:return mIe(e);case Me.LINE_STRIP:return yIe(e);case Me.LINE_LOOP:return xIe(e);case Me.LINES:return gIe(e)}return e}function Ng(e,t){Math.abs(e.y)<P.EPSILON6&&(t?e.y=-P.EPSILON6:e.y=P.EPSILON6)}function TIe(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){Ng(e,e.y<0),Ng(t,t.y<0),Ng(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;Ng(e,a),Ng(t,a),Ng(n,a)}var xte=new h;function xf(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,xte),e.y/(e.y-t.y),xte),n),h.clone(n,i),Ng(n,!0),Ng(i,!1)}var dx=new h,hx=new h,mx=new h,px=new h,F6={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;TIe(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=F6.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(xf(e,t,dx,mx),xf(e,n,hx,px),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(xf(t,n,dx,mx),xf(t,e,hx,px),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(xf(n,e,dx,mx),xf(n,t,hx,px),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||(xf(n,e,dx,mx),xf(n,t,hx,px),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(xf(t,n,dx,mx),xf(t,e,hx,px),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(xf(e,t,dx,mx),xf(e,n,hx,px),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=F6.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=dx,c[4]=hx,c[5]=mx,c[6]=px,c.length=7),F6}function bte(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=at.computeNumberOfVertices(e);return e.indices=Ne.createTypedArray(i,e.indices),t&&(e.boundingSphere=se.fromVertices(n.position.values)),e}function KC(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new Se({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new at({attributes:n,indices:[],primitiveType:e.primitiveType})}function U6(e,t,n){let i=l(e.geometry.boundingSphere);t=bte(t,i),n=bte(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function z6(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,u,f,d,p){let g=e.fromArray(u,r*t,n),m=e.fromArray(u,s*t,i),x=e.fromArray(u,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 AIe=z6(oe,4),KV=z6(h,3),vte=z6(z,2),EIe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,u=o[n]*i.z;r[s]=a+c+u>P.EPSILON6?1:0},Aw=new h,B6=new h,k6=new h,SIe=new h;function YV(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(u)&&g===0)return;let b=h.fromArray(o,e*3,Aw),T=h.fromArray(o,t*3,B6),C=h.fromArray(o,n*3,k6),A=lx(i,b,T,C,SIe);if(l(A)){if(l(r)&&KV(e,t,n,A,r,d.normal.values,x,!0),l(u)){let E=h.fromArray(u,e*3,Aw),v=h.fromArray(u,t*3,B6),D=h.fromArray(u,n*3,k6);h.multiplyByScalar(E,A.x,E),h.multiplyByScalar(v,A.y,v),h.multiplyByScalar(D,A.z,D);let O;!h.equals(E,h.ZERO)||!h.equals(v,h.ZERO)||!h.equals(D,h.ZERO)?(O=h.add(E,v,E),h.add(O,D,O),h.normalize(O,O)):(O=Aw,O.x=0,O.y=0,O.z=0),h.pack(O,d.extrudeDirection.values,x*3)}if(l(f)&&EIe(e,t,n,A,f,d.applyOffset.values,x),l(s)&&KV(e,t,n,A,s,d.tangent.values,x,!0),l(a)&&KV(e,t,n,A,a,d.bitangent.values,x,!0),l(c)&&vte(e,t,n,A,c,d.st.values,x),g>0)for(let E=0;E<g;E++){let v=p[E];vIe(e,t,n,A,x,m[v],d[v])}}}function vIe(e,t,n,i,o,r,s){let a=r.componentsPerAttribute,c=r.values,u=s.values;switch(a){case 4:AIe(e,t,n,i,c,u,o,!1);break;case 3:KV(e,t,n,i,c,u,o,!1);break;case 2:vte(e,t,n,i,c,u,o,!1);break;default:u[o]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function om(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 wIe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function Tte(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.normal)?n.normal.values:void 0,r=l(n.bitangent)?n.bitangent.values:void 0,s=l(n.tangent)?n.tangent.values:void 0,a=l(n.st)?n.st.values:void 0,c=l(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=l(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let O in n)n.hasOwnProperty(O)&&!wIe[O]&&l(n[O])&&d.push(O);let p=d.length,g=KC(t),m=KC(t),x,b,T,C,A,E=[];E.length=i.length/3;let v=[];for(v.length=i.length/3,A=0;A<E.length;++A)E[A]=-1,v[A]=-1;let D=f.length;for(A=0;A<D;A+=3){let O=f[A],R=f[A+1],M=f[A+2],N=h.fromArray(i,O*3),_=h.fromArray(i,R*3),S=h.fromArray(i,M*3),w=CIe(N,_,S);if(l(w)&&w.positions.length>3){let I=w.positions,L=w.indices,B=L.length;for(let U=0;U<B;++U){let V=L[U],G=I[V];G.y<0?(x=m.attributes,b=m.indices,T=E):(x=g.attributes,b=g.indices,T=v),C=om(x,b,T,f,V<3?A+V:-1,G),YV(O,R,M,G,i,o,s,r,a,c,u,x,d,p,n,C)}}else l(w)&&(N=w.positions[0],_=w.positions[1],S=w.positions[2]),N.y<0?(x=m.attributes,b=m.indices,T=E):(x=g.attributes,b=g.indices,T=v),C=om(x,b,T,f,A,N),YV(O,R,M,N,i,o,s,r,a,c,u,x,d,p,n,C),C=om(x,b,T,f,A+1,_),YV(O,R,M,_,i,o,s,r,a,c,u,x,d,p,n,C),C=om(x,b,T,f,A+2,S),YV(O,R,M,S,i,o,s,r,a,c,u,x,d,p,n,C)}U6(e,m,g)}var wte=cn.fromPointNormal(h.ZERO,h.UNIT_Y),DIe=new h,IIe=new h;function XC(e,t,n,i,o,r,s){if(!l(s))return;let a=h.fromArray(i,e*3,Aw);h.equalsEpsilon(a,n,P.EPSILON10)?r.applyOffset.values[o]=s[e]:r.applyOffset.values[o]=s[t]}function Cte(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.applyOffset)?n.applyOffset.values:void 0,r=t.indices,s=KC(t),a=KC(t),c,u=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<u;c+=2){let p=r[c],g=r[c+1],m=h.fromArray(i,p*3,Aw),x=h.fromArray(i,g*3,B6),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,C=s.indices,A=d,E=a.attributes,v=a.indices,D=f,O=$n.lineSegmentPlane(m,x,wte,k6);if(l(O)){let R=h.multiplyByScalar(h.UNIT_Y,5*P.EPSILON9,DIe);m.y<0&&(h.negate(R,R),T=a.attributes,C=a.indices,A=f,E=s.attributes,v=s.indices,D=d);let M=h.add(O,R,IIe);b=om(T,C,A,r,c,m),XC(p,g,m,i,b,T,o),b=om(T,C,A,r,-1,M),XC(p,g,M,i,b,T,o),h.negate(R,R),h.add(O,R,M),b=om(E,v,D,r,-1,M),XC(p,g,M,i,b,E,o),b=om(E,v,D,r,c+1,x),XC(p,g,x,i,b,E,o)}else{let R,M,N;m.y<0?(R=a.attributes,M=a.indices,N=f):(R=s.attributes,M=s.indices,N=d),b=om(R,M,N,r,c,m),XC(p,g,m,i,b,R,o),b=om(R,M,N,r,c+1,x),XC(p,g,x,i,b,R,o)}}U6(e,a,s)}var Ate=new z,PIe=new z,Dte=new h,Ite=new h,V6=new h,RIe=new h,OIe=new h,MIe=new h,Ete=new oe;function Ste(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,Dte);if(a.x>0)continue;let c=h.unpack(i,s,Ite);(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 u=h.unpack(o,s,V6);(a.y<0&&u.y>0||a.y>0&&u.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 LIe=5*P.EPSILON9,XV=P.EPSILON6;function NIe(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=l(n.st)?n.st.values:void 0,c=l(n.color)?n.color.values:void 0,u=KC(t),f=KC(t),d,p,g,m=!1,x=i.length/3;for(d=0;d<x;d+=4){let b=d,T=d+2,C=h.fromArray(i,b*3,Dte),A=h.fromArray(i,T*3,Ite);if(Math.abs(C.y)<XV)for(C.y=XV*(A.y<0?-1:1),i[d*3+1]=C.y,i[(d+1)*3+1]=C.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(A.y)<XV)for(A.y=XV*(C.y<0?-1:1),i[(d+2)*3+1]=A.y,i[(d+3)*3+1]=A.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 E=u.attributes,v=u.indices,D=f.attributes,O=f.indices,R=$n.lineSegmentPlane(C,A,wte,RIe);if(l(R)){m=!0;let M=h.multiplyByScalar(h.UNIT_Y,LIe,OIe);C.y<0&&(h.negate(M,M),E=f.attributes,v=f.indices,D=u.attributes,O=u.indices);let N=h.add(R,M,MIe);E.position.values.push(C.x,C.y,C.z,C.x,C.y,C.z),E.position.values.push(N.x,N.y,N.z),E.position.values.push(N.x,N.y,N.z),E.prevPosition.values.push(o[b*3],o[b*3+1],o[b*3+2]),E.prevPosition.values.push(o[b*3+3],o[b*3+4],o[b*3+5]),E.prevPosition.values.push(C.x,C.y,C.z,C.x,C.y,C.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),h.negate(M,M),h.add(R,M,N),D.position.values.push(N.x,N.y,N.z),D.position.values.push(N.x,N.y,N.z),D.position.values.push(A.x,A.y,A.z,A.x,A.y,A.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.nextPosition.values.push(A.x,A.y,A.z,A.x,A.y,A.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 _=z.fromArray(s,b*2,Ate),S=Math.abs(_.y);E.expandAndWidth.values.push(-1,S,1,S),E.expandAndWidth.values.push(-1,-S,1,-S),D.expandAndWidth.values.push(-1,S,1,S),D.expandAndWidth.values.push(-1,-S,1,-S);let w=h.magnitudeSquared(h.subtract(R,C,V6));if(w/=h.magnitudeSquared(h.subtract(A,C,V6)),l(c)){let I=oe.fromArray(c,b*4,Ete),L=oe.fromArray(c,T*4,Ete),B=P.lerp(I.x,L.x,w),U=P.lerp(I.y,L.y,w),V=P.lerp(I.z,L.z,w),G=P.lerp(I.w,L.w,w);for(p=b*4;p<b*4+2*4;++p)E.color.values.push(c[p]);for(E.color.values.push(B,U,V,G),E.color.values.push(B,U,V,G),D.color.values.push(B,U,V,G),D.color.values.push(B,U,V,G),p=T*4;p<T*4+2*4;++p)D.color.values.push(c[p])}if(l(a)){let I=z.fromArray(a,b*2,Ate),L=z.fromArray(a,(d+3)*2,PIe),B=P.lerp(I.x,L.x,w);for(p=b*2;p<b*2+2*2;++p)E.st.values.push(a[p]);for(E.st.values.push(B,I.y),E.st.values.push(B,L.y),D.st.values.push(B,I.y),D.st.values.push(B,L.y),p=T*2;p<T*2+2*2;++p)D.st.values.push(a[p])}g=E.position.values.length/3-4,v.push(g,g+2,g+1),v.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 M,N;for(C.y<0?(M=f.attributes,N=f.indices):(M=u.attributes,N=u.indices),M.position.values.push(C.x,C.y,C.z),M.position.values.push(C.x,C.y,C.z),M.position.values.push(A.x,A.y,A.z),M.position.values.push(A.x,A.y,A.z),p=d*3;p<d*3+4*3;++p)M.prevPosition.values.push(o[p]),M.nextPosition.values.push(r[p]);for(p=d*2;p<d*2+4*2;++p)M.expandAndWidth.values.push(s[p]),l(a)&&M.st.values.push(a[p]);if(l(c))for(p=d*4;p<d*4+4*4;++p)M.color.values.push(c[p]);g=M.position.values.length/3-4,N.push(g,g+2,g+1),N.push(g+1,g+2,g+3)}}m&&(Ste(f),Ste(u)),U6(e,f,u)}Bc.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(l(n)&&(n.center.x-n.radius>0||se.intersectPlane(n,cn.ORIGIN_ZX_PLANE)!==jt.INTERSECTING))return e;if(t.geometryType!==gf.NONE)switch(t.geometryType){case gf.POLYLINES:NIe(e);break;case gf.TRIANGLES:Tte(e);break;case gf.LINES:Cte(e);break}else bIe(t),t.primitiveType===Me.TRIANGLES?Tte(e):t.primitiveType===Me.LINES&&Cte(e);return e};var Ln=Bc;function Ew(e,t,n,i,o,r,s,a,c,u,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=u,this._initialized=f}Object.defineProperties(Ew.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});Ew.prototype.copyFrom=function(e){let{xOffset:t=0,yOffset:n=0,source:i,skipColorSpaceConversion:o=!1}=e,{width:r,height:s}=i,a=this._context._gl,c=this._textureTarget,u=this._targetFace;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture);let f=i.arrayBufferView,d=this._size,p=this._pixelFormat,g=this._internalFormat,m=this._pixelDatatype,x=this._preMultiplyAlpha,b=this._flipY,T=4;l(f)&&(T=Je.alignmentInBytes(p,m,r)),a.pixelStorei(a.UNPACK_ALIGNMENT,T),o?a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.NONE):a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.BROWSER_DEFAULT_WEBGL);let C=!1;if(!this._initialized){let A;t===0&&n===0&&r===d&&s===d?(l(f)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),b&&(f=Je.flipY(f,p,m,d,d)),A=f):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b),A=i),C=!0):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),A=Je.createTypedArray(p,m,d,d)),a.texImage2D(u,0,g,d,d,0,p,Ke.toWebGLConstant(m,this._context),A),this._initialized=!0}C||(l(f)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),b&&(f=Je.flipY(f,p,m,r,s)),a.texSubImage2D(u,0,t,n,r,s,p,Ke.toWebGLConstant(m,this._context),f)):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b),a.texSubImage2D(u,0,t,n,p,Ke.toWebGLConstant(m,this._context),i))),a.bindTexture(c,null)};Ew.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};Ew.prototype.copyMipmapFromFramebuffer=function(e,t,n,i,o){e=y(e,0),t=y(t,0),n=y(n,this._size),i=y(i,this._size),o=y(o,0);let r=this._context._gl,s=this._textureTarget;r.activeTexture(r.TEXTURE0),r.bindTexture(s,this._texture),r.copyTexImage2D(this._targetFace,o,this._internalFormat,e,t,n,i,0),r.bindTexture(s,null),this._initialized=!0};var Sw=Ew;var $V={DONT_CARE:te.DONT_CARE,FASTEST:te.FASTEST,NICEST:te.NICEST,validate:function(e){return e===$V.DONT_CARE||e===$V.FASTEST||e===$V.NICEST}},rm=Object.freeze($V);var QV={NEAREST:te.NEAREST,LINEAR:te.LINEAR};QV.validate=function(e){return e===QV.NEAREST||e===QV.LINEAR};var di=Object.freeze(QV);var Fg={NEAREST:te.NEAREST,LINEAR:te.LINEAR,NEAREST_MIPMAP_NEAREST:te.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:te.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:te.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:te.LINEAR_MIPMAP_LINEAR};Fg.validate=function(e){return e===Fg.NEAREST||e===Fg.LINEAR||e===Fg.NEAREST_MIPMAP_NEAREST||e===Fg.LINEAR_MIPMAP_NEAREST||e===Fg.NEAREST_MIPMAP_LINEAR||e===Fg.LINEAR_MIPMAP_LINEAR};var Zt=Object.freeze(Fg);var JV={CLAMP_TO_EDGE:te.CLAMP_TO_EDGE,REPEAT:te.REPEAT,MIRRORED_REPEAT:te.MIRRORED_REPEAT,validate:function(e){return e===JV.CLAMP_TO_EDGE||e===JV.REPEAT||e===JV.MIRRORED_REPEAT}},Tn=Object.freeze(JV);function vw(e){e=y(e,y.EMPTY_OBJECT);let{wrapS:t=Tn.CLAMP_TO_EDGE,wrapT:n=Tn.CLAMP_TO_EDGE,minificationFilter:i=Zt.LINEAR,magnificationFilter:o=di.LINEAR,maximumAnisotropy:r=1}=e;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties(vw.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}}});vw.equals=function(e,t){return e===t||l(e)&&l(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};vw.NEAREST=Object.freeze(new vw({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST}));var $t=vw;function FIe(e,t,n,i){let o=l(t.vertexBuffer),r=l(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 u=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(u,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(u),this.instanceDivisor>0&&(i.glVertexAttribDivisor(u,this.instanceDivisor),i._vertexAttribDivisors[u]=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 Rte(e,t,n){for(let i=0;i<t.length;++i){let o=t[i];o.enabled&&o.vertexAttrib(e)}l(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function vp(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,u=!1,f=i.length;for(r=0;r<f;++r)FIe(s,i[r],r,t);for(f=s.length,r=0;r<f;++r){let p=s[r];if(l(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),l(s[r].value)&&(u=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),Rte(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=u,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function Pte(e){return e.values.length/e.componentsPerAttribute}function BIe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function kIe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(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=Pte(e[o[0]]),t=1;t<s;++t){let u=Pte(e[o[t]]);if(u!==r)throw new ce(`Each attribute list must have the same number of vertices.  Attribute ${o[t]} has a different number of vertices (${u.toString()}) than attribute ${o[0]} (${r.toString()}).`)}o.sort(function(u,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[u].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=o[t],i=e[n],c[n]=a,a+=BIe(i);if(a>0){let u=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%u;f!==0&&(a+=u-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,C=i.componentsPerAttribute;for(let A=0;A<C;++A)T[b.index+A]=x[t*C+A];b.index+=b.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}vp.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Fe.DYNAMIC_DRAW),o=y(e.attributeLocations,y.EMPTY_OBJECT),r=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,u,f=l(s)?s:[],d=n.attributes;if(r){let m=kIe(d);if(l(m)){u=_t.createVertexBuffer({context:t,typedArray:m.buffer,usage:i});let x=m.offsetsInBytes,b=m.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&l(d[a])&&(c=d[a],l(c.values)?f.push({index:o[a],vertexBuffer:u,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)&&l(d[a])){c=d[a];let m=c.componentDatatype;m===X.DOUBLE&&(m=X.FLOAT),u=void 0,l(c.values)&&(u=_t.createVertexBuffer({context:t,typedArray:X.createTypedArray(m,c.values),usage:i})),f.push({index:o[a],vertexBuffer:u,value:c.value,componentDatatype:m,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return l(g)&&(at.computeNumberOfVertices(n)>=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=_t.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ne.UNSIGNED_INT}):p=_t.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ne.UNSIGNED_SHORT})),new vp({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(vp.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});vp.prototype.getAttribute=function(e){return this._attributes[e]};function VIe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=kt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s<a;++s){let c=o[s];if(c.enabled){let u=c.instanceDivisor,f=c.index;u!==i[f]&&(t.glVertexAttribDivisor(f,u),i[f]=u)}}}else for(s=0;s<r;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function UIe(e,t){let n=e._attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];r.enabled&&l(r.value)&&r.vertexAttrib(t)}}vp.prototype._bind=function(){l(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&VIe(this),this._hasConstantAttributes&&UIe(this,this._gl)):Rte(this._gl,this._attributes,this._indexBuffer)};vp.prototype._unBind=function(){if(l(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)}};vp.prototype.isDestroyed=function(){return!1};vp.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;l(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return l(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),l(this._vao)&&this._context.glDeleteVertexArray(this._vao),ue(this)};var ti=vp;function $o(e){e=y(e,y.EMPTY_OBJECT);let{context:t,source:n,pixelFormat:i=Je.RGBA,pixelDatatype:o=Ke.UNSIGNED_BYTE,flipY:r=!0,skipColorSpaceConversion:s=!1,sampler:a=new $t}=e,c=e.preMultiplyAlpha||i===Je.RGB||i===Je.LUMINANCE,{width:u,height:f}=e;l(n)&&({width:u,height:f}=n.positiveX);let d=u,p=Je.textureSizeInBytes(i,o,d,d)*6,g=Je.toInternalFormat(i,o,t),m=t._gl,x=m.TEXTURE_CUBE_MAP,b=m.createTexture();this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=x,this._texture=b,this._pixelFormat=i,this._pixelDatatype=o,this._size=d,this._hasMipmap=!1,this._sizeInBytes=p,this._preMultiplyAlpha=c,this._flipY=r;let T=l(n);function C(A){return new Sw(t,b,x,A,g,i,o,d,c,r,T)}this._positiveX=C(m.TEXTURE_CUBE_MAP_POSITIVE_X),this._negativeX=C(m.TEXTURE_CUBE_MAP_NEGATIVE_X),this._positiveY=C(m.TEXTURE_CUBE_MAP_POSITIVE_Y),this._negativeY=C(m.TEXTURE_CUBE_MAP_NEGATIVE_Y),this._positiveZ=C(m.TEXTURE_CUBE_MAP_POSITIVE_Z),this._negativeZ=C(m.TEXTURE_CUBE_MAP_NEGATIVE_Z),this._sampler=a,Ote(this,a),m.activeTexture(m.TEXTURE0),m.bindTexture(x,b),s?m.pixelStorei(m.UNPACK_COLORSPACE_CONVERSION_WEBGL,m.NONE):m.pixelStorei(m.UNPACK_COLORSPACE_CONVERSION_WEBGL,m.BROWSER_DEFAULT_WEBGL);for(let A of $o.faceNames())H6(this[A],n?.[A],0);m.bindTexture(x,null)}$o.prototype.copyFace=function(e,t,n,i){let o=e.context,r=new Mr({context:o,colorTextures:[t],destroyAttachments:!1});r._bind(),this[n].copyMipmapFromFramebuffer(0,0,t.width,t.height,y(i,0)),r._unBind(),r.destroy()};$o.FaceName=Object.freeze({POSITIVEX:"positiveX",NEGATIVEX:"negativeX",POSITIVEY:"positiveY",NEGATIVEY:"negativeY",POSITIVEZ:"positiveZ",NEGATIVEZ:"negativeZ"});function*zIe(){yield $o.FaceName.POSITIVEX,yield $o.FaceName.NEGATIVEX,yield $o.FaceName.POSITIVEY,yield $o.FaceName.NEGATIVEY,yield $o.FaceName.POSITIVEZ,yield $o.FaceName.NEGATIVEZ}$o.faceNames=function(){return zIe()};function H6(e,t,n){n=y(n,0);let i=e._targetFace,o=Math.max(Math.floor(e._size/2**n),1),r=e._pixelFormat,s=e._pixelDatatype,a=e._internalFormat,c=e._flipY,u=e._preMultiplyAlpha,f=e._context,d=f._gl;if(!l(t)){d.texImage2D(i,n,a,o,o,0,r,Ke.toWebGLConstant(s,f),null);return}let{arrayBufferView:p}=t,g=4;l(p)&&(g=Je.alignmentInBytes(r,s,o)),d.pixelStorei(d.UNPACK_ALIGNMENT,g),l(p)?(d.pixelStorei(d.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,!1),c&&(p=Je.flipY(p,r,s,o,o)),d.texImage2D(i,n,a,o,o,0,r,Ke.toWebGLConstant(s,f),p)):(d.pixelStorei(d.UNPACK_PREMULTIPLY_ALPHA_WEBGL,u),d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,c),d.texImage2D(i,n,a,r,Ke.toWebGLConstant(s,f),t))}$o.loadFace=H6;Object.defineProperties($o.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){Ote(this,e),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}}});$o.getDirection=function(e,t){switch(e){case $o.FaceName.POSITIVEX:return h.clone(h.UNIT_X,t);case $o.FaceName.NEGATIVEX:return h.negate(h.UNIT_X,t);case $o.FaceName.POSITIVEY:return h.clone(h.UNIT_Y,t);case $o.FaceName.NEGATIVEY:return h.negate(h.UNIT_Y,t);case $o.FaceName.POSITIVEZ:return h.clone(h.UNIT_Z,t);case $o.FaceName.NEGATIVEZ:return h.negate(h.UNIT_Z,t)}};function Ote(e,t){let{minificationFilter:n,magnificationFilter:i}=t,o=[Zt.NEAREST_MIPMAP_NEAREST,Zt.NEAREST_MIPMAP_LINEAR,Zt.LINEAR_MIPMAP_NEAREST,Zt.LINEAR_MIPMAP_LINEAR].includes(n),r=e._context,s=e._pixelDatatype;(s===Ke.FLOAT&&!r.textureFloatLinear||s===Ke.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(n=o?Zt.NEAREST_MIPMAP_NEAREST:Zt.NEAREST,i=di.NEAREST);let a=r._gl,c=e._textureTarget;a.activeTexture(a.TEXTURE0),a.bindTexture(c,e._texture),a.texParameteri(c,a.TEXTURE_MIN_FILTER,n),a.texParameteri(c,a.TEXTURE_MAG_FILTER,i),a.texParameteri(c,a.TEXTURE_WRAP_S,t.wrapS),a.texParameteri(c,a.TEXTURE_WRAP_T,t.wrapT),l(e._textureFilterAnisotropic)&&a.texParameteri(c,e._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.maximumAnisotropy),a.bindTexture(c,null)}$o.prototype.loadMipmaps=function(e,t){t=y(t,!1);let n=this._context._gl,i=this._texture,o=this._textureTarget;n.activeTexture(n.TEXTURE0),n.bindTexture(o,i),t?n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE):n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.BROWSER_DEFAULT_WEBGL);for(let r=0;r<e.length;r++){let s=e[r],a=r+1;for(let c of $o.faceNames())H6(this[c],s[c],a)}n.bindTexture(o,null),this._hasMipmap=!0};$o.prototype.generateMipmap=function(e){e=y(e,rm.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)};$o.createVertexArray=function(e){let t=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY})),n=this._attributeLocations=Ln.createAttributeLocations(t);return ti.fromGeometry({context:e,geometry:t,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW})};$o.prototype.isDestroyed=function(){return!1};$o.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=ue(this._positiveX),this._negativeX=ue(this._negativeX),this._positiveY=ue(this._positiveY),this._negativeY=ue(this._negativeY),this._positiveZ=ue(this._positiveZ),this._negativeZ=ue(this._negativeZ),ue(this)};var br=$o;function HIe(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var ic=HIe;var ww=`/**
 * 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 Dw=`/**
 * 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 Iw=`/**
 * 0.1
 *
 * @name czm_epsilon1
 * @glslConstant
 */
const float czm_epsilon1 = 0.1;
`;var Pw=`/**
 * 0.01
 *
 * @name czm_epsilon2
 * @glslConstant
 */
const float czm_epsilon2 = 0.01;
`;var Rw=`/**
 * 0.001
 *
 * @name czm_epsilon3
 * @glslConstant
 */
const float czm_epsilon3 = 0.001;
`;var Ow=`/**
 * 0.0001
 *
 * @name czm_epsilon4
 * @glslConstant
 */
const float czm_epsilon4 = 0.0001;
`;var Mw=`/**
 * 0.00001
 *
 * @name czm_epsilon5
 * @glslConstant
 */
const float czm_epsilon5 = 0.00001;
`;var Lw=`/**
 * 0.000001
 *
 * @name czm_epsilon6
 * @glslConstant
 */
const float czm_epsilon6 = 0.000001;
`;var Nw=`/**
 * 0.0000001
 *
 * @name czm_epsilon7
 * @glslConstant
 */
const float czm_epsilon7 = 0.0000001;
`;var Fw=`/**
 * 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 Bw=`/**
 * 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 kw=`/**
 * 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 Vw=`/**
 * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE}
 *
 * @name czm_passCesium3DTile
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passCesium3DTile = 4.0;
`;var Uw=`/**
 * 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 zw=`/**
 * 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 Hw=`/**
 * The automatic GLSL constant for {@link Pass#CLASSIFICATION}
 *
 * @name czm_passClassification
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passClassification = 7.0;
`;var Gw=`/**
 * The automatic GLSL constant for {@link Pass#COMPUTE}
 *
 * @name czm_passCompute
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passCompute = 1.0;
`;var Ww=`/**
 * The automatic GLSL constant for {@link Pass#ENVIRONMENT}
 *
 * @name czm_passEnvironment
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passEnvironment = 0.0;
`;var jw=`/**
 * The automatic GLSL constant for {@link Pass#GLOBE}
 *
 * @name czm_passGlobe
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passGlobe = 2.0;
`;var qw=`/**
 * The automatic GLSL constant for {@link Pass#OPAQUE}
 *
 * @name czm_passOpaque
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passOpaque = 7.0;
`;var Yw=`/**
 * The automatic GLSL constant for {@link Pass#OVERLAY}
 *
 * @name czm_passOverlay
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passOverlay = 10.0;
`;var Xw=`/**
 * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION}
 *
 * @name czm_passTerrainClassification
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passTerrainClassification = 3.0;
`;var Kw=`/**
 * The automatic GLSL constant for {@link Pass#TRANSLUCENT}
 *
 * @name czm_passTranslucent
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passTranslucent = 8.0;
`;var Zw=`/**
 * The automatic GLSL constant for {@link Pass#VOXELS}
 *
 * @name czm_passVoxels
 * @glslConstant
 *
 * @see czm_pass
 */
const float czm_passVoxels = 9.0;
`;var $w=`/**
 * 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 Qw=`/**
 * 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 Jw=`/**
 * 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 eD=`/**
 * 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 tD=`/**
 * 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 nD=`/**
 * 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 iD=`/**
 * 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 oD=`/**
 * 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 rD=`/**
 * 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 sD=`/**
 * 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 aD=`/**
 * 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 cD=`/**
 * 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 lD=`/**
 * 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 uD=`/**
 * 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 fD=`/**
 * @name czm_depthRangeStruct
 * @glslStruct
 */
struct czm_depthRangeStruct
{
    float near;
    float far;
};
`;var dD=`/**
 * 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 hD=`/**
 * 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 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.
* @property {float} waterMask The value of the water mask. 0 is land, 1 is water. 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;
    float waterMask;
};
`;var mD=`/**
 * 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 {vec4} baseColor The base color of the material.
 * @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 {
    vec4 baseColor;
    vec3 diffuse;
    float alpha;
    vec3 specular;
    float roughness;
    vec3 normalEC;
    float occlusion;
    vec3 emissive;
#ifdef USE_SPECULAR
    float specularWeight;
#endif
#ifdef USE_ANISOTROPY
    vec3 anisotropicT;
    vec3 anisotropicB;
    float anisotropyStrength;
#endif
#ifdef USE_CLEARCOAT
    float clearcoatFactor;
    float clearcoatRoughness;
    vec3 clearcoatNormal;
    // Add clearcoatF0 when KHR_materials_ior is implemented
#endif
};
`;var pD=`/**
 * 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 _D=`/**
 * DOC_TBA
 *
 * @name czm_ray
 * @glslStruct
 */
struct czm_ray
{
    vec3 origin;
    vec3 direction;
};
`;var gD=`/**
 * 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 yD=`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 xD=`/**
 * 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 bD=`/**
 * 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 TD=`/**
 * 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 CD=`/**
 * 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 AD=`/**
 * 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 ED=`/**
 * 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 SD=`// 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 vD=`/**
 * @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 wD=`/**
 * 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 DD=`/**
 * Apply a HSB color shift to an RGB color.
 *
 * @param {vec3} rgb The color in RGB space.
 * @param {vec3} hsbShift The amount to shift each component. The xyz components correspond to hue, saturation, and brightness. Shifting the hue by +/- 1.0 corresponds to shifting the hue by a full cycle. Saturation and brightness are clamped between 0 and 1 after the adjustment
 * @param {bool} ignoreBlackPixels If true, black pixels will be unchanged. This is necessary in some shaders such as atmosphere-related effects.
 *
 * @return {vec3} The RGB color after shifting in HSB space and clamping saturation and brightness to a valid range.
 */
vec3 czm_applyHSBShift(vec3 rgb, vec3 hsbShift, bool ignoreBlackPixels) {
    // Convert rgb color to hsb
    vec3 hsb = czm_RGBToHSB(rgb);

    // Perform hsb shift
    // Hue cycles around so no clamp is needed.
    hsb.x += hsbShift.x; // hue
    hsb.y = clamp(hsb.y + hsbShift.y, 0.0, 1.0); // saturation

    // brightness
    //
    // Some shaders such as atmosphere-related effects need to leave black
    // pixels unchanged
    if (ignoreBlackPixels) {
        hsb.z = hsb.z > czm_epsilon7 ? hsb.z + hsbShift.z : 0.0;
    } else {
        hsb.z = hsb.z + hsbShift.z;
    }
    hsb.z = clamp(hsb.z, 0.0, 1.0);

    // Convert shifted hsb back to rgb
    return czm_HSBToRGB(hsb);
}
`;var ID=`/**
 * 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 PD=`/**
 * Compute a rational approximation to tanh(x)
 *
 * @param {float} x A real number input
 * @returns {float} An approximation for tanh(x)
*/
float czm_approximateTanh(float x) {
    float x2 = x * x;
    return max(-1.0, min(1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2)));
}
`;var RD=`/**
 * 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 OD=`/**
 * 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 MD=`
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 LD=`
uniform vec4 shadowMap_cascadeDistances;

float czm_cascadeDistance(vec4 weights)
{
    return dot(shadowMap_cascadeDistances, weights);
}
`;var ND=`
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 FD=`
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 BD=`float getSignedDistance(vec2 uv, highp sampler2D clippingDistance) {
    float signedDistance = texture(clippingDistance, uv).r;
    return (signedDistance - 0.5) * 2.0;
}

void czm_clipPolygons(highp sampler2D clippingDistance, int extentsLength, vec2 clippingPosition, int regionIndex) {
    // Position is completely outside of polygons bounds
    vec2 rectUv = clippingPosition;
    if (regionIndex < 0 || rectUv.x <= 0.0 || rectUv.y <= 0.0 || rectUv.x >= 1.0 || rectUv.y >= 1.0) {
        #ifdef CLIPPING_INVERSE 
            discard;
        #endif
        return;
    }

    vec2 clippingDistanceTextureDimensions = vec2(textureSize(clippingDistance, 0));
    vec2 sampleOffset = max(1.0 / clippingDistanceTextureDimensions, vec2(0.005));
    float dimension = float(extentsLength);
    if (extentsLength > 2) {
       dimension = ceil(log2(float(extentsLength)));
    }

    vec2 textureOffset = vec2(mod(float(regionIndex), dimension), floor(float(regionIndex) / dimension)) / dimension;
    vec2 uv = textureOffset + rectUv / dimension;

    float signedDistance = getSignedDistance(uv, clippingDistance);

    #ifdef CLIPPING_INVERSE
    if (signedDistance > 0.0)  {
        discard;
    }
    #else
    if (signedDistance < 0.0)  {
        discard;
    }
    #endif
}
`;var kD=`/**
 * 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 VD=`/**
 * Compute the atmosphere color, applying Rayleigh and Mie scattering. This
 * builtin uses automatic uniforms so the atmophere settings are synced with the
 * state of the Scene, even in other contexts like Model.
 *
 * @name czm_computeAtmosphereColor
 * @glslFunction
 *
 * @param {vec3} positionWC Position of the fragment in world coords (low precision)
 * @param {vec3} lightDirection Light direction from the sun or other light source.
 * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function
 * @param {vec3} mieColor The Mie scattering color computed by a scattering function
 * @param {float} opacity The opacity computed by a scattering function.
 */
vec4 czm_computeAtmosphereColor(
    vec3 positionWC,
    vec3 lightDirection,
    vec3 rayleighColor,
    vec3 mieColor,
    float opacity
) {
    // Setup the primary ray: from the camera position to the vertex position.
    vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
    vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);

    float cosAngle = dot(cameraToPositionWCDirection, lightDirection);
    float cosAngleSq = cosAngle * cosAngle;

    float G = czm_atmosphereMieAnisotropy;
    float GSq = G * G;

    // The Rayleigh phase function.
    float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq);
    // The Mie phase function.
    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));

    // The final color is generated by combining the effects of the Rayleigh and Mie scattering.
    vec3 rayleigh = rayleighPhase * rayleighColor;
    vec3 mie = miePhase * mieColor;

    vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity;

    return vec4(color, opacity);
}

/**
 * Compute the atmosphere color, applying Rayleigh and Mie scattering. This
 * builtin uses automatic uniforms so the atmophere settings are synced with the
 * state of the Scene, even in other contexts like Model.
 *
 * @name czm_computeAtmosphereColor
 * @glslFunction
 *
 * @param {czm_ray} primaryRay Ray from the origin to sky fragment to in world coords (low precision)
 * @param {vec3} lightDirection Light direction from the sun or other light source.
 * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function
 * @param {vec3} mieColor The Mie scattering color computed by a scattering function
 * @param {float} opacity The opacity computed by a scattering function.
 */
vec4 czm_computeAtmosphereColor(
    czm_ray primaryRay,
    vec3 lightDirection,
    vec3 rayleighColor,
    vec3 mieColor,
    float opacity
) {
    vec3 direction = normalize(primaryRay.direction);

    float cosAngle = dot(direction, lightDirection);
    float cosAngleSq = cosAngle * cosAngle;

    float G = czm_atmosphereMieAnisotropy;
    float GSq = G * G;

    // The Rayleigh phase function.
    float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq);
    // The Mie phase function.
    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));

    // The final color is generated by combining the effects of the Rayleigh and Mie scattering.
    vec3 rayleigh = rayleighPhase * rayleighColor;
    vec3 mie = miePhase * mieColor;

    vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity;

    return vec4(color, opacity);
}

`;var UD=`/**
 * Compute atmosphere scattering for the ground atmosphere and fog. This method
 * uses automatic uniforms so it is always synced with the scene settings.
 *
 * @name czm_computeGroundAtmosphereScattering
 * @glslfunction
 *
 * @param {vec3} positionWC The position of the fragment in world coordinates.
 * @param {vec3} lightDirection The direction of the light to calculate the scattering from.
 * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to.
 * @param {vec3} mieColor The variable the Mie scattering will be written to.
 * @param {float} opacity The variable the transmittance will be written to.
 */
void czm_computeGroundAtmosphereScattering(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);

    czm_computeScattering(
        primaryRay,
        length(cameraToPositionWC),
        lightDirection,
        atmosphereInnerRadius,
        rayleighColor,
        mieColor,
        opacity
    );
}
`;var zD=`/**
 * 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 HD=`/**
 * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as
 * the transmittance value for the ray. This function uses automatic uniforms
 * so the atmosphere settings are always synced with the current scene.
 *
 * @name czm_computeScattering
 * @glslfunction
 *
 * @param {czm_ray} primaryRay The ray from the camera to the position.
 * @param {float} primaryRayLength The length of the primary ray.
 * @param {vec3} lightDirection The direction of the light to calculate the scattering from.
 * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to.
 * @param {vec3} mieColor The variable the Mie scattering will be written to.
 * @param {float} opacity The variable the transmittance will be written to.
 */
void czm_computeScattering(
    czm_ray primaryRay,
    float primaryRayLength,
    vec3 lightDirection,
    float atmosphereInnerRadius,
    out vec3 rayleighColor,
    out vec3 mieColor,
    out float opacity
) {
    const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters.
    const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled.
    const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray.

    // Initialize the default scattering amounts to 0.
    rayleighColor = vec3(0.0);
    mieColor = vec3(0.0);
    opacity = 0.0;

    float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS;

    vec3 origin = vec3(0.0);

    // Calculate intersection from the camera to the outer ring of the atmosphere.
    czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius);

    // Return empty colors if no intersection with the atmosphere geometry.
    if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) {
        return;
    }

    // To deal with smaller values of PRIMARY_STEPS (e.g. 4)
    // we implement a split strategy: sky or horizon.
    // For performance reasons, instead of a if/else branch
    // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0
    float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength);
    // Value close to 0.0: close to the horizon
    // Value close to 1.0: above in the sky
    float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x));

    // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere.
    float start_0 = primaryRayAtmosphereIntersect.start;
    primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0);
    // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller.
    primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength));

    // For the number of ray steps, distinguish inside or outside atmosphere (outer space)
    // (1) from outer space we have to use more ray steps to get a realistic rendering
    // (2) within atmosphere we need fewer steps for faster rendering
    float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters
    float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a));
    int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled.
    int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray.

    // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere.
    float rayPositionLength = primaryRayAtmosphereIntersect.start;
    // (1) Outside the atmosphere: constant rayStepLength
    // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps
    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(czm_atmosphereRayleighScaleHeight, czm_atmosphereMieScaleHeight);

    // Sample positions on the primary ray.
    for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) {

        // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot
        // loop with non-constant condition, so it has to break early instead
        if (i >= PRIMARY_STEPS) {
            break;
        }

        // Calculate sample position along viewpoint ray.
        vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength);

        // Calculate height of sample position above ellipsoid.
        float sampleHeight = length(samplePosition) - atmosphereInnerRadius;

        // Calculate and accumulate density of particles at the sample position.
        vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength;
        opticalDepth += sampleDensity;

        // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere.
        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);

        // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment.
        for (int j = 0; j < LIGHT_STEPS_MAX; ++j) {

            // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot
            // loop with non-constant condition, so it has to break early instead
            if (j >= LIGHT_STEPS) {
                break;
            }

            // Calculate sample position along light ray.
            vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5);

            // Calculate height of the light sample position above ellipsoid.
            float lightHeight = length(lightPosition) - atmosphereInnerRadius;

            // Calculate density of photons at the light sample position.
            lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength;

            // Increment distance on light ray.
            lightPositionLength += lightStepLength;
        }

        // Compute attenuation via the primary ray and the light ray.
        vec3 attenuation = exp(-((czm_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (czm_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x))));

        // Accumulate the scattering.
        rayleighAccumulation += sampleDensity.x * attenuation;
        mieAccumulation += sampleDensity.y * attenuation;

        // Increment distance on primary ray.
        rayPositionLength += (rayStepLength += rayStepLengthIncrease);
    }

    // Compute the scattering amount.
    rayleighColor = czm_atmosphereRayleighCoefficient * rayleighAccumulation;
    mieColor = czm_atmosphereMieCoefficient * mieAccumulation;

    // Compute the transmittance i.e. how much light is passing through the atmosphere.
    opacity = length(exp(-((czm_atmosphereMieCoefficient * opticalDepth.y) + (czm_atmosphereRayleighCoefficient * opticalDepth.x))));
}
`;var GD=`/**
 * @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 WD=`/**
 * 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 jD=`// 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 qD=`/**
 * 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 YD=`/**
 * 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 XD=`/**
 * Approximate uv coordinates based on the ellipsoid normal.
 *
 * @name czm_ellipsoidTextureCoordinates
 * @glslFunction
 */
vec2 czm_ellipsoidTextureCoordinates(vec3 normal)
{
    return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5);
}
`;var KD=`/**
 * 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 ZD=`/**
 * 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 $D=`/**
 * 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 QD=`/**
 * 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 JD=`/**
 * 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 eI=`/**
 * 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 tI=`/**
 * 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 nI=`/**
 * 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 iI=`/**
 * Select which direction vector to use for dynamic atmosphere lighting based on an enum value
 *
 * @name czm_getDynamicAtmosphereLightDirection
 * @glslfunction
 * @see DynamicAtmosphereLightingType.js
 *
 * @param {vec3} positionWC the position of the vertex/fragment in world coordinates. This is normalized and returned when dynamic lighting is turned off.
 * @param {float} lightEnum The enum value for selecting between light sources.
 * @return {vec3} The normalized light direction vector. Depending on the enum value, it is either positionWC, czm_lightDirectionWC or czm_sunDirectionWC
 */
vec3 czm_getDynamicAtmosphereLightDirection(vec3 positionWC, float lightEnum) {
    const float NONE = 0.0;
    const float SCENE_LIGHT = 1.0;
    const float SUNLIGHT = 2.0;

    vec3 lightDirection =
        positionWC * float(lightEnum == NONE) +
        czm_lightDirectionWC * float(lightEnum == SCENE_LIGHT) +
        czm_sunDirectionWC * float(lightEnum == SUNLIGHT);
    return normalize(lightDirection);
}
`;var oI=`/**
 * 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 rI=`/**
 * 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 sI=`/**
 * @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 aI=`/**
 * 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 cI=`/**
 * 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 lI=`/**
 * 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 uI=`/**
 * 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 fI=`/**
 * 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 dI=`/**
 * 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 hI=`/**
 * 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 mI=`/**
 * 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 pI=`/**
 * Find the maximum component of a vector.
 *
 * @name czm_maximumComponent
 * @glslFunction
 *
 * @param {vec2|vec3|vec4} v The input vector.
 * @returns {float} The value of the largest component.
 */
float czm_maximumComponent(vec2 v)
{
    return max(v.x, v.y);
}
float czm_maximumComponent(vec3 v)
{
    return max(max(v.x, v.y), v.z);
}
float czm_maximumComponent(vec4 v)
{
    return max(max(max(v.x, v.y), v.z), v.w);
}
`;var _I=`/**
 * 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 gI=`/**
 * 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 yI=`/**
 * 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 xI=`/**
 * 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 bI=` /**
  * 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 TI=`/**
 * Packs a depth value into a vec4 that can be represented by unsigned bytes.
 *
 * @name czm_packDepth
 * @glslFunction
 *
 * @param {float} depth The floating-point depth.
 * @returns {vec4} 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 CI=`vec3 lambertianDiffuse(vec3 diffuseColor)
{
    return diffuseColor / czm_pi;
}

vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH)
{
    float versine = 1.0 - VdotH;
    // pow(versine, 5.0) is slow. See https://stackoverflow.com/a/68793086/10082269
    float versineSquared = versine * versine;
    return f0 + (f90 - f0) * versineSquared * versineSquared * versine;
}

#ifdef USE_ANISOTROPY
/**
 * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent)
 * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent)
 * @param {vec3} lightDirection The direction from the fragment to the light source, transformed to tangent-bitangent-normal coordinates
 * @param {vec3} viewDirection The direction from the fragment to the camera, transformed to tangent-bitangent-normal coordinates
 */
float smithVisibilityGGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 lightDirection, vec3 viewDirection)
{
    vec3 roughnessScale = vec3(tangentialRoughness, bitangentRoughness, 1.0);
    float GGXV = lightDirection.z * length(roughnessScale * viewDirection);
    float GGXL = viewDirection.z * length(roughnessScale * lightDirection);
    float v = 0.5 / (GGXV + GGXL);
    return clamp(v, 0.0, 1.0);
}

/**
 * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent)
 * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent)
 * @param {vec3} halfwayDirection The unit vector halfway between light and view directions, transformed to tangent-bitangent-normal coordinates
 */
float GGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 halfwayDirection)
{
    float roughnessSquared = bitangentRoughness * tangentialRoughness;
    vec3 f = halfwayDirection * vec3(bitangentRoughness, tangentialRoughness, roughnessSquared);
    float w2 = roughnessSquared / dot(f, f);
    return roughnessSquared * w2 * w2 / czm_pi;
}
#endif

/**
 * Estimate the geometric self-shadowing of the microfacets in a surface,
 * using the Smith Joint GGX visibility function.
 * Note: Vis = G / (4 * NdotL * NdotV)
 * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3
 * see Real-Time Rendering. Page 331 to 336.
 * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg)
 *
 * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness.
 * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source.
 * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera.
 */
float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV)
{
    float alphaRoughnessSq = alphaRoughness * alphaRoughness;

    float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq);
    float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq);

    float GGX = GGXV + GGXL;
    if (GGX > 0.0)
    {
        return 0.5 / GGX;
    }
    return 0.0;
}

/**
 * Estimate the fraction of the microfacets in a surface that are aligned with 
 * the halfway vector, which is aligned halfway between the directions from
 * the fragment to the camera and from the fragment to the light source.
 *
 * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness.
 * @param {float} NdotH The cosine of the angle between the surface normal and the halfway vector.
 * @return {float} The fraction of microfacets aligned to the halfway vector.
 */
float GGX(float alphaRoughness, float NdotH)
{
    float alphaRoughnessSquared = alphaRoughness * alphaRoughness;
    float f = (NdotH * alphaRoughnessSquared - NdotH) * NdotH + 1.0;
    return alphaRoughnessSquared / (czm_pi * f * f);
}

/**
 * Compute the strength of the specular reflection due to direct lighting.
 *
 * @param {vec3} normal The surface normal.
 * @param {vec3} lightDirection The unit vector pointing from the fragment to the light source.
 * @param {vec3} viewDirection The unit vector pointing from the fragment to the camera.
 * @param {vec3} halfwayDirection The unit vector pointing from the fragment to halfway between the light source and the camera.
 * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness.
 * @return {float} The strength of the specular reflection.
 */
float computeDirectSpecularStrength(vec3 normal, vec3 lightDirection, vec3 viewDirection, vec3 halfwayDirection, float alphaRoughness)
{
    float NdotL = clamp(dot(normal, lightDirection), 0.0, 1.0);
    float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0);
    float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV);
    float NdotH = clamp(dot(normal, halfwayDirection), 0.0, 1.0);
    float D = GGX(alphaRoughness, NdotH);
    return G * D;
}

/**
 * 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 {@MaterialStageFS}
 * </p>
 *
 * @name czm_pbrLighting
 * @glslFunction
 *
 * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position
 * @param {vec3} normalEC The surface normal in eye coordinates
 * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates.
 * @param {czm_modelMaterial} The material properties.
 * @return {vec3} The computed HDR color
 */
vec3 czm_pbrLighting(vec3 viewDirectionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material)
{
    vec3 halfwayDirectionEC = normalize(viewDirectionEC + lightDirectionEC);
    float VdotH = clamp(dot(viewDirectionEC, halfwayDirectionEC), 0.0, 1.0);
    float NdotL = clamp(dot(normalEC, lightDirectionEC), 0.001, 1.0);

    vec3 f0 = material.specular;
    float reflectance = czm_maximumComponent(f0);
    // Typical dielectrics will have reflectance 0.04, so f90 will be 1.0.
    // In this case, at grazing angle, all incident energy is reflected.
    vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));
    vec3 F = fresnelSchlick2(f0, f90, VdotH);

    #if defined(USE_SPECULAR)
        F *= material.specularWeight;
    #endif

    float alphaRoughness = material.roughness * material.roughness;
    #ifdef USE_ANISOTROPY
        mat3 tbn = mat3(material.anisotropicT, material.anisotropicB, normalEC);
        vec3 lightDirection = lightDirectionEC * tbn;
        vec3 viewDirection = viewDirectionEC * tbn;
        vec3 halfwayDirection = halfwayDirectionEC * tbn;
        float anisotropyStrength = material.anisotropyStrength;
        float tangentialRoughness = mix(alphaRoughness, 1.0, anisotropyStrength * anisotropyStrength);
        float bitangentRoughness = clamp(alphaRoughness, 0.001, 1.0);
        float G = smithVisibilityGGX_anisotropic(bitangentRoughness, tangentialRoughness, lightDirection, viewDirection);
        float D = GGX_anisotropic(bitangentRoughness, tangentialRoughness, halfwayDirection);
        vec3 specularContribution = F * G * D;
    #else
        float specularStrength = computeDirectSpecularStrength(normalEC, lightDirectionEC, viewDirectionEC, halfwayDirectionEC, alphaRoughness);
        vec3 specularContribution = F * specularStrength;
    #endif

    vec3 diffuseColor = material.diffuse;
    // F here represents the specular contribution
    vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor);

    // Lo = (diffuse + specular) * Li * NdotL
    return (diffuseContribution + specularContribution) * NdotL;
}
`;var AI=`// KhronosGroup https://github.com/KhronosGroup/ToneMapping/tree/main/PBR_Neutral

// Input color is non-negative and resides in the Linear Rec. 709 color space.
// Output color is also Linear Rec. 709, but in the [0, 1] range.

vec3 czm_pbrNeutralTonemapping(vec3 color) {
    const float startCompression = 0.8 - 0.04;
    const float desaturation = 0.15;

    float x = min(color.r, min(color.g, color.b));
    float offset = czm_branchFreeTernary(x < 0.08, x - 6.25 * x * x, 0.04);
    color -= offset;

    float peak = max(color.r, max(color.g, color.b));
    if (peak < startCompression) return color;

    const float d = 1.0 - startCompression;
    float newPeak = 1.0 - d * d / (peak + d - startCompression);
    color *= newPeak / peak;

    float g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0);
    return mix(color, newPeak * vec3(1.0, 1.0, 1.0), g);
}
`;var EI=`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 SI=`/**
 * 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 vI=`/**
 * 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 wI=`/**
 * 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 DI=`/**
 * 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 II=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords)
{
    return czm_reverseLogDepth(texture(depthTexture, texCoords).r);
}
`;var PI=`/**
 * 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 RI=`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 OI=`/**
 * 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 MI=`/**
 * 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 LI=`
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 NI=`
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 FI=`/**
 * 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 BI=`/**
 * 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;

    vec3 L =
          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);
        
    return max(L, vec3(0.0));
}
`;var kI=`/**
 * 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 VI=`/**
 * 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 UI=`/**
 * 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 coordinate at which to sample the texture.
 */
vec4 czm_textureCube(samplerCube sampler, vec3 p) {
#if __VERSION__ == 300
    return texture(sampler, p);
#else
    return textureCube(sampler, p);
#endif
}

/**
 * A wrapper around the textureLod (WebGL2) / textureCube (WebGL1)
 * function to allow for WebGL 1 support in fragment shaders.
 *
 * @name czm_textureCubeLod
 * @glslFunction
 *
 * @param {samplerCube} sampler The sampler.
 * @param {vec3} p The coordinate at which to sample the texture.
 * @param {float} lod The mipmap level from which to sample.
 */
vec4 czm_textureCube(samplerCube sampler, vec3 p, float lod) {
#if __VERSION__ == 300
    return textureLod(sampler, p, lod);
#elif defined(GL_EXT_shader_texture_lod)
    return textureCubeLodEXT(sampler, p, lod);
#endif
}`;var zI=`/**
 * 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 HI=`/**
 * 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;
    // This check handles the case when NaN values have gotten into \`highDifference\`.
    // Such a thing could happen on devices running iOS.
    if (length(highDifference) == 0.0) {  
        highDifference = vec3(0);  
    }
    vec3 lowDifference = low - czm_encodedCameraPositionMCLow;

    return vec4(highDifference + lowDifference, 1.0);
}
`;var GI=`/**
 * @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 WI=`/**
 * 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 jI=`vec2 getLookupUv(vec2 dimensions, int i) {
    int pixY = i / int(dimensions.x);
    int pixX = i - (pixY * int(dimensions.x));
    float pixelWidth = 1.0 / dimensions.x;
    float pixelHeight = 1.0 / dimensions.y;
    float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel
    float v = (float(pixY) + 0.5) * pixelHeight;
    return vec2(u, v);
}

vec4 czm_unpackClippingExtents(highp sampler2D extentsTexture, int index) {
    vec2 textureDimensions = vec2(textureSize(extentsTexture, 0));
    return texture(extentsTexture, getLookupUv(textureDimensions, index));
}`;var qI=`/**
 * 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 YI=`/**
 * 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 XI=`/**
 * 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 KI=`/**
 * 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 ZI=`#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 $I=`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 = exp2(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 QI=`// 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 JI=`#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 eP=`/**
 * 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 _x={czm_degreesPerRadian:ww,czm_depthRange:Dw,czm_epsilon1:Iw,czm_epsilon2:Pw,czm_epsilon3:Rw,czm_epsilon4:Ow,czm_epsilon5:Mw,czm_epsilon6:Lw,czm_epsilon7:Nw,czm_infinity:Fw,czm_oneOverPi:Bw,czm_oneOverTwoPi:kw,czm_passCesium3DTile:Vw,czm_passCesium3DTileClassification:Uw,czm_passCesium3DTileClassificationIgnoreShow:zw,czm_passClassification:Hw,czm_passCompute:Gw,czm_passEnvironment:Ww,czm_passGlobe:jw,czm_passOpaque:qw,czm_passOverlay:Yw,czm_passTerrainClassification:Xw,czm_passTranslucent:Kw,czm_passVoxels:Zw,czm_pi:$w,czm_piOverFour:Qw,czm_piOverSix:Jw,czm_piOverThree:eD,czm_piOverTwo:tD,czm_radiansPerDegree:nD,czm_sceneMode2D:iD,czm_sceneMode3D:oD,czm_sceneModeColumbusView:rD,czm_sceneModeMorphing:sD,czm_solarRadius:aD,czm_threePiOver2:cD,czm_twoPi:lD,czm_webMercatorMaxLatitude:uD,czm_depthRangeStruct:fD,czm_material:dD,czm_materialInput:hD,czm_modelMaterial:mD,czm_modelVertexOutput:pD,czm_ray:_D,czm_raySegment:gD,czm_shadowParameters:yD,czm_HSBToRGB:xD,czm_HSLToRGB:bD,czm_RGBToHSB:TD,czm_RGBToHSL:CD,czm_RGBToXYZ:AD,czm_XYZToRGB:ED,czm_acesTonemapping:SD,czm_alphaWeight:vD,czm_antialias:wD,czm_applyHSBShift:DD,czm_approximateSphericalCoordinates:ID,czm_approximateTanh:PD,czm_backFacing:RD,czm_branchFreeTernary:OD,czm_cascadeColor:MD,czm_cascadeDistance:LD,czm_cascadeMatrix:ND,czm_cascadeWeights:FD,czm_clipPolygons:BD,czm_columbusViewMorph:kD,czm_computeAtmosphereColor:VD,czm_computeGroundAtmosphereScattering:UD,czm_computePosition:zD,czm_computeScattering:HD,czm_cosineAndSine:GD,czm_decompressTextureCoordinates:WD,czm_depthClamp:jD,czm_eastNorthUpToEyeCoordinates:qD,czm_ellipsoidContainsPoint:YD,czm_ellipsoidTextureCoordinates:XD,czm_equalsEpsilon:KD,czm_eyeOffset:ZD,czm_eyeToWindowCoordinates:$D,czm_fastApproximateAtan:QD,czm_fog:JD,czm_gammaCorrect:eI,czm_geodeticSurfaceNormal:tI,czm_getDefaultMaterial:nI,czm_getDynamicAtmosphereLightDirection:iI,czm_getLambertDiffuse:oI,czm_getSpecular:rI,czm_getWaterNoise:sI,czm_hue:aI,czm_inverseGamma:cI,czm_isEmpty:lI,czm_isFull:uI,czm_latitudeToWebMercatorFraction:fI,czm_lineDistance:dI,czm_linearToSrgb:hI,czm_luminance:mI,czm_maximumComponent:pI,czm_metersPerPixel:_I,czm_modelToWindowCoordinates:gI,czm_multiplyWithColorBalance:yI,czm_nearFarScalar:xI,czm_octDecode:bI,czm_packDepth:TI,czm_pbrLighting:CI,czm_pbrNeutralTonemapping:AI,czm_phong:EI,czm_planeDistance:SI,czm_pointAlongRay:vI,czm_rayEllipsoidIntersectionInterval:wI,czm_raySphereIntersectionInterval:DI,czm_readDepth:II,czm_readNonPerspective:PI,czm_reverseLogDepth:RI,czm_round:OI,czm_saturation:MI,czm_shadowDepthCompare:LI,czm_shadowVisibility:NI,czm_signNotZero:FI,czm_sphericalHarmonics:BI,czm_srgbToLinear:kI,czm_tangentToEyeSpaceMatrix:VI,czm_textureCube:UI,czm_transformPlane:zI,czm_translateRelativeToEye:HI,czm_translucentPhong:GI,czm_transpose:WI,czm_unpackClippingExtents:jI,czm_unpackDepth:qI,czm_unpackFloat:YI,czm_unpackUint:XI,czm_valueTransform:KI,czm_vertexLogDepth:ZI,czm_windowToEyeCoordinates:$I,czm_writeDepthClamp:QI,czm_writeLogDepth:JI,czm_writeNonPerspective:eP};function GIe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/\n\s*(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_EXT_shader_texture_lod
#extension GL_EXT_shader_texture_lod : enable
#endif
${n}`,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 tP=GIe;function Mte(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 Lte(e,t,n){let i;for(let o=0;o<n.length;++o)n[o].name===e&&(i=n[o]);return l(i)||(t=Mte(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function Nte(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);l(n)&&n!==null&&(n=n.filter(function(i,o){return n.indexOf(i)===o}),n.forEach(function(i){if(i!==e.name&&zs._czmBuiltinsAndUniforms.hasOwnProperty(i)){let o=Lte(i,zs._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(o),o.requiredBy.push(e),Nte(o,t)}}))}function WIe(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 jIe(e){let t=[],n=Lte("main",e,t);Nte(n,t),WIe(t);let i="";for(let o=t.length-1;o>=0;--o)i=`${i+t[o].glslSource}
`;return i.replace(n.glslSource,"")}function Fte(e,t,n){let i,o,r="",s=e.sources;if(l(s))for(i=0,o=s.length;i<o;++i)r+=`
#line 0
${s[i]}`;r=Mte(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 u=e.pickColorQualifier;l(u)&&(r=zs.createPickFragmentShaderSource(r,u));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(l(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=jIe(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=tP(f,t),f}function zs(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=l(e.defines)?e.defines.slice(0):[],this.sources=l(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}zs.prototype.clone=function(){return new zs({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};zs.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};zs.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}`};zs.prototype.createCombinedVertexShader=function(e){return Fte(this,!1,e)};zs.prototype.createCombinedFragmentShader=function(e){return Fte(this,!0,e)};zs._czmBuiltinsAndUniforms={};for(let e in _x)_x.hasOwnProperty(e)&&(zs._czmBuiltinsAndUniforms[e]=_x[e]);for(let e in _p)if(_p.hasOwnProperty(e)){let t=_p[e];typeof t.getDeclaration=="function"&&(zs._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}zs.createPickVertexShaderSource=function(e){return`${zs.replaceMain(e,"czm_old_main")}
in vec4 pickColor; 
out vec4 czm_pickColor; 
void main() 
{ 
    czm_old_main(); 
    czm_pickColor = pickColor; 
}`};zs.createPickFragmentShaderSource=function(e,t){let n=zs.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 qIe(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 Bte(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 kte(e,t){let n=t.length;for(let i=0;i<n;++i){let o=t[i];if(Bte(e,o))return o}}var YIe=["v_normalEC","v_normal"];zs.findNormalVarying=function(e){return Bte(e,"#ifdef HAS_NORMALS")?qIe(e,"HAS_NORMALS")?"v_normalEC":void 0:kte(e,YIe)};var XIe=["v_positionEC"];zs.findPositionVarying=function(e){return kte(e,XIe)};var Ue=zs;function Pd(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(Pd.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});Pd.prototype.replaceShaderProgram=function(e){return l(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function KIe(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}Pd.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new Ue({sources:[t]})),typeof n=="string"&&(n=new Ue({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=l(i)?KIe(i):"",a=`${o}:${r}:${s}`,c;if(l(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let u=this._context,f=t.createCombinedVertexShader(u),d=n.createCombinedFragmentShader(u),p=new Qt({gl:u._gl,logShaderCompilation:u.logShaderCompilation,debugShaders:u.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};Pd.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(l(r)){G6(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};Pd.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};Pd.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 Ue({sources:[r]})),typeof s=="string"&&(s=new Ue({sources:[s]}));let c=this._context,u=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new Qt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:u,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 G6(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];G6(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}Pd.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];G6(this,n),--this._numberOfShaders}this._shadersToRelease={}};Pd.prototype.releaseShaderProgram=function(e){if(l(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};Pd.prototype.isDestroyed=function(){return!1};Pd.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return ue(this)};var nP=Pd;function Rd(e){e=y(e,y.EMPTY_OBJECT);let{context:t,source:n,pixelFormat:i=Je.RGBA,pixelDatatype:o=Ke.UNSIGNED_BYTE,flipY:r=!0,skipColorSpaceConversion:s=!1,sampler:a=new $t}=e,{width:c,height:u}=e;l(n)&&(l(c)||(c=n.videoWidth??n.naturalWidth??n.width),l(u)||(u=n.videoHeight??n.naturalHeight??n.height));let f=e.preMultiplyAlpha||i===Je.RGB||i===Je.LUMINANCE,d=Je.toInternalFormat(i,o,t),p=Je.isCompressedFormat(d),g=t._gl,m=p?Je.compressedTextureSizeInBytes(i,c,u):Je.textureSizeInBytes(i,o,c,u);this._id=Hn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=g.TEXTURE_2D,this._texture=g.createTexture(),this._internalFormat=d,this._pixelFormat=i,this._pixelDatatype=o,this._width=c,this._height=u,this._dimensions=new z(c,u),this._hasMipmap=!1,this._sizeInBytes=m,this._preMultiplyAlpha=f,this._flipY=r,this._initialized=!1,this._sampler=void 0,this._sampler=a,Vte(this,a),g.activeTexture(g.TEXTURE0),g.bindTexture(this._textureTarget,this._texture),l(n)?(s?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),l(n.arrayBufferView)?Je.isCompressedFormat(d)?ZIe(this,n):$Ie(this,n):l(n.framebuffer)?QIe(this,n):JIe(this,n),this._initialized=!0):ePe(this),g.bindTexture(this._textureTarget,null)}function ZIe(e,t){let i=e._context._gl,o=e._textureTarget,r=e._internalFormat,{width:s,height:a}=e;if(i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.compressedTexImage2D(o,0,r,s,a,0,t.arrayBufferView),l(t.mipLevels)){let c=s,u=a;for(let f=0;f<t.mipLevels.length;++f)c=eU(c),u=eU(u),i.compressedTexImage2D(o,f+1,r,c,u,0,t.mipLevels[f])}}function $Ie(e,t){let n=e._context,i=n._gl,o=e._textureTarget,r=e._internalFormat,{width:s,height:a,pixelFormat:c,pixelDatatype:u,flipY:f}=e,d=Je.alignmentInBytes(c,u,s);i.pixelStorei(i.UNPACK_ALIGNMENT,d),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1);let p=t.arrayBufferView;if(f&&(p=Je.flipY(p,c,u,s,a)),i.texImage2D(o,0,r,s,a,0,c,Ke.toWebGLConstant(u,n),p),l(t.mipLevels)){let g=s,m=a;for(let x=0;x<t.mipLevels.length;++x)g=eU(g),m=eU(m),i.texImage2D(o,x+1,r,g,m,0,c,Ke.toWebGLConstant(u,n),t.mipLevels[x])}}function QIe(e,t){let n=e._context,i=n._gl;i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),t.framebuffer!==n.defaultFramebuffer&&t.framebuffer._bind(),i.copyTexImage2D(e._textureTarget,0,e._internalFormat,t.xOffset,t.yOffset,e.width,e.height,0),t.framebuffer!==n.defaultFramebuffer&&t.framebuffer._unBind()}function JIe(e,t){let n=e._context,i=n._gl;i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.preMultiplyAlpha),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,e.flipY),i.texImage2D(e._textureTarget,0,e._internalFormat,e.pixelFormat,Ke.toWebGLConstant(e.pixelDatatype,n),t)}function eU(e){let t=Math.floor(e/2)|0;return Math.max(t,1)}function ePe(e){let t=e._context;t._gl.texImage2D(e._textureTarget,0,e._internalFormat,e._width,e._height,0,e._pixelFormat,Ke.toWebGLConstant(e._pixelDatatype,t),null)}Rd.create=function(e){return new Rd(e)};Rd.fromFramebuffer=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,{pixelFormat:i=Je.RGB,framebufferXOffset:o=0,framebufferYOffset:r=0,width:s=n.drawingBufferWidth,height:a=n.drawingBufferHeight,framebuffer:c}=e;return new Rd({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:l(c)?c:t.defaultFramebuffer,xOffset:o,yOffset:r,width:s,height:a}})};Object.defineProperties(Rd.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){Vte(this,e),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}}});function Vte(e,t){let{minificationFilter:n,magnificationFilter:i}=t,o=[Zt.NEAREST_MIPMAP_NEAREST,Zt.NEAREST_MIPMAP_LINEAR,Zt.LINEAR_MIPMAP_NEAREST,Zt.LINEAR_MIPMAP_LINEAR].includes(n),r=e._context,s=e._pixelFormat,a=e._pixelDatatype;(a===Ke.FLOAT&&!r.textureFloatLinear||a===Ke.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(n=o?Zt.NEAREST_MIPMAP_NEAREST:Zt.NEAREST,i=di.NEAREST),r.webgl2&&Je.isDepthFormat(s)&&(n=Zt.NEAREST,i=di.NEAREST);let c=r._gl,u=e._textureTarget;c.activeTexture(c.TEXTURE0),c.bindTexture(u,e._texture),c.texParameteri(u,c.TEXTURE_MIN_FILTER,n),c.texParameteri(u,c.TEXTURE_MAG_FILTER,i),c.texParameteri(u,c.TEXTURE_WRAP_S,t.wrapS),c.texParameteri(u,c.TEXTURE_WRAP_T,t.wrapT),l(e._textureFilterAnisotropic)&&c.texParameteri(u,e._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.maximumAnisotropy),c.bindTexture(u,null)}Rd.prototype.copyFrom=function(e){let{xOffset:t=0,yOffset:n=0,source:i,skipColorSpaceConversion:o=!1}=e,r=this._context,s=r._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture);let{width:c,height:u}=i,f=i.arrayBufferView;l(i.videoWidth)&&l(i.videoHeight)?(c=i.videoWidth,u=i.videoHeight):l(i.naturalWidth)&&l(i.naturalHeight)&&(c=i.naturalWidth,u=i.naturalHeight);let d=this._width,p=this._height,g=this._internalFormat,m=this._pixelFormat,x=this._pixelDatatype,b=this._preMultiplyAlpha,T=this._flipY,C=4;l(f)&&(C=Je.alignmentInBytes(m,x,c)),s.pixelStorei(s.UNPACK_ALIGNMENT,C),o?s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE):s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.BROWSER_DEFAULT_WEBGL);let A=!1;if(!this._initialized){let E;t===0&&n===0&&c===d&&u===p?(l(f)?(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),T?E=Je.flipY(f,m,x,d,p):E=f):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,T),E=i),A=!0):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),E=Je.createTypedArray(m,x,d,p)),s.texImage2D(a,0,g,d,p,0,m,Ke.toWebGLConstant(x,r),E),this._initialized=!0}if(!A){let E;l(f)?(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),T?E=Je.flipY(f,m,x,c,u):E=f):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,T),E=i),s.texSubImage2D(a,0,t,n,c,u,m,Ke.toWebGLConstant(x,r),E)}s.bindTexture(a,null)};Rd.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};Rd.prototype.generateMipmap=function(e){e=y(e,rm.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)};Rd.prototype.isDestroyed=function(){return!1};Rd.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),ue(this)};var Pt=Rd;function gx(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(gx.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});gx.prototype.getTexture=function(e){let t=this._textures[e];if(l(t))return delete this._texturesToRelease[e],++t.count,t.texture};gx.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};gx.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={}};gx.prototype.isDestroyed=function(){return!1};gx.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return ue(this)};var iP=gx;function bf(e){this.planes=y(e,[])}var oP=[new h,new h,new h];h.clone(h.UNIT_X,oP[0]);h.clone(h.UNIT_Y,oP[1]);h.clone(h.UNIT_Z,oP[2]);var Bg=new h,tPe=new h,Ute=new cn(new h(1,0,0),0);bf.fromBoundingSphere=function(e,t){l(t)||(t=new bf);let n=oP.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=oP[a],u=i[s],f=i[s+1];l(u)||(u=i[s]=new oe),l(f)||(f=i[s+1]=new oe),h.multiplyByScalar(c,-r,Bg),h.add(o,Bg,Bg),u.x=c.x,u.y=c.y,u.z=c.z,u.w=-h.dot(c,Bg),h.multiplyByScalar(c,r,Bg),h.add(o,Bg,Bg),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-h.dot(h.negate(c,tPe),Bg),s+=2}return t};bf.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,o=t.length;i<o;++i){let r=e.intersectPlane(cn.fromCartesian4(t[i],Ute));if(r===jt.OUTSIDE)return jt.OUTSIDE;r===jt.INTERSECTING&&(n=!0)}return n?jt.INTERSECTING:jt.INSIDE};bf.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===bf.MASK_OUTSIDE||t===bf.MASK_INSIDE)return t;let n=bf.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(cn.fromCartesian4(i[o],Ute));if(a===jt.OUTSIDE)return bf.MASK_OUTSIDE;a===jt.INTERSECTING&&(n|=s)}return n};bf.MASK_OUTSIDE=4294967295;bf.MASK_INSIDE=0;bf.MASK_INDETERMINATE=2147483647;var ps=bf;function sm(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 ps,this._orthographicMatrix=new F}function zte(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=F.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}Object.defineProperties(sm.prototype,{projectionMatrix:{get:function(){return zte(this),this._orthographicMatrix}}});var nPe=new h,iPe=new h,oPe=new h,W6=new h;sm.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,u=this.far,f=h.cross(t,n,nPe);h.normalize(f,f);let d=iPe;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=oPe;h.multiplyByScalar(f,a,p),h.add(d,p,p);let g=i[0];return l(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],l(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,W6),p),h.multiplyByScalar(n,r,p),h.add(d,p,p),g=i[2],l(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],l(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,W6),p),g=i[4],l(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,u,p),h.add(e,p,p),g=i[5],l(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,W6),p),this._cullingVolume};sm.prototype.getPixelDimensions=function(e,t,n,i,o){zte(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};sm.prototype.clone=function(e){return l(e)||(e=new sm),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};sm.prototype.equals=function(e){return l(e)&&e instanceof sm&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};sm.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof sm&&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 Lr=sm;function vl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new Lr,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}vl.packedLength=4;vl.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};vl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new vl),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function kg(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(vl.prototype,{projectionMatrix:{get:function(){return kg(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return kg(this),this._offCenterFrustum}}});vl.prototype.computeCullingVolume=function(e,t,n){return kg(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};vl.prototype.getPixelDimensions=function(e,t,n,i,o){return kg(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};vl.prototype.clone=function(e){return l(e)||(e=new vl),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};vl.prototype.equals=function(e){return!l(e)||!(e instanceof vl)?!1:(kg(this),kg(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};vl.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof vl)?!1:(kg(this),kg(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 rn=vl;var j6={};function rPe(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var sPe=32.184,aPe=2451545;function sne(e,t){t=Z.addSeconds(e,sPe,t);let n=Z.totalDays(t)-aPe;return t=Z.addSeconds(t,rPe(n),t),t}var tU=new Z(2451545,0,jn.TAI),cPe=1e3,Tf=P.RADIANS_PER_DEGREE,uu=P.RADIANS_PER_ARCSECOND,Ia=14959787e4,Hte=new $;function ane(e,t,n,i,o,r,s){n<0&&(n=-n,o+=P.PI);let a=e*(1-t),c=i-o,u=o,f=uPe(r-i,t),d=lPe(t,0);pPe(c,n,u,Hte);let p=a*(1+t),g=Math.cos(f),m=Math.sin(f),x=1+t*g,b=p/x;return l(s)?(s.x=b*g,s.y=b*m,s.z=0):s=new h(b*g,b*m,0),$.multiplyByVector(Hte,s,s)}function lPe(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function uPe(e,t){let n=hPe(e,t);return mPe(n,t)}var fPe=50,dPe=P.EPSILON8;function hPe(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<fPe&&Math.abs(o-i)>dPe;++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 mPe(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 pPe(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),u=Math.sin(n);return l(i)?(i[0]=c*o-u*r*s,i[1]=u*o+c*r*s,i[2]=r*a,i[3]=-c*r-u*o*s,i[4]=-u*r+c*o*s,i[5]=o*a,i[6]=u*a,i[7]=-c*a,i[8]=s):i=new $(c*o-u*r*s,-c*r-u*o*s,u*a,u*o+c*r*s,-u*r+c*o*s,-c*a,r*a,o*a,s),i}var _Pe=1.0000010178*Ia,gPe=100.46645683*Tf,yPe=129597742283429e-5*uu,Gte=16002,Wte=21863,jte=32004,qte=10931,Yte=14529,Xte=16368,Kte=15318,Zte=32794,xPe=64*1e-7*Ia,bPe=-152*1e-7*Ia,TPe=62*1e-7*Ia,CPe=-8*1e-7*Ia,APe=32*1e-7*Ia,EPe=-41*1e-7*Ia,SPe=19*1e-7*Ia,vPe=-11*1e-7*Ia,wPe=-150*1e-7*Ia,DPe=-46*1e-7*Ia,IPe=68*1e-7*Ia,PPe=54*1e-7*Ia,RPe=14*1e-7*Ia,OPe=24*1e-7*Ia,MPe=-28*1e-7*Ia,LPe=22*1e-7*Ia,$te=10,Qte=16002,Jte=21863,ene=10931,tne=1473,nne=32004,ine=4387,one=73,NPe=-325*1e-7,FPe=-322*1e-7,BPe=-79*1e-7,kPe=232*1e-7,VPe=-52*1e-7,UPe=97*1e-7,zPe=55*1e-7,HPe=-41*1e-7,GPe=-105*1e-7,WPe=-137*1e-7,jPe=258*1e-7,qPe=35*1e-7,YPe=-116*1e-7,XPe=-88*1e-7,KPe=-112*1e-7,ZPe=-80*1e-7,ZC=new Z(0,0,jn.TAI);function $Pe(e,t){sne(e,ZC);let i=(ZC.dayNumber-tU.dayNumber+(ZC.secondsOfDay-tU.secondsOfDay)/Yn.SECONDS_PER_DAY)/(Yn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=_Pe+xPe*Math.cos(Gte*o)+wPe*Math.sin(Gte*o)+bPe*Math.cos(Wte*o)+DPe*Math.sin(Wte*o)+TPe*Math.cos(jte*o)+IPe*Math.sin(jte*o)+CPe*Math.cos(qte*o)+PPe*Math.sin(qte*o)+APe*Math.cos(Yte*o)+RPe*Math.sin(Yte*o)+EPe*Math.cos(Xte*o)+OPe*Math.sin(Xte*o)+SPe*Math.cos(Kte*o)+MPe*Math.sin(Kte*o)+vPe*Math.cos(Zte*o)+LPe*Math.sin(Zte*o),s=gPe+yPe*i+NPe*Math.cos($te*o)+GPe*Math.sin($te*o)+FPe*Math.cos(Qte*o)+WPe*Math.sin(Qte*o)+BPe*Math.cos(Jte*o)+jPe*Math.sin(Jte*o)+kPe*Math.cos(ene*o)+qPe*Math.sin(ene*o)+VPe*Math.cos(tne*o)+YPe*Math.sin(tne*o)+UPe*Math.cos(nne*o)+XPe*Math.sin(nne*o)+zPe*Math.cos(ine*o)+KPe*Math.sin(ine*o)+HPe*Math.cos(one*o)+ZPe*Math.sin(one*o),a=.0167086342-.0004203654*i,c=102.93734808*Tf+11612.3529*uu*i,u=469.97289*uu*i,f=174.87317577*Tf-8679.27034*uu*i;return ane(r,a,u,c,f,s,t)}function cne(e,t){sne(e,ZC);let i=(ZC.dayNumber-tU.dayNumber+(ZC.secondsOfDay-tU.secondsOfDay)/Yn.SECONDS_PER_DAY)/Yn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,u=5.15668983*Tf,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*Tf,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*Tf,m=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*Tf,b=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,T=297.85019547*Tf+uu*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),C=93.27209062*Tf+uu*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),A=134.96340251*Tf+uu*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),E=357.52910918*Tf+uu*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),v=310.17137918*Tf-uu*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*T,O=4*T,R=6*T,M=2*A,N=3*A,_=4*A,S=2*C;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-A)-235.6*Math.cos(A)+218.1*Math.cos(D-E)+181*Math.cos(D+A),c+=.014216*Math.cos(D-A)+.008551*Math.cos(D-M)-.001383*Math.cos(A)+.001356*Math.cos(D+A)-.001147*Math.cos(O-N)-914e-6*Math.cos(O-M)+869e-6*Math.cos(D-E-A)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-E-M)-279e-6*Math.cos(T-A)-236e-6*Math.cos(M)+231e-6*Math.cos(O)+229e-6*Math.cos(R-_)-201e-6*Math.cos(M-S),f+=486.26*Math.cos(D-S)-40.13*Math.cos(D)+37.51*Math.cos(S)+25.73*Math.cos(M-S)+19.97*Math.cos(D-E-S),p+=-55609*Math.sin(D-A)-34711*Math.sin(D-M)-9792*Math.sin(A)+9385*Math.sin(O-N)+7505*Math.sin(O-M)+5318*Math.sin(D+A)+3484*Math.sin(O-_)-3417*Math.sin(D-E-A)-2530*Math.sin(R-_)-2376*Math.sin(D)-2075*Math.sin(D-N)-1883*Math.sin(M)-1736*Math.sin(R-5*A)+1626*Math.sin(E)-1370*Math.sin(R-N),m+=-5392*Math.sin(D-S)-540*Math.sin(E)-441*Math.sin(D)+423*Math.sin(S)-288*Math.sin(M-S),b+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-A)-662.5*Math.sin(E)+396.3*Math.sin(A)-218*Math.sin(D-E);let w=2*v,I=3*v;f+=46.997*Math.cos(v)*i-.614*Math.cos(D-S+v)*i+.614*Math.cos(D-S-v)*i-.0297*Math.cos(w)*o-.0335*Math.cos(v)*o+.0012*Math.cos(D-S+w)*o-16e-5*Math.cos(v)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(w)*r;let L=2.116*Math.sin(v)*i-.111*Math.sin(D-S-v)*i-.0015*Math.sin(v)*o;p+=L,b+=L,m+=-520.77*Math.sin(v)*i+13.66*Math.sin(D-S+v)*i+1.12*Math.sin(D-v)*i-1.06*Math.sin(S-v)*i+.66*Math.sin(w)*o+.371*Math.sin(v)*o-.035*Math.sin(D-S+w)*o-.015*Math.sin(D-S+v)*o+.0014*Math.sin(v)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(w)*r,a*=cPe;let B=u+f*uu,U=d+p*uu,V=x+b*uu,G=g+m*uu;return ane(a,c,B,U,G,V,t)}var rne=.012300034,QPe=rne/(rne+1)*-1;function JPe(e,t){return t=cne(e,t),h.multiplyByScalar(t,QPe,t)}var lne=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),rP=new h;j6.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=Z.now()),l(t)||(t=new h),rP=$Pe(e,rP),t=h.negate(rP,t),JPe(e,rP),h.subtract(t,rP,t),$.multiplyByVector(lne,t,t),t};j6.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=Z.now()),t=cne(e,t),$.multiplyByVector(lne,t,t),t};var Vg=j6;var nU={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};nU.getMorphTime=function(e){return e===nU.SCENE3D?1:e===nU.MORPHING?void 0:0};var ne=Object.freeze(nU);function e1e(e){e=y(e,y.EMPTY_OBJECT),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,2)}var wp=e1e;function $C(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new je,this._viewportCartesian4=new oe,this._viewportDirty=!1,this._viewportOrthographicMatrix=F.clone(F.IDENTITY),this._viewportTransformation=F.clone(F.IDENTITY),this._model=F.clone(F.IDENTITY),this._view=F.clone(F.IDENTITY),this._inverseView=F.clone(F.IDENTITY),this._projection=F.clone(F.IDENTITY),this._infiniteProjection=F.clone(F.IDENTITY),this._entireFrustum=new z,this._currentFrustum=new z,this._frustumPlanes=new oe,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(F.IDENTITY),this._view3DDirty=!0,this._view3D=new F,this._inverseView3DDirty=!0,this._inverseView3D=new F,this._inverseModelDirty=!0,this._inverseModel=new F,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new F,this._modelViewDirty=!0,this._modelView=new F,this._modelView3DDirty=!0,this._modelView3D=new F,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new F,this._inverseModelViewDirty=!0,this._inverseModelView=new F,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new F,this._viewProjectionDirty=!0,this._viewProjection=new F,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new F,this._modelViewProjectionDirty=!0,this._modelViewProjection=new F,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new F,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new F,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new F,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 Gn,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 z,this._eyeEllipsoidNormalEC=new h,this._eyeEllipsoidCurvature=new z,this._modelToEnu=new F,this._enuToModel=new F,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new H,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._fogVisualDensityScalar=void 0,this._fogMinimumBrightness=void 0,this._atmosphereHsbShift=void 0,this._atmosphereLightIntensity=void 0,this._atmosphereRayleighCoefficient=new h,this._atmosphereRayleighScaleHeight=new h,this._atmosphereMieCoefficient=new h,this._atmosphereMieScaleHeight=void 0,this._atmosphereMieAnisotropy=void 0,this._atmosphereDynamicLighting=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties($C.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!je.equals(e,this._viewport)){je.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 fne(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return fne(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){F.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,F.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,F.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return Y6(this),this._view3D}},viewRotation:{get:function(){return Y6(this),this._viewRotation}},viewRotation3D:{get:function(){return Y6(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return mne(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return mne(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return f1e(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return d1e(this),this._modelView}},modelView3D:{get:function(){return h1e(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return x1e(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return m1e(this),this._inverseModelView}},inverseModelView3D:{get:function(){return p1e(this),this._inverseModelView3D}},viewProjection:{get:function(){return _1e(this),this._viewProjection}},inverseViewProjection:{get:function(){return g1e(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return y1e(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return b1e(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return T1e(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return C1e(this),this._modelViewInfiniteProjection}},normal:{get:function(){return A1e(this),this._normal}},normal3D:{get:function(){return E1e(this),this._normal3D}},inverseNormal:{get:function(){return S1e(this),this._inverseNormal}},inverseNormal3D:{get:function(){return v1e(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}},eyeEllipsoidNormalEC:{get:function(){return this._eyeEllipsoidNormalEC}},eyeEllipsoidCurvature:{get:function(){return this._eyeEllipsoidCurvature}},modelToEnu:{get:function(){return this._modelToEnu}},enuToModel:{get:function(){return this._enuToModel}},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 hne(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return hne(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},fogVisualDensityScalar:{get:function(){return this._fogVisualDensityScalar}},fogMinimumBrightness:{get:function(){return this._fogMinimumBrightness}},atmosphereHsbShift:{get:function(){return this._atmosphereHsbShift}},atmosphereLightIntensity:{get:function(){return this._atmosphereLightIntensity}},atmosphereRayleighCoefficient:{get:function(){return this._atmosphereRayleighCoefficient}},atmosphereRayleighScaleHeight:{get:function(){return this._atmosphereRayleighScaleHeight}},atmosphereMieCoefficient:{get:function(){return this._atmosphereMieCoefficient}},atmosphereMieScaleHeight:{get:function(){return this._atmosphereMieScaleHeight}},atmosphereMieAnisotropy:{get:function(){return this._atmosphereMieAnisotropy}},atmosphereDynamicLighting:{get:function(){return this._atmosphereDynamicLighting}},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}},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,ee.default)}}});function t1e(e,t){F.clone(t,e._view),F.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 n1e(e,t){F.clone(t,e._inverseView),F.getMatrix3(t,e._inverseViewRotation)}function i1e(e,t){F.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function o1e(e,t){F.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}var une=new h,r1e=new F;function s1e(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=e._ellipsoid,i,o=t.positionCartographic;if(l(o)?(e._eyeHeight=o.height,e._eyeEllipsoidNormalEC=n.geodeticSurfaceNormalCartographic(o,e._eyeEllipsoidNormalEC),i=h.fromRadians(o.longitude,o.latitude,0,n,une)):(e._eyeHeight=-n.maximumRadius,h.magnitude(t.positionWC)>0&&(e._eyeEllipsoidNormalEC=h.normalize(t.positionWC,e._eyeEllipsoidNormalEC)),i=n.scaleToGeodeticSurface(t.positionWC,une)),e._encodedCameraPositionMCDirty=!0,!l(i))return;e._eyeEllipsoidNormalEC=$.multiplyByVector(e._viewRotation,e._eyeEllipsoidNormalEC,e._eyeEllipsoidNormalEC);let r=Mt.eastNorthUpToFixedFrame(i,n,r1e);e._enuToModel=F.multiplyTransformation(e.inverseModel,r,e._enuToModel),e._modelToEnu=F.inverseTransformation(e._enuToModel,e._modelToEnu),P.equalsEpsilon(n._radii.x,n._radii.y,P.EPSILON15)&&(e._eyeEllipsoidCurvature=n.getLocalCurvature(i,e._eyeEllipsoidCurvature))}var q6=new $,a1e=new fe;function c1e(e,t){Mt.computeIcrfToCentralBodyFixedMatrix(t.time,q6);let n=Vg.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(q6,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=Vg.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(q6,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,a1e);i.project(r,e._sunPositionColumbusView)}$C.prototype.updateCamera=function(e){t1e(this,e.viewMatrix),n1e(this,e.inverseViewMatrix),s1e(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ne.SCENE2D&&e.frustum instanceof rn};$C.prototype.updateFrustum=function(e){i1e(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&o1e(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;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};$C.prototype.updatePass=function(e){this._pass=e};var l1e=[],u1e=new wp;$C.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===ne.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),c1e(this,e);let n=y(e.light,u1e);n instanceof wp?(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=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,l1e),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,this._fogDensity=e.fog.density,this._fogVisualDensityScalar=e.fog.visualDensityScalar,this._fogMinimumBrightness=e.fog.minimumBrightness;let c=e.atmosphere;l(c)&&(this._atmosphereHsbShift=h.fromElements(c.hueShift,c.saturationShift,c.brightnessShift,this._atmosphereHsbShift),this._atmosphereLightIntensity=c.lightIntensity,this._atmosphereRayleighCoefficient=h.clone(c.rayleighCoefficient,this._atmosphereRayleighCoefficient),this._atmosphereRayleighScaleHeight=c.rayleighScaleHeight,this._atmosphereMieCoefficient=h.clone(c.mieCoefficient,this._atmosphereMieCoefficient),this._atmosphereMieScaleHeight=c.mieScaleHeight,this._atmosphereMieAnisotropy=c.mieAnisotropy,this._atmosphereDynamicLighting=c.dynamicLighting),this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Mt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let u=t.frustum.fov,f=this._viewport,d;l(u)?f.height>f.width?d=Math.tan(.5*u)*2/f.height:d=Math.tan(.5*u)*2/f.width:d=1/Math.max(f.width,f.height),this._geometricToleranceOverMeter=d*e.maximumScreenSpaceError,H.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function fne(e){if(e._viewportDirty){let t=e._viewport;F.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),F.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function f1e(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ne.SCENE2D&&e._mode!==ne.MORPHING&&!e._orthographicIn3D?F.inverse(e._projection,e._inverseProjection):F.clone(F.ZERO,e._inverseProjection))}function d1e(e){e._modelViewDirty&&(e._modelViewDirty=!1,F.multiplyTransformation(e._view,e._model,e._modelView))}function h1e(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,F.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function m1e(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,F.inverse(e.modelView,e._inverseModelView))}function p1e(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,F.inverse(e.modelView3D,e._inverseModelView3D))}function _1e(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,F.multiply(e._projection,e._view,e._viewProjection))}function g1e(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,F.inverse(e.viewProjection,e._inverseViewProjection))}function y1e(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,F.multiply(e._projection,e.modelView,e._modelViewProjection))}function x1e(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 b1e(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,F.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function T1e(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,F.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function C1e(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,F.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function A1e(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;F.getMatrix3(e.inverseModelView,t),$.transpose(t,t)}}function E1e(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;F.getMatrix3(e.inverseModelView3D,t),$.transpose(t,t)}}function S1e(e){if(e._inverseNormalDirty){e._inverseNormalDirty=!1;let t=e._inverseNormal;F.getMatrix3(e.modelView,t),$.transpose(t,t)}}function v1e(e){if(e._inverseNormal3DDirty){e._inverseNormal3DDirty=!1;let t=e._inverseNormal3D;F.getMatrix3(e.modelView3D,t),$.transpose(t,t)}}var dne=new h;function hne(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,F.multiplyByPoint(e.inverseModel,e._cameraPosition,dne),Gn.fromCartesian(dne,e._encodedCameraPositionMC))}var w1e=new h,D1e=new h,I1e=new h,P1e=new h,R1e=new fe,O1e=new h,M1e=new F;function L1e(e,t,n,i,o,r,s,a){let c=w1e;c.x=e.y,c.y=e.z,c.z=e.x;let u=D1e;u.x=n.y,u.y=n.z,u.z=n.x;let f=I1e;f.x=i.y,f.y=i.z,f.z=i.x;let d=P1e;d.x=t.y,d.y=t.z,d.z=t.x,r===ne.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,R1e);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,O1e),x=Mt.eastNorthUpToFixedFrame(m,g,M1e);return F.multiplyByPointAsVector(x,u,u),F.multiplyByPointAsVector(x,f,f),F.multiplyByPointAsVector(x,d,d),l(a)||(a=new F),a[0]=u.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=u.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=u.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-h.dot(u,m),a[13]=-h.dot(f,m),a[14]=h.dot(d,m),a[15]=1,a}function Y6(e){e._view3DDirty&&(e._mode===ne.SCENE3D?F.clone(e._view,e._view3D):L1e(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),F.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function mne(e){e._inverseView3DDirty&&(F.inverseTransformation(e.view3D,e._inverseView3D),F.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var sP=$C;function fu(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=l(n)?n(e,o):N1e(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=Hn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new nP(this),this._textureCache=new iP;let u=s;this._stencilBits=u.getParameter(u.STENCIL_BITS),kt._maximumCombinedTextureImageUnits=u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS),kt._maximumCubeMapSize=u.getParameter(u.MAX_CUBE_MAP_TEXTURE_SIZE),kt._maximumFragmentUniformVectors=u.getParameter(u.MAX_FRAGMENT_UNIFORM_VECTORS),kt._maximumTextureImageUnits=u.getParameter(u.MAX_TEXTURE_IMAGE_UNITS),kt._maximumRenderbufferSize=u.getParameter(u.MAX_RENDERBUFFER_SIZE),kt._maximumTextureSize=u.getParameter(u.MAX_TEXTURE_SIZE),kt._maximumVaryingVectors=u.getParameter(u.MAX_VARYING_VECTORS),kt._maximumVertexAttributes=u.getParameter(u.MAX_VERTEX_ATTRIBS),kt._maximumVertexTextureImageUnits=u.getParameter(u.MAX_VERTEX_TEXTURE_IMAGE_UNITS),kt._maximumVertexUniformVectors=u.getParameter(u.MAX_VERTEX_UNIFORM_VECTORS),kt._maximumSamples=this._webgl2?u.getParameter(u.MAX_SAMPLES):0;let f=u.getParameter(u.ALIASED_LINE_WIDTH_RANGE);kt._minimumAliasedLineWidth=f[0],kt._maximumAliasedLineWidth=f[1];let d=u.getParameter(u.ALIASED_POINT_SIZE_RANGE);kt._minimumAliasedPointSize=d[0],kt._maximumAliasedPointSize=d[1];let p=u.getParameter(u.MAX_VIEWPORT_DIMS);kt._maximumViewportWidth=p[0],kt._maximumViewportHeight=p[1];let g=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT);kt._highpFloatSupported=g.precision!==0;let m=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT);kt._highpIntSupported=m.rangeMax!==0,this._antialias=u.getContextAttributes().antialias,this._standardDerivatives=!!Tr(u,["OES_standard_derivatives"]),this._blendMinmax=!!Tr(u,["EXT_blend_minmax"]),this._elementIndexUint=!!Tr(u,["OES_element_index_uint"]),this._depthTexture=!!Tr(u,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!Tr(u,["EXT_frag_depth"]),this._debugShaders=Tr(u,["WEBGL_debug_shaders"]),this._textureFloat=!!Tr(u,["OES_texture_float"]),this._textureHalfFloat=!!Tr(u,["OES_texture_half_float"]),this._textureFloatLinear=!!Tr(u,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!Tr(u,["OES_texture_half_float_linear"]),this._supportsTextureLod=!!Tr(u,["EXT_shader_texture_lod"]),this._colorBufferFloat=!!Tr(u,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!Tr(u,["EXT_float_blend"]),this._colorBufferHalfFloat=!!Tr(u,["EXT_color_buffer_half_float"]),this._s3tc=!!Tr(u,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!Tr(u,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!Tr(u,["WEBGL_compressed_texture_astc"]),this._etc=!!Tr(u,["WEBG_compressed_texture_etc"]),this._etc1=!!Tr(u,["WEBGL_compressed_texture_etc1"]),this._bc7=!!Tr(u,["EXT_texture_compression_bptc"]),Sl.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let x=r?Tr(u,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=x,kt._maximumTextureFilterAnisotropy=l(x)?u.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let b,T,C,A,E,v,D,O,R,M;if(c){let w=this;b=function(){return w._gl.createVertexArray()},T=function(I){w._gl.bindVertexArray(I)},C=function(I){w._gl.deleteVertexArray(I)},A=function(I,L,B,U,V){u.drawElementsInstanced(I,L,B,U,V)},E=function(I,L,B,U){u.drawArraysInstanced(I,L,B,U)},v=function(I,L){u.vertexAttribDivisor(I,L)},D=function(I){u.drawBuffers(I)}}else O=Tr(u,["OES_vertex_array_object"]),l(O)&&(b=function(){return O.createVertexArrayOES()},T=function(w){O.bindVertexArrayOES(w)},C=function(w){O.deleteVertexArrayOES(w)}),R=Tr(u,["ANGLE_instanced_arrays"]),l(R)&&(A=function(w,I,L,B,U){R.drawElementsInstancedANGLE(w,I,L,B,U)},E=function(w,I,L,B){R.drawArraysInstancedANGLE(w,I,L,B)},v=function(w,I){R.vertexAttribDivisorANGLE(w,I)}),M=Tr(u,["WEBGL_draw_buffers"]),l(M)&&(D=function(w){M.drawBuffersWEBGL(w)});this.glCreateVertexArray=b,this.glBindVertexArray=T,this.glDeleteVertexArray=C,this.glDrawElementsInstanced=A,this.glDrawArraysInstanced=E,this.glVertexAttribDivisor=v,this.glDrawBuffers=D,this._vertexArrayObject=!!O,this._instancedArrays=!!R,this._drawBuffers=!!M,kt._maximumDrawBuffers=this.drawBuffers?u.getParameter(te.MAX_DRAW_BUFFERS):1,kt._maximumColorAttachments=this.drawBuffers?u.getParameter(te.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new H(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let N=new sP,_=new ic(this),S=Ve.fromCache();this._defaultPassState=_,this._defaultRenderState=S,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=N,this._currentRenderState=S,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let w=0;w<kt._maximumVertexAttributes;w++)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(u,S,_)}function N1e(e,t,n){if(typeof WebGLRenderingContext>"u")throw new ce("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(!l(r))throw new ce("The browser supports WebGL, but initialization failed.");return r}function F1e(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 B1e(e,t,n,i){let o=`${F1e(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function k1e(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new ce(B1e(e,t,n,i))}function V1e(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 U1e(e,t){if(!l(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,V1e(e,o,t))}return i}function Tr(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var z1e={};Object.defineProperties(fu.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}},supportsTextureLod:{get:function(){return this._webgl2||this._supportsTextureLod}},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=U1e(this._originalGLContext,e?k1e: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:Je.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:Je.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 br({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 z1e}}});function pne(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 X6;typeof WebGLRenderingContext<"u"&&(X6=[te.BACK]);function K6(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=X6;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var H1e=new ei;fu.prototype.clear=function(e,t){e=y(e,H1e),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(H.equals(this._clearColor,o)||(H.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);pne(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);K6(this,c),n.clear(i)};function G1e(e,t,n,i,o){K6(e,t),pne(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function W1e(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,F.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let u=r.indexBuffer;l(u)?(s=s*u.bytesPerIndex,l(a)?a=Math.min(a,u.numberOfIndices):a=u.numberOfIndices,c===0?e._gl.drawElements(o,a,u.indexDatatype,s):e.glDrawElementsInstanced(o,a,u.indexDatatype,s,c)):(l(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()}fu.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),G1e(this,o,t,n,r),W1e(this,e,n,i)};fu.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=X6;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)};fu.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=Ke.UNSIGNED_BYTE;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=Je.createTypedArray(Je.RGBA,a,o,r);return K6(this,s),t.readPixels(n,i,o,r,Je.RGBA,Ke.toWebGLConstant(a,this),c),c};var _ne={position:0,textureCoordinates:1};fu.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new at({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:Me.TRIANGLES});e=ti.fromGeometry({context:this,geometry:t,attributeLocations:_ne,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};fu.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new Ze({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Me.TRIANGLES,renderState:t.renderState,shaderProgram:Qt.fromCache({context:this,vertexShaderSource:ax,fragmentShaderSource:e,attributeLocations:_ne}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};fu.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function Z6(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(Z6.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});Z6.prototype.destroy=function(){delete this._pickObjects[this.key]};fu.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new ce("Out of unique Pick IDs.");return this._pickObjects[t]=e,new Z6(this._pickObjects,t,H.fromRgba(t))};fu.prototype.isDestroyed=function(){return!1};fu.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(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(),ue(this)};fu._deprecationWarning=ds;var aP=fu;function QC(e){e=y(e,y.EMPTY_OBJECT);let{context:t,width:n,height:i,colorRenderbuffers:o,colorTextures:r,depthStencilRenderbuffer:s,depthStencilTexture:a,destroyAttachments:c}=e;if(this._width=n,this._height=i,l(o)!==l(r))throw new he("Both color renderbuffer and texture attachments must be provided.");if(l(s)!==l(a))throw new he("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Mr({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:c}),this._colorFramebuffer=new Mr({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:c})}QC.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};QC.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};QC.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),l(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)};QC.prototype.isDestroyed=function(){return!1};QC.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var cP=QC;var wl={RGBA4:te.RGBA4,RGBA8:te.RGBA8,RGBA16F:te.RGBA16F,RGBA32F:te.RGBA32F,RGB5_A1:te.RGB5_A1,RGB565:te.RGB565,DEPTH_COMPONENT16:te.DEPTH_COMPONENT16,STENCIL_INDEX8:te.STENCIL_INDEX8,DEPTH_STENCIL:te.DEPTH_STENCIL,DEPTH24_STENCIL8:te.DEPTH24_STENCIL8,validate:function(e){return e===wl.RGBA4||e===wl.RGBA8||e===wl.RGBA16F||e===wl.RGBA32F||e===wl.RGB5_A1||e===wl.RGB565||e===wl.DEPTH_COMPONENT16||e===wl.STENCIL_INDEX8||e===wl.DEPTH_STENCIL||e===wl.DEPTH24_STENCIL8},getColorFormat:function(e){return e===te.FLOAT?wl.RGBA32F:e===te.HALF_FLOAT_OES?wl.RGBA16F:wl.RGBA8}},kc=Object.freeze(wl);function lP(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=kt.maximumRenderbufferSize,o=y(e.format,kc.RGBA4),r=l(e.width)?e.width:n.drawingBufferWidth,s=l(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(lP.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});lP.prototype._getRenderbuffer=function(){return this._renderbuffer};lP.prototype.isDestroyed=function(){return!1};lP.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var du=lP;function Es(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(Es.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}}});Es.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=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};Es.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,Ke.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,Je.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:$t.NEAREST}),this._numSamples>1){let a=kc.getColorFormat(o);this._colorRenderbuffers[s]=new du({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:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:$t.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new du({context:e,width:t,height:n,format:kc.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new du({context:e,width:t,height:n,format:kc.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Pt({context:e,width:t,height:n,pixelFormat:Je.DEPTH_COMPONENT,pixelDatatype:Ke.UNSIGNED_INT,sampler:$t.NEAREST}):this._depthRenderbuffer=new du({context:e,width:t,height:n,format:kc.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new cP({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 Mr({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};Es.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};Es.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};Es.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};Es.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};Es.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};Es.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};Es.prototype.getDepthTexture=function(){return this._depthTexture};Es.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};Es.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};Es.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};Es.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};Es.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};Es.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};Es.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};Es.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};Es.prototype.destroy=function(){if(this._color){let e=this._colorTextures,t=this._colorRenderbuffers;for(let n=0;n<e.length;++n){let i=e[n];this._createColorAttachments&&l(i)&&!i.isDestroyed()&&i.destroy(),l(i)&&i.isDestroyed()&&(e[n]=void 0);let o=t[n];this._createColorAttachments&&l(o)&&!o.isDestroyed()&&o.destroy(),l(o)&&o.isDestroyed()&&(t[n]=void 0)}}this._depthStencil&&(this._createDepthAttachments&&(this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()),l(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),l(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()),l(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),l(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var hi=Es;var yx={VERTEX:0,FRAGMENT:1,BOTH:2};yx.includesVertexShader=function(e){return e===yx.VERTEX||e===yx.BOTH};yx.includesFragmentShader=function(e){return e===yx.FRAGMENT||e===yx.BOTH};var pe=Object.freeze(yx);function $6(e){this.name=e,this.fields=[]}$6.prototype.addField=function(e,t){let n=`    ${e} ${t};`;this.fields.push(n)};$6.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=["    float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var uP=$6;function Q6(e){this.signature=e,this.body=[]}Q6.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}`)};Q6.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var fP=Q6;function Vc(){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(Vc.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});Vc.prototype.addDefine=function(e,t,n){n=y(n,pe.BOTH);let i=e;l(t)&&(i+=` ${t.toString()}`),pe.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};Vc.prototype.addStruct=function(e,t,n){this._structs[e]=new uP(t),pe.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};Vc.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};Vc.prototype.addFunction=function(e,t,n){this._functions[e]=new fP(t),pe.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};Vc.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};Vc.prototype.addUniform=function(e,t,n){n=y(n,pe.BOTH);let i=`uniform ${e} ${t};`;pe.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};Vc.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};Vc.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+=q1e(e),i};Vc.prototype.addVarying=function(e,t,n){n=l(n)?`${n} `:"";let i=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`${n}out ${i}`),this._fragmentShaderParts.varyingLines.push(`${n}in ${i}`)};Vc.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Vc.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Vc.prototype.buildShaderProgram=function(e){let t=l(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=j1e(this),i=Y1e(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(`
`),r=new Ue({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(`
`),a=new Ue({defines:this._fragmentShaderParts.defineLines,sources:[s]});return Qt.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};Vc.prototype.clone=function(){return Ge(this,!0)};function j1e(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 q1e(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function Y1e(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 xx=Vc;function Hs(e,t,n,i){let o=Hs._verifyAttributes(t);n=y(n,0);let r=[],s={},a,c,u=o.length;for(let d=0;d<u;++d){let p=o[d];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],l(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=Hs._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:Hs._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)}Hs._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,Fe.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};Hs._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};Hs._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};Hs.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];Hs._resize(o,this._size),Hs._appendWriters(this.writers,o)}J6(this)};Hs._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(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 X1e=[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}}];Hs._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]=X1e[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};Hs.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=K1e(this,i)||t;if(t||!l(this.va)){J6(this);let s=this.va=[],a=P.SIXTY_FOUR_KILOBYTES-4,c=l(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let u=0;u<c;++u){let f=[];for(o=0,r=n.length;o<r;++o){i=n[o];let d=u*(i.vertexSizeInBytes*a);Hs._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*(u!==c-1?a:this._size%a)})}}};function K1e(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes<i)return o&&n.destroy(),t.vertexBuffer=_t.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}Hs._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})}};Hs.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)Z1e(n[i],e,t)};function Z1e(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)}}Hs.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function J6(e){let t=e.va;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}Hs.prototype.isDestroyed=function(){return!1};Hs.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 J6(this),ue(this)};var Dp=Hs;function $1e(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[we.createIfNeeded(t.positiveX).fetchImage(i),we.createIfNeeded(t.negativeX).fetchImage(i),we.createIfNeeded(t.positiveY).fetchImage(i),we.createIfNeeded(t.negativeY).fetchImage(i),we.createIfNeeded(t.positiveZ).fetchImage(i),we.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new br({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var dP=$1e;function Ug(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new me,this.setValue(e)}Object.defineProperties(Ug.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});Ug.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};Ug.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=l(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))}};Ug.prototype.equals=function(e){return this===e||e instanceof Ug&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};Ug.prototype.valueOf=function(){return this._value};Ug.prototype.toString=function(){return String(this._value)};var Kn=Ug;function Q1e(e,t,n,i,o){return{configurable:i,get:function(){return this[t]},set:function(r){let s=this[t],a=this[n];l(a)&&(a(),this[n]=void 0),r!==void 0&&(!l(r)||!l(r.getValue))&&l(o)&&(r=o(r)),s!==r&&(this[t]=r,this._definitionChanged.raiseEvent(this,e,r,s)),l(r)&&l(r.definitionChanged)&&(this[n]=r.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,r,r)},this))}}}function J1e(e){return new Kn(e)}function eRe(e,t,n){return Q1e(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,J1e))}var le=eRe;function hP(e){this._definitionChanged=new me,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._splitDirection=void 0,this._splitDirectionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(hP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),image:le("image"),scale:le("scale"),pixelOffset:le("pixelOffset"),eyeOffset:le("eyeOffset"),horizontalOrigin:le("horizontalOrigin"),verticalOrigin:le("verticalOrigin"),heightReference:le("heightReference"),color:le("color"),rotation:le("rotation"),alignedAxis:le("alignedAxis"),sizeInMeters:le("sizeInMeters"),width:le("width"),height:le("height"),scaleByDistance:le("scaleByDistance"),translucencyByDistance:le("translucencyByDistance"),pixelOffsetScaleByDistance:le("pixelOffsetScaleByDistance"),imageSubRegion:le("imageSubRegion"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance"),splitDirection:le("splitDirection")});hP.prototype.clone=function(e){return l(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.splitDirection=this._splitDirection,e):new hP(this)};hP.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),this.splitDirection=y(this.splitDirection,e.splitDirection)};var oc=hP;function bx(){this._array=[],this._hash={}}Object.defineProperties(bx.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});bx.prototype.contains=function(e){return l(this._hash[e])};bx.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};bx.prototype.get=function(e){return this._hash[e]};bx.prototype.remove=function(e){let t=this._hash[e],n=l(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};bx.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var Et=bx;function hu(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(hu.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}}});hu.packedLength=2;hu.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};hu.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new hu),n.near=e[t++],n.far=e[t],n};hu.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};hu.clone=function(e,t){if(l(e))return l(t)||(t=new hu),t.near=e.near,t.far=e.far,t};hu.prototype.clone=function(e){return hu.clone(this,e)};hu.prototype.equals=function(e){return hu.equals(this,e)};var Lt=hu;function Cf(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}Cf.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Cf(e.near,e.nearValue,e.far,e.farValue)};Cf.packedLength=4;Cf.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};Cf.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Cf),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Cf.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Cf.prototype.clone=function(e){return Cf.clone(this,e)};Cf.prototype.equals=function(e){return Cf.equals(this,e)};var Bt=Cf;var Tx={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2,CLAMP_TO_TERRAIN:3,RELATIVE_TO_TERRAIN:4,CLAMP_TO_3D_TILE:5,RELATIVE_TO_3D_TILE:6},Ye=Object.freeze(Tx);function Af(e){return e===Tx.CLAMP_TO_GROUND||e===Tx.CLAMP_TO_3D_TILE||e===Tx.CLAMP_TO_TERRAIN}function JC(e){return e===Tx.RELATIVE_TO_GROUND||e===Tx.RELATIVE_TO_3D_TILE||e===Tx.RELATIVE_TO_TERRAIN}var tRe={CENTER:0,LEFT:1,RIGHT:-1},_i=Object.freeze(tRe);var nRe={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Rn=Object.freeze(nRe);var iRe={DONE:0,PENDING:1,FAILED:2},ct=Object.freeze(iRe);function Od(){he.throwInstantiationError()}Object.defineProperties(Od.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError}});Od.prototype.getValue=he.throwInstantiationError;Od.prototype.equals=he.throwInstantiationError;Od.equals=function(e,t){return e===t||l(e)&&e.equals(t)};Od.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!Od.equals(e[i],t[i]))return!1;return!0};Od.isConstant=function(e){return!l(e)||e.isConstant};Od.getValueOrUndefined=function(e,t,n){return l(e)?e.getValue(t,n):void 0};Od.getValueOrDefault=function(e,t,n,i){return l(e)?y(e.getValue(t,i),n):n};Od.getValueOrClonedDefault=function(e,t,n,i){let o;return l(e)&&(o=e.getValue(t,i)),l(o)||(o=n.clone(o)),o};var Y=Od;var oRe={LEFT:-1,NONE:0,RIGHT:1},Nr=Object.freeze(oRe);var rRe=H.WHITE,sRe=h.ZERO,aRe=Ye.NONE,cRe=z.ZERO,lRe=1,uRe=0,fRe=h.ZERO,dRe=_i.CENTER,hRe=Rn.CENTER,mRe=!1,pRe=Nr.NONE,_Re=new h,gRe=new H,yRe=new h,xRe=new z,bRe=new Bt,TRe=new Bt,CRe=new Bt,ARe=new je,ERe=new Lt;function gne(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function zg(e,t){t.collectionChanged.addEventListener(zg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,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._billboard,c,u=r.billboard,f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=Y.getValueOrUndefined(s._position,e,_Re),c=Y.getValueOrUndefined(a._image,e),f=l(d)&&l(c)),!f){e9(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0),l(u)||(u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u),u.show=f,(!l(u.image)||r.textureValue!==c)&&(u.image=c,r.textureValue=c),u.position=d,u.color=Y.getValueOrDefault(a._color,e,rRe,gRe),u.eyeOffset=Y.getValueOrDefault(a._eyeOffset,e,sRe,yRe),u.heightReference=Y.getValueOrDefault(a._heightReference,e,aRe),u.pixelOffset=Y.getValueOrDefault(a._pixelOffset,e,cRe,xRe),u.scale=Y.getValueOrDefault(a._scale,e,lRe),u.rotation=Y.getValueOrDefault(a._rotation,e,uRe),u.alignedAxis=Y.getValueOrDefault(a._alignedAxis,e,fRe),u.horizontalOrigin=Y.getValueOrDefault(a._horizontalOrigin,e,dRe),u.verticalOrigin=Y.getValueOrDefault(a._verticalOrigin,e,hRe),u.width=Y.getValueOrUndefined(a._width,e),u.height=Y.getValueOrUndefined(a._height,e),u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,bRe),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,TRe),u.pixelOffsetScaleByDistance=Y.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,CRe),u.sizeInMeters=Y.getValueOrDefault(a._sizeInMeters,e,mRe),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,ERe),u.disableDepthTestDistance=Y.getValueOrUndefined(a._disableDepthTestDistance,e),u.splitDirection=Y.getValueOrDefault(a._splitDirection,e,pRe);let p=Y.getValueOrUndefined(a._imageSubRegion,e,ARe);l(p)&&u.setImageSubRegion(u._imageId,p)}return!0};zg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.billboard))return ct.FAILED;let i=n.billboard;if(i.heightReference===Ye.NONE)t.center=h.clone(i.position,t.center);else{if(!l(i._clampedPosition))return ct.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,ct.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.removeBillboard(e[t]);return ue(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],l(r._billboard)&&l(r._position)&&s.set(r.id,new gne(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new gne(r)):(e9(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],e9(s.get(r.id),r,a),s.remove(r.id)};function e9(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var mP=zg;var SRe=new h;function am(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"}am.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new am({minimum:h.negate(n,new h),maximum:n,offsetAttribute:e.offsetAttribute})};am.fromAxisAlignedBoundingBox=function(e){return new am({minimum:e.minimum,maximum:e.maximum})};am.packedLength=2*h.packedLength+1;am.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 xne=new h,bne=new h,yne={minimum:xne,maximum:bne,offsetAttribute:void 0};am.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,xne),o=h.unpack(e,t+h.packedLength,bne),r=e[t+h.packedLength*2];return l(n)?(n._min=h.clone(i,n._min),n._max=h.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(yne.offsetAttribute=r===-1?void 0:r,new am(yne))};am.createGeometry=function(e){let t=e._min,n=e._max;if(h.equals(t,n))return;let i=new fn,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,SRe),a=h.magnitude(s)*.5;if(l(e._offsetAttribute)){let c=r.length,u=e._offsetAttribute===an.NONE?0:1,f=new Uint8Array(c/3).fill(u);i.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new at({attributes:i,indices:o,primitiveType:Me.LINES,boundingSphere:new se(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var Md=am;function eA(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([H.floatToByte(e),H.floatToByte(t),H.floatToByte(n),H.floatToByte(i)])}Object.defineProperties(eA.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});eA.fromColor=function(e){return new eA(e.red,e.green,e.blue,e.alpha)};eA.toValue=function(e,t){return l(t)?e.toBytes(t):new Uint8Array(e.toBytes())};eA.equals=function(e,t){return e===t||l(e)&&l(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 Wt=eA;function pP(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(pP.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});pP.fromDistanceDisplayCondition=function(e){return new pP(e.near,e.far)};pP.toValue=function(e,t){return l(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var kn=pP;function vRe(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var St=vRe;function Qo(e){e=y(e,y.EMPTY_OBJECT),this.start=l(e.start)?Z.clone(e.start):new Z,this.stop=l(e.stop)?Z.clone(e.stop):new Z,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Qo.prototype,{isEmpty:{get:function(){let e=Z.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var tA={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Qo.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new he("options.iso8601 is an invalid ISO 8601 interval.");let i=Z.fromIso8601(n[0]),o=Z.fromIso8601(n[1]),r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return l(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(tA.start=i,tA.stop=o,tA.isStartIncluded=r,tA.isStopIncluded=s,tA.data=a,new Qo(tA))};Qo.toIso8601=function(e,t){return`${Z.toIso8601(e.start,t)}/${Z.toIso8601(e.stop,t)}`};Qo.clone=function(e,t){if(l(e))return l(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Qo(e)};Qo.equals=function(e,t,n){return e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&Z.equals(e.start,t.start)&&Z.equals(e.stop,t.stop)&&(e.data===t.data||l(n)&&n(e.data,t.data)))};Qo.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&Z.equalsEpsilon(e.start,t.start,n)&&Z.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||l(i)&&i(e.data,t.data)))};Qo.intersect=function(e,t,n,i){if(!l(t))return Qo.clone(Qo.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=Z.greaterThanOrEquals(s,o)&&Z.greaterThanOrEquals(r,s),u=!c&&Z.lessThanOrEquals(s,o)&&Z.lessThanOrEquals(o,a);if(!c&&!u)return Qo.clone(Qo.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,m=Z.lessThan(r,a);return l(n)||(n=new Qo),n.start=c?s:o,n.isStartIncluded=f&&p||!Z.equals(s,o)&&(c&&p||u&&f),n.stop=m?r:a,n.isStopIncluded=m?d:d&&g||!Z.equals(a,r)&&g,n.data=l(i)?i(e.data,t.data):e.data,n};Qo.contains=function(e,t){if(e.isEmpty)return!1;let n=Z.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=Z.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Qo.prototype.clone=function(e){return Qo.clone(this,e)};Qo.prototype.equals=function(e,t){return Qo.equals(this,e,t)};Qo.prototype.equalsEpsilon=function(e,t,n){return Qo.equalsEpsilon(this,e,t,n)};Qo.prototype.toString=function(){return Qo.toIso8601(this)};Qo.EMPTY=Object.freeze(new Qo({start:new Z,stop:new Z,isStartIncluded:!1,isStopIncluded:!1}));var Cn=Qo;var Tne=Object.freeze(Z.fromIso8601("0000-01-01T00:00:00Z")),Cne=Object.freeze(Z.fromIso8601("9999-12-31T24:00:00Z")),wRe=Object.freeze(new Cn({start:Tne,stop:Cne})),DRe={MINIMUM_VALUE:Tne,MAXIMUM_VALUE:Cne,MAXIMUM_INTERVAL:wRe},He=DRe;function _P(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(_P.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});_P.fromCartesian3=function(e){return new _P(e.x,e.y,e.z)};_P.toValue=function(e,t){return l(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Qi=_P;function iU(e){e=y(e,!0),this.value=iU.toValue(e)}Object.defineProperties(iU.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});iU.toValue=function(e,t){return l(t)?(t[0]=e,t):new Uint8Array([e])};var gn=iU;var gP=`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 yP=`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 xP=`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 bP=`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 TP=`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 CP=`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 IRe={ADD:te.FUNC_ADD,SUBTRACT:te.FUNC_SUBTRACT,REVERSE_SUBTRACT:te.FUNC_REVERSE_SUBTRACT,MIN:te.MIN,MAX:te.MAX},Pa=Object.freeze(IRe);var PRe={ZERO:te.ZERO,ONE:te.ONE,SOURCE_COLOR:te.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:te.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:te.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:te.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:te.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:te.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:te.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:te.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:te.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:te.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:te.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:te.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:te.SRC_ALPHA_SATURATE},Co=Object.freeze(PRe);var RRe={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.SOURCE_ALPHA,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ONE,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.SOURCE_ALPHA,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE,functionDestinationAlpha:Co.ONE})},un=Object.freeze(RRe);var ORe={FRONT:te.FRONT,BACK:te.BACK,FRONT_AND_BACK:te.FRONT_AND_BACK},gi=Object.freeze(ORe);function nA(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(nA.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}}});nA.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),l(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(`
`)};nA.prototype.isTranslucent=function(){return l(this.material)&&this.material.isTranslucent()||!l(this.material)&&this.translucent};nA.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};nA.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}),l(n)&&(i=yt(n,i,!0)),i};var no=nA;var AP=`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 EP=`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 SP=`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 vP=`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 wP=`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 DP=`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 IP=`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 PP=`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 RP=`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 OP=`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 MP=`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 LP=`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 NP=`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 FP=`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 BP=`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 kP=`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 VP=`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 UP=`uniform vec4 waterColor;
uniform vec4 landColor;

czm_material czm_getMaterial(czm_materialInput materialInput)
{
    czm_material material = czm_getDefaultMaterial(materialInput);

    vec4 outColor = mix(landColor, waterColor, materialInput.waterMask);
    outColor = czm_gammaCorrect(outColor);

    material.diffuse = outColor.rgb;
    material.alpha = outColor.a;

    return material;
}
`;var zP=`// 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 We(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,Zt.LINEAR),this._magnificationFilter=y(e.magnificationFilter,di.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,MRe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),l(We._uniformList[this.type])||(We._uniformList[this.type]=Object.keys(this._uniforms))}We._uniformList={};We.fromType=function(e,t){let n=new We({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};We.prototype.isTranslucent=function(){if(l(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};We.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 u=c.image,f;Array.isArray(u)&&(f=u.slice(1,u.length).map(function(x){return x.bufferView}),u=u[0]);let d=new $t({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;l(u.internalFormat)?p=new Pt({context:e,pixelFormat:u.internalFormat,width:u.width,height:u.height,source:{arrayBufferView:u.bufferView,mipLevels:f},sampler:d}):p=new Pt({context:e,source:u,sampler:d});let g=this._textures[n];l(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 u=c.images,f=new br({context:e,source:{positiveX:u[0],negativeX:u[1],positiveY:u[2],negativeY:u[3],positiveZ:u[4],negativeZ:u[5]},sampler:new $t({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)};We.prototype.isDestroyed=function(){return!1};We.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 ue(this)};function MRe(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=l(t._template.type)?t._template.type:Hn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=We._materialCache.getMaterial(t.type);if(l(i)){let r=Ge(i.fabric,!0);t._template=yt(t._template,r,!0),n=i.translucent}BRe(t),l(i)||We._materialCache.addMaterial(t.type,t),VRe(t),GRe(t),jRe(t);let o=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,o),n=y(e.translucent,n),l(n))if(typeof n=="function"){let r=function(){return n(t)};t._translucentFunctions.push(r)}else t._translucentFunctions.push(n)}function t9(e,t,n,i){if(l(e)){for(let o in e)if(e.hasOwnProperty(o)){let r=t.indexOf(o)!==-1;(i&&!r||!i&&r)&&n(o,t)}}}function Ane(e,t){}function LRe(e,t){}var NRe=["type","materials","uniforms","components","source"],FRe=["diffuse","specular","shininess","normal","emission","alpha"];function BRe(e){let t=e._template,n=t.uniforms,i=t.materials,o=t.components;t9(t,NRe,Ane,!0),t9(o,FRe,Ane,!0);let r=[];for(let s in i)i.hasOwnProperty(s)&&r.push(s);t9(n,r,LRe,!1)}function kRe(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 VRe(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n}
`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput)
{
`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput);
`,l(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&&kRe(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 Ene={mat2:Bi,mat3:$,mat4:F},URe=/\.ktx2$/i;function zRe(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===We.DefaultImageId;t=r;let c=n._textures[e],u,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let p=new $t({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 l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Pt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];l(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=r._width,f.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),l(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof we;if(!l(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:we.createIfNeeded(r),g;URe.test(p.url)?g=Sl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(m){n._loadedImages.push({id:e,image:m})}).catch(function(){l(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 HRe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof br){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(l(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===We.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[we.createIfNeeded(i.positiveX).fetchImage(),we.createIfNeeded(i.negativeX).fetchImage(),we.createIfNeeded(i.positiveY).fetchImage(),we.createIfNeeded(i.negativeY).fetchImage(),we.createIfNeeded(i.positiveZ).fetchImage(),we.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function GRe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&Sne(e,n)}function Sne(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=WRe(o),s;if(r==="channels")s=HP(e,t,o,!1);else{if(r==="sampler2D"){let u=`${t}Dimensions`;qRe(e,u)>0&&(i[u]={type:"ivec3",x:1,y:1},Sne(e,u))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let u=`uniform ${r} ${t};`;e.shaderSource=u+e.shaderSource}let c=`${t}_${e._count++}`;if(s=HP(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(zRe(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(HRe(t));else if(r.indexOf("mat")!==-1){let u=new Ene[r];e._uniforms[c]=function(){return Ene[r].fromColumnMajorArray(e.uniforms[t],u)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function WRe(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===We.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 jRe(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new We({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=yt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;HP(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=HP(e,i,a)}}function HP(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,u,f){return u||f?c:(o+=1,n)}),o}function qRe(e,t,n){return HP(e,t,t,n)}We._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};We.DefaultImageId="czm_defaultImage";We.DefaultCubeMapId="czm_defaultCubeMap";We.ColorType="Color";We._materialCache.addMaterial(We.ColorType,{fabric:{type:We.ColorType,uniforms:{color:new H(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});We.ImageType="Image";We._materialCache.addMaterial(We.ImageType,{fabric:{type:We.ImageType,uniforms:{image:We.DefaultImageId,repeat:new z(1,1),color:new H(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}});We.DiffuseMapType="DiffuseMap";We._materialCache.addMaterial(We.DiffuseMapType,{fabric:{type:We.DiffuseMapType,uniforms:{image:We.DefaultImageId,channels:"rgb",repeat:new z(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});We.AlphaMapType="AlphaMap";We._materialCache.addMaterial(We.AlphaMapType,{fabric:{type:We.AlphaMapType,uniforms:{image:We.DefaultImageId,channel:"a",repeat:new z(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});We.SpecularMapType="SpecularMap";We._materialCache.addMaterial(We.SpecularMapType,{fabric:{type:We.SpecularMapType,uniforms:{image:We.DefaultImageId,channel:"r",repeat:new z(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});We.EmissionMapType="EmissionMap";We._materialCache.addMaterial(We.EmissionMapType,{fabric:{type:We.EmissionMapType,uniforms:{image:We.DefaultImageId,channels:"rgb",repeat:new z(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});We.BumpMapType="BumpMap";We._materialCache.addMaterial(We.BumpMapType,{fabric:{type:We.BumpMapType,uniforms:{image:We.DefaultImageId,channel:"r",strength:.8,repeat:new z(1,1)},source:EP},translucent:!1});We.NormalMapType="NormalMap";We._materialCache.addMaterial(We.NormalMapType,{fabric:{type:We.NormalMapType,uniforms:{image:We.DefaultImageId,channels:"rgb",strength:.8,repeat:new z(1,1)},source:OP},translucent:!1});We.GridType="Grid";We._materialCache.addMaterial(We.GridType,{fabric:{type:We.GridType,uniforms:{color:new H(0,1,0,1),cellAlpha:.1,lineCount:new z(8,8),lineThickness:new z(1,1),lineOffset:new z(0,0)},source:RP},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});We.StripeType="Stripe";We._materialCache.addMaterial(We.StripeType,{fabric:{type:We.StripeType,uniforms:{horizontal:!0,evenColor:new H(1,1,1,.5),oddColor:new H(0,0,1,.5),offset:0,repeat:5},source:VP},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});We.CheckerboardType="Checkerboard";We._materialCache.addMaterial(We.CheckerboardType,{fabric:{type:We.CheckerboardType,uniforms:{lightColor:new H(1,1,1,.5),darkColor:new H(0,0,0,.5),repeat:new z(5,5)},source:SP},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});We.DotType="Dot";We._materialCache.addMaterial(We.DotType,{fabric:{type:We.DotType,uniforms:{lightColor:new H(1,1,0,.75),darkColor:new H(0,1,1,.75),repeat:new z(5,5)},source:vP},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});We.WaterType="Water";We._materialCache.addMaterial(We.WaterType,{fabric:{type:We.WaterType,uniforms:{baseWaterColor:new H(.2,.3,.6,1),blendColor:new H(0,1,.699,1),specularMap:We.DefaultImageId,normalMap:We.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:zP},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});We.RimLightingType="RimLighting";We._materialCache.addMaterial(We.RimLightingType,{fabric:{type:We.RimLightingType,uniforms:{color:new H(1,0,0,.7),rimColor:new H(1,1,1,.4),width:.3},source:BP},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});We.FadeType="Fade";We._materialCache.addMaterial(We.FadeType,{fabric:{type:We.FadeType,uniforms:{fadeInColor:new H(1,0,0,1),fadeOutColor:new H(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new z(.5,.5)},source:PP},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});We.PolylineArrowType="PolylineArrow";We._materialCache.addMaterial(We.PolylineArrowType,{fabric:{type:We.PolylineArrowType,uniforms:{color:new H(1,1,1,1)},source:MP},translucent:!0});We.PolylineDashType="PolylineDash";We._materialCache.addMaterial(We.PolylineDashType,{fabric:{type:We.PolylineDashType,uniforms:{color:new H(1,0,1,1),gapColor:new H(0,0,0,0),dashLength:16,dashPattern:255},source:LP},translucent:!0});We.PolylineGlowType="PolylineGlow";We._materialCache.addMaterial(We.PolylineGlowType,{fabric:{type:We.PolylineGlowType,uniforms:{color:new H(0,.5,1,1),glowPower:.25,taperPower:1},source:NP},translucent:!0});We.PolylineOutlineType="PolylineOutline";We._materialCache.addMaterial(We.PolylineOutlineType,{fabric:{type:We.PolylineOutlineType,uniforms:{color:new H(1,1,1,1),outlineColor:new H(1,0,0,1),outlineWidth:1},source:FP},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});We.ElevationContourType="ElevationContour";We._materialCache.addMaterial(We.ElevationContourType,{fabric:{type:We.ElevationContourType,uniforms:{spacing:100,color:new H(1,0,0,1),width:1},source:DP},translucent:!1});We.ElevationRampType="ElevationRamp";We._materialCache.addMaterial(We.ElevationRampType,{fabric:{type:We.ElevationRampType,uniforms:{image:We.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:IP},translucent:!1});We.SlopeRampMaterialType="SlopeRamp";We._materialCache.addMaterial(We.SlopeRampMaterialType,{fabric:{type:We.SlopeRampMaterialType,uniforms:{image:We.DefaultImageId},source:kP},translucent:!1});We.AspectRampMaterialType="AspectRamp";We._materialCache.addMaterial(We.AspectRampMaterialType,{fabric:{type:We.AspectRampMaterialType,uniforms:{image:We.DefaultImageId},source:AP},translucent:!1});We.ElevationBandType="ElevationBand";We._materialCache.addMaterial(We.ElevationBandType,{fabric:{type:We.ElevationBandType,uniforms:{heights:We.DefaultImageId,colors:We.DefaultImageId},source:wP},translucent:!0});We.WaterMaskType="WaterMask";We._materialCache.addMaterial(We.WaterMaskType,{fabric:{type:We.WaterMaskType,source:UP,uniforms:{waterColor:new H(1,1,1,1),landColor:new H(0,0,0,0)}},translucent:!1});var qi=We;function Cx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,Cx.MaterialSupport.TEXTURED);this.material=l(e.material)?e.material:qi.fromType(qi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=no.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(Cx.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}}});Cx.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Cx.prototype.isTranslucent=no.prototype.isTranslucent;Cx.prototype.getRenderState=no.prototype.getRenderState;Cx.MaterialSupport={BASIC:Object.freeze({vertexFormat:Ie.POSITION_AND_NORMAL,vertexShaderSource:bP,fragmentShaderSource:xP}),TEXTURED:Object.freeze({vertexFormat:Ie.POSITION_NORMAL_AND_ST,vertexShaderSource:CP,fragmentShaderSource:TP}),ALL:Object.freeze({vertexFormat:Ie.ALL,vertexShaderSource:yP,fragmentShaderSource:gP})};var so=Cx;var GP=`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 WP=`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 Ax=`in vec4 v_color;

void main()
{
    out_FragColor = czm_gammaCorrect(v_color);
}
`;var jP=`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 Ip(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?jP:WP,r=i?Ax:GP,s=i?Ip.FLAT_VERTEX_FORMAT:Ip.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=no.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(Ip.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}}});Ip.VERTEX_FORMAT=Ie.POSITION_AND_NORMAL;Ip.FLAT_VERTEX_FORMAT=Ie.POSITION_ONLY;Ip.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Ip.prototype.isTranslucent=no.prototype.isTranslucent;Ip.prototype.getRenderState=no.prototype.getRenderState;var ln=Ip;function iA(e){this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(iA.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color")});iA.prototype.getType=function(e){return"Color"};var YRe=new Z;iA.prototype.getValue=function(e,t){return l(e)||(e=Z.now(YRe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};iA.prototype.equals=function(e){return this===e||e instanceof iA&&Y.equals(this._color,e._color)};var Ut=iA;function Hg(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ee.default),this._rectangle=y(e.rectangle,re.MAX_VALUE),this._projection=new vi(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(Hg.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Hg.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};Hg.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};Hg.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 l(t)?(t.west=n,t.south=i,t.east=o,t.north=r,t):new re(n,i,o,r)};Hg.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};Hg.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,u=(e+1)*a+o.west,f=o.height/s,d=o.north-t*f,p=o.north-(t+1)*f;return l(i)||(i=new re(c,p,u,d)),i.west=c,i.south=p,i.east=u,i.north=d,i};Hg.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!re.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 u=(c-i.west)/s|0;u>=o&&(u=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),l(n)?(n.x=u,n.y=f,n):new z(u,f)};var Yi=Hg;var vne=new h,wne=new h,Dne=new fe,n9=new h,XRe=new h,Ine=new se,KRe=new Yi,qP=[new fe,new fe,new fe,new fe],YP=new z,Zr={};Zr.initialize=function(){let e=Zr._initPromise;return l(e)||(e=we.fetchJson(nn("Assets/approximateTerrainHeights.json")).then(function(t){Zr._terrainHeights=t}),Zr._initPromise=e),e};Zr.getMinimumMaximumHeights=function(e,t){t=y(t,ee.default);let n=Pne(e),i=Zr._defaultMinTerrainHeight,o=Zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Zr._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(re.northeast(e,Dne),vne),t.cartographicToCartesian(re.southwest(e,Dne),wne),h.midpoint(wne,vne,n9);let a=t.scaleToGeodeticSurface(n9,XRe);if(l(a)){let c=h.distance(n9,a);i=Math.min(i,-c)}else i=Zr._defaultMinTerrainHeight}return i=Math.max(Zr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Zr.getBoundingSphere=function(e,t){t=y(t,ee.default);let n=Pne(e),i=Zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Zr._terrainHeights[r];l(s)&&(i=s[1])}let o=se.fromRectangle3D(e,t,0);return se.fromRectangle3D(e,t,i,Ine),se.union(o,Ine,o)};function Pne(e){fe.fromRadians(e.east,e.north,0,qP[0]),fe.fromRadians(e.west,e.north,0,qP[1]),fe.fromRadians(e.east,e.south,0,qP[2]),fe.fromRadians(e.west,e.south,0,qP[3]);let t=0,n=0,i=0,o=0,r=Zr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let u=qP[c];if(KRe.positionToTileXY(u,s,YP),c===0)i=YP.x,o=YP.y;else if(i!==YP.x||o!==YP.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}}Zr._terrainHeightsMaxLevel=6;Zr._defaultMaxTerrainHeight=9e3;Zr._defaultMinTerrainHeight=-1e5;Zr._terrainHeights=void 0;Zr._initPromise=void 0;Object.defineProperties(Zr,{initialized:{get:function(){return l(Zr._terrainHeights)}}});var li=Zr;function Uc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),l(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Uc.fromCorners=function(e,t,n){return l(n)||(n=new Uc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Uc.fromPoints=function(e,t){if(l(t)||(t=new Uc),!l(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 u=t.minimum;u.x=n,u.y=i,u.z=o;let f=t.maximum;return f.x=r,f.y=s,f.z=a,t.center=h.midpoint(u,f,t.center),t};Uc.clone=function(e,t){if(l(e))return l(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 Uc(e.minimum,e.maximum,e.center)};Uc.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&h.equals(e.minimum,t.minimum)&&h.equals(e.maximum,t.maximum)};var oU=new h;Uc.intersectPlane=function(e,t){oU=h.subtract(e.maximum,e.minimum,oU);let n=h.multiplyByScalar(oU,.5,oU),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?jt.INSIDE:r+o<0?jt.OUTSIDE:jt.INTERSECTING};Uc.prototype.clone=function(e){return Uc.clone(this,e)};Uc.prototype.intersectPlane=function(e){return Uc.intersectPlane(this,e)};Uc.prototype.equals=function(e){return Uc.equals(this,e)};var Gg=Uc;var i9=new oe;function cm(e,t){t=y(t,ee.default),e=t.scaleToGeodeticSurface(e);let n=Mt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(F.getColumn(n,0,i9)),this._yAxis=h.fromCartesian4(F.getColumn(n,1,i9));let i=h.fromCartesian4(F.getColumn(n,2,i9));this._plane=cn.fromPointNormal(e,i)}Object.defineProperties(cm.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 ZRe=new Gg;cm.fromPoints=function(e,t){let n=Gg.fromPoints(e,ZRe);return new cm(n.center,t)};var Rne=new mn,rU=new h;cm.prototype.projectPointOntoPlane=function(e,t){let n=Rne;n.origin=e,h.normalize(e,n.direction);let i=$n.rayPlane(n,this._plane,rU);if(l(i)||(h.negate(n.direction,n.direction),i=$n.rayPlane(n,this._plane,rU)),l(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new z(r,s)}};cm.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o<i;o++){let r=this.projectPointOntoPlane(e[o],t[n]);l(r)&&(t[n]=r,n++)}return t.length=n,t};cm.prototype.projectPointToNearestOnPlane=function(e,t){l(t)||(t=new z);let n=Rne;n.origin=e,h.clone(this._plane.normal,n.direction);let i=$n.rayPlane(n,this._plane,rU);l(i)||(h.negate(n.direction,n.direction),i=$n.rayPlane(n,this._plane,rU));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};cm.prototype.projectPointsToNearestOnPlane=function(e,t){l(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 $Re=new h;cm.prototype.projectPointOntoEllipsoid=function(e,t){l(t)||(t=new h);let n=this._ellipsoid,i=this._origin,o=this._xAxis,r=this._yAxis,s=$Re;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};cm.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;l(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 $r=cm;function ki(e,t){this.center=h.clone(y(e,h.ZERO)),this.halfAxes=$.clone(y(t,$.ZERO))}ki.packedLength=h.packedLength+$.packedLength;ki.pack=function(e,t,n){return n=y(n,0),h.pack(e.center,t,n),$.pack(e.halfAxes,t,n+h.packedLength),t};ki.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ki),h.unpack(e,t,n.center),$.unpack(e,t+h.packedLength,n.halfAxes),n};var QRe=new h,JRe=new h,eOe=new h,tOe=new h,nOe=new h,iOe=new h,oOe=new $,rOe={unitary:new $,diagonal:new $};ki.fromPoints=function(e,t){if(l(t)||(t=new ki),!l(e)||e.length===0)return t.halfAxes=$.ZERO,t.center=h.ZERO,t;let n,i=e.length,o=h.clone(e[0],QRe);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,u=0,f=0,d=0,p;for(n=0;n<i;n++)p=h.subtract(e[n],o,JRe),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,u+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=r,a*=r,c*=r,u*=r,f*=r,d*=r;let g=oOe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=u,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let m=$.computeEigenDecomposition(g,rOe),x=$.clone(m.unitary,t.halfAxes),b=$.getColumn(x,0,tOe),T=$.getColumn(x,1,nOe),C=$.getColumn(x,2,iOe),A=-Number.MAX_VALUE,E=-Number.MAX_VALUE,v=-Number.MAX_VALUE,D=Number.MAX_VALUE,O=Number.MAX_VALUE,R=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],A=Math.max(h.dot(b,p),A),E=Math.max(h.dot(T,p),E),v=Math.max(h.dot(C,p),v),D=Math.min(h.dot(b,p),D),O=Math.min(h.dot(T,p),O),R=Math.min(h.dot(C,p),R);b=h.multiplyByScalar(b,.5*(D+A),b),T=h.multiplyByScalar(T,.5*(O+E),T),C=h.multiplyByScalar(C,.5*(R+v),C);let M=h.add(b,T,t.center);h.add(M,C,M);let N=eOe;return N.x=A-D,N.y=E-O,N.z=v-R,h.multiplyByScalar(N,.5,N),$.multiplyByScale(t.halfAxes,N,t.halfAxes),t};var Bne=new h,sOe=new h;function One(e,t,n,i,o,r,s,a,c,u,f){l(f)||(f=new ki);let d=f.halfAxes;$.setColumn(d,0,t,d),$.setColumn(d,1,n,d),$.setColumn(d,2,i,d);let p=Bne;p.x=(o+r)/2,p.y=(s+a)/2,p.z=(c+u)/2;let g=sOe;g.x=(r-o)/2,g.y=(a-s)/2,g.z=(u-c)/2;let m=f.center;return p=$.multiplyByVector(d,p,p),h.add(e,p,m),$.multiplyByScale(d,g,d),f}var Mne=new fe,aOe=new h,cOe=new fe,lOe=new fe,uOe=new fe,fOe=new fe,dOe=new fe,hOe=new h,Lne=new h,mOe=new h,Nne=new h,pOe=new h,_Oe=new z,gOe=new z,yOe=new z,xOe=new z,bOe=new z,TOe=new h,COe=new h,AOe=new h,EOe=new h,SOe=new z,vOe=new h,wOe=new h,DOe=new h,IOe=new cn(h.UNIT_X,0);ki.fromRectangle=function(e,t,n,i,o){t=y(t,0),n=y(n,0),i=y(i,ee.default);let r,s,a,c,u,f,d;if(e.width<=P.PI){let O=re.center(e,Mne),R=i.cartographicToCartesian(O,aOe),M=new $r(R,i);d=M.plane;let N=O.longitude,_=e.south<0&&e.north>0?0:O.latitude,S=fe.fromRadians(N,e.north,n,cOe),w=fe.fromRadians(e.west,e.north,n,lOe),I=fe.fromRadians(e.west,_,n,uOe),L=fe.fromRadians(e.west,e.south,n,fOe),B=fe.fromRadians(N,e.south,n,dOe),U=i.cartographicToCartesian(S,hOe),V=i.cartographicToCartesian(w,Lne),G=i.cartographicToCartesian(I,mOe),k=i.cartographicToCartesian(L,Nne),W=i.cartographicToCartesian(B,pOe),q=M.projectPointToNearestOnPlane(U,_Oe),J=M.projectPointToNearestOnPlane(V,gOe),j=M.projectPointToNearestOnPlane(G,yOe),K=M.projectPointToNearestOnPlane(k,xOe),Q=M.projectPointToNearestOnPlane(W,bOe);return r=Math.min(J.x,j.x,K.x),s=-r,c=Math.max(J.y,q.y),a=Math.min(K.y,Q.y),w.height=L.height=t,V=i.cartographicToCartesian(w,Lne),k=i.cartographicToCartesian(L,Nne),u=Math.min(cn.getPointDistance(d,V),cn.getPointDistance(d,k)),f=n,One(M.origin,M.xAxis,M.yAxis,M.zAxis,r,s,a,c,u,f,o)}let p=e.south>0,g=e.north<0,m=p?e.south:g?e.north:0,x=re.center(e,Mne).longitude,b=h.fromRadians(x,m,n,i,TOe);b.z=0;let C=Math.abs(b.x)<P.EPSILON10&&Math.abs(b.y)<P.EPSILON10?h.UNIT_X:h.normalize(b,COe),A=h.UNIT_Z,E=h.cross(C,A,AOe);d=cn.fromPointNormal(b,C,IOe);let v=h.fromRadians(x+P.PI_OVER_TWO,m,n,i,EOe);s=h.dot(cn.projectPointOntoPlane(d,v,SOe),E),r=-s,c=h.fromRadians(0,e.north,g?t:n,i,vOe).z,a=h.fromRadians(0,e.south,p?t:n,i,wOe).z;let D=h.fromRadians(e.east,m,n,i,DOe);return u=cn.getPointDistance(d,D),f=0,One(b,E,A,C,r,s,a,c,u,f,o)};ki.fromTransformation=function(e,t){return l(t)||(t=new ki),t.center=F.getTranslation(e,t.center),t.halfAxes=F.getMatrix3(e,t.halfAxes),t.halfAxes=$.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};ki.clone=function(e,t){if(l(e))return l(t)?(h.clone(e.center,t.center),$.clone(e.halfAxes,t.halfAxes),t):new ki(e.center,e.halfAxes)};ki.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]),u=h.dot(i,n)+t.distance;return u<=-c?jt.OUTSIDE:u>=c?jt.INSIDE:jt.INTERSECTING};var kne=new h,Vne=new h,Une=new h,POe=new h,Fne=new h,ROe=new h;ki.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,Bne),i=e.halfAxes,o=$.getColumn(i,0,kne),r=$.getColumn(i,1,Vne),s=$.getColumn(i,2,Une),a=h.magnitude(o),c=h.magnitude(r),u=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,u>0?h.divideByScalar(s,u,s):p=!1;let g=!f+!d+!p,m,x,b;if(g===1){let E=o;m=r,x=s,d?p||(E=s,x=o):(E=r,m=o),b=h.cross(m,x,Fne),E===o?o=b:E===r?r=b:E===s&&(s=b)}else if(g===2){m=o,d?m=r:p&&(m=s);let E=h.UNIT_Y;E.equalsEpsilon(m,P.EPSILON3)&&(E=h.UNIT_X),x=h.cross(m,E,POe),h.normalize(x,x),b=h.cross(m,x,Fne),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=ROe;T.x=h.dot(n,o),T.y=h.dot(n,r),T.z=h.dot(n,s);let C=0,A;return T.x<-a?(A=T.x+a,C+=A*A):T.x>a&&(A=T.x-a,C+=A*A),T.y<-c?(A=T.y+c,C+=A*A):T.y>c&&(A=T.y-c,C+=A*A),T.z<-u?(A=T.z+u,C+=A*A):T.z>u&&(A=T.z-u,C+=A*A),C};var OOe=new h,MOe=new h;ki.computePlaneDistances=function(e,t,n,i){l(i)||(i=new wa);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,kne),u=$.getColumn(a,1,Vne),f=$.getColumn(a,2,Une),d=h.add(c,u,OOe);h.add(d,f,d),h.add(d,s,d);let p=h.subtract(d,t,MOe),g=h.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.add(d,u,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,u,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,u,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,u,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,u,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,u,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,u,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 LOe=new h,NOe=new h,FOe=new h;ki.computeCorners=function(e,t){l(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,LOe),r=$.getColumn(i,1,NOe),s=$.getColumn(i,2,FOe);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 BOe=new $;ki.computeTransformation=function(e,t){l(t)||(t=new F);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,BOe);return F.fromRotationTranslation(i,n,t)};var kOe=new se;ki.isOccluded=function(e,t){let n=se.fromOrientedBoundingBox(e,kOe);return!t.isBoundingSphereVisible(n)};ki.prototype.intersectPlane=function(e){return ki.intersectPlane(this,e)};ki.prototype.distanceSquaredTo=function(e){return ki.distanceSquaredTo(this,e)};ki.prototype.computePlaneDistances=function(e,t,n){return ki.computePlaneDistances(this,e,t,n)};ki.prototype.computeCorners=function(e){return ki.computeCorners(this,e)};ki.prototype.computeTransformation=function(e){return ki.computeTransformation(this,e)};ki.prototype.isOccluded=function(e){return ki.isOccluded(this,e)};ki.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};ki.prototype.clone=function(e){return ki.clone(this,e)};ki.prototype.equals=function(e){return ki.equals(this,e)};var vn=ki;var sU={};sU.getHeight=function(e,t,n){return(e-n)*t+n};var VOe=new fe;sU.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,VOe);if(!l(r))return h.clone(e,o);let s=sU.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var Cr=sU;var XP=`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 Wg=`#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 zne={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};zne.NUMBER_OF_CLASSIFICATION_TYPES=3;var Vn=Object.freeze(zne);var UOe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},rc=Object.freeze(UOe);function zOe(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 KP=zOe;function Pp(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=HOe(t),o=e.floatingPointTexture,r=i===Ke.FLOAT&&!o,s=GOe(t,r),a=WOe(s,t,r),c=Math.floor(kt.maximumTextureSize/a),u=Math.min(n,c),f=a*u,d=Math.ceil(n/u),p=1/f,g=p*.5,m=1/d,x=m*.5;this._textureDimensions=new z(f,d),this._textureStep=new oe(p,g,m,x),this._pixelDatatype=r?Ke.UNSIGNED_BYTE:i,this._packFloats=r,this._offsets=s,this._stride=a,this._texture=void 0;let b=4*f*d;this._batchValues=i===Ke.FLOAT&&!r?new Float32Array(b):new Uint8Array(b),this._batchValuesDirty=!1}Object.defineProperties(Pp.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});function HOe(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?Ke.FLOAT:Ke.UNSIGNED_BYTE}function Gne(e,t){let n=e[t].componentsPerAttribute;return n===2?z:n===3?h:n===4?oe:Number}function GOe(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 WOe(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 ZP=new oe;function jOe(e,t,n){let i=oe.unpack(e,t,ZP),o=oe.unpackFloat(i);i=oe.unpack(e,t+4,ZP);let r=oe.unpackFloat(i);i=oe.unpack(e,t+8,ZP);let s=oe.unpackFloat(i);i=oe.unpack(e,t+12,ZP);let a=oe.unpackFloat(i);return oe.fromElements(o,r,s,a,n)}function qOe(e,t,n){let i=oe.packFloat(e.x,ZP);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 Hne=new oe;Pp.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!==Ke.UNSIGNED_BYTE?a=jOe(this._batchValues,s,Hne):a=oe.unpack(this._batchValues,s,Hne);let c=Gne(i,t);return l(c.fromCartesian4)?c.fromCartesian4(a,n):l(c.clone)?c.clone(a,n):a.x};var YOe=[void 0,void 0,new z,new h,new oe],XOe=new oe;Pp.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,o=YOe[i[t].componentsPerAttribute],r=this.getBatchedAttribute(e,t,o),s=Gne(this._attributes,t);if(l(s.equals)?s.equals(r,n):r===n)return;let c=XOe;c.x=l(n.x)?n.x:n,c.y=l(n.y)?n.y:0,c.z=l(n.z)?n.z:0,c.w=l(n.w)?n.w:0;let u=this._offsets[t],d=4*this._stride*e+4*u;this._packFloats&&i[t].componentDatatype!==Ke.UNSIGNED_BYTE?qOe(c,this._batchValues,d):oe.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function KOe(e,t){let n=e._textureDimensions;e._texture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:$t.NEAREST,flipY:!1})}function ZOe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Pp.prototype.update=function(e){l(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,l(this._texture)||KOe(this,e.context),ZOe(this))};Pp.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:yt(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function $Oe(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 QOe(e){return e===1?"float":`vec${e}`}function JOe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function eMe(e,t){let i=e._attributes[t],o=i.componentsPerAttribute,r=i.functionName,s=QOe(o),a=JOe(o),c=e._offsets[t],u=`${s} ${r}(float batchId) 
{ 
    vec2 st = computeSt(batchId); 
    st.x += batchTextureStep.x * float(${c}); 
`;return e._packFloats&&i.componentDatatype!==Ke.UNSIGNED_BYTE?u+=`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))); 
`:u+=`    vec4 textureValue = texture(batchTexture, st); 
`,u+=`    ${s} value = textureValue${a}; 
`,e._pixelDatatype===Ke.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?u+=`value *= 255.0; 
`:e._pixelDatatype===Ke.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(u+=`value /= 255.0; 
`),u+=`    return value; 
} 
`,u}Pp.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture; 
`;t+=`${$Oe(this)}
`;let n=e.length;for(let i=0;i<n;++i)t+=eMe(this,i);return function(i){let o=i.indexOf("void main"),r=i.substring(0,o),s=i.substring(o);return`${r}
${t}
${s}`}};Pp.prototype.isDestroyed=function(){return!1};Pp.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var Ex=Pp;function Dl(e){this._ellipsoid=y(e,ee.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(Dl.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});Dl.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};Dl.geodeticLatitudeToMercatorAngle=function(e){e>Dl.MaximumLatitude?e=Dl.MaximumLatitude:e<-Dl.MaximumLatitude&&(e=-Dl.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};Dl.MaximumLatitude=Dl.mercatorAngleToGeodeticLatitude(Math.PI);Dl.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=Dl.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};Dl.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=Dl.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var wi=Dl;function tMe(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(!F.equals(s,e[r].modelMatrix)){i=!0;break}}if(i)for(r=0;r<o;++r)l(e[r].geometry)&&Ln.transformToWorldCoordinates(e[r]);else F.multiplyTransformation(t,e[0].modelMatrix,t)}function o9(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 nMe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];l(i.geometry)?o9(i.geometry,n):l(i.westHemisphereGeometry)&&l(i.eastHemisphereGeometry)&&(o9(i.westHemisphereGeometry,n),o9(i.eastHemisphereGeometry,n))}}function iMe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,o=e.scene3DOnly,r=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,u,f,d=t.length;for(c=0;c<d;++c)if(l(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(tMe(t,a,o),!o)for(c=0;c<d;++c)l(t[c].geometry)&&Ln.splitLongitude(t[c]);if(nMe(t),r)for(c=0;c<d;++c){let g=t[c];l(g.geometry)?(Ln.reorderForPostVertexCache(g.geometry),Ln.reorderForPreVertexCache(g.geometry)):l(g.westHemisphereGeometry)&&l(g.eastHemisphereGeometry)&&(Ln.reorderForPostVertexCache(g.westHemisphereGeometry),Ln.reorderForPreVertexCache(g.westHemisphereGeometry),Ln.reorderForPostVertexCache(g.eastHemisphereGeometry),Ln.reorderForPreVertexCache(g.eastHemisphereGeometry))}let p=Ln.combineInstances(t);for(d=p.length,c=0;c<d;++c){u=p[c];let g=u.attributes;if(o)for(let m in g)g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE&&Ln.encodeAttribute(u,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`;Ln.projectTo2D(u,m,x,b,n),l(u.boundingSphere)&&m==="position"&&(u.boundingSphereCV=se.fromVertices(u.attributes.position2D.values)),Ln.encodeAttribute(u,x,`${x}High`,`${x}Low`),Ln.encodeAttribute(u,b,`${b}High`,`${b}Low`)}s&&Ln.compressVertices(u)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)u=p[c],g=g.concat(Ln.fitToUnsignedShortIndices(u));p=g}return p}function r9(e,t,n,i){let o,r,s,a=i.length-1;if(a>=0){let u=i[a];o=u.offset+u.count,s=u.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let u=0;u<c;++u){let d=e[u][t];if(!l(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 oMe(e,t){let n=[];return r9(e,"geometry",t,n),r9(e,"westHemisphereGeometry",t,n),r9(e,"eastHemisphereGeometry",t,n),n}var Rp={};Rp.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=iMe(e),t.length>0&&(n=Ln.createAttributeLocations(t[0]),e.createPickOffsets&&(r=oMe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),u=new Array(o);for(let f=0;f<o;++f){let d=i[f],p=d.geometry;l(p)&&(c[f]=p.boundingSphere,u[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,m=d.westHemisphereGeometry;l(g)&&l(m)&&(l(g.boundingSphere)&&l(m.boundingSphere)&&(c[f]=se.union(g.boundingSphere,m.boundingSphere)),l(g.boundingSphereCV)&&l(m.boundingSphereCV)&&(u[f]=se.union(g.boundingSphereCV,m.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:r,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:u}};function rMe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];l(o)&&l(o.values)&&t.push(o.values.buffer)}l(e.indices)&&t.push(e.indices.buffer)}function sMe(e,t){let n=e.length;for(let i=0;i<n;++i)rMe(e[i],t)}function aMe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let o=e[i];if(++t,!l(o))continue;let r=o.attributes;t+=7+2*se.packedLength+(l(o.indices)?o.indices.length:0);for(let s in r)if(r.hasOwnProperty(s)&&l(r[s])){let a=r[s];t+=5+a.values.length}}return t}Rp.packCreateGeometryResults=function(e,t){let n=new Float64Array(aMe(e)),i=[],o={},r=e.length,s=0;n[s++]=r;for(let a=0;a<r;a++){let c=e[a],u=l(c);if(n[s++]=u?1:0,!u)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=l(c.boundingSphere)?1:0;n[s++]=f,f&&se.pack(c.boundingSphere,n,s),s+=se.packedLength;let d=l(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)&&l(p[x])&&(g.push(x),l(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=l(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}};Rp.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++],u=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,C=new fn,A=n[s++];for(i=0;i<A;i++){let v=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++];C[v]=new Se({componentDatatype:D,componentsPerAttribute:T,normalize:O,values:b})}let E;if(x=n[s++],x>0){let v=b.length/T;for(E=Ne.createTypedArray(v,x),i=0;i<x;i++)E[i]=n[s++]}o[r++]=new at({primitiveType:c,geometryType:u,boundingSphere:d,boundingSphereCV:p,indices:E,attributes:C,offsetAttribute:f})}return o};function cMe(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(F.pack(s.modelMatrix,i,o),o+=F.packedLength,l(s.attributes)&&l(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 lMe(e){let t=e,n=new Array(t[0]),i=0,o=1;for(;o<t.length;){let r=F.unpack(t,o),s;o+=F.packedLength,l(t[o])&&(s={offset:new Qi(t[o],t[o+1],t[o+2])}),o+=3,n[i++]={modelMatrix:r,attributes:s}}return n}Rp.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:cMe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof vi,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};Rp.unpackCombineGeometryParameters=function(e){let t=lMe(e.packedInstances),n=e.createGeometryResults,i=n.length,o=0;for(let a=0;a<i;a++){let c=Rp.unpackCreateGeometryResults(n[a]),u=c.length;for(let f=0;f<u;f++){let d=c[f],p=t[o];p.geometry=d,++o}}let r=ee.clone(e.ellipsoid),s=e.isGeographic?new vi(r):new wi(r);return{instances:t,ellipsoid:r,projection:s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:F.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function Wne(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];l(s)?(i[o++]=1,se.pack(e[r],i,o)):i[o++]=0,o+=se.packedLength}return i}function jne(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}Rp.packCombineGeometryResults=function(e,t){l(e.geometries)&&sMe(e.geometries,t);let n=Wne(e.boundingSpheres),i=Wne(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}};Rp.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:jne(e.boundingSpheres),boundingSpheresCV:jne(e.boundingSpheresCV)}};var Sx=Rp;var uMe={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},Ar=Object.freeze(uMe);var mu={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};mu.NUMBER_OF_SHADOW_MODES=4;mu.castShadows=function(e){return e===mu.ENABLED||e===mu.CAST_ONLY};mu.receiveShadows=function(e){return e===mu.ENABLED||e===mu.RECEIVE_ONLY};mu.fromCastReceive=function(e,t){return e&&t?mu.ENABLED:e?mu.CAST_ONLY:t?mu.RECEIVE_ONLY:mu.DISABLED};var yn=Object.freeze(mu);function Er(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=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,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,yn.DISABLED),this._translucent=void 0,this._state=Ar.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(Er.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 fMe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&l(i[o])){let r=i[o],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[o];if(!l(c)||r.componentDatatype!==c.componentDatatype||r.componentsPerAttribute!==c.componentsPerAttribute||r.normalize!==c.normalize){s=!1;break}}s&&n.push(o)}return n}var dMe=new z,hMe=new h,eie=new oe;function tie(e){let t=e.length;if(t===1)return e[0];if(t===2)return z.unpack(e,0,dMe);if(t===3)return h.unpack(e,0,hMe);if(t===4)return oe.unpack(e,0,eie)}function mMe(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],o=i.length;if(o===0)return;let r=fMe(i),s=r.length,a=[],c={},u={},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}),u.center3DHigh=a.length-5,u.center3DLow=a.length-4,u.center2DHigh=a.length-3,u.center2DLow=a.length-2,u.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 Ex(t,a,o);for(g=0;g<o;++g){let C=i[g];p=C.attributes;for(let O=0;O<s;++O){m=r[O],x=p[m];let R=tie(x.value),M=c[m];T.setBatchedAttribute(g,M,R)}let A={primitive:y(C.pickPrimitive,e)};l(C.id)&&(A.id=C.id);let E=t.createPickId(A);e._pickIds.push(E);let v=E.color,D=eie;D.x=H.floatToByte(v.red),D.y=H.floatToByte(v.green),D.z=H.floatToByte(v.blue),D.w=H.floatToByte(v.alpha),T.setBatchedAttribute(g,b-1,D)}e._batchTable=T,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=u,e._batchTableOffsetAttribute2DIndex=f}function pMe(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 _Me(e){let t=e.attributes,n=new fn;for(let o in t)t.hasOwnProperty(o)&&l(t[o])&&(n[o]=pMe(t[o]));let i;if(l(e.indices)){let o=e.indices;Array.isArray(o)?i=o.slice(0):i=new o.constructor(o)}return new at({attributes:n,indices:i,primitiveType:e.primitiveType,boundingSphere:se.clone(e.boundingSphere)})}function gMe(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:F.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var yMe=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;Er._modifyShaderPosition=function(e,t,n){let i,o="",r="",s="";for(;(i=yMe.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(o+=`${c};
`),l(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(`
`)};Er._appendShowToShader=function(e,t){return l(e._batchTableAttributeIndices.show)?`${Ue.replaceMain(t,"czm_non_show_main")}
void main() 
{ 
    czm_non_show_main(); 
    gl_Position *= czm_batchTable_show(batchId); 
}`:t};Er._updateColorAttribute=function(e,t,n){if(!l(e._batchTableAttributeIndices.color)&&!l(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 qne(e){return`${Ue.replaceMain(e,"czm_non_pick_main")}
out vec4 v_pickColor; 
void main() 
{ 
    czm_non_pick_main(); 
    v_pickColor = czm_batchTable_pickColor(batchId); 
}`}function Yne(e){return`in vec4 v_pickColor;
${e}`}Er._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};Er._appendOffsetToShader=function(e,t){if(!l(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};Er._appendDistanceDisplayConditionToShader=function(e,t,n){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=Ue.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 Xne(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",u=`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=Ue.replaceMain(p,"czm_non_compressed_main");let g=`void main() 
{ 
${d}    czm_non_compressed_main(); 
}`;return[u,f,p,g].join(`
`)}function xMe(e){let t=Ue.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() {
    czm_non_depth_clamp_main();
    gl_Position = czm_depthClamp(gl_Position);}
`,t}function bMe(e){let t=Ue.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 Kne(e,t){let n=e.vertexAttributes}function TMe(e,t){return function(){return e[t]}}var s9=Math.max(Ht.hardwareConcurrency-1,1),aU,CMe=new pi("combineGeometry");function AMe(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===Ar.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],u=[];for(o=0;o<a;++o)i=n[o].geometry,s.push(n[o].id),u.push({moduleName:i._workerName,modulePath:i._workerPath,geometry:i});if(!l(aU))for(aU=new Array(s9),o=0;o<s9;o++)aU[o]=new pi("createGeometry");let f;for(u=KP(u,s9),o=0;o<u.length;o++){let d=0,p=u[o],g=p.length;for(r=0;r<g;++r)f=p[r],i=f.geometry,l(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,l(i.constructor.pack)&&(i.constructor.pack(i,x,f.offset),f.geometry=x)}c.push(aU[o].scheduleTask({subTasks:u[o]},m))}e._state=Ar.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=Ar.CREATED}).catch(function(d){QP(e,t,Ar.FAILED,d)})}else if(e._state===Ar.CREATED){let a=[];n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let c=t.scene3DOnly,u=t.mapProjection,f=CMe.scheduleTask(Sx.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:u.ellipsoid,projection:u,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=Ar.COMBINING,Promise.resolve(f).then(function(d){let p=Sx.unpackCombineGeometryResults(d);e._geometries=p.geometries,e._attributeLocations=p.attributeLocations,e.modelMatrix=F.clone(p.modelMatrix,e.modelMatrix),e._pickOffsets=p.pickOffsets,e._offsetInstanceExtend=p.offsetInstanceExtend,e._instanceBoundingSpheres=p.boundingSpheres,e._instanceBoundingSpheresCV=p.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Ar.COMBINED):QP(e,t,Ar.FAILED,void 0)}).catch(function(d){QP(e,t,Ar.FAILED,d)})}}function EMe(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;l(p.attributes)&&l(p.primitiveType)?g=_Me(p):g=p.constructor.createGeometry(p),o[c++]=gMe(s,g),r.push(s.id)}o.length=c;let u=t.scene3DOnly,f=t.mapProjection,d=Sx.combineGeometry({instances:o,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:u,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=d.geometries,e._attributeLocations=d.attributeLocations,e.modelMatrix=F.clone(d.modelMatrix,e.modelMatrix),e._pickOffsets=d.pickOffsets,e._offsetInstanceExtend=d.offsetInstanceExtend,e._instanceBoundingSpheres=d.boundingSpheres,e._instanceBoundingSpheresCV=d.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Ar.COMBINED):QP(e,t,Ar.FAILED,void 0)}function SMe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(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),rie(x,b,o[i])}let c=[],u=[],f=[];for(i=0;i<s;++i){let x=a[i];x.center.x-x.radius>0||se.intersectPlane(x,cn.ORIGIN_ZX_PLANE)!==jt.INTERSECTING?c.push(x):(u.push(x),f.push(x))}let d=c[0],p=f[0],g=u[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<u.length;i++)g=se.union(g,u[i]);let m=[];for(l(d)&&m.push(d),l(p)&&m.push(p),l(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])}Er._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var Zne=new Gn,nie=new fe,iie=new h,oie=new se;function vMe(e,t){if(!l(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,u=t.mapProjection,f=u.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let m=0;m<g;++m){let x=p[m];if(!l(x))continue;let b=e.modelMatrix;l(b)&&(x=se.transform(x,b,oie));let T=x.center,C=x.radius,A=Gn.fromCartesian(T,Zne);if(d.setBatchedAttribute(m,o,A.high),d.setBatchedAttribute(m,r,A.low),!t.scene3DOnly){let E=f.cartesianToCartographic(T,nie),v=u.project(E,iie);A=Gn.fromCartesian(v,Zne),d.setBatchedAttribute(m,s,A.high),d.setBatchedAttribute(m,a,A.low)}d.setBatchedAttribute(m,c,C)}e._batchTableBoundingSpheresUpdated=!0}var a9=new h,wMe=new h;function $ne(e,t){if(!l(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 u=0;u<c;++u){let f=a[u];if(!l(f))continue;let d=s.getBatchedAttribute(u,e._batchTableAttributeIndices.offset);if(h.equals(d,h.ZERO)){s.setBatchedAttribute(u,i,h.ZERO);continue}let p=e.modelMatrix;l(p)&&(f=se.transform(f,p,oie));let g=f.center;g=r.scaleToGeodeticSurface(g,wMe);let m=r.cartesianToCartographic(g,nie),x=o.project(m,iie),b=h.add(d,g,a9);m=r.cartesianToCartographic(b,m);let T=o.project(m,a9),C=h.subtract(T,x,a9),A=C.x;C.x=C.z,C.z=C.y,C.y=A,s.setBatchedAttribute(u,i,C)}e._batchTableOffsetsUpdated=!0}function DMe(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 u=i[c];if(s.push(ti.fromGeometry({context:r,geometry:u,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW,interleave:e._interleave})),l(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,u);else if(e._boundingSpheres.push(se.clone(u.boundingSphere)),e._boundingSphereWC.push(new se),!o){let f=u.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(u.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,QP(e,t,Ar.COMPLETE,void 0)}function IMe(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),l(e._depthFailAppearance)&&(r.depthTest.enabled=!1),l(e._depthFailAppearance)&&(o=e._depthFailAppearance.getRenderState(),r=Ge(o,!1),r.depthTest.func=rc.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 PMe(e,t,n){let i=t.context,o=e._attributeLocations,r=e._batchTable.getVertexShaderCallback()(n.vertexShaderSource);r=Er._appendOffsetToShader(e,r),r=Er._appendShowToShader(e,r),r=Er._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=qne(r),r=Er._updateColorAttribute(e,r,!1),r=Xne(e,r),r=Er._modifyShaderPosition(e,r,t.scene3DOnly);let s=n.getFragmentShaderSource();s=Yne(s),e._sp=Qt.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),Kne(e._sp,o),l(e._depthFailAppearance)&&(r=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),r=Er._appendShowToShader(e,r),r=Er._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=qne(r),r=Er._updateColorAttribute(e,r,!0),r=Xne(e,r),r=Er._modifyShaderPosition(e,r,t.scene3DOnly),r=xMe(r),s=e._depthFailAppearance.getFragmentShaderSource(),s=Yne(s),s=bMe(s),e._spDepthFail=Qt.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),Kne(e._spDepthFail,o))}var $P=new F,Qne=new h;function Jne(e,t,n,i){let o=l(n)?n._uniforms:void 0,r={},s=t.uniforms;if(l(s))for(let c in s)s.hasOwnProperty(c)&&(r[c]=TMe(s,c));let a=yt(r,o);return a=e._batchTable.getUniformMapCallback()(a),l(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return F.multiply(c,e._modelMatrix,$P),F.multiplyByPoint($P,e.rtcCenter,Qne),F.setTranslation($P,Qne,$P),$P}),a}function RMe(e,t,n,i,o,r,s,a){let c=Jne(e,t,n,a),u;l(e._depthFailAppearance)&&(u=Jne(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?ve.TRANSLUCENT:ve.OPAQUE,d=o?2:1;d*=l(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],l(x)||(x=r[m]=new Ze({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],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,l(e._depthFailAppearance)&&(o&&(++m,x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++m,x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++g}}Er._updateBoundingVolumes=function(e,t,n,i){let o,r,s;if(i||!F.equals(n,e._modelMatrix))for(F.clone(n,e._modelMatrix),r=e._boundingSpheres.length,o=0;o<r;++o)s=e._boundingSpheres[o],l(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(l(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 OMe(e,t,n,i,o,r,s,a){Er._updateBoundingVolumes(e,t,o);let c;t.mode===ne.SCENE3D?c=e._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===ne.SCENE2D&&l(e._boundingSphere2D)?c=e._boundingSphere2D:l(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let u=t.commandList,f=t.passes;if(f.render||f.pick){let d=e.allowPicking,p=yn.castShadows(e.shadows),g=yn.receiveShadows(e.shadows),m=n.length,x=a?2:1;x*=l(e._depthFailAppearance)?2:1;for(let b=0;b<m;++b){let T=Math.floor(b/x),C=n[b];C.modelMatrix=o,C.boundingVolume=c[T],C.cull=r,C.debugShowBoundingVolume=s,C.castShadows=p,C.receiveShadows=g,d?C.pickId="v_pickColor":C.pickId=void 0,u.push(C)}}}Er.prototype.update=function(e){if(!l(this.geometryInstances)&&this._va.length===0||l(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!l(this.appearance)||e.mode!==ne.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(l(this._error))throw this._error;if(this._state===Ar.FAILED)return;let t=e.context;if(l(this._batchTable)||mMe(this,t),this._batchTable.attributes.length>0){if(kt.maximumVertexTextureImageUnits===0)throw new ce("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!==Ar.COMPLETE&&this._state!==Ar.COMBINED&&(this.asynchronous?AMe(this,e):EMe(this,e)),this._state===Ar.COMBINED&&(vMe(this,e),$ne(this,e),DMe(this,e)),!this.show||this._state!==Ar.COMPLETE)return;this._batchTableOffsetsUpdated||$ne(this,e),this._recomputeBoundingSpheres&&SMe(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=l(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),l(this._material)&&this._material.update(t);let u=n.closed&&c;o&&y(this._createRenderStatesFunction,IMe)(this,t,n,u),r&&y(this._createShaderProgramFunction,PMe)(this,e,n),(o||r)&&y(this._createCommandsFunction,RMe)(this,n,i,c,u,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,OMe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,u)};var MMe=new se,LMe=new se;function rie(e,t,n){if(n===an.TOP){let i=se.clone(e,MMe),o=se.clone(e,LMe);o.center=h.add(o.center,t,o.center),e=se.union(i,o,e)}else n===an.ALL&&(e.center=h.add(e.center,t,e.center));return e}function NMe(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 l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function FMe(e,t,n,i,o){return function(r){let s=tie(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var BMe=new h;function kMe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&rie(i,h.fromArray(r.get(),0,BMe),e._offsetInstanceExtend[n]),l(o)&&(i=se.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function VMe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}Er.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let u=0;u<r;++u){let f=(i+u)%r;if(e===o[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let u in a)if(a.hasOwnProperty(u)){let f=a[u];c[u]={get:NMe(s,n,f),set:FMe(s,n,f,this,u)}}return kMe(this,c,n),VMe(this,c,n),Object.defineProperties(t,c),this._lastPerInstanceAttributeIndex=n,this._perInstanceAttributeCache.set(e,t),t};Er.prototype.isDestroyed=function(){return!1};Er.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,ue(this)};function QP(e,t,n,i){e._error=i,e._state=n,t.afterRender.push(function(){e._ready=e._state===Ar.COMPLETE||e._state===Ar.FAILED})}var Dn=Er;function UMe(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 sc=UMe;var oA=`#ifdef TEXTURE_COORDINATES
#ifdef SPHERICAL
in vec4 v_sphericalExtents;
#else // SPHERICAL
in vec2 v_inversePlaneExtents;
in vec4 v_westPlane;
in vec4 v_southPlane;
#endif // SPHERICAL
in vec3 v_uvMinAndSphericalLongitudeRotation;
in vec3 v_uMaxAndInverseDistance;
in vec3 v_vMaxAndInverseDistance;
#endif // TEXTURE_COORDINATES

#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;
    // Sample depths at both offset and negative offset
    float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw));
    float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw));
    // Explicitly evaluate both paths
    // Necessary for multifrustum and for edges of the screen
    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 // NORMAL_EC

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
    // Treat world coords as a sphere normal for spherical coordinates
    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 // SPHERICAL
    // Unpack planes and transform to eye space
    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 // SPHERICAL
#endif // TEXTURE_COORDINATES

#ifdef PICK
#ifdef CULL_FRAGMENTS
    // When classifying translucent geometry, logDepthOrDepth == 0.0
    // indicates a region that should not be classified, possibly due to there
    // being opaque pixels there in another buffer.
    // Check for logDepthOrDepth != 0.0 to make sure this should be classified.
    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; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource
        czm_writeDepthClamp();
    }
#else // CULL_FRAGMENTS
        out_FragColor.a = 1.0;
#endif // CULL_FRAGMENTS
#else // PICK

#ifdef CULL_FRAGMENTS
    // When classifying translucent geometry, logDepthOrDepth == 0.0
    // indicates a region that should not be classified, possibly due to there
    // being opaque pixels there in another buffer.
    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
    // Compute normal by sampling adjacent pixels in 2x2 block in screen space
    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 // FLAT
    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 // FLAT

    // Premultiply alpha. Required for classification primitives on translucent globe.
    out_FragColor.rgb *= out_FragColor.a;

#else // PER_INSTANCE_COLOR

    // Material support.
    // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or
    // dependencies for culling but might not actually be used by the material.

    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
    // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired
    // texture coordinate system, which typically forms a tight oriented bounding box around the geometry.
    // Shader is provided a set of reference points for remapping.
    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 // FLAT
    out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC);
#endif // FLAT

    // Premultiply alpha. Required for classification primitives on translucent globe.
    out_FragColor.rgb *= out_FragColor.a;

#endif // PER_INSTANCE_COLOR
    czm_writeDepthClamp();
#endif // PICK
}
`;function Ef(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new c9;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new c9;if(o.requiresTextureCoordinates=e,n instanceof ln)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}Ef.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 ln&&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 ln||(o=t.material.shaderSource),new Ue({defines:i,sources:[o,oA]})};Ef.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 Ue({defines:n,sources:[oA],pickColorQualifier:"in"})};Ef.prototype.createVertexShader=function(e,t,n,i){return hie(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};Ef.prototype.createPickVertexShader=function(e,t,n,i){return hie(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var sie=new h,aie=new fe,cie={high:0,low:0};function hie(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let u=aie;u.longitude=P.PI,u.latitude=0,u.height=0;let f=s.project(u,sie),d=Gn.encode(f.x,cie);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=aie;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,sie);d=Gn.encode(g.x,cie),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)),l(r)&&r instanceof ln&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new Ue({defines:c,sources:[o]})}function c9(){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(c9.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 lie(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)/z.distance(t,e)}var zMe=[new z,new z,new z,new z];function mie(e,t){let n=zMe,i=z.unpack(t,0,n[0]),o=z.unpack(t,2,n[1]),r=z.unpack(t,4,n[2]);e.uMaxVmax=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/lie(i,o,r),a=1/lie(i,r,o);e.uvMinAndExtents=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var pie=new fe,_ie=new h,HMe=new h,GMe=new h,cU={high:0,low:0};function gie(e,t,n){let i=pie;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,_ie);i.latitude=e.north;let r=t.project(i,HMe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,GMe),a=[0,0,0,0],c=[0,0,0,0],u=Gn.encode(o.x,cU);a[0]=u.high,c[0]=u.low,u=Gn.encode(o.y,cU),a[1]=u.high,c[1]=u.low,u=Gn.encode(r.y,cU),a[2]=u.high,c[2]=u.low,u=Gn.encode(s.x,cU),a[3]=u.high,c[3]=u.low,n.planes2D_HIGH=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var WMe=new F,jMe=new F,uie=new h,qMe=new fe,YMe=[new fe,new fe,new fe,new fe,new fe,new fe,new fe,new fe];function XMe(e,t,n,i,o,r){let s=re.center(e,qMe);s.height=n;let a=fe.toCartesian(s,t,uie),c=Mt.eastNorthUpToFixedFrame(a,t,WMe),u=F.inverse(c,jMe),f=e.west,d=e.east,p=e.north,g=e.south,m=YMe;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,C=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY,E=Number.NEGATIVE_INFINITY;for(let R=0;R<8;R++){m[R].height=n;let M=fe.toCartesian(m[R],t,uie);F.multiplyByPoint(u,M,M),M.z=0,T=Math.min(T,M.x),C=Math.max(C,M.x),A=Math.min(A,M.y),E=Math.max(E,M.y)}let v=i;v.x=T,v.y=A,v.z=0,F.multiplyByPoint(c,v,v);let D=o;D.x=C,D.y=A,D.z=0,F.multiplyByPoint(c,D,D),h.subtract(D,v,o);let O=r;O.x=T,O.y=E,O.z=0,F.multiplyByPoint(c,O,O),h.subtract(O,v,r)}var KMe=new h,ZMe=new h,$Me=new Gn;Ef.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=_ie,s=KMe,a=ZMe;XMe(e,n,y(o,0),r,s,a);let c={};mie(c,t);let u=Gn.fromCartesian(r,$Me);return c.southWest_HIGH=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.high,[0,0,0])}),c.southWest_LOW=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.low,[0,0,0])}),c.eastward=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),gie(e,i,c),c};var QMe=new h;function fie(e,t,n,i){let o=pie;o.latitude=e,o.longitude=t,o.height=0;let r=fe.toCartesian(o,n,QMe),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 die=new z;Ef.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=fie(e.south,e.west,n,die),r=o.x,s=o.y,a=fie(e.north,e.east,n,die),c=a.x,u=a.y,f=0;s>u&&(f=P.PI-s,s=-P.PI,u+=f),r-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,u+=P.EPSILON5;let d=1/(u-s),p=1/(c-r),g={sphericalExtents:new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new sc({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return mie(g,t),gie(e,i,g),g};Ef.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};Ef.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function JMe(e){return Math.max(e.width,e.height)>Ef.MAX_WIDTH_FOR_PLANAR_EXTENTS}Ef.shouldUseSphericalCoordinates=function(e){return JMe(e)};Ef.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var pu=Ef;var eLe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},Un=Object.freeze(eLe);var tLe={ZERO:te.ZERO,KEEP:te.KEEP,REPLACE:te.REPLACE,INCREMENT:te.INCR,DECREMENT:te.DECR,INVERT:te.INVERT,INCREMENT_WRAP:te.INCR_WRAP,DECREMENT_WRAP:te.DECR_WRAP},ft=Object.freeze(tLe);var lU={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};lU.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Un.ALWAYS,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.REPLACE},backFunction:Un.ALWAYS,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.REPLACE},reference:lU.CESIUM_3D_TILE_MASK,mask:lU.CESIUM_3D_TILE_MASK}};var Vt=Object.freeze(lU);function vx(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,Vn.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(vx.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}}});vx.isSupported=function(e){return e.context.stencilBuffer};function rA(e,t){let n=t?Un.EQUAL:Un.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:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL},depthMask:!1}}function u9(e){return{stencilTest:{enabled:e,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var nLe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function iLe(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=Ve.fromCache(rA(o,!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(rA(o,!0)),e._rsColorPass=Ve.fromCache(u9(o,!1)),e._rsPickPass=Ve.fromCache(nLe)}function oLe(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=Ue.replaceMain(s,"czm_non_compressed_main");let a=`void main() 
{ 
${r}    czm_non_compressed_main(); 
}`;return[i,o,s,a].join(`
`)}}function rLe(e,t){let n=t.context,i=e._primitive,o=XP;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=Dn._appendDistanceDisplayConditionToShader(i,o),o=Dn._modifyShaderPosition(e,o,t.scene3DOnly),o=Dn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=oLe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new Ue({defines:[a],sources:[o]}),u=new Ue({sources:[Wg]}),f=e._primitive._attributeLocations,d=new pu(s,r,e.appearance);if(e._spStencil=Qt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f}),e._primitive.allowPicking){let m=Ue.createPickVertexShaderSource(o);m=Dn._appendShowToShader(i,m),m=Dn._updatePickColorAttribute(m);let x=d.createPickFragmentShader(!1),b=d.createPickVertexShader([a],m,!1,t.mapProjection);if(e._spPick=Qt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f}),s){let T=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(T)){let C=d.createPickFragmentShader(!0),A=d.createPickVertexShader([a],m,!0,t.mapProjection);T=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:A,fragmentShaderSource:C,attributeLocations:f})}e._spPick2D=T}}else e._spPick=Qt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});o=Dn._appendShowToShader(i,o),c=new Ue({defines:[a],sources:[o]}),e._sp=Qt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=Qt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let m=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(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 sLe(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),u=e._needs2DShader;for(o=0;o<i;o+=2){let g=n._va[a++];r=t[o],l(r)||(r=t[o]=new Ze({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsStencilDepthPass,r.shaderProgram=e._sp,r.uniformMap=c,r.pass=ve.TERRAIN_CLASSIFICATION,s=Ze.shallowClone(r,r.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,r=t[o+1],l(r)||(r=t[o+1]=new Ze({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsColorPass,r.shaderProgram=e._spColor,r.pass=ve.TERRAIN_CLASSIFICATION;let x=e.appearance.material;if(l(x)&&(c=yt(c,x._uniforms)),r.uniformMap=c,s=Ze.shallowClone(r,r.derivedCommands.tileset),s.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,u){let b=Ze.shallowClone(r,r.derivedCommands.appearance2D);b.shaderProgram=e._spColor2D,r.derivedCommands.appearance2D=b,b=Ze.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]=Ze.shallowClone(t[p],f[g]);m.shaderProgram=d,m.pass=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function aLe(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,u,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]),u=t[c],l(u)||(u=t[c]=new Ze({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsStencilDepthPass,u.shaderProgram=e._sp,u.uniformMap=p,u.pass=ve.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=Ze.shallowClone(u,u.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,u=t[c+1],l(u)||(u=t[c+1]=new Ze({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsPickPass,u.shaderProgram=e._spPick,u.uniformMap=p,u.pass=ve.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=Ze.shallowClone(u,u.derivedCommands.tileset),f.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,g){let x=Ze.shallowClone(u,u.derivedCommands.pick2D);x.shaderProgram=e._spPick2D,u.derivedCommands.pick2D=x,x=Ze.shallowClone(f,f.derivedCommands.pick2D),x.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=x}}}function cLe(e,t,n,i,o,r,s){sLe(e,r),aLe(e,s)}function yie(e,t){return Math.floor(e%t/2)}function l9(e,t,n,i,o,r){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,e.debugShowBoundingVolume=r,t.commandList.push(e)}function xie(e,t,n,i,o){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,t.commandList.push(e)}function lLe(e,t,n,i,o,r,s,a){let c=e._primitive;Dn._updateBoundingVolumes(c,t,o);let u;t.mode===ne.SCENE3D?u=c._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?u=c._boundingSphereCV:t.mode===ne.SCENE2D&&l(c._boundingSphere2D)?u=c._boundingSphere2D:l(c._boundingSphereMorph)&&(u=c._boundingSphereMorph);let f=e.classificationType,d=f!==Vn.CESIUM_3D_TILE,p=f!==Vn.TERRAIN,g=t.passes,m,x,b;if(g.render){let T=n.length;for(m=0;m<T;++m)x=u[yie(m,T)],d&&(b=n[m],l9(b,t,o,r,x,s)),p&&(b=n[m].derivedCommands.tileset,l9(b,t,o,r,x,s));if(t.invertClassification){let C=e._commandsIgnoreShow,A=C.length;for(m=0;m<A;++m)x=u[m],b=C[m],l9(b,t,o,r,x,s)}}if(g.pick){let T=i.length,C=c._pickOffsets;for(m=0;m<T;++m){let A=C[yie(m,T)];x=u[A.index],d&&(b=i[m],xie(b,t,o,r,x)),p&&(b=i[m].derivedCommands.tileset,xie(b,t,o,r,x))}}}vx.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;let t=this.appearance;l(t)&&l(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s,a,c,u=!1,f=!0,d,p=!1,g=!1;for(r>0&&(c=o[0].attributes,p=pu.hasAttributesForSphericalExtents(c),g=pu.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<r;s++){a=o[s];let x=a.attributes.color;l(x)&&(u=!0),f=f&&l(x)&&Wt.equals(d,x)}if(!f&&!p&&!g)throw new he("All GeometryInstances must have the same color attribute except via GroundPrimitives");u&&!l(t)&&(t=new ln({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=u;let m=new Array(r);for(s=0;s<r;++s)a=o[s],m[s]=new St({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=m,l(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(x,b){n._createBoundingVolumeFunction(x,b)}),i._createRenderStatesFunction=function(x,b,T,C){iLe(n,b)},i._createShaderProgramFunction=function(x,b,T){rLe(n,b)},i._createCommandsFunction=function(x,b,T,C,A,E,v){cLe(n,void 0,void 0,!0,!1,E,v)},l(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){n._updateAndQueueCommandsFunction(x,b,T,C,A,E,v,D)}:i._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){lLe(n,b,T,C,A,E,v,D)},this._primitive=new Dn(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=Ve.fromCache(rA(!1,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(rA(!1,!0)),this._rsColorPass=Ve.fromCache(u9(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=Ve.fromCache(rA(!0,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(rA(!0,!0)),this._rsColorPass=Ve.fromCache(u9(!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(()=>{l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};vx.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};vx.prototype.isDestroyed=function(){return!1};vx.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,ue(this)};var sA=vx;var uLe={u_globeMinimumAltitude:function(){return 55e3}};function Il(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s<r;s++){let a=o[s].attributes;if(l(a)&&l(a.color)){t=new ln({flat:!0});break}}}this.appearance=t,this.geometryInstances=e.geometryInstances,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.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:uLe}}Object.defineProperties(Il.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}}});Il.isSupported=sA.isSupported;function bie(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function Tie(e){return function(t,n){return e._minHeight}}var fLe=new h,dLe=new h,hLe=new h,mLe=new fe,pLe=new re;function uU(e,t){let n=e.mapProjection.ellipsoid;if(!l(t.attributes)||!l(t.attributes.position3DHigh))return l(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,u=Number.NEGATIVE_INFINITY;for(let d=0;d<r;d+=3){let p=h.unpack(i,d,fLe),g=h.unpack(o,d,dLe),m=h.add(p,g,hLe),x=n.cartesianToCartographic(m,mLe),b=x.latitude,T=x.longitude;s=Math.min(s,b),a=Math.min(a,T),c=Math.max(c,b),u=Math.max(u,T)}let f=pLe;return f.north=c,f.south=s,f.east=u,f.west=a,f}function _Le(e,t,n){let i=li.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function gLe(e,t,n){let i=t.mapProjection.ellipsoid,o=uU(t,n),r=vn.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 f9(e,t){return Math.floor(e%t/2)}function d9(e,t,n,i,o,r,s){let a=e._primitive;n.mode!==ne.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 Cie(e,t,n,i,o,r){let s=e._primitive;n.mode!==ne.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 yLe(e,t,n,i,o,r,s,a){let c;t.mode===ne.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let u=e.classificationType,f=u!==Vn.CESIUM_3D_TILE,d=u!==Vn.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[f9(m,T)],f&&(b=n[m],d9(e,b,t,o,r,x,s)),d&&(b=n[m].derivedCommands.tileset,d9(e,b,t,o,r,x,s));if(t.invertClassification){let C=g._commandsIgnoreShow,A=C.length;for(m=0;m<A;++m)x=c[m],b=C[m],d9(e,b,t,o,r,x,s)}}if(p.pick){let T=i.length,C;for(e._useFragmentCulling||(C=g._primitive._pickOffsets),m=0;m<T;++m){if(x=c[f9(m,T)],!e._useFragmentCulling){let A=C[f9(m,T)];x=c[A.index]}f&&(b=i[m],Cie(e,b,t,o,r,x)),d&&(b=i[m].derivedCommands.tileset,Cie(e,b,t,o,r,x))}}}Il.initializeTerrainHeights=function(){return li.initialize()};Il.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!li.initialized){Il.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!l(this._primitive)){let i=e.mapProjection.ellipsoid,o,r,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,u=new Array(c),f,d;for(f=0;f<c;++f){o=a[f],r=o.geometry;let x=uU(e,r);l(d)?l(x)&&re.union(d,x,d):d=re.clone(x);let b=o.id;if(l(b)&&l(x)){let T=li.getBoundingSphere(x,i);this._boundingSpheresKeys.push(b),this._boundingSpheres.push(T)}s=r.constructor,!l(s)||l(s.createShadowVolume)}_Le(this,d,i);let p=e.verticalExaggeration,g=e.verticalExaggerationRelativeHeight;this._minHeight=Cr.getHeight(this._minTerrainHeight,p,g),this._maxHeight=Cr.getHeight(this._maxTerrainHeight,p,g);let m=Il._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=uU(e,r),pu.shouldUseSphericalCoordinates(d)){b=!1;break}for(f=0;f<c;++f){o=a[f],r=o.geometry,s=r.constructor;let T=uU(e,r),C=r.textureCoordinateRotationPoints;b?x=pu.getPlanarTextureCoordinateAttributes(T,C,i,e.mapProjection,this._maxHeight):x=pu.getSphericalExtentGeometryInstanceAttributes(T,C,i,e.mapProjection);let A=o.attributes;for(let E in A)A.hasOwnProperty(E)&&(x[E]=A[E]);u[f]=new St({geometry:s.createShadowVolume(r,Tie(this),bie(this)),attributes:x,id:o.id})}}else for(f=0;f<c;++f)o=a[f],r=o.geometry,s=r.constructor,u[f]=new St({geometry:s.createShadowVolume(r,Tie(this),bie(this)),attributes:o.attributes,id:o.id});n.geometryInstances=u,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(x,b){gLe(t,x,b)},n._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){yLe(t,b,T,C,A,E,v,D)},this._primitive=new sA(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&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Il.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};Il.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Il.prototype.isDestroyed=function(){return!1};Il.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};Il._supportsMaterials=function(e){return e.depthTexture};Il.supportsMaterials=function(e){return Il._supportsMaterials(e.frameState.context)};var zc=Il;function aA(){he.throwInstantiationError()}Object.defineProperties(aA.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError}});aA.prototype.getType=he.throwInstantiationError;aA.prototype.getValue=he.throwInstantiationError;aA.prototype.equals=he.throwInstantiationError;var xLe=new Z;aA.getValue=function(e,t,n){let i;return l(e)||(e=Z.now(xLe)),l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=qi.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==qi.ColorType)&&(n=qi.fromType(qi.ColorType)),H.clone(H.WHITE,n.uniforms.color),n)};var Jo=aA;function wx(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}wx.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!Y.getValueOrDefault(t.show,n,!0)};wx.prototype._setOptions=he.throwInstantiationError;wx.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(!l(s.fill)||s.fill.getValue(e)){let u=t.fillMaterialProperty,f=u instanceof Ut,d,p=t._getIsClosed(c);if(f)d=new ln({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=Jo.getValue(e,u,this._material);this._material=g,d=new so({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=ln.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)}),Y.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 Dn({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let u=this._geometryUpdater.createOutlineGeometryInstance(e),f=Y.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new Dn({geometryInstances:u,appearance:new ln({flat:!0,translucent:u.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};wx.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(se.clone(o.boundingSphere,e),ct.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(se.clone(o.boundingSphere,e),ct.DONE):l(n)&&!n.ready||l(i)&&!i.ready?ct.PENDING:ct.FAILED};wx.prototype.isDestroyed=function(){return!1};wx.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),ue(this)};var ni=wx;var bLe={NONE:0,GEODESIC:1,RHUMB:2},Jt=Object.freeze(bLe);var Aie=P.EPSILON10;function TLe(e,t,n,i){if(!l(e))return;n=y(n,!1);let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,u,f=0,d=-1;for(s=1;s<r;++s)c=e[s],t(a,c,Aie)?(l(u)||(u=e.slice(0,s),f=s-1,d=0),o&&i.push(s)):(l(u)&&(u.push(c),f=s,o&&(d=i.length)),a=c);return n&&t(e[0],e[r-1],Aie)&&(o&&(l(u)?i.splice(d,0,f):i.push(r-1)),l(u)?u.length-=1:u=e.slice(0,-1)),l(u)?u:e}var To=TLe;function CLe(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),u=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,C=b*b,A=1+x-3*b/4+5*T/4-175*C/64,E=1-x+15*b/8-35*T/8,v=1-3*x+35*b/4,D=1-5*x,O=A*f-E*Math.sin(2*f)*x/2-v*Math.sin(4*f)*b/16-D*Math.sin(6*f)*T/48-Math.sin(8*f)*5*C/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=u,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=C,R.a0=A,R.a1=E,R.a2=v,R.a3=D,R.distanceRatio=O}function ALe(e,t){return e*t*(4+e*(4-3*t))/16}function Eie(e,t,n,i,o,r,s){let a=ALe(e,n);return(1-a)*e*t*(i+a*o*(s+a*r*(2*s*s-1)))}function ELe(e,t,n,i,o,r,s){let a=(t-n)/t,c=r-i,u=Math.atan((1-a)*Math.tan(o)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(u),p=Math.sin(u),g=Math.cos(f),m=Math.sin(f),x=d*g,b=d*m,T=p*m,C=p*g,A=c,E=P.TWO_PI,v=Math.cos(A),D=Math.sin(A),O,R,M,N,_;do{v=Math.cos(A),D=Math.sin(A);let k=b-C*v;M=Math.sqrt(g*g*D*D+k*k),R=T+x*v,O=Math.atan2(M,R);let W;M===0?(W=0,N=1):(W=x*D/M,N=1-W*W),E=A,_=R-2*T/N,isFinite(_)||(_=0),A=c+Eie(a,W,N,O,M,R,_)}while(Math.abs(A-E)>P.EPSILON12);let S=N*(t*t-n*n)/(n*n),w=1+S*(4096+S*(S*(320-175*S)-768))/16384,I=S*(256+S*(S*(74-47*S)-128))/1024,L=_*_,B=I*M*(_+I*(R*(2*L-1)-I*_*(4*M*M-3)*(4*L-3)/6)/4),U=n*w*(O-B),V=Math.atan2(g*D,b-C*v),G=Math.atan2(d*D,b*v-C);e._distance=U,e._startHeading=V,e._endHeading=G,e._uSquared=S}var SLe=new h,h9=new h;function Sie(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,h9),SLe),r=h.normalize(i.cartographicToCartesian(n,h9),h9);ELe(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,CLe(e)}function JP(e,t,n){let i=y(n,ee.default);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,l(e)&&l(t)&&Sie(this,e,t,i)}Object.defineProperties(JP.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}}});JP.prototype.setEndPoints=function(e,t){Sie(this,e,t,this._ellipsoid)};JP.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};JP.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),u=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)*u+539*g*f/1536,C=Math.asin(Math.sin(T)*n.cosineAlpha),A=Math.atan(n.a/n.b*Math.tan(C));T=T-n.sigma;let E=Math.cos(2*n.sigma+T),v=Math.sin(T),D=Math.cos(T),O=n.cosineU*D,R=n.sineU*v,N=Math.atan2(v*n.sineHeading,O-R*n.cosineHeading)-Eie(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,v,D,E);return l(t)?(t.longitude=this._start.longitude+N,t.latitude=A,t.height=0,t):new fe(this._start.longitude+N,A,0)};var Op=JP;function p9(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,u=n,f=Math.sin(2*u),d=Math.sin(4*u),p=Math.sin(6*u),g=Math.sin(8*u),m=Math.sin(10*u),x=Math.sin(12*u);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*u-(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 vLe(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,u=c*c,f=u*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),C=Math.sin(6*i),A=Math.cos(6*i),E=Math.sin(8*i),v=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*u/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*u/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)*A+(1097*i*p/65536+42783*i*g/1048576)*v+8011*i*g/1048576*O+(3*c/8+3*u/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*u/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)*C+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*E+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*R}function cA(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 wLe(e,t,n,i,o){let r=cA(e._ellipticity,n),s=cA(e._ellipticity,o);return Math.atan2(P.negativePiToPi(i-t),s-r)}function DLe(e,t,n,i,o,r,s){let a=e._heading,c=r-i,u=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)u=t*Math.cos(o)*P.negativePiToPi(c);else{let f=Math.sin(o);u=t*Math.cos(o)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=p9(e._ellipticity,t,o);u=(p9(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(u)}var ILe=new h,m9=new h;function vie(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,m9),ILe),r=h.normalize(i.cartographicToCartesian(n,m9),m9),s=i.maximumRadius,a=i.minimumRadius,c=s*s,u=a*a;e._ellipticitySquared=(c-u)/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=wLe(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=DLe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function wie(e,t,n,i,o,r){if(n===0)return fe.clone(e,r);let s=o*o,a,c,u;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=p9(o,i,e.latitude),d=n*Math.cos(t),p=f+d;if(c=vLe(p,o,i),Math.abs(t)<P.EPSILON10)a=P.negativePiToPi(e.longitude);else{let g=cA(o,e.latitude),m=cA(o,c);u=Math.tan(t)*(m-g),a=P.negativePiToPi(e.longitude+u)}}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)}u=n/f,t>0?a=P.negativePiToPi(e.longitude+u):a=P.negativePiToPi(e.longitude-u)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new fe(a,c,0)}function Mp(e,t,n){let i=y(n,ee.default);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,l(e)&&l(t)&&vie(this,e,t,i)}Object.defineProperties(Mp.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}}});Mp.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,ee.default),s=r.maximumRadius,a=r.minimumRadius,c=s*s,u=a*a,f=Math.sqrt((c-u)/c);t=P.negativePiToPi(t);let d=wie(e,t,n,r.maximumRadius,f);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new Mp(e,d,r):(o.setEndPoints(e,d),o)};Mp.prototype.setEndPoints=function(e,t){vie(this,e,t,this._ellipsoid)};Mp.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};Mp.prototype.interpolateUsingSurfaceDistance=function(e,t){return wie(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};Mp.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),l(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)),u=(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/u,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};Mp.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=cA(n,o.latitude),s=cA(n,e),a=Math.tan(i)*(s-r),c=P.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new fe(c,e,0)};var Ra=Mp;var A9=[vi,wi],PLe=A9.length,Yie=Math.cos(P.toRadians(30)),Die=Math.cos(P.toRadians(150)),Xie=0,Kie=1e3;function qg(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,Jt.GEODESIC),this._ellipsoid=ee.default,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(qg.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+ee.packedLength+1+1}}});qg.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<PLe;i++)if(t instanceof A9[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var RLe=new h,Iie=new h,Pie=new h;function C9(e,t,n,i,o){let r=Hc(i,e,0,RLe),s=Hc(i,e,n,Iie),a=Hc(i,t,0,Pie),c=Lp(s,r,Iie),u=Lp(a,r,Pie);return h.cross(u,c,o),h.normalize(o,o)}var OLe=new fe,MLe=new h,LLe=new h,NLe=new h;function _9(e,t,n,i,o,r,s,a,c,u,f){if(o===0)return;let d;r===Jt.GEODESIC?d=new Op(e,t,s):r===Jt.RHUMB&&(d=new Ra(e,t,s));let p=d.surfaceDistance;if(p<o)return;let g=C9(e,t,i,s,NLe),m=Math.ceil(p/o),x=p/m,b=x,T=m-1,C=a.length;for(let A=0;A<T;A++){let E=d.interpolateUsingSurfaceDistance(b,OLe),v=Hc(s,E,n,MLe),D=Hc(s,E,i,LLe);h.pack(g,a,C),h.pack(v,c,C),h.pack(D,u,C),f.push(E.latitude),f.push(E.longitude),C+=3,b+=x}}var g9=new fe;function Hc(e,t,n,i){return fe.clone(t,g9),g9.height=n,fe.toCartesian(g9,e,i)}qg.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,ee.pack(e._ellipsoid,t,i),i+=ee.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};qg.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++],u=ee.unpack(e,i);i+=ee.packedLength;let f=e[i++],d=e[i++]===1;return l(n)||(n=new qg({positions:r})),n._positions=r,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=u,n._projectionIndex=f,n._scene3DOnly=d,n};function Lp(e,t,n){return h.subtract(e,t,n),h.normalize(n,n),n}function Rie(e,t,n,i){return i=Lp(e,t,i),i=h.cross(i,n,i),i=h.normalize(i,i),i=h.cross(n,i,i),i}var FLe=new h,BLe=new h,kLe=new h,Zie=new h,VLe=0,ULe=-1;function y9(e,t,n,i,o){let r=Lp(n,t,Zie),s=Rie(e,t,r,FLe),a=Rie(i,t,r,BLe);if(P.equalsEpsilon(h.dot(s,a),ULe,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,kLe);return h.dot(a,c)<VLe&&(o=h.negate(o,o)),o}var mU=cn.fromPointNormal(h.ZERO,h.UNIT_Y),zLe=new h,HLe=new h,GLe=new h,WLe=new h,jLe=new h,fU=new h,dU=new fe,Oie=new fe,Mie=new fe;qg.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,o=e.granularity,r=e.arcType,s=new A9[e._projectionIndex](i),a=Xie,c=Kie,u,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,m,x,b,T=new Ra(void 0,void 0,i),C,A,E,v=[d[0]];for(f=0;f<p-1;f++)g=d[f],m=d[f+1],C=$n.lineSegmentPlane(g,m,mU,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&(e.arcType===Jt.GEODESIC?v.push(h.clone(C)):e.arcType===Jt.RHUMB&&(E=i.cartesianToCartographic(C,dU).longitude,x=i.cartesianToCartographic(g,dU),b=i.cartesianToCartographic(m,Oie),T.setEndPoints(x,b),A=T.findIntersectionWithLongitude(E,Mie),C=i.cartographicToCartesian(A,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&v.push(h.clone(C)))),v.push(m);n&&(g=d[p-1],m=d[0],C=$n.lineSegmentPlane(g,m,mU,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&(e.arcType===Jt.GEODESIC?v.push(h.clone(C)):e.arcType===Jt.RHUMB&&(E=i.cartesianToCartographic(C,dU).longitude,x=i.cartesianToCartographic(g,dU),b=i.cartesianToCartographic(m,Oie),T.setEndPoints(x,b),A=T.findIntersectionWithLongitude(E,Mie),C=i.cartographicToCartesian(A,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&v.push(h.clone(C)))));let D=v.length,O=new Array(D);for(f=0;f<D;f++){let q=fe.fromCartesian(v[f],i);q.height=0,O[f]=q}if(O=To(O,fe.equalsEpsilon),D=O.length,D<2)return;let R=[],M=[],N=[],_=[],S=zLe,w=HLe,I=GLe,L=WLe,B=jLe,U=O[0],V=O[1],G=O[D-1];for(S=Hc(i,G,a,S),L=Hc(i,V,a,L),w=Hc(i,U,a,w),I=Hc(i,U,c,I),n?B=y9(S,w,I,L,B):B=C9(U,V,c,i,B),h.pack(B,M,0),h.pack(w,N,0),h.pack(I,_,0),R.push(U.latitude),R.push(U.longitude),_9(U,V,a,c,o,r,i,M,N,_,R),f=1;f<D-1;++f){S=h.clone(w,S),w=h.clone(L,w);let q=O[f];Hc(i,q,c,I),Hc(i,O[f+1],a,L),y9(S,w,I,L,B),u=M.length,h.pack(B,M,u),h.pack(w,N,u),h.pack(I,_,u),R.push(q.latitude),R.push(q.longitude),_9(O[f],O[f+1],a,c,o,r,i,M,N,_,R)}let k=O[D-1],W=O[D-2];if(w=Hc(i,k,a,w),I=Hc(i,k,c,I),n){let q=O[0];S=Hc(i,W,a,S),L=Hc(i,q,a,L),B=y9(S,w,I,L,B)}else B=C9(W,k,c,i,B);if(u=M.length,h.pack(B,M,u),h.pack(w,N,u),h.pack(I,_,u),R.push(k.latitude),R.push(k.longitude),n){for(_9(k,U,a,c,o,r,i,M,N,_,R),u=M.length,f=0;f<3;++f)M[u+f]=M[f],N[u+f]=N[f],_[u+f]=_[f];R.push(U.latitude),R.push(U.longitude)}return gNe(n,s,N,_,M,R,t)};var qLe=new h,YLe=new $,XLe=new Oe;function Lie(e,t,n,i){let o=Lp(n,t,qLe),r=h.dot(o,e);if(r>Yie||r<Die){let s=Lp(i,n,Zie),a=r<Die?P.PI_OVER_TWO:-P.PI_OVER_TWO,c=Oe.fromAxisAngle(s,a,XLe),u=$.fromQuaternion(c,YLe);return $.multiplyByVector(u,e,e),!0}return!1}var Nie=new fe,KLe=new h,Fie=new h;function e1(e,t,n,i,o){let r=fe.toCartesian(t,e._ellipsoid,KLe),s=h.add(r,n,Fie),a=!1,c=e._ellipsoid,u=c.cartesianToCartographic(s,Nie);Math.abs(t.longitude-u.longitude)>P.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,Fie),u=c.cartesianToCartographic(s,Nie)),u.height=0;let f=e.project(u,o);return o=h.subtract(f,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var ZLe=new h,Bie=new h;function kie(e,t,n,i,o,r){let s=h.subtract(t,e,ZLe);h.normalize(s,s);let a=n-Xie,c=h.multiplyByScalar(s,a,Bie);h.add(e,c,o);let u=i-Kie;c=h.multiplyByScalar(s,u,Bie),h.add(t,c,r)}var $Le=new h;function hU(e,t){let n=cn.getPointDistance(mU,e),i=cn.getPointDistance(mU,t),o=$Le;P.equalsEpsilon(n,0,P.EPSILON2)?(o=Lp(t,e,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(e,o,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(o=Lp(e,t,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(t,o,t))}function QLe(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 $ie=new fe,Qie=new fe,Vie=new h,x9=new h,Uie=new h,zie=new h,JLe=new h,Hie=new h,eNe=[$ie,Qie],tNe=new re,nNe=new h,iNe=new h,oNe=new h,rNe=new h,sNe=new h,aNe=new h,b9=new h,T9=new h,cNe=new h,lNe=new h,uNe=new h,Gie=new h,fNe=new h,dNe=new h,hNe=new Gn,mNe=new Gn,Wie=new h,pNe=new h,jie=new h,_Ne=[new se,new se],Jie=[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],qie=Jie.length;function gNe(e,t,n,i,o,r,s){let a,c,u=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),C=new Float32Array(p),A=new Float32Array(p),E=new Float32Array(p),v,D,O,R;s&&(v=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),R=new Float32Array(d*2));let M=r.length/2,N=0,_=$ie;_.height=0;let S=Qie;S.height=0;let w=Vie,I=x9;if(s)for(c=0,a=1;a<M;a++)_.latitude=r[c],_.longitude=r[c+1],S.latitude=r[c+2],S.longitude=r[c+3],w=t.project(_,w),I=t.project(S,I),N+=h.distance(w,I),c+=2;let L=i.length/3;I=h.unpack(i,0,I);let B=0;for(c=3,a=1;a<L;a++)w=h.clone(I,w),I=h.unpack(i,c,I),B+=h.distance(w,I),c+=3;let U;c=3;let V=0,G=0,k=0,W=0,q=!1,J=h.unpack(n,0,zie),j=h.unpack(i,0,x9),K=h.unpack(o,0,Hie);if(e){let Ae=h.unpack(n,n.length-6,Uie);Lie(K,Ae,J,j)&&(K=h.negate(K,K))}let Q=0,de=0,ye=0;for(a=0;a<f;a++){let Ae=h.clone(J,Uie),ke=h.clone(j,Vie),ze=h.clone(K,JLe);q&&(ze=h.negate(ze,ze)),J=h.unpack(n,c,zie),j=h.unpack(i,c,x9),K=h.unpack(o,c,Hie),q=Lie(K,Ae,J,j),_.latitude=r[V],_.longitude=r[V+1],S.latitude=r[V+2],S.longitude=r[V+3];let tt,wt,pt,Be;if(s){let Fi=QLe(_,S);tt=t.project(_,sNe),wt=t.project(S,aNe);let ks=Lp(wt,tt,Wie);ks.y=Math.abs(ks.y),pt=b9,Be=T9,Fi===0||h.dot(ks,h.UNIT_Y)>Yie?(pt=e1(t,_,ze,tt,b9),Be=e1(t,S,K,wt,T9)):Fi===1?(Be=e1(t,S,K,wt,T9),pt.x=0,pt.y=P.sign(_.longitude-Math.abs(S.longitude)),pt.z=0):(pt=e1(t,_,ze,tt,b9),Be.x=0,Be.y=P.sign(_.longitude-S.longitude),Be.z=0)}let Yt=h.distance(ke,j),Ct=Gn.fromCartesian(Ae,hNe),lt=h.subtract(J,Ae,cNe),tn=h.normalize(lt,Gie),Ce=h.subtract(ke,Ae,lNe);Ce=h.normalize(Ce,Ce);let Te=h.cross(tn,Ce,Gie);Te=h.normalize(Te,Te);let it=h.cross(Ce,ze,fNe);it=h.normalize(it,it);let Wi=h.subtract(j,J,uNe);Wi=h.normalize(Wi,Wi);let ut=h.cross(K,Wi,dNe);ut=h.normalize(ut,ut);let go=Yt/B,Yo=Q/B,Ya=0,Ir,Cs,Le,ot=0,qe=0;if(s){Ya=h.distance(tt,wt),Ir=Gn.fromCartesian(tt,mNe),Cs=h.subtract(wt,tt,Wie),Le=h.normalize(Cs,pNe);let Fi=Le.x;Le.x=Le.y,Le.y=-Fi,ot=Ya/N,qe=de/N}for(U=0;U<8;U++){let Fi=W+U*4,ks=G+U*2,Xr=Fi+3,lf=U<4?1:-1,yo=U===2||U===3||U===6||U===7?1:-1;h.pack(Ct.high,b,Fi),b[Xr]=lt.x,h.pack(Ct.low,T,Fi),T[Xr]=lt.y,h.pack(it,C,Fi),C[Xr]=lt.z,h.pack(ut,A,Fi),A[Xr]=go*lf,h.pack(Te,E,Fi);let Pr=Yo*yo;Pr===0&&yo<0&&(Pr=9),E[Xr]=Pr,s&&(v[Fi]=Ir.high.x,v[Fi+1]=Ir.high.y,v[Fi+2]=Ir.low.x,v[Fi+3]=Ir.low.y,O[Fi]=-pt.y,O[Fi+1]=pt.x,O[Fi+2]=Be.y,O[Fi+3]=-Be.x,D[Fi]=Cs.x,D[Fi+1]=Cs.y,D[Fi+2]=Le.x,D[Fi+3]=Le.y,R[ks]=ot*lf,Pr=qe*yo,Pr===0&&yo<0&&(Pr=9),R[ks+1]=Pr)}let Xe=oNe,dt=rNe,Gt=nNe,wn=iNe,Io=re.fromCartographicArray(eNe,tNe),Jn=li.getMinimumMaximumHeights(Io,u),ls=Jn.minimumTerrainHeight,Xa=Jn.maximumTerrainHeight;ye+=Math.abs(ls),ye+=Math.abs(Xa),kie(Ae,ke,ls,Xa,Xe,Gt),kie(J,j,ls,Xa,dt,wn);let Yr=h.multiplyByScalar(Te,P.EPSILON5,jie);h.add(Xe,Yr,Xe),h.add(dt,Yr,dt),h.add(Gt,Yr,Gt),h.add(wn,Yr,wn),hU(Xe,dt),hU(Gt,wn),h.pack(Xe,x,k),h.pack(dt,x,k+3),h.pack(wn,x,k+6),h.pack(Gt,x,k+9),Yr=h.multiplyByScalar(Te,-2*P.EPSILON5,jie),h.add(Xe,Yr,Xe),h.add(dt,Yr,dt),h.add(Gt,Yr,Gt),h.add(wn,Yr,wn),hU(Xe,dt),hU(Gt,wn),h.pack(Xe,x,k+12),h.pack(dt,x,k+15),h.pack(wn,x,k+18),h.pack(Gt,x,k+21),V+=2,c+=3,G+=16,k+=24,W+=32,Q+=Yt,de+=Ya}c=0;let ae=0;for(a=0;a<f;a++){for(U=0;U<qie;U++)m[c+U]=Jie[U]+ae;ae+=8,c+=qie}let _e=_Ne;se.fromVertices(n,h.ZERO,3,_e[0]),se.fromVertices(i,h.ZERO,3,_e[1]);let xe=se.fromBoundingSpheres(_e);xe.radius+=ye/(f*2);let De={position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:x}),startHiAndForwardOffsetX:jg(b),startLoAndForwardOffsetY:jg(T),startNormalAndForwardOffsetZ:jg(C),endNormalAndTextureCoordinateNormalizationX:jg(A),rightNormalAndTextureCoordinateNormalizationY:jg(E)};return s&&(De.startHiLo2D=jg(v),De.offsetAndRight2D=jg(D),De.startEndNormals2D=jg(O),De.texcoordNormalization2D=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:R})),new at({attributes:De,indices:m,boundingSphere:xe})}function jg(e){return new Se({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}qg._projectNormal=e1;var Dx=qg;var t1=`in vec4 v_startPlaneNormalEcAndHalfWidth;
in vec4 v_endPlaneNormalEcAndBatchId;
in vec4 v_rightPlaneEC; // Technically can compute distance for this here
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);

    // Discard for sky
    if (logDepthOrDepth == 0.0) {
#ifdef DEBUG_SHOW_VOLUME
        out_FragColor = vec4(1.0, 0.0, 0.0, 0.5);
        return;
#else // DEBUG_SHOW_VOLUME
        discard;
#endif // DEBUG_SHOW_VOLUME
    }

    vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
    eyeCoordinate /= eyeCoordinate.w;

    float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate);
    // Check distance of the eye coordinate against the right-facing plane
    float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz);

    // Check eye coordinate against the mitering planes
    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 // DEBUG_SHOW_VOLUME
        discard;
#endif // DEBUG_SHOW_VOLUME
    }

    // Check distance of the eye coordinate against start and end planes with normals in the right plane.
    // For computing unskewed lengthwise texture coordinate.
    // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking.

    // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward"
    vec3 alignedPlaneNormal;

    // start aligned plane
    alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz);
    alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz));
    distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz);

    // end aligned plane
    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 // PER_INSTANCE_COLOR
    // Clamp - distance to aligned planes may be negative due to mitering,
    // so fragment texture coordinate might be out-of-bounds.
    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 // PER_INSTANCE_COLOR

    // Premultiply alpha. Required for classification primitives on translucent globe.
    out_FragColor.rgb *= out_FragColor.a;

    czm_writeDepthClamp();
}
`;var n1=`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) {
    // We don't expect the ray to ever be parallel to the plane
    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 // PER_INSTANCE_COLOR
    // Use distances for planes aligned with segment to prevent skew in dashing
    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);

    // Clamp - distance to aligned planes may be negative due to mitering
    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 // PER_INSTANCE_COLOR
}
`;var i1=`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;

// For materials
#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

// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume.
// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient.
void main()
{
    v_batchId = batchId;

    // Start position
    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;

    // Start plane
    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);

    // Right plane
    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);

    // End position
    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));

    // End plane
    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);

    // Forward direction
    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 // PER_INSTANCE_COLOR
    // For computing texture coordinates

    v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC);
    v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC);
#endif // PER_INSTANCE_COLOR

#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

    // Compute a normal along which to "push" the position out, extending the miter depending on view distance.
    // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes.
    // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be.
    // Since this is morphing, compute both 3D and 2D positions and then blend.

    // ****** 3D ******
    // Check distance to the end plane and start plane, pick the plane that is closer
    vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition
    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)); // Points "up" for start plane, "down" at end plane.
    vec3 normalEC = normalize(cross(planeDirection, upOrDown));         // In practice, the opposite seems to work too.

    // Nudge the top vertex upwards to prevent flickering
    vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D));
    geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0);
    geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;
    positionEc3D.xyz += geodeticSurfaceNormal;

    // Determine if this vertex is on the "left" or "right"
    normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w);

    // A "perfect" implementation would push along normals according to the angle against forward.
    // In practice, just pushing the normal out by halfWidth is sufficient for morph views.
    positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera)

    // ****** 2D ******
    // Check distance to the end plane and start plane, pick the plane that is closer
    vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition
    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)); // Points "up" for start plane, "down" at end plane.
    normalEC = normalize(cross(planeDirection, upOrDown));         // In practice, the opposite seems to work too.

    // Nudge the top vertex upwards to prevent flickering
    geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D));
    geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0);
    geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;
    positionEc2D.xyz += geodeticSurfaceNormal;

    // Determine if this vertex is on the "left" or "right"
    normalEC *= sign(texcoordNormalization2D.x);
#ifndef PER_INSTANCE_COLOR
    // Use vertex's sidedness to compute its texture coordinate.
    v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0);
#endif

    // A "perfect" implementation would push along normals according to the angle against forward.
    // In practice, just pushing the normal out by halfWidth is sufficient for morph views.
    positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera)

    // Blend for actual position
    gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime);

#ifdef ANGLE_VARYING
    // Approximate relative screen space direction of the line.
    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 o1=`in vec3 position3DHigh;
in vec3 position3DLow;

// In 2D and in 3D, texture coordinate normalization component signs encodes:
// * X sign - sidedness relative to right plane
// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume
#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;

// For materials
#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);

    // Right plane
    v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw);
    v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart);

    // start plane
    vec4 startPlaneEC;
    startPlaneEC.xyz =  czm_normal * vec3(0.0, startEndNormals2D.xy);
    startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);

    // end plane
    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 // COLUMBUS_VIEW_2D
    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);

    // start plane
    vec4 startPlaneEC;
    startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz;
    startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);

    // end plane
    vec4 endPlaneEC;
    endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz;
    endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd);

    // Right plane
    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 // COLUMBUS_VIEW_2D

    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 // PER_INSTANCE_COLOR

    // Compute a normal along which to "push" the position out, extending the miter depending on view distance.
    // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes.
    // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be.
    vec4 positionRelativeToEye = czm_computePosition();

    // Check distance to the end plane and start plane, pick the plane that is closer
    vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition
    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)); // Points "up" for start plane, "down" at end plane.
    vec3 normalEC = normalize(cross(planeDirection, upOrDown));           // In practice, the opposite seems to work too.

    // Extrude bottom vertices downward for far view distances, like for GroundPrimitives
    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));

    // Determine distance along normalEC to push for a volume of appropriate width.
    // Make volumes about double pixel width for a conservative fit - in practice the
    // extra cost here is minimal compared to the loose volume heights.
    //
    // N = normalEC (guaranteed "right-facing")
    // R = rightEC
    // p = angle between N and R
    // w = distance to push along R if R == N
    // d = distance to push along N
    //
    //   N   R
    //  {  p| }      * cos(p) = dot(N, R) = w / d
    //  d  |  |w    * d = w / dot(N, R)
    //    { | }
    //       o---------- polyline segment ---->
    //
    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 = distance to push along R
    width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N

    // Determine if this vertex is on the "left" or "right"
#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
    // Approximate relative screen space direction of the line.
    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 r1=`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 _u=`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);

    // Distance that p0 is behind the near plane. Negative means p0 is
    // in front of the near plane.
    float endPoint0Distance =  czm_currentFrustum.x + p0.z;

    // Camera looks down -Z.
    // When moving a point along +Z: LESS VISIBLE
    //   * Points in front of the camera move closer to the camera.
    //   * Points behind the camrea move farther away from the camera.
    // When moving a point along -Z: MORE VISIBLE
    //   * Points in front of the camera move farther away from the camera.
    //   * Points behind the camera move closer to the camera.

    // Positive denominator: -Z, becoming more visible
    // Negative denominator: +Z, becoming less visible
    // Nearly zero: parallel to near plane
    float denominator = -direction.z;

    if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7)
    {
        // p0 is behind the near plane and the line to p1 is nearly parallel to
        // the near plane, so cull the segment completely.
        culledByNearPlane = true;
    }
    else if (endPoint0Distance > 0.0)
    {
        // p0 is behind the near plane, and the line to p1 is moving distinctly
        // toward or away from it.

        // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction)
        float t = endPoint0Distance / denominator;
        if (t < 0.0 || t > magnitude)
        {
            // Near plane intersection is not between the two points.
            // We already confirmed p0 is behind the naer plane, so now
            // we know the entire segment is behind it.
            culledByNearPlane = true;
        }
        else
        {
            // Segment crosses the near plane, update p0 to lie exactly on it.
            p0 = p0 + t * direction;

            // Numerical noise might put us a bit on the wrong side of the near plane.
            // Don't let that happen.
            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)
{
    // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC.

#ifdef POLYLINE_DASH
    // Compute the window coordinates of the points.
    vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC);
    vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC);
    vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC);

    // Determine the relative screen space direction of the line.
    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; // precomputed atan(1,0)

    // Quantize the angle so it doesn't change rapidly between segments.
    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 a segment was culled, we can't use the corresponding direction
    // computed above. We should never see both of these be true without
    // \`segmentCulled\` above also being true.
    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;

    // When lines are split at the anti-meridian, the position may be at the
    // same location as the next or previous position, and we need to handle
    // that to avoid producing NaNs.
    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);

        // The sine of the angle between the two vectors is given by the formula
        //         |a x b| = |a||b|sin(theta)
        // which is
        //     float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0)));
        // Because the z components of both vectors are zero, the x and y coordinate will be zero.
        // Therefore, the sine of the angle is just the z component of the cross product.
        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 E9=`${_u}
${r1}`,yNe=Ax;Ht.isInternetExplorer()||(E9=`#define CLIP_POLYLINE 
${E9}`);function Ix(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Ix.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,E9),this._fragmentShaderSource=y(e.fragmentShaderSource,yNe),this._renderState=no.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Ix.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}}});Ix.VERTEX_FORMAT=Ie.POSITION_ONLY;Ix.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Ix.prototype.isTranslucent=no.prototype.isTranslucent;Ix.prototype.getRenderState=no.prototype.getRenderState;var Qr=Ix;var s1=`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 Px=`#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 S9=`${_u}
${s1}`,xNe=Px;Ht.isInternetExplorer()||(S9=`#define CLIP_POLYLINE 
${S9}`);function Rx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Rx.VERTEX_FORMAT;this.material=l(e.material)?e.material:qi.fromType(qi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,S9),this._fragmentShaderSource=y(e.fragmentShaderSource,xNe),this._renderState=no.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Rx.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}}});Rx.VERTEX_FORMAT=Ie.POSITION_AND_ST;Rx.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Rx.prototype.isTranslucent=no.prototype.isTranslucent;Rx.prototype.getRenderState=no.prototype.getRenderState;var ca=Rx;function Np(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new ca),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.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=eoe(!1),this._renderState3DTiles=eoe(!0),this._renderStateMorph=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(Np.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}}});Np.initializeTerrainHeights=function(){return li.initialize()};function bNe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(o1);s=Dn._appendShowToShader(o,s),s=Dn._appendDistanceDisplayConditionToShader(o,s),s=Dn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(i1);a=Dn._appendShowToShader(o,a),a=Dn._appendDistanceDisplayConditionToShader(o,a),a=Dn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(t1),u=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";l(n.material)?(d=l(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&u.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&u.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",u.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new Ue({defines:u,sources:[s]}),m=new Ue({defines:p,sources:[d,c]});e._sp=Qt.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:m,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(x)){let T=new Ue({defines:u.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(!l(b)){let T=new Ue({defines:u.concat([`MAX_TERRAIN_HEIGHT ${li._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(n1);let C=new Ue({defines:p,sources:[d,c]});b=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:T,fragmentShaderSource:C,attributeLocations:r})}e._spMorph=b}function eoe(e){return Ve.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.EQUAL,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK}})}function TNe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let u=t instanceof Qr?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(u);for(let d=0;d<a;d++){let p=s._va[d],g=o[d];l(g)||(g=o[d]=new Ze({owner:e,primitiveType:s._primitiveType})),g.vertexArray=p,g.renderState=e._renderState,g.shaderProgram=e._sp,g.uniformMap=f,g.pass=ve.TERRAIN_CLASSIFICATION,g.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";let m=Ze.shallowClone(g,g.derivedCommands.tileset);m.renderState=e._renderState3DTiles,m.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=m;let x=Ze.shallowClone(g,g.derivedCommands.color2D);x.shaderProgram=e._sp2D,g.derivedCommands.color2D=x;let b=Ze.shallowClone(m,m.derivedCommands.color2D);b.shaderProgram=e._sp2D,m.derivedCommands.color2D=b;let T=Ze.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 toe(e,t,n,i,o,r,s){n.mode===ne.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==ne.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function CNe(e,t,n,i,o,r,s){let a=e._primitive;Dn._updateBoundingVolumes(a,t,o);let c;t.mode===ne.SCENE3D?c=a._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===ne.SCENE2D&&l(a._boundingSphere2D)?c=a._boundingSphere2D:l(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let u=t.mode===ne.MORPHING,f=e.classificationType,d=f!==Vn.CESIUM_3D_TILE,p=f!==Vn.TERRAIN&&!u,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],toe(e,g,t,o,r,T,s)),p&&(g=n[b].derivedCommands.tileset,toe(e,g,t,o,r,T,s))}}}Np.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!li.initialized){Np.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!l(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,!l(a)||!l(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<r;++t){let c=o[t];a={};let u=c.attributes;for(let f in u)u.hasOwnProperty(f)&&(a[f]=u[f]);l(a.width)||(a.width=new sc({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,Dx.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new St({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,u,f){bNe(n,u,f)},i._createCommandsFunction=function(c,u,f,d,p,g,m){TNe(n,u,f,d,g,m)},i._updateAndQueueCommandsFunction=function(c,u,f,d,p,g,m,x){CNe(n,u,f,d,p,g,m)},this._primitive=new Dn(i)}if(this.appearance instanceof Qr&&!this._hasPerInstanceColors)throw new he("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&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Np.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Np.isSupported=function(e){return e.frameState.context.depthTexture};Np.prototype.isDestroyed=function(){return!1};Np.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,ue(this)};var Ld=Np;var ANe=new z(1,1),ENe=!1,SNe=H.WHITE;function lA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(lA.prototype,{isConstant:{get:function(){return Y.isConstant(this._image)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:le("image"),repeat:le("repeat"),color:le("color"),transparent:le("transparent")});lA.prototype.getType=function(e){return"Image"};var vNe=new Z;lA.prototype.getValue=function(e,t){return l(e)||(e=Z.now(vNe)),l(t)||(t={}),t.image=Y.getValueOrUndefined(this._image,e),t.repeat=Y.getValueOrClonedDefault(this._repeat,e,ANe,t.repeat),t.color=Y.getValueOrClonedDefault(this._color,e,SNe,t.color),Y.getValueOrDefault(this._transparent,e,ENe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};lA.prototype.equals=function(e){return this===e||e instanceof lA&&Y.equals(this._image,e._image)&&Y.equals(this._repeat,e._repeat)&&Y.equals(this._color,e._color)&&Y.equals(this._transparent,e._transparent)};var Yg=lA;function wNe(e){if(e instanceof H)return new Ut(e);if(typeof e=="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new Yg;return t.image=e,t}}function DNe(e,t){return le(e,t,wNe)}var Ro=DNe;function a1(e){this._definitionChanged=new me,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(a1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),dimensions:le("dimensions"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});a1.prototype.clone=function(e){return l(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 a1(this)};a1.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 Ox=a1;var INe={FIXED:0,INERTIAL:1},Vi=Object.freeze(INe);function uA(){he.throwInstantiationError()}Object.defineProperties(uA.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError},referenceFrame:{get:he.throwInstantiationError}});uA.prototype.getValue=he.throwInstantiationError;uA.prototype.getValueInReferenceFrame=he.throwInstantiationError;uA.prototype.equals=he.throwInstantiationError;var noe=new $;uA.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new h),n===i)return h.clone(t,o);let r=Mt.computeIcrfToCentralBodyFixedMatrix(e,noe);if(n===Vi.INERTIAL)return $.multiplyByVector(r,t,o);if(n===Vi.FIXED)return $.multiplyByVector($.transpose(r,noe),t,o)};var Nd=uA;function Mx(e,t){this._definitionChanged=new me,this._value=h.clone(e),this._referenceFrame=y(t,Vi.FIXED)}Object.defineProperties(Mx.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===Vi.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var PNe=new Z;Mx.prototype.getValue=function(e,t){return l(e)||(e=Z.now(PNe)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Mx.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};Mx.prototype.getValueInReferenceFrame=function(e,t,n){return Nd.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};Mx.prototype.equals=function(e){return this===e||e instanceof Mx&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Gc=Mx;function c1(e){this._definitionChanged=new me,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(c1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),width:le("width"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),cornerType:le("cornerType"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});c1.prototype.clone=function(e){return l(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 c1(this)};c1.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 Lx=c1;function RNe(e){return e}function ONe(e,t){return le(e,t,RNe)}var Pl=ONe;function l1(e){this._definitionChanged=new me,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(l1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),length:le("length"),topRadius:le("topRadius"),bottomRadius:le("bottomRadius"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),slices:le("slices"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});l1.prototype.clone=function(e){return l(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 l1(this)};l1.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 Nx=l1;function u1(e){this._definitionChanged=new me,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(u1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),semiMajorAxis:le("semiMajorAxis"),semiMinorAxis:le("semiMinorAxis"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),rotation:le("rotation"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});u1.prototype.clone=function(e){return l(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 u1(this)};u1.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 Fx=u1;function f1(e){this._definitionChanged=new me,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(f1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),radii:le("radii"),innerRadii:le("innerRadii"),minimumClock:le("minimumClock"),maximumClock:le("maximumClock"),minimumCone:le("minimumCone"),maximumCone:le("maximumCone"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),stackPartitions:le("stackPartitions"),slicePartitions:le("slicePartitions"),subdivisions:le("subdivisions"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});f1.prototype.clone=function(e){return l(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 f1(this)};f1.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 Bx=f1;function d1(e){this._definitionChanged=new me,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(d1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),text:le("text"),font:le("font"),style:le("style"),scale:le("scale"),showBackground:le("showBackground"),backgroundColor:le("backgroundColor"),backgroundPadding:le("backgroundPadding"),pixelOffset:le("pixelOffset"),eyeOffset:le("eyeOffset"),horizontalOrigin:le("horizontalOrigin"),verticalOrigin:le("verticalOrigin"),heightReference:le("heightReference"),fillColor:le("fillColor"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),translucencyByDistance:le("translucencyByDistance"),pixelOffsetScaleByDistance:le("pixelOffsetScaleByDistance"),scaleByDistance:le("scaleByDistance"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance")});d1.prototype.clone=function(e){return l(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 d1(this)};d1.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 Fd=d1;var MNe=new h(1,1,1),LNe=h.ZERO,NNe=Oe.IDENTITY;function ioe(e,t,n){this.translation=h.clone(y(e,LNe)),this.rotation=Oe.clone(y(t,NNe)),this.scale=h.clone(y(n,MNe))}ioe.prototype.equals=function(e){return this===e||l(e)&&h.equals(this.translation,e.translation)&&Oe.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var Xg=ioe;var v9=new Xg;function h1(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(h1.prototype,{isConstant:{get:function(){return Y.isConstant(this._translation)&&Y.isConstant(this._rotation)&&Y.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:le("translation"),rotation:le("rotation"),scale:le("scale")});var FNe=new Z;h1.prototype.getValue=function(e,t){return l(e)||(e=Z.now(FNe)),l(t)||(t=new Xg),t.translation=Y.getValueOrClonedDefault(this._translation,e,v9.translation,t.translation),t.rotation=Y.getValueOrClonedDefault(this._rotation,e,v9.rotation,t.rotation),t.scale=Y.getValueOrClonedDefault(this._scale,e,v9.scale,t.scale),t};h1.prototype.equals=function(e){return this===e||e instanceof h1&&Y.equals(this._translation,e._translation)&&Y.equals(this._rotation,e._rotation)&&Y.equals(this._scale,e._scale)};var kx=h1;function Fp(e,t){this._propertyNames=[],this._definitionChanged=new me,l(e)&&this.merge(e,t)}Object.defineProperties(Fp.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(!Y.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});Fp.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function BNe(e){return new Kn(e)}Fp.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,le(e,!0,y(n,BNe))),l(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};Fp.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};var kNe=new Z;Fp.prototype.getValue=function(e,t){l(e)||(e=Z.now(kNe)),l(t)||(t={});let n=this._propertyNames;for(let i=0,o=n.length;i<o;i++){let r=n[i];t[r]=Y.getValueOrUndefined(this[r],e,t[r])}return t};Fp.prototype.merge=function(e,t){let n=this._propertyNames,i=l(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?l(a)&&l(a.merge)&&a.merge(c):l(c)&&l(c.merge)&&l(c.clone)?this[s]=c.clone():this[s]=c)}};function VNe(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||!Y.equals(e[s],t[s]))return!1}return!0}Fp.prototype.equals=function(e){return this===e||e instanceof Fp&&VNe(this,e)};var Rl=Fp;function ooe(e){return new kx(e)}function UNe(e){return new Rl(e,ooe)}function zNe(e){return new Rl(e)}function m1(e){this._definitionChanged=new me,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._hasVerticalExaggeration=void 0,this._hasVerticalExaggerationSubscription=void 0,this._enableVerticalExaggeration=void 0,this._enableVerticalExaggerationSubscription=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(m1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),uri:le("uri"),scale:le("scale"),enableVerticalExaggeration:le("enableVerticalExaggeration"),minimumPixelSize:le("minimumPixelSize"),maximumScale:le("maximumScale"),incrementallyLoadTextures:le("incrementallyLoadTextures"),runAnimations:le("runAnimations"),clampAnimations:le("clampAnimations"),shadows:le("shadows"),heightReference:le("heightReference"),silhouetteColor:le("silhouetteColor"),silhouetteSize:le("silhouetteSize"),color:le("color"),colorBlendMode:le("colorBlendMode"),colorBlendAmount:le("colorBlendAmount"),imageBasedLightingFactor:le("imageBasedLightingFactor"),lightColor:le("lightColor"),distanceDisplayCondition:le("distanceDisplayCondition"),nodeTransformations:le("nodeTransformations",void 0,UNe),articulations:le("articulations",void 0,zNe),clippingPlanes:le("clippingPlanes"),customShader:le("customShader")});m1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.scale=this.scale,e.enableVerticalExaggeration=this.enableVerticalExaggeration,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 m1(this)};m1.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.enableVerticalExaggeration=y(this.enableVerticalExaggeration,e.enableVerticalExaggeration),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(l(t)){let i=this.nodeTransformations;l(i)?i.merge(t):this.nodeTransformations=new Rl(t,ooe)}let n=e.articulations;if(l(n)){let i=this.articulations;l(i)?i.merge(n):this.articulations=new Rl(n)}};var Bp=m1;function p1(e){this._definitionChanged=new me,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(p1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),uri:le("uri"),maximumScreenSpaceError:le("maximumScreenSpaceError")});p1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new p1(this)};p1.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 Vx=p1;function _1(e){this._definitionChanged=new me,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(_1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),leadTime:le("leadTime"),trailTime:le("trailTime"),width:le("width"),resolution:le("resolution"),material:Ro("material"),distanceDisplayCondition:le("distanceDisplayCondition")});_1.prototype.clone=function(e){return l(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 _1(this)};_1.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 kp=_1;function g1(e){this._definitionChanged=new me,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(g1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),plane:le("plane"),dimensions:le("dimensions"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});g1.prototype.clone=function(e){return l(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 g1(this)};g1.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 y1=g1;function x1(e){this._definitionChanged=new me,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._splitDirection=void 0,this._splitDirectionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(x1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),pixelSize:le("pixelSize"),heightReference:le("heightReference"),color:le("color"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),scaleByDistance:le("scaleByDistance"),translucencyByDistance:le("translucencyByDistance"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance"),splitDirection:le("splitDirection")});x1.prototype.clone=function(e){return l(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.splitDirection=this.splitDirection,e):new x1(this)};x1.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),this.splitDirection=y(this.splitDirection,e.splitDirection)};var Ux=x1;function HNe(e,t){this.positions=l(e)?e:[],this.holes=l(t)?t:[]}var Oa=HNe;function GNe(e){return Array.isArray(e)&&(e=new Oa(e)),new Kn(e)}function b1(e){this._definitionChanged=new me,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(b1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),hierarchy:le("hierarchy",void 0,GNe),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),perPositionHeight:le("perPositionHeight"),closeTop:le("closeTop"),closeBottom:le("closeBottom"),arcType:le("arcType"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex"),textureCoordinates:le("textureCoordinates")});b1.prototype.clone=function(e){return l(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 b1(this)};b1.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 Bd=b1;function T1(e){this._definitionChanged=new me,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(T1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),width:le("width"),granularity:le("granularity"),material:Ro("material"),depthFailMaterial:Ro("depthFailMaterial"),arcType:le("arcType"),clampToGround:le("clampToGround"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});T1.prototype.clone=function(e){return l(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 T1(this)};T1.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 ac=T1;function C1(e){this._definitionChanged=new me,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(C1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),shape:le("shape"),cornerType:le("cornerType"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});C1.prototype.clone=function(e){return l(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 C1(this)};C1.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 zx=C1;function A1(e){this._definitionChanged=new me,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(A1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),coordinates:le("coordinates"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),rotation:le("rotation"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});A1.prototype.clone=function(e){return l(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 A1(this)};A1.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 kd=A1;function E1(e){this._definitionChanged=new me,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(E1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),minimumHeights:le("minimumHeights"),maximumHeights:le("maximumHeights"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});E1.prototype.clone=function(e){return l(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 E1(this)};E1.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 Vp=E1;var WNe=new fe,w9=[];function jNe(e){return new Gc(e)}function qNe(e){return le(e,void 0,jNe)}function Gs(e,t){return le(e,void 0,function(n){return n instanceof t?n:new t(n)})}function Sf(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;l(t)||(t=Hn()),this._availability=void 0,this._id=t,this._definitionChanged=new me,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",...w9],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 D9(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)&&D9(r,r._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(Sf.prototype,{availability:Pl("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:Pl("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&&D9(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!l(this.entityCollection)||this.entityCollection.show)&&(!l(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(l(t)){let o=t._children.indexOf(this);t._children.splice(o,1)}this._parent=e,l(e)&&e._children.push(this);let i=this.isShowing;n!==i&&D9(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:Gs("billboard",oc),box:Gs("box",Ox),corridor:Gs("corridor",Lx),cylinder:Gs("cylinder",Nx),description:le("description"),ellipse:Gs("ellipse",Fx),ellipsoid:Gs("ellipsoid",Bx),label:Gs("label",Fd),model:Gs("model",Bp),tileset:Gs("tileset",Vx),orientation:le("orientation"),path:Gs("path",kp),plane:Gs("plane",y1),point:Gs("point",Ux),polygon:Gs("polygon",Bd),polyline:Gs("polyline",ac),polylineVolume:Gs("polylineVolume",zx),properties:Gs("properties",Rl),position:qNe("position"),rectangle:Gs("rectangle",kd),viewFrom:le("viewFrom"),wall:Gs("wall",Vp)});Sf.registerEntityType=function(e,t){Object.defineProperties(Sf.prototype,{[e]:Gs(e,t)}),w9.includes(e)||w9.push(e)};Sf.prototype.isAvailable=function(e){let t=this._availability;return!l(t)||t.contains(e)};Sf.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,Pl(e,!0))};Sf.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};Sf.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=l(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];!l(s)&&t.indexOf(r)===-1&&this.addProperty(r),l(a)&&(l(s)?l(s.merge)&&s.merge(a):l(a.merge)&&l(a.clone)?this[r]=a.clone():this[r]=a)}};var roe=new $,soe=new h,aoe=new Oe;Sf.prototype.computeModelMatrix=function(e,t){let n=Y.getValueOrUndefined(this._position,e,soe);if(!l(n))return;let i=Y.getValueOrUndefined(this._orientation,e,aoe);return l(i)?t=F.fromRotationTranslation($.fromQuaternion(i,roe),n,t):t=Mt.eastNorthUpToFixedFrame(n,void 0,t),t};Sf.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,o){let r=Y.getValueOrDefault(t,e,Ye.NONE),s=Y.getValueOrUndefined(this._position,e,soe);if(r===Ye.NONE||!l(s)||h.equalsEpsilon(s,h.ZERO,P.EPSILON8))return this.computeModelMatrix(e,o);let a=i.cartesianToCartographic(s,WNe);Af(r)?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=Y.getValueOrUndefined(this._orientation,e,aoe);return l(c)?o=F.fromRotationTranslation($.fromQuaternion(c,roe),s,o):o=Mt.eastNorthUpToFixedFrame(s,void 0,o),o};Sf.supportsMaterialsforEntitiesOnTerrain=function(e){return zc.supportsMaterials(e)};Sf.supportsPolylinesOnTerrain=function(e){return Ld.isSupported(e)};var er=Sf;var YNe=new Ut(H.WHITE),XNe=new Kn(!0),KNe=new Kn(!0),ZNe=new Kn(!1),$Ne=new Kn(H.BLACK),QNe=new Kn(yn.DISABLED),JNe=new Kn(new Lt),eFe=new Kn(Vn.BOTH);function Wc(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 me,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=er.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(Wc.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||!l(this._entity.availability)&&Y.isConstant(this._showProperty)&&Y.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!l(this._entity.availability)&&Y.isConstant(this._showProperty)&&Y.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}}});Wc.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)};Wc.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)};Wc.prototype.createFillGeometryInstance=he.throwInstantiationError;Wc.prototype.createOutlineGeometryInstance=he.throwInstantiationError;Wc.prototype.isDestroyed=function(){return!1};Wc.prototype.destroy=function(){ue(this)};Wc.prototype._isHidden=function(e,t){let n=t.show;return l(n)&&n.isConstant&&!n.getValue(He.MINIMUM_VALUE)};Wc.prototype._isOnTerrain=function(e,t){return!1};Wc.prototype._getIsClosed=function(e){return!0};Wc.prototype._isDynamic=he.throwInstantiationError;Wc.prototype._setStaticOptions=he.throwInstantiationError;Wc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.fill,s=l(r)&&r.isConstant?r.getValue(He.MINIMUM_VALUE):!0,a=o.outline,c=l(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 u=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,YNe),this._fillProperty=y(r,KNe),this._showProperty=y(u,XNe),this._showOutlineProperty=y(o.outline,ZNe),this._outlineColorProperty=c?y(o.outlineColor,$Ne):void 0,this._shadowsProperty=y(o.shadows,QNe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,JNe),this._classificationTypeProperty=y(o.classificationType,eFe),this._fillEnabled=s;let f=this._isOnTerrain(e,o)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof Ut);if(c&&f&&(xt(xt.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=l(d)?d.getValue(He.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Wc.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var ii=Wc;function fA(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new me,this.setCallback(e,t)}Object.defineProperties(fA.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});var tFe=new Z;fA.prototype.getValue=function(e,t){return l(e)||(e=Z.now(tFe)),this._callback(e,t)};fA.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};fA.prototype.equals=function(e){return this===e||e instanceof fA&&this._callback===e._callback&&this._isConstant===e._isConstant};var Vd=fA;var coe=new h;function dA(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 me,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;let o=this;if(l(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,coe);if(!l(r)||h.equals(r,h.ZERO)||!l(e.globe))return;this._position=h.clone(r,this._position),this._updateClamping(),this._normal=e.ellipsoid.geodeticSurfaceNormal(r,this._normal)}}Object.defineProperties(dA.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});dA.prototype._updateClamping=function(){l(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=this._position;if(h.equals(t,h.ZERO)){this._terrainHeight=0;return}let i=e.ellipsoid.cartesianToCartographic(t,this._cartographicPosition),o=e.getHeight(i,this._heightReference);l(o)?this._terrainHeight=o:this._terrainHeight=0;let r=s=>{this._terrainHeight=s.height,this.definitionChanged.raiseEvent()};this._removeCallbackFunc=e.updateHeight(i,r,this._heightReference)};var nFe=new Z;dA.prototype.getValue=function(e,t){l(e)||(e=Z.now(nFe));let n=Y.getValueOrDefault(this._heightReference,e,Ye.NONE),i=Y.getValueOrDefault(this._extrudedHeightReference,e,Ye.NONE);if(n===Ye.NONE&&!JC(i))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,coe);if(!l(r)||h.equals(r,h.ZERO)||!l(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.ellipsoid.geodeticSurfaceNormal(r,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};dA.prototype.isDestroyed=function(){return!1};dA.prototype.destroy=function(){return l(this._removeEventListener)&&this._removeEventListener(),l(this._removeModeListener)&&this._removeModeListener(),l(this._removeCallbackFunc)&&this._removeCallbackFunc(),ue(this)};var Hx=dA;function iFe(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(!l(o))return;l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(l(r)){let s=new Vd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new Hx(this._scene,s,r)}}var Up=iFe;var loe=h.ZERO,uoe=new h,oFe=new h,foe=new H;function rFe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function gu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new rFe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}l(Object.create)&&(gu.prototype=Object.create(ii.prototype),gu.prototype.constructor=gu);Object.defineProperties(gu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});gu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(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 Ut){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,foe)),l(a)||(a=H.WHITE),s.color=Wt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,loe,uoe))),new St({id:t,geometry:Da.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:s})};gu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,foe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,loe,uoe))),new St({id:t,geometry:Md.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:r})};gu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};gu.prototype._isHidden=function(e,t){return!l(t.dimensions)||!l(e.position)||ii.prototype._isHidden.call(this,e,t)};gu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.dimensions.isConstant||!Y.isConstant(t.outlineWidth)};gu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(He.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==Ye.NONE?an.ALL:void 0};gu.prototype._onEntityPropertyChanged=Up;gu.DynamicGeometryUpdater=hA;function hA(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(hA.prototype=Object.create(ni.prototype),hA.prototype.constructor=hA);hA.prototype._isHidden=function(e,t,n){let i=Y.getValueOrUndefined(e.position,n,oFe),o=this._options.dimensions;return!l(i)||!l(o)||ni.prototype._isHidden.call(this,e,t,n)};hA.prototype._setOptions=function(e,t,n){let i=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),o=this._options;o.dimensions=Y.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==Ye.NONE?an.ALL:void 0};var S1=gu;function Gx(e,t,n){this._callback=void 0,this._isConstant=void 0,this._referenceFrame=y(n,Vi.FIXED),this._definitionChanged=new me,this.setCallback(e,t)}Object.defineProperties(Gx.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var sFe=new Z;Gx.prototype.getValue=function(e,t){return l(e)||(e=Z.now(sFe)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Gx.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};Gx.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._callback(e,n);return Nd.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};Gx.prototype.equals=function(e){return this===e||e instanceof Gx&&this._callback===e._callback&&this._isConstant===e._isConstant&&this._referenceFrame===e._referenceFrame};var v1=Gx;var woe=Vo(voe(),1);var wFe=0,F9={};function lm(e,t){let n,i=e;l(F9[i])?n=F9[i]:(n=wFe++,F9[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(lm.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(!l(this._element)){let e=woe.default.sanitize(this._html),t=document.createElement("div");t.className="cesium-credit-wrapper",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}}});lm.equals=function(e,t){return e===t||l(e)&&l(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};lm.prototype.equals=function(e){return lm.equals(this,e)};lm.prototype.isIon=function(){return this.html.indexOf("ion-credit.png")!==-1};lm.getIonCredit=function(e){let t=l(e.collapsible)&&!e.collapsible;return new lm(e.html,t)};lm.clone=function(e){if(l(e))return new lm(e.html,e.showOnScreen)};var vt=lm;function jx(e){this._url=e,this._cubeMapBuffers=void 0,this._texture=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new me}Object.defineProperties(jx.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}}});jx.isSupported=function(e){return(e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat)&&e.supportsTextureLod};function B9(e){e._cubeMapBuffers=void 0}jx.prototype.update=function(e){let{context:t}=e;if(!jx.isSupported(t))return;if(l(this._texture)){B9(this);return}if(!l(this._texture)&&!this._loading){let f=t.textureCache.getTexture(this._url);l(f)&&(B9(this),this._texture=f,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!l(n)&&!this._loading){let f=this;Sl(this._url).then(function(d){f._cubeMapBuffers=d,f._loading=!1}).catch(function(d){f.isDestroyed()||f._errorEvent.raiseEvent(d)}),this._loading=!0}if(!l(this._cubeMapBuffers))return;let{pixelDatatype:i}=n[0].positiveX;l(i)||(i=t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT);let o=Je.RGBA,r=n.length;this._maximumMipmapLevel=r-1;let s=n[0].positiveX.width,a=Math.log2(s)+1;if(r!==a){let f={};Object.values(br.FaceName).forEach(d=>{f[d]=void 0});for(let d=r;d<a;d++)n.push(f)}let c=new $t({minificationFilter:Zt.LINEAR_MIPMAP_LINEAR}),u=new br({context:t,source:n[0],flipY:!1,pixelDatatype:i,pixelFormat:o,sampler:c});u.loadMipmaps(n.slice(1)),this._texture=u,this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture),this._ready=!0};jx.prototype.isDestroyed=function(){return!1};jx.prototype.destroy=function(){return B9(this),this._texture=this._texture&&this._texture.destroy(),ue(this)};var zd=jx;function O1(e){e=y(e,y.EMPTY_OBJECT);let t=l(e.imageBasedLightingFactor)?z.clone(e.imageBasedLightingFactor):new z(1,1);this._imageBasedLightingFactor=t;let n=e.sphericalHarmonicCoefficients;this._sphericalHarmonicCoefficients=n,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentCubeMap=void 0,this._specularEnvironmentCubeMapDirty=!0,this._specularEnvironmentMapLoaded=!1,this._previousSpecularEnvironmentMapLoaded=!1,this._useDefaultSpecularMaps=!1,this._useDefaultSphericalHarmonics=!1,this._shouldRegenerateShaders=!1,this._previousFrameNumber=void 0,this._previousImageBasedLightingFactor=z.clone(t),this._previousSphericalHarmonicCoefficients=n,this._removeErrorListener=void 0}Object.defineProperties(O1.prototype,{imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){this._previousImageBasedLightingFactor=z.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor),this._imageBasedLightingFactor=z.clone(e,this._imageBasedLightingFactor)}},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._specularEnvironmentCubeMapDirty=this._specularEnvironmentCubeMapDirty||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}},specularEnvironmentCubeMap:{get:function(){return this._specularEnvironmentCubeMap}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready||this._useDefaultSpecularMaps}}});function DFe(e,t){if(zd.isSupported(t)){if(e._specularEnvironmentCubeMap=e._specularEnvironmentCubeMap&&e._specularEnvironmentCubeMap.destroy(),l(e._specularEnvironmentMaps)){let n=new zd(e._specularEnvironmentMaps);e._specularEnvironmentCubeMap=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}O1.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;z.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=z.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentCubeMapDirty&&(DFe(this,t),this._specularEnvironmentCubeMapDirty=!1),l(this._specularEnvironmentCubeMap)&&(this._specularEnvironmentCubeMap.update(e),this._specularEnvironmentCubeMap.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};O1.prototype.isDestroyed=function(){return!1};O1.prototype.destroy=function(){return this._specularEnvironmentCubeMap=this._specularEnvironmentCubeMap&&this._specularEnvironmentCubeMap.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var qx=O1;var V9=Vo(au(),1);var k9,Doe="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiZjBmMDE4Ny05M2JlLTRlMzgtYjIxYi05YmJjM2QwMzJkYWMiLCJpZCI6MjU5LCJpYXQiOjE3MzA0NjY3MDl9.t-7gCGPUe-oGCyCoeXPtYmlMVdgqUQD9mn-Da23yUoI",yU={};yU.defaultAccessToken=Doe;yU.defaultServer=new we({url:"https://api.cesium.com/"});yU.getDefaultTokenCredit=function(e){if(e===Doe){if(!l(k9)){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>`;k9=new vt(t,!0)}return k9}};var Hd=yU;function Yc(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:IFe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new ce("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");we.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new V9.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}l(Object.create)&&(Yc.prototype=Object.create(we.prototype),Yc.prototype.constructor=Yc);Yc.fromAssetId=function(e,t){let n=Yc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Yc(i,n)})};Object.defineProperties(Yc.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=Yc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Yc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(vt.getIonCredit),i=Hd.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(vt.clone(i)),n};Yc.prototype.clone=function(e){let t=y(this._ionRoot,this);return l(e)||(e=new Yc(t._ionEndpoint,t._ionEndpointResource)),e=we.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Yc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return we.prototype.fetchImage.call(this,e)};Yc.prototype._makeRequest=function(e){return this._isExternal||new V9.default(this.url).authority()!==this._ionEndpointDomain?we.prototype._makeRequest.call(this,e):(l(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),we.prototype._makeRequest.call(this,e))};Yc._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,Hd.defaultServer),i=y(t.accessToken,Hd.defaultAccessToken);n=we.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function IFe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(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 xu=Yc;function um(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(um.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}}});um.prototype.get=function(e){return this._array[e]};um.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};um.prototype.peek=function(){return this._array[this._length-1]};um.prototype.push=function(e){let t=this.length++;this._array[t]=e};um.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};um.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};um.prototype.resize=function(e){this.length=e};um.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Xc=um;var zp={X:0,Y:1,Z:2};zp.Y_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,1,0,-1,0]));zp.Z_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,-1,0,1,0]));zp.X_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([0,0,1,0,1,0,-1,0,0]));zp.Z_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,0,-1,0,1,0,1,0,0]));zp.X_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([0,1,0,-1,0,0,0,0,1]));zp.Y_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,-1,0,1,0,0,0,0,1]));zp.fromName=function(e){return zp[e]};var Oo=Object.freeze(zp);function Ioe(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(Ioe.prototype,{metadata:{get:function(){return this._metadata}}});var Yx=Ioe;function Kg(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),Kg.decode(e)}Kg.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};Kg.decodeWithFromCharCode=function(e){let t="",n=PFe(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 M1(e,t,n){return t<=e&&e<=n}function PFe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c<a;++c){let u=e[c];if(i===0){if(M1(u,0,127)){s.push(u);continue}if(M1(u,194,223)){i=1,t=u&31;continue}if(M1(u,224,239)){u===224&&(o=160),u===237&&(r=159),i=2,t=u&15;continue}if(M1(u,240,244)){u===240&&(o=144),u===244&&(r=143),i=3,t=u&7;continue}throw new ce("String decoding failed.")}if(!M1(u,o,r)){t=i=n=0,o=128,r=191,--c;continue}o=128,r=191,t=t<<6|u&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?Kg.decode=Kg.decodeWithTextDecoder:Kg.decode=Kg.decodeWithFromCharCode;var Ol=Kg;function RFe(e,t){return t=y(t,0),Ol(e,t,Math.min(4,e.length))}var Gd=RFe;function wf(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,l(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 L1=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+=L1;let c=a.getUint32(o,!0);if(c!==1)throw new ce(`Only Composite Tile version 1 is supported. Version ${c} is not.`);o+=L1,o+=L1;let u=a.getUint32(o,!0);o+=L1;let f=n.queryParameters.compositeIndex;l(f)?f=`${f}_`:f="";let d=[];d.length=u;for(let m=0;m<u;++m){let x=Gd(s,o),b=a.getUint32(o+L1*2,!0),T=r[x],C=`${f}${m}`,A=n.getDerivedResource({queryParameters:{compositeIndex:C}});if(l(T))d[m]=Promise.resolve(T(e,t,A,i,o));else throw new ce(`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.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};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 ue(this)};var N1=wf;function OFe(e,t,n){return JSON.parse(Ol(e,t,n))}var Mo=OFe;function cc(e){this._id=Hn();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,kt.maximumTextureSize),r=Math.ceil(t/kt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,u=c*.5;n=new z(o,r),i=new oe(s,a,c,u)}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(cc.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(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}}});cc.DEFAULT_COLOR_VALUE=H.WHITE;cc.DEFAULT_SHOW_VALUE=!0;function Poe(e){let t=e._textureDimensions;return t.x*t.y*4}function Roe(e){if(!l(e._batchValues)){let t=Poe(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function Ooe(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}cc.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=Ooe(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=Roe(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};cc.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};cc.prototype.getShow=function(e){if(!l(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var MFe=new Array(4);cc.prototype.setColor=function(e,t){if(H.equals(t,cc.DEFAULT_COLOR_VALUE)&&!l(this._batchValues))return;let n=t.toBytes(MFe),i=n[3],o=Roe(this),r=e*4,s=Ooe(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,u=s[a]!==0;o[r+3]=u?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,l(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};cc.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};cc.prototype.getColor=function(e,t){if(!l(this._batchValues))return H.clone(cc.DEFAULT_COLOR_VALUE,t);let n=this._batchValues,i=e*4,o=this._showAlphaProperties,r=e*2;return H.fromBytes(n[i],n[i+1],n[i+2],o[r+1],t)};cc.prototype.getPickColor=function(e){return this._pickIds[e]};function Moe(e,t,n){let i=e._textureDimensions;return new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:$t.NEAREST})}function LFe(e,t){let n=e._featuresLength;if(!l(e._pickTexture)&&n>0){let i=e._pickIds,o=Poe(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let u=t.createPickId(s.getFeature(c));i.push(u);let f=u.color,d=c*4;r[d]=H.floatToByte(f.red),r[d+1]=H.floatToByte(f.green),r[d+2]=H.floatToByte(f.blue),r[d+3]=H.floatToByte(f.alpha)}e._pickTexture=Moe(e,t,r),l(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function NFe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}cc.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&LFe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,l(this._batchTexture)||(this._batchTexture=Moe(this,n,this._batchValues),l(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),NFe(this))};cc.prototype.isDestroyed=function(){return!1};cc.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 ue(this)};var Kc=cc;var FFe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},BFe={SCALAR:void 0,VEC2:z,VEC3:h,VEC4:oe,MAT2:Bi,MAT3:$,MAT4:F};function kFe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=FFe[e.type],o=BFe[e.type];return{componentsPerAttribute:i,classType:o,createArrayBufferView:function(r,s,a){return X.createArrayBufferView(n,r,s,i*a)}}}var bu=kFe;function Hp(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,VFe(this,e.extension,e.binaryBody)}Object.defineProperties(Hp.prototype,{byteLength:{get:function(){return this._byteLength}}});function VFe(e,t,n){let i,o,r,s=t.instancesLength,a=t.classes,c=t.classIds,u=t.parentCounts,f=t.parentIds,d=s,p=0;l(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=on.SCALAR,r=bu(c),c=r.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(l(u)){for(l(u.byteOffset)&&(u.componentType=y(u.componentType,X.UNSIGNED_SHORT),u.type=on.SCALAR,r=bu(u),u=r.createArrayBufferView(n.buffer,n.byteOffset+u.byteOffset,s),p+=u.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=u[i];p+=g.byteLength}l(f)&&l(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=on.SCALAR,r=bu(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,C=a[i].instances,A=UFe(T,C,n);p+=zFe(A),a[i].instances=yt(A,C)}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=u,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function UFe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new ce("componentType is required.");if(!l(c))throw new ce("type is required.");if(!l(n))throw new ce(`Property ${o} requires a batch table binary.`);let u=bu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function zFe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var HFe=[],GFe=[],WFe=0;function jFe(e,t,n){let i=e._classIds,o=e._parentCounts,r=e._parentIds,s=e._parentIndexes,a=i.length,c=HFe;c.length=Math.max(c.length,a);let u=++WFe,f=GFe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===u)continue;c[t]=u;let d=n(e,t);if(l(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 qFe(e,t,n){let i=!0;for(;i;){let o=n(e,t);if(l(o))return o;let r=e._parentIds[t];i=r!==t,t=r}}function F1(e,t,n){let i=e._parentCounts,o=e._parentIds;if(l(o)){if(l(i))return jFe(e,t,n)}else return n(e,t);return qFe(e,t,n)}Hp.prototype.hasProperty=function(e,t){let n=F1(this,e,function(i,o){let r=i._classIds[o],s=i._classes[r].instances;if(l(s[t]))return!0});return l(n)};Hp.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let o=t[i].instances;if(l(o[e]))return!0}return!1};Hp.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,F1(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};Hp.prototype.getProperty=function(e,t){return F1(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o],s=n._classIndexes[i],a=r.instances[t];if(l(a))return l(a.typedArray)?YFe(a,s):Ge(a[s],!0)})};function YFe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}Hp.prototype.setProperty=function(e,t,n){let i=F1(this,e,function(o,r){let s=o._classIds[r],a=o._classes[s],c=o._classIndexes[r],u=a.instances[t];if(l(u))return l(u.typedArray)?XFe(u,c,n):u[c]=Ge(n,!0),!0});return l(i)};function XFe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}Hp.prototype.isClass=function(e,t){let n=F1(this,e,function(i,o){let r=i._classIds[o];if(i._classes[r].name===t)return!0});return l(n)};Hp.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var Xx=Hp;var KFe={HIGHLIGHT:0,REPLACE:1,MIX:2},Ml=Object.freeze(KFe);var U9=Kc.DEFAULT_COLOR_VALUE,z9=Kc.DEFAULT_SHOW_VALUE;function ho(e,t,n,i,o){this.featuresLength=t;let r;l(n)&&(r=n.extensions),this._extensions=y(r,{});let s=ZFe(n);this._properties=s,this._batchTableHierarchy=$Fe(this,n,i);let a=Noe(t,s,i);this._binaryPropertiesByteLength=QFe(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new Kc({featuresLength:t,colorChangedCallback:o,owner:e,statistics:e.tileset.statistics})}ho._deprecationWarning=ds;Object.defineProperties(ho.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function ZFe(e){let t={};if(!l(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 $Fe(e,t,n){if(!l(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],o=t.HIERARCHY;if(l(o)&&(ho._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),!!l(i))return new Xx({extension:i,binaryBody:n})}function Noe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new ce("componentType is required.");if(!l(c))throw new ce("type is required.");if(!l(n))throw new ce(`Property ${o} requires a batch table binary.`);let u=bu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function QFe(e){if(!l(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}ho.getBinaryProperties=function(e,t,n){return Noe(e,t,n)};ho.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};ho.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};ho.prototype.getShow=function(e){return this._batchTexture.getShow(e)};ho.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};ho.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};ho.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};ho.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var JFe=new H;ho.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(U9),this.setAllShow(z9);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let o=t.getFeature(i),r=l(e.color)?y(e.color.evaluateColor(o,JFe),U9):U9,s=l(e.show)?y(e.show.evaluate(o),z9):z9;this.setColor(i,r),this.setShow(i,s)}};function e2e(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function t2e(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}ho.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};ho.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};ho.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};ho.prototype.hasProperty=function(e,t){return l(this._properties[t])||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};ho.prototype.hasPropertyBySemantic=function(){return!1};ho.prototype.getPropertyIds=function(e,t){t=l(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};ho.prototype.getPropertyBySemantic=function(e,t){};ho.prototype.getProperty=function(e,t){if(l(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(l(i))return e2e(i,e)}let n=this._properties[t];if(l(n))return Ge(n[e],!0);if(l(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(l(i))return i}};ho.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(l(this._batchTableBinaryProperties)){let r=this._batchTableBinaryProperties[t];if(l(r)){t2e(r,e,n);return}}if(l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let o=this._properties[t];l(o)||(this._properties[t]=new Array(i),o=this._properties[t]),o[e]=Ge(n,!0)};function n2e(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)); 
} 
`}ho.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(o){let r=Foe(o,n,!1),s;return kt.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}
${n2e(i)}${s}`}};function Loe(e,t){return e=Ue.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 i2e(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let u=o;u<e.length;++u){let f=e.charAt(u);if(f==="(")++s;else if(f===")"&&(--s,s===0)){r=u+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 Foe(e,t,n){if(!l(t))return Loe(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),o=e.match(i);if(!l(o))return Loe(e,n);let r=o[0],s=o[2];e=Ue.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); 
`,u;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),u=`    vec4 source = ${f}; 
    tile_diffuse = tile_diffuse_final(source, tile_featureColor); 
    tile_main(); 
`}else s==="sampler2D"&&(e=i2e(e,t),u=`    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) 
{ 
${u}`,n&&(e+=c),e+=`} 
`,e}ho.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=Foe(i,t,!0),kt.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}};ho.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=Ue.replaceMain(e,"tile_main"),kt.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 o2e(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===Ml.HIGHLIGHT)return 0;if(n===Ml.REPLACE)return 1;if(n===Ml.MIX)return P.clamp(i,P.EPSILON4,1)}ho.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return yt(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 o2e(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};ho.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var Zg={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};ho.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=r2e(this);for(let u=t;u<i;++u){let f=n[u];if(f.pass===ve.COMPUTE)continue;let d=f.derivedCommands.tileset;(!l(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=s2e(f),f.dirty=!1);let p=d.originalCommand;c!==Zg.ALL_OPAQUE&&f.pass!==ve.TRANSLUCENT&&(l(d.translucent)||(d.translucent=a2e(p))),c!==Zg.ALL_TRANSLUCENT&&f.pass!==ve.TRANSLUCENT&&(l(d.opaque)||(d.opaque=c2e(p)),a&&(r||(l(d.zback)||(d.zback=u2e(e.context,p)),s._backfaceCommands.push(d.zback)),(!l(d.stencil)||o._selectionDepth!==d2e(d.stencil))&&(f.renderState.depthMask?d.stencil=f2e(p,o._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,m=d.translucent;f.pass!==ve.TRANSLUCENT?(c===Zg.ALL_OPAQUE&&(n[u]=g),c===Zg.ALL_TRANSLUCENT&&(n[u]=m),c===Zg.OPAQUE_AND_TRANSLUCENT&&(n[u]=g,n.push(m))):n[u]=p}};function r2e(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?Zg.ALL_OPAQUE:t===e.featuresLength?Zg.ALL_TRANSLUCENT:Zg.OPAQUE_AND_TRANSLUCENT}function s2e(e){let t=Ze.shallowClone(e),n=t.pass===ve.TRANSLUCENT;return t.uniformMap=l(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function a2e(e){let t=Ze.shallowClone(e);return t.pass=ve.TRANSLUCENT,t.renderState=h2e(e.renderState),t}function c2e(e){let t=Ze.shallowClone(e);return t.renderState=m2e(e.renderState),t}function l2e(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!l(n)){let i=t.fragmentShaderSource.clone();i.defines=l(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 u2e(e,t){let n=Ze.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=Vt.setCesium3DTileBit(),i.stencilMask=Vt.CESIUM_3D_TILE_MASK,n.renderState=Ve.fromCache(i),n.castShadows=!1,n.receiveShadows=!1,n.uniformMap=Ge(t.uniformMap);let o=new z(5,5);return n.uniformMap.u_polygonOffset=function(){return o},n.shaderProgram=l2e(e,t.shaderProgram),n}function f2e(e,t){let n=Ze.shallowClone(e),i=Ge(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Vt.SKIP_LOD_MASK,i.stencilTest.reference=Vt.CESIUM_3D_TILE_MASK|t<<Vt.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=Un.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=ft.REPLACE,i.stencilTest.backFunction=Un.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=ft.REPLACE,i.stencilMask=Vt.CESIUM_3D_TILE_MASK|Vt.SKIP_LOD_MASK,n.renderState=Ve.fromCache(i),n}function d2e(e){return(e.renderState.stencilTest.reference&Vt.SKIP_LOD_MASK)>>>Vt.SKIP_LOD_BIT_SHIFT}function h2e(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=Vt.setCesium3DTileBit(),t.stencilMask=Vt.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}function m2e(e){let t=Ge(e,!0);return t.stencilTest=Vt.setCesium3DTileBit(),t.stencilMask=Vt.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}ho.prototype.update=function(e,t){this._batchTexture.update(e,t)};ho.prototype.isDestroyed=function(){return!1};ho.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var Gp=ho;function p2e(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var fm=p2e;var mA=`in vec3 position;
in float a_batchId;

uniform mat4 u_modifiedModelViewProjection;

void main()
{
    gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0));
}
`;function Df(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(Df.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 l(this._color)||(this._color=new H),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(l(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)}}});Df.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Df.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Df.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Df.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(l(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(l(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(l(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(l(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),l(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=l(e.group)?e.group.metadata:void 0;if(l(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let u=e.tileset.metadata;if(l(u)){if(u.hasPropertyBySemantic(n))return u.getPropertyBySemantic(n);if(u.hasProperty(n))return u.getProperty(n)}};Df.prototype.getPropertyInherited=function(e){return Df.getPropertyInherited(this._content,this._batchId,e)};Df.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Df.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Df.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Df.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Ws=Df;var H9=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)})}},G9=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)})}},Ll=class e{static get version(){return"1.3.9"}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,u;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)},u=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 "+u),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()},t.property||this.throwError('Unexpected "'+this.char+'"'),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)}}},_2e=new H9;Object.assign(Ll,{hooks:_2e,plugins:new G9(Ll),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"});Ll.max_unop_len=Ll.getMaxKeyLen(Ll.unary_ops);Ll.max_binop_len=Ll.getMaxKeyLen(Ll.binary_ops);var $g=e=>new Ll(e).parse(),g2e=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Ll).filter(e=>!g2e.includes(e)&&$g[e]===void 0).forEach(e=>{$g[e]=Ll[e]});$g.Jsep=Ll;var y2e="ConditionalExpression",x2e={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:y2e,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 :")}})}};$g.plugins.register(x2e);var b2e={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},ht=Object.freeze(b2e);function Wd(e,t){this._expression=e,e=M2e(e,t),e=N2e(L2e(e)),$g.addBinaryOp("=~",0),$g.addBinaryOp("!~",0);let n;try{n=$g(e)}catch(i){throw new ce(i)}this._runtimeAst=Ti(this,n)}Object.defineProperties(Wd.prototype,{expression:{get:function(){return this._expression}}});var On={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new z],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 z),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++]}};Wd.prototype.evaluate=function(e,t){On.reset();let n=this._runtimeAst.evaluate(e);return t instanceof H&&n instanceof oe?H.fromCartesian4(n,t):n instanceof z||n instanceof h||n instanceof oe?n.clone(t):n};Wd.prototype.evaluateColor=function(e,t){On.reset();let n=this._runtimeAst.evaluate(e);return H.fromCartesian4(n,t)};Wd.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e}
{
    return ${o};
}
`,o};Wd.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};Wd.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var T2e=["!","-","+"],Boe=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],TU=/\${(.*?)}/g,C2e=/\\/g,A2e="@#%",E2e=/@#%/g,CU=new H,AU={abs:js(Math.abs),sqrt:js(Math.sqrt),cos:js(Math.cos),sin:js(Math.sin),tan:js(Math.tan),acos:js(Math.acos),asin:js(Math.asin),atan:js(Math.atan),radians:js(P.toRadians),degrees:js(P.toDegrees),sign:js(P.sign),floor:js(Math.floor),ceil:js(Math.ceil),round:js(Math.round),exp:js(Math.exp),exp2:js(v2e),log:js(Math.log),log2:js(w2e),fract:js(S2e),length:D2e,normalize:I2e},EU={atan2:xU(Math.atan2,!1),pow:xU(Math.pow,!1),min:xU(Math.min,!0),max:xU(Math.max,!0),distance:P2e,dot:R2e,cross:O2e},q9={clamp:koe(P.clamp,!0),mix:koe(P.lerp,!0)};function S2e(e){return e-Math.floor(e)}function v2e(e){return Math.pow(2,e)}function w2e(e){return P.log2(e)}function js(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof z)return z.fromElements(e(n.x),e(n.y),On.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),On.getCartesian3());if(n instanceof oe)return oe.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),On.getCartesian4());throw new ce(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function xU(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof z)return z.fromElements(e(i.x,o),e(i.y,o),On.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),On.getCartesian3());if(i instanceof oe)return oe.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),On.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof z&&o instanceof z)return z.fromElements(e(i.x,o.x),e(i.y,o.y),On.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),On.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),On.getCartesian4());throw new ce(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function koe(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 z&&o instanceof z)return z.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),On.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),On.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),On.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof z&&o instanceof z&&r instanceof z)return z.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),On.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),On.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),On.getCartesian4());throw new ce(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function D2e(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof z)return z.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof oe)return oe.magnitude(t);throw new ce(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function I2e(e,t){if(typeof t=="number")return 1;if(t instanceof z)return z.normalize(t,On.getCartesian2());if(t instanceof h)return h.normalize(t,On.getCartesian3());if(t instanceof oe)return oe.normalize(t,On.getCartesian4());throw new ce(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function P2e(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof z&&n instanceof z)return z.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 ce(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function R2e(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof z&&n instanceof z)return z.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 ce(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function O2e(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,On.getCartesian3());throw new ce(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function bt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,j2e(this)}function M2e(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function L2e(e){return e.replace(C2e,A2e)}function j9(e){return e.replace(E2e,"\\")}function N2e(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 ce("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function F2e(e){let t=typeof e.value;if(e.value===null)return new bt(ht.LITERAL_NULL,null);if(t==="boolean")return new bt(ht.LITERAL_BOOLEAN,e.value);if(t==="number")return new bt(ht.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new bt(ht.VARIABLE_IN_STRING,e.value):new bt(ht.LITERAL_STRING,j9(e.value))}function B2e(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(!l(c.callee)||c.callee.name!=="regExp")throw new ce(`${o} is not a function.`);return i===0?o==="test"?new bt(ht.LITERAL_BOOLEAN,!1):new bt(ht.LITERAL_NULL,null):(s=Ti(e,c),a=Ti(e,n[0]),new bt(ht.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=Ti(e,c),new bt(ht.FUNCTION_CALL,o,r);throw new ce(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new bt(ht.LITERAL_COLOR,o);if(r=Ti(e,n[0]),l(n[1])){let c=Ti(e,n[1]);return new bt(ht.LITERAL_COLOR,o,[r,c])}return new bt(ht.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new ce(`${o} requires three arguments.`);return r=[Ti(e,n[0]),Ti(e,n[1]),Ti(e,n[2])],new bt(ht.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new ce(`${o} requires four arguments.`);return r=[Ti(e,n[0]),Ti(e,n[1]),Ti(e,n[2]),Ti(e,n[3])],new bt(ht.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]=Ti(e,n[c]);return new bt(ht.LITERAL_VECTOR,o,r)}else{if(o==="isNaN"||o==="isFinite")return i===0?o==="isNaN"?new bt(ht.LITERAL_BOOLEAN,!0):new bt(ht.LITERAL_BOOLEAN,!1):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="isExactClass"||o==="isClass"){if(i<1||i>1)throw new ce(`${o} requires exactly one argument.`);return r=Ti(e,n[0]),new bt(ht.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new ce(`${o} does not take any argument.`);return new bt(ht.UNARY,o)}else if(l(AU[o])){if(i!==1)throw new ce(`${o} requires exactly one argument.`);return r=Ti(e,n[0]),new bt(ht.UNARY,o,r)}else if(l(EU[o])){if(i!==2)throw new ce(`${o} requires exactly two arguments.`);return s=Ti(e,n[0]),a=Ti(e,n[1]),new bt(ht.BINARY,o,s,a)}else if(l(q9[o])){if(i!==3)throw new ce(`${o} requires exactly three arguments.`);s=Ti(e,n[0]),a=Ti(e,n[1]);let c=Ti(e,n[2]);return new bt(ht.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new bt(ht.LITERAL_BOOLEAN,!1):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="Number")return i===0?new bt(ht.LITERAL_NUMBER,0):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="String")return i===0?new bt(ht.LITERAL_STRING,""):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="regExp")return k2e(e,t)}}throw new ce(`Unexpected function call "${o}".`)}function k2e(e,t){let n=t.arguments;if(n.length===0)return new bt(ht.LITERAL_REGEX,new RegExp);let i=Ti(e,n[0]),o;if(n.length>1){let r=Ti(e,n[1]);if(W9(i)&&W9(r)){try{o=new RegExp(j9(String(i._value)),r._value)}catch(s){throw new ce(s)}return new bt(ht.LITERAL_REGEX,o)}return new bt(ht.REGEX,i,r)}if(W9(i)){try{o=new RegExp(j9(String(i._value)))}catch(r){throw new ce(r)}return new bt(ht.LITERAL_REGEX,o)}return new bt(ht.REGEX,i)}function V2e(e){if(G2e(e.name)){let t=W2e(e.name);return t.substr(0,8)==="tiles3d_"?new bt(ht.BUILTIN_VARIABLE,t):new bt(ht.VARIABLE,t)}else{if(e.name==="NaN")return new bt(ht.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new bt(ht.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new bt(ht.LITERAL_UNDEFINED,void 0)}throw new ce(`${e.name} is not defined.`)}function U2e(e){let t=e.property.name;if(t==="PI")return new bt(ht.LITERAL_NUMBER,Math.PI);if(t==="E")return new bt(ht.LITERAL_NUMBER,Math.E)}function z2e(e){if(e.property.name==="POSITIVE_INFINITY")return new bt(ht.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function H2e(e,t){if(t.object.name==="Math")return U2e(t);if(t.object.name==="Number")return z2e(t);let n,i=Ti(e,t.object);return t.computed?(n=Ti(e,t.property),new bt(ht.MEMBER,"brackets",i,n)):(n=new bt(ht.LITERAL_STRING,t.property.name),new bt(ht.MEMBER,"dot",i,n))}function W9(e){return e._type>=ht.LITERAL_NULL}function G2e(e){return e.substr(0,4)==="czm_"}function W2e(e){return e.substr(4)}function Ti(e,t){let n,i,o,r;if(t.type==="Literal")n=F2e(t);else if(t.type==="CallExpression")n=B2e(e,t);else if(t.type==="Identifier")n=V2e(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=Ti(e,t.argument);if(T2e.indexOf(i)>-1)n=new bt(ht.UNARY,i,s);else throw new ce(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=Ti(e,t.left),r=Ti(e,t.right),Boe.indexOf(i)>-1)n=new bt(ht.BINARY,i,o,r);else throw new ce(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=Ti(e,t.left),r=Ti(e,t.right),Boe.indexOf(i)>-1&&(n=new bt(ht.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=Ti(e,t.test);o=Ti(e,t.consequent),r=Ti(e,t.alternate),n=new bt(ht.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=H2e(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=Ti(e,t.elements[a]);n=new bt(ht.ARRAY,s)}else throw t.type==="Compound"?new ce("Provide exactly one expression."):new ce("Cannot parse expression.");return n}function j2e(e){e._type===ht.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===ht.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===ht.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:l(AU[e._value])&&(e.evaluate=Y2e(e._value)):e._type===ht.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:l(EU[e._value])&&(e.evaluate=X2e(e._value)):e._type===ht.TERNARY?e.evaluate=K2e(e._value):e._type===ht.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===ht.ARRAY?e.evaluate=e._evaluateArray:e._type===ht.VARIABLE?e.evaluate=e._evaluateVariable:e._type===ht.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===ht.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===ht.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===ht.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===ht.REGEX?e.evaluate=e._evaluateRegExp:e._type===ht.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=q2e):e.evaluate=e._evaluateLiteral}function q2e(e){return l(e)?e.content.tileset.timeSinceLoad:0}function Y2e(e){let t=AU[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function X2e(e){let t=EU[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function K2e(e){let t=q9[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 SU(e,t){if(l(e))return e.getPropertyInherited(t)}bt.prototype._evaluateLiteral=function(){return this._value};bt.prototype._evaluateLiteralColor=function(e){let t=CU,n=this._left;if(this._value==="color")l(n)?n.length>1?(H.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):H.fromCssColorString(n[0].evaluate(e),t):H.fromBytes(255,255,255,255,t);else if(this._value==="rgb")H.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;H.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?H.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&H.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return oe.fromColor(t,On.getCartesian4())};bt.prototype._evaluateLiteralVector=function(e){let t=On.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 z)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 ce(`${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 ce(`Invalid ${n} constructor. No valid arguments.`);if(r<s&&r>1)throw new ce(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new ce(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return z.fromArray(t,0,On.getCartesian2());if(n==="vec3")return h.fromArray(t,0,On.getCartesian3());if(n==="vec4")return oe.fromArray(t,0,On.getCartesian4())};bt.prototype._evaluateLiteralString=function(){return this._value};bt.prototype._evaluateVariableString=function(e){let t=this._value,n=TU.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=SU(e,o);l(r)||(r=""),t=t.replace(i,r),n=TU.exec(t)}return t};bt.prototype._evaluateVariable=function(e){return SU(e,this._value)};function Kx(e){return e._value==="feature"}bt.prototype._evaluateMemberDot=function(e){if(Kx(this._left))return SU(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof z||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]};bt.prototype._evaluateMemberBrackets=function(e){if(Kx(this._left))return SU(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof z||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]};bt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};bt.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};bt.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof z)return z.negate(t,On.getCartesian2());if(t instanceof h)return h.negate(t,On.getCartesian3());if(t instanceof oe)return oe.negate(t,On.getCartesian4());if(typeof t=="number")return-t;throw new ce(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};bt.prototype._evaluatePositive=function(e){let t=this._left.evaluate(e);if(!(t instanceof z||t instanceof h||t instanceof oe||typeof t=="number"))throw new ce(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};bt.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};bt.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};bt.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};bt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};bt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ce(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};bt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ce(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};bt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.add(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.add(t,n,On.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new ce(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.subtract(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.subtract(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new ce(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.multiplyComponents(t,n,On.getCartesian2());if(n instanceof z&&typeof t=="number")return z.multiplyByScalar(n,t,On.getCartesian2());if(t instanceof z&&typeof n=="number")return z.multiplyByScalar(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,On.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,On.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.multiplyComponents(t,n,On.getCartesian4());if(n instanceof oe&&typeof t=="number")return oe.multiplyByScalar(n,t,On.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.multiplyByScalar(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new ce(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.divideComponents(t,n,On.getCartesian2());if(t instanceof z&&typeof n=="number")return z.divideByScalar(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,On.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.divideComponents(t,n,On.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.divideByScalar(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new ce(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.fromElements(t.x%n.x,t.y%n.y,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,On.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,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new ce(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof z&&t instanceof z||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?t.equals(n):t===n};bt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof z&&t instanceof z||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?!t.equals(n):t!==n};bt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new ce(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};bt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};bt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};bt.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};bt.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};bt.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};bt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};bt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};bt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};bt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new ce(o)}return i};bt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ce(`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)};bt.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 ce(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};bt.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 ce(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ce(`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 l(i)?i[1]:null};bt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof z||t instanceof h||t instanceof oe)return String(t);throw new ce(`Unexpected function call "${this._value}".`)};function Voe(e){let t=e._left,n=t.length;for(let a=0;a<n;++a)if(t[a]._type!==ht.LITERAL_NUMBER)return;let i=t[0]._value,o=t[1]._value,r=t[2]._value,s=n===4?t[3]._value:1;return H.fromHsl(i,o,r,s,CU)}function Uoe(e){let t=e._left,n=t.length;for(let o=0;o<n;++o)if(t[o]._type!==ht.LITERAL_NUMBER)return;let i=CU;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 Qg(e){return e%1===0?e.toFixed(1):e.toString()}function Z2e(e){let t=Qg(e.red),n=Qg(e.green),i=Qg(e.blue);return`vec3(${t}, ${n}, ${i})`}function bU(e){let t=Qg(e.red),n=Qg(e.green),i=Qg(e.blue),o=Qg(e.alpha);return`vec4(${t}, ${n}, ${i}, ${o})`}function zoe(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 Hoe(e,t){return l(t[e])?t[e]:Wd.NULL_SENTINEL}Wd.NULL_SENTINEL="czm_infinity";bt.prototype.getShaderExpression=function(e,t,n){let i,o,r,s,a=this._type,c=this._value;l(this._left)&&(Array.isArray(this._left)?o=zoe(this._left,e,t,this):o=this._left.getShaderExpression(e,t,this)),l(this._right)&&(r=this._right.getShaderExpression(e,t,this)),l(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=zoe(this._value,e,t,this));let u,f,d;switch(a){case ht.VARIABLE:return Kx(this)?void 0:Hoe(c,e);case ht.UNARY:if(c==="Boolean")return`bool(${o})`;if(c==="Number")return`float(${o})`;if(c==="round")return`floor(${o} + 0.5)`;if(l(AU[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 ce(`Error generating style shader: "${c}" is not supported.`);return c+o;case ht.BINARY:return c==="%"?`mod(${o}, ${r})`:c==="==="?`(${o} == ${r})`:c==="!=="?`(${o} != ${r})`:c==="atan2"?`atan(${o}, ${r})`:l(EU[c])?`${c}(${o}, ${r})`:`(${o} ${c} ${r})`;case ht.TERNARY:if(l(q9[c]))return`${c}(${o}, ${r}, ${s})`;break;case ht.CONDITIONAL:return`(${s} ? ${o} : ${r})`;case ht.MEMBER:return Kx(this._left)?Hoe(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 ht.FUNCTION_CALL:throw new ce(`Error generating style shader: "${c}" is not supported.`);case ht.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 ce("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case ht.REGEX:throw new ce("Error generating style shader: Regular expressions are not supported.");case ht.VARIABLE_IN_STRING:throw new ce("Error generating style shader: Converting a variable to a string is not supported.");case ht.LITERAL_NULL:return Wd.NULL_SENTINEL;case ht.LITERAL_BOOLEAN:return c?"true":"false";case ht.LITERAL_NUMBER:return Qg(c);case ht.LITERAL_STRING:if(l(n)&&n._type===ht.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||Kx(n._left)))return c;if(i=H.fromCssColorString(c,CU),l(i))return Z2e(i);throw new ce("Error generating style shader: String literals are not supported.");case ht.LITERAL_COLOR:if(u=o,c==="color"){if(l(u)){if(u.length>1){let p=u[0],g=u[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${u[0]}, 1.0)`}else{if(c==="rgb")return i=Uoe(this),l(i)?bU(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, 1.0)`;if(c==="rgba")return u[3]!=="1.0"&&(t.translucent=!0),i=Uoe(this),l(i)?bU(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, ${u[3]})`;if(c==="hsl")return i=Voe(this),l(i)?bU(i):`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), 1.0)`;if(c==="hsla")return i=Voe(this),l(i)?(i.alpha!==1&&(t.translucent=!0),bU(i)):(u[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), ${u[3]})`)}break;case ht.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 ht.LITERAL_REGEX:throw new ce("Error generating style shader: Regular expressions are not supported.");case ht.LITERAL_UNDEFINED:return Wd.NULL_SENTINEL;case ht.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};bt.prototype.getVariables=function(e,t){let n,i,o,r=this._type,s=this._value;if(l(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(l(this._right)&&this._right.getVariables(e,this),l(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 ht.VARIABLE:Kx(this)||e.push(s);break;case ht.VARIABLE_IN_STRING:for(a=TU.exec(s);a!==null;)e.push(a[1]),a=TU.exec(s);break;case ht.LITERAL_STRING:l(t)&&t._type===ht.MEMBER&&Kx(t._left)&&e.push(s);break}};var If=Wd;function Wp(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=H.clone(H.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,Vn.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(Wp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var $2e={position:0,a_batchId:1};function Q2e(e,t){if(l(e._va))return;let n=_t.createVertexBuffer({context:t,typedArray:e._positions,usage:Fe.STATIC_DRAW}),i=_t.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Fe.STATIC_DRAW}),o=_t.createIndexBuffer({context:t,typedArray:e._indices,usage:Fe.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.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:_t.createIndexBuffer({context:t,sizeInBytes:o.sizeInBytes,usage:Fe.DYNAMIC_DRAW,indexDatatype:o.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function J2e(e,t){if(l(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,$2e),o=e._pickId,r=e._vertexShaderSource,s=e._fragmentShaderSource;if(l(r)){e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=Ue.replaceMain(s,"czm_non_pick_main"),s=`${s}void main() 
{ 
    czm_non_pick_main(); 
    out_FragColor = ${o}; 
} 
`,e._spPick=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(mA),c=n.getFragmentShaderCallback(!1,void 0,!0)(Wg);o=n.getPickId();let u=new Ue({sources:[a]}),f=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._sp=Qt.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),u=new Ue({sources:[mA]}),f=new Ue({defines:["VECTOR_TILE"],sources:[Wg]}),e._spStencil=Qt.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),c=Ue.replaceMain(c,"czm_non_pick_main"),c=`${c}
void main() 
{ 
    czm_non_pick_main(); 
    out_FragColor = ${o}; 
} 
`;let d=new Ue({sources:[a]}),p=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._spPick=Qt.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function Goe(e){let t=e?Un.EQUAL:Un.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:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL},depthMask:!1}}var eBe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},tBe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function nBe(e){l(e._rsStencilDepthPass)||(e._rsStencilDepthPass=Ve.fromCache(Goe(!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(Goe(!0)),e._rsColorPass=Ve.fromCache(eBe),e._rsPickPass=Ve.fromCache(tBe))}var Zx=new F,Woe=new h;function iBe(e,t){if(l(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,o=t.uniformState.projection;return F.clone(i,Zx),F.multiplyByPoint(Zx,e._center,Woe),F.setTranslation(Zx,Woe,Zx),F.multiply(o,Zx,Zx),Zx},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function Y9(e,t,n,i,o,r,s){let a=e.constructor.BYTES_PER_ELEMENT,c=r.length;for(let u=0;u<c;++u){let f=r[u],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 oBe(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],u=Y9(n,s,0,i,o,a.batchIds,r);for(a.offset=0,a.count=u;t.length>0;){let f=t.pop();if(H.equals(f.color,a.color))u=Y9(n,s,u,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=u-a.offset;else{let d=u;u=Y9(n,s,u,i,o,f.batchIds,r),f.offset=d,f.count=u-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function X9(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let u=0;u<c;++u){let f=r[u],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 rBe(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,u=X9(a,c,0,n,i,r.batchIds,o);for(r.offset=0,r.count=u;t.length>0;){let d=t.pop();if(H.equals(d.color,r.color))u=X9(a,c,u,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=u-r.offset;else{let p=u;u=X9(a,c,u,n,i,d.batchIds,o),d.offset=p,d.count=u-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function sBe(e,t){return t.color.toRgba()-e.color.toRgba()}function aBe(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(l(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(sBe),t.webgl2?rBe(e,n):oBe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function cBe(e,t){let n=aBe(e,t),i=e._commands,o=e._batchedIndices,r=o.length,s=r*2;if(l(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,u=y(e._modelMatrix,F.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];l(x)||(x=i[p*2]=new Ze({owner:e})),x.vertexArray=a,x.modelMatrix=u,x.offset=g,x.count=m,x.renderState=e._rsStencilDepthPass,x.shaderProgram=c,x.uniformMap=f,x.boundingVolume=d,x.cull=!1,x.pass=ve.TERRAIN_CLASSIFICATION;let b=Ze.shallowClone(x,x.derivedCommands.tileset);b.renderState=e._rsStencilDepthPass3DTiles,b.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,x.derivedCommands.tileset=b;let T=i[p*2+1];l(T)||(T=i[p*2+1]=new Ze({owner:e})),T.vertexArray=a,T.modelMatrix=u,T.offset=g,T.count=m,T.renderState=e._rsColorPass,T.shaderProgram=c,T.uniformMap=f,T.boundingVolume=d,T.cull=!1,T.pass=ve.TERRAIN_CLASSIFICATION;let C=Ze.shallowClone(T,T.derivedCommands.tileset);C.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,T.derivedCommands.tileset=C}e._commandsDirty=!0}function lBe(e,t){if(e.classificationType===Vn.TERRAIN||!t.invertClassification||l(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 u=i[c]=Ze.shallowClone(n[a],i[c]);u.shaderProgram=o,u.pass=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function uBe(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,F.IDENTITY),a=e._uniformMap;for(let c=0;c<t;++c){let u=e._indexOffsets[c],f=e._indexCounts[c],d=l(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];l(p)||(p=n[c*2]=new Ze({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=u,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=o,p.uniformMap=a,p.boundingVolume=d,p.pass=ve.TERRAIN_CLASSIFICATION;let g=Ze.shallowClone(p,p.derivedCommands.tileset);g.renderState=e._rsStencilDepthPass3DTiles,g.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,p.derivedCommands.tileset=g;let m=n[c*2+1];l(m)||(m=n[c*2+1]=new Ze({owner:e,pickOnly:!0})),m.vertexArray=i,m.modelMatrix=s,m.offset=u,m.count=f,m.renderState=e._rsPickPass,m.shaderProgram=r,m.uniformMap=a,m.boundingVolume=d,m.pass=ve.TERRAIN_CLASSIFICATION;let x=Ze.shallowClone(m,m.derivedCommands.tileset);x.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,m.derivedCommands.tileset=x}e._pickCommandsDirty=!1}Wp.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 Ws(e,r)}};Wp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function fBe(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=H.WHITE}let r=e._batchedIndices;for(i=r.length,o=0;o<i;++o)r[o].color=H.clone(H.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}var dBe=new H,hBe=H.WHITE,mBe=!0,pBe=/\$/;Wp.prototype.applyStyle=function(e,t){if(!l(e)){fBe(this,t);return}let n=e.color,i=n instanceof If&&!pBe.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=l(e.color)?e.color.evaluateColor(c,dBe):hBe,c.show=l(e.show)?e.show.evaluate(c):mBe}if(i){let a=this._batchedIndices;for(r=a.length,s=0;s<r;++s)a[s].color=H.clone(H.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}};Wp.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!l(i))return;let o=this._indexOffsets,r=this._indexCounts,s=o[i],a=r[i],c=this._batchedIndices,u=c.length,f;for(f=0;f<u;++f){let x=c[f].offset,b=c[f].count;if(s>=x&&s<x+b)break}c.push(new fm({color:H.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 fm({color:H.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 joe(e,t,n,i){let o=e.classificationType,r=o!==Vn.CESIUM_3D_TILE,s=o!==Vn.TERRAIN,a=t.commandList,c=n.length,u,f;for(f=0;f<c;++f)r&&(u=n[f],u.pass=ve.TERRAIN_CLASSIFICATION,a.push(u)),s&&(u=n[f].derivedCommands.tileset,u.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,a.push(u));if(!(!t.invertClassification||!l(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function _Be(e,t){let n=e.commandList,i=t.length;for(let o=0;o<i;o+=2){let r=t[o+1];r.pass=ve.OPAQUE,n.push(r)}}function gBe(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;l(e._rsWireframe)||(e._rsWireframe=Ve.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Me.LINES):(n=e._rsColorPass,i=Me.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}Wp.prototype.update=function(e){let t=e.context;Q2e(this,t),J2e(this,t),nBe(this),iBe(this,t);let n=e.passes;n.render&&(cBe(this,t),lBe(this,e),gBe(this),this._debugWireframe?_Be(e,this._commands):joe(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(uBe(this),joe(this,e,this._pickCommands))};Wp.prototype.isDestroyed=function(){return!1};Wp.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(),ue(this)};var $x=Wp;function Tu(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,l(this._center)||(l(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=Vn.BOTH}Object.defineProperties(Tu.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});Tu.packedBoxLength=F.packedLength+h.packedLength;Tu.packedCylinderLength=F.packedLength+2;Tu.packedEllipsoidLength=F.packedLength+h.packedLength;Tu.packedSphereLength=h.packedLength+1;function yBe(e){let t=new Float64Array(F.packedLength+h.packedLength),n=0;return h.pack(e._center,t,n),n+=h.packedLength,F.pack(e._modelMatrix,t,n),t}function xBe(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 u=H.unpack(t,n);n+=H.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 fm({color:u,offset:f,count:d,batchIds:g})}return i}var bBe=new pi("createVectorTileGeometries",5),TBe=new H;function CBe(e){if(!l(e._primitive)&&!l(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,u=e._batchTableColors,f=e._packedBuffer;if(!l(u)){let m=0;l(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),m+=n.length),l(e._cylinders)&&(i=e._cylinders=i.slice(),o=e._cylinderBatchIds=o.slice(),m+=o.length),l(e._ellipsoids)&&(r=e._ellipsoids=r.slice(),s=e._ellipsoidBatchIds=s.slice(),m+=s.length),l(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),m+=c.length),u=e._batchTableColors=new Uint32Array(m);let x=e._batchTable;for(let b=0;b<m;++b){let T=x.getColor(b,TBe);u[b]=T.toRgba()}f=e._packedBuffer=yBe(e)}let d=[];l(t)&&d.push(t.buffer,n.buffer),l(i)&&d.push(i.buffer,o.buffer),l(r)&&d.push(r.buffer,s.buffer),l(a)&&d.push(a.buffer,c.buffer),d.push(u.buffer,f.buffer);let p={boxes:l(t)?t.buffer:void 0,boxBatchIds:l(t)?n.buffer:void 0,cylinders:l(i)?i.buffer:void 0,cylinderBatchIds:l(i)?o.buffer:void 0,ellipsoids:l(r)?r.buffer:void 0,ellipsoidBatchIds:l(r)?s.buffer:void 0,spheres:l(a)?a.buffer:void 0,sphereBatchIds:l(a)?c.buffer:void 0,batchTableColors:u.buffer,packedBuffer:f.buffer},g=e._verticesPromise=bBe.scheduleTask(p,d);return l(g)?g.then(function(m){if(e.isDestroyed())return;let x=new Float64Array(m.packedBuffer);xBe(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),ABe(e),e._ready=!0}).catch(m=>{e.isDestroyed()||(e._error=m)}):void 0}}function ABe(e){l(e._primitive)||(e._primitive=new $x({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)}Tu.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Tu.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Tu.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Tu.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Tu.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=CBe(this)),l(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)};Tu.prototype.isDestroyed=function(){return!1};Tu.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var jp=Tu;function dm(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,vBe(this,i,o)}Object.defineProperties(dm.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return l(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return l(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 EBe(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function SBe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),u=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&l(e.BOX_BATCH_IDS)){let m=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,m,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let m=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,m,c)}if(u>0&&l(e.ELLIPSOID_BATCH_IDS)){let m=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,m,u)}if(f>0&&l(e.SPHERE_BATCH_IDS)){let m=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,m,f)}let d=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||u>0&&!l(o)||f>0&&!l(r);if(d&&p)throw new ce("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let m=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=m++;if(!l(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=m++;if(!l(o)&&u>0)for(o=new Uint16Array(u),s=0;s<u;++s)o[s]=m++;if(!l(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 Qx=Uint32Array.BYTES_PER_ELEMENT;function vBe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=Qx;let r=o.getUint32(n,!0);if(r!==1)throw new ce(`Only Geometry tile version 1 is supported.  Version ${r} is not.`);n+=Qx;let s=o.getUint32(n,!0);if(n+=Qx,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=Qx,a===0)throw new ce("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=Qx;let u=o.getUint32(n,!0);n+=Qx;let f=o.getUint32(n,!0);n+=Qx;let d=Mo(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,m;u>0&&(g=Mo(i,n,u),n+=u,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),C=y(d.SPHERES_LENGTH,0),A=x+b+T+C,E=new Gp(e,A,g,m,EBe(e));if(e._batchTable=E,A===0)return;let v=e.tile.computedTransform,D;l(d.RTC_CENTER)&&(D=h.unpack(d.RTC_CENTER),F.multiplyByPoint(v,D,D));let O=SBe(d,p);if(x>0||b>0||T>0||C>0){let R,M,N,_;if(x>0){let S=p.byteOffset+d.BOXES.byteOffset;R=new Float32Array(p.buffer,S,jp.packedBoxLength*x)}if(b>0){let S=p.byteOffset+d.CYLINDERS.byteOffset;M=new Float32Array(p.buffer,S,jp.packedCylinderLength*b)}if(T>0){let S=p.byteOffset+d.ELLIPSOIDS.byteOffset;N=new Float32Array(p.buffer,S,jp.packedEllipsoidLength*T)}if(C>0){let S=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,S,jp.packedSphereLength*C)}return e._geometries=new jp({boxes:R,boxBatchIds:O.boxes,cylinders:M,cylinderBatchIds:O.cylinders,ellipsoids:N,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:v,batchTable:E,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function qoe(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}dm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};dm.prototype.getFeature=function(e){return qoe(this),this._features[e]};dm.prototype.applyDebugSettings=function(e,t){l(this._geometries)&&this._geometries.applyDebugSettings(e,t)};dm.prototype.applyStyle=function(e){qoe(this),l(this._geometries)&&this._geometries.applyStyle(e,this._features)};dm.prototype.update=function(e,t){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};dm.prototype.pick=function(e,t,n){};dm.prototype.isDestroyed=function(){return!1};dm.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var B1=dm;var K9={};K9.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),Yoe(i,o,r,s);return c};K9.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)),Yoe(s,i,o,r),i.x+=s*o,i.y+=s*r,a/=BigInt(4);return[i.x,i.y]};function Yoe(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 pA=K9;var Jx=30,wBe=1<<Jx,DBe=1<<Jx+1>>>0,Z9=2*Jx+1,Jg=4,Zoe=[],$oe=[],IBe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],ey=1,_A=2,vU=[ey,0,0,ey|_A];function Jr(e){if(!Ht.supportsBigInt())throw new ce("S2 required BigInt support");this._cellId=e,this._level=Jr.getLevel(e)}Jr.fromToken=function(e){return new Jr(Jr.getIdFromToken(e))};Jr.isValidId=function(e){return!(e<=0||e>>BigInt(Z9)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Jr.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Jr.isValidId(Jr.getIdFromToken(e)):!1};Jr.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Jr.getTokenFromId=function(e){let t=Math.floor(VBe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Jr.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return Jx-(t>>1)};Jr.prototype.getChild=function(e){let t=ere(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Jr(n)};Jr.prototype.getParent=function(){let e=ere(this._cellId)<<BigInt(2);return new Jr(this._cellId&~e+BigInt(1)|e)};Jr.prototype.getParentAtLevel=function(e){let t=BBe(e);return new Jr(this._cellId&-t|t)};Jr.prototype.getCenter=function(e){e=y(e,ee.WGS84);let t=PBe(this._cellId,this._level);t=h.normalize(t,t);let n=new fe.fromCartesian(t,ee.UNIT_SPHERE);return fe.toCartesian(n,e,new h)};Jr.prototype.getVertex=function(e,t){t=y(t,ee.WGS84);let n=RBe(this._cellId,this._level,e);n=h.normalize(n,n);let i=new fe.fromCartesian(n,ee.UNIT_SPHERE);return fe.toCartesian(i,t,new h)};Jr.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(Z9-2*n).join("0"),a=BigInt(`0b${i}${r}${o}1${s}`);return new Jr(a)};function PBe(e,t){let n=OBe(e,t);return MBe(n[0],n[1],n[2])}function RBe(e,t,n){let i=Qoe(e,t),o=LBe([i[1],i[2]],t),r=n>>1&1;return Joe(i[0],o[0][r^n&1],o[1][r])}function OBe(e,t){let n=Qoe(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,u=(o<<1)+c,f=(r<<1)+c;return[i,u,f]}function Qoe(e){Zoe.length===0&&FBe();let t=Number(e>>BigInt(Z9)),n=t&ey,i=(1<<Jg)-1,o=0,r=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?Jx-7*Jg:Jg))-1;n+=Number(e>>BigInt(s*2*Jg+1)&BigInt(c))<<2,n=$oe[n];let u=s*Jg;o+=n>>Jg+2<<u,r+=(n>>2&i)<<u,n&=ey|_A}return[t,o,r]}function MBe(e,t,n){let i=Xoe(t),o=Xoe(n),r=wU(i),s=wU(o);return Joe(e,r,s)}function Joe(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 wU(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function Xoe(e){return 1/DBe*e}function LBe(e,t){let n=[[],[]],i=NBe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=wU(Koe(r)),n[o][1]=wU(Koe(s))}return n}function NBe(e){return 1<<Jx-e>>>0}function Koe(e){return 1/wBe*e}function ty(e,t,n,i,o,r){if(e===Jg){let s=(t<<Jg)+n;Zoe[(s<<2)+i]=(o<<2)+r,$oe[(o<<2)+i]=(s<<2)+r}else{e++,t<<=1,n<<=1,o<<=2;let s=IBe[r];ty(e,t+(s[0]>>1),n+(s[0]&1),i,o,r^vU[0]),ty(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^vU[1]),ty(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^vU[2]),ty(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^vU[3])}}function FBe(){ty(0,0,0,0,0,0),ty(0,0,0,ey,0,ey),ty(0,0,0,_A,0,_A),ty(0,0,0,ey|_A,0,ey|_A)}function ere(e){return e&~e+BigInt(1)}function BBe(e){return BigInt(1)<<BigInt(2*(Jx-e))}var kBe=[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 VBe(e){return kBe[(-e&e)%BigInt(67)]}var qp=Jr;function UBe(e,t){return l(e)&&l(e.extensions)&&l(e.extensions[t])}var oi=UBe;function $9(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,o=e.bitstream;if(l(i))n=t;else{let r=Math.ceil(t/8);if(o.length!==r)throw new ce(`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);!l(n)&&s&&(n=zBe(o,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=o}function zBe(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($9.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});$9.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var gA=$9;function Yp(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(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 this._metadataTable.hasProperty(e)};Yp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};Yp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};Yp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};Yp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};Yp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};Yp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var yA=Yp;var DU={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};DU.getBranchingFactor=function(e){switch(e){case DU.OCTREE:return 8;case DU.QUADTREE:return 4}};var es=Object.freeze(DU);function la(){}Object.defineProperties(la.prototype,{class:{get:function(){he.throwInstantiationError()}}});la.prototype.hasProperty=function(e){he.throwInstantiationError()};la.prototype.hasPropertyBySemantic=function(e){he.throwInstantiationError()};la.prototype.getPropertyIds=function(e){he.throwInstantiationError()};la.prototype.getProperty=function(e){he.throwInstantiationError()};la.prototype.setProperty=function(e,t){he.throwInstantiationError()};la.prototype.getPropertyBySemantic=function(e){he.throwInstantiationError()};la.prototype.setPropertyBySemantic=function(e,t){he.throwInstantiationError()};la.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};la.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};la.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};la.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),!l(o)&&l(i.default))return o=Ge(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};la.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;return l(r)&&(o=r[e]),l(o)&&(t=o.packVectorAndMatrixTypes(t,!0),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};la.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return la.getProperty(o.id,t,n)};la.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?la.setProperty(r.id,t,n,i):!1};var Fn=la;function Xp(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}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 Fn.hasProperty(e,this._properties,this._class)};Xp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Xp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Xp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Xp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Xp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Xp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var k1=Xp;var Nt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Nt.getMinimum=function(e){switch(e){case Nt.INT8:return-128;case Nt.UINT8:return 0;case Nt.INT16:return-32768;case Nt.UINT16:return 0;case Nt.INT32:return-2147483648;case Nt.UINT32:return 0;case Nt.INT64:return Ht.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Nt.UINT64:return Ht.supportsBigInt()?BigInt(0):0;case Nt.FLOAT32:return-34028234663852886e22;case Nt.FLOAT64:return-Number.MAX_VALUE}};Nt.getMaximum=function(e){switch(e){case Nt.INT8:return 127;case Nt.UINT8:return 255;case Nt.INT16:return 32767;case Nt.UINT16:return 65535;case Nt.INT32:return 2147483647;case Nt.UINT32:return 4294967295;case Nt.INT64:return Ht.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Nt.UINT64:return Ht.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Nt.FLOAT32:return 34028234663852886e22;case Nt.FLOAT64:return Number.MAX_VALUE}};Nt.isIntegerType=function(e){switch(e){case Nt.INT8:case Nt.UINT8:case Nt.INT16:case Nt.UINT16:case Nt.INT32:case Nt.UINT32:case Nt.INT64:case Nt.UINT64:return!0;default:return!1}};Nt.isUnsignedIntegerType=function(e){switch(e){case Nt.UINT8:case Nt.UINT16:case Nt.UINT32:case Nt.UINT64:return!0;default:return!1}};Nt.isVectorCompatible=function(e){switch(e){case Nt.INT8:case Nt.UINT8:case Nt.INT16:case Nt.UINT16:case Nt.INT32:case Nt.UINT32:case Nt.FLOAT32:case Nt.FLOAT64:return!0;default:return!1}};Nt.normalize=function(e,t){return Math.max(Number(e)/Number(Nt.getMaximum(t)),-1)};Nt.unnormalize=function(e,t){let n=Nt.getMaximum(t),i=Nt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Nt.INT64||t===Nt.UINT64)&&Ht.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};Nt.applyValueTransform=function(e,t,n){return n*e+t};Nt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};Nt.getSizeInBytes=function(e){switch(e){case Nt.INT8:case Nt.UINT8:return 1;case Nt.INT16:case Nt.UINT16:return 2;case Nt.INT32:case Nt.UINT32:return 4;case Nt.INT64:case Nt.UINT64:return 8;case Nt.FLOAT32:return 4;case Nt.FLOAT64:return 8}};Nt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return Nt.INT8;case X.UNSIGNED_BYTE:return Nt.UINT8;case X.SHORT:return Nt.INT16;case X.UNSIGNED_SHORT:return Nt.UINT16;case X.INT:return Nt.INT32;case X.UNSIGNED_INT:return Nt.UINT32;case X.FLOAT:return Nt.FLOAT32;case X.DOUBLE:return Nt.FLOAT64}};Nt.toComponentDatatype=function(e){switch(e){case Nt.INT8:return X.BYTE;case Nt.UINT8:return X.UNSIGNED_BYTE;case Nt.INT16:return X.SHORT;case Nt.UINT16:return X.UNSIGNED_SHORT;case Nt.INT32:return X.INT;case Nt.UINT32:return X.UNSIGNED_INT;case Nt.FLOAT32:return X.FLOAT;case Nt.FLOAT64:return X.DOUBLE}};var zt=Object.freeze(Nt);var Ho={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};Ho.isVectorType=function(e){switch(e){case Ho.VEC2:case Ho.VEC3:case Ho.VEC4:return!0;default:return!1}};Ho.isMatrixType=function(e){switch(e){case Ho.MAT2:case Ho.MAT3:case Ho.MAT4:return!0;default:return!1}};Ho.getComponentCount=function(e){switch(e){case Ho.SCALAR:case Ho.STRING:case Ho.ENUM:case Ho.BOOLEAN:return 1;case Ho.VEC2:return 2;case Ho.VEC3:return 3;case Ho.VEC4:return 4;case Ho.MAT2:return 4;case Ho.MAT3:return 9;case Ho.MAT4:return 16}};Ho.getMathType=function(e){switch(e){case Ho.VEC2:return z;case Ho.VEC3:return h;case Ho.VEC4:return oe;case Ho.MAT2:return Bi;case Ho.MAT3:return $;case Ho.MAT4:return F;default:return}};var At=Object.freeze(Ho);function Ma(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=l(i)&&zt.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=l(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=l(s)||l(a),u=!0;l(s)||(s=this.expandConstant(0,u)),l(a)||(a=this.expandConstant(1,u)),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)}Ma.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=HBe(n),o=GBe(n,e.enums),r;return l(i)?i?r=l(n.optional)?!n.optional:!0:r=y(n.required,!1):r=!1,new Ma({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(Ma.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 HBe(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===At.SCALAR||At.isMatrixType(t)||At.isVectorType(t))return!1;if(l(zt[t]))return!0;if(l(e.noData)||l(e.scale)||l(e.offset)||l(e.required)||l(e.count)||l(e.array)||l(e.optional))return!1}function GBe(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!l(s)):e.array?(r=!0,s=e.count,a=!l(e.count)):(r=!1,s=void 0,a=!1);let c;if(l(e.enumType)&&(c=t[e.enumType]),n===At.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&i===At.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===At.SCALAR||At.isMatrixType(n)||At.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===At.BOOLEAN||n===At.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&(i===At.BOOLEAN||i===At.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(i)&&l(zt[i]))return{type:At.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(zt[n]))return{type:At.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}Ma.prototype.normalize=function(e){return this._normalized?Q9(e,this._valueType,zt.normalize):e};Ma.prototype.unnormalize=function(e){return this._normalized?Q9(e,this._valueType,zt.unnormalize):e};Ma.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:Ma.valueTransformInPlace(e,this._offset,this._scale,zt.applyValueTransform)};Ma.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:Ma.valueTransformInPlace(e,this._offset,this._scale,zt.unapplyValueTransform)};Ma.prototype.expandConstant=function(e,t){t=y(t,!1);let n=this._isArray,i=this._arrayLength,o=At.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)};Ma.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!ore(e,t))return e};function ore(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(!ore(e[n],t[n]))return!1;return!0}Ma.prototype.unpackVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=At.getMathType(this._type),i=this._isArray,o=At.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};Ma.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=At.getMathType(this._type),i=this._isArray,o=At.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};Ma.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?WBe(this,e):rre(this,e)};function WBe(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=rre(e,t[i]);if(l(o))return o}}function rre(e,t){let n=e._type,i=e._componentType,o=e._enumType,r=e._normalized;return At.isVectorType(n)?jBe(t,n,i):At.isMatrixType(n)?qBe(t,n,i):n===At.STRING?YBe(t):n===At.BOOLEAN?XBe(t):n===At.ENUM?KBe(t,o):ZBe(t,i,r)}function jBe(e,t,n){if(!zt.isVectorCompatible(n))return`componentType ${n} is incompatible with vector type ${t}`;if(t===At.VEC2&&!(e instanceof z))return`vector value ${e} must be a Cartesian2`;if(t===At.VEC3&&!(e instanceof h))return`vector value ${e} must be a Cartesian3`;if(t===At.VEC4&&!(e instanceof oe))return`vector value ${e} must be a Cartesian4`}function qBe(e,t,n){if(!zt.isVectorCompatible(n))return`componentType ${n} is incompatible with matrix type ${t}`;if(t===At.MAT2&&!(e instanceof Bi))return`matrix value ${e} must be a Matrix2`;if(t===At.MAT3&&!(e instanceof $))return`matrix value ${e} must be a Matrix3`;if(t===At.MAT4&&!(e instanceof F))return`matrix value ${e} must be a Matrix4`}function YBe(e){if(typeof e!="string")return IU(e,At.STRING)}function XBe(e){if(typeof e!="boolean")return IU(e,At.BOOLEAN)}function KBe(e,t){let n=typeof e;if(l(t))return n!=="string"||!l(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function ZBe(e,t,n){let i=typeof e;switch(t){case zt.INT8:case zt.UINT8:case zt.INT16:case zt.UINT16:case zt.INT32:case zt.UINT32:case zt.FLOAT32:case zt.FLOAT64:return i!=="number"?IU(e,t):isFinite(e)?nre(e,t,n):ire(e,t);case zt.INT64:case zt.UINT64:return i!=="number"&&i!=="bigint"?IU(e,t):i==="number"&&!isFinite(e)?ire(e,t):nre(e,t,n)}}function IU(e,t){return`value ${e} does not match type ${t}`}function tre(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function nre(e,t,n){if(n){let i=zt.isUnsignedIntegerType(t)?0:-1;return e<i||e>1?tre(e,t,n):void 0}if(e<zt.getMinimum(t)||e>zt.getMaximum(t))return tre(e,t,n)}function ire(e,t){return`value ${e} of type ${t} must be finite`}function Q9(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=Q9(e[i],t,n);return e}Ma.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]=Ma.valueTransformInPlace(e[o],t[o],n[o],i);return e};var ny=Ma;function V1(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,u=i.enumType,f=r===At.STRING,d=r===At.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(zt[_],zt.UINT32);let S=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new J9(o[S],_,t+1),p+=g.typedArray.byteLength}let m=At.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(zt[_],zt.UINT32);let S=y(n.stringOffsets,n.stringOffsetBufferView);T=new J9(o[S],_,b+1),p+=T.typedArray.byteLength}(f||d)&&(c=zt.UINT8);let C;f?C=T.get(b)-T.get(0):d?C=Math.ceil(b/8):C=b;let A=y(n.values,n.bufferView),E=new J9(o[A],c,C);p+=E.typedArray.byteLength;let v=n.offset,D=n.scale,O=i.hasValueTransform||l(v)||l(D);v=y(v,i.offset),D=y(D,i.scale),v=sre(v),D=sre(D);let R,M,N=this;f?R=function(_){return JBe(_,N._values,N._stringOffsets)}:d?(R=function(_){return e3e(_,N._values)},M=function(_,S){t3e(_,N._values,S)}):l(u)?(R=function(_){let S=N._values.get(_);return u.namesByValue[S]},M=function(_,S){let w=u.valuesByName[S];N._values.set(_,w)}):(R=function(_){return N._values.get(_)},M=function(_,S){N._values.set(_,S)}),this._arrayOffsets=g,this._stringOffsets=T,this._values=E,this._classProperty=i,this._count=t,this._vectorComponentCount=m,this._min=n.min,this._max=n.max,this._offset=v,this._scale=D,this._hasValueTransform=O,this._getValue=R,this._setValue=M,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(V1.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}}});V1.prototype.get=function(e){let t=$Be(this,e);return t=this._classProperty.handleNoData(t),l(t)?(t=this._classProperty.normalize(t),t=l3e(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};V1.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=u3e(this,t),t=n.unnormalize(t),QBe(this,e,t)};V1.prototype.getTypedArray=function(){if(l(this._values))return this._values.typedArray};function sre(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 $Be(e,t){cre(e)&&lre(e);let n=e._classProperty,i=n.isArray,o=n.type,r=At.getComponentCount(o);if(l(e._unpackedValues)){let s=e._unpackedValues[t];return i?Ge(s,!0):s}return!i&&r===1?e._getValue(t):are(e,n,t)}function are(e,t,n){let i,o;if(t.isVariableLengthArray){i=e._arrayOffsets.get(n),o=e._arrayOffsets.get(n+1)-i;let s=At.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 QBe(e,t,n){a3e(e,t,n)&&lre(e);let i=e._classProperty,o=i.isArray,r=i.type,s=At.getComponentCount(r);if(l(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 u=0;u<c;++u)e._setValue(a+u,n[u])}function JBe(e,t,n){let i=n.get(e),o=n.get(e+1)-i;return Ol(t.typedArray,i,o)}function e3e(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function t3e(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<<o:t.typedArray[i]&=~(1<<o)}function n3e(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 i3e(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 o3e(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 r3e(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 s3e(e){switch(e){case zt.INT8:return X.BYTE;case zt.UINT8:return X.UNSIGNED_BYTE;case zt.INT16:return X.SHORT;case zt.UINT16:return X.UNSIGNED_SHORT;case zt.INT32:return X.INT;case zt.UINT32:return X.UNSIGNED_INT;case zt.FLOAT32:return X.FLOAT;case zt.FLOAT64:return X.DOUBLE}}function cre(e){if(l(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===At.STRING||i===zt.INT64&&!Ht.supportsBigInt64Array()||i===zt.UINT64&&!Ht.supportsBigUint64Array()}function a3e(e,t,n){if(cre(e))return!0;let i=e._arrayOffsets;if(l(i)){let o=i.get(t+1)-i.get(t),r=n.length;if(o!==r)return!0}return!1}function lre(e){e._unpackedValues=c3e(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function c3e(e){let t=e._count,n=new Array(t),i=e._classProperty,o=i.isArray,r=i.type,s=At.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]=are(e,i,a);return n}function l3e(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:ny.valueTransformInPlace(t,e._offset,e._scale,zt.applyValueTransform)}function u3e(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:ny.valueTransformInPlace(t,e._offset,e._scale,zt.unapplyValueTransform)}function J9(e,t,n){let i=this,o,r,s;if(t===zt.INT64)Ht.supportsBigInt()?Ht.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 i3e(a,i)}):(xt("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 n3e(a,i)});else if(t===zt.UINT64)Ht.supportsBigInt()?Ht.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 r3e(a,i)}):(xt("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 o3e(a,i)});else{let a=s3e(t);o=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,u){i.typedArray[c]=u}}l(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 U1=V1;function jd(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,o={};if(l(e.properties)){for(let r in e.properties)if(e.properties.hasOwnProperty(r)){let s=new U1({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(jd.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});jd.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};jd.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};jd.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};jd.prototype.getProperty=function(e,t){let n=this._properties[t],i;return l(n)?i=n.get(e):i=f3e(this._class,t),i};jd.prototype.setProperty=function(e,t,n){let i=this._properties[t];return l(i)?(i.set(e,n),!0):!1};jd.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(l(i)&&(n=i[t]),l(n))return this.getProperty(e,n.id)};jd.prototype.setPropertyBySemantic=function(e,t,n){let i,o=this._class.propertiesBySemantic;return l(o)&&(i=o[t]),l(i)?this.setProperty(e,i.id,n):!1};jd.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(l(t))return t.getTypedArray()};jd.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(l(n)&&(t=n[e]),l(t))return this.getPropertyTypedArray(t.id)};function f3e(e,t){let n=e.properties;if(!l(n))return;let i=n[t];if(l(i)&&l(i.default)){let o=i.default;return i.isArray&&(o=Ge(o,!0)),o=i.normalize(o),i.unpackVectorAndMatrixTypes(o)}}var Nl=jd;function iy(){}Object.defineProperties(iy.prototype,{cacheKey:{get:function(){he.throwInstantiationError()}}});iy.prototype.load=function(){he.throwInstantiationError()};iy.prototype.unload=function(){};iy.prototype.process=function(e){return!1};iy.prototype.getError=function(e,t){l(t)&&l(t.message)&&(e+=`
${t.message}`);let n=new ce(e);return l(t)&&(n.stack=`Original stack:
${t.stack}
Handler stack:
${n.stack}`),n};iy.prototype.isDestroyed=function(){return!1};iy.prototype.destroy=function(){return this.unload(),ue(this)};var Xi=iy;var d3e={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},mt=Object.freeze(d3e);function Kp(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=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(Kp.prototype=Object.create(Xi.prototype),Kp.prototype.constructor=Kp);Object.defineProperties(Kp.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});Kp.prototype.load=async function(){return l(this._promise)?this._promise:l(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=h3e(this),this._promise)};async function h3e(e){let t=e._resource;e._state=mt.LOADING;try{let n=await Kp._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=mt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=mt.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}Kp._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};Kp.prototype.unload=function(){this._typedArray=void 0};var eb=Kp;var _re=Vo(pre(),1);function tb(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,u=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,u=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=u,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(tb.prototype=Object.create(Xi.prototype),tb.prototype.constructor=tb);Object.defineProperties(tb.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function y3e(e){try{let t=x3e(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);_re.MeshoptDecoder.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=mt.READY,e}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load buffer view",t)}}tb.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=y3e(this),this._promise)};function x3e(e){let t=e._resourceCache,n=e._buffer;if(l(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}tb.prototype.unload=function(){l(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var xA=tb;function Fr(){}Fr._maxDecodingConcurrency=Math.max(Ht.hardwareConcurrency-1,1);Fr._decoderTaskProcessor=void 0;Fr._taskProcessorReady=!1;Fr._error=void 0;Fr._getDecoderTaskProcessor=function(){if(!l(Fr._decoderTaskProcessor)){let e=new pi("decodeDraco",Fr._maxDecodingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(t){t?Fr._taskProcessorReady=!0:Fr._error=new ce("Draco decoder could not be initialized.")}).catch(t=>{Fr._error=t}),Fr._decoderTaskProcessor=e}return Fr._decoderTaskProcessor};Fr.decodePointCloud=function(e){let t=Fr._getDecoderTaskProcessor();if(l(Fr._error))throw Fr._error;if(Fr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};Fr.decodeBufferView=function(e){let t=Fr._getDecoderTaskProcessor();if(l(Fr._error))throw Fr._error;if(Fr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var Zp=Fr;function oy(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=mt.UNLOADED,this._promise=void 0,this._dracoError=void 0}l(Object.create)&&(oy.prototype=Object.create(Xi.prototype),oy.prototype.constructor=oy);Object.defineProperties(oy.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function b3e(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=mt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;gre(e,n)}}oy.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=b3e(this),this._promise)};function gre(e,t){throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load Draco",t)}async function T3e(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=mt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}oy.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.PROCESSING||(l(this._dracoError)&&gre(this,this._dracoError),!l(this._bufferViewTypedArray))||l(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=Zp.decodeBufferView(a);if(!l(c))return!1;this._decodePromise=T3e(this,c)};oy.prototype.unload=function(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var bA=oy;function C3e(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 we.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(we.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new we({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var nb=C3e;function $p(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,u=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=u,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&($p.prototype=Object.create(Xi.prototype),$p.prototype.constructor=$p);Object.defineProperties($p.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});$p.prototype.load=function(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=A3e(this),this._promise):(this._promise=E3e(this),this._promise)};function yre(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 A3e(e){e._state=mt.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 v3e(i);if(e.isDestroyed())return;let r=yre(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=mt.READY,e}catch(n){return e.isDestroyed()?void 0:xre(e,n,"Failed to load embedded image")}}async function E3e(e){e._state=mt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await D3e(i);if(e.isDestroyed())return;let r=yre(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=mt.READY,e}catch(o){return e.isDestroyed()?void 0:xre(e,o,`Failed to load image: ${n}`)}}function xre(e,t,n){return e.unload(),e._state=mt.FAILED,Promise.reject(e.getError(n,t))}function S3e(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 ce("Image format is not recognized")}async function v3e(e){let t=S3e(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return Sl(n)}return $p._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var w3e=/(^data:image\/ktx2)|(\.ktx2$)/i;function D3e(e){let t=e.getUrlComponent(!1,!0);return w3e.test(t)?Sl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}$p.prototype.unload=function(){l(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};$p._loadImageFromTypedArray=nb;var TA=$p;var I3e={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},La=Object.freeze(I3e);function ry(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),u=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=u,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(ry.prototype=Object.create(Xi.prototype),ry.prototype.constructor=ry);Object.defineProperties(ry.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 P3e=new rW;ry.prototype.load=async function(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=R3e(this),this._promise):(this._promise=O3e(this),this._promise)};async function R3e(e){e._state=mt.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=mt.LOADED,e)}catch(n){if(e.isDestroyed())return;oW(e,n)}}async function O3e(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=mt.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=M3e(e,a),e._state=mt.PROCESSING,e}catch(s){if(e.isDestroyed())return;oW(e,s)}}function M3e(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ne.getSizeInBytes(s),c=t.buffer,u=t.byteOffset+o.byteOffset;if(u%a!==0){let d=r*a,p=new Uint8Array(c,u,d);c=new Uint8Array(p).buffer,u=0,ds("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Ne.UNSIGNED_BYTE?f=new Uint8Array(c,u,r):s===Ne.UNSIGNED_SHORT?f=new Uint16Array(c,u,r):s===Ne.UNSIGNED_INT&&(f=new Uint32Array(c,u,r)),f}function oW(e,t){throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load index buffer",t)}function rW(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}rW.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};rW.prototype.execute=function(){this.buffer=bre(this.typedArray,this.indexDatatype,this.context)};function bre(e,t,n){let i=_t.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}ry.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED&&this._state!==mt.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(l(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){oW(this,o)}if(!l(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=P3e;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,La.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=bre(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=mt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};ry.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(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 CA=ry;function L3e(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 Ss=L3e;function N3e(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var cr=N3e;function qt(){}qt.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};qt.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=t(o,i);if(l(r))return r}}};qt.topLevel=function(e,t,n){let i=e[t];return l(i)&&!Array.isArray(i)?qt.objectLegacy(i,n):qt.object(i,n)};qt.accessor=function(e,t){return qt.topLevel(e,"accessors",t)};qt.accessorWithSemantic=function(e,t,n){let i={};return qt.mesh(e,function(o){return qt.meshPrimitive(o,function(r){let s=qt.meshPrimitiveAttribute(r,function(a,c){if(c.indexOf(t)===0&&!l(i[a])){i[a]=!0;let u=n(a);if(l(u))return u}});return l(s)?s:qt.meshPrimitiveTarget(r,function(a){return qt.meshPrimitiveTargetAttribute(a,function(c,u){if(u.indexOf(t)===0&&!l(i[c])){i[c]=!0;let f=n(c);if(l(f))return f}})})})})};qt.accessorContainingVertexAttributeData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(o){let r=qt.meshPrimitiveAttribute(o,function(s){if(!l(n[s])){n[s]=!0;let a=t(s);if(l(a))return a}});return l(r)?r:qt.meshPrimitiveTarget(o,function(s){return qt.meshPrimitiveTargetAttribute(s,function(a){if(!l(n[a])){n[a]=!0;let c=t(a);if(l(c))return c}})})})})};qt.accessorContainingIndexData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(o){let r=o.indices;if(l(r)&&!l(n[r])){n[r]=!0;let s=t(r);if(l(s))return s}})})};qt.animation=function(e,t){return qt.topLevel(e,"animations",t)};qt.animationChannel=function(e,t){let n=e.channels;return qt.object(n,t)};qt.animationSampler=function(e,t){let n=e.samplers;return qt.object(n,t)};qt.buffer=function(e,t){return qt.topLevel(e,"buffers",t)};qt.bufferView=function(e,t){return qt.topLevel(e,"bufferViews",t)};qt.camera=function(e,t){return qt.topLevel(e,"cameras",t)};qt.image=function(e,t){return qt.topLevel(e,"images",t)};qt.material=function(e,t){return qt.topLevel(e,"materials",t)};qt.materialValue=function(e,t){let n=e.values;l(e.extensions)&&l(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(l(o))return o}};qt.mesh=function(e,t){return qt.topLevel(e,"meshes",t)};qt.meshPrimitive=function(e,t){let n=e.primitives;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r,o);if(l(s))return s}}};qt.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(l(o))return o}};qt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(l(n)){let i=n.length;for(let o=0;o<i;++o){let r=t(n[o],o);if(l(r))return r}}};qt.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(l(o))return o}};qt.node=function(e,t){return qt.topLevel(e,"nodes",t)};qt.nodeInTree=function(e,t,n){let i=e.nodes;if(l(i)){let o=t.length;for(let r=0;r<o;r++){let s=t[r],a=i[s];if(l(a)){let c=n(a,s);if(l(c))return c;let u=a.children;if(l(u)&&(c=qt.nodeInTree(e,u,n),l(c)))return c}}}};qt.nodeInScene=function(e,t,n){let i=t.nodes;if(l(i))return qt.nodeInTree(e,i,n)};qt.program=function(e,t){return cr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.programs,t):qt.topLevel(e,"programs",t)};qt.sampler=function(e,t){return qt.topLevel(e,"samplers",t)};qt.scene=function(e,t){return qt.topLevel(e,"scenes",t)};qt.shader=function(e,t){return cr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.shaders,t):qt.topLevel(e,"shaders",t)};qt.skin=function(e,t){return qt.topLevel(e,"skins",t)};qt.skinJoint=function(e,t){let n=e.joints;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r);if(l(s))return s}}};qt.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(l(o))return o}};qt.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(l(o))return o}};qt.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(l(o))return o}};qt.technique=function(e,t){return cr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.techniques,t):qt.topLevel(e,"techniques",t)};qt.texture=function(e,t){return qt.topLevel(e,"textures",t)};var Pe=qt;function F3e(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 Cu=F3e;function B3e(e,t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n];if(l(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*Cu(t.type)}var Fl=B3e;function k3e(e){Pe.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){if(i.mode=y(i.mode,te.TRIANGLES),!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=Ss(e.materials,o)}})}),Pe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),l(o)){let r=e.bufferViews[o];r.byteStride=Fl(e,i),r.target=te.ARRAY_BUFFER}}),Pe.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=te.ELEMENT_ARRAY_BUFFER}}),Pe.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(l(o)){let c=o.technique,u=l(o.values)?o.values:{};o.values=u,u.ambient=l(u.ambient)?u.ambient:[0,0,0,1],u.emission=l(u.emission)?u.emission:[0,0,0,1],u.transparency=y(u.transparency,1),c!=="CONSTANT"&&(u.diffuse=l(u.diffuse)?u.diffuse:[0,0,0,1],c!=="LAMBERT"&&(u.specular=l(u.specular)?u.specular:[0,0,0,1],u.shininess=y(u.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;l(r)&&Pe.materialValue(n,function(c){l(c.index)&&ib(c)}),ib(n.emissiveTexture),ib(n.normalTexture),ib(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),ib(s.baseColorTexture),ib(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),ib(a.specularGlossinessTexture))}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=V3e(e);return Pe.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(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])}),Pe.sampler(e,function(n){n.wrapS=y(n.wrapS,te.REPEAT),n.wrapT=y(n.wrapT,te.REPEAT)}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function V3e(e){let t={};return Pe.animation(e,function(n){Pe.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 ib(e){l(e)&&(e.texCoord=y(e.texCoord,0))}var j1=k3e;function U3e(e){return Pe.shader(e,function(t){LU(t)}),Pe.buffer(e,function(t){LU(t)}),Pe.image(e,function(t){LU(t)}),LU(e),e}function LU(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var sy=U3e;function z3e(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var q1=z3e;function H3e(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),q1(e,t),n.length===0&&delete e.extensionsUsed}}var ob=H3e;var G3e=4;function W3e(e){if(Gd(e)!=="glTF")throw new ce("File is not valid binary glTF");let n=Tre(e,0,5),i=n[1];if(i!==1&&i!==2)throw new ce("Binary glTF version is not 1 or 2");return i===1?j3e(e,n):q3e(e,n)}function Tre(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*G3e,!0);return o}function j3e(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new ce("Binary glTF scene format is not JSON");let r=20,s=r+i,a=Ol(e,r,i),c=JSON.parse(a);sy(c);let u=e.subarray(s,n),f=c.buffers;if(l(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);l(d)&&(d.extras._pipeline.source=u,delete d.uri)}return ob(c,"KHR_binary_glTF"),c}function q3e(e,t){let n=t[2],i=12,o,r;for(;i<n;){let s=Tre(e,i,2),a=s[0],c=s[1];i+=8;let u=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=Ol(u);o=JSON.parse(f),sy(o)}else c===5130562&&(r=u)}if(l(o)&&l(r)){let s=o.buffers;if(l(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=r}}return o}var Y1=W3e;function Y3e(e){return Pe.shader(e,function(t){NU(t)}),Pe.buffer(e,function(t){NU(t)}),Pe.image(e,function(t){NU(t)}),NU(e),e}function NU(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var X1=Y3e;function X3e(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),Ss(n,t,!0)}var Pf=X3e;function K3e(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 Qp=K3e;function Z3e(e,t){let n=e.bufferViews,i=e.buffers,o=t.bufferView,r=Cu(t.type);if(!l(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],u=c.buffer,d=i[u].extras._pipeline.source,p=t.count,g=Fl(e,t),m=t.byteOffset+c.byteOffset+d.byteOffset,x=t.componentType,b=X.getSizeInBytes(x),T=new DataView(d.buffer),C=new Array(r),A=Qp(x);for(let E=0;E<p;E++){A(T,m,r,b,C);for(let v=0;v<r;v++){let D=C[v];s[v]=Math.min(s[v],D),a[v]=Math.max(a[v],D)}m+=g}return{min:s,max:a}}var rb=Z3e;var $3e=[te.FUNC_ADD,te.FUNC_ADD],Q3e=[te.ONE,te.ZERO,te.ONE,te.ZERO];function Cre(e,t){let n=e.enable;return l(n)?n.indexOf(t)>-1:!1}var J3e=[te.ZERO,te.ONE,te.SRC_COLOR,te.ONE_MINUS_SRC_COLOR,te.SRC_ALPHA,te.ONE_MINUS_SRC_ALPHA,te.DST_ALPHA,te.ONE_MINUS_DST_ALPHA,te.DST_COLOR,te.ONE_MINUS_DST_COLOR];function eke(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(J3e.indexOf(e[n])===-1)return t;return e}function tke(e){let t={},n={},i=e.techniques;return l(i)&&(Pe.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if(Cre(s,te.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,$3e),blendFactors:eke(c.blendFuncSeparate,Q3e)})}Cre(s,te.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),Pf(e,"KHR_blend")),Pe.material(e,function(o){if(l(o.technique)){let r=n[o.technique];Pe.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var K1=tke;function nke(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),Ss(n,t,!0),Pf(e,t)}var Z1=nke;function ike(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Pe.technique(e,function(a,c){let u={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Pe.techniqueAttribute(a,function(d,p){f=a.parameters[d],u.attributes[p]={semantic:f.semantic}}),Pe.techniqueUniform(a,function(d,p){f=a.parameters[d],u.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},l(n[c])||(n[c]={}),n[c][d]=p}),l(o[a.program]))u.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=Ss(r.shaders,g,!0);let m=e.shaders[d.vertexShader];p.vertexShader=Ss(r.shaders,m,!0),u.program=Ss(r.programs,p),o[a.program]=u.program}i[c]=Ss(r.techniques,u)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,Pf(e,"KHR_techniques_webgl"),Z1(e,"KHR_techniques_webgl"))}return Pe.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};Pe.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let u=n[r.technique][c];l(u)&&(s.values[u]=a)}),l(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 $1=ike;function oke(e,t){xo.typeOf.object("material",e),xo.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let r=n.baseColorTexture,s=t(r.index,r);if(l(s))return s}if(l(n.metallicRoughnessTexture)){let r=n.metallicRoughnessTexture,s=t(r.index,r);if(l(s))return s}}let{extensions:i}=e;if(l(i)){let r=i.KHR_materials_pbrSpecularGlossiness;if(l(r)){if(l(r.diffuseTexture)){let c=r.diffuseTexture,u=t(c.index,c);if(l(u))return u}if(l(r.specularGlossinessTexture)){let c=r.specularGlossinessTexture,u=t(c.index,c);if(l(u))return u}}let s=i.KHR_materials_specular;if(l(s)){let{specularTexture:c,specularColorTexture:u}=s;if(l(c)){let f=t(c.index,c);if(l(f))return f}if(l(u)){let f=t(u.index,u);if(l(f))return f}}let a=i.KHR_materials_common;if(l(a)&&l(a.values)){let{diffuse:c,ambient:u,emission:f,specular:d}=a.values;if(l(c)&&l(c.index)){let p=t(c.index,c);if(l(p))return p}if(l(u)&&l(u.index)){let p=t(u.index,u);if(l(p))return p}if(l(f)&&l(f.index)){let p=t(f.index,f);if(l(p))return p}if(l(d)&&l(d.index)){let p=t(d.index,d);if(l(p))return p}}}let o=Pe.materialValue(e,function(r){if(l(r.index)){let s=t(r.index,r);if(l(s))return s}});if(l(o))return o;if(l(e.emissiveTexture)){let r=e.emissiveTexture,s=t(r.index,r);if(l(s))return s}if(l(e.normalTexture)){let r=e.normalTexture,s=t(r.index,r);if(l(s))return s}if(l(e.occlusionTexture)){let r=e.occlusionTexture,s=t(r.index,r);if(l(s))return s}}var AA=oke;var Are=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function rke(e,t){return t=y(t,Are),Are.forEach(function(n){t.indexOf(n)>-1&&ake(e,n)}),e}var ske={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function ake(e,t){let n=ske[t],i=e[n];if(l(i)){let o=0,r=mm[t](e),s=i.length;for(let a=0;a<s;++a)r[a]||(hm[t](e,a-o),o++)}}function hm(){}hm.accessor=function(e,t){e.accessors.splice(t,1),Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){Pe.meshPrimitiveAttribute(o,function(a,c){a>t&&o.attributes[c]--}),Pe.meshPrimitiveTarget(o,function(a){Pe.meshPrimitiveTargetAttribute(a,function(c,u){c>t&&a[u]--})});let r=o.indices;l(r)&&r>t&&o.indices--;let s=o.extensions;l(s)&&l(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Pe.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Pe.animation(e,function(i){Pe.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};hm.buffer=function(e,t){e.buffers.splice(t,1),Pe.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--,l(i.extensions)&&l(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};hm.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Pe.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),cr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.extensions)&&l(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(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.bufferView)&&u.bufferView>t&&u.bufferView--,l(u.arrayOffsetBufferView)&&u.arrayOffsetBufferView>t&&u.arrayOffsetBufferView--,l(u.stringOffsetBufferView)&&u.stringOffsetBufferView>t&&u.stringOffsetBufferView--}}}}if(cr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];l(f.values)&&f.values>t&&f.values--,l(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,l(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};hm.image=function(e,t){e.images.splice(t,1),Pe.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};hm.mesh=function(e,t){e.meshes.splice(t,1),Pe.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};hm.node=function(e,t){e.nodes.splice(t,1),Pe.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Pe.animation(e,function(i){Pe.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),Pe.technique(e,function(i){Pe.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),Pe.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Pe.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};hm.material=function(e,t){e.materials.splice(t,1),Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};hm.sampler=function(e,t){e.samplers.splice(t,1),Pe.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};hm.texture=function(e,t){if(e.textures.splice(t,1),Pe.material(e,function(i){AA(i,function(o,r){r.index>t&&--r.index})}),cr(e,"EXT_feature_metadata")){Pe.mesh(e,function(r){Pe.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let u=a.EXT_feature_metadata.featureIdTextures;if(l(u)){let f=u.length;for(let d=0;d<f;++d){let g=u[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(l(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")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let u=0;u<c;++u){let f=a[u];l(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),cr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];f.index>t&&--f.index}}}}};function mm(){}mm.accessor=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){Pe.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Pe.meshPrimitiveTarget(i,function(r){Pe.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),Pe.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),cr(e,"EXT_mesh_gpu_instancing")&&Pe.node(e,function(n){l(n.extensions)&&l(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")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;l(s)&&(t[s]=!0)}})}),t};mm.buffer=function(e){let t={};return Pe.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0),l(n.extensions)&&l(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};mm.bufferView=function(e){let t={};if(Pe.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),cr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.extensions)&&l(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(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(cr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(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 u=a[c];l(u.values)&&(t[u.values]=!0),l(u.arrayOffsets)&&(t[u.arrayOffsets]=!0),l(u.stringOffsets)&&(t[u.stringOffsets]=!0)}}}}return t};mm.image=function(e){let t={};return Pe.texture(e,function(n){l(n.source)&&(t[n.source]=!0),l(n.extensions)&&l(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:l(n.extensions)&&l(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};mm.mesh=function(e){let t={};return Pe.node(e,function(n){if(l(n.mesh&&l(e.meshes))){let i=e.meshes[n.mesh];l(i)&&l(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function Ere(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!Ere(e,o,n)}).length===0}mm.node=function(e){let t={};return Pe.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),Pe.skinJoint(n,function(i){t[i]=!0})}),Pe.animation(e,function(n){Pe.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),Pe.technique(e,function(n){Pe.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),Pe.node(e,function(n,i){Ere(e,i,t)||(t[i]=!0)}),t};mm.material=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};mm.texture=function(e){let t={};if(Pe.material(e,function(n){AA(n,function(i){t[i]=!0})}),cr(e,"EXT_feature_metadata")){Pe.mesh(e,function(o){Pe.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let u=c.length;for(let f=0;f<u;++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(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].texture;t[u.index]=!0}}}}if(cr(e,"EXT_mesh_features")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.EXT_mesh_features)){let s=o.EXT_mesh_features.featureIds;if(l(s)){let a=s.length;for(let c=0;c<a;++c){let u=s[c];l(u.texture)&&(t[u.texture.index]=!0)}}}})}),cr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(l(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 u=a[c];t[u.index]=!0}}}}return t};mm.sampler=function(e){let t={};return Pe.texture(e,function(n){l(n.sampler)&&(t[n.sampler]=!0)}),t};var Q1=rke;function cke(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},o={buffer:Ss(e.buffers,n),byteOffset:0,byteLength:t.length};return Ss(e.bufferViews,o)}var J1=cke;function lke(e,t){let n=Fl(e,t),i=X.getSizeInBytes(t.componentType),o=Cu(t.type),r=t.count,s=new Array(o*r);if(!l(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,u=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(o),p=Qp(t.componentType);for(let g=0;g<r;++g){p(f,u,o,i,d);for(let m=0;m<o;++m)s[g*o+m]=d[m];u+=n}return s}var eR=lke;function uke(e){let t;return Pe.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?FU(e,i,X.UNSIGNED_BYTE):t!==te.UNSIGNED_BYTE&&t!==te.UNSIGNED_SHORT&&FU(e,i,X.UNSIGNED_SHORT)}),Pe.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?FU(e,i,X.UNSIGNED_BYTE):t===te.SHORT&&FU(e,i,X.UNSIGNED_SHORT)}),e}function FU(e,t,n){let i=X.createTypedArray(n,eR(e,t)),o=new Uint8Array(i.buffer);t.bufferView=J1(e,o),t.componentType=n,t.byteOffset=0}var tR=uke;function fke(e,t){return ob(e,t),t==="CESIUM_RTC"&&dke(e),sW(e,t)}function dke(e){Pe.technique(e,function(t){Pe.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function sW(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)sW(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;l(n)&&(i=n[t],l(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&sW(e[o],t);return i}}var sb=fke;var BU={.8:yke,"1.0":Vke,"2.0":void 0};function hke(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(BU,i)||(l(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(BU,i)||(i="1.0"));let o=BU[i];for(;l(o)&&i!==n;)o(e,t),i=e.asset.version,o=BU[i];return t.keepLegacyExtensions||(Hke(e,t),Gke(e)),e}function wre(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.instanceTechnique;l(o)&&(i.technique=o.technique,i.values=o.values,delete i.instanceTechnique)}}function mke(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n].primitives;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let a=o[s],c=y(a.primitive,te.TRIANGLES);a.mode=y(a.mode,c),delete a.primitive}}}}function pke(e){let t=e.nodes,n=new h,i=new Oe;for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(l(r.rotation)){let a=r.rotation;h.fromArray(a,0,n),Oe.fromAxisAngle(n,a[3],i),r.rotation=[i.x,i.y,i.z,i.w]}let s=r.instanceSkin;l(s)&&(r.skeletons=s.skeletons,r.skin=s.skin,r.meshes=s.meshes,delete r.instanceSkin)}}function _ke(e){let t=e.animations,n=e.accessors,i=e.bufferViews,o=e.buffers,r={},s=new h,a=new Oe;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let u=t[c],f=u.channels,d=u.parameters,p=u.samplers;if(l(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(l(r[b]))continue;r[b]=!0;let T=n[b],C=i[T.bufferView],E=o[C.buffer].extras._pipeline.source,v=E.byteOffset+C.byteOffset+T.byteOffset,D=T.componentType,O=T.count,R=Cu(T.type),M=T.count*R,N=X.createArrayBufferView(D,E.buffer,v,M);for(let _=0;_<O;_++){let S=_*R;h.unpack(N,S,s);let w=N[S+3];Oe.fromAxisAngle(s,w,a),Oe.pack(a,N,S)}}}}}}function gke(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(l(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 yke(e){l(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(l(e.version)&&delete e.version,wre(e),mke(e),pke(e),_ke(e),gke(e),l(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),l(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,Pf(e,"KHR_materials_common")}}function xke(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(l(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 Sre(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),l(o.name)||(o.name=i)}return n}function bke(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,l(i)&&(o[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&l(n[s])){let a={},c=e[s];e[s]=Sre(c,a),n[s]=a}for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(o[i]=n.nodes[o[i]]);l(e.scene)&&(e.scene=n.scenes[e.scene]),Pe.bufferView(e,function(s){l(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Pe.accessor(e,function(s){l(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Pe.shader(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Pe.program(e,function(s){l(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),l(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Pe.technique(e,function(s){l(s.program)&&(s.program=n.programs[s.program]),Pe.techniqueParameter(s,function(a){l(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Pe.mesh(e,function(s){Pe.meshPrimitive(s,function(a){l(a.indices)&&(a.indices=n.accessors[a.indices]),Pe.meshPrimitiveAttribute(a,function(c,u){a.attributes[u]=n.accessors[c]}),l(a.material)&&(a.material=n.materials[a.material])})}),Pe.node(e,function(s){let a=s.children;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(l(s.meshes)){let c=s.meshes,u=c.length;if(u>0)for(s.mesh=n.meshes[c[0]],t=1;t<u;++t){let f={mesh:n.meshes[c[t]]},d=Ss(e.nodes,f);l(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(l(s.camera)&&(s.camera=n.cameras[s.camera]),l(s.skin)&&(s.skin=n.skins[s.skin]),l(s.skeletons)){let c=s.skeletons;if(c.length>0&&l(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),Pe.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],u=a.length;for(t=0;t<u;++t)c[t]=o[a[t]];s.joints=c,delete s.jointNames}}),Pe.scene(e,function(s){let a=s.nodes;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Pe.animation(e,function(s){let a={};s.samplers=Sre(s.samplers,a),Pe.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Pe.animationChannel(s,function(c){c.sampler=a[c.sampler];let u=c.target;l(u)&&(u.node=n.nodes[u.id],delete u.id)})}),Pe.material(e,function(s){l(s.technique)&&(s.technique=n.techniques[s.technique]),Pe.materialValue(s,function(c,u){typeof c=="string"&&(s.values[u]={index:n.textures[c]})});let a=s.extensions;if(l(a)){let c=a.KHR_materials_common;l(c)&&l(c.values)&&Pe.materialValue(c,function(u,f){typeof u=="string"&&(c.values[f]={index:n.textures[u]})})}}),Pe.image(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Pe.texture(e,function(s){l(s.sampler)&&(s.sampler=n.samplers[s.sampler]),l(s.source)&&(s.source=n.images[s.source])})}function Tke(e){Pe.animation(e,function(t){Pe.animationSampler(t,function(n){delete n.name})})}function Cke(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]}Pe.node(e,function(t){l(t.children)&&t.children.length===0&&delete t.children})}function Ake(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var Eke={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function Ske(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),l(t)){let n=t.length;for(let i=0;i<n;++i){let o=t[i];l(Eke[o])&&e.extensionsRequired.push(o)}}}function vke(e){Pe.buffer(e,function(t){delete t.type})}function wke(e){Pe.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function Dke(e){Pe.mesh(e,function(t){Pe.meshPrimitive(t,function(n){Pe.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})}),Pe.technique(e,function(t){Pe.techniqueParameter(t,function(n){let i=n.semantic;l(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var Ike={POSITION:!0,NORMAL:!0,TANGENT:!0},Pke={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function Rke(e){let t={};Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){Pe.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 u,f=Pke[a];l(f)?(u=f+c,t[r]=u):l(Ike[a])||(u=`_${r}`,t[r]=u)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Pe.technique(e,function(n){Pe.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function Oke(e){Pe.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function cW(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:Fl(e,t)}function Mke(e){Pe.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Pe.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=cW(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function Lke(e){let t,n,i,o=e.bufferViews,r={};Pe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Pe.accessor(e,function(a){l(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 u=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=cW(e,p),m=p.byteOffset,x=p.count*g;delete p.byteStride;let b=t<d-1,T=b?cW(e,c[t+1]):void 0;if(g!==T){let C=Ge(i,!0);r[a]&&(C.byteStride=g),C.byteOffset+=u,C.byteLength=m+x-u;let A=Ss(o,C);for(n=f;n<=t;++n)p=c[n],p.bufferView=A,p.byteOffset=p.byteOffset-u;u=b?c[t+1].byteOffset:void 0,f=t+1}}}Q1(e,["accessor","bufferView","buffer"])}function Nke(e){Pe.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!l(n.min)||!l(n.max)){let i=rb(e,n);n.min=i.min,n.max=i.max}})}function Dre(e){return(!l(e.children)||e.children.length===0)&&(!l(e.meshes)||e.meshes.length===0)&&!l(e.camera)&&!l(e.skin)&&!l(e.skeletons)&&!l(e.jointName)&&(!l(e.translation)||h.fromArray(e.translation).equals(h.ZERO))&&(!l(e.scale)||h.fromArray(e.scale).equals(new h(1,1,1)))&&(!l(e.rotation)||oe.fromArray(e.rotation).equals(new oe(0,0,0,1)))&&(!l(e.matrix)||F.fromColumnMajorArray(e.matrix).equals(F.IDENTITY))&&!l(e.extensions)&&!l(e.extras)}function Ire(e,t){Pe.scene(e,function(n){let i=n.nodes;if(l(i)){let o=i.length;for(let r=o;r>=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Pe.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),Dre(n)&&Ire(e,i))}}),delete e.nodes[t]}function Fke(e){return Pe.node(e,function(t,n){Dre(t)&&Ire(e,n)}),e}function Bke(e){Pe.animation(e,function(t){Pe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=rb(e,i);i.min=o.min,i.max=o.max}})})}function kke(e){Pe.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=rb(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function Vke(e){e.asset=y(e.asset,{}),e.asset.version="2.0",wre(e),xke(e),Fke(e),bke(e),Tke(e),Ake(e),Ske(e),Mke(e),Lke(e),Nke(e),Bke(e),kke(e),vke(e),wke(e),Dke(e),Rke(e),tR(e),Oke(e),K1(e),$1(e),Cke(e)}var Uke=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],zke=["u_diffuse","u_diffuse_mat"];function lW(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function uW(e){return l(e.index)}function fW(e){return Array.isArray(e)&&e.length===4}function Pre(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 Hke(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.baseColorTextureNames,Uke),i=y(t.baseColorFactorNames,zke);Pe.material(e,function(o){Pe.materialValue(o,function(r,s){n.indexOf(s)!==-1&&uW(r)?(lW(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&fW(r)&&(lW(o),o.pbrMetallicRoughness.baseColorFactor=Pre(r))})}),sb(e,"KHR_techniques_webgl"),sb(e,"KHR_blend")}function aW(e,t){l(t)&&(fW(t)?e.pbrMetallicRoughness.baseColorFactor=Pre(t):uW(t)&&(e.pbrMetallicRoughness.baseColorTexture=t))}function vre(e,t){l(t)&&(fW(t)?e.emissiveFactor=t.slice(0,3):uW(t)&&(e.emissiveTexture=t))}function Gke(e){Pe.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(!l(n))return;let i=y(n.values,{}),o=i.ambient,r=i.diffuse,s=i.emission,a=i.transparency,c=n.doubleSided,u=n.transparent;lW(t),n.technique==="CONSTANT"?(Pf(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={},aW(t,s),aW(t,o)):(aW(t,r),vre(t,o),vre(t,s)),l(c)&&(t.doubleSided=c),l(a)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=a:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,a]),l(u)&&(t.alphaMode=u?"BLEND":"OPAQUE")}),sb(e,"KHR_materials_common")}var nR=hke;var ri={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function Wke(e){switch(e){case ri.POSITION:return"positionMC";case ri.NORMAL:return"normalMC";case ri.TANGENT:return"tangentMC";case ri.TEXCOORD:return"texCoord";case ri.COLOR:return"color";case ri.JOINTS:return"joints";case ri.WEIGHTS:return"weights";case ri.FEATURE_ID:return"featureId"}}ri.hasSetIndex=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return!1;case ri.TEXCOORD:case ri.COLOR:case ri.JOINTS:case ri.WEIGHTS:case ri.FEATURE_ID:return!0}};ri.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return ri.POSITION;case"NORMAL":return ri.NORMAL;case"TANGENT":return ri.TANGENT;case"TEXCOORD":return ri.TEXCOORD;case"COLOR":return ri.COLOR;case"JOINTS":return ri.JOINTS;case"WEIGHTS":return ri.WEIGHTS;case"_FEATURE_ID":return ri.FEATURE_ID}};ri.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return ri.POSITION;case"RGBA":case"RGB":case"RGB565":return ri.COLOR;case"NORMAL":case"NORMAL_OCT16P":return ri.NORMAL;case"BATCH_ID":return ri.FEATURE_ID}};ri.getGlslType=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return"vec3";case ri.TEXCOORD:return"vec2";case ri.COLOR:return"vec4";case ri.JOINTS:return"ivec4";case ri.WEIGHTS:return"vec4";case ri.FEATURE_ID:return"int"}};ri.getVariableName=function(e,t){let n=Wke(e);return l(t)&&(n+=`_${t}`),n};var Tt=Object.freeze(ri);function lc(){}lc.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=`
${n.message}`);let o=new ce(i);return l(n)&&(o.stack=`Original stack:
${n.stack}
Handler stack:
${o.stack}`),o};lc.getNodeTransform=function(e){return l(e.matrix)?e.matrix:F.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:h.ZERO,l(e.rotation)?e.rotation:Oe.IDENTITY,l(e.scale)?e.scale:h.ONE)};lc.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=l(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};lc.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}};lc.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}};lc.hasQuantizedAttributes=function(e){if(!l(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(l(n.quantization))return!0}return!1};lc.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,o=!1;l(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=on.getGlslType(s);r&&(a="vec4");let c=l(e.quantization),u;return c&&(u=r?"vec4":on.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:o,glslType:a,quantizedGlslType:u}};var jke=new h,qke=new h;lc.getPositionMinMax=function(e,t,n){let i=lc.getAttributeBySemantic(e,"POSITION"),o=i.max,r=i.min;return l(n)&&l(t)&&(r=h.add(r,t,qke),o=h.add(o,n,jke)),{min:r,max:o}};lc.getAxisCorrectionMatrix=function(e,t,n){return n=F.clone(F.IDENTITY,n),e===Oo.Y?n=F.clone(Oo.Y_UP_TO_Z_UP,n):e===Oo.X&&(n=F.clone(Oo.X_UP_TO_Z_UP,n)),t===Oo.Z&&(n=F.multiplyTransformation(n,Oo.Z_UP_TO_X_UP,n)),n};var Yke=new $;lc.getCullFace=function(e,t){if(!Me.isTriangles(t))return gi.BACK;let n=F.getMatrix3(e,Yke);return $.determinant(n)<0?gi.FRONT:gi.BACK};lc.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};lc.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_specular:!0,KHR_materials_anisotropy:!0,KHR_materials_clearcoat:!0,KHR_materials_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};lc.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!lc.supportedExtensions[i])throw new ce(`Unsupported glTF Extension: ${i}`)}};var Kt=lc;function ay(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=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(ay.prototype=Object.create(Xi.prototype),ay.prototype.constructor=ay);Object.defineProperties(ay.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});ay.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,l(this._gltfJson)?(this._promise=Rre(this,this._gltfJson),this._promise):l(this._typedArray)?(this._promise=Ore(this,this._typedArray),this._promise):(this._promise=Xke(this),this._promise))};async function Xke(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;dW(e,n)}return Ore(e,t)}function dW(e,t){e.unload(),e._state=mt.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function Kke(e,t){if(l(t.asset)&&t.asset.version==="2.0"&&!cr(t,"KHR_techniques_webgl")&&!cr(t,"KHR_materials_common"))return Promise.resolve();let n=[];Pe.buffer(t,function(i){if(!l(i.extras._pipeline.source)&&l(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),nR(t)}function Zke(e){let t=[];return Pe.buffer(e,function(n){let i=n.uri;!l(n.extras._pipeline.source)&&l(i)&&xp(i)&&(delete n.uri,t.push(we.fetchArrayBuffer(i).then(function(o){n.extras._pipeline.source=new Uint8Array(o)})))}),Promise.all(t)}function $ke(e,t){let n=[];return Pe.buffer(t,function(i,o){let r=i.extras._pipeline.source;if(l(r)&&!l(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 Rre(e,t){try{sy(t),await Zke(t),await Kke(e,t),j1(t),await $ke(e,t),X1(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new ce(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return l(i)&&Kt.checkSupportedExtensions(i),e._gltf=t,e._state=mt.READY,e}catch(n){if(e.isDestroyed())return;dW(e,n)}}async function Ore(e,t){let n;try{Gd(t)==="glTF"?n=Y1(t):n=Mo(t)}catch(i){if(e.isDestroyed())return;dW(e,i)}return Rre(e,n)}ay.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};ay.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var EA=ay;var Qke={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},pm=Object.freeze(Qke);var Ao={};function Jke(){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 eVe(){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 tVe(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function nVe(){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 iVe(){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 oVe(){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 rVe(){this.attributes=[]}function sVe(){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 aVe(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function cVe(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function lVe(){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 uVe(){this.nodes=[]}var fVe={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function dVe(){this.input=[],this.interpolation=void 0,this.output=[]}function hVe(){this.node=void 0,this.path=void 0}function mVe(){this.sampler=void 0,this.target=void 0}function pVe(){this.name=void 0,this.samplers=[],this.channels=[]}function _Ve(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function gVe(){this.name=void 0,this.stages=[]}function Mre(){this.credits=[]}function yVe(){this.asset=new Mre,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=F.clone(F.IDENTITY),this.extensions={}}function xVe(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=$.clone($.IDENTITY),this.scale=1,this.channels=void 0}function cy(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=oe.clone(cy.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=cy.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=cy.DEFAULT_ROUGHNESS_FACTOR}cy.DEFAULT_BASE_COLOR_FACTOR=oe.ONE;cy.DEFAULT_METALLIC_FACTOR=1;cy.DEFAULT_ROUGHNESS_FACTOR=1;function ab(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=oe.clone(ab.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=h.clone(ab.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=ab.DEFAULT_GLOSSINESS_FACTOR}ab.DEFAULT_DIFFUSE_FACTOR=oe.ONE;ab.DEFAULT_SPECULAR_FACTOR=h.ONE;ab.DEFAULT_GLOSSINESS_FACTOR=1;function iR(){this.specularFactor=iR.DEFAULT_SPECULAR_FACTOR,this.specularTexture=void 0,this.specularColorFactor=h.clone(iR.DEFAULT_SPECULAR_COLOR_FACTOR),this.specularColorTexture=void 0}iR.DEFAULT_SPECULAR_FACTOR=1;iR.DEFAULT_SPECULAR_COLOR_FACTOR=h.ONE;function oR(){this.anisotropyStrength=oR.DEFAULT_ANISOTROPY_STRENGTH,this.anisotropyRotation=oR.DEFAULT_ANISOTROPY_ROTATION,this.anisotropyTexture=void 0}oR.DEFAULT_ANISOTROPY_STRENGTH=0;oR.DEFAULT_ANISOTROPY_ROTATION=0;function rR(){this.clearcoatFactor=rR.DEFAULT_CLEARCOAT_FACTOR,this.clearcoatTexture=void 0,this.clearcoatRoughnessFactor=rR.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,this.clearcoatRoughnessTexture=void 0,this.clearcoatNormalTexture=void 0}rR.DEFAULT_CLEARCOAT_FACTOR=0;rR.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR=0;function hW(){this.metallicRoughness=new cy,this.specularGlossiness=void 0,this.specular=void 0,this.anisotropy=void 0,this.clearcoat=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=h.clone(hW.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=pm.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}hW.DEFAULT_EMISSIVE_FACTOR=h.ZERO;Ao.Quantization=Jke;Ao.Attribute=eVe;Ao.Indices=tVe;Ao.FeatureIdAttribute=nVe;Ao.FeatureIdTexture=oVe;Ao.FeatureIdImplicitRange=iVe;Ao.MorphTarget=rVe;Ao.Primitive=sVe;Ao.Instances=aVe;Ao.Skin=cVe;Ao.Node=lVe;Ao.Scene=uVe;Ao.AnimatedPropertyType=Object.freeze(fVe);Ao.AnimationSampler=dVe;Ao.AnimationTarget=hVe;Ao.AnimationChannel=mVe;Ao.Animation=pVe;Ao.ArticulationStage=_Ve;Ao.Articulation=gVe;Ao.Asset=Mre;Ao.Components=yVe;Ao.TextureReader=xVe;Ao.MetallicRoughness=cy;Ao.SpecularGlossiness=ab;Ao.Specular=iR;Ao.Anisotropy=oR;Ao.Clearcoat=rR;Ao.Material=hW;var xn=Ao;var kU={};kU.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureId:n,supportedImageFormats:i}=e,o=t.textures[n],r=o.extensions;if(l(r)){if(i.webp&&l(r.EXT_texture_webp))return r.EXT_texture_webp.source;if(i.basis&&l(r.KHR_texture_basisu))return r.KHR_texture_basisu.source}return o.source};kU.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,compressedTextureNoMipmap:i=!1}=e,o=Tn.REPEAT,r=Tn.REPEAT,s=Zt.LINEAR,a=di.LINEAR,c=n.index,f=t.textures[c].sampler;if(l(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!==Zt.LINEAR&&s!==Zt.NEAREST&&(s===Zt.NEAREST_MIPMAP_NEAREST||s===Zt.NEAREST_MIPMAP_LINEAR?s=Zt.NEAREST:s=Zt.LINEAR),new $t({wrapS:o,wrapT:r,minificationFilter:s,magnificationFilter:a})};var bVe=new z(1,1);kU.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let{textureInfo:t,channels:n,texture:i}=e,o=y(t.texCoord,0),r,s=t.extensions?.KHR_texture_transform;if(l(s)){o=y(s.texCoord,o);let c=l(s.offset)?z.unpack(s.offset):z.ZERO,u=y(s.rotation,0),f=l(s.scale)?z.unpack(s.scale):bVe;u=-u,r=new $(Math.cos(u)*f.x,-Math.sin(u)*f.y,c.x,Math.sin(u)*f.x,Math.cos(u)*f.y,c.y,0,0,1)}let a=new xn.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=o,a.scale=t.scale,a.transform=r,a.channels=n,a};var Bl=kU;function TVe(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 ly=TVe;function uy(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),u=i.index,f=Bl.getImageIdFromTexture({gltf:n,textureId:u,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=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(uy.prototype=Object.create(Xi.prototype),uy.prototype.constructor=uy);Object.defineProperties(uy.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var CVe=new mW;async function AVe(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=mt.LOADED,e)}catch(n){if(e.isDestroyed())return;throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load texture",n)}}uy.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=AVe(this),this._promise)};function mW(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}mW.prototype.set=function(e,t,n,i,o){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=o};mW.prototype.execute=function(){this.texture=Lre(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Lre(e,t,n,i,o){let r=n.internalFormat,s=!1;Je.isCompressedFormat(r)&&!l(i)&&(s=!0);let a=Bl.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,u=a.wrapS,f=a.wrapT,d=c===Zt.NEAREST_MIPMAP_NEAREST||c===Zt.NEAREST_MIPMAP_LINEAR||c===Zt.LINEAR_MIPMAP_NEAREST||c===Zt.LINEAR_MIPMAP_LINEAR,p=!l(r)&&d,g=p||u===Tn.REPEAT||u===Tn.MIRRORED_REPEAT||f===Tn.REPEAT||f===Tn.MIRRORED_REPEAT,m=!P.isPowerOfTwo(n.width)||!P.isPowerOfTwo(n.height),x=g&&m,b;return l(r)?(!o.webgl2&&Je.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=ly(n)),b=Pt.create({context:o,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&b.generateMipmap(),b}uy.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED&&this._state!==mt.PROCESSING||l(this._texture)||!l(this._image))return!1;this._state=mt.PROCESSING;let t;if(this._asynchronous){let n=CVe;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,La.TEXTURE))return;t=n.texture}else t=Lre(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=mt.READY,this._resourceCache.statistics.addTextureLoader(this),!0};uy.prototype.unload=function(){l(this._texture)&&this._texture.destroy(),l(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 SA=uy;function fy(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,u=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=u,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=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(fy.prototype=Object.create(Xi.prototype),fy.prototype.constructor=fy);Object.defineProperties(fy.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 EVe(e,t){return l(e)&&l(e.attributes)&&l(e.attributes[t])}fy.prototype.load=async function(){return l(this._promise)?this._promise:EVe(this._draco,this._attributeSemantic)?(this._promise=vVe(this),this._promise):(this._promise=DVe(this),this._promise)};function SVe(e,t,n,i){let r=(1<<e.quantizationBits)-1,s=1/r,a=new xn.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=on.VEC2,a.normalizationRange=r;else{let c=on.getMathType(i);if(c===Number){let u=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=u,a.normalizationRange=r,a.quantizedVolumeStepSize=u*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(r));let u=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(u);let f=u.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function vVe(e){e._state=mt.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=mt.LOADED,e)}catch{if(e.isDestroyed())return;pW(e)}}function wVe(e){e._state=mt.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,u=o.data.quantization;l(u)&&(e._quantization=SVe(u,o.data.componentDatatype,o.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function DVe(e){e._state=mt.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=mt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;pW(e,n)}}function pW(e,t){throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load vertex buffer",t)}function _W(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}_W.prototype.set=function(e,t){this.typedArray=e,this.context=t};_W.prototype.execute=function(){this.buffer=Nre(this.typedArray,this.context)};function Nre(e,t){let n=_t.createVertexBuffer({typedArray:e,context:t,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var IVe=new _W;fy.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED&&this._state!==mt.PROCESSING)return!1;if(l(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){pW(this,i)}wVe(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=IVe;if(i.set(n,e.context),!e.jobScheduler.execute(i,La.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=Nre(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=mt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};fy.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(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 vA=fy;function sR(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];l(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)}sR.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=ny.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new sR({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(sR.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}}});sR.BATCH_TABLE_CLASS_NAME="_batchTable";var qd=sR;function VU(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)}VU.fromJson=function(e){return new VU({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(VU.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 aR=VU;function UU(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,zt.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)}UU.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(o){return aR.fromJson(o)});return new UU({id:t,values:i,valueType:zt[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(UU.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 cR=UU;function zU(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)}zU.fromJson=function(e){let t={};if(l(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=cR.fromJson({id:i,enum:e.enums[i]}));let n={};if(l(e.classes))for(let i in e.classes)e.classes.hasOwnProperty(i)&&(n[i]=qd.fromJson({id:i,class:e.classes[i],enums:t}));return new zU({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(zU.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 Au=zU;function cb(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=l(t)?Au.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(cb.prototype=Object.create(Xi.prototype),cb.prototype.constructor=cb);Object.defineProperties(cb.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});cb.prototype.load=async function(){return l(this._promise)?this._promise:l(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=PVe(this),this._promise)};async function PVe(e){let t=e._resource;e._state=mt.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=Au.fromJson(n),e._state=mt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=mt.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}cb.prototype.unload=function(){this._schema=void 0};var wA=cb;var Yd={};function DA(e){return Kh(e.url)}function HU(e){let{byteOffset:t,byteLength:n}=e;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 RVe(e,t){let n=t.byteOffset+e.byteOffset,{componentType:i,type:o,count:r}=e;return`${n}-${i}-${o}-${r}`}function Fre(e,t){return`${DA(e)}-buffer-id-${t}`}function lR(e,t,n,i){if(l(e.uri)){let o=i.getDerivedResource({url:e.uri});return DA(o)}return Fre(n,t)}function gW(e,t,n,i){let o=t.bufferView,r=e.bufferViews[o],s=r.buffer,a=e.buffers[s],c=lR(a,s,n,i),u=HU(r);return`${c}-range-${u}`}function Bre(e,t,n,i){let o=e.images[t],r=o.bufferView,s=o.uri;if(l(s)){let p=i.getDerivedResource({url:s});return DA(p)}let a=e.bufferViews[r],c=a.buffer,u=e.buffers[c],f=lR(u,c,n,i),d=HU(a);return`${f}-range-${d}`}function OVe(e,t){let n=Bl.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}Yd.getSchemaCacheKey=function(e){let{schema:t,resource:n}=e;return l(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${DA(n)}`};Yd.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e;return`external-buffer:${DA(t)}`};Yd.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n}=e;return`embedded-buffer:${Fre(t,n)}`};Yd.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t}=e;return`gltf:${DA(t)}`};Yd.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,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=lR(a,s,i,o),u=HU(r);return`buffer-view:${c}-range-${u}`};Yd.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e;return`draco:${gW(t,n,i,o)}`};Yd.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:c=!1,loadBuffer:u=!1,loadTypedArray:f=!1}=e,d="";if(c&&(d+="-dequantize"),u&&(d+="-buffer",d+=`-context-${o.context.id}`),f&&(d+="-typed-array"),l(s))return`vertex-buffer:${gW(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[r],g=p.buffer,m=t.buffers[g],x=lR(m,g,n,i),b=HU(p);return`vertex-buffer:${x}-range-${b}${d}`};Yd.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:a=!1,loadTypedArray:c=!1}=e,u="";if(a&&(u+="-buffer",u+=`-context-${r.context.id}`),c&&(u+="-typed-array"),l(s))return`index-buffer:${gW(t,s,i,o)}-draco${u}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,m=t.buffers[g],x=lR(m,g,i,o),b=RVe(f,p);return`index-buffer:${x}-accessor-${b}${u}`};Yd.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e;return`image:${Bre(t,n,i,o)}`};Yd.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}=e,a=n.index,c=Bl.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:r}),u=Bre(t,c,i,o),f=OVe(t,n);return`texture:${u}-sampler-${f}-context-${s.context.id}`};var kl=Yd;function uR(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}uR.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};uR.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;l(n)&&(o+=n.sizeInBytes),l(i)&&(o+=i.byteLength),this.geometryByteLength+=o,this._geometrySizes[t]=o};uR.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};uR.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],l(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],l(i)&&(this.texturesByteLength-=i)};var fR=uR;function Nn(){}Nn.cacheEntries={};Nn.statistics=new fR;function MVe(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Nn.get=function(e){let t=Nn.cacheEntries[e];if(l(t))return++t.referenceCount,t.resourceLoader};Nn.add=function(e){let t=e.cacheKey;return Nn.cacheEntries[t]=new MVe(e),e};Nn.unload=function(e){let t=e.cacheKey,n=Nn.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Nn.statistics.removeLoader(e),e.destroy(),delete Nn.cacheEntries[t])};Nn.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{schema:t,resource:n}=e,i=kl.getSchemaCacheKey({schema:t,resource:n}),o=Nn.get(i);return l(o)?o:(o=new wA({schema:t,resource:n,cacheKey:i}),Nn.add(o))};Nn.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n,typedArray:i}=e,o=kl.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),r=Nn.get(o);return l(r)?r:(r=new eb({typedArray:i,cacheKey:o}),Nn.add(r))};Nn.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e,n=kl.getExternalBufferCacheKey({resource:t}),i=Nn.get(n);return l(i)?i:(i=new eb({resource:t,cacheKey:n}),Nn.add(i))};Nn.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,baseResource:n,typedArray:i,gltfJson:o}=e,r=kl.getGltfCacheKey({gltfResource:t}),s=Nn.get(r);return l(s)?s:(s=new EA({resourceCache:Nn,gltfResource:t,baseResource:n,typedArray:i,gltfJson:o,cacheKey:r}),Nn.add(s))};Nn.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,r=kl.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}),s=Nn.get(r);return l(s)?s:(s=new xA({resourceCache:Nn,gltf:t,bufferViewId:n,gltfResource:i,baseResource:o,cacheKey:r}),Nn.add(s))};Nn.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e,r=kl.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:o}),s=Nn.get(r);return l(s)?s:(s=new bA({resourceCache:Nn,gltf:t,draco:n,gltfResource:i,baseResource:o,cacheKey:r}),Nn.add(s))};Nn.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,asynchronous:u=!0,dequantize:f=!1,loadBuffer:d=!1,loadTypedArray:p=!1}=e,g=kl.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),m=Nn.get(g);return l(m)?m:(m=new vA({resourceCache:Nn,gltf:t,gltfResource:n,baseResource:i,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:u,dequantize:f,loadBuffer:d,loadTypedArray:p}),Nn.add(m))};Nn.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,asynchronous:a=!0,loadBuffer:c=!1,loadTypedArray:u=!1}=e,f=kl.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:c,loadTypedArray:u}),d=Nn.get(f);return l(d)?d:(d=new CA({resourceCache:Nn,gltf:t,accessorId:n,gltfResource:i,baseResource:o,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:u}),Nn.add(d))};Nn.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e,r=kl.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:o}),s=Nn.get(r);return l(s)?s:(s=new TA({resourceCache:Nn,gltf:t,imageId:n,gltfResource:i,baseResource:o,cacheKey:r}),Nn.add(s))};Nn.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a=!0}=e,c=kl.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}),u=Nn.get(c);return l(u)?u:(u=new SA({resourceCache:Nn,gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,cacheKey:c,asynchronous:a}),Nn.add(u))};Nn.clearForSpecs=function(){let e=[vA,CA,bA,SA,TA,xA,eb,wA,EA],t,n=Nn.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,l(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Nn.statistics.clear()};var Ci=Nn;function ua(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(ua.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}}});ua.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};ua.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};ua.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};ua.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};ua.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};ua.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};ua.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};ua.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===es.OCTREE&&(t=3),e>>t};ua.fromSubtreeJson=async function(e,t,n,i,o){let r=new ua(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=LVe(n);let a=s.json;r._subtreeJson=a;let c;if(oi(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let C=a.tileMetadata;c=a.propertyTables[C]}let u=[];if(l(a.contentMetadata)){let C=a.contentMetadata.length;for(let A=0;A<C;A++){let E=a.contentMetadata[A];u.push(a.propertyTables[E])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(l(p)){let C=p.class,A=d.classes[C];f=new k1({subtreeMetadata:p,class:A})}r._metadata=f,r._tilePropertyTableJson=c,r._contentPropertyTableJsons=u;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=NVe(a.buffers),x=FVe(a.bufferViews,m);BVe(a,x),l(c)&&kre(c,x);for(let C=0;C<u.length;C++){let A=u[C];kre(A,x)}let b=await kVe(r,m,s.binary),T=UVe(x,b);return zVe(r,a,i,T),l(c)&&(HVe(r,i,T),WVe(r)),GVe(r,i,T),jVe(r),r._ready=!0,r};function LVe(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=Mo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}function NVe(e){e=l(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=l(n.uri),n.isActive=!1}return e}function FVe(e,t){e=l(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 BVe(e,t){let n,i=e.tileAvailability;l(i.bitstream)?n=t[i.bitstream]:l(i.bufferView)&&(n=t[i.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let o=e.contentAvailabilityHeaders;for(let s=0;s<o.length;s++)n=void 0,l(o[s].bitstream)?n=t[o[s].bitstream]:l(o[s].bufferView)&&(n=t[o[s].bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let r=e.childSubtreeAvailability;l(r.bitstream)?n=t[r.bitstream]:l(r.bufferView)&&(n=t[r.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function kre(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);l(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(r.arrayOffsets,r.arrayOffsetBufferView);l(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function kVe(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=VVe(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];l(a)&&(r[s]=a)}return r})}async function VVe(e,t){let i=e._resource.getDerivedResource({url:t.uri}),o=Ci.getExternalBufferLoader({resource:i});e._bufferLoader=o;try{await o.load()}catch(r){if(o.isDestroyed())return;throw r}return o.typedArray}function UVe(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 zVe(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"),u=l(e._tilePropertyTableJson),f=c||u;e._tileAvailability=yW(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=yW(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=yW(t.childSubtreeAvailability,i,a)}function yW(e,t,n,i){if(l(e.constant))return new gA({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let o;return l(e.bitstream)?o=t[e.bitstream]:l(e.bufferView)&&(o=t[e.bufferView]),new gA({bitstream:o,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function HVe(e,t,n){let i=e._tilePropertyTableJson,o=e._tileAvailability.availableCount,r=t.metadataSchema,s=i.class,a=r.classes[s];e._tileMetadataTable=new Nl({class:a,count:o,properties:i.properties,bufferViews:n})}function GVe(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 Nl({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function Vre(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 WVe(e){let t=Vre(e._tileAvailability);e._tileJumpBuffer=t}function jVe(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let o=n[i],r=Vre(o);t.push(r)}}ua.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new ce("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};ua.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new ce("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function qVe(e,t){if(!l(e._tileMetadataTable))return;let n=e.getTileIndex(t);if(e._tileAvailability.getBit(n))return e._tileJumpBuffer[n]}function YVe(e,t,n){let i=e._contentMetadataTables;if(!l(i))return;let o=i[n];if(!l(o))return;let r=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(r.getBit(s))return e._contentJumpBuffers[n][s]}ua.prototype.getTileMetadataView=function(e){let t=qVe(this,e);if(!l(t))return;let n=this._tileMetadataTable;return new yA({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};ua.prototype.getContentMetadataView=function(e,t){let n=YVe(this,e,t);if(!l(n))return;let i=this._contentMetadataTables[t],o=this._contentPropertyTableJsons[t];return new yA({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:o})};ua.prototype.isDestroyed=function(){return!1};ua.prototype.destroy=function(){return l(this._bufferLoader)&&Ci.unload(this._bufferLoader),ue(this)};var lb=ua;var XVe={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"},ub=Object.freeze(XVe);var Xd={};Xd.parseAllBoundingVolumeSemantics=function(e){return{tile:{boundingVolume:Xd.parseBoundingVolumeSemantic("TILE",e),minimumHeight:Xd._parseMinimumHeight("TILE",e),maximumHeight:Xd._parseMaximumHeight("TILE",e)},content:{boundingVolume:Xd.parseBoundingVolumeSemantic("CONTENT",e),minimumHeight:Xd._parseMinimumHeight("CONTENT",e),maximumHeight:Xd._parseMaximumHeight("CONTENT",e)}}};Xd.parseBoundingVolumeSemantic=function(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(l(i))return{box:i};let o=`${e}_BOUNDING_REGION`,r=t.getPropertyBySemantic(o);if(l(r))return{region:r};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(l(a))return{sphere:a}};Xd._parseMinimumHeight=function(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};Xd._parseMaximumHeight=function(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};var fb=Xd;function Zc(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(Zc.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}}});Zc.fromSubtreeJson=async function(e,t,n,i,o,r){r=y(r,0);let s;l(o)&&(s=new Uint8Array(o,r));let a=t.implicitTileset,c=t.implicitCoordinates,u=await lb.fromSubtreeJson(n,i,s,a,c),f=new Zc(e,t,n);return f._implicitSubtree=u,KVe(f,u),f._ready=!0,f};function KVe(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,o=$Ve(e,t,n,i),r=e._tileset.statistics;n.children.push(o.rootTile),r.numberOfTilesTotal++;let s=ZVe(e,t,o.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],u=c.tile,f=sUe(e,u,c.childIndex);u.children.push(f),r.numberOfTilesTotal++}}function ZVe(e,t,n){let i=[],o=e._implicitTileset.branchingFactor;for(let r=0;r<n.length;r++){let s=n[r];if(l(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 $Ve(e,t,n,i){let s=Ure(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],u=[],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)){u.push(void 0);continue}let b=t.getParentMortonIndex(m),T=c[b],C=m%f.branchingFactor,A=Ure(e,t,T,C,x);T.children.push(A),a.numberOfTilesTotal++,u.push(A)}c=u,u=[]}return{rootTile:s,bottomRow:c}}function zre(e,t,n){let i=ub.TILE_GEOMETRIC_ERROR;return l(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function Ure(e,t,n,i,o,r){let s=e._implicitTileset,a;y(r,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,u,f;if(l(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=fb.parseAllBoundingVolumeSemantics(c);u=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=eUe(s,a,i,r,n,u),x=[];for(let D=0;D<s.contentCount;D++){if(!t.contentIsAvailableAtIndex(o,D))continue;let M={uri:s.contentUriTemplates[D].getDerivedResource({templateValues:a.getTemplateValues()}).url},N=tUe(m,f);l(N)&&(M.boundingVolume=N),x.push(yt(M,s.contentHeaders[D]))}let b=zre(c,s,a),T={boundingVolume:m,geometricError:b,refine:s.refine,contents:x},C=!0,A=Ge(s.tileHeader,C);delete A.boundingVolume,delete A.transform,delete A.metadata;let E=yt(T,A,C),v=qre(e,s.baseResource,E,n);return v.implicitCoordinates=a,v.implicitSubtree=t,v.metadata=c,v.hasImplicitContentMetadata=g,v}function GU(e,t){return l(e)&&l(t)&&(l(t.minimumHeight)||l(t.maximumHeight))&&(oi(e,"3DTILES_bounding_volume_S2")||l(e.region))}function bW(e,t){l(t)&&(oi(e,"3DTILES_bounding_volume_S2")?JVe(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):l(e.region)&&QVe(e.region,t.minimumHeight,t.maximumHeight))}function QVe(e,t,n){l(t)&&(e[4]=t),l(n)&&(e[5]=n)}function JVe(e,t,n){l(t)&&(e.minimumHeight=t),l(n)&&(e.maximumHeight=n)}function eUe(e,t,n,i,o,r){let s;return!l(r)||!l(r.boundingVolume)||!GU(r.boundingVolume,r)&&GU(e.boundingVolume,r)?s=Hre(e,t,n,y(i,!1),o):s=r.boundingVolume,bW(s,r),s}function tUe(e,t){let n;return l(t)&&(n=t.boundingVolume),GU(n,t)?bW(n,t):GU(e,t)&&(n=Ge(e,!0),bW(n,t)),n}function Hre(e,t,n,i,o){let r=e.boundingVolume;return oi(r,"3DTILES_bounding_volume_S2")?Gre(i,o,n,t.level,t.x,t.y,t.z):l(r.region)?{region:jre(r.region,t.level,t.x,t.y,t.z)}:{box:Wre(r.box,t.level,t.x,t.y,t.z)}}function Gre(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:qp.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),u=c%2===0?pA.encode2D(i,o,r):pA.encode2D(i,r,o),f=qp.fromFacePositionLevel(c,BigInt(u),i),d,p;if(l(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:qp.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var nUe=new h,iUe=new h,xW=new h,oUe=new $;function Wre(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,iUe),s=$.unpack(e,3,oUe),a=Math.pow(2,-t),c=-1+(2*n+1)*a,u=-1+(2*i+1)*a,f=0,d=h.fromElements(a,a,1,nUe);l(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=h.fromElements(c,u,f,xW);p=$.multiplyByVector(s,p,xW),p=h.add(p,r,xW);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 rUe=new re;function jre(e,t,n,i,o){if(t===0)return e.slice();let r=re.unpack(e,0,rUe),s=e[4],a=e[5],c=Math.pow(2,-t),u=c*r.width,f=P.negativePiToPi(r.west+n*u),d=P.negativePiToPi(f+u),p=c*r.height,g=P.negativePiToPi(r.south+i*p),m=P.negativePiToPi(g+p),x=s,b=a;if(l(o)){let T=c*(a-s);x+=o*T,b=x+T}return[f,g,d,m,x,b]}function sUe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=Hre(i,o,n,!1,t),s=zre(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},u=qre(e,i.baseResource,c,t);return u.implicitTileset=i,u.implicitCoordinates=o,u}function qre(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}Zc.prototype.hasProperty=function(e,t){return!1};Zc.prototype.getFeature=function(e){};Zc.prototype.applyDebugSettings=function(e,t){};Zc.prototype.applyStyle=function(e){};Zc.prototype.update=function(e,t){};Zc.prototype.pick=function(e,t,n){};Zc.prototype.isDestroyed=function(){return!1};Zc.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};Zc._deriveBoundingBox=Wre;Zc._deriveBoundingRegion=jre;Zc._deriveBoundingVolumeS2=Gre;var IA=Zc;var aUe={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},Vl=Object.freeze(aUe);function PA(e,t){this._distance=t,this._normal=new Yre(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(PA.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});PA.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new PA(e.normal,e.distance),t};PA.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new PA(e.normal,e.distance)};function Yre(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(Yre.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(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){l(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){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var db=PA;function uc(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.edgeColor=H.clone(y(e.edgeColor,H.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new me,this.planeRemoved=new me,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?Qre:Jre,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o<i;++o)this.add(n[o])}}function Qre(e){return e===jt.OUTSIDE}function Jre(e){return e===jt.INSIDE}Object.defineProperties(uc.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?Qre:Jre)}},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 Xre(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}uc.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){Xre(n,i)},e.index=t,Xre(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};uc.prototype.get=function(e){return this._planes[e]};function ese(e,t){let n=e.length;for(let i=0;i<n;++i)if(cn.equals(e[i],t))return i;return-1}uc.prototype.contains=function(e){return ese(this._planes,e)!==-1};uc.prototype.remove=function(e){let t=this._planes,n=ese(t,e);if(n===-1)return!1;e instanceof db&&(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 db&&(r.index=o)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};uc.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof db&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var cUe=new oe,lUe=new oe;function Kre(e,t,n){let i=e._uint8View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=Mn.octEncodeToCartesian4(a.normal,lUe);i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=c.w;let u=oe.packFloat(a.distance,cUe);i[r+4]=u.x,i[r+5]=u.y,i[r+6]=u.z,i[r+7]=u.w,r+=8}}function Zre(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 tse(e,t){let n=kt.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var uUe=new z;uc.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=uc.useFloatTexture(n),o=i?this.length:this.length*2;if(l(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(!l(t)){let s=tse(o,uUe);s.y*=2,i?(t=new Pt({context:n,width:s.x,height:s.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT,sampler:$t.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new Pt({context:n,width:s.x,height:s.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.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?(Zre(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(Kre(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),Zre(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),Kre(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 fUe=new F,$re=new cn(h.UNIT_X,0);uc.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,o=this.modelMatrix;l(t)&&(o=F.multiply(t,o,fUe));let r=jt.INSIDE;!this.unionClippingRegions&&i>0&&(r=jt.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];cn.transform(a,o,$re);let c=e.intersectPlane($re);if(c===jt.INTERSECTING)r=c;else if(this._testIntersection(c))return c}return r};uc.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};uc.useFloatTexture=function(e){return e.floatingPointTexture};uc.getTextureResolution=function(e,t,n){let i=e.texture;if(l(i))return n.x=i.width,n.y=i.height,n;let o=uc.useFloatTexture(t)?e.length:e.length*2,r=tse(o,n);return r.y*=2,r};uc.prototype.isDestroyed=function(){return!1};uc.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),ue(this)};var _s=uc;function AW(e,t,n=2){let i=t&&t.length,o=i?t[0]*n:e.length,r=ise(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;let a,c,u;if(i&&(r=_Ue(e,t,r,n)),e.length>80*n){a=1/0,c=1/0;let f=-1/0,d=-1/0;for(let p=n;p<o;p+=n){let g=e[p],m=e[p+1];g<a&&(a=g),m<c&&(c=m),g>f&&(f=g),m>d&&(d=m)}u=Math.max(f-a,d-c),u=u!==0?32767/u:0}return dR(r,s,n,a,c,u,0),s}function ise(e,t,n,i,o){let r;if(o===wUe(e,t,n,i)>0)for(let s=t;s<n;s+=i)r=nse(s/i|0,e[s],e[s+1],r);else for(let s=n-i;s>=t;s-=i)r=nse(s/i|0,e[s],e[s+1],r);return r&&qU(r,r.next)&&(mR(r),r=r.next),r}function hb(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(qU(n,n.next)||Br(n.prev,n,n.next)===0)){if(mR(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function dR(e,t,n,i,o,r,s){if(!e)return;!s&&r&&TUe(e,i,o,r);let a=e;for(;e.prev!==e.next;){let c=e.prev,u=e.next;if(r?hUe(e,i,o,r):dUe(e)){t.push(c.i,e.i,u.i),mR(e),e=u.next,a=u.next;continue}if(e=u,e===a){s?s===1?(e=mUe(hb(e),t),dR(e,t,n,i,o,r,2)):s===2&&pUe(e,t,n,i,o,r):dR(hb(e),t,n,i,o,r,1);break}}}function dUe(e){let t=e.prev,n=e,i=e.next;if(Br(t,n,i)>=0)return!1;let o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,u=i.y,f=o<r?o<s?o:s:r<s?r:s,d=a<c?a<u?a:u:c<u?c:u,p=o>r?o>s?o:s:r>s?r:s,g=a>c?a>u?a:u:c>u?c:u,m=i.next;for(;m!==t;){if(m.x>=f&&m.x<=p&&m.y>=d&&m.y<=g&&RA(o,a,r,c,s,u,m.x,m.y)&&Br(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function hUe(e,t,n,i){let o=e.prev,r=e,s=e.next;if(Br(o,r,s)>=0)return!1;let a=o.x,c=r.x,u=s.x,f=o.y,d=r.y,p=s.y,g=a<c?a<u?a:u:c<u?c:u,m=f<d?f<p?f:p:d<p?d:p,x=a>c?a>u?a:u:c>u?c:u,b=f>d?f>p?f:p:d>p?d:p,T=TW(g,m,t,n,i),C=TW(x,b,t,n,i),A=e.prevZ,E=e.nextZ;for(;A&&A.z>=T&&E&&E.z<=C;){if(A.x>=g&&A.x<=x&&A.y>=m&&A.y<=b&&A!==o&&A!==s&&RA(a,f,c,d,u,p,A.x,A.y)&&Br(A.prev,A,A.next)>=0||(A=A.prevZ,E.x>=g&&E.x<=x&&E.y>=m&&E.y<=b&&E!==o&&E!==s&&RA(a,f,c,d,u,p,E.x,E.y)&&Br(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;A&&A.z>=T;){if(A.x>=g&&A.x<=x&&A.y>=m&&A.y<=b&&A!==o&&A!==s&&RA(a,f,c,d,u,p,A.x,A.y)&&Br(A.prev,A,A.next)>=0)return!1;A=A.prevZ}for(;E&&E.z<=C;){if(E.x>=g&&E.x<=x&&E.y>=m&&E.y<=b&&E!==o&&E!==s&&RA(a,f,c,d,u,p,E.x,E.y)&&Br(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function mUe(e,t){let n=e;do{let i=n.prev,o=n.next.next;!qU(i,o)&&ose(i,n,n.next,o)&&hR(i,o)&&hR(o,i)&&(t.push(i.i,n.i,o.i),mR(n),mR(n.next),n=e=o),n=n.next}while(n!==e);return hb(n)}function pUe(e,t,n,i,o,r){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&EUe(s,a)){let c=rse(s,a);s=hb(s,s.next),c=hb(c,c.next),dR(s,t,n,i,o,r,0),dR(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function _Ue(e,t,n,i){let o=[];for(let r=0,s=t.length;r<s;r++){let a=t[r]*i,c=r<s-1?t[r+1]*i:e.length,u=ise(e,a,c,i,!1);u===u.next&&(u.steiner=!0),o.push(AUe(u))}o.sort(gUe);for(let r=0;r<o.length;r++)n=yUe(o[r],n);return n}function gUe(e,t){return e.x-t.x}function yUe(e,t){let n=xUe(e,t);if(!n)return t;let i=rse(n,e);return hb(i,i.next),hb(n,n.next)}function xUe(e,t){let 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){let d=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(d<=i&&d>r&&(r=d,s=n.x<n.next.x?n:n.next,d===i))return s}n=n.next}while(n!==t);if(!s)return null;let a=s,c=s.x,u=s.y,f=1/0;n=s;do{if(i>=n.x&&n.x>=c&&i!==n.x&&RA(o<u?i:r,o,c,u,o<u?r:i,o,n.x,n.y)){let d=Math.abs(o-n.y)/(i-n.x);hR(n,e)&&(d<f||d===f&&(n.x>s.x||n.x===s.x&&bUe(s,n)))&&(s=n,f=d)}n=n.next}while(n!==a);return s}function bUe(e,t){return Br(e.prev,e,t.prev)<0&&Br(t.next,e,e.next)<0}function TUe(e,t,n,i){let o=e;do o.z===0&&(o.z=TW(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,CUe(o)}function CUe(e){let t,n=1;do{let i=e,o;e=null;let r=null;for(t=0;i;){t++;let s=i,a=0;for(let u=0;u<n&&(a++,s=s.nextZ,!!s);u++);let c=n;for(;a>0||c>0&&s;)a!==0&&(c===0||!s||i.z<=s.z)?(o=i,i=i.nextZ,a--):(o=s,s=s.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;i=s}r.nextZ=null,n*=2}while(t>1);return e}function TW(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 AUe(e){let 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 RA(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 EUe(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!SUe(e,t)&&(hR(e,t)&&hR(t,e)&&vUe(e,t)&&(Br(e.prev,e,t.prev)||Br(e,t.prev,t))||qU(e,t)&&Br(e.prev,e,e.next)>0&&Br(t.prev,t,t.next)>0)}function Br(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function qU(e,t){return e.x===t.x&&e.y===t.y}function ose(e,t,n,i){let o=jU(Br(e,t,n)),r=jU(Br(e,t,i)),s=jU(Br(n,i,e)),a=jU(Br(n,i,t));return!!(o!==r&&s!==a||o===0&&WU(e,n,t)||r===0&&WU(e,i,t)||s===0&&WU(n,e,i)||a===0&&WU(n,t,i))}function WU(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 jU(e){return e>0?1:e<0?-1:0}function SUe(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&ose(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function hR(e,t){return Br(e.prev,e,e.next)<0?Br(e,t,e.next)>=0&&Br(e,e.prev,t)>=0:Br(e,t,e.prev)<0||Br(e,e.next,t)<0}function vUe(e,t){let 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 rse(e,t){let n=CW(e.i,e.x,e.y),i=CW(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 nse(e,t,n,i){let o=CW(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 mR(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 CW(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function wUe(e,t,n,i){let o=0;for(let r=t,s=n-i;r<n;r+=i)o+=(e[s]-e[r])*(e[r+1]+e[s+1]),s=r;return o}var DUe=new h,IUe=new h,dy={};dy.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};dy.computeWindingOrder2D=function(e){return dy.computeArea2D(e)>0?hs.COUNTER_CLOCKWISE:hs.CLOCKWISE};dy.triangulate=function(e,t){let n=z.packArray(e);return AW(n,t,2)};var lse=new h,use=new h,fse=new h,sse=new h,ase=new h,cse=new h,Jp=new h,dse=new z,hse=new z,mse=new z,OA=new z;dy.computeSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let A=t[a];if(u[d++]=A.x,u[d++]=A.y,u[d++]=A.z,r){let E=i[a];f[p++]=E.x,f[p++]=E.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=b*b;for(;s.length>0;){let A=s.pop(),E=s.pop(),v=s.pop(),D=h.fromArray(u,v*3,lse),O=h.fromArray(u,E*3,use),R=h.fromArray(u,A*3,fse),M,N,_;r&&(M=z.fromArray(f,v*2,dse),N=z.fromArray(f,E*2,hse),_=z.fromArray(f,A*2,mse));let S=h.multiplyByScalar(h.normalize(D,sse),x,sse),w=h.multiplyByScalar(h.normalize(O,ase),x,ase),I=h.multiplyByScalar(h.normalize(R,cse),x,cse),L=h.magnitudeSquared(h.subtract(S,w,Jp)),B=h.magnitudeSquared(h.subtract(w,I,Jp)),U=h.magnitudeSquared(h.subtract(I,S,Jp)),V=Math.max(L,B,U),G,k,W;V>T?L===V?(G=`${Math.min(v,E)} ${Math.max(v,E)}`,a=m[G],l(a)||(k=h.add(D,O,Jp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=z.add(M,N,OA),z.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(v,a,A),s.push(a,E,A)):B===V?(G=`${Math.min(E,A)} ${Math.max(E,A)}`,a=m[G],l(a)||(k=h.add(O,R,Jp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=z.add(N,_,OA),z.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(E,a,v),s.push(a,A,v)):U===V&&(G=`${Math.min(A,v)} ${Math.max(A,v)}`,a=m[G],l(a)||(k=h.add(R,D,Jp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=z.add(_,M,OA),z.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(A,a,E),s.push(a,v,E)):(g.push(v),g.push(E),g.push(A))}let C={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Me.TRIANGLES};return r&&(C.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new at(C)};var PUe=new fe,RUe=new fe,OUe=new fe,EW=new fe;dy.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let v=t[a];if(u[d++]=v.x,u[d++]=v.y,u[d++]=v.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 Ra(void 0,void 0,e),C=new Ra(void 0,void 0,e),A=new Ra(void 0,void 0,e);for(;s.length>0;){let v=s.pop(),D=s.pop(),O=s.pop(),R=h.fromArray(u,O*3,lse),M=h.fromArray(u,D*3,use),N=h.fromArray(u,v*3,fse),_,S,w;r&&(_=z.fromArray(f,O*2,dse),S=z.fromArray(f,D*2,hse),w=z.fromArray(f,v*2,mse));let I=e.cartesianToCartographic(R,PUe),L=e.cartesianToCartographic(M,RUe),B=e.cartesianToCartographic(N,OUe);T.setEndPoints(I,L);let U=T.surfaceDistance;C.setEndPoints(L,B);let V=C.surfaceDistance;A.setEndPoints(B,I);let G=A.surfaceDistance,k=Math.max(U,V,G),W,q,J,j,K;k>b?U===k?(W=`${Math.min(O,D)} ${Math.max(O,D)}`,a=m[W],l(a)||(q=T.interpolateUsingFraction(.5,EW),J=(I.height+L.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,Jp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(K=z.add(_,S,OA),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(O,a,v),s.push(a,D,v)):V===k?(W=`${Math.min(D,v)} ${Math.max(D,v)}`,a=m[W],l(a)||(q=C.interpolateUsingFraction(.5,EW),J=(L.height+B.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,Jp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(K=z.add(S,w,OA),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,O),s.push(a,v,O)):G===k&&(W=`${Math.min(v,O)} ${Math.max(v,O)}`,a=m[W],l(a)||(q=A.interpolateUsingFraction(.5,EW),J=(B.height+I.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,Jp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(K=z.add(w,_,OA),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(v,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(v))}let E={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Me.TRIANGLES};return r&&(E.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new at(E)};dy.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,ee.default);let o=DUe,r=IUe;if(t=y(t,0),i=y(i,!0),l(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 si=dy;function hy(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(hy.prototype,{length:{get:function(){return this._length}}});hy.prototype.enqueue=function(e){this._array.push(e),this._length++};hy.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};hy.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};hy.prototype.contains=function(e){return this._array.indexOf(e)!==-1};hy.prototype.clear=function(){this._array.length=this._offset=this._length=0};hy.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var my=hy;var tr={};tr.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};tr.packPolygonHierarchy=function(e,t,n,i){let o=[e];for(;o.length>0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let u=0;u<c;++u,n+=i.packedLength)i.pack(s[u],t,n)}if(l(a)){let c=a.length;for(let u=0;u<c;++u)o.push(a[u])}}return n};tr.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]=tr.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:r,holes:s,startingIndex:t}};var mb=new z;function gse(e,t,n,i){return z.subtract(t,e,mb),z.multiplyByScalar(mb,n/i,mb),z.add(e,mb,mb),[mb.x,mb.y]}var py=new h;function MUe(e,t,n,i){return h.subtract(t,e,py),h.multiplyByScalar(py,n/i,py),h.add(e,py,py),[py.x,py.y,py.z]}tr.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 XU=new fe,KU=new fe,LUe=new fe,NUe=new h,YU=new Ra;tr.subdivideRhumbLineCount=function(e,t,n,i){let o=e.cartesianToCartographic(t,XU),r=e.cartesianToCartographic(n,KU),a=new Ra(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(P.log2(a)));return Math.pow(2,c)};tr.subdivideTexcoordLine=function(e,t,n,i,o,r){let s=tr.subdivideLineCount(n,i,o),a=z.distance(e,t),c=a/s,u=r;u.length=s*2;let f=0;for(let d=0;d<s;d++){let p=gse(e,t,d*c,a);u[f++]=p[0],u[f++]=p[1]}return u};tr.subdivideLine=function(e,t,n,i){let o=tr.subdivideLineCount(e,t,n),r=h.distance(e,t),s=r/o;l(i)||(i=[]);let a=i;a.length=o*3;let c=0;for(let u=0;u<o;u++){let f=MUe(e,t,u*s,r);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};tr.subdivideTexcoordRhumbLine=function(e,t,n,i,o,r,s){let a=n.cartesianToCartographic(i,XU),c=n.cartesianToCartographic(o,KU);YU.setEndPoints(a,c);let u=YU.surfaceDistance/r,f=Math.max(0,Math.ceil(P.log2(u))),d=Math.pow(2,f),p=z.distance(e,t),g=p/d,m=s;m.length=d*2;let x=0;for(let b=0;b<d;b++){let T=gse(e,t,b*g,p);m[x++]=T[0],m[x++]=T[1]}return m};tr.subdivideRhumbLine=function(e,t,n,i,o){let r=e.cartesianToCartographic(t,XU),s=e.cartesianToCartographic(n,KU),a=new Ra(r,s,e),c=a.surfaceDistance/i,u=Math.max(0,Math.ceil(P.log2(c))),f=Math.pow(2,u),d=a.surfaceDistance/f;l(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,LUe),b=e.cartographicToCartesian(x,NUe);p[g++]=b.x,p[g++]=b.y,p[g++]=b.z}return p};var FUe=new h,BUe=new h,kUe=new h,VUe=new h;tr.scaleToGeodeticHeightExtruded=function(e,t,n,i,o){i=y(i,ee.default);let r=FUe,s=BUe,a=kUe,c=VUe;if(l(e)&&l(e.attributes)&&l(e.attributes.position)){let u=e.attributes.position.values,f=u.length/2;for(let d=0;d<f;d+=3)h.fromArray(u,d,a),i.geodeticSurfaceNormal(a,r),c=i.scaleToGeodeticSurface(a,c),s=h.multiplyByScalar(r,n,s),s=h.add(c,s,s),u[d+f]=s.x,u[d+1+f]=s.y,u[d+2+f]=s.z,o&&(c=h.clone(a,c)),s=h.multiplyByScalar(r,t,s),s=h.add(c,s,s),u[d]=s.x,u[d+1]=s.y,u[d+2]=s.z}return e};tr.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],o=new my;o.enqueue(e);let r,s,a;for(;o.length!==0;){let c=o.dequeue(),u=c.positions;if(t)for(a=u.length,r=0;r<a;r++)n.scaleToGeodeticSurface(u[r],u[r]);if(u=To(u,h.equalsEpsilon,!0),u.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=To(p,h.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(l(d.holes)&&(g=d.holes.length),s=0;s<g;s++)o.enqueue(d.holes[s])}i.push(u)}return i};var UUe=new fe;function zUe(e,t,n){let i=n.cartesianToCartographic(e,XU),o=n.cartesianToCartographic(t,KU);if(Math.sign(i.latitude)===Math.sign(o.latitude))return;YU.setEndPoints(i,o);let r=YU.findIntersectionWithLatitude(0,UUe);if(!l(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 HUe(e,t,n,i){if(i===Jt.RHUMB)return zUe(e,t,n);let o=$n.lineSegmentPlane(e,t,cn.ORIGIN_XY_PLANE);if(l(o))return n.scaleToGeodeticSurface(o,o)}var GUe=new fe;function WUe(e,t,n){let i=[],o,r,s,a,c,u=0;for(;u<e.length;){o=e[u],r=e[(u+1)%e.length],s=P.sign(o.z),a=P.sign(r.z);let f=d=>t.cartesianToCartographic(d,GUe).longitude;if(s===0)i.push({position:u,type:s,visited:!1,next:a,theta:f(o)});else if(a!==0){if(c=HUe(o,r,t,n),++u,!l(c))continue;e.splice(u,0,c),i.push({position:u,type:s,visited:!1,next:a,theta:f(c)})}++u}return i}function yse(e,t,n,i,o,r,s){let a=[],c=r,u=d=>p=>p.position===d,f=[];do{let d=n[c];a.push(d);let p=i.findIndex(u(c)),g=i[p];if(!l(g)){++c;continue}let{visited:m,type:x,next:b}=g;if(g.visited=!0,x===0){if(b===0){let E=i[p-(s?1:-1)];if(E?.position===c+1)E.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 C=p+(s?1:-1),A=i[C];if(!l(A)){++c;continue}c=A.position}while(c<n.length&&c>=0&&c!==r&&a.length<n.length);e.splice(t,o,a);for(let d of f)t=yse(e,++t,n,i,0,d,!s);return t}tr.splitPolygonsOnEquator=function(e,t,n,i){l(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=WUe(s,t,n);if(s.length===r.length||a.length<=1){i[o]=s,++o;continue}a.sort((u,f)=>u.theta-f.theta);let c=s[0].z>=0;o=yse(i,o,s,a,1,0,c)}return i};tr.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new my;c.enqueue(e);let u=l(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=To(d,h.equalsEpsilon,!0)),d.length<3)continue;let x=n(d);if(!l(x))continue;let b=[],T=si.computeWindingOrder2D(x);if(T===hs.CLOCKWISE&&(x.reverse(),d=d.slice().reverse()),u){u=!1;let D=[d];if(D=r(D,D),D.length>1){for(let O of D)c.enqueue(new Oa(O,p));continue}}let C=d.slice(),A=l(p)?p.length:0,E=[],v;for(g=0;g<A;g++){let D=p[g],O=D.positions;if(i)for(m=O.length,v=0;v<m;++v)o.scaleToGeodeticSurface(O[v],O[v]);if(t||(O=To(O,h.equalsEpsilon,!0)),O.length<3)continue;let R=n(O);if(!l(R))continue;T=si.computeWindingOrder2D(R),T===hs.CLOCKWISE&&(R.reverse(),O=O.slice().reverse()),E.push(O),b.push(C.length),C=C.concat(O),x=x.concat(R);let M=0;for(l(D.holes)&&(M=D.holes.length),v=0;v<M;v++)c.enqueue(D.holes[v])}s.push({outerRing:d,holes:E}),a.push({positions:C,positions2D:x,holes:b})}return{hierarchy:s,polygons:a}};var jUe=new z,qUe=new h,YUe=new Oe,XUe=new $;tr.computeBoundingRectangle=function(e,t,n,i,o){let r=Oe.fromAxisAngle(e,i,YUe),s=$.fromQuaternion(r,XUe),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=h.clone(n[p],qUe);$.multiplyByVector(s,g,g);let m=t(g,jUe);l(m)&&(a=Math.min(a,m.x),c=Math.max(c,m.x),u=Math.min(u,m.y),f=Math.max(f,m.y))}return o.x=a,o.y=u,o.width=c-a,o.height=f-u,o};tr.createGeometryFromPositions=function(e,t,n,i,o,r,s){let a=si.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,u=l(n),f=u?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:Me.TRIANGLES};u&&(m.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:z.packArray(f)}));let x=new at(m);return r.normal?Ln.computeNormal(x):x}if(s===Jt.GEODESIC)return si.computeSubdivision(e,c,a,f,i);if(s===Jt.RHUMB)return si.computeRhumbLineSubdivision(e,c,a,f,i)};var pse=[],_se=[],KUe=new h,ZUe=new h;tr.computeWallGeometry=function(e,t,n,i,o,r){let s,a,c,u,f,d,p,g,m,x=e.length,b=0,T=0,C=l(t),A=C?t.positions:void 0;if(o)for(a=x*3*2,s=new Array(a*2),C&&(m=x*2*2,g=new Array(m*2)),c=0;c<x;c++)u=e[c],f=e[(c+1)%x],s[b]=s[b+a]=u.x,++b,s[b]=s[b+a]=u.y,++b,s[b]=s[b+a]=u.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,C&&(d=A[c],p=A[(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),M=0;if(r===Jt.GEODESIC)for(c=0;c<x;c++)M+=tr.subdivideLineCount(e[c],e[(c+1)%x],R);else if(r===Jt.RHUMB)for(c=0;c<x;c++)M+=tr.subdivideRhumbLineCount(n,e[c],e[(c+1)%x],R);for(a=(M+x)*3,s=new Array(a*2),C&&(m=(M+x)*2,g=new Array(m*2)),c=0;c<x;c++){u=e[c],f=e[(c+1)%x];let N,_;C&&(d=A[c],p=A[(c+1)%x]),r===Jt.GEODESIC?(N=tr.subdivideLine(u,f,R,_se),C&&(_=tr.subdivideTexcoordLine(d,p,u,f,R,pse))):r===Jt.RHUMB&&(N=tr.subdivideRhumbLine(n,u,f,R,_se),C&&(_=tr.subdivideTexcoordRhumbLine(d,p,n,u,f,R,pse)));let S=N.length;for(let w=0;w<S;++w,++b)s[b]=N[w],s[b+a]=N[w];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,C){let w=_.length;for(let I=0;I<w;++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 E=Ne.createTypedArray(x/3,x-e.length*6),v=0;for(x/=6,c=0;c<x;c++){let R=c,M=R+1,N=R+x,_=N+1;u=h.fromArray(s,R*3,KUe),f=h.fromArray(s,M*3,ZUe),!h.equalsEpsilon(u,f,P.EPSILON10,P.EPSILON10)&&(E[v++]=R,E[v++]=N,E[v++]=M,E[v++]=M,E[v++]=N,E[v++]=_)}let D={attributes:new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:E,primitiveType:Me.TRIANGLES};return C&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new at(D)};var zn=tr;function kr(e,t){this.position=e,l(this.position)||(this.position=new z),this.tangentPlane=t,l(this.tangentPlane)||(this.tangentPlane=kr.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(kr.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=z.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 MA=new fe,$Ue=new h;kr.prototype.getLatitude=function(e){l(e)||(e=ee.default),MA.latitude=this.conformalLatitude,MA.longitude=this.longitude,MA.height=0;let t=this.ellipsoid.cartographicToCartesian(MA,$Ue);return e.cartesianToCartographic(t,MA),MA.latitude};var QUe=new mn,JUe=new h,eze=new h;kr.fromCartesian=function(e,t){let n=P.signNotZero(e.z),i=kr.NORTH_POLE_TANGENT_PLANE,o=kr.SOUTH_POLE;n<0&&(i=kr.SOUTH_POLE_TANGENT_PLANE,o=kr.NORTH_POLE);let r=QUe;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,JUe),h.normalize(r.direction,r.direction);let s=$n.rayPlane(r,i.plane,eze),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),u=n*h.dot(i.yAxis,a);return l(t)?(t.position=new z(c,u),t.tangentPlane=i,t):new kr(new z(c,u),i)};kr.fromCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=kr.fromCartesian(e[i],t[i]);return t};kr.clone=function(e,t){if(l(e))return l(t)?(t.position=e.position,t.tangentPlane=e.tangentPlane,t):new kr(e.position,e.tangentPlane)};kr.HALF_UNIT_SPHERE=Object.freeze(new ee(.5,.5,.5));kr.NORTH_POLE=Object.freeze(new h(0,0,.5));kr.SOUTH_POLE=Object.freeze(new h(0,0,-.5));kr.NORTH_POLE_TANGENT_PLANE=Object.freeze(new $r(kr.NORTH_POLE,kr.HALF_UNIT_SPHERE));kr.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new $r(kr.SOUTH_POLE,kr.HALF_UNIT_SPHERE));var fc=kr;var tze=new fe,xse=new fe;function nze(e,t,n,i){let r=i.cartesianToCartographic(e,tze).height,s=i.cartesianToCartographic(t,xse);s.height=r,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,xse);a.height=r-100,i.cartographicToCartesian(a,n)}var bse=new je,ize=new h,oze=new h,rze=new h,sze=new h,aze=new h,cze=new h,ZU=new h,_m=new h,LA=new h,lze=new z,uze=new z,fze=new h,Tse=new Oe,dze=new $,hze=new $;function SW(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,o=n.attributes.position.values,r=l(n.attributes.st)?n.attributes.st.values:void 0,s=o.length,a=e.wall,c=e.top||a,u=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=lze;b.x=f.x,b.y=f.y;let T=t.st?new Float32Array(2*(s/3)):void 0,C;t.normal&&(x&&c&&!a?C=n.attributes.normal.values:C=new Float32Array(s));let A=t.tangent?new Float32Array(s):void 0,E=t.bitangent?new Float32Array(s):void 0,v=i?new Float32Array(s):void 0,D=0,O=0,R=oze,M=rze,N=sze,_=!0,S=dze,w=hze;if(m!==0){let B=Oe.fromAxisAngle(d,m,Tse);S=$.fromQuaternion(B,S),B=Oe.fromAxisAngle(d,-m,Tse),w=$.fromQuaternion(B,w)}else S=$.clone($.IDENTITY,S),w=$.clone($.IDENTITY,w);let I=0,L=0;c&&u&&(I=s/2,L=s/3,s/=2);for(let B=0;B<s;B+=3){let U=h.fromArray(o,B,fze);if(t.st&&!l(r)){let V=$.multiplyByVector(S,U,ize);V=g.scaleToGeodeticSurface(V,V);let G=p([V],uze)[0];z.subtract(G,b,G);let k=P.clamp(G.x/f.width,0,1),W=P.clamp(G.y/f.height,0,1);u&&(T[D+L]=k,T[D+1+L]=W),c&&(T[D]=k,T[D+1]=W),D+=2}if(t.normal||t.tangent||t.bitangent||i){let V=O+1,G=O+2;if(a){if(B+3<s){let k=h.fromArray(o,B+3,aze);if(_){let W=h.fromArray(o,B+s,cze);x&&nze(U,k,W,g),h.subtract(k,U,k),h.subtract(W,U,W),R=h.normalize(h.cross(W,k,R),R),_=!1}h.equalsEpsilon(k,U,P.EPSILON10)&&(_=!0)}(t.tangent||t.bitangent)&&(N=g.geodeticSurfaceNormal(U,N),t.tangent&&(M=h.normalize(h.cross(N,R,M),M)))}else R=g.geodeticSurfaceNormal(U,R),(t.tangent||t.bitangent)&&(x&&(ZU=h.fromArray(C,O,ZU),_m=h.cross(h.UNIT_Z,ZU,_m),_m=h.normalize($.multiplyByVector(w,_m,_m),_m),t.bitangent&&(LA=h.normalize(h.cross(ZU,_m,LA),LA))),M=h.cross(h.UNIT_Z,R,M),M=h.normalize($.multiplyByVector(w,M,M),M),t.bitangent&&(N=h.normalize(h.cross(R,M,N),N)));t.normal&&(e.wall?(C[O+I]=R.x,C[V+I]=R.y,C[G+I]=R.z):u&&(C[O+I]=-R.x,C[V+I]=-R.y,C[G+I]=-R.z),(c&&!x||a)&&(C[O]=R.x,C[V]=R.y,C[G]=R.z)),i&&(a&&(R=g.geodeticSurfaceNormal(U,R)),v[O+I]=-R.x,v[V+I]=-R.y,v[G+I]=-R.z),t.tangent&&(e.wall?(A[O+I]=M.x,A[V+I]=M.y,A[G+I]=M.z):u&&(A[O+I]=-M.x,A[V+I]=-M.y,A[G+I]=-M.z),c&&(x?(A[O]=_m.x,A[V]=_m.y,A[G]=_m.z):(A[O]=M.x,A[V]=M.y,A[G]=M.z))),t.bitangent&&(u&&(E[O+I]=N.x,E[V+I]=N.y,E[G+I]=N.z),c&&(x?(E[O]=LA.x,E[V]=LA.y,E[G]=LA.z):(E[O]=N.x,E[V]=N.y,E[G]=N.z))),O+=3}}t.st&&!l(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:C})),t.tangent&&(n.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.bitangent&&(n.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),i&&(n.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:v}))}if(e.extrude&&l(e.offsetAttribute)){let f=o.length/3,d=new Uint8Array(f);if(e.offsetAttribute===an.TOP)c&&u||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===an.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var Cse=[];function mze(e,t,n,i,o,r,s,a,c,u){let f={walls:[]},d;if(s||a){let C=zn.createGeometryFromPositions(e,t,n,i,r,c,u),A=C.attributes.position.values,E=C.indices,v,D;if(s&&a){let O=A.concat(A);v=O.length/3,D=Ne.createTypedArray(v,E.length*2),D.set(E);let R=E.length,M=v/2;for(d=0;d<R;d+=3){let N=D[d]+M,_=D[d+1]+M,S=D[d+2]+M;D[d+R]=S,D[d+1+R]=_,D[d+2+R]=N}if(C.attributes.position.values=O,r&&c.normal){let N=C.attributes.normal.values;C.attributes.normal.values=new Float32Array(O.length),C.attributes.normal.values.set(N)}if(c.st&&l(n)){let N=C.attributes.st.values;C.attributes.st.values=new Float32Array(v*2),C.attributes.st.values=N.concat(N)}C.indices=D}else if(a){for(v=A.length/3,D=Ne.createTypedArray(v,E.length),d=0;d<E.length;d+=3)D[d]=E[d+2],D[d+1]=E[d+1],D[d+2]=E[d];C.indices=D}f.topAndBottom=new St({geometry:C})}let p=o.outerRing,g=$r.fromPoints(p,e),m=g.projectPointsOntoPlane(p,Cse),x=si.computeWindingOrder2D(m);x===hs.CLOCKWISE&&(p=p.slice().reverse());let b=zn.computeWallGeometry(p,n,e,i,r,u);f.walls.push(new St({geometry:b}));let T=o.holes;for(d=0;d<T.length;d++){let C=T[d];m=g.projectPointsOntoPlane(C,Cse),x=si.computeWindingOrder2D(m),x===hs.COUNTER_CLOCKWISE&&(C=C.slice().reverse()),b=zn.computeWallGeometry(C,n,e,i,r,u),f.walls.push(new St({geometry:b}))}return f}function Of(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Ie.DEFAULT),i=y(e.ellipsoid,ee.default),o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&l(e.extrudedHeight),u=y(e.height,0),f=y(e.extrudedHeight,u);if(!c){let d=Math.max(u,f);f=Math.min(u,f),u=d}this._vertexFormat=Ie.clone(n),this._ellipsoid=ee.clone(i),this._granularity=o,this._stRotation=r,this._height=u,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,Jt.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=s,this.packedLength=zn.computeHierarchyPackedLength(t,h)+ee.packedLength+Ie.packedLength+(s?zn.computeHierarchyPackedLength(s,z):1)+12}Of.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 Of(t)};Of.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.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,l(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var pze=ee.clone(ee.UNIT_SPHERE),_ze=new Ie,gze={polygonHierarchy:{}};Of.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,pze);t+=ee.packedLength;let r=Ie.unpack(e,t,_ze);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=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,z);l(T)?(t=T.startingIndex,delete T.startingIndex):t++;let C=e[t++];return l(n)||(n=new Of(gze)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=u,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=C,n};var yze=new z,xze=new z,bze=new fc;function Ase(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),u=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==Jt.RHUMB){let p=z.subtract(t.position,e.position,yze),g=z.dot(t.position,p)/z.dot(p,p);if(g>0&&g<1){let m=z.add(t.position,z.multiplyByScalar(p,-g,p),xze),x=fc.clone(t,bze);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)&&(u=b)}}let f=t.x*e.y-e.x*t.y,d=Math.sign(f);d!==0&&(d*=z.angleBetween(t.position,e.position)),u>=0&&(o.northAngle+=d),u<=0&&(o.southAngle+=d)}var Ese=new fc,Tze=new fc,Rf={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};Of.computeRectangleFromPositions=function(e,t,n,i){if(l(i)||(i=new re),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,Rf.northAngle=0,Rf.southAngle=0,Rf.westOverIdl=Number.POSITIVE_INFINITY,Rf.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=fc.fromCartesian(e[0],Tze);for(let s=1;s<o;s++){let a=fc.fromCartesian(e[s],Ese);Ase(a,r,t,n,Rf,i),r=fc.clone(a,r)}return Ase(fc.fromCartesian(e[0],Ese),r,t,n,Rf,i),i.east-i.west>Rf.eastOverIdl-Rf.westOverIdl&&(i.west=Rf.westOverIdl,i.east=Rf.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(Rf.northAngle),P.TWO_PI,P.EPSILON10)&&(i.north=P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),P.equalsEpsilon(Math.abs(Rf.southAngle),P.TWO_PI,P.EPSILON10)&&(i.south=-P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),i};var Cze=new fc;function Aze(e,t,n){return e.height>=P.PI||e.width>=P.PI?fc.fromCartesian(t[0],Cze).tangentPlane:$r.fromPoints(t,n)}var Sse=new fe;function Eze(e,t,n){return(i,o)=>{if(e.height>=P.PI||e.width>=P.PI){if(e.south<0&&e.north>0){l(o)||(o=[]);for(let s=0;s<i.length;++s){let a=n.cartesianToCartographic(i[s],Sse);o[s]=new z(a.longitude/P.PI,a.latitude/P.PI_OVER_TWO)}return o.length=i.length,o}return fc.fromCartesianArray(i,o)}return $r.fromPoints(t,n).projectPointsOntoPlane(i,o)}}function Sze(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,Sse);return l(r)||(r=new z),r.x=s.longitude/P.PI,r.y=s.latitude/P.PI_OVER_TWO,r}return fc.fromCartesian(o,r)};let i=$r.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function vze(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 wze(e,t,n,i){if(t.height>=P.PI||t.width>=P.PI)return je.fromRectangle(t,void 0,bse);let o=e,r=$r.fromPoints(o,n);return zn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,bse)}Of.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,u=e._arcType,f=e._textureCoordinates,d=l(f),p=r.positions;if(p.length<3)return;let g=e.rectangle,m=zn.polygonsFromHierarchy(r,d,Eze(g,p,n),!s,n,vze(g,n,u,s)),x=m.hierarchy,b=m.polygons,T=function(I){return I},C=d?zn.polygonsFromHierarchy(f,!0,T,!1,n).polygons:void 0;if(x.length===0)return;let A=x[0].outerRing,E=wze(A,g,n,o),v=[],D=e._height,O=e._extrudedHeight,R=e._perPositionHeightExtrude||!P.equalsEpsilon(D,O,0,P.EPSILON2),M={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:Aze(g,A,n).plane.normal,projectTo2d:Sze(g,A,n),boundingRectangle:E,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:u},N;if(R)for(M.extrude=!0,M.top=a,M.bottom=c,M.shadowVolume=e._shadowVolume,M.offsetAttribute=e._offsetAttribute,N=0;N<b.length;N++){let I=mze(n,b[N],d?C[N]:void 0,i,x[N],s,a,c,t,u),L;a&&c?(L=I.topAndBottom,M.geometry=zn.scaleToGeodeticHeightExtruded(L.geometry,D,O,n,s)):a?(L=I.topAndBottom,L.geometry.attributes.position.values=si.scaleToGeodeticHeight(L.geometry.attributes.position.values,D,n,!s),M.geometry=L.geometry):c&&(L=I.topAndBottom,L.geometry.attributes.position.values=si.scaleToGeodeticHeight(L.geometry.attributes.position.values,O,n,!0),M.geometry=L.geometry),(a||c)&&(M.wall=!1,L.geometry=SW(M),v.push(L));let B=I.walls;M.wall=!0;for(let U=0;U<B.length;U++){let V=B[U];M.geometry=zn.scaleToGeodeticHeightExtruded(V.geometry,D,O,n,s),V.geometry=SW(M),v.push(V)}}else for(N=0;N<b.length;N++){let I=new St({geometry:zn.createGeometryFromPositions(n,b[N],d?C[N]:void 0,i,s,t,u)});if(I.geometry.attributes.position.values=si.scaleToGeodeticHeight(I.geometry.attributes.position.values,D,n,!s),M.geometry=I.geometry,I.geometry=SW(M),l(e._offsetAttribute)){let L=I.geometry.attributes.position.values.length,B=e._offsetAttribute===an.NONE?0:1,U=new Uint8Array(L/3).fill(B);I.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:U})}v.push(I)}let _=Ln.combineInstances(v)[0];_.attributes.position.values=new Float64Array(_.attributes.position.values),_.indices=Ne.createTypedArray(_.attributes.position.values.length/3,_.indices);let S=_.attributes,w=se.fromVertices(S.position.values);return t.position||delete S.position,new at({attributes:S,indices:_.indices,primitiveType:_.primitiveType,boundingSphere:w,offsetAttribute:e._offsetAttribute})};Of.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Of({polygonHierarchy:e._polygonHierarchy,ellipsoid:o,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function Dze(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 at._textureCoordinateRotationPoints(i,t,n,o)}Object.defineProperties(Of.prototype,{rectangle:{get:function(){if(!l(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=Of.computeRectangleFromPositions(e,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=Dze(this)),this._textureCoordinateRotationPoints}}});var e_=Of;function pb(e){this._ellipsoid=y(e.ellipsoid,ee.default),this._positions=[...e.positions]}Object.defineProperties(pb.prototype,{length:{get:function(){return this._positions.length}},positions:{get:function(){return this._positions}},ellipsoid:{get:function(){return this._ellipsoid}}});pb.clone=function(e,t){return l(t)?(t._ellipsoid=e.ellipsoid,t._positions.length=0,t._positions.push(...e.positions),t):new pb({positions:e.positions,ellipsoid:e.ellipsoid})};pb.equals=function(e,t){return e.ellipsoid.equals(t.ellipsoid)&&e.positions===t.positions};pb.prototype.computeRectangle=function(e){return e_.computeRectangleFromPositions(this.positions,this.ellipsoid,void 0,e)};var Ize=new re,vse=new h;pb.prototype.computeSphericalExtents=function(e){l(e)||(e=new re);let t=this.computeRectangle(Ize),n=fe.toCartesian(re.southwest(t),this.ellipsoid,vse),i=Math.sqrt(n.x*n.x+n.y*n.y),o=P.fastApproximateAtan2(i,n.z),r=P.fastApproximateAtan2(n.x,n.y);return e.south=o,e.west=r,n=fe.toCartesian(re.northeast(t),this.ellipsoid,vse),i=Math.sqrt(n.x*n.x+n.y*n.y),o=P.fastApproximateAtan2(i,n.z),r=P.fastApproximateAtan2(n.x,n.y),e.north=o,e.east=r,e};var NA=pb;var pR=`in vec2 v_textureCoordinates;

uniform int u_polygonsLength;
uniform int u_extentsLength;
uniform highp sampler2D u_polygonTexture;
uniform highp sampler2D u_extentsTexture;

int getPolygonIndex(float dimension, vec2 coord) {
   vec2 uv = coord.xy * dimension;
   return int(floor(uv.y) * dimension + floor(uv.x));
}

vec2 getLookupUv(ivec2 dimensions, int i) {
    int pixY = i / dimensions.x;
    int pixX = i - (pixY * dimensions.x);
    float pixelWidth = 1.0 / float(dimensions.x);
    float pixelHeight = 1.0 / float(dimensions.y);
    float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel
    float v = (float(pixY) + 0.5) * pixelHeight;
    return vec2(u, v);
}

vec4 getExtents(int i) {
    return texture(u_extentsTexture, getLookupUv(textureSize(u_extentsTexture, 0), i));
}

ivec2 getPositionsLengthAndExtentsIndex(int i) {
    vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i);
    vec4 value = texture(u_polygonTexture, uv);
    return ivec2(int(value.x), int(value.y));
}

vec2 getPolygonPosition(int i) {
    vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i);
    return texture(u_polygonTexture, uv).xy;
}

vec2 getCoordinates(vec2 textureCoordinates, vec4 extents) {
    float latitude = mix(extents.x, extents.x + 1.0 / extents.z, textureCoordinates.y);
    float longitude = mix(extents.y, extents.y + 1.0 / extents.w, textureCoordinates.x);
    return vec2(latitude, longitude);
}

void main() {
    int lastPolygonIndex = 0;
    out_FragColor = vec4(1.0);

    // Get the relevant region of the texture
    float dimension = float(u_extentsLength);
    if (u_extentsLength > 2) {
        dimension = ceil(log2(float(u_extentsLength)));
    }
    int regionIndex = getPolygonIndex(dimension, v_textureCoordinates);

    for (int polygonIndex = 0; polygonIndex < u_polygonsLength; polygonIndex++) {
        ivec2 positionsLengthAndExtents = getPositionsLengthAndExtentsIndex(lastPolygonIndex);
        int positionsLength = positionsLengthAndExtents.x;
        int polygonExtentsIndex = positionsLengthAndExtents.y;
        lastPolygonIndex += 1;

         // Only compute signed distance for the relevant part of the atlas
         if (polygonExtentsIndex == regionIndex) {
            float clipAmount = czm_infinity;
            vec4 extents = getExtents(polygonExtentsIndex);
            vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension;
            vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents);
            float s = 1.0;

            // Check each edge for absolute distance
            for (int i = 0, j = positionsLength - 1; i < positionsLength; j = i, i++) {
                vec2 a = getPolygonPosition(lastPolygonIndex + i);
                vec2 b = getPolygonPosition(lastPolygonIndex + j);
 
                vec2 ab = b - a;
                vec2 pa = p - a;
                float t = dot(pa, ab) / dot(ab, ab);
                t = clamp(t, 0.0, 1.0);

                vec2 pq = pa - t * ab;
                float d = length(pq);

                // Inside / outside computation to determine sign
                bvec3 cond = bvec3(p.y >= a.y, 
                            p.y < b.y, 
                            ab.x * pa.y > ab.y * pa.x);
                if (all(cond) || all(not(cond))) s = -s;
                if (abs(d) < abs(clipAmount)) {
                    clipAmount = d;
                }
            }

            // Normalize the range to [0,1]
            vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5;
            // In the case where we've iterated through multiple polygons, take the minimum
            out_FragColor = min(out_FragColor, result);
         }

        lastPolygonIndex += positionsLength;
    }
}`;function ts(e){e=y(e,y.EMPTY_OBJECT),this._polygons=[],this._totalPositions=0,this.enabled=y(e.enabled,!0),this.inverse=y(e.inverse,!1),this.polygonAdded=new me,this.polygonRemoved=new me,this._owner=void 0,this._float32View=void 0,this._extentsFloat32View=void 0,this._extentsCount=0,this._polygonsTexture=void 0,this._extentsTexture=void 0,this._signedDistanceTexture=void 0,this._signedDistanceComputeCommand=void 0;let t=e.polygons;if(l(t)){let n=t.length;for(let i=0;i<n;++i)this._polygons.push(t[i])}}Object.defineProperties(ts.prototype,{length:{get:function(){return this._polygons.length}},totalPositions:{get:function(){return this._totalPositions}},extentsTexture:{get:function(){return this._extentsTexture}},extentsCount:{get:function(){return this._extentsCount}},pixelsNeededForExtents:{get:function(){return this.length}},pixelsNeededForPolygonPositions:{get:function(){return this.totalPositions+this.length}},clippingTexture:{get:function(){return this._signedDistanceTexture}},owner:{get:function(){return this._owner}},clippingPolygonsState:{get:function(){return this.inverse?-this.extentsCount:this.extentsCount}}});ts.prototype.add=function(e){let t=this._polygons.length;return this._polygons.push(e),this.polygonAdded.raiseEvent(e,t),e};ts.prototype.get=function(e){return this._polygons[e]};ts.prototype.contains=function(e){return this._polygons.some(t=>NA.equals(t,e))};ts.prototype.remove=function(e){let t=this._polygons,n=t.findIndex(i=>NA.equals(i,e));return n===-1?!1:(t.splice(n,1),this.polygonRemoved.raiseEvent(e,n),!0)};var Pze=new re;function Rze(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let a=e[r].computeSphericalExtents(),c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=re.clone(a);f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI);let d=[r];for(let p=0;p<t.length;++p){let g=t[p];if(l(g)&&l(re.simpleIntersection(g,f))&&!re.equals(g,f)){let m=n[p];d.push(...m),m.reduce((x,b)=>re.union(e[b].computeSphericalExtents(Pze),x,x),a),t[p]=void 0,n[p]=void 0,c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=re.clone(a,f),f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI),p=-1}}t.push(f),n.push(d)}let o=new Map;return n.filter(l).forEach((r,s)=>r.forEach(a=>o.set(a,s))),{extentsList:t.filter(l),extentsIndexByPolygon:o}}ts.prototype.removeAll=function(){let e=this._polygons,t=e.length;for(let n=0;n<t;++n){let i=e[n];this.polygonRemoved.raiseEvent(i,n)}this._polygons=[]};function Oze(e){let t=e._float32View,n=e._extentsFloat32View,i=e._polygons,{extentsList:o,extentsIndexByPolygon:r}=Rze(i),s=0;for(let[c,u]of i.entries()){let f=u.length;t[s++]=f,t[s++]=r.get(c);for(let d=0;d<f;++d){let p=u.positions[d],g=Math.hypot(p.x,p.y),m=P.fastApproximateAtan2(g,p.z),x=P.fastApproximateAtan2(p.x,p.y);t[s++]=m,t[s++]=x}}let a=0;for(let c of o){let u=1/(c.east-c.west),f=1/(c.north-c.south);n[a++]=c.south,n[a++]=c.west,n[a++]=f,n[a++]=u}e._extentsCount=o.length}var vW=new z;ts.prototype.update=function(e){let t=e.context;if(!ts.isSupported(e))throw new ce("ClippingPolygonCollections are only supported for WebGL 2.");let n=this._polygons.reduce((s,a)=>s+a.length,0);if(n===this.totalPositions||(this._totalPositions=n,this.length===0))return;l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0,this._signedDistanceComputeCommand=void 0);let i=this._polygonsTexture,o=this._extentsTexture,r=this._signedDistanceTexture;if(l(i)){let s=i.width*i.height;(s<this.pixelsNeededForPolygonPositions||this.pixelsNeededForPolygonPositions<.25*s)&&(i.destroy(),i=void 0,this._polygonsTexture=void 0)}if(!l(i)){let s=ts.getTextureResolution(i,this.pixelsNeededForPolygonPositions,vW);i=new Pt({context:t,width:s.x,height:s.y,pixelFormat:Je.RG,pixelDatatype:Ke.FLOAT,sampler:$t.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*2),this._polygonsTexture=i}if(l(o)){let s=o.width*o.height;(s<this.pixelsNeededForExtents||this.pixelsNeededForExtents<.25*s)&&(o.destroy(),o=void 0,this._extentsTexture=void 0)}if(!l(o)){let s=ts.getTextureResolution(o,this.pixelsNeededForExtents,vW);o=new Pt({context:t,width:s.x,height:s.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT,sampler:$t.NEAREST,flipY:!1}),this._extentsFloat32View=new Float32Array(s.x*s.y*4),this._extentsTexture=o}if(Oze(this),o.copyFrom({source:{width:o.width,height:o.height,arrayBufferView:this._extentsFloat32View}}),i.copyFrom({source:{width:i.width,height:i.height,arrayBufferView:this._float32View}}),!l(r)){let s=ts.getClippingDistanceTextureResolution(this,vW);r=new Pt({context:t,width:s.x,height:s.y,pixelFormat:t.webgl2?Je.RED:Je.LUMINANCE,pixelDatatype:Ke.FLOAT,sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR}),flipY:!1}),this._signedDistanceTexture=r}this._signedDistanceComputeCommand=Mze(this)};ts.prototype.queueCommands=function(e){l(this._signedDistanceComputeCommand)&&e.commandList.push(this._signedDistanceComputeCommand)};function Mze(e){let t=e._polygonsTexture,n=e._extentsTexture;return new Nc({fragmentShaderSource:pR,outputTexture:e._signedDistanceTexture,uniformMap:{u_polygonsLength:function(){return e.length},u_extentsLength:function(){return e.extentsCount},u_extentsTexture:function(){return n},u_polygonTexture:function(){return t}},persists:!1,owner:e,postExecute:()=>{e._signedDistanceComputeCommand=void 0}})}var wse=new re,Lze=new re;ts.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._polygons,i=n.length,o=jt.OUTSIDE;this.inverse&&(o=jt.INSIDE);for(let r=0;r<i;++r){let a=n[r].computeRectangle(),c=e.rectangle;if(!l(c)&&l(e.boundingVolume?.computeCorners)){let f=e.boundingVolume.computeCorners();c=re.fromCartesianArray(f,t,wse)}l(c)||(c=re.fromBoundingSphere(e.boundingSphere,t,wse));let u=re.simpleIntersection(c,a,Lze);l(u)&&(o=jt.INTERSECTING)}return o};ts.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};ts.isSupported=function(e){return e?.context.webgl2};ts.getTextureResolution=function(e,t,n){if(l(e))return n.x=e.width,n.y=e.height,n;let i=kt.maximumTextureSize;return n.x=Math.min(t,i),n.y=Math.ceil(t/n.x),n.y*=2,n};ts.getClippingDistanceTextureResolution=function(e,t){let n=e.signedDistanceTexture;return l(n)?(t.x=n.width,t.y=n.height,t):(t.x=Math.min(kt.maximumTextureSize,4096),t.y=Math.min(kt.maximumTextureSize,4096),t)};ts.getClippingExtentsTextureResolution=function(e,t){let n=e.extentsTexture;return l(n)?(t.x=n.width,t.y=n.height,t):ts.getTextureResolution(n,e.pixelsNeededForExtents,t)};ts.prototype.isDestroyed=function(){return!1};ts.prototype.destroy=function(){return l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0),this._polygonsTexture=this._polygonsTexture&&this._polygonsTexture.destroy(),this._extentsTexture=this._extentsTexture&&this._extentsTexture.destroy(),this._signedDistanceTexture=this._signedDistanceTexture&&this._signedDistanceTexture.destroy(),ue(this)};var Kd=ts;var _R={NONE:0,SCENE_LIGHT:1,SUNLIGHT:2};_R.fromGlobeFlags=function(e){return e.enableLighting&&e.dynamicAtmosphereLighting?e.dynamicAtmosphereLightingFromSun?_R.SUNLIGHT:_R.SCENE_LIGHT:_R.NONE};var t_=Object.freeze(_R);function Dse(){this.lightIntensity=10,this.rayleighCoefficient=new h(55e-7,13e-6,284e-7),this.mieCoefficient=new h(21e-6,21e-6,21e-6),this.rayleighScaleHeight=1e4,this.mieScaleHeight=3200,this.mieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.dynamicLighting=t_.NONE}Dse.requiresColorCorrect=function(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))};var _b=Dse;var Zd=`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; // The thickness of the atmosphere in meters.
const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled.
const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray.

/**
 * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as
 * the transmittance value for the ray.
 *
 * @param {czm_ray} primaryRay The ray from the camera to the position.
 * @param {float} primaryRayLength The length of the primary ray.
 * @param {vec3} lightDirection The direction of the light to calculate the scattering from.
 * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to.
 * @param {vec3} mieColor The variable the Mie scattering will be written to.
 * @param {float} opacity The variable the transmittance will be written to.
 * @glslFunction
 */
void computeScattering(
    czm_ray primaryRay,
    float primaryRayLength,
    vec3 lightDirection,
    float atmosphereInnerRadius,
    out vec3 rayleighColor,
    out vec3 mieColor,
    out float opacity
) {

    // Initialize the default scattering amounts to 0.
    rayleighColor = vec3(0.0);
    mieColor = vec3(0.0);
    opacity = 0.0;

    float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS;

    vec3 origin = vec3(0.0);

    // Calculate intersection from the camera to the outer ring of the atmosphere.
    czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius);

    // Return empty colors if no intersection with the atmosphere geometry.
    if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) {
        return;
    }

    // To deal with smaller values of PRIMARY_STEPS (e.g. 4)
    // we implement a split strategy: sky or horizon.
    // For performance reasons, instead of a if/else branch
    // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0
    float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength);
    // Value close to 0.0: close to the horizon
    // Value close to 1.0: above in the sky
    float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x));

    // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere.
    float start_0 = primaryRayAtmosphereIntersect.start;
    primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0);
    // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller.
    primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength));

    // For the number of ray steps, distinguish inside or outside atmosphere (outer space)
    // (1) from outer space we have to use more ray steps to get a realistic rendering
    // (2) within atmosphere we need fewer steps for faster rendering
    float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters
    float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a));
    int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled.
    int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray.

    // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere.
    float rayPositionLength = primaryRayAtmosphereIntersect.start;
    // (1) Outside the atmosphere: constant rayStepLength
    // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps
    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);

    // Sample positions on the primary ray.
    for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) {

        // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot
        // loop with non-constant condition, so it has to break early instead
        if (i >= PRIMARY_STEPS) {
            break;
        }

        // Calculate sample position along viewpoint ray.
        vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength);

        // Calculate height of sample position above ellipsoid.
        float sampleHeight = length(samplePosition) - atmosphereInnerRadius;

        // Calculate and accumulate density of particles at the sample position.
        vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength;
        opticalDepth += sampleDensity;

        // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere.
        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);

        // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment.
        for (int j = 0; j < LIGHT_STEPS_MAX; ++j) {

            // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot
            // loop with non-constant condition, so it has to break early instead
            if (j >= LIGHT_STEPS) {
                break;
            }

            // Calculate sample position along light ray.
            vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5);

            // Calculate height of the light sample position above ellipsoid.
            float lightHeight = length(lightPosition) - atmosphereInnerRadius;

            // Calculate density of photons at the light sample position.
            lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength;

            // Increment distance on light ray.
            lightPositionLength += lightStepLength;
        }

        // Compute attenuation via the primary ray and the light ray.
        vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x))));

        // Accumulate the scattering.
        rayleighAccumulation += sampleDensity.x * attenuation;
        mieAccumulation += sampleDensity.y * attenuation;

        // Increment distance on primary ray.
        rayPositionLength += (rayStepLength += rayStepLengthIncrease);
    }

    // Compute the scattering amount.
    rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation;
    mieColor = u_atmosphereMieCoefficient * mieAccumulation;

    // Compute the transmittance i.e. how much light is passing through the atmosphere.
    opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x))));
}

vec4 computeAtmosphereColor(
    vec3 positionWC,
    vec3 lightDirection,
    vec3 rayleighColor,
    vec3 mieColor,
    float opacity
) {
    // Setup the primary ray: from the camera position to the vertex position.
    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;

    // The Rayleigh phase function.
    float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq);
    // The Mie phase function.
    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));

    // The final color is generated by combining the effects of the Rayleigh and Mie scattering.
    vec3 rayleigh = rayleighPhase * rayleighColor;
    vec3 mie = miePhase * mieColor;

    vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity;

    return vec4(color, opacity);
}
`;var gR=`uniform samplerCube u_radianceMap;

in vec2 v_textureCoordinates;


const float twoSqrtPi = 2.0 * sqrt(czm_pi);

// Coutesy of https://www.ppsloan.org/publications/StupidSH36.pdf
float computeShBasis(int index, vec3 s) {
    if (index == 0) { // l = 0, m = 0
        return 1.0 / twoSqrtPi;
    }
    
    if (index == 1) { // l = 1, m = -1
        return -sqrt(3.0) * s.y / twoSqrtPi;
    }

    if (index == 2) { // l = 1, m = 0
        return sqrt(3.0) * s.z / twoSqrtPi;
    }

    if (index == 3) { // l = 1, m = 1
        return -sqrt(3.0) * s.x / twoSqrtPi;
    }

    if (index == 4) { // l = 2, m = -2
        return sqrt(15.0) * s.y * s.x / twoSqrtPi;
    }

    if (index == 5) { // l = 2, m = -1
        return -sqrt(15.0) * s.y * s.z / twoSqrtPi;
    }

    if (index == 6) { // l = 2, m = 0
        return sqrt(5.0) * (3.0 * s.z * s.z - 1.0) / 2.0 / twoSqrtPi;
    }

    if (index == 7) { // l = 2, m = 1
        return -sqrt(15.0) * s.x * s.z / twoSqrtPi;
    }

    if (index == 8) { // l = 2, m = 2
        return sqrt(15.0) * (s.x * s.x - s.y * s.y) / 2.0 / twoSqrtPi;
    }

    return 0.0;
}

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));
}

// Sample count is relatively low for the sake of performance, but should still be enough to capture directionality needed for third-order harmonics
const int samples = 256; 
const float solidAngle = 1.0 / float(samples);

void main() {
    // Get the current coefficient based on the uv
   vec2 uv = v_textureCoordinates.xy * 3.0;
   int coefficientIndex = int(floor(uv.y) * 3.0 + floor(uv.x));

    for (int i = 0; i < samples; ++i) {
        vec2 xi = hammersley2D(i, samples);
        float phi = czm_twoPi * xi.x;
        float cosTheta = 1.0 - 2.0 * sqrt(1.0 - xi.y * xi.y);
        float sinTheta = sqrt(1.0 - cosTheta * cosTheta);
        vec3 direction = normalize(vec3(sinTheta * cos(phi), cosTheta, sinTheta * sin(phi)));

        // Generate the spherical harmonics basis from the direction
        float Ylm = computeShBasis(coefficientIndex, direction);

        vec3 lookupDirection = -direction.xyz;
        lookupDirection.z = -lookupDirection.z;

        vec4 color = czm_textureCube(u_radianceMap, lookupDirection, 0.0);

        // Use the relevant function for this coefficient
        out_FragColor += Ylm * color * solidAngle * sinTheta;
    }
    
}
`;var yR=`precision highp float;

in vec2 v_textureCoordinates;

uniform vec3 u_faceDirection; // Current cubemap face
uniform vec3 u_positionWC;
uniform mat4 u_enuToFixedFrame;
uniform vec4 u_brightnessSaturationGammaIntensity;
uniform vec4 u_groundColor; // alpha component represent albedo

vec4 getCubeMapDirection(vec2 uv, vec3 faceDir) {
    vec2 scaledUV = uv * 2.0 - 1.0;

    if (faceDir.x != 0.0) {
        return vec4(faceDir.x,  scaledUV.x * faceDir.x, -scaledUV.y, 0.0);
    } else if (faceDir.y != 0.0) {
        return vec4(scaledUV.x, -scaledUV.y * faceDir.y, faceDir.y, 0.0);
    } else {
        return vec4(scaledUV.x * faceDir.z, -faceDir.z, -scaledUV.y, 0.0); 
    }
}

void main() {    
    float height = length(u_positionWC);
    float atmosphereInnerRadius = u_radiiAndDynamicAtmosphereColor.y;
    float ellipsoidHeight = max(height - atmosphereInnerRadius, 0.0);

    // Scale the position to ensure the sky color is present, even when underground.
    vec3 positionWC = u_positionWC / height * (ellipsoidHeight + atmosphereInnerRadius);

    float atmosphereOuterRadius = u_radiiAndDynamicAtmosphereColor.x;
    float atmosphereHeight = atmosphereOuterRadius - atmosphereInnerRadius;

    vec3 direction = (u_enuToFixedFrame * getCubeMapDirection(v_textureCoordinates, u_faceDirection)).xyz;
    vec3 normalizedDirection = normalize(direction);

    czm_ray ray = czm_ray(positionWC, normalizedDirection);
    czm_raySegment intersection = czm_raySphereIntersectionInterval(ray, vec3(0.0), atmosphereInnerRadius);
    if (!czm_isEmpty(intersection)) {
        intersection = czm_rayEllipsoidIntersectionInterval(ray, vec3(0.0), czm_ellipsoidInverseRadii);
    }

    bool onEllipsoid = intersection.start >= 0.0;
    float rayLength = czm_branchFreeTernary(onEllipsoid, intersection.start, atmosphereOuterRadius);

    // Compute sky color for each position on a sphere at radius centered around the provided position's origin
    vec3 skyPositionWC = positionWC + normalizedDirection * rayLength;

    float lightEnum = u_radiiAndDynamicAtmosphereColor.z;
    vec3 lightDirectionWC = normalize(czm_getDynamicAtmosphereLightDirection(skyPositionWC, lightEnum));
    vec3 mieColor;
    vec3 rayleighColor;
    float opacity;
    czm_computeScattering(
        ray,
        rayLength,
        lightDirectionWC,
        atmosphereInnerRadius, 
        rayleighColor,
        mieColor,
        opacity
    );

    vec4 atmopshereColor = czm_computeAtmosphereColor(ray, lightDirectionWC, rayleighColor, mieColor, opacity);

#ifdef ATMOSPHERE_COLOR_CORRECT
    const bool ignoreBlackPixels = true;
    atmopshereColor.rgb = czm_applyHSBShift(atmopshereColor.rgb, czm_atmosphereHsbShift, ignoreBlackPixels);
#endif

    vec3 lookupDirection = -normalizedDirection;
     // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z.
    lookupDirection.x = -lookupDirection.x;
    lookupDirection = -normalize(czm_temeToPseudoFixed * lookupDirection);
    lookupDirection.x = -lookupDirection.x;

    // Values outside the atmopshere are rendered as black, when they should be treated as transparent
    float skyAlpha = clamp((1.0 - ellipsoidHeight / atmosphereHeight) * atmopshereColor.a, 0.0, 1.0);
    skyAlpha = czm_branchFreeTernary(length(atmopshereColor.rgb) <= czm_epsilon7, 0.0, skyAlpha); // Treat black as transparent

    // Blend starmap with atmopshere scattering
    float intensity = u_brightnessSaturationGammaIntensity.w;
    vec4 sceneSkyBoxColor = czm_textureCube(czm_environmentMap, lookupDirection);
    vec3 skyBackgroundColor = mix(czm_backgroundColor.rgb, sceneSkyBoxColor.rgb, sceneSkyBoxColor.a);
    vec4 combinedSkyColor = vec4(mix(skyBackgroundColor, atmopshereColor.rgb * intensity, skyAlpha), 1.0);

    // Compute ground color based on amount of reflected light, then blend it with ground atmosphere based on height
    vec3 up = normalize(positionWC);
    float occlusion = max(dot(lightDirectionWC, up), 0.05);
    vec4 groundColor = vec4(u_groundColor.rgb * u_groundColor.a * (vec3(intensity * occlusion) + atmopshereColor.rgb), 1.0);
    vec4 blendedGroundColor = mix(groundColor, atmopshereColor, clamp(ellipsoidHeight / atmosphereHeight, 0.0, 1.0));

    vec4 color = czm_branchFreeTernary(onEllipsoid, blendedGroundColor, combinedSkyColor);

    float brightness = u_brightnessSaturationGammaIntensity.x;
    float saturation = u_brightnessSaturationGammaIntensity.y;
    float gamma = u_brightnessSaturationGammaIntensity.z;

#ifdef ENVIRONMENT_COLOR_CORRECT
    color.rgb = mix(vec3(0.0), color.rgb, brightness);
    color.rgb = czm_saturation(color.rgb, saturation);
#endif
    color.rgb = pow(color.rgb, vec3(gamma)); // Normally this would be in the ifdef above, but there is a precision issue with the atmopshere scattering transmittance (alpha). Having this line is a workaround for that issue, even when gamma is 1.0.
    color.rgb = czm_gammaCorrect(color.rgb);

    out_FragColor = color;
}
`;var xR=`precision highp float;

in vec3 v_textureCoordinates;

uniform float u_roughness;
uniform samplerCube u_radianceTexture;
uniform vec3 u_faceDirection;

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 alphaRoughness, vec3 N)
{
    float alphaRoughnessSquared = alphaRoughness * alphaRoughness;
    float phi = czm_twoPi * xi.x;
    float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 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;
}

// Sample count is relatively low for the sake of performance, but should still be enough to prevent artifacting in lower roughnesses
const int samples = 128;

void main() {
    vec3 normal = u_faceDirection;
    vec3 V = normalize(v_textureCoordinates);
    float roughness = u_roughness;

    vec4 color = vec4(0.0);
    float weight = 0.0;
    for (int i = 0; i < samples; ++i) {
            vec2 xi = hammersley2D(i, samples);
            vec3 H = importanceSampleGGX(xi, roughness, V);
            vec3 L = 2.0 * dot(V, H) * H - V; // reflected vector

            float NdotL = max(dot(V, L), 0.0);
            if (NdotL > 0.0) {
                color += vec4(texture(u_radianceTexture, L).rgb, 1.0) * NdotL;
                weight += NdotL;
            }
        }
    out_FragColor = color / weight;
}
`;var bR=`in vec3 position;
out vec3 v_textureCoordinates;

uniform vec3 u_faceDirection;

vec3 getCubeMapDirection(vec2 uv, vec3 faceDir) {
    vec2 scaledUV = uv;

    if (faceDir.x != 0.0) {
        return vec3(faceDir.x, scaledUV.y, scaledUV.x * faceDir.x);
    } else if (faceDir.y != 0.0) {
        return vec3(scaledUV.x, -faceDir.y, -scaledUV.y * faceDir.y);
    } else {
        return vec3(scaledUV.x * faceDir.z, scaledUV.y, -faceDir.z); 
    }
}

void main() 
{
    v_textureCoordinates = getCubeMapDirection(position.xy, u_faceDirection);
    v_textureCoordinates.y = -v_textureCoordinates.y;
    v_textureCoordinates.z = -v_textureCoordinates.z;
    gl_Position = vec4(position, 1.0);
}
`;function n_(e){this._position=void 0,this._radianceMapDirty=!1,this._radianceCommandsDirty=!1,this._convolutionsCommandsDirty=!1,this._irradianceCommandDirty=!1,this._irradianceTextureDirty=!1,this._sphericalHarmonicCoefficientsDirty=!1,this._shouldRegenerateShaders=!1,e=y(e,y.EMPTY_OBJECT);let t=y(e.mipmapLevels,10);this._mipmapLevels=t,this._radianceMapComputeCommands=new Array(6),this._convolutionComputeCommands=new Array((t-1)*6),this._irradianceComputeCommand=void 0,this._radianceMapFS=void 0,this._irradianceMapFS=void 0,this._convolveSP=void 0,this._va=void 0,this._radianceMapTextures=new Array(6),this._specularMapTextures=new Array((t-1)*6),this._radianceCubeMap=void 0,this._irradianceMapTexture=void 0,this._sphericalHarmonicCoefficients=new Array(9),this._lastTime=new Z;let n=Math.pow(2,t-1);this._textureDimensions=new z(n,n),this._radiiAndDynamicAtmosphereColor=new h,this._sceneEnvironmentMap=void 0,this._backgroundColor=void 0,this._owner=void 0,this.enabled=y(e.enabled,!0),this.shouldUpdate=!0,this.maximumSecondsDifference=y(e.maximumSecondsDifference,60*60),this.maximumPositionEpsilon=y(e.maximumPositionEpsilon,1e3),this.atmosphereScatteringIntensity=y(e.atmosphereScatteringIntensity,2),this.gamma=y(e.gamma,1),this.brightness=y(e.brightness,1),this.saturation=y(e.saturation,1),this.groundColor=y(e.groundColor,n_.AVERAGE_EARTH_GROUND_COLOR),this.groundAlbedo=y(e.groundAlbedo,.31)}Object.defineProperties(n_.prototype,{owner:{get:function(){return this._owner}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},position:{get:function(){return this._position},set:function(e){h.equalsEpsilon(e,this._position,0,this.maximumPositionEpsilon)||(this._position=h.clone(e,this._position),this.reset())}},radianceCubeMap:{get:function(){return this._radianceCubeMap}},maximumMipmapLevel:{get:function(){return this._mipmapLevels}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}}});n_.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};n_.prototype.reset=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;t<e;++t)this._radianceMapComputeCommands[t]=void 0;e=this._convolutionComputeCommands.length;for(let t=0;t<e;++t)this._convolutionComputeCommands[t]=void 0;l(this._irradianceComputeCommand)&&(this._irradianceComputeCommand=void 0),this._radianceMapDirty=!0,this._radianceCommandsDirty=!0};var Nze=new h,Fze=new h;function Bze(e,t){let n=e._position,i=t.atmosphere,o=t.mapProjection.ellipsoid,r=o.scaleToGeodeticSurface(n,Fze),s=1.025,a=Nze,c=l(r)?h.magnitude(r):o.maximumRadius;return a.x=c*s,a.y=c,a.z=i.dynamicLighting,!h.equalsEpsilon(e._radiiAndDynamicAtmosphereColor,a)||t.environmentMap!==e._sceneEnvironmentMap||t.backgroundColor!==e._backgroundColor?(h.clone(a,e._radiiAndDynamicAtmosphereColor),e._sceneEnvironmentMap=t.environmentMap,e._backgroundColor=t.backgroundColor,!0):!1}var Ise=new h,kze=new F,Vze=new oe,Uze=new H;function zze(e,t){let n=t.context,i=e._textureDimensions;if(l(e._radianceCubeMap)||(e._radianceCubeMap=new br({context:n,width:i.x,height:i.y,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA})),e._radianceCommandsDirty){let o=e._radianceMapFS;l(o)||(o=new Ue({sources:[Zd,yR]}),e._radianceMapFS=o),_b.requiresColorCorrect(t.atmosphere)&&o.defines.push("ATMOSPHERE_COLOR_CORRECT");let r=e._position,s=e._radiiAndDynamicAtmosphereColor,a=t.mapProjection.ellipsoid,c=Mt.eastNorthUpToFixedFrame(r,a,kze),u=Vze;u.x=e.brightness,u.y=e.saturation,u.z=e.gamma,u.w=e.atmosphereScatteringIntensity,(e.brightness!==1||e.saturation!==1||e.gamma!==1)&&o.defines.push("ENVIRONMENT_COLOR_CORRECT");let f=0;for(let d of br.faceNames()){let p=e._radianceMapTextures[f];l(p)&&p.destroy(),p=new Pt({context:n,width:i.x,height:i.y,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA}),e._radianceMapTextures[f]=p;let g=f,m=new Nc({fragmentShaderSource:o,outputTexture:p,uniformMap:{u_radiiAndDynamicAtmosphereColor:()=>s,u_enuToFixedFrame:()=>c,u_faceDirection:()=>br.getDirection(d,Ise),u_positionWC:()=>r,u_brightnessSaturationGammaIntensity:()=>u,u_groundColor:()=>e.groundColor.withAlpha(e.groundAlbedo,Uze)},persists:!0,owner:e,postExecute:()=>{let x=e._radianceMapComputeCommands;if(!l(x[g]))return;x[g]=void 0;let b=new Mr({context:n,colorTextures:[e._radianceMapTextures[g]],destroyAttachments:!1});b._bind(),e._radianceCubeMap[d].copyFromFramebuffer(),b._unBind(),b.destroy(),x.some(l)||(e._convolutionsCommandsDirty=!0,e._shouldRegenerateShaders=!0)}});t.commandList.push(m),e._radianceMapComputeCommands[f]=m,f++}e._radianceCommandsDirty=!1}}function Hze(e,t){let n=e._radianceCubeMap;n.generateMipmap();let i=e._mipmapLevels,o=e._textureDimensions,r=o.x/2,s=o.y/2,a=t.context,c=0,u=(d,p,g,m)=>()=>{let x=e._convolutionComputeCommands;l(x[d])&&(x[d]=void 0,n.copyFace(t,p,g,m),c++,c===e._specularMapTextures.length&&(e._irradianceCommandDirty=!0,n.sampler=new $t({minificationFilter:Zt.LINEAR_MIPMAP_LINEAR}),e._shouldRegenerateShaders=!0))},f=0;for(let d=1;d<i;++d){for(let p of br.faceNames()){let g=e._specularMapTextures[f]=new Pt({context:a,width:r,height:s,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA}),m=e._va;l(m)||(m=br.createVertexArray(a,p),e._va=m);let x=e._convolveSP;l(x)||(x=Qt.fromCache({context:a,vertexShaderSource:bR,fragmentShaderSource:xR,attributeLocations:{positions:0}}),e._convolveSP=x);let b=new Nc({shaderProgram:x,vertexArray:m,outputTexture:g,persists:!0,owner:e,uniformMap:{u_roughness:()=>d/(i-1),u_radianceTexture:()=>n,u_faceDirection:()=>br.getDirection(p,Ise)},postExecute:u(f,g,p,d)});e._convolutionComputeCommands[f]=b,t.commandList.push(b),++f}r/=2,s/=2}}var Pse=new z(3,3);function Gze(e,t){let n=t.context,i=Pse,o=e._irradianceMapTexture;l(o)||(o=new Pt({context:n,width:i.x,height:i.y,pixelDatatype:Ke.FLOAT,pixelFormat:Je.RGBA}),e._irradianceMapTexture=o);let r=e._irradianceMapFS;l(r)||(r=new Ue({sources:[gR]}),e._irradianceMapFS=r);let s=new Nc({fragmentShaderSource:r,outputTexture:o,uniformMap:{u_radianceMap:()=>e._radianceCubeMap},postExecute:()=>{l(e._irradianceComputeCommand)&&(e._irradianceTextureDirty=!1,e._irradianceComputeCommand=void 0,e._sphericalHarmonicCoefficientsDirty=!0)}});e._irradianceComputeCommand=s,t.commandList.push(s),e._irradianceTextureDirty=!0}function Wze(e,t){let n=t.context,i=new Mr({context:n,colorTextures:[e._irradianceMapTexture],destroyAttachments:!1}),o=Pse,r=n.readPixels({x:0,y:0,width:o.x,height:o.y,framebuffer:i});for(let s=0;s<9;++s)e._sphericalHarmonicCoefficients[s]=h.unpack(r,s*4),h.multiplyByScalar(e._sphericalHarmonicCoefficients[s],e.atmosphereScatteringIntensity,e._sphericalHarmonicCoefficients[s]);i.destroy(),e._shouldRegenerateShaders=!0}n_.prototype.update=function(e){let t=e.mode;if(!this.enabled||!this.shouldUpdate||!l(this._position)||t===ne.MORPHING){this._shouldRegenerateShaders=!1;return}let n=e.atmosphere.dynamicLighting;if((Bze(this,e)||n===t_.SUNLIGHT&&!Z.equalsEpsilon(e.time,this._lastTime,this.maximumSecondsDifference))&&(this.reset(),this._lastTime=Z.clone(e.time,this._lastTime)),this._radianceMapDirty&&(zze(this,e),this._radianceMapDirty=!1),this._convolutionsCommandsDirty&&(Hze(this,e),this._convolutionsCommandsDirty=!1),this._irradianceCommandDirty&&(Gze(this,e),this._irradianceCommandDirty=!1),this._irradianceTextureDirty){this._shouldRegenerateShaders=!1;return}if(this._sphericalHarmonicCoefficientsDirty){Wze(this,e),this._sphericalHarmonicCoefficientsDirty=!1;return}this._shouldRegenerateShaders=!1};n_.prototype.isDestroyed=function(){return!1};n_.prototype.destroy=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;t<e;++t)this._radianceMapComputeCommands[t]=void 0;e=this._convolutionComputeCommands.length;for(let t=0;t<e;++t)this._convolutionComputeCommands[t]=void 0;this._irradianceMapComputeCommand=void 0,e=this._radianceMapTextures.length;for(let t=0;t<e;++t)this._radianceMapTextures[t]=this._radianceMapTextures[t]&&this._radianceMapTextures[t].destroy();e=this._specularMapTextures.length;for(let t=0;t<e;++t)this._specularMapTextures[t]=this._specularMapTextures[t]&&this._specularMapTextures[t].destroy();return this._radianceCubeMap=this._radianceCubeMap&&this._radianceCubeMap.destroy(),this._irradianceMapTexture=this._irradianceMapTexture&&this._irradianceMapTexture.destroy(),ue(this)};n_.AVERAGE_EARTH_GROUND_COLOR=Object.freeze(H.fromCssColorString("#717145"));var i_=n_;var TR={HIGHLIGHT:0,REPLACE:1,MIX:2};TR.getColorBlend=function(e,t){if(e===TR.HIGHLIGHT)return 0;if(e===TR.REPLACE)return 1;if(e===TR.MIX)return P.clamp(t,P.EPSILON4,1)};var dc=Object.freeze(TR);var jze={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},hc=Object.freeze(jze);var qze={STEP:0,LINEAR:1,CUBICSPLINE:2},$d=Object.freeze(qze);var Rse={};function CR(e){this._count=e.count,this._properties=Ge(e.properties,!0)}CR.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,Rse)};CR.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,Rse,e)};CR.prototype.getProperty=function(e,t){let n=this._properties[t];if(l(n))return Ge(n[e],!0)};CR.prototype.setProperty=function(e,t,n){let i=this._properties[t];l(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=Ge(n,!0)};var o_=CR;function mc(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(mc.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(l(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 l(this._metadataTable)&&(e+=this._metadataTable.byteLength),l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});mc.prototype.hasProperty=function(e,t){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(t)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};mc.prototype.hasPropertyBySemantic=function(e,t){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};mc.prototype.propertyExists=function(e){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(e)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};mc.prototype.propertyExistsBySemantic=function(e){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var wW=[];mc.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,l(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(wW)),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,wW)),l(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(wW)),t};mc.prototype.getProperty=function(e,t){let n;if(l(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),l(n))||l(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),l(n))||l(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),l(n)))return n};mc.prototype.setProperty=function(e,t,n){l(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(l(this._jsonMetadataTable)||(this._jsonMetadataTable=new o_({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};mc.prototype.getPropertyBySemantic=function(e,t){if(l(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};mc.prototype.setPropertyBySemantic=function(e,t,n){return l(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};mc.prototype.getPropertyTypedArray=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};mc.prototype.getPropertyTypedArrayBySemantic=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};mc.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};mc.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};mc.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};var $c=mc;function AR(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,o=l(t.channels)?t.channels:[0],r=t,s=Bl.createModelTextureReader({textureInfo:r,channels:Kze(o),texture:i[r.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,u=n.hasValueTransform||l(a)||l(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=u,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(AR.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}}});AR.prototype.isGpuCompatible=function(){let e=this._classProperty,t=e.type,n=e.componentType;return e.isArray?e.isVariableLengthArray?(xt(`Property texture property ${e.id} is a variable-length array, which is not supported`),!1):e.arrayLength>4?(xt(`Property texture property ${e.id} is an array of length ${e.arrayLength}, but may have at most a length of 4`),!1):t!==At.SCALAR?(xt(`Property texture property ${e.id} is an array of type ${t}, but only SCALAR is supported`),!1):n!==zt.UINT8?(xt(`Property texture property ${e.id} is an array with component type ${n}, but only UINT8 is supported`),!1):!0:At.isVectorType(t)||t===At.SCALAR?n!==zt.UINT8?(xt(`Property texture property ${e.id} has component type ${n}, but only UINT8 is supported`),!1):!0:(xt(`Property texture property ${e.id} has an unsupported type`),!1)};var Yze=[void 0,"float","vec2","vec3","vec4"],Xze=[void 0,"int","ivec2","ivec3","ivec4"];AR.prototype.getGlslType=function(){let e=this._classProperty,t=At.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?Yze[t]:Xze[t]};AR.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function Kze(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var ER=AR;function DW(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(l(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new ER({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(DW.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}}});DW.prototype.getProperty=function(e){return this._properties[e]};var r_=DW;function Ose(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||l(i)||l(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(Ose.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 SR=Ose;function IW(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(l(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new SR({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(IW.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}}});IW.prototype.getProperty=function(e){return this._properties[e]};var gb=IW;function vR(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=l(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(vR.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(!l(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}}});vR.prototype.getPropertyTable=function(e){return this._propertyTables[e]};vR.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};vR.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var qs=vR;function Zze(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(l(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],u=new Nl({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new $c({id:s,name:a.name,count:a.count,metadataTable:u,extras:a.extras,extensions:a.extensions}))}let o=[];if(l(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];o.push(new r_({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let r=[];if(l(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];r.push(new gb({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new qs({schema:n,propertyTables:i,propertyTextures:o,propertyAttributes:r,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var wR=Zze;function $ze(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,o=[],r;if(l(t.featureTables))for(r=Object.keys(t.featureTables).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTables[a],u=n.classes[c.class],f=new Nl({count:c.count,properties:c.properties,class:u,bufferViews:e.bufferViews});o.push(new $c({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(l(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 r_({id:a,propertyTexture:Qze(c),class:n.classes[c.class],textures:e.textures}))}return new qs({schema:n,propertyTables:o,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function Qze(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:Jze(o.channels),extras:o.extras,extensions:o.extensions};t.properties[i]=yt(o.texture,r,!0)}return t}function Jze(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 DR=$ze;function _y(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,extension:n,extensionLegacy:i,gltfResource:o,baseResource:r,supportedImageFormats:s,frameState:a,cacheKey:c,asynchronous:u=!0}=e;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=u,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(_y.prototype=Object.create(Xi.prototype),_y.prototype.constructor=_y);Object.defineProperties(_y.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function e4e(e){try{let t=r4e(e),n=u4e(e),i=f4e(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=mt.LOADED,e)}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load structural metadata",t)}}_y.prototype.load=function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=e4e(this),this._promise)};function t4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.values,r=i.arrayOffsets,s=i.stringOffsets;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function n4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.bufferView,r=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function i4e(e){let t=e.propertyTables,n={};if(l(t))for(let i=0;i<t.length;i++){let o=t[i];t4e(o.properties,n)}return n}function o4e(e){let t=e.featureTables,n={};if(l(t)){for(let i in t)if(t.hasOwnProperty(i)){let r=t[i].properties;l(r)&&n4e(r,n)}}return n}async function r4e(e){let t;l(e._extension)?t=i4e(e._extension):t=o4e(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let o=Ci.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 s4e(e){let t={},n=e.propertyTextures;if(l(n))for(let i=0;i<n.length;i++){let r=n[i].properties;l(r)&&a4e(r,t)}return t}function a4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function c4e(e){let t={},n=e.featureTextures;if(l(n)){for(let i in n)if(n.hasOwnProperty(i)){let r=n[i].properties;l(r)&&l4e(r,t)}}return t}function l4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let o=e[n].texture;t[o.index]=o}}function u4e(e){let t;l(e._extension)?t=s4e(e._extension):t=c4e(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,o=e._baseResource,r=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let u in t)if(t.hasOwnProperty(u)){let f=Ci.getTextureLoader({gltf:n,textureInfo:t[u],gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(u),c.push(f.load())}return Promise.all(c)}async function f4e(e){let t=y(e._extension,e._extensionLegacy),n;if(l(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=Ci.getSchemaLoader({resource:i})}else n=Ci.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}_y.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let u=t[a].process(e);i=i&&u}if(!i)return!1;let o=this._schemaLoader.schema,r={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],u=this._bufferViewLoaders[a];if(!u.isDestroyed()){let f=new Uint8Array(u.typedArray);r[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],u=t[a];u.isDestroyed()||(s[c]=u.texture)}return l(this._extension)?this._structuralMetadata=wR({extension:this._extension,schema:o,bufferViews:r,textures:s}):this._structuralMetadata=DR({extension:this._extensionLegacy,schema:o,bufferViews:r,textures:s}),Mse(this),this._state=mt.READY,!0};function Mse(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)Ci.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function d4e(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)Ci.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}_y.prototype.unload=function(){Mse(this),d4e(this),l(this._schemaLoader)&&Ci.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var IR=_y;var FA={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};FA.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return FA.TRANSLATION;case"ROTATION":return FA.ROTATION;case"SCALE":return FA.SCALE;case"_FEATURE_ID":return FA.FEATURE_ID}};var ns=Object.freeze(FA);var h4e=65534,m4e=255;function $U(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 Fse(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],p4e(this)}Object.defineProperties($U.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function p4e(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],u=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,u),g=d||n.hasEdge(u,f),m=d||n.hasEdge(f,c),x=Lse(i,c,u,f,p,g,m);for(;l(x);){let b=s[x];if(!l(b)){b=r+o.length;let T=x;for(;T>=r;)T=o[T-r];o.push(T),s[x]=b}b>h4e&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):b>m4e&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=b,t[a]=b):x===u?(u=b,t[a+1]=b):(f=b,t[a+2]=b),x=Lse(i,c,u,f,p,g,m)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Lse(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,u=0,f=PW(e,t,a,c,u);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,m=PW(e,n,d,p,g);if(m===0)return n;let x=s?1:0,b=0,T=r?1:0,C=PW(e,i,x,b,T);if(C===0)return i;let A=f&m&C,E,v,D;if(A&1)E=0,v=1,D=2;else if(A&2)E=0,D=1,v=2;else if(A&4)v=0,E=1,D=2;else if(A&8)v=0,D=1,E=2;else if(A&16)D=0,E=1,v=2;else if(A&32)D=0,v=1,E=2;else{let N=RW(f),_=RW(m),S=RW(C);return N<_&&N<S?t:_<S?n:i}let O=t*3;e[O+E]=a,e[O+v]=c,e[O+D]=u;let R=n*3;e[R+E]=d,e[R+v]=p,e[R+D]=g;let M=i*3;e[M+E]=x,e[M+v]=b,e[M+D]=T}function PW(e,t,n,i,o){let r=t*3,s=e[r],a=e[r+1],c=e[r+2];return l(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 RW(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}$U.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,u=n+a*i;for(let f=0;f<i;f++)s[u+f]=s[c+f]}return s};$U.createTexture=function(e){let t=e.cache.modelOutliningCache;if(l(t)||(t=e.cache.modelOutliningCache={}),l(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,kt.maximumTextureSize),i=n,o=Nse(i),r=[];for(;i>1;)i>>=1,r.push(Nse(i));let s=new Pt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:Je.LUMINANCE,sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR_MIPMAP_LINEAR,magnificationFilter:di.LINEAR})});return t.outlineTexture=s,s};function Nse(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 Fse(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)}}Fse.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 yb=$U;function Bse(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function _4e(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function QU(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}QU.prototype.postProcess=function(e){this.needsOutlines&&(g4e(this),x4e(this,e))};function g4e(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,o=new yb({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=o.updatedTriangleIndices,n.indexDatatype=Ne.fromTypedArray(n.typedArray);let r=y4e(o.outlineCoordinates),s=new Bse(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 u=0;u<c;u++){let f=a[u].attribute;f.typedArray=o.updateAttribute(f.typedArray)}}function y4e(e){let t=new xn.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=on.VEC3,t.normalized=!1,t.count=e.length/3,t}function x4e(e,t){b4e(e.attributePlans,t),l(e.indicesPlan)&&T4e(e.indicesPlan,t)}function b4e(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=_t.createVertexBuffer({typedArray:s,context:t,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.buffer=a}o.loadTypedArray||(r.typedArray=void 0)}}function T4e(e,t){let n=e.indices;if(e.loadBuffer){let i=_t.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Fe.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}QU.AttributeLoadPlan=Bse;QU.IndicesLoadPlan=_4e;var xb=QU;function C4e(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var PR=C4e;function kse(e){this._position=e.position,this._adjustmentParams=e.adjustmentParams}Object.defineProperties(kse.prototype,{position:{get:function(){return this._position}},adjustmentParams:{get:function(){return this._adjustmentParams}}});var RR=kse;function Vse(e){this._position=e.position,this._adjustmentParams=e.adjustmentParams,this._covarianceMatrix=e.covarianceMatrix}Object.defineProperties(Vse.prototype,{position:{get:function(){return this._position}},adjustmentParams:{get:function(){return this._adjustmentParams}},covarianceMatrix:{get:function(){return this._covarianceMatrix}}});var OR=Vse;function Use(e){this._groupFlags=e.groupFlags,this._rotationThetas=e.rotationThetas,this._params=e.params}Object.defineProperties(Use.prototype,{groupFlags:{get:function(){return this._groupFlags}},rotationThetas:{get:function(){return this._rotationThetas}},params:{get:function(){return this._params}}});var MR=Use;var A4e={Direct:"Direct",Indirect:"Indirect"},gy=Object.freeze(A4e);function zse(e){this._storageType=e.storageType,this._anchorPointsIndirect=e.anchorPointsIndirect,this._anchorPointsDirect=e.anchorPointsDirect,this._intraTileCorrelationGroups=e.intraTileCorrelationGroups,this._covarianceDirect=e.covarianceDirect}Object.defineProperties(zse.prototype,{storageType:{get:function(){return this._storageType}},anchorPointsIndirect:{get:function(){return this._anchorPointsIndirect}},anchorPointsDirect:{get:function(){return this._anchorPointsDirect}},intraTileCorrelationGroups:{get:function(){return this._intraTileCorrelationGroups}},covarianceDirect:{get:function(){return this._covarianceDirect}}});var BA=zse;function Hse(e){this._A=e.A,this._alpha=e.alpha,this._beta=e.beta,this._T=e.T}Object.defineProperties(Hse.prototype,{A:{get:function(){return this._A}},alpha:{get:function(){return this._alpha}},beta:{get:function(){return this._beta}},T:{get:function(){return this._T}}});var LR=Hse;function kA(){}function Gse(e){return new $(e[0],e[1],e[3],e[1],e[2],e[4],e[3],e[4],e[5])}function E4e(e){let t=h.fromArray(e.position,0,new h),n=h.fromArray(e.adjustmentParams,0,new h);return new RR({position:t,adjustmentParams:n})}function S4e(e){let t=h.fromArray(e.position,0,new h),n=h.fromArray(e.adjustmentParams,0,new h),i=Gse(e.covarianceMatrix);return new OR({position:t,adjustmentParams:n,covarianceMatrix:i})}function v4e(e){let t=e.groupFlags,n=h.fromArray(e.rotationThetas,0,new h),i=[];for(let r of e.params){let s=new LR({A:r.A,alpha:r.alpha,beta:r.beta,T:r.T});i.push(s)}return new MR({groupFlags:t,rotationThetas:n,params:i})}kA.load=function(e){let t=e.storageType;if(t===gy.Direct)return kA.loadDirect(e);if(t===gy.Indirect)return kA.loadIndirect(e);throw new ce(`Invalid storage type in NGA_gpm_local - expected 'Direct' or 'Indirect', but found ${t}`)};kA.loadDirect=function(e){let t=[],n=e.anchorPointsDirect;for(let r of n){let s=E4e(r);t.push(s)}let i=Gse(e.covarianceDirectUpperTriangle);return new BA({storageType:gy.Direct,anchorPointsDirect:t,covarianceDirect:i})};kA.loadIndirect=function(e){let t=[],n=e.anchorPointsIndirect;for(let s of n){let a=S4e(s);t.push(a)}let i=e.intraTileCorrelationGroups,o=[];for(let s of i){let a=v4e(s);o.push(a)}return new BA({storageType:gy.Indirect,anchorPointsIndirect:t,intraTileCorrelationGroups:o})};var NR=kA;function Wse(e){this._traits=e.traits,this._noData=e.noData,this._offset=e.offset,this._scale=e.scale,this._index=e.index,this._texCoord=e.texCoord}Object.defineProperties(Wse.prototype,{traits:{get:function(){return this._traits}},noData:{get:function(){return this._noData}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},index:{get:function(){return this._index}},texCoord:{get:function(){return this._texCoord}}});var FR=Wse;function jse(e){this._min=e.min,this._max=e.max,this._source=e.source}Object.defineProperties(jse.prototype,{min:{get:function(){return this._min}},max:{get:function(){return this._max}},source:{get:function(){return this._source}}});var BR=jse;function qse(e){this._ppeTextures=e}Object.defineProperties(qse.prototype,{ppeTextures:{get:function(){return this._ppeTextures}}});var kR=qse;function Sr(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.extension,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=e.cacheKey,c=y(e.asynchronous,!0);this._gltfResource=i,this._baseResource=o,this._gltf=t,this._extension=n,this._supportedImageFormats=r,this._frameState=s,this._cacheKey=a,this._asynchronous=c,this._textureLoaders=[],this._textureIds=[],this._meshPrimitiveGpmLocal=void 0,this._structuralMetadata=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(Sr.prototype=Object.create(Xi.prototype),Sr.prototype.constructor=Sr);Object.defineProperties(Sr.prototype,{cacheKey:{get:function(){return this._cacheKey}},meshPrimitiveGpmLocal:{get:function(){return this._meshPrimitiveGpmLocal}},structuralMetadata:{get:function(){return this._structuralMetadata}}});Sr.prototype._loadResources=async function(){try{return await this._loadTextures(),this.isDestroyed()?void 0:(this._gltf=void 0,this._state=mt.LOADED,this)}catch(e){if(this.isDestroyed())return;throw this.unload(),this._state=mt.FAILED,this.getError("Failed to load GPM data",e)}};Sr.prototype.load=function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=this._loadResources(this),this._promise)};function w4e(e){let t={},n=e.ppeTextures;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];t[o.index]=o}return t}Sr.prototype._loadTextures=function(){let e;l(this._extension)&&(e=w4e(this._extension));let t=this._gltf,n=this._gltfResource,i=this._baseResource,o=this._supportedImageFormats,r=this._frameState,s=this._asynchronous,a=[];for(let c in e)if(e.hasOwnProperty(c)){let u=Ci.getTextureLoader({gltf:t,textureInfo:e[c],gltfResource:n,baseResource:i,supportedImageFormats:o,frameState:r,asynchronous:s});this._textureLoaders.push(u),this._textureIds.push(c),a.push(u.load())}return Promise.all(a)};Sr.ppeTexturesMetadataSchemaCache=new Map;Sr._createPpeTextureClassJson=function(e,t){let n=e.traits,i=n.source;return{name:`PPE texture class ${t}`,properties:{[i]:{name:"PPE",type:"SCALAR",componentType:"UINT8",normalized:!0,min:n.min,max:n.max}}}};Sr._obtainPpeTexturesMetadataSchema=function(e){let n=Sr._collectPpeTexturePropertyIdentifiers(e).toString(),i=Sr.ppeTexturesMetadataSchemaCache.get(n);if(l(i))return i;let r={id:`PPE_TEXTURE_SCHEMA_${Sr.ppeTexturesMetadataSchemaCache.size}`,classes:{}},s=e.ppeTextures;for(let a=0;a<s.length;a++){let c=s[a],u=`ppeTexture_${a}`,f=Sr._createPpeTextureClassJson(c,a);r.classes[u]=f}return i=Au.fromJson(r),Sr.ppeTexturesMetadataSchemaCache.set(n,i),i};Sr._collectPpeTexturePropertyIdentifiers=function(e){let t=[],n=e.ppeTextures;for(let i=0;i<n.length;i++){let o=n[i],r=Sr._createPpeTextureClassJson(o,i),s=JSON.stringify(r);t.push(s)}return t};Sr._convertToStructuralMetadata=function(e,t){let n=[],i=Sr._obtainPpeTexturesMetadataSchema(e),o=e.ppeTextures;for(let s=0;s<o.length;s++){let a=o[s],c=`ppeTexture_${s}`,f=a.traits.source,d=i.classes[c],p=(a.scale??1)*255,g={class:c,properties:{[f]:{index:a.index,texCoord:a.texCoord,offset:a.offset,scale:p}}};n.push(new r_({id:s,name:a.name,propertyTexture:g,class:d,textures:t}))}return new qs({schema:i,propertyTables:[],propertyTextures:n,propertyAttributes:[]})};Sr.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let u=0;u<n;++u){let d=t[u].process(e);i=i&&d}if(!i)return!1;let o={};for(let u=0;u<this._textureIds.length;++u){let f=this._textureIds[u],d=t[u];d.isDestroyed()||(o[f]=d.texture)}let r=[],s=this._extension;if(l(s.ppeTextures)){let u=s.ppeTextures;for(let f of u){let d=f.traits,p=new BR({min:d.min,max:d.max,source:d.source}),g=new FR({traits:p,noData:f.noData,offset:f.offset,scale:f.scale,index:f.index,texCoord:f.texCoord});r.push(g)}}let a=new kR(r);this._meshPrimitiveGpmLocal=a;let c=Sr._convertToStructuralMetadata(a,o);return this._structuralMetadata=c,this._state=mt.READY,!0};Sr.prototype._unloadTextures=function(){let e=this._textureLoaders,t=e.length;for(let n=0;n<t;++n)Ci.unload(e[n]);this._textureLoaders.length=0,this._textureIds.length=0};Sr.prototype.unload=function(){this._unloadTextures(),this._gltf=void 0,this._extension=void 0,this._structuralMetadata=void 0};var VR=Sr;var{Attribute:D4e,Indices:I4e,FeatureIdAttribute:Yse,FeatureIdTexture:Xse,FeatureIdImplicitRange:Kse,MorphTarget:P4e,Primitive:R4e,Instances:O4e,Skin:M4e,Node:L4e,AnimatedPropertyType:N4e,AnimationSampler:F4e,AnimationTarget:B4e,AnimationChannel:k4e,Animation:V4e,ArticulationStage:U4e,Articulation:z4e,Asset:H4e,Scene:G4e,Components:W4e,MetallicRoughness:j4e,SpecularGlossiness:q4e,Specular:Y4e,Anisotropy:OW,Clearcoat:MW,Material:X4e}=xn,Lo={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function Qd(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,typedArray:n,releaseGltfJson:i=!1,asynchronous:o=!0,incrementallyLoadTextures:r=!0,upAxis:s=Oo.Y,forwardAxis:a=Oo.Z,loadAttributesAsTypedArray:c=!1,loadAttributesFor2D:u=!1,enablePick:f=!1,loadIndicesForWireframe:d=!1,loadPrimitiveOutline:p=!0,loadForClassification:g=!1,renameBatchIdSemantic:m=!1}=e,{baseResource:x=t.clone()}=e;this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=x,this._typedArray=n,this._releaseGltfJson=i,this._asynchronous=o,this._incrementallyLoadTextures=r,this._upAxis=s,this._forwardAxis=a,this._loadAttributesAsTypedArray=c,this._loadAttributesFor2D=u,this._enablePick=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=Lo.NOT_LOADED,this._textureState=Lo.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._meshPrimitiveGpmLoader=void 0,this._loadResourcesPromise=void 0,this._resourcesLoaded=!1,this._texturesLoaded=!1,this._supportedImageFormats=void 0,this._postProcessBuffers=[],this._components=void 0}l(Object.create)&&(Qd.prototype=Object.create(Xi.prototype),Qd.prototype.constructor=Qd);Object.defineProperties(Qd.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return l(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function K4e(e){e._state=Lo.LOADING,e._textureState=Lo.LOADING;try{let t=Ci.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=Lo.LOADED,e._textureState=Lo.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=Lo.FAILED,e._textureState=Lo.FAILED,JU(e,t)}}async function Z4e(e,t){Ht.supportsWebP.initialized||await Ht.supportsWebP.initialize(),e._supportedImageFormats=new PR({webp:Ht.supportsWebP(),basis:t.context.supportsBasis});let n=JHe(e,t);return e._state=Lo.PROCESSING,e._textureState=Lo.PROCESSING,l(e._gltfJsonLoader)&&e._releaseGltfJson&&(Ci.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),n}Qd.prototype.load=async function(){return l(this._promise)?this._promise:(this._promise=K4e(this),this._promise)};function JU(e,t){throw e.unload(),e.getError("Failed to load glTF",t)}function $4e(e,t){let n=!0,i=e._geometryLoaders;for(let s=0;s<i.length;++s){let a=i[s].process(t);a&&l(e._geometryCallbacks[s])&&(e._geometryCallbacks[s](),e._geometryCallbacks[s]=void 0),n=n&&a}let o=e._structuralMetadataLoader;if(l(o)){let s=o.process(t);s&&(e._components.structuralMetadata=o.structuralMetadata),n=n&&s}let r=e._meshPrimitiveGpmLoader;if(l(r)){let s=r.process(t);s&&(l(e._components.structuralMetadata)&&xt("structural-metadata-gpm","The model defines both the 'EXT_structural_metadata' extension and the 'NGA_gpm_local' extension. The data from the 'EXT_structural_metadata' extension will be replaced with the data from the 'NGA_gpm_local' extension, and will no longer be available for styling and picking."),e._components.structuralMetadata=r.structuralMetadata),n=n&&s}n&&(e._state=Lo.POST_PROCESSING)}function Q4e(e,t){let n=e._primitiveLoadPlans;for(let i=0;i<n.length;i++){let o=n[i];o.postProcess(t),o.needsOutlines&&J4e(e,o)}}function J4e(e,t){let n=e._postProcessBuffers,i=t.primitive,o=i.outlineCoordinates;l(o)&&n.push(o.buffer);let r=i.attributes;for(let a=0;a<r.length;a++){let c=r[a];l(c.buffer)&&n.push(c.buffer)}let s=i.indices;l(s)&&l(s.buffer)&&n.push(s.buffer)}Qd.prototype._process=function(e){return this._state===Lo.READY?!0:(this._state===Lo.PROCESSING&&$4e(this,e),this._resourcesLoaded&&this._state===Lo.POST_PROCESSING&&(Q4e(this,e.context),this._state=Lo.PROCESSED),this._resourcesLoaded&&this._state===Lo.PROCESSED?(oae(this),this._typedArray=void 0,this._state=Lo.READY,!0):!1)};Qd.prototype._processTextures=function(e){if(this._textureState===Lo.READY)return!0;if(this._textureState!==Lo.PROCESSING)return!1;let t=!0,n=this._textureLoaders;for(let i=0;i<n.length;++i){let o=n[i].process(e);o&&l(this._textureCallbacks[i])&&(this._textureCallbacks[i](),this._textureCallbacks[i]=void 0),t=t&&o}return t?(this._textureState=Lo.READY,this._texturesLoaded=!0,!0):!1};Qd.prototype.process=function(e){if(this._state===Lo.LOADED&&!l(this._loadResourcesPromise)&&(this._loadResourcesPromise=Z4e(this,e).then(()=>{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),l(this._processError)){this._state=Lo.FAILED;let o=this._processError;this._processError=void 0,JU(this,o)}let t=this._textureErrors.pop();if(l(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===Lo.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=Lo.FAILED,JU(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=Lo.FAILED,JU(this,o)}return this._incrementallyLoadTextures?n:n&&i};function eHe(e,t,n,i,o,r,s){let a=e.gltfJson,u=a.accessors[t].bufferView;return Ci.getVertexBufferLoader({gltf:a,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,bufferViewId:u,draco:i,attributeSemantic:n,accessorId:t,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function tHe(e,t,n,i,o,r){return Ci.getIndexBufferLoader({gltf:e.gltfJson,accessorId:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:r,draco:n,asynchronous:e._asynchronous,loadBuffer:i,loadTypedArray:o})}function nHe(e,t){let n=Ci.getBufferViewLoader({gltf:e.gltfJson,bufferViewId:t,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(n),n}function Zse(e,t,n){let i=t.byteOffset,o=Fl(e,t),r=t.count,s=Cu(t.type),a=t.componentType,c=X.getSizeInBytes(a),u=c*s,f=r*s;if(o===u)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=Qp(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 iHe(e,t){let n=e.type;if(n===on.SCALAR)return t.fill(0);let i=on.getMathType(n);return t.fill(i.clone(i.ZERO))}function oHe(e,t,n,i){let o=e.type,r=e.count;if(o===on.SCALAR)for(let s=0;s<r;s++)n[s]=t[s];else if(o===on.VEC4&&i)for(let s=0;s<r;s++)n[s]=Oe.unpack(t,s*4);else{let s=on.getMathType(o),a=on.getNumberOfComponents(o);for(let c=0;c<r;c++)n[c]=s.unpack(t,c*a)}return n}async function rHe(e,t,n,i,o){let{gltfJson:r}=e;if(await t.load(),e.isDestroyed())return;let s=Zse(r,n,t.typedArray);i=y(i,!1),oHe(n,s,o,i)}function ez(e,t,n){let i=new Array(t.count),o=t.bufferView;if(l(o)){let r=nHe(e,o),s=rHe(e,r,t,n,i);return e._loaderPromises.push(s),i}return iHe(t,i)}function Eu(e,t){if(l(t))return e===Number?t[0]:e.unpack(t)}function sHe(e){return e===Number?0:new e}function aHe(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 cHe={VEC2:new z(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new oe(-1,-1,-1,-1)};function lHe(e,t){let n=aHe(e.componentDatatype),i=cHe[e.type],o=e.min;l(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;l(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function uHe(e,t,n){let i=e.decodeMatrix,o=Eu(n,e.decodedMin),r=Eu(n,e.decodedMax);l(o)&&l(r)&&(t.min=o,t.max=r);let s=new xn.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 z(i[6],i[7]),s.quantizedVolumeStepSize=new z(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 fHe(e,t,n,i,o){let r=e.accessors[t],s=on.getMathType(r.type),a=y(r.normalized,!1),c=new D4e;c.name=n,c.semantic=i,c.setIndex=o,c.constant=sHe(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=Eu(s,r.min),c.max=Eu(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=Fl(e,r),oi(r,"WEB3D_quantized_attributes")&&uHe(r.extensions.WEB3D_quantized_attributes,c,s);let u=c.semantic===Tt.POSITION||c.semantic===Tt.NORMAL||c.semantic===Tt.TANGENT||c.semantic===Tt.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&u&&lHe(c,s),c}function $se(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var dHe={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function LW(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=dHe;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function hHe(e){let t=e===Tt.POSITION,n=e===Tt.FEATURE_ID,i=e===Tt.TEXCOORD;return t||n||i}function mHe(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=l(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(o,t.typedArray.buffer)}}function pHe(e,t,n,i,o,r){if(o&&(n.buffer=i.buffer),r){let s=i.typedArray;n.typedArray=Zse(e,t,s),o||(n.byteOffset=0,n.byteStride=void 0)}}function Qse(e,t,n,i,o,r,s){let a=e.gltfJson,c=a.accessors[t],u=c.bufferView,f=n.gltfSemantic,d=n.renamedSemantic,p=n.modelSemantic,g=l(p)?$se(d):void 0,x=fHe(a,t,f,p,g);if(!l(i)&&!l(u))return x;let b=eHe(e,t,f,i,o,r,s),T=e._geometryLoaders.length;e._geometryLoaders.push(b);let C=b.load();return e._loaderPromises.push(C),e._geometryCallbacks[T]=()=>{l(i)&&l(i.attributes)&&l(i.attributes[f])?mHe(x,b,o,r):pHe(a,c,x,b,o,r)},x}function Jse(e,t,n,i,o,r,s){let a=n.modelSemantic,c=a===Tt.POSITION,u=a===Tt.FEATURE_ID,f=c&&!o&&e._loadAttributesFor2D&&!s.scene3DOnly,d=c&&e._enablePick&&!s.context.webgl2,p=e._loadForClassification&&u,g=e._loadAttributesAsTypedArray,m=!g,x=g||f||d||p,C=Qse(e,t,n,i,r?!1:m,r?!0:x,s),A=new xb.AttributeLoadPlan(C);return A.loadBuffer=m,A.loadTypedArray=x,A}function _He(e,t,n,i,o){let r=e.gltfJson.accessors,s=l(n.ROTATION),a=l(n.TRANSLATION)&&l(r[n.TRANSLATION].min)&&l(r[n.TRANSLATION].max),c=LW(e,ns,i),u=c.modelSemantic,f=u===ns.TRANSLATION||u===ns.ROTATION||u===ns.SCALE,d=u===ns.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!o.context.instancedArrays,g=e._enablePick&&!o.context.webgl2,m=!p,x=e._loadAttributesFor2D&&!o.scene3DOnly;return Qse(e,t,c,void 0,m,p||d&&(!a||x||g),o)}function gHe(e,t,n,i,o,r){let s=e.gltfJson.accessors[t],a=s.bufferView;if(!l(n)&&!l(a))return;let c=new I4e;c.count=s.count;let u=e._loadAttributesAsTypedArray,f=(e._loadIndicesForWireframe||e._enablePick)&&!r.context.webgl2,d=e._loadForClassification&&i,g=!u,m=u||f||d,T=tHe(e,t,n,o?!1:g,o?!0:m,r),C=e._geometryLoaders.length;e._geometryLoaders.push(T);let A=T.load();e._loaderPromises.push(A),e._geometryCallbacks[C]=()=>{c.indexDatatype=T.indexDatatype,c.buffer=T.buffer,c.typedArray=T.typedArray};let E=new xb.IndicesLoadPlan(c);return E.loadBuffer=g,E.loadTypedArray=m,E}function Qc(e,t,n,i){let o=e.gltfJson,r=Bl.getImageIdFromTexture({gltf:o,textureId:t.index,supportedImageFormats:e._supportedImageFormats});if(!l(r))return;let s=Ci.getTextureLoader({gltf:o,textureInfo:t,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:n,asynchronous:e._asynchronous}),a=Bl.createModelTextureReader({textureInfo:t}),c=e._textureLoaders.length;e._textureLoaders.push(s);let u=s.load().catch(f=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw f;e._textureState=Lo.FAILED,e._textureErrors.push(f)}});return e._texturesPromises.push(u),e._textureCallbacks[c]=()=>{a.texture=s.texture,l(i)&&(a.texture.sampler=i)},a}function yHe(e,t,n){let{diffuseTexture:i,specularGlossinessTexture:o,diffuseFactor:r,specularFactor:s,glossinessFactor:a}=t,c=new q4e;return l(i)&&(c.diffuseTexture=Qc(e,i,n)),l(o)&&(c.specularGlossinessTexture=Qc(e,o,n)),c.diffuseFactor=Eu(oe,r),c.specularFactor=Eu(h,s),c.glossinessFactor=a,c}function xHe(e,t,n){let{baseColorTexture:i,metallicRoughnessTexture:o,baseColorFactor:r,metallicFactor:s,roughnessFactor:a}=t,c=new j4e;return l(i)&&(c.baseColorTexture=Qc(e,i,n)),l(o)&&(c.metallicRoughnessTexture=Qc(e,o,n)),c.baseColorFactor=Eu(oe,r),c.metallicFactor=s,c.roughnessFactor=a,c}function bHe(e,t,n){let{specularFactor:i,specularTexture:o,specularColorFactor:r,specularColorTexture:s}=t,a=new Y4e;return l(o)&&(a.specularTexture=Qc(e,o,n)),l(s)&&(a.specularColorTexture=Qc(e,s,n)),a.specularFactor=i,a.specularColorFactor=Eu(h,r),a}function THe(e,t,n){let{anisotropyStrength:i=OW.DEFAULT_ANISOTROPY_STRENGTH,anisotropyRotation:o=OW.DEFAULT_ANISOTROPY_ROTATION,anisotropyTexture:r}=t,s=new OW;return l(r)&&(s.anisotropyTexture=Qc(e,r,n)),s.anisotropyStrength=i,s.anisotropyRotation=o,s}function CHe(e,t,n){let{clearcoatFactor:i=MW.DEFAULT_CLEARCOAT_FACTOR,clearcoatTexture:o,clearcoatRoughnessFactor:r=MW.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,clearcoatRoughnessTexture:s,clearcoatNormalTexture:a}=t,c=new MW;return l(o)&&(c.clearcoatTexture=Qc(e,o,n)),l(s)&&(c.clearcoatRoughnessTexture=Qc(e,s,n)),l(a)&&(c.clearcoatNormalTexture=Qc(e,a,n)),c.clearcoatFactor=i,c.clearcoatRoughnessFactor=r,c}function AHe(e,t,n){let i=new X4e,o=y(t.extensions,y.EMPTY_OBJECT),r=o.KHR_materials_pbrSpecularGlossiness,s=o.KHR_materials_specular,a=o.KHR_materials_anisotropy,c=o.KHR_materials_clearcoat,u=t.pbrMetallicRoughness;return i.unlit=l(o.KHR_materials_unlit),l(r)?i.specularGlossiness=yHe(e,r,n):(l(u)&&(i.metallicRoughness=xHe(e,u,n)),l(s)&&!i.unlit&&(i.specular=bHe(e,s,n)),l(a)&&!i.unlit&&(i.anisotropy=THe(e,a,n)),l(c)&&!i.unlit&&(i.clearcoat=CHe(e,c,n))),l(t.emissiveTexture)&&(i.emissiveTexture=Qc(e,t.emissiveTexture,n)),l(t.normalTexture)&&!e._loadForClassification&&(i.normalTexture=Qc(e,t.normalTexture,n)),l(t.occlusionTexture)&&(i.occlusionTexture=Qc(e,t.occlusionTexture,n)),i.emissiveFactor=Eu(h,t.emissiveFactor),i.alphaMode=t.alphaMode,i.alphaCutoff=t.alphaCutoff,i.doubleSided=t.doubleSided,i}function eae(e,t){let n=new Yse;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 tae(e,t,n,i){let o=new Yse,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=$se(r.attribute),o.positionalLabel=i,o}function nae(e,t){let n=new Kse;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 iae(e,t,n,i){let o=new Kse,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 EHe(e,t,n,i){let o=new Xse;o.featureCount=t.featureCount,o.nullFeatureId=t.nullFeatureId,o.propertyTableId=t.propertyTable,o.label=t.label,o.positionalLabel=i;let r=t.texture;o.textureReader=Qc(e,r,n,$t.NEAREST);let a=(l(r.channels)?r.channels:[0]).map(function(c){return"rgba".charAt(c)}).join("");return o.textureReader.channels=a,o}function SHe(e,t,n,i,o,r){let s=new Xse,a=t.featureIds,c=a.texture;return s.featureCount=o,s.propertyTableId=n,s.textureReader=Qc(e,c,i,$t.NEAREST),s.textureReader.channels=a.channels,s.positionalLabel=r,s}function vHe(e,t,n,i,o){let r=new P4e,s=void 0,a=!1;for(let c in t){if(!t.hasOwnProperty(c))continue;let u=t[c],f=LW(e,Tt,c),d=Jse(e,u,f,s,a,n,o);r.attributes.push(d.attribute),i.attributePlans.push(d)}return r}function wHe(e,t,n,i){let o=new R4e,r=new xb(o);e._primitiveLoadPlans.push(r);let s=t.material;l(s)&&(o.material=AHe(e,e.gltfJson.materials[s],i));let a=y(t.extensions,y.EMPTY_OBJECT),c=!1,u=a.CESIUM_primitive_outline;e._loadPrimitiveOutline&&l(u)&&(c=!0,r.needsOutlines=!0,r.outlineIndices=DHe(e,u,r));let f=e._loadForClassification,d=a.KHR_draco_mesh_compression,p=!1,g=t.attributes;if(l(g))for(let v in g){if(!g.hasOwnProperty(v))continue;let D=g[v],O=LW(e,Tt,v),R=O.modelSemantic;if(f&&!hHe(R))continue;R===Tt.FEATURE_ID&&(p=!0);let M=Jse(e,D,O,d,n,c,i);r.attributePlans.push(M),o.attributes.push(M.attribute)}let m=t.targets;if(l(m)&&!f)for(let v=0;v<m.length;++v)o.morphTargets.push(vHe(e,m[v],c,r,i));let x=t.indices;if(l(x)){let v=gHe(e,x,d,p,c,i);l(v)&&(r.indicesPlan=v,o.indices=v.indices)}let b=a.EXT_structural_metadata,T=a.EXT_mesh_features,C=a.EXT_feature_metadata,A=l(C);l(T)?IHe(e,o,T,i):A&&PHe(e,o,C,i),l(b)?RHe(o,b):A&&OHe(e,o,C);let E=t.mode;if(f&&E!==Me.TRIANGLES)throw new ce("Only triangle meshes can be used for classification.");return o.primitiveType=E,o}function DHe(e,t){let n=t.indices,i=e.gltfJson.accessors[n];return ez(e,i,!1)}function IHe(e,t,n,i){let o;l(n)&&l(n.featureIds)?o=n.featureIds:o=[];for(let r=0;r<o.length;r++){let s=o[r],a=`featureId_${r}`,c;l(s.texture)?c=EHe(e,s,i,a):l(s.attribute)?c=eae(s,a):c=nae(s,a),t.featureIds.push(c)}}function PHe(e,t,n,i){let{featureTables:o}=e.gltfJson.extensions.EXT_feature_metadata,r=0,s=n.featureIdAttributes;if(l(s))for(let c=0;c<s.length;++c){let u=s[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m;l(u.featureIds.attribute)?m=tae(u,d,p,g):m=iae(u,d,p,g),t.featureIds.push(m)}let a=n.featureIdTextures;if(l(a))for(let c=0;c<a.length;++c){let u=a[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m=SHe(e,u,d,i,p,g);t.featureIds.push(m)}}function RHe(e,t){l(t)&&(l(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),l(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function OHe(e,t,n){l(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function MHe(e,t,n){let i=t.EXT_mesh_gpu_instancing,o=new O4e,r=i.attributes;if(l(r))for(let u in r){if(!r.hasOwnProperty(u))continue;let f=r[u];o.attributes.push(_He(e,f,r,u,n))}let s=y(i.extensions,y.EMPTY_OBJECT),a=t.EXT_instance_features,c=s.EXT_feature_metadata;return l(a)?LHe(o,a):l(c)&&NHe(e.gltfJson,o,c,e._sortedPropertyTableIds),o}function LHe(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let o=n[i],r=`instanceFeatureId_${i}`,s;l(o.attribute)?s=eae(o,r):s=nae(o,r),e.featureIds.push(s)}}function NHe(e,t,n,i){let o=e.extensions.EXT_feature_metadata.featureTables,r=n.featureIdAttributes;if(l(r))for(let s=0;s<r.length;++s){let a=r[s],c=a.featureTable,u=i.indexOf(c),f=o[c].count,d=`instanceFeatureId_${s}`,p;l(a.featureIds.attribute)?p=tae(a,u,f,d):p=iae(a,u,f,d),t.featureIds.push(p)}}function FHe(e,t,n){let i=new L4e;i.name=t.name,i.matrix=Eu(F,t.matrix),i.translation=Eu(h,t.translation),i.rotation=Eu(Oe,t.rotation),i.scale=Eu(h,t.scale);let o=y(t.extensions,y.EMPTY_OBJECT),r=o.EXT_mesh_gpu_instancing,s=o.AGI_articulations;if(l(r)){if(e._loadForClassification)throw new ce("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");i.instances=MHe(e,o,n)}l(s)&&(i.articulationName=s.articulationName);let a=t.mesh;if(l(a)){let c=e.gltfJson.meshes[a],u=c.primitives;for(let p=0;p<u.length;++p)i.primitives.push(wHe(e,u[p],l(i.instances),n));let f=y(t.weights,c.weights),d=i.primitives[0].morphTargets;i.morphWeights=l(f)?f.slice():new Array(d.length).fill(0)}return i}function BHe(e,t){let n=e.gltfJson.nodes;if(!l(n))return[];let i=n.map(function(o,r){let s=FHe(e,o,t);return s.index=r,s});for(let o=0;o<i.length;++o){let r=n[o].children;if(l(r))for(let s=0;s<r.length;++s)i[o].children.push(i[r[s]])}return i}function kHe(e,t,n){let i=new M4e,o=t.joints;i.joints=o.map(s=>n[s]);let r=t.inverseBindMatrices;if(l(r)){let s=e.gltfJson.accessors[r];i.inverseBindMatrices=ez(e,s)}else i.inverseBindMatrices=new Array(o.length).fill(F.IDENTITY);return i}function VHe(e,t){let n=e.gltfJson.skins;if(e._loadForClassification||!l(n))return[];let i=n.map(function(r,s){let a=kHe(e,r,t);return a.index=s,a}),o=e.gltfJson.nodes;for(let r=0;r<t.length;++r){let s=o[r].skin;l(s)&&(t[r].skin=i[s])}return i}async function UHe(e,t,n,i){let o=new IR({gltf:e.gltfJson,extension:t,extensionLegacy:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:i,asynchronous:e._asynchronous});return e._structuralMetadataLoader=o,o.load()}async function zHe(e,t,n,i){let o=new VR({gltf:t,extension:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:i,asynchronous:e._asynchronous});return e._meshPrimitiveGpmLoader=o,o.load()}function HHe(e,t){let n=new F4e,i=e.gltfJson.accessors,o=i[t.input];n.input=ez(e,o);let r=t.interpolation;n.interpolation=y($d[r],$d.LINEAR);let s=i[t.output];return n.output=ez(e,s,!0),n}function GHe(e,t){let n=new B4e,i=e.node;if(!l(i))return;n.node=t[i];let o=e.path.toUpperCase();return n.path=N4e[o],n}function WHe(e,t,n){let i=new k4e,o=e.sampler;return i.sampler=t[o],i.target=GHe(e.target,n),i}function jHe(e,t,n){let i=new V4e;i.name=t.name;let o=t.samplers.map(function(s,a){let c=HHe(e,s);return c.index=a,c}),r=t.channels.map(function(s){return WHe(s,o,n)});return i.samplers=o,i.channels=r,i}function qHe(e,t){let n=e.gltfJson.animations;return e._loadForClassification||!l(n)?[]:n.map(function(o,r){let s=jHe(e,o,t);return s.index=r,s})}function YHe(e){let t=new U4e;t.name=e.name;let n=e.type.toUpperCase();return t.type=hc[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function XHe(e){let t=new z4e;return t.name=e.name,t.stages=e.stages.map(YHe),t}function KHe(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations?.articulations;return l(n)?n.map(XHe):[]}function ZHe(e){let t;return l(e.scenes)&&l(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=l(t)?t:[],t}function $He(e,t){let n=new G4e,i=ZHe(e);return n.nodes=i.map(function(o){return t[o]}),n}var QHe=new h;function JHe(e,t){let n=e.gltfJson,i=y(n.extensions,y.EMPTY_OBJECT),o=i.EXT_structural_metadata,r=i.EXT_feature_metadata,s=i.CESIUM_RTC;if(l(r)){let C=r.featureTables,A=r.featureTextures,E=l(C)?C:[],v=l(A)?A:[];e._sortedPropertyTableIds=Object.keys(E).sort(),e._sortedFeatureTextureIds=Object.keys(v).sort()}let a=BHe(e,t),c=VHe(e,a),u=qHe(e,a),f=KHe(n),d=$He(n,a),p=new W4e,g=new H4e,m=n.asset.copyright;if(l(m)){let C=m.split(";").map(function(A){return new vt(A.trim())});g.credits=C}if(p.asset=g,p.scene=d,p.nodes=a,p.skins=c,p.animations=u,p.articulations=f,p.upAxis=e._upAxis,p.forwardAxis=e._forwardAxis,l(s)){let C=h.fromArray(s.center,0,QHe);p.transform=F.fromTranslation(C,p.transform)}if(e._components=p,l(o)||l(r)){let C=UHe(e,o,r,t);e._loaderPromises.push(C)}let x=i.NGA_gpm_local;if(l(x)){let C=NR.load(x);e._components.extensions.NGA_gpm_local=C}let b=n.meshes;if(l(b))for(let C of b){let A=C.primitives;if(l(A))for(let E of A){let v=E.extensions;if(l(v)){let D=v.NGA_gpm_local;if(l(D)){let O=zHe(e,n,D,t);e._loaderPromises.push(O)}}}}let T=[];return T.push.apply(T,e._loaderPromises),e._incrementallyLoadTextures||T.push.apply(T,e._texturesPromises),Promise.all(T)}function e8e(e){let t=e._textureLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ci.unload(t[n]);e._textureLoaders.length=0}function oae(e){let t=e._bufferViewLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ci.unload(t[n]);e._bufferViewLoaders.length=0}function t8e(e){let t=e._geometryLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ci.unload(t[n]);e._geometryLoaders.length=0}function n8e(e){let t=e._postProcessBuffers;for(let n=0;n<t.length;n++){let i=t[n];i.isDestroyed()||i.destroy()}t.length=0}function i8e(e){l(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}function o8e(e){l(e._meshPrimitiveGpmLoader)&&!e._meshPrimitiveGpmLoader.isDestroyed()&&(e._meshPrimitiveGpmLoader.destroy(),e._meshPrimitiveGpmLoader=void 0)}Qd.prototype.isUnloaded=function(){return this._state===Lo.UNLOADED};Qd.prototype.unload=function(){l(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Ci.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,e8e(this),oae(this),t8e(this),n8e(this),i8e(this),o8e(this),this._components=void 0,this._typedArray=void 0,this._state=Lo.UNLOADED};var s_=Qd;var UR=`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 VA(){this._framebuffer=new hi({colorAttachmentsLength:2,depth:!0,supportsDepthTexture:!0}),this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}Object.defineProperties(VA.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 r8e(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var NW=new z;function s8e(e,t){let n=new Ue({defines:["LOG_DEPTH_WRITE"],sources:[UR]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return NW.x=e._radius,NW.y=e._strength,NW}},o=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Vt.setCesium3DTileBit(),stencilMask:Vt.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:o,pass:ve.CESIUM_3D_TILE,owner:e}),e._clearCommand=new ei({framebuffer:e.framebuffer,color:new H(0,0,0,0),depth:1,renderState:Ve.fromCache(),pass:ve.CESIUM_3D_TILE,owner:e})}function a8e(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),s8e(e,t)}function rae(e){return e.drawBuffers&&e.fragmentDepth}VA.isSupported=rae;function c8e(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!l(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=Ue.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}VA.prototype.update=function(e,t,n,i){if(!rae(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,a8e(this,e.context);let o,r=e.commandList,s=r.length;for(o=t;o<s;++o){let u=r[o];if(u.primitiveType!==Me.POINTS||u.pass===ve.TRANSLUCENT)continue;let f,d,p=u.derivedCommands.pointCloudProcessor;l(p)&&(f=p.command,d=p.originalShaderProgram),(!l(f)||u.dirty||d!==u.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=Ze.shallowClone(u,f),f.framebuffer=this.framebuffer,f.shaderProgram=c8e(e.context,u.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,l(p)||(p={command:f,originalShaderProgram:u.shaderProgram},u.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=u.shaderProgram),r[o]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,r.push(c),r.push(a)};VA.prototype.isDestroyed=function(){return!1};VA.prototype.destroy=function(){return r8e(this),ue(this)};var a_=VA;function sae(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)}sae.isSupported=function(e){return a_.isSupported(e.context)};var gm=sae;var Na={},l8e=new oe(0,0,0,1),pc=new oe,u8e=new je,FW=new z,BW=new z;Na.worldToWindowCoordinates=function(e,t,n){return Na.worldWithEyeOffsetToWindowCoordinates(e,t,h.ZERO,n)};var aae=new oe,cae=new h;function zR(e,t,n,i){let o=n.viewMatrix,r=F.multiplyByVector(o,oe.fromElements(e.x,e.y,e.z,1,aae),aae),s=h.multiplyComponents(t,h.normalize(r,cae),cae);return r.x+=t.x+s.x,r.y+=t.y+s.y,r.z+=s.z,F.multiplyByVector(n.frustum.projectionMatrix,r,i)}var f8e=new fe(Math.PI,P.PI_OVER_TWO),d8e=new h,h8e=new h;Na.worldWithEyeOffsetToWindowCoordinates=function(e,t,n,i){let o=e.frameState,r=Na.computeActualEllipsoidPosition(o,t,l8e);if(!l(r))return;let s=e.canvas,a=u8e;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,u=!1;if(o.mode===ne.SCENE2D){let f=e.mapProjection,d=f8e,p=f.project(d,d8e),g=h.clone(c.position,h8e),m=c.frustum.clone(),x=F.computeViewportTransformation(a,0,1,new F),b=c.frustum.projectionMatrix,T=c.positionWC.y,C=h.fromElements(P.sign(T)*p.x-T,0,-c.positionWC.x),A=Mt.pointToGLWindowCoordinates(b,x,C);if(T===0||A.x<=0||A.x>=s.clientWidth)u=!0;else{if(A.x>s.clientWidth*.5){a.width=A.x,c.frustum.right=p.x-T,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,FW),a.x+=A.x,c.position.x=-c.position.x;let E=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-E,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,BW)}else{a.x+=A.x,a.width-=A.x,c.frustum.left=-p.x-T,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,FW),a.x=a.x-a.width,c.position.x=-c.position.x;let E=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-E,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,BW)}h.clone(g,c.position),c.frustum=m.clone(),i=z.clone(FW,i),(i.x<0||i.x>s.clientWidth)&&(i.x=BW.x)}}if(o.mode!==ne.SCENE2D||u){if(pc=zR(r,n,c,pc),pc.z<0&&!(c.frustum instanceof rn)&&!(c.frustum instanceof Lr))return;i=Na.clipToGLWindowCoordinates(a,pc,i)}return i.y=s.clientHeight-i.y,i};Na.worldToDrawingBufferCoordinates=function(e,t,n){if(n=Na.worldToWindowCoordinates(e,t,n),!!l(n))return Na.transformWindowToDrawingBuffer(e,n,n)};var c_=new h,m8e=new fe;Na.computeActualEllipsoidPosition=function(e,t,n){let i=e.mode;if(i===ne.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,m8e);if(!l(r))return;if(o.project(r,c_),i===ne.COLUMBUS_VIEW)return h.fromElements(c_.z,c_.x,c_.y,n);if(i===ne.SCENE2D)return h.fromElements(0,c_.x,c_.y,n);let s=e.morphTime;return h.fromElements(P.lerp(c_.z,t.x,s),P.lerp(c_.x,t.y,s),P.lerp(c_.y,t.z,s),n)};var lae=new h,uae=new h,fae=new F;Na.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,lae),F.computeViewportTransformation(e,0,1,fae),F.multiplyByPoint(fae,lae,uae),z.fromCartesian3(uae,n)};Na.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return z.fromElements(t.x*o,t.y*r,n)};var p8e=new oe,dae=new oe;Na.drawingBufferToWorldCoordinates=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 u=e.view.passState.viewport,f=oe.clone(oe.UNIT_W,p8e);f.x=(t.x-u.x)/u.width*2-1,f.y=(t.y-u.y)/u.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(l(p.fovy)){d=F.multiplyByVector(r.inverseViewProjection,f,dae);let g=1/d.w;h.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;l(g)&&(p=g),d=dae,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=F.multiplyByVector(r.inverseView,d,d)}return h.fromCartesian4(d,i)};var Ui=Na;var UA={};UA._deprecationWarning=ds;var l_=Uint32Array.BYTES_PER_ELEMENT;UA.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=l_;let r=o.getUint32(t,!0);if(r!==1)throw new ce(`Only Batched 3D Model version 1 is supported.  Version ${r} is not.`);t+=l_;let s=o.getUint32(t,!0);t+=l_;let a=o.getUint32(t,!0);t+=l_;let c=o.getUint32(t,!0);t+=l_;let u=o.getUint32(t,!0);t+=l_;let f=o.getUint32(t,!0);t+=l_;let d;u>=570425344?(t-=l_*2,d=a,u=c,f=0,a=0,c=0,UA._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-=l_,d=u,u=a,f=c,a=0,c=0,UA._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=Mo(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Mo(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ce("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(UA._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 HR=UA;function GR(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function hae(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function _8e(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=X.createTypedArray(n,i),o[t]=r),r}GR.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),hae(this,e,t,n,1,i.byteOffset)):i};GR.prototype.hasProperty=function(e){return l(this.json[e])};GR.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=X.fromName(i.componentType)),hae(this,e,t,n,this.featuresLength,i.byteOffset)):_8e(this,e,t,i)};GR.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(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 Jd=GR;function WR(e){let t=e.count,n=e.batchTable,i=e.binaryBody,o=y(e.parseAsPropertyAttributes,!1),r=e.customAttributeOutput,s=g8e(n),a;l(s.jsonProperties)&&(a=new o_({count:t,properties:s.jsonProperties}));let c;l(s.hierarchy)&&(c=new Xx({extension:s.hierarchy,binaryBody:i}));let u=qd.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(o){let b=x8e(t,u,f,i,r);g=b.transcodedSchema,p=[new gb({propertyAttribute:b.propertyAttributeJson,class:b.transcodedClass})]}else{let b=y8e(t,u,f,i);g=b.transcodedSchema;let T=b.featureTableJson;d=new Nl({count:T.count,properties:T.properties,class:b.transcodedClass,bufferViews:b.bufferViewsTypedArrays}),p=[]}let m=[];if(l(d)||l(a)||l(c)){let b=new $c({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 qs(x)}function g8e(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,o;l(t)?(WR._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),o=t):l(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=l(r)?r:{},r[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:r,hierarchy:o,extras:n,extensions:i}}function y8e(e,t,n,i){let o={},r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!l(i))throw new ce(`Property ${d} requires a batch table binary.`);let p=n[d],g=bu(p);r[d]={bufferView:a},o[d]=mae(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:o};let u=Au.fromJson(c);return{featureTableJson:{class:t,count:e,properties:r},bufferViewsTypedArrays:s,transcodedSchema:u,transcodedClass:u.classes[t]}}function x8e(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(!l(i)&&!l(p.typedArray))throw new ce(`Property ${d} requires a batch table binary.`);let g=Kt.sanitizeGlslIdentifier(d);(g===""||r.hasOwnProperty(g))&&(g=`property_${a}`,a++);let m=mae(p);m.name=d,r[g]=m;let x=g.toUpperCase();x.startsWith("_")||(x=`_${x}`);let b=p.typedArray;l(b)||(b=bu(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let T=new xn.Attribute;T.name=x,T.count=e,T.type=p.type;let C=X.fromTypedArray(b);(C===X.INT||C===X.UNSIGNED_INT||C===X.DOUBLE)&&(WR._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 u=Au.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:u,transcodedClass:u.classes[t]}}function mae(e){let t=b8e(e.componentType);return{type:e.type,componentType:t}}function b8e(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"}}WR._deprecationWarning=ds;WR._oneTimeWarning=xt;var u_=WR;var bb={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},T8e=xn.FeatureIdAttribute;function yy(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,Oo.Y),u=y(e.forwardAxis,Oo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.enablePick,!1),g=y(e.loadIndicesForWireframe,!1),m=y(e.loadPrimitiveOutline,!0),x=y(e.loadForClassification,!1);n=l(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=u,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._enablePick=p,this._loadIndicesForWireframe=g,this._loadPrimitiveOutline=m,this._loadForClassification=x,this._state=bb.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=F.IDENTITY}l(Object.create)&&(yy.prototype=Object.create(Xi.prototype),yy.prototype.constructor=yy);Object.defineProperties(yy.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});yy.prototype.load=function(){if(l(this._promise))return this._promise;let e=HR.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,o=e.batchTableJson,r=e.batchTableBinary,s=new Jd(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(a)&&(this._transform=F.fromTranslation(h.fromArray(a))),this._batchTable={json:o,binary:r};let c=new s_({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,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=bb.LOADING;let u=this;return this._promise=c.load().then(function(){if(!u.isDestroyed())return u._state=bb.PROCESSING,u}).catch(function(f){if(!u.isDestroyed())return C8e(u,f)}),this._promise};function C8e(e,t){return e.unload(),e._state=bb.FAILED,t=e.getError("Failed to load b3dm",t),Promise.reject(t)}yy.prototype.process=function(e){if(this._state===bb.READY)return!0;if(this._state!==bb.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=F.multiplyTransformation(this._transform,n.transform,n.transform),A8e(this,n),this._components=n,this._arrayBuffer=void 0,this._state=bb.READY,!0};function A8e(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let o;if(l(n.json))o=u_({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new $c({name:qd.BATCH_TABLE_CLASS_NAME,count:i});o=new qs({schema:{},propertyTables:[a]})}let r=t.scene.nodes,s=r.length;for(let a=0;a<s;a++)pae(r[a]);t.structuralMetadata=o}function pae(e){let t=e.children.length;for(let i=0;i<t;i++)pae(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let o=e.primitives[i],r=Kt.getAttributeBySemantic(o,Tt.FEATURE_ID);if(l(r)){r.setIndex=0;let s=new T8e;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",o.featureIds.push(s)}}}yy.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var jR=yy;function xy(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}l(Object.create)&&(xy.prototype=Object.create(Xi.prototype),xy.prototype.constructor=xy);Object.defineProperties(xy.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});xy.prototype.load=function(){return Promise.resolve(this)};xy.prototype.process=function(e){return l(this._components)||(this._components=F8e(this._geoJson,e),this._geoJson=void 0),!0};function E8e(){this.lines=void 0,this.points=void 0,this.properties=void 0}function S8e(){this.features=[]}function kW(e){let t=e[0],n=e[1],i=y(e[2],0);return new h(t,n,i)}function VW(e){let t=e.length,n=new Array(t);for(let o=0;o<t;o++)n[o]=kW(e[o]);return[n]}function v8e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=VW(e[i])[0];return n}function _ae(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=VW(e[i])[0];return n}function w8e(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,_ae(e[i]));return n}function D8e(e){return[kW(e)]}function I8e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=kW(e[i]);return n}var P8e={LineString:VW,MultiLineString:v8e,MultiPolygon:w8e,Polygon:_ae,MultiPoint:I8e,Point:D8e},R8e={LineString:Me.LINES,MultiLineString:Me.LINES,MultiPolygon:Me.LINES,Polygon:Me.LINES,MultiPoint:Me.POINTS,Point:Me.POINTS};function gae(e,t){if(!l(e.geometry))return;let n=e.geometry.type,i=P8e[n],o=R8e[n],r=e.geometry.coordinates;if(!l(i)||!l(r))return;let s=new E8e;o===Me.LINES?s.lines=i(r):o===Me.POINTS&&(s.points=i(r)),s.properties=e.properties,t.features.push(s)}function O8e(e,t){let n=e.features,i=n.length;for(let o=0;o<i;o++)gae(n[o],t)}var M8e={FeatureCollection:O8e,Feature:gae},tz=new h;function L8e(e,t,n){let i=0,o=0,r=e.length;for(let M=0;M<r;M++){let N=e[M];if(l(N.lines)){let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S];i+=w.length,o+=(w.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=Ne.createTypedArray(i,o),u=Ne.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 M=0;M<r;M++){let N=e[M];if(!l(N.lines))continue;let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S],I=w.length;for(let L=0;L<I;L++){let B=w[L],U=h.fromDegrees(B.x,B.y,B.z,ee.WGS84,tz),V=F.multiplyByPoint(t,U,tz);h.minimumByComponent(f,V,f),h.maximumByComponent(d,V,d),h.pack(V,s,p*3),a[p]=M,L<I-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let m=_t.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});m.vertexArrayDestroyable=!1;let x=_t.createVertexBuffer({typedArray:a,context:n.context,usage:Fe.STATIC_DRAW});x.vertexArrayDestroyable=!1;let b=_t.createIndexBuffer({typedArray:c,context:n.context,usage:Fe.STATIC_DRAW,indexDatatype:u});b.vertexArrayDestroyable=!1;let T=new xn.Attribute;T.semantic=Tt.POSITION,T.componentDatatype=X.FLOAT,T.type=on.VEC3,T.count=i,T.min=f,T.max=d,T.buffer=m;let C=new xn.Attribute;C.semantic=Tt.FEATURE_ID,C.setIndex=0,C.componentDatatype=X.FLOAT,C.type=on.SCALAR,C.count=i,C.buffer=x;let A=[T,C],E=new xn.Material;E.unlit=!0;let v=new xn.Indices;v.indexDatatype=u,v.count=c.length,v.buffer=b;let D=new xn.FeatureIdAttribute;D.featureCount=r,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let O=[D],R=new xn.Primitive;return R.attributes=A,R.indices=v,R.featureIds=O,R.primitiveType=Me.LINES,R.material=E,R}function N8e(e,t,n){let i=0,o=e.length;for(let A=0;A<o;A++){let E=e[A];l(E.points)&&(i+=E.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),u=0;for(let A=0;A<o;A++){let E=e[A];if(!l(E.points))continue;let v=E.points.length;for(let D=0;D<v;D++){let O=E.points[D],R=h.fromDegrees(O.x,O.y,O.z,ee.WGS84,tz),M=F.multiplyByPoint(t,R,tz);h.minimumByComponent(a,M,a),h.maximumByComponent(c,M,c),h.pack(M,r,u*3),s[u]=A,u++}}let f=_t.createVertexBuffer({typedArray:r,context:n.context,usage:Fe.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=_t.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new xn.Attribute;p.semantic=Tt.POSITION,p.componentDatatype=X.FLOAT,p.type=on.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new xn.Attribute;g.semantic=Tt.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=on.SCALAR,g.count=i,g.buffer=d;let m=[p,g],x=new xn.Material;x.unlit=!0;let b=new xn.FeatureIdAttribute;b.featureCount=o,b.propertyTableId=0,b.setIndex=0,b.positionalLabel="featureId_0";let T=[b],C=new xn.Primitive;return C.attributes=m,C.featureIds=T,C.primitiveType=Me.POINTS,C.material=x,C}function F8e(e,t){let n=new S8e,i=M8e[e.type];l(i)&&i(e,n);let o=n.features,r=o.length;if(r===0)throw new ce("GeoJSON must have at least one feature");let s={};for(let M=0;M<r;M++){let N=o[M],_=y(N.properties,y.EMPTY_OBJECT);for(let S in _)_.hasOwnProperty(S)&&(l(s[S])||(s[S]=new Array(r)))}for(let M=0;M<r;M++){let N=o[M];for(let _ in s)if(s.hasOwnProperty(_)){let S=y(N.properties[_],"");s[_][M]=S}}let a=new o_({count:r,properties:s}),u=[new $c({id:0,count:r,jsonMetadataTable:a})],f=Au.fromJson({}),d=new qs({schema:f,propertyTables:u}),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 M=0;M<r;M++){let N=o[M];if(l(N.lines)){m=!0;let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S],I=w.length;for(let L=0;L<I;L++)h.minimumByComponent(p,w[L],p),h.maximumByComponent(g,w[L],g)}}if(l(N.points)){x=!0;let _=N.points.length;for(let S=0;S<_;S++){let w=N.points[S];h.minimumByComponent(p,w,p),h.maximumByComponent(g,w,g)}}}let b=h.midpoint(p,g,new h),T=h.fromDegrees(b.x,b.y,b.z,ee.WGS84,new h),C=Mt.eastNorthUpToFixedFrame(T,ee.WGS84,new F),A=F.inverseTransformation(C,new F),E=[];m&&E.push(L8e(o,A,t)),x&&E.push(N8e(o,A,t));let v=new xn.Node;v.index=0,v.primitives=E;let D=[v],O=new xn.Scene;O.nodes=D;let R=new xn.Components;return R.scene=O,R.nodes=D,R.transform=C,R.structuralMetadata=d,R}xy.prototype.unload=function(){this._components=void 0};var qR=xy;var nz={};nz._deprecationWarning=ds;var by=Uint32Array.BYTES_PER_ELEMENT;nz.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=by;let r=o.getUint32(t,!0);if(r!==1)throw new ce(`Only Instanced 3D Model version 1 is supported. Version ${r} is not.`);t+=by;let s=o.getUint32(t,!0);t+=by;let a=o.getUint32(t,!0);if(a===0)throw new ce("featureTableJsonByteLength is zero, the feature table must be defined.");t+=by;let c=o.getUint32(t,!0);t+=by;let u=o.getUint32(t,!0);t+=by;let f=o.getUint32(t,!0);t+=by;let d=o.getUint32(t,!0);if(d!==1&&d!==0)throw new ce(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=by;let p=Mo(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Mo(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ce("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(nz._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 YR=nz;var f_={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},iz=xn.Attribute,B8e=xn.FeatureIdAttribute,xae=xn.Instances;function d_(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,Oo.Y),u=y(e.forwardAxis,Oo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.enablePick,!1);i=l(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=u,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._enablePick=g,this._state=f_.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}l(Object.create)&&(d_.prototype=Object.create(Xi.prototype),d_.prototype.constructor=d_);Object.defineProperties(d_.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});d_.prototype.load=function(){if(l(this._promise))return this._promise;let e=YR.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Jd(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!l(a))throw new ce("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(c)&&(this._transform=F.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let u={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=Ol(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});u.gltfResource=p,u.baseResource=p}else u.gltfResource=this._i3dmResource,u.typedArray=e.gltf;let f=new s_(u);return this._gltfLoader=f,this._state=f_.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=f_.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw k8e(this,d)}),this._promise};function k8e(e,t){return e.unload(),e._state=f_.FAILED,e.getError("Failed to load i3dm",t)}d_.prototype.process=function(e){if(this._state===f_.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===f_.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=F.multiplyTransformation(this._transform,i.transform,i.transform),z8e(this,i,e),V8e(this,i),this._components=i,this._arrayBuffer=void 0,this._state=f_.READY,!0};function V8e(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=u_({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new $c({name:qd.BATCH_TABLE_CLASS_NAME,count:i});o=new qs({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var oz=new h,UW=new Array(4),U8e=new F;function z8e(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,u=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=G8e(o,r),d;c&&(d=new Float32Array(4*r));let p;u&&(p=new Float32Array(3*r));let g=new Float32Array(r),m=h.unpackArray(f),x=new h,b=new h,T=new h,C=new h,A=new $,E=new Oe,v=new Array(4),D=new h,O=new Array(3),R=new F;if(!l(s)||h.equals(h.unpack(s),h.ZERO)){let V=se.fromPoints(m);for(i=0;i<m.length;i++)h.subtract(m[i],V.center,oz),f[3*i+0]=oz.x,f[3*i+1]=oz.y,f[3*i+2]=oz.z;let G=F.fromTranslation(V.center,U8e);t.transform=F.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<r;i++){x=h.clone(m[i]),l(s)&&h.add(x,h.unpack(s),x),c&&(W8e(o,a,i,E,x,T,b,C,A,R),Oe.pack(E,v,0),d[4*i+0]=v[0],d[4*i+1]=v[1],d[4*i+2]=v[2],d[4*i+3]=v[3]),u&&(j8e(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 V=o.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);l(V)||(V=i),g[i]=V}let M=new xae;M.transformInWorldSpace=!0;let N=e._buffers,_=new iz;if(_.name="Instance Translation",_.semantic=ns.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=on.VEC3,_.count=r,_.typedArray=f,!c){let V=_t.createVertexBuffer({context:n.context,typedArray:f,usage:Fe.STATIC_DRAW});V.vertexArrayDestroyable=!1,N.push(V),_.buffer=V}if(M.attributes.push(_),c){let V=new iz;V.name="Instance Rotation",V.semantic=ns.ROTATION,V.componentDatatype=X.FLOAT,V.type=on.VEC4,V.count=r,V.typedArray=d,M.attributes.push(V)}if(u){let V=new iz;if(V.name="Instance Scale",V.semantic=ns.SCALE,V.componentDatatype=X.FLOAT,V.type=on.VEC3,V.count=r,c)V.typedArray=p;else{let G=_t.createVertexBuffer({context:n.context,typedArray:p,usage:Fe.STATIC_DRAW});G.vertexArrayDestroyable=!1,N.push(G),V.buffer=G}M.attributes.push(V)}let S=new iz;S.name="Instance Feature ID",S.setIndex=0,S.semantic=ns.FEATURE_ID,S.componentDatatype=X.FLOAT,S.type=on.SCALAR,S.count=r;let w=_t.createVertexBuffer({context:n.context,typedArray:g,usage:Fe.STATIC_DRAW});w.vertexArrayDestroyable=!1,N.push(w),S.buffer=w,M.attributes.push(S);let I=new B8e;I.propertyTableId=0,I.setIndex=0,I.positionalLabel="instanceFeatureId_0",M.featureIds.push(I);let L=t.nodes,B=L.length,U=!1;for(i=0;i<B;i++){let V=L[i];V.primitives.length>0&&(V.instances=U?H8e(M):M,U=!0)}}function H8e(e){let t=new xae;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 G8e(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(!l(i))throw new ce("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let o=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(o))throw new ce("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 ce("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var yae=new Array(4);function W8e(e,t,n,i,o,r,s,a,c,u){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,UW),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,yae),p=!1;if(l(f)){if(!l(d))throw new ce("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,UW),m=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,yae);if(l(g)){if(!l(m))throw new ce("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");Mn.octDecodeInRange(g[0],g[1],65535,r),Mn.octDecodeInRange(m[0],m[1],65535,s),p=!0}else t?(Mt.eastNorthUpToFixedFrame(o,ee.WGS84,u),F.getMatrix3(u,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)),Oe.fromRotationMatrix(c,i)}function j8e(e,t,n){n=h.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);l(i)&&h.multiplyByScalar(n,i,n);let o=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,UW);l(o)&&(n.x*=o[0],n.y*=o[1],n.z*=o[2])}function q8e(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}d_.prototype.isUnloaded=function(){return this._state===f_.UNLOADED};d_.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),q8e(this),this._components=void 0,this._arrayBuffer=void 0,this._state=f_.UNLOADED};var XR=d_;var Y8e={STOPPED:0,ANIMATING:1},eh=Object.freeze(Y8e);function zA(){this.times=void 0,this.points=void 0,he.throwInstantiationError()}zA.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof h)return h;if(e instanceof Oe)return Oe};zA.prototype.evaluate=he.throwInstantiationError;zA.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};zA.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};zA.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var io=zA;function HA(e){this._value=e,this._valueType=io.getPointType(e)}Object.defineProperties(HA.prototype,{value:{get:function(){return this._value}}});HA.prototype.findTimeInterval=function(e){};HA.prototype.wrapTime=function(e){return 0};HA.prototype.clampTime=function(e){return 0};HA.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var KR=HA;function GA(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(GA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});GA.prototype.findTimeInterval=io.prototype.findTimeInterval;GA.prototype.wrapTime=io.prototype.wrapTime;GA.prototype.clampTime=io.prototype.clampTime;GA.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]:(l(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var Ty=GA;var bae={};bae.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 WA=bae;var Tae=[],Cae=[],Aae=[],Eae=[];function X8e(e,t,n){let i=Tae,o=Aae,r=Cae,s=Eae;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(l(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],l(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],l(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],l(c)||(c=s[a+1]=new h),h.clone(n,c),WA.solve(i,r,o,s)}function K8e(e){let t=Tae,n=Aae,i=Cae,o=Eae;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(l(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],l(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],l(s)||(s=o[r]=new h),h.subtract(e[r],e[r-1],s),h.multiplyByScalar(s,3,s),WA.solve(t,i,n,o)}function Ul(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(Ul.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}}});Ul.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 Ul({times:t,points:n,inTangents:r,outTangents:o})};Ul.createNaturalCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points;if(n.length<3)return new Ty({points:n,times:t});let i=K8e(n),o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new Ul({times:t,points:n,inTangents:r,outTangents:o})};Ul.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 Ty({points:n,times:t});let s=X8e(n,i,o),a=s.slice(0,s.length-1),c=s.slice(1,s.length);return new Ul({times:t,points:n,inTangents:c,outTangents:a})};Ul.hermiteCoefficientMatrix=new F(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0);Ul.prototype.findTimeInterval=io.prototype.findTimeInterval;var Z8e=new oe,jA=new h;Ul.prototype.wrapTime=io.prototype.wrapTime;Ul.prototype.clampTime=io.prototype.clampTime;Ul.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,u=Z8e;u.z=c,u.y=c*c,u.x=u.y*c,u.w=1;let f=F.multiplyByVector(Ul.hermiteCoefficientMatrix,u,u);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:(l(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,jA),d.add(t,jA,t),d.multiplyByScalar(r[s],f.z,jA),d.add(t,jA,t),d.multiplyByScalar(o[s],f.w,jA),d.add(t,jA,t))};var Cy=Ul;function qA(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(qA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});qA.prototype.findTimeInterval=io.prototype.findTimeInterval;qA.prototype.wrapTime=io.prototype.wrapTime;qA.prototype.clampTime=io.prototype.clampTime;qA.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]:(l(t)||(t=new o),o.clone(n[i],t))};var ZR=qA;function $8e(e){let t=e.points,n=e.times;return function(i,o){l(o)||(o=new Oe);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 Oe.fastSlerp(a,c,s,o)}}function YA(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=$8e(this),this._lastTimeIndex=0}Object.defineProperties(YA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});YA.prototype.findTimeInterval=io.prototype.findTimeInterval;YA.prototype.wrapTime=io.prototype.wrapTime;YA.prototype.clampTime=io.prototype.clampTime;YA.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var $R=YA;var XA=xn.AnimatedPropertyType;function zW(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,nGe(this)}Object.defineProperties(zW.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 Q8e(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 Cy({times:e,points:n,inTangents:i,outTangents:o})}function Sae(e,t,n,i){if(e.length===1&&t.length===1)return new KR(t[0]);switch(n){case $d.STEP:return new ZR({times:e,points:t});case $d.CUBICSPLINE:return Q8e(e,t);case $d.LINEAR:return i===XA.ROTATION?new $R({times:e,points:t}):new Ty({times:e,points:t})}}function J8e(e,t,n,i,o){let r=[];if(i===XA.WEIGHTS){let a=t.length/o,c,u;for(c=0;c<o;c++){let f=new Array(a),d=c;if(n===$d.CUBICSPLINE)for(u=0;u<a;u+=3)f[u]=t[d],f[u+1]=t[d+o],f[u+2]=t[d+2*o],d+=o*3;else for(u=0;u<a;u++)f[u]=t[d],d+=o;r.push(Sae(e,f,n,i))}}else r.push(Sae(e,t,n,i));return r}var eGe=new h,tGe=new Oe;function nGe(e){let t=e._channel,n=t.sampler,i=n.input,o=n.output,r=n.interpolation,a=t.target.path,c=e._runtimeNode,u=l(c.morphWeights)?c.morphWeights.length:1,f=J8e(i,o,r,a,u);e._splines=f,e._path=a}zW.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,o=this._runtimeNode;if(n===XA.WEIGHTS){let r=o.morphWeights,s=r.length;for(let a=0;a<s;a++){let c=t[a],u=i.clampAnimations?c.clampTime(e):c.wrapTime(e);r[a]=c.evaluate(u)}}else{if(o.userAnimated)return;{let r=t[0],s=i.clampAnimations?r.clampTime(e):r.wrapTime(e);n===XA.TRANSLATION||n===XA.SCALE?o[n]=r.evaluate(s,eGe):n===XA.ROTATION&&(o[n]=r.evaluate(s,tGe))}}};var QR=zW;function HW(e,t,n){this._animation=t,this._name=t.name,this._runtimeChannels=void 0,this._startTime=Z.clone(n.startTime),this._delay=y(n.delay,0),this._stopTime=Z.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,Vl.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new me,this.update=new me,this.stop=new me,this._state=eh.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,iGe(this)}Object.defineProperties(HW.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 iGe(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 u=r[c],f=u.target;if(!l(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new QR({channel:u,runtimeAnimation:e,runtimeNode:p}),m=u.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}HW.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var JR=HW;function h_(e){this.animationAdded=new me,this.animationRemoved=new me,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(h_.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function GW(e,t,n){let i=e._model,o=new JR(i,t,n);return e._runtimeAnimations.push(o),e.animationAdded.raiseEvent(i,o),o}h_.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(l(i))return GW(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 GW(this,n[i],e)};h_.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=GW(this,n[r],e);i.push(s)}return i};h_.prototype.remove=function(e){if(!l(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};h_.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])};h_.prototype.contains=function(e){return l(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};h_.prototype.get=function(e){return this._runtimeAnimations[e]};var rz=[];function oGe(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}h_.prototype.update=function(e){let t=this._runtimeAnimations,n=t.length;if(n===0)return this._previousTime=void 0,!1;if(!this.animateWhilePaused&&Z.equals(e.time,this._previousTime))return!1;this._previousTime=Z.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];l(a._computedStartTime)||(a._computedStartTime=Z.addSeconds(y(a.startTime,o),a.delay,new Z)),l(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,u=a._duration,f=a.stopTime,d=Z.lessThanOrEquals(c,o),p=l(f)&&Z.greaterThan(o,f),g=0;if(u!==0){let b=Z.secondsDifference(p?f:o,c);g=l(a._animationTime)?a._animationTime(u,b):b/u}let m=a.loop===Vl.REPEAT||a.loop===Vl.MIRRORED_REPEAT,x=(d||m&&!l(a.startTime))&&(g<=1||m)&&!p;if(g===a._prevAnimationDelta){let b=a._state===eh.STOPPED;if(x!==b)continue}if(a._prevAnimationDelta=g,x||a._state===eh.ANIMATING){if(x&&a._state===eh.STOPPED&&(a._state=eh.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===Vl.REPEAT)g=g-Math.floor(g);else if(a.loop===Vl.MIRRORED_REPEAT){let T=Math.floor(g),C=g-T;g=T%2===1?1-C:C}a.reverse&&(g=1-g);let b=g*u*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=eh.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&rz.push(a))}}n=rz.length;for(let s=0;s<n;++s){let a=rz[s];t.splice(t.indexOf(a),1),e.afterRender.push(oGe(this,r,a))}return rz.length=0,i};var eO=h_;function Tb(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(Tb.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return l(this._color)||(this._color=new H),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}}});Tb.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};Tb.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};Tb.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};Tb.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};Tb.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var tO=Tb;var nO={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};nO.getStyleCommandsNeeded=function(e,t){return t===0?nO.ALL_OPAQUE:t===e?nO.ALL_TRANSLUCENT:nO.OPAQUE_AND_TRANSLUCENT};var th=Object.freeze(nO);var Ay={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};Ay.is3DTiles=function(e){switch(e){case Ay.TILE_GLTF:case Ay.TILE_B3DM:case Ay.TILE_I3DM:case Ay.TILE_PNTS:case Ay.TILE_GEOJSON:return!0;case Ay.GLTF:return!1}};var lr=Object.freeze(Ay);function Vr(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=th.ALL_OPAQUE,rGe(this)}Object.defineProperties(Vr.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return l(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function rGe(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 Ws(s,o)}else for(o=0;o<i;o++)r[o]=new tO({model:t,featureId:o,featureTable:e});e._features=r,e._featuresLength=i,e._batchTexture=new Kc({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}Vr.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=th.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};Vr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};Vr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};Vr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};Vr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};Vr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};Vr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};Vr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};Vr.prototype.getFeature=function(e){return this._features[e]};Vr.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};Vr.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};Vr.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};Vr.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};Vr.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};Vr.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};Vr.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};Vr.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};Vr.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var sGe=new H;Vr.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(Kc.DEFAULT_COLOR_VALUE),this.setAllShow(Kc.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=l(e.color)?y(e.color.evaluateColor(n,sGe),Kc.DEFAULT_COLOR_VALUE):Kc.DEFAULT_COLOR_VALUE,o=l(e.show)?y(e.show.evaluate(n),Kc.DEFAULT_SHOW_VALUE):Kc.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,o)}};Vr.prototype.isDestroyed=function(){return!1};Vr.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var iO=Vr;var vae={name:"TilesetPipelineStage"};vae.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,pe.FRAGMENT);let r={u_polygonOffset:function(){return z.ZERO}};e.uniformMap=yt(r,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Vt.setCesium3DTileBit(),i.stencilMask=Vt.CESIUM_3D_TILE_MASK};var oO=vae;var rO=`// robust iterative solution without trig functions
// https://github.com/0xfaded/ellipse_demo/issues/1
// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse
//
// This version uses only a single iteration for best performance. For fog
// rendering, the difference is negligible.
vec2 nearestPointOnEllipseFast(vec2 pos, vec2 radii) {
    vec2 p = abs(pos);
    vec2 inverseRadii = 1.0 / radii;
    vec2 evoluteScale = (radii.x * radii.x - radii.y * radii.y) * vec2(1.0, -1.0) * inverseRadii;

    // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t))
    // but store the cos and sin of t in a vec2 for efficiency.
    // Initial guess: t = cos(pi/4)
    vec2 tTrigs = vec2(0.70710678118);
    vec2 v = radii * tTrigs;

    // Find the evolute of the ellipse (center of curvature) at v.
    vec2 evolute = evoluteScale * tTrigs * tTrigs * tTrigs;
    // Find the (approximate) intersection of p - evolute with the ellipsoid.
    vec2 q = normalize(p - evolute) * length(v - evolute);
    // Update the estimate of t.
    tTrigs = (q + evolute) * inverseRadii;
    tTrigs = normalize(clamp(tTrigs, 0.0, 1.0));
    v = radii * tTrigs;

    return v * sign(pos);
}

vec3 computeEllipsoidPositionWC(vec3 positionMC) {
    // Get the world-space position and project onto a meridian plane of
    // the ellipsoid
    vec3 positionWC = (czm_model * vec4(positionMC, 1.0)).xyz;

    vec2 positionEllipse = vec2(length(positionWC.xy), positionWC.z);
    vec2 nearestPoint = nearestPointOnEllipseFast(positionEllipse, czm_ellipsoidRadii.xz);

    // Reconstruct a 3D point in world space
    return vec3(nearestPoint.x * normalize(positionWC.xy), nearestPoint.y);
}

void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection, float distanceToCamera) {

    vec3 fogColor = groundAtmosphereColor.rgb;

    // If there is dynamic lighting, apply that to the fog.
    const float NONE = 0.0;
    if (czm_atmosphereDynamicLighting != NONE) {
        float darken = clamp(dot(normalize(czm_viewerPositionWC), lightDirection), czm_fogMinimumBrightness, 1.0);
        fogColor *= darken;
    }

    // Tonemap if HDR rendering is disabled
    #ifndef HDR
        fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb);
        fogColor.rgb = czm_inverseGamma(fogColor.rgb);
    #endif

    vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, czm_fogVisualDensityScalar);
    color = vec4(withFog, color.a);
}

void atmosphereStage(inout vec4 color, in ProcessedAttributes attributes) {
    vec3 rayleighColor;
    vec3 mieColor;
    float opacity;

    vec3 positionWC;
    vec3 lightDirection;

    // When the camera is in space, compute the position per-fragment for
    // more accurate ground atmosphere. All other cases will use
    //
    // The if condition will be added in https://github.com/CesiumGS/cesium/issues/11717
    if (false) {
        positionWC = computeEllipsoidPositionWC(attributes.positionMC);
        lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting);

        // The fog color is derived from the ground atmosphere color
        czm_computeGroundAtmosphereScattering(
            positionWC,
            lightDirection,
            rayleighColor,
            mieColor,
            opacity
        );
    } else {
        positionWC = attributes.positionWC;
        lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting);
        rayleighColor = v_atmosphereRayleighColor;
        mieColor = v_atmosphereMieColor;
        opacity = v_atmosphereOpacity;
    }

    //color correct rayleigh and mie colors
    const bool ignoreBlackPixels = true;
    rayleighColor = czm_applyHSBShift(rayleighColor, czm_atmosphereHsbShift, ignoreBlackPixels);
    mieColor = czm_applyHSBShift(mieColor, czm_atmosphereHsbShift, ignoreBlackPixels);

    vec4 groundAtmosphereColor = czm_computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity);

    if (u_isInFog) {
        float distanceToCamera = length(attributes.positionEC);
        applyFog(color, groundAtmosphereColor, lightDirection, distanceToCamera);
    } else {
        // Ground atmosphere
    }
}
`;var sO=`void atmosphereStage(ProcessedAttributes attributes) {
    vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_positionWC, czm_atmosphereDynamicLighting);

    czm_computeGroundAtmosphereScattering(
        // This assumes the geometry stage came before this.
        v_positionWC,
        lightDirection,
        v_atmosphereRayleighColor,
        v_atmosphereMieColor,
        v_atmosphereOpacity
    );
}
`;var wae={name:"AtmospherePipelineStage"};wae.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_ATMOSPHERE",void 0,pe.BOTH),i.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,pe.BOTH),i.addVarying("vec3","v_atmosphereRayleighColor"),i.addVarying("vec3","v_atmosphereMieColor"),i.addVarying("float","v_atmosphereOpacity"),i.addVertexLines([sO]),i.addFragmentLines([rO]),i.addUniform("bool","u_isInFog",pe.FRAGMENT),e.uniformMap.u_isInFog=function(){let o=h.distance(n.camera.positionWC,t.boundingSphere.center);return P.fog(o,n.fog.density)>P.EPSILON3}};var aO=wae;var cO=`#ifdef DIFFUSE_IBL
vec3 sampleDiffuseEnvironment(vec3 cubeDir)
{
    #ifdef CUSTOM_SPHERICAL_HARMONICS
        return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); 
    #else
        return czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); 
    #endif
}
#endif

#ifdef SPECULAR_IBL
vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness)
{
    #ifdef CUSTOM_SPECULAR_IBL
        float lod = roughness * model_specularEnvironmentMapsMaximumLOD;
        return czm_textureCube(model_specularEnvironmentMaps, cubeDir, lod).rgb;
    #else
        float lod = roughness * czm_specularEnvironmentMapsMaximumLOD;
        return czm_textureCube(czm_specularEnvironmentMaps, cubeDir, lod).rgb;
    #endif
}
vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness)
{
    // see https://bruop.github.io/ibl/ at Single Scattering Results
    // Roughness dependent fresnel, from Fdez-Aguera
    vec3 f90 = max(vec3(1.0 - roughness), f0);
    vec3 F = fresnelSchlick2(f0, f90, NdotV);

    vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
    vec3 specularSample = sampleSpecularEnvironment(cubeDir, roughness);

    return specularSample * (F * brdfLut.x + brdfLut.y);
}
#endif

#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
/**
 * Compute the light contributions from environment maps and spherical harmonic coefficients.
 * See Fdez-Aguera, https://www.jcgt.org/published/0008/01/03/paper.pdf, for explanation
 * of the single- and multi-scattering terms.
 *
 * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position.
 * @param {vec3} normalEC The surface normal in eye coordinates.
 * @param {czm_modelMaterial} The material properties.
 * @return {vec3} The computed HDR color.
 */
vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material) {
    vec3 f0 = material.specular;
    float roughness = material.roughness;
    float specularWeight = 1.0;
    #ifdef USE_SPECULAR
        specularWeight = material.specularWeight;
    #endif
    float NdotV = clamp(dot(normalEC, viewDirectionEC), 0.0, 1.0);

    // see https://bruop.github.io/ibl/ at Single Scattering Results
    // Roughness dependent fresnel, from Fdez-Aguera
    vec3 f90 = max(vec3(1.0 - roughness), f0);
    vec3 singleScatterFresnel = fresnelSchlick2(f0, f90, NdotV);

    vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg;
    vec3 FssEss = specularWeight * (singleScatterFresnel * brdfLut.x + brdfLut.y);

    #ifdef DIFFUSE_IBL
        vec3 normalMC = normalize(model_iblReferenceFrameMatrix * normalEC);
        vec3 irradiance = sampleDiffuseEnvironment(normalMC);

        vec3 averageFresnel = f0 + (1.0 - f0) / 21.0;
        float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y);
        vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems);
        vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse;
        vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering) * model_iblFactor.x;
    #else
        vec3 diffuseContribution = vec3(0.0);
    #endif

    #ifdef USE_ANISOTROPY
        // Bend normal to account for anisotropic distortion of specular reflection
        vec3 anisotropyDirection = material.anisotropicB;
        vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC);
        vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection);
        float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness);
        float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor;
        vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4));
        vec3 reflectEC = reflect(-viewDirectionEC, bentNormal);
    #else
        vec3 reflectEC = reflect(-viewDirectionEC, normalEC);
    #endif

    #ifdef SPECULAR_IBL
        vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC);
        vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness);
        vec3 specularContribution = radiance * FssEss * model_iblFactor.y;
    #else
        vec3 specularContribution = vec3(0.0);
    #endif

    return diffuseContribution + specularContribution;
}
#endif
`;var Dae={name:"ImageBasedLightingPipelineStage"},aGe=new z;Dae.process=function(e,t,n){let i=t.imageBasedLighting,o=t.environmentMapManager,r=e.shaderBuilder,s;l(i.specularEnvironmentMaps)||(s=o.radianceCubeMap);let a=i.sphericalHarmonicCoefficients??o.sphericalHarmonicCoefficients;r.addDefine("USE_IBL_LIGHTING",void 0,pe.FRAGMENT),r.addUniform("vec2","model_iblFactor",pe.FRAGMENT),zd.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&r.addUniform("mat3","model_iblReferenceFrameMatrix",pe.FRAGMENT),l(s)&&r.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,pe.BOTH),l(a)&&l(a[0])?(r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,pe.FRAGMENT),r.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",pe.FRAGMENT)):i.useDefaultSphericalHarmonics&&r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),l(i.specularEnvironmentCubeMap)&&i.specularEnvironmentCubeMap.ready||l(s)?(r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPECULAR_IBL",void 0,pe.FRAGMENT),r.addUniform("samplerCube","model_specularEnvironmentMaps",pe.FRAGMENT),r.addUniform("float","model_specularEnvironmentMapsMaximumLOD",pe.FRAGMENT)):t.useDefaultSpecularMaps&&r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT)),r.addFragmentLines(cO);let c={model_iblFactor:function(){return z.multiplyByScalar(i.imageBasedLightingFactor,o?.intensity||1,aGe)},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_sphericalHarmonicCoefficients:function(){return a},model_specularEnvironmentMaps:function(){return i.specularEnvironmentCubeMap.texture},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentCubeMap.maximumMipmapLevel}};l(s)&&(c.model_specularEnvironmentMaps=function(){return s},c.model_specularEnvironmentMapsMaximumLOD=function(){return o.maximumMipmapLevel}),e.uniformMap=yt(c,e.uniformMap)};var lO=Dae;var cGe=P.EPSILON16;function jW(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(jW.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,cGe)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var lGe=new h,WW=new $;jW.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=lGe,o;switch(t){case hc.XROTATE:o=$.fromRotationX(P.toRadians(n),WW),e=F.multiplyByMatrix3(e,o,e);break;case hc.YROTATE:o=$.fromRotationY(P.toRadians(n),WW),e=F.multiplyByMatrix3(e,o,e);break;case hc.ZROTATE:o=$.fromRotationZ(P.toRadians(n),WW),e=F.multiplyByMatrix3(e,o,e);break;case hc.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case hc.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case hc.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=F.multiplyByTranslation(e,i,e);break;case hc.XSCALE:i.x=n,i.y=1,i.z=1,e=F.multiplyByScale(e,i,e);break;case hc.YSCALE:i.x=1,i.y=n,i.z=1,e=F.multiplyByScale(e,i,e);break;case hc.ZSCALE:i.x=1,i.y=1,i.z=n,e=F.multiplyByScale(e,i,e);break;case hc.UNIFORMSCALE:e=F.multiplyByUniformScale(e,n,e);break;default:break}return e};var uO=jW;function sz(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,uGe(this)}Object.defineProperties(sz.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 uGe(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 uO({stage:a,runtimeArticulation:e});o.push(c);let u=a.name;r[u]=c}}sz.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];l(n)&&(n.currentValue=t)};var fGe=new F,dGe=new F;sz.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=F.clone(F.IDENTITY,fGe),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=F.multiplyTransformation(s.originalTransform,e,dGe);s.transform=a}};var fO=sz;var dO=`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 KA={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};KA.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,pe.FRAGMENT),i.addFragmentLines(dO);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=ve.TRANSLUCENT),i.addUniform("vec4",KA.COLOR_UNIFORM_NAME,pe.FRAGMENT),o[KA.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",KA.COLOR_BLEND_UNIFORM_NAME,pe.FRAGMENT),o[KA.COLOR_BLEND_UNIFORM_NAME]=function(){return dc.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=yt(o,e.uniformMap)};var Ey=KA;var hO=`#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; // sample from center of pixel
    float v = (float(pixY) + 0.5) * pixelHeight;
    vec4 plane = texture(packedClippingPlanes, vec2(u, v));
    return czm_transformPlane(plane, transform);
}
#else
// Handle uint8 clipping texture instead
vec4 getClippingPlane(
    highp sampler2D packedClippingPlanes,
    int clippingPlaneNumber,
    mat4 transform
) {
    int clippingPlaneStartIndex = clippingPlaneNumber * 2; // clipping planes are two pixels each
    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; // sample from center of pixel
    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; // For union planes, we want to get the min distance. So we set the initial value to the first plane distance in the loop below.
    #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 Iae={name:"ModelClippingPlanesPipelineStage"},hGe=new z;Iae.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,pe.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,pe.FRAGMENT),_s.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,pe.FRAGMENT);let s=_s.getTextureResolution(i,o,hGe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,pe.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",pe.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",pe.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",pe.FRAGMENT),r.addFragmentLines(hO);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=H.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=yt(a,e.uniformMap)};var mO=Iae;var pO=`void modelClippingPolygonsStage(ProcessedAttributes attributes)
{
    vec2 sphericalLatLong = czm_approximateSphericalCoordinates(v_positionWC);
    sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi);

    vec2 minDistance = vec2(czm_infinity);
    v_regionIndex = -1;
    v_clippingPosition = vec2(czm_infinity);

    for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) {
        vec4 extents = czm_unpackClippingExtents(model_clippingExtents, regionIndex);
        vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz;

        vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0));
        vec2 distance = abs(rectUv - clamped) * extents.wz;
        
        if (minDistance.x > distance.x || minDistance.y > distance.y) {
            minDistance = distance;
            v_clippingPosition = rectUv;
        }

        float threshold = 0.01;
        if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) {
            v_regionIndex = regionIndex;
        }
    }
}
`;var _O=`void modelClippingPolygonsStage()
{
    vec2 clippingPosition = v_clippingPosition;
    int regionIndex = v_regionIndex;
    czm_clipPolygons(model_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex);
}
`;var Pae={name:"ModelClippingPolygonsPipelineStage"};Pae.process=function(e,t,n){let i=t.clippingPolygons,o=e.shaderBuilder;o.addDefine("ENABLE_CLIPPING_POLYGONS",void 0,pe.BOTH),i.inverse&&o.addDefine("CLIPPING_INVERSE",void 0,pe.FRAGMENT),o.addDefine("CLIPPING_POLYGON_REGIONS_LENGTH",i.extentsCount,pe.BOTH),o.addUniform("sampler2D","model_clippingDistance",pe.FRAGMENT),o.addUniform("sampler2D","model_clippingExtents",pe.VERTEX),o.addVarying("vec2","v_clippingPosition"),o.addVarying("int","v_regionIndex","flat"),o.addVertexLines(pO),o.addFragmentLines(_O);let r={model_clippingDistance:function(){return i.clippingTexture},model_clippingExtents:function(){return i.extentsTexture}};e.uniformMap=yt(r,e.uniformMap)};var gO=Pae;function Rae(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(Rae.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){l(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 yO=Rae;var xO=`mat4 getInstancingTransform()
{
    mat4 instancingTransform;

    #ifdef HAS_INSTANCE_MATRICES
    instancingTransform = mat4(
        a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1
        a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2
        a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3
        a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0  // Column 4
    );
    #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, // Column 1
        a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2
        a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3
        a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0  // Column 4
    );
    #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 bO=`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 TO=`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 az=new F,mGe=new F,pGe=new F,Mae={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:kae,_transformsToTypedArray:YW};Mae.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(xO);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,u=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=s._enablePick&&!n.context.webgl2,d=[];PGe(e,n,i,d,u,f),MGe(e,n,i,d);let p={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",pe.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",pe.VERTEX),p.u_instance_modifiedModelView=function(){let g=F.multiplyTransformation(s.modelMatrix,a.components.transform,az);return u?F.multiplyTransformation(n.context.uniformState.view3D,g,az):(n.mode!==ne.SCENE3D&&(g=Mt.basisTo2D(n.mapProjection,g,az)),F.multiplyTransformation(n.context.uniformState.view,g,az))},p.u_instance_nodeTransform=function(){return F.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,mGe)},r.addVertexLines(TO)):r.addVertexLines(bO),u){r.addDefine("USE_2D_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_modelView2D",pe.VERTEX);let g=n.context,m=F.fromTranslation(c.instancingReferencePoint2D,new F);p.u_modelView2D=function(){return F.multiplyTransformation(g.uniformState.view,m,pGe)}}e.uniformMap=yt(p,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,d)};var CO=new F,_Ge=new h;function gGe(e,t,n,i,o){let r=F.multiplyTransformation(t,e,CO);return r=F.multiplyTransformation(r,n,CO),o=Mt.basisTo2D(i.mapProjection,r,o),o}function yGe(e,t,n,i,o){let r=F.fromTranslation(e,CO),s=F.multiplyTransformation(t,r,CO);s=F.multiplyTransformation(s,n,CO);let a=F.getTranslation(s,_Ge);return o=Ui.computeActualEllipsoidPosition(i,a,o),o}function Lae(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=F.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=F.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=F.clone(o.computedModelMatrix,t),t=F.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=F.clone(F.IDENTITY,n))}var Nae=new F,Fae=new F,xGe=new F,bGe=new h;function TGe(e,t,n,i){let o=Nae,r=Fae;Lae(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=gGe(f,o,r,n,xGe),p=F.getTranslation(d,bGe),g=h.subtract(p,a,p);i[u]=F.setTranslation(d,g,i[u])}return i}function CGe(e,t,n,i){let o=Nae,r=Fae;Lae(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=yGe(f,o,r,n,f);i[u]=h.subtract(d,a,i[u])}return i}var AGe=new h,EGe=new h;function Bae(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,o=F.multiplyByPoint(i,n.instancingTranslationMin,AGe),r=Ui.computeActualEllipsoidPosition(t,o,o),s=F.multiplyByPoint(i,n.instancingTranslationMax,EGe),a=Ui.computeActualEllipsoidPosition(t,s,s);n.instancingReferencePoint2D=h.lerp(r,a,.5,new h)}function YW(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 SGe(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 vGe=new h,wGe=new Oe,DGe=new h;function kae(e,t,n){let i=new Array(t),o=Kt.getAttributeBySemantic(e,ns.TRANSLATION),r=Kt.getAttributeBySemantic(e,ns.ROTATION),s=Kt.getAttributeBySemantic(e,ns.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),u=l(o),f=l(r),d=l(s),p=u?o.typedArray:new Float32Array(t*3),g=f?r.typedArray:new Float32Array(t*4);f&&r.normalized&&(g=Mn.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],vGe);h.maximumByComponent(a,T,a),h.minimumByComponent(c,T,c);let C=new Oe(g[b*4],g[b*4+1],g[b*4+2],f?g[b*4+3]:1,wGe),A=new h(m[b*3],m[b*3+1],m[b*3+2],DGe),E=F.fromTranslationQuaternionRotationScale(T,C,A,new F);i[b]=E}let x=n.runtimeNode;return x.instancingTranslationMin=c,x.instancingTranslationMax=a,u&&(o.typedArray=void 0),f&&(r.typedArray=void 0),d&&(s.typedArray=void 0),i}function IGe(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 u=new h(o[c*3],o[c*3+1],o[c*3+2]);i[c]=u,h.minimumByComponent(r,u,r),h.maximumByComponent(s,u,s)}let a=n.runtimeNode;return a.instancingTranslationMin=r,a.instancingTranslationMax=s,e.typedArray=void 0,i}function XW(e,t){let n=_t.createVertexBuffer({context:t.context,typedArray:e,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function PGe(e,t,n,i,o,r){let s=Kt.getAttributeBySemantic(n,ns.ROTATION);l(s)?RGe(e,n,i,t,o,r):OGe(e,n,i,t,o)}function RGe(e,t,n,i,o,r){let s=e.shaderBuilder,a=t.attributes[0].count,c=e.model,u=e.runtimeNode;s.addDefine("HAS_INSTANCE_MATRICES");let f="Transform",d,p=u.instancingTransformsBuffer;if(!l(p)){d=kae(t,a,e);let b=YW(d);p=XW(b,i),c._modelResources.push(p),r&&(u.transformsTypedArray=b),u.instancingTransformsBuffer=p}if(Oae(e,p,n,f),!o)return;let g=Ge(i);g.mode=ne.COLUMBUS_VIEW,Bae(e,g);let m=u.instancingTransformsBuffer2D;if(!l(m)){let b=TGe(d,e,g,d),T=YW(b);m=XW(T,i),c._modelResources.push(m),u.instancingTransformsBuffer2D=m}Oae(e,m,n,"Transform2D")}function OGe(e,t,n,i,o,r){let s=e.shaderBuilder,a=e.runtimeNode,c=Kt.getAttributeBySemantic(t,ns.TRANSLATION),u=Kt.getAttributeBySemantic(t,ns.SCALE);if(l(u)&&(s.addDefine("HAS_INSTANCE_SCALE"),qW(e,u.buffer,u.byteOffset,u.byteStride,n,"Scale")),!l(c))return;let f,d=c.typedArray;if(l(d)?f=IGe(c,c.count,e):l(a.instancingTranslationMin)||(a.instancingTranslationMin=c.min,a.instancingTranslationMax=c.max),s.addDefine("HAS_INSTANCE_TRANSLATION"),qW(e,c.buffer,c.byteOffset,c.byteStride,n,"Translation"),!o&&!r)return;let g=Ge(i);g.mode=ne.COLUMBUS_VIEW,Bae(e,g);let m=a.instancingTranslationBuffer2D;if(!l(m)){let C=CGe(f,e,g,f),A=SGe(C);r&&(a.transformsTypedArray=A),m=XW(A,i),e.model._modelResources.push(m),a.instancingTranslationBuffer2D=m}if(!o)return;qW(e,m,0,void 0,n,"Translation2D")}function Oae(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 qW(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 MGe(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===ns.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:on.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var AO=Mae;var KW={};KW.name="ModelMatrixUpdateStage";KW.update=function(e,t,n){let i=n.mode!==ne.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Vae(e,t,o,e.transformToRoot),e._transformDirty=!1}};function LGe(e,t,n){e.modelMatrix=F.multiplyTransformation(t,n,e.modelMatrix),e.cullFace=Kt.getCullFace(e.modelMatrix,e.primitiveType)}function Vae(e,t,n,i){let o;i=F.multiplyTransformation(i,e.transform,new F),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o<r;o++){let a=e.runtimePrimitives[o];LGe(a.drawCommand,n,i)}let s=e.children.length;for(o=0;o<s;o++){let a=t._runtimeNodes[e.children[o]];a._transformToRoot=F.clone(i,a._transformToRoot),Vae(a,t,n,i),a._transformDirty=!1}}var EO=KW;var Uae={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:zae,_countGeneratedBuffers:Hae};Uae.process=function(e,t,n){let i=e.model.statistics,o=t.instances,r=e.runtimeNode;zae(i,o),Hae(i,r)};function zae(e,t){if(!l(t))return;let n=t.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r.buffer)&&e.addBuffer(r.buffer,!1)}}function Hae(e,t){l(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),l(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),l(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var SO=Uae;function ZA(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=F.clone(n,this._originalTransform),this._transform=F.clone(n,this._transform),this._transformToRoot=F.clone(i,this._transformToRoot),this._computedTransform=new F,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,NGe(this)}Object.defineProperties(ZA.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=F.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 l(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),ZW(this,t))}},rotation:{get:function(){return l(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Oe.equals(n,e)||(t.rotation=Oe.clone(e,t.rotation),ZW(this,t))}},scale:{get:function(){return l(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),ZW(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 NGe(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=F.multiply(n,t,i);let o=e.node;l(o.matrix)||(e._transformParameters=new Xg(o.translation,o.rotation,o.scale)),l(o.morphWeights)&&(e._morphWeights=o.morphWeights.slice());let r=o.articulationName;if(l(r)){let c=e.sceneGraph._runtimeArticulations[r];l(c)&&c.runtimeNodes.push(e)}}function ZW(e,t){e._transformDirty=!0,e._transform=F.fromTranslationRotationScale(t,e._transform)}ZA.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};ZA.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,l(e.instances)&&t.push(AO),t.push(SO),n.push(EO)};ZA.prototype.updateComputedTransform=function(){this._computedTransform=F.multiply(this._transformToRoot,this._transform,this._computedTransform)};ZA.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!l(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let o=0;o<i;o++){l(t[o])||(t[o]=new F);let r=F.multiplyTransformation(this.transformToRoot,this.transform,t[o]),s=F.inverseTransformation(r,t[o]);t[o]=F.multiplyTransformation(s,n[o],t[o])}};var vO=ZA;var Gae={name:"AlphaPipelineStage"};Gae.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===ve.TRANSLUCENT&&(r.cull.enabled=!1,r.depthMask=!1,r.blending=un.ALPHA_BLEND);let s=e.shaderBuilder,a=e.uniformMap;l(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,pe.FRAGMENT),s.addUniform("float","u_alphaCutoff",pe.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var wO=Gae;var Wae={name:"BatchTexturePipelineStage"};Wae.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=yt(o,e.uniformMap)};var DO=Wae;var jae={name:"ClassificationPipelineStage"};jae.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,pe.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||FGe(t,o)};function FGe(e,t){let n=Kt.getAttributeBySemantic(e,Tt.POSITION);if(!l(n))throw new ce("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=Kt.getAttributeBySemantic(e,Tt.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let u=[],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 C=x-g,A=x;u.push(C),f.push(A),g=A,p=T}}let m=s-g;u.push(m),t.batchLengths=u,t.batchOffsets=f}var IO=jae;var PO=`void filterByPassType(inout vec3 positionMC, vec4 featureColor)
{
    bool styleTranslucent = (featureColor.a != 1.0);
    // Only render translucent features in the translucent pass (if the style or the original command has translucency).
    if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent)
    {
        // If the model has a translucent silhouette, it needs to render during the silhouette color command,
        // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent.
        #ifdef HAS_SILHOUETTE
        positionMC *= float(model_silhouettePass);
        #else
        positionMC *= 0.0;
        #endif
    }
    // If the current pass is not the translucent pass and the style is not translucent, don't render the feature.
    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 RO=`void filterByPassType(vec4 featureColor)
{
    bool styleTranslucent = (featureColor.a != 1.0);
    // Only render translucent features in the translucent pass (if the style or the original command has translucency).
    if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent)
    {   
        // If the model has a translucent silhouette, it needs to render during the silhouette color command,
        // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent.
        #ifdef HAS_SILHOUETTE
        if(!model_silhouettePass) {
            discard;
        }
        #else
        discard;
        #endif
    }
    // If the current pass is not the translucent pass and the style is not translucent, don't render the feature.
    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 a feature ID vertex attribute is used, the pass type filter is applied in the vertex shader.
    // So, we only apply in in the fragment shader if the feature ID texture is used.
    #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION)
    filterByPassType(featureColor);
    #endif

    featureColor = czm_gammaCorrect(featureColor);

    // Classification models compute the diffuse differently.
    #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 qae={name:"CPUStylingPipelineStage"};qae.process=function(e,t,n){let i=e.model,o=e.shaderBuilder;o.addVertexLines(PO),o.addFragmentLines(RO),o.addDefine("USE_CPU_STYLING",void 0,pe.BOTH),l(i.color)||(o.addUniform("float",Ey.COLOR_BLEND_UNIFORM_NAME,pe.FRAGMENT),e.uniformMap[Ey.COLOR_BLEND_UNIFORM_NAME]=function(){return dc.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),o.addUniform("bool","model_commandTranslucent",pe.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===ve.TRANSLUCENT}};var OO=qae;var Yae={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};Yae.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var m_=Object.freeze(Yae);var MO=`void customShaderStage(
    inout czm_modelVertexOutput vsOutput, 
    inout ProcessedAttributes attributes, 
    FeatureIds featureIds,
    Metadata metadata,
    MetadataClass metadataClass,
    MetadataStatistics metadataStatistics
) {
    // VertexInput and initializeInputStruct() are dynamically generated in JS, 
    // see CustomShaderPipelineStage.js
    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 LO=`void customShaderStage(
    inout czm_modelMaterial material,
    ProcessedAttributes attributes,
    FeatureIds featureIds,
    Metadata metadata,
    MetadataClass metadataClass,
    MetadataStatistics metadataStatistics
) {
    // FragmentInput and initializeInputStruct() are dynamically generated in JS, 
    // see CustomShaderPipelineStage.js
    FragmentInput fsInput;
    initializeInputStruct(fsInput, attributes);
    fsInput.featureIds = featureIds;
    fsInput.metadata = metadata;
    fsInput.metadataClass = metadataClass;
    fsInput.metadataStatistics = metadataStatistics;
    fragmentMain(fsInput, material);
}
`;var NO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) {
  initializeFeatureIds(featureIds, attributes);
  initializeFeatureIdAliases(featureIds);
}
`;var FO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) 
{
  initializeFeatureIds(featureIds, attributes);
  initializeFeatureIdAliases(featureIds);
  setFeatureIdVaryings();
}
`;var zi={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()"};zi.process=function(e,t,n){let i=e.shaderBuilder;BGe(i);let o=e.runtimeNode.node.instances;l(o)&&kGe(e,o,n),VGe(e,t,n),i.addVertexLines(FO),i.addFragmentLines(NO)};function BGe(e){e.addStruct(zi.STRUCT_ID_FEATURE_IDS_VS,zi.STRUCT_NAME_FEATURE_IDS,pe.VERTEX),e.addStruct(zi.STRUCT_ID_FEATURE_IDS_FS,zi.STRUCT_NAME_FEATURE_IDS,pe.FRAGMENT),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,pe.VERTEX),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,pe.FRAGMENT),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,pe.VERTEX),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,pe.FRAGMENT),e.addFunction(zi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,zi.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,pe.VERTEX)}function kGe(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 xn.FeatureIdAttribute?UGe(e,s,a):Xae(e,s,a,o,1,n);let c=s.label;l(c)&&Kae(e,a,c,pe.BOTH)}}function VGe(e,t,n){let i=t.featureIds,r=Kt.getAttributeBySemantic(t,Tt.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,u=pe.BOTH;a instanceof xn.FeatureIdAttribute?zGe(e,a,c):a instanceof xn.FeatureIdImplicitRange?Xae(e,a,c,r,void 0,n):(HGe(e,a,c,s,n),u=pe.FRAGMENT);let f=a.label;l(f)&&Kae(e,c,f,u)}}function UGe(e,t,n){let i=e.shaderBuilder;i.addStructField(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(zi.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}));`,u=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[u]),i.addVarying("float",a),i.addFunctionLines(zi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function zGe(e,t,n){let i=e.shaderBuilder;i.addStructField(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(zi.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(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function Xae(e,t,n,i,o,r){GGe(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(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(zi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function HGe(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,u=e.shaderBuilder;u.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n),u.addUniform("sampler2D",r,pe.FRAGMENT);let d=`v_texCoord_${a.texCoord}`,p=d,g=a.transform;if(l(g)&&!$.equals(g,$.IDENTITY)){let b=`${r}Transform`;u.addUniform("mat3",b,pe.FRAGMENT),s[b]=function(){return g},p=`vec2(${b} * vec3(${d}, 1.0))`}let m=`texture(${r}, ${p}).${c}`,x=`featureIds.${n} = czm_unpackUint(${m});`;u.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[x])}function Kae(e,t,n,i){let o=e.shaderBuilder,r=pe.includesVertexShader(i);r&&o.addStructField(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),o.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];r&&o.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),o.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function GGe(e,t,n,i,o){let r=e.model,s,a;if(l(t.repeat)){let u=WGe(t,n);s=_t.createVertexBuffer({context:o.context,typedArray:u,usage:Fe.STATIC_DRAW}),s.vertexArrayDestroyable=!1,r._pipelineResources.push(s),r.statistics.addBuffer(s,!1)}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 WGe(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 Sy=zi;var BO=`void metadataStage(
  out Metadata metadata,
  out MetadataClass metadataClass,
  out MetadataStatistics metadataStatistics,
  ProcessedAttributes attributes
  )
{
  initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
}
`;var kO=`void metadataStage(
  out Metadata metadata,
  out MetadataClass metadataClass,
  out MetadataStatistics metadataStatistics,
  ProcessedAttributes attributes
  )
{
  initializeMetadata(metadata, metadataClass, metadataStatistics, attributes);
  setMetadataVaryings();
}
`;var Ai={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"}]};Ai.process=function(e,t,n){let{shaderBuilder:i,model:o}=e,{structuralMetadata:r={},content:s}=o,a=s?.tileset.metadataExtension?.statistics,c=jGe(r.propertyAttributes,t,a),u=YGe(r.propertyTextures,a),f=c.concat(u);KGe(i,f),QGe(i),i.addVertexLines(kO),i.addFragmentLines(BO);for(let d=0;d<c.length;d++){let p=c[d];JGe(e,p)}for(let d=0;d<u.length;d++){let p=u[d];t5e(e,p)}};function jGe(e,t,n){return l(e)?e.flatMap(i=>qGe(i,t,n)):[]}function qGe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=Kt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),u=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);u[f]={metadataVariable:r(d),property:p,type:p.classProperty.type,glslType:m,variableName:x,propertyStatistics:a?.properties[d],shaderDestination:pe.BOTH}}return u}function YGe(e,t){return l(e)?e.flatMap(n=>XGe(n,t)):[]}function XGe(e,t){let{sanitizeGlslIdentifier:n}=Kt,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,u]=r[a];s[a]={metadataVariable:n(c),property:u,type:u.classProperty.type,glslType:u.getGlslType(),propertyStatistics:o?.properties[c],shaderDestination:pe.FRAGMENT}}return s}function KGe(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:u,propertyStatistics:f}=t[a];n.add(u),l(f)&&c!==At.ENUM&&i.add(u)}let o=Ai.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,o)}let r=Ai.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,r)}function s(a,c,u){e.addStruct(a,a,pe.BOTH);for(let f=0;f<u.length;f++){let{shaderName:d}=u[f],p=u[f].type==="float"?$Ge(c):c;e.addStructField(a,p,d)}}}var ZGe={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function $Ge(e){let t=ZGe[e];return l(t)?t:e}function QGe(e){e.addStruct(Ai.STRUCT_ID_METADATA_VS,Ai.STRUCT_NAME_METADATA,pe.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_FS,Ai.STRUCT_NAME_METADATA,pe.FRAGMENT),e.addStruct(Ai.STRUCT_ID_METADATA_CLASS_VS,Ai.STRUCT_NAME_METADATA_CLASS,pe.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_CLASS_FS,Ai.STRUCT_NAME_METADATA_CLASS,pe.FRAGMENT),e.addStruct(Ai.STRUCT_ID_METADATA_STATISTICS_VS,Ai.STRUCT_NAME_METADATA_STATISTICS,pe.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_STATISTICS_FS,Ai.STRUCT_NAME_METADATA_STATISTICS,pe.FRAGMENT),e.addFunction(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,Ai.FUNCTION_SIGNATURE_INITIALIZE_METADATA,pe.VERTEX),e.addFunction(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,Ai.FUNCTION_SIGNATURE_INITIALIZE_METADATA,pe.FRAGMENT),e.addFunction(Ai.FUNCTION_ID_SET_METADATA_VARYINGS,Ai.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,pe.VERTEX)}function JGe(e,t){e5e(e,t),Zae(e.shaderBuilder,t),$ae(e.shaderBuilder,t)}function e5e(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:o,glslType:r}=t,s=Jae({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:r,metadataVariable:i,shaderDestination:pe.BOTH,property:o});n.addStructField(Ai.STRUCT_ID_METADATA_VS,r,i),n.addStructField(Ai.STRUCT_ID_METADATA_FS,r,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function t5e(e,t){n5e(e,t),Zae(e.shaderBuilder,t),$ae(e.shaderBuilder,t)}function n5e(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:o,glslType:r,property:s}=t,{texCoord:a,channels:c,index:u,texture:f,transform:d}=s.textureReader,p=`u_propertyTexture_${u}`;i.hasOwnProperty(p)||(n.addUniform("sampler2D",p,pe.FRAGMENT),i[p]=()=>f),n.addStructField(Ai.STRUCT_ID_METADATA_FS,r,o);let g=`attributes.texCoord_${a}`,m=g;if(l(d)&&!$.equals(d,$.IDENTITY)){let A=`${p}Transform`;n.addUniform("mat3",A,pe.FRAGMENT),i[A]=function(){return d},m=`vec2(${A} * vec3(${g}, 1.0))`}let x=`texture(${p}, ${m}).${c}`,b=s.unpackInShader(x),T=Jae({valueExpression:b,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:pe.FRAGMENT,property:s}),C=`metadata.${o} = ${T};`;n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,[C])}function Zae(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Qae(Ai.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Ai.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,s),pe.includesVertexShader(r)&&(e.addStructField(Ai.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function $ae(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===At.ENUM)return;let s=Ai.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Qae(s,n,a,r),u=`${r}MetadataStatistics`;e.addStructField(Ai.STRUCT_ID_METADATA_STATISTICS_FS,u,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,c),pe.includesVertexShader(t.shaderDestination)&&(e.addStructField(Ai.STRUCT_ID_METADATA_STATISTICS_VS,u,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Qae(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function Jae(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:u}=e;s.addUniform(c,o,u),s.addUniform(c,r,u);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var Mf=Ai;var i5e={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},vy=Object.freeze(i5e);var fa={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:xt};fa.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;l(a)&&(e.lightingOptions.lightingModel=a),c===vy.TRANSLUCENT?r.pass=ve.TRANSLUCENT:c===vy.OPAQUE&&(r.pass=void 0);let u=f5e(s,t);if(!u.customShaderEnabled)return;if(p5e(i,s,u),u.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,pe.BOTH),l(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,pe.VERTEX),l(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,pe.FRAGMENT);let p=m_.getDefineName(s.mode);i.addDefine(p,void 0,pe.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=yt(e.uniformMap,s.uniformMap)};function o5e(e){let t={};for(let n=0;n<e.length;n++){let i=Kt.getAttributeInfo(e[n]);t[i.variableName]=i}return t}var r5e={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},s5e={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 ece(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=r5e[t],i=s5e[t];if(l(n))return{attributeField:[n,e],value:i}}function a5e(e,t){if(!l(e.vertexShaderText))return{enabled:!1};let n=e.usedVariablesVertex.attributeSet,i=tce(t,n,!1),o=nce(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 u=o[c],f=ece(u);if(!l(f))return fa._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${u}, disabling custom vertex shader`),{enabled:!1};s.push(f.attributeField),r=`vsInput.attributes.${u} = ${f.value};`,a.push(r)}return{enabled:!0,attributeFields:s,initializationLines:a}}function c5e(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 l5e(e,t){if(!l(e.fragmentShaderText))return{enabled:!1};let n=e.usedVariablesFragment.attributeSet,i=tce(t,n,!0),o=nce(t,n,!0),r,s=[],a=[];for(let u in i){if(!i.hasOwnProperty(u))continue;let d=[i[u].glslType,u];s.push(d),r=`fsInput.attributes.${u} = attributes.${u};`,a.push(r)}for(let u=0;u<o.length;u++){let f=o[u],d=ece(f);if(!l(d))return fa._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=c5e(e);return{enabled:!0,attributeFields:s.concat(c.attributeFields),initializationLines:c.initializationLines.concat(a)}}var u5e={positionWC:!0,positionEC:!0};function tce(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 nce(e,t,n){let i=[];for(let o in t){if(!t.hasOwnProperty(o)||u5e.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 f5e(e,t){let n=o5e(t.attributes),i=a5e(e,n),o=l5e(e,n),s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&o.enabled;return{vertexLines:i,fragmentLines:o,customShaderEnabled:i.enabled||o.enabled,shouldComputePositionWC:s}}function d5e(e,t){let n=fa.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(n,fa.STRUCT_NAME_ATTRIBUTES,pe.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=fa.STRUCT_ID_VERTEX_INPUT,e.addStruct(n,fa.STRUCT_NAME_VERTEX_INPUT,pe.VERTEX),e.addStructField(n,fa.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,Sy.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,Mf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=fa.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(r,fa.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,pe.VERTEX),e.addFunctionLines(r,o)}function h5e(e,t){let n=fa.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(n,fa.STRUCT_NAME_ATTRIBUTES,pe.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=fa.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(n,fa.STRUCT_NAME_FRAGMENT_INPUT,pe.FRAGMENT),e.addStructField(n,fa.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,Sy.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,Mf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=fa.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(r,fa.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,pe.FRAGMENT),e.addFunctionLines(r,o)}var m5e=[];function p5e(e,t,n){let{vertexLines:i,fragmentLines:o}=n,r=m5e;i.enabled&&(d5e(e,i),r.length=0,r.push("#line 0",t.vertexShaderText,MO),e.addVertexLines(r)),o.enabled&&(h5e(e,o),r.length=0,r.push("#line 0",t.fragmentShaderText,LO),e.addFragmentLines(r))}var VO=fa;var UO={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};UO.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=l(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,pe.VERTEX),i.addFunction(UO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,UO.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,pe.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],u=c.quantization;if(!l(u))continue;let f=c.semantic===Tt.POSITION,d=c.semantic===Tt.TEXCOORD;if(r&&!f&&!d)continue;let p=Kt.getAttributeInfo(c);g5e(i,p),_5e(e,p)}};function _5e(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,pe.VERTEX),i[s]=function(){return r.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${o}`,a=`model_quantizedVolumeStepSize_${o}`,c=t.glslType;n.addUniform(c,s,pe.VERTEX),n.addUniform(c,a,pe.VERTEX);let u=r.quantizedVolumeOffset,f=r.quantizedVolumeStepSize;/^color_\d+$/.test(o)&&(u=ice(u,0),f=ice(f,1)),i[s]=function(){return u},i[a]=function(){return f}}}function ice(e,t){return e instanceof oe?e:new oe(e.x,e.y,e.z,t)}function g5e(e,t){let n=t.variableName,i=t.attribute.quantization,o;i.octEncoded?o=y5e(n,i):o=x5e(n),e.addFunctionLines(UO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[o])}function y5e(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 x5e(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,o=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${o};`}var zO=UO;var HO=`void geometryStage(out ProcessedAttributes attributes)
{
  attributes.positionMC = v_positionMC;
  attributes.positionEC = v_positionEC;

  #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE)
  attributes.positionWC = v_positionWC;
  #endif

  #ifdef HAS_NORMALS
  // renormalize after interpolation
  attributes.normalEC = normalize(v_normalEC);
  #endif

  #ifdef HAS_TANGENTS
  attributes.tangentEC = normalize(v_tangentEC);
  #endif

  #ifdef HAS_BITANGENTS
  attributes.bitangentEC = normalize(v_bitangentEC);
  #endif

  // Everything else is dynamically generated in GeometryPipelineStage
  setDynamicVaryings(attributes);
}
`;var GO=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal)
{
    vec4 computedPosition;

    // Compute positions in different coordinate systems
    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

    // Sometimes the custom shader and/or style needs this
    #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) || defined(ENABLE_CLIPPING_POLYGONS)
    // Note that this is a 32-bit position which may result in jitter on small
    // scales.
    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

    // All other varyings need to be dynamically generated in
    // GeometryPipelineStage
    setDynamicVaryings(attributes);

    return computedPosition;
}
`;var $A=`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);
    }
    // Floating point comparisons can be unreliable in GLSL, so we
    // increment the feature ID to make sure it's always greater
    // then the model_featuresLength - a condition we check for in the
    // pick ID, to avoid sampling the pick texture if the feature ID is
    // greater than the number of features.
    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 WO={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature"};WO.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=b5e(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),T5e(i);let c=s.featureIds.nullFeatureId,u=e.uniformMap;l(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),u.model_nullFeatureId=function(){return c}),s.shaderDestination===pe.BOTH&&i.addVertexLines($A),i.addFragmentLines($A)};function oce(e){return e instanceof xn.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function rce(e){return e instanceof xn.FeatureIdTexture?pe.FRAGMENT:pe.BOTH}function b5e(e,t,n){let i,o;return l(t.instances)&&(o=Kt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(o))?(i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:rce(o),featureIdDefine:oce(o)}):(o=Kt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:rce(o),featureIdDefine:oce(o)})}function T5e(e){e.addStructField(WO.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(WO.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(WO.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var wy=WO;var Ys={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)"};Ys.process=function(e,t,n){let{shaderBuilder:i,model:o}=e;i.addStruct(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",pe.VERTEX),i.addStruct(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",pe.FRAGMENT),i.addStruct(wy.STRUCT_ID_SELECTED_FEATURE,wy.STRUCT_NAME_SELECTED_FEATURE,pe.BOTH),i.addFunction(Ys.FUNCTION_ID_INITIALIZE_ATTRIBUTES,Ys.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,pe.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,Ys.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.VERTEX),i.addFunction(Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,Ys.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.FRAGMENT),o.type===lr.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,pe.FRAGMENT);let r=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,s=l(e.runtimeNode.node.instances),a=r&&!s,c=t.attributes.length;for(let u=0;u<c;u++){let f=t.attributes[u],d=on.getAttributeLocationCount(f.type),p=f.semantic===Tt.POSITION,g;d>1?(g=e.attributeIndex,e.attributeIndex+=d):p&&!a?g=0:g=e.attributeIndex++,C5e(e,f,g,d,r,s)}R5e(i,t.attributes),t.primitiveType===Me.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(GO),i.addFragmentLines(HO)};function C5e(e,t,n,i,o,r){let s=e.shaderBuilder,a=Kt.getAttributeInfo(t),c=o&&!r;i>1?S5e(e,t,n,i):E5e(e,t,n,c),w5e(s,a,c),v5e(s,a),l(t.semantic)&&A5e(s,t),D5e(s,a,o),I5e(s,a,c),P5e(s,a)}function A5e(e,t){let{semantic:n,setIndex:i}=t;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 E5e(e,t,n,i){let{quantization:o,semantic:r,setIndex:s}=t,{type:a,componentDatatype:c}=l(o)?o:t;r===Tt.FEATURE_ID&&s>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=s+1);let u=r===Tt.POSITION,f=u?0:n,d=on.getNumberOfComponents(a),p={index:f,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:c,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!u||!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 S5e(e,t,n,i){let{quantization:o,normalized:r}=t,{type:s,componentDatatype:a}=l(o)?o:t,u=on.getNumberOfComponents(s)/i,f=X.getSizeInBytes(a),d=u*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:u,componentDatatype:a,offsetInBytes:m,strideInBytes:p,normalize:r};e.attributes.push(x)}}function v5e(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 w5e(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 D5e(e,t,n){let i=Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,o=Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,{variableName:r,glslType:s}=t;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,s,r),e.addStructField(o,s,r)),r==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function I5e(e,t,n){let i=Ys.FUNCTION_ID_INITIALIZE_ATTRIBUTES,o=t.variableName;if(o==="positionMC"&&n&&e.addFunctionLines(i,["attributes.position2D = a_position2D;"]),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 P5e(e,t){let{semantic:n,setIndex:i}=t.attribute;if(l(n)&&!l(i))return;let o=Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,r=t.variableName,s=`v_${r} = attributes.${r};`;e.addFunctionLines(o,[s]),o=Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${r} = v_${r};`,e.addFunctionLines(o,[s])}function R5e(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(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var jO=Ys;var qO=`#ifdef USE_IBL_LIGHTING
vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material)
{
    #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL)
        // Environment maps were provided, use them for IBL
        vec3 viewDirection = -normalize(position);
        vec3 iblColor = textureIBL(viewDirection, normal, material);
        return iblColor;
    #endif
    
    return vec3(0.0);
}
#endif

#ifdef USE_CLEARCOAT
vec3 addClearcoatReflection(vec3 baseLayerColor, vec3 position, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material)
{
    vec3 viewDirection = -normalize(position);
    vec3 halfwayDirection = normalize(viewDirection + lightDirection);
    vec3 normal = material.clearcoatNormal;
    float NdotL = clamp(dot(normal, lightDirection), 0.001, 1.0);

    // clearcoatF0 = vec3(pow((ior - 1.0) / (ior + 1.0), 2.0)), but without KHR_materials_ior, ior is a constant 1.5.
    vec3 f0 = vec3(0.04);
    vec3 f90 = vec3(1.0);
    // Note: clearcoat Fresnel computed with dot(n, v) instead of dot(v, h).
    // This is to make it energy conserving with a simple layering function.
    float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0);
    vec3 F = fresnelSchlick2(f0, f90, NdotV);

    // compute specular reflection from direct lighting
    float roughness = material.clearcoatRoughness;
    float alphaRoughness = roughness * roughness;
    float directStrength = computeDirectSpecularStrength(normal, lightDirection, viewDirection, halfwayDirection, alphaRoughness);
    vec3 directReflection = F * directStrength * NdotL;
    vec3 color = lightColorHdr * directReflection;

    #ifdef SPECULAR_IBL
        // Find the direction in which to sample the environment map
        vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflect(-viewDirection, normal));
        vec3 iblColor = computeSpecularIBL(reflectMC, NdotV, f0, roughness);
        color += iblColor * material.occlusion;
    #endif

    float clearcoatFactor = material.clearcoatFactor;
    vec3 clearcoatColor = color * clearcoatFactor;

    // Dim base layer based on transmission loss through clearcoat
    return baseLayerColor * (1.0 - clearcoatFactor * F) + clearcoatColor;
}
#endif

#if defined(LIGHTING_PBR) && defined(HAS_NORMALS)
vec3 computePbrLighting(in czm_modelMaterial material, in vec3 position)
{
    #ifdef USE_CUSTOM_LIGHT_COLOR
        vec3 lightColorHdr = model_lightColorHdr;
    #else
        vec3 lightColorHdr = czm_lightColorHdr;
    #endif

    vec3 viewDirection = -normalize(position);
    vec3 normal = material.normalEC;
    vec3 lightDirection = normalize(czm_lightDirectionEC);

    vec3 directLighting = czm_pbrLighting(viewDirection, normal, lightDirection, material);
    vec3 directColor = lightColorHdr * directLighting;

    // Accumulate colors from base layer
    vec3 color = directColor + material.emissive;
    #ifdef USE_IBL_LIGHTING
        color += computeIBL(position, normal, lightDirection, lightColorHdr, material);
    #endif

    #ifdef USE_CLEARCOAT
        color = addClearcoatReflection(color, position, lightDirection, lightColorHdr, material);
    #endif

    return color;
}
#endif

/**
 * Compute the material color under the current lighting conditions.
 * All other material properties are passed through so further stages
 * have access to them.
 *
 * @param {czm_modelMaterial} material The material properties from {@MaterialStageFS}
 * @param {ProcessedAttributes} attributes
 */
void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes)
{
    #ifdef LIGHTING_PBR
        #ifdef HAS_NORMALS
            vec3 color = computePbrLighting(material, attributes.positionEC);
        #else
            vec3 color = material.diffuse * material.occlusion + material.emissive;
        #endif
        // In HDR mode, the frame buffer is in linear color space. The
        // post-processing stages (see PostProcessStageCollection) will handle
        // tonemapping. However, if HDR is not enabled, we must tonemap else large
        // values may be clamped to 1.0
        #ifndef HDR
            color = czm_pbrNeutralTonemapping(color);
        #endif
    #else // unlit
        vec3 color = material.diffuse;
    #endif

    #ifdef HAS_POINT_CLOUD_COLOR_STYLE
        // The colors resulting from point cloud styles are adjusted differently.
        color = czm_gammaCorrect(color);
    #elif !defined(HDR)
        // If HDR is not enabled, the frame buffer stores sRGB colors rather than
        // linear colors so the linear value must be converted.
        color = czm_linearToSrgb(color);
    #endif

    material.diffuse = color;
}
`;var O5e={UNLIT:0,PBR:1},ym=Object.freeze(O5e);var sce={name:"LightingPipelineStage"};sce.process=function(e,t){let{model:n,lightingOptions:i,shaderBuilder:o}=e;if(l(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,pe.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",pe.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}let{lightingModel:r}=i;r===ym.PBR?o.addDefine("LIGHTING_PBR",void 0,pe.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,pe.FRAGMENT),o.addFragmentLines(qO)};var YO=sce;var XO=`// If the style color is white, it implies the feature has not been styled.
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_NORMAL_TEXTURE
vec2 getNormalTexCoords()
{
    vec2 texCoord = TEXCOORD_NORMAL;
    #ifdef HAS_NORMAL_TEXTURE_TRANSFORM
        texCoord = vec2(u_normalTextureTransform * vec3(texCoord, 1.0));
    #endif
    return texCoord;
}
#endif

#if defined(HAS_NORMAL_TEXTURE) || defined(HAS_CLEARCOAT_NORMAL_TEXTURE)
vec3 computeTangent(in vec3 position, in vec2 normalTexCoords)
{
    vec2 tex_dx = dFdx(normalTexCoords);
    vec2 tex_dy = dFdy(normalTexCoords);
    float determinant = tex_dx.x * tex_dy.y - tex_dy.x * tex_dx.y;
    vec3 tangent = tex_dy.t * dFdx(position) - tex_dx.t * dFdy(position);
    return tangent / determinant;
}
#endif

#ifdef USE_ANISOTROPY
struct NormalInfo {
    vec3 tangent;
    vec3 bitangent;
    vec3 normal;
    vec3 geometryNormal;
};

NormalInfo getNormalInfo(ProcessedAttributes attributes)
{
    vec3 geometryNormal = attributes.normalEC;
    #ifdef HAS_NORMAL_TEXTURE
        vec2 normalTexCoords = getNormalTexCoords();
    #endif

    #ifdef HAS_BITANGENTS
        vec3 tangent = attributes.tangentEC;
        vec3 bitangent = attributes.bitangentEC;
    #else // Assume HAS_NORMAL_TEXTURE
        vec3 tangent = computeTangent(attributes.positionEC, normalTexCoords);
        tangent = normalize(tangent - geometryNormal * dot(geometryNormal, tangent));
        vec3 bitangent = normalize(cross(geometryNormal, tangent));
    #endif

    #ifdef HAS_NORMAL_TEXTURE
        mat3 tbn = mat3(tangent, bitangent, geometryNormal);
        vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;
        normalSample = 2.0 * normalSample - 1.0;
        #ifdef HAS_NORMAL_TEXTURE_SCALE
            normalSample.xy *= u_normalTextureScale;
        #endif
        vec3 normal = normalize(tbn * normalSample);
    #else
        vec3 normal = geometryNormal;
    #endif

    #ifdef HAS_DOUBLE_SIDED_MATERIAL
        if (czm_backFacing()) {
            tangent *= -1.0;
            bitangent *= -1.0;
            normal *= -1.0;
            geometryNormal *= -1.0;
        }
    #endif

    NormalInfo normalInfo;
    normalInfo.tangent = tangent;
    normalInfo.bitangent = bitangent;
    normalInfo.normal = normal;
    normalInfo.geometryNormal = geometryNormal;

    return normalInfo;
}
#endif

#if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME)
vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal)
{
    vec2 normalTexCoords = getNormalTexCoords();

    // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set
    #ifdef HAS_BITANGENTS
        vec3 t = attributes.tangentEC;
        vec3 b = attributes.bitangentEC;
    #else
        vec3 t = computeTangent(attributes.positionEC, normalTexCoords);
        t = normalize(t - geometryNormal * dot(geometryNormal, t));
        vec3 b = normalize(cross(geometryNormal, t));
    #endif

    mat3 tbn = mat3(t, b, geometryNormal);
    vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb;
    normalSample = 2.0 * normalSample - 1.0;
    #ifdef HAS_NORMAL_TEXTURE_SCALE
        normalSample.xy *= u_normalTextureScale;
    #endif
    return normalize(tbn * normalSample);
}
#endif

#ifdef HAS_CLEARCOAT_NORMAL_TEXTURE
vec3 getClearcoatNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal)
{
    vec2 normalTexCoords = TEXCOORD_CLEARCOAT_NORMAL;
    #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_TRANSFORM
        normalTexCoords = vec2(u_clearcoatNormalTextureTransform * vec3(normalTexCoords, 1.0));
    #endif

    // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set
    #ifdef HAS_BITANGENTS
        vec3 t = attributes.tangentEC;
        vec3 b = attributes.bitangentEC;
    #else
        vec3 t = computeTangent(attributes.positionEC, normalTexCoords);
        t = normalize(t - geometryNormal * dot(geometryNormal, t));
        vec3 b = normalize(cross(geometryNormal, t));
    #endif

    mat3 tbn = mat3(t, b, geometryNormal);
    vec3 normalSample = texture(u_clearcoatNormalTexture, normalTexCoords).rgb;
    normalSample = 2.0 * normalSample - 1.0;
    #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_SCALE
        normalSample.xy *= u_clearcoatNormalTextureScale;
    #endif
    return normalize(tbn * normalSample);
}
#endif

#ifdef HAS_NORMALS
vec3 computeNormal(ProcessedAttributes attributes)
{
    // Geometry normal. This is already normalized 
    vec3 normal = attributes.normalEC;

    #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME)
        normal = getNormalFromTexture(attributes, normal);
    #endif

    #ifdef HAS_DOUBLE_SIDED_MATERIAL
        if (czm_backFacing()) {
            normal = -normal;
        }
    #endif

    return normal;
}
#endif

#ifdef HAS_BASE_COLOR_TEXTURE
vec4 getBaseColorFromTexture()
{
    vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR;
    #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM
        baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform);
    #endif

    vec4 baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords));

    #ifdef HAS_BASE_COLOR_FACTOR
        baseColorWithAlpha *= u_baseColorFactor;
    #endif

    return baseColorWithAlpha;
}
#endif

#ifdef HAS_EMISSIVE_TEXTURE
vec3 getEmissiveFromTexture()
{
    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

    return emissive;
}
#endif

#if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS)
void setSpecularGlossiness(inout czm_modelMaterial material)
{
    #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_LEGACY_SPECULAR_FACTOR
            specular *= u_legacySpecularFactor;
        #endif

        #ifdef HAS_GLOSSINESS_FACTOR
            glossiness *= u_glossinessFactor;
        #endif
    #else
        #ifdef HAS_LEGACY_SPECULAR_FACTOR
            vec3 specular = clamp(u_legacySpecularFactor, 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

    material.diffuse = diffuse.rgb * (1.0 - czm_maximumComponent(specular));
    // the specular glossiness extension's alpha overrides anything set
    // by the base material.
    material.alpha = diffuse.a;

    material.specular = specular;

    // glossiness is the opposite of roughness, but easier for artists to use.
    material.roughness = 1.0 - glossiness;
}
#elif defined(LIGHTING_PBR)
float setMetallicRoughness(inout czm_modelMaterial material)
{
    #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.0, 1.0);
        #ifdef HAS_METALLIC_FACTOR
            metalness = clamp(metalness * u_metallicFactor, 0.0, 1.0);
        #endif

        #ifdef HAS_ROUGHNESS_FACTOR
            roughness = clamp(roughness * u_roughnessFactor, 0.0, 1.0);
        #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.0, 1.0);
        #else
            float roughness = 1.0;
        #endif
    #endif

    // dielectrics use f0 = 0.04, metals use albedo as f0
    const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04);
    vec3 f0 = mix(REFLECTANCE_DIELECTRIC, material.baseColor.rgb, metalness);

    material.specular = f0;

    // diffuse only applies to dielectrics.
    material.diffuse = mix(material.baseColor.rgb, vec3(0.0), metalness);

    // This is perceptual roughness. The square of this value is used for direct lighting
    material.roughness = roughness;

    return metalness;
}
#ifdef USE_SPECULAR
void setSpecular(inout czm_modelMaterial material, in float metalness)
{
    #ifdef HAS_SPECULAR_TEXTURE
        vec2 specularTexCoords = TEXCOORD_SPECULAR;
        #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM
            specularTexCoords = computeTextureTransform(specularTexCoords, u_specularTextureTransform);
        #endif
        float specularWeight = texture(u_specularTexture, specularTexCoords).a;
        #ifdef HAS_SPECULAR_FACTOR
            specularWeight *= u_specularFactor;
        #endif
    #else
        #ifdef HAS_SPECULAR_FACTOR
            float specularWeight = u_specularFactor;
        #else
            float specularWeight = 1.0;
        #endif
    #endif

    #ifdef HAS_SPECULAR_COLOR_TEXTURE
        vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR;
        #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM
            specularColorTexCoords = computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform);
        #endif
        vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb;
        vec3 specularColorFactor = czm_srgbToLinear(specularColorSample);
        #ifdef HAS_SPECULAR_COLOR_FACTOR
            specularColorFactor *= u_specularColorFactor;
        #endif
    #else
        #ifdef HAS_SPECULAR_COLOR_FACTOR
            vec3 specularColorFactor = u_specularColorFactor;
        #else
            vec3 specularColorFactor = vec3(1.0);
        #endif
    #endif
    material.specularWeight = specularWeight;
    vec3 f0 = material.specular;
    vec3 dielectricSpecularF0 = min(f0 * specularColorFactor, vec3(1.0));
    material.specular = mix(dielectricSpecularF0, material.baseColor.rgb, metalness);
}
#endif
#ifdef USE_ANISOTROPY
void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo)
{
    mat2 rotation = mat2(u_anisotropy.xy, -u_anisotropy.y, u_anisotropy.x);
    float anisotropyStrength = u_anisotropy.z;

    vec2 direction = vec2(1.0, 0.0);
    #ifdef HAS_ANISOTROPY_TEXTURE
        vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY;
        #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM
            anisotropyTexCoords = computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform);
        #endif
        vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb;
        direction = anisotropySample.rg * 2.0 - vec2(1.0);
        anisotropyStrength *= anisotropySample.b;
    #endif

    direction = rotation * direction;
    mat3 tbn = mat3(normalInfo.tangent, normalInfo.bitangent, normalInfo.normal);
    vec3 anisotropicT = tbn * normalize(vec3(direction, 0.0));
    vec3 anisotropicB = cross(normalInfo.geometryNormal, anisotropicT);

    material.anisotropicT = anisotropicT;
    material.anisotropicB = anisotropicB;
    material.anisotropyStrength = anisotropyStrength;
}
#endif
#ifdef USE_CLEARCOAT
void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attributes)
{
    #ifdef HAS_CLEARCOAT_TEXTURE
        vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT;
        #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM
            clearcoatTexCoords = computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform);
        #endif
        float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r;
        #ifdef HAS_CLEARCOAT_FACTOR
            clearcoatFactor *= u_clearcoatFactor;
        #endif
    #else
        #ifdef HAS_CLEARCOAT_FACTOR
            float clearcoatFactor = u_clearcoatFactor;
        #else
            // PERFORMANCE_IDEA: this case should turn the whole extension off
            float clearcoatFactor = 0.0;
        #endif
    #endif

    #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE
        vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS;
        #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM
            clearcoatRoughnessTexCoords = computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform);
        #endif
        float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g;
        #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR
            clearcoatRoughness *= u_clearcoatRoughnessFactor;
        #endif
    #else
        #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR
            float clearcoatRoughness = u_clearcoatRoughnessFactor;
        #else
            float clearcoatRoughness = 0.0;
        #endif
    #endif

    material.clearcoatFactor = clearcoatFactor;
    // This is perceptual roughness. The square of this value is used for direct lighting
    material.clearcoatRoughness = clearcoatRoughness;
    #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE
        material.clearcoatNormal = getClearcoatNormalFromTexture(attributes, attributes.normalEC);
    #else
        material.clearcoatNormal = attributes.normalEC;
    #endif
}
#endif
#endif

void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature)
{
    #ifdef USE_ANISOTROPY
        NormalInfo normalInfo = getNormalInfo(attributes);
        material.normalEC = normalInfo.normal;
    #elif defined(HAS_NORMALS)
        material.normalEC = computeNormal(attributes);
    #endif

    vec4 baseColorWithAlpha = vec4(1.0);
    // Regardless of whether we use PBR, set a base color
    #ifdef HAS_BASE_COLOR_TEXTURE
        baseColorWithAlpha = getBaseColorFromTexture();
    #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;
        // .pnts files store colors in the sRGB color space
        #ifdef HAS_SRGB_COLOR
            color = czm_srgbToLinear(color);
        #endif
        baseColorWithAlpha *= color;
    #endif

    #ifdef USE_CPU_STYLING
        baseColorWithAlpha.rgb = blend(baseColorWithAlpha.rgb, feature.color.rgb, model_colorBlend);
    #endif
    material.baseColor = baseColorWithAlpha;
    material.diffuse = baseColorWithAlpha.rgb;
    material.alpha = baseColorWithAlpha.a;

    #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
        material.emissive = getEmissiveFromTexture();
    #elif defined(HAS_EMISSIVE_FACTOR)
        material.emissive = u_emissiveFactor;
    #endif

    #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS)
        setSpecularGlossiness(material);
    #elif defined(LIGHTING_PBR)
        float metalness = setMetallicRoughness(material);
        #ifdef USE_SPECULAR
            setSpecular(material, metalness);
        #endif
        #ifdef USE_ANISOTROPY
            setAnisotropy(material, normalInfo);
        #endif
        #ifdef USE_CLEARCOAT
            setClearcoat(material, attributes);
        #endif
    #endif
}
`;var{Material:M5e,MetallicRoughness:$W,SpecularGlossiness:QW,Specular:ace,Clearcoat:cce}=xn,lce={name:"MaterialPipelineStage",_processTexture:zl,_processTextureTransform:uce};lce.process=function(e,t,n){let i=t.material,{model:o,uniformMap:r,shaderBuilder:s}=e,a=l(o.classificationType),c=a,{defaultTexture:u,defaultNormalTexture:f,defaultEmissiveTexture:d}=n.context;N5e(i,r,s,u,f,d,c),l(i.specularGlossiness)?F5e(i.specularGlossiness,r,s,u,c):(l(i.specular)&&Kt.supportedExtensions.KHR_materials_specular&&B5e(i.specular,r,s,u,c),l(i.anisotropy)&&Kt.supportedExtensions.KHR_materials_anisotropy&&V5e(i.anisotropy,r,s,u,c),l(i.clearcoat)&&Kt.supportedExtensions.KHR_materials_clearcoat&&U5e(i.clearcoat,r,s,u,c),z5e(i.metallicRoughness,r,s,u,c));let p=Kt.getAttributeBySemantic(t,Tt.NORMAL),g=e.lightingOptions;i.unlit||!p||a?g.lightingModel=ym.UNLIT:g.lightingModel=ym.PBR;let m=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=m;let x=e.alphaOptions;i.alphaMode===pm.BLEND?x.pass=ve.TRANSLUCENT:i.alphaMode===pm.MASK&&(x.alphaCutoff=i.alphaCutoff),s.addFragmentLines(XO),i.doubleSided&&s.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,pe.BOTH)};function uce(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,pe.FRAGMENT),t[s]=function(){return n.transform}}function L5e(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_SCALE`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Scale`;e.addUniform("float",s,pe.FRAGMENT),t[s]=function(){return n.scale}}function zl(e,t,n,i,o,r){e.addUniform("sampler2D",i,pe.FRAGMENT),t[i]=function(){return y(n.texture,r)};let s=`HAS_${o}_TEXTURE`;e.addDefine(s,void 0,pe.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,u=`TEXCOORD_${o}`;e.addDefine(u,c,pe.FRAGMENT);let f=n.transform;l(f)&&!$.equals(f,$.IDENTITY)&&uce(e,t,n,i,o);let{scale:d}=n;l(d)&&d!==1&&L5e(e,t,n,i,o)}function N5e(e,t,n,i,o,r,s){let{emissiveFactor:a,emissiveTexture:c,normalTexture:u,occlusionTexture:f}=e;l(a)&&!h.equals(a,M5e.DEFAULT_EMISSIVE_FACTOR)&&(n.addUniform("vec3","u_emissiveFactor",pe.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,pe.FRAGMENT),l(c)&&!s&&zl(n,t,c,"u_emissiveTexture","EMISSIVE",r)),l(u)&&!s&&zl(n,t,u,"u_normalTexture","NORMAL",o),l(f)&&!s&&zl(n,t,f,"u_occlusionTexture","OCCLUSION",i)}function F5e(e,t,n,i,o){let{diffuseTexture:r,diffuseFactor:s,specularGlossinessTexture:a,specularFactor:c,glossinessFactor:u}=e;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,pe.FRAGMENT),l(r)&&!o&&zl(n,t,r,"u_diffuseTexture","DIFFUSE",i),l(s)&&!oe.equals(s,QW.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",pe.FRAGMENT),t.u_diffuseFactor=function(){return e.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,pe.FRAGMENT)),l(a)&&!o&&zl(n,t,a,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i),l(c)&&!h.equals(c,QW.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_legacySpecularFactor",pe.FRAGMENT),t.u_legacySpecularFactor=function(){return e.specularFactor},n.addDefine("HAS_LEGACY_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(u)&&u!==QW.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",pe.FRAGMENT),t.u_glossinessFactor=function(){return e.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,pe.FRAGMENT))}function B5e(e,t,n,i,o){let{specularTexture:r,specularFactor:s,specularColorTexture:a,specularColorFactor:c}=e;n.addDefine("USE_SPECULAR",void 0,pe.FRAGMENT),l(r)&&!o&&zl(n,t,r,"u_specularTexture","SPECULAR",i),l(s)&&s!==ace.DEFAULT_SPECULAR_FACTOR&&(n.addUniform("float","u_specularFactor",pe.FRAGMENT),t.u_specularFactor=function(){return e.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(a)&&!o&&zl(n,t,a,"u_specularColorTexture","SPECULAR_COLOR",i),l(c)&&!h.equals(c,ace.DEFAULT_SPECULAR_COLOR_FACTOR)&&(n.addUniform("vec3","u_specularColorFactor",pe.FRAGMENT),t.u_specularColorFactor=function(){return e.specularColorFactor},n.addDefine("HAS_SPECULAR_COLOR_FACTOR",void 0,pe.FRAGMENT))}var k5e=new h;function V5e(e,t,n,i,o){let{anisotropyStrength:r,anisotropyRotation:s,anisotropyTexture:a}=e;n.addDefine("USE_ANISOTROPY",void 0,pe.FRAGMENT),l(a)&&!o&&zl(n,t,a,"u_anisotropyTexture","ANISOTROPY",i);let c=Math.cos(s),u=Math.sin(s);n.addUniform("vec3","u_anisotropy",pe.FRAGMENT),t.u_anisotropy=function(){return h.fromElements(c,u,r,k5e)}}function U5e(e,t,n,i,o){let{clearcoatFactor:r,clearcoatTexture:s,clearcoatRoughnessFactor:a,clearcoatRoughnessTexture:c,clearcoatNormalTexture:u}=e;n.addDefine("USE_CLEARCOAT",void 0,pe.FRAGMENT),l(r)&&r!==cce.DEFAULT_CLEARCOAT_FACTOR&&(n.addUniform("float","u_clearcoatFactor",pe.FRAGMENT),t.u_clearcoatFactor=function(){return e.clearcoatFactor},n.addDefine("HAS_CLEARCOAT_FACTOR",void 0,pe.FRAGMENT)),l(s)&&!o&&zl(n,t,s,"u_clearcoatTexture","CLEARCOAT",i),l(a)&&r!==cce.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_clearcoatRoughnessFactor",pe.FRAGMENT),t.u_clearcoatRoughnessFactor=function(){return e.clearcoatRoughnessFactor},n.addDefine("HAS_CLEARCOAT_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT)),l(c)&&!o&&zl(n,t,c,"u_clearcoatRoughnessTexture","CLEARCOAT_ROUGHNESS",i),l(u)&&!o&&zl(n,t,u,"u_clearcoatNormalTexture","CLEARCOAT_NORMAL",i)}function z5e(e,t,n,i,o){n.addDefine("USE_METALLIC_ROUGHNESS",void 0,pe.FRAGMENT);let r=e.baseColorTexture;l(r)&&!o&&zl(n,t,r,"u_baseColorTexture","BASE_COLOR",i);let s=e.baseColorFactor;l(s)&&!oe.equals(s,$W.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",pe.FRAGMENT),t.u_baseColorFactor=function(){return e.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,pe.FRAGMENT));let a=e.metallicRoughnessTexture;l(a)&&!o&&zl(n,t,a,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let c=e.metallicFactor;l(c)&&c!==$W.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",pe.FRAGMENT),t.u_metallicFactor=function(){return e.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,pe.FRAGMENT));let u=e.roughnessFactor;l(u)&&u!==$W.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",pe.FRAGMENT),t.u_roughnessFactor=function(){return e.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT))}var KO=lce;var Jc={name:"MetadataPickingPipelineStage",METADATA_PICKING_ENABLED:"METADATA_PICKING_ENABLED",METADATA_PICKING_VALUE_TYPE:"METADATA_PICKING_VALUE_TYPE",METADATA_PICKING_VALUE_STRING:"METADATA_PICKING_VALUE_STRING",METADATA_PICKING_VALUE_COMPONENT_X:"METADATA_PICKING_VALUE_COMPONENT_X",METADATA_PICKING_VALUE_COMPONENT_Y:"METADATA_PICKING_VALUE_COMPONENT_Y",METADATA_PICKING_VALUE_COMPONENT_Z:"METADATA_PICKING_VALUE_COMPONENT_Z",METADATA_PICKING_VALUE_COMPONENT_W:"METADATA_PICKING_VALUE_COMPONENT_W"};Jc.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine(Jc.METADATA_PICKING_VALUE_TYPE,"float",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_STRING,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_X,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_Y,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_Z,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_W,"0.0",pe.FRAGMENT),i.addFunction("metadataPickingStage","void metadataPickingStage(Metadata metadata, MetadataClass metadataClass, inout vec4 metadataValues)",pe.FRAGMENT),i.addFunctionLines("metadataPickingStage",[`${Jc.METADATA_PICKING_VALUE_TYPE} value = ${Jc.METADATA_PICKING_VALUE_TYPE}(${Jc.METADATA_PICKING_VALUE_STRING});`,`metadataValues.x = ${Jc.METADATA_PICKING_VALUE_COMPONENT_X};`,`metadataValues.y = ${Jc.METADATA_PICKING_VALUE_COMPONENT_Y};`,`metadataValues.z = ${Jc.METADATA_PICKING_VALUE_COMPONENT_Z};`,`metadataValues.w = ${Jc.METADATA_PICKING_VALUE_COMPONENT_W};`],pe.FRAGMENT)};var Su=Jc;var ZO=`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 Fa={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)"};Fa.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,pe.VERTEX),Y5e(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,u=c.length;for(let f=0;f<u;f++){let d=c[f],p=d.semantic;p!==Tt.POSITION&&p!==Tt.NORMAL&&p!==Tt.TANGENT||(G5e(e,d,e.attributeIndex,a),e.attributeIndex++)}}X5e(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,pe.VERTEX),n.addVertexLines(ZO);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=yt(s,e.uniformMap)};var H5e={attributeString:void 0,functionId:void 0};function G5e(e,t,n,i){let o=e.shaderBuilder;W5e(e,t,n);let r=j5e(t,H5e);q5e(o,r,i)}function W5e(e,t,n){let i={index:n,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:on.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function j5e(e,t){switch(e.semantic){case Tt.POSITION:t.attributeString="Position",t.functionId=Fa.FUNCTION_ID_GET_MORPHED_POSITION;break;case Tt.NORMAL:t.attributeString="Normal",t.functionId=Fa.FUNCTION_ID_GET_MORPHED_NORMAL;break;case Tt.TANGENT:t.attributeString="Tangent",t.functionId=Fa.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function q5e(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 Y5e(e){e.addFunction(Fa.FUNCTION_ID_GET_MORPHED_POSITION,Fa.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,pe.VERTEX),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_POSITION,["vec3 morphedPosition = position;"]),e.addFunction(Fa.FUNCTION_ID_GET_MORPHED_NORMAL,Fa.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,pe.VERTEX),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_NORMAL,["vec3 morphedNormal = normal;"]),e.addFunction(Fa.FUNCTION_ID_GET_MORPHED_TANGENT,Fa.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,pe.VERTEX),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_TANGENT,["vec3 morphedTangent = tangent;"])}function X5e(e){e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_POSITION,["return morphedPosition;"]),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_NORMAL,["return morphedNormal;"]),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_TANGENT,["return morphedTangent;"])}var $O=Fa;var fce={name:"PickingPipelineStage"};fce.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)K5e(e,t,a,i);else if(l(a))Z5e(e,i);else{let c=dce(e),u=i.createPickId(c);s._pipelineResources.push(u),s._pickIds.push(u),r.addUniform("vec4","czm_pickColor",pe.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return u.color},e.pickId="czm_pickColor"}};function dce(e,t){let n=e.model;if(l(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,l(t)&&(o.instanceId=t),o}function K5e(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;l(i.featureTableId)?o=i.featureTableId:l(n)?(r=Kt.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=Kt.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",pe.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 Z5e(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=dce(e,d),g=t.createPickId(p);s.push(g),i[d]=g;let m=g.color;o[d*4+0]=H.floatToByte(m.red),o[d*4+1]=H.floatToByte(m.green),o[d*4+2]=H.floatToByte(m.blue),o[d*4+3]=H.floatToByte(m.alpha)}r._pickIds=i;let a=_t.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.statistics.addBuffer(a,!1),s.push(a);let u={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(u);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,pe.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var QO=fce;var $5e={ADD:0,REPLACE:1},Go=Object.freeze($5e);var JO=`float getPointSizeFromAttenuation(vec3 positionEC) {
  // Variables are packed into a single vector to minimize gl.uniformXXX() calls
  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)
  // This needs to be computed in eye coordinates so we can't use attributes.normalMC
  return step(-v_normalEC.z, 0.0);
  #else
  return 1.0;
  #endif
}
#endif`;var Q5e=new oe,mce={name:"PointCloudStylingPipelineStage"};mce.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=l(s)?s.propertyAttributes:void 0,c=l(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,u=!l(a)&&c;if(l(r)&&!u){let x=n6e(a),b=i6e(r,x);o6e(i,b);let C=r6e(b).indexOf("normalMC")>=0,A=Kt.getAttributeBySemantic(t,Tt.NORMAL);if(C&&!A)throw new ce("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,pe.VERTEX),b.styleTranslucent&&(e.alphaOptions.pass=ve.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,pe.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,pe.VERTEX);let d,p,g;lr.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===Go.ADD),i.addUniform("vec4","model_pointCloudParameters",pe.VERTEX),i.addVertexLines(JO);let m=e.uniformMap;m.model_pointCloudParameters=function(){let x=Q5e,b=1;p&&(b=g?5:d.tileset.memoryAdjustedScreenSpaceError),x.x=y(f.maximumAttenuation,b),x.x*=n.pixelRatio;let T=J5e(e,t,f,d);x.y=T*f.geometricErrorScale;let C=n.context,A=n.camera.frustum,E;return n.mode===ne.SCENE2D||A instanceof rn?E=Number.POSITIVE_INFINITY:E=C.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=E,p&&(x.w=d.tileset.timeSinceLoad),x}};var hce=new h;function J5e(e,t,n,i){if(l(i)){let f=i.tile.geometricError;if(f>0)return f}if(l(n.baseResolution))return n.baseResolution;let o=Kt.getAttributeBySemantic(t,Tt.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,hce);a=F.multiplyByPointAsVector(s,a,hce);let c=a.x*a.y*a.z;return P.cbrt(c/r)}var e6e={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},t6e={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function n6e(e){let t=Ge(t6e);if(!l(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 JW="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function i6e(e,t){let n=e6e,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${JW})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${JW})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${JW})`,t,i),n.styleTranslucent=l(n.colorStyleFunction)&&i.translucent,n}function o6e(e,t){let n=t.colorStyleFunction;l(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,pe.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;l(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,pe.VERTEX),e.addVertexLines(i));let o=t.pointSizeStyleFunction;l(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,pe.VERTEX),e.addVertexLines(o))}function ej(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 r6e(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return l(t)&&ej(t,o),l(n)&&ej(n,o),l(i)&&ej(i,o),o}var eM=mce;var tM=`void primitiveOutlineStage() {
    v_outlineCoordinates = a_outlineCoordinates;
}
`;var nM=`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 pce={name:"PrimitiveOutlinePipelineStage"};pce.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,pe.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:on.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",pe.FRAGMENT);let a=yb.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",pe.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",pe.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines(tM),i.addFragmentLines(nM)};var iM=pce;var _ce={name:"PrimitiveStatisticsPipelineStage",_countGeometry:gce,_count2DPositions:yce,_countMorphTargetAttributes:xce,_countMaterialTextures:bce,_countFeatureIdTextures:Tce,_countBinaryMetadata:Cce};_ce.process=function(e,t,n){let i=e.model,o=i.statistics;gce(o,t),yce(o,e.runtimePrimitive),xce(o,t),bce(o,t.material),Tce(o,t.featureIds),Cce(o,i)};function gce(e,t){let n=l(t.indices)?t.indices.count:Kt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Me.POINTS?e.pointsLength+=n:Me.isTriangles(i)&&(e.trianglesLength+=s6e(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let u=o[c];if(l(u.buffer)){let f=l(u.typedArray);e.addBuffer(u.buffer,f)}}let s=t.outlineCoordinates;l(s)&&l(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(l(a)&&l(a.buffer)){let c=l(a.typedArray);e.addBuffer(a.buffer,c)}}function s6e(e,t){switch(e){case Me.TRIANGLES:return t/3;case Me.TRIANGLE_STRIP:case Me.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function yce(e,t){let n=t.positionBuffer2D;l(n)&&e.addBuffer(n,!0)}function xce(e,t){let n=t.morphTargets;if(!l(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 u=s[c];l(u.buffer)&&e.addBuffer(u.buffer,i)}}}function bce(e,t){let n=a6e(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r)&&l(r.texture)&&e.addTexture(r.texture)}}function a6e(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return l(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function Tce(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof xn.FeatureIdTexture){let r=o.textureReader;l(r.texture)&&e.addTexture(r.texture)}}}function Cce(e,t){let n=t.structuralMetadata;l(n)&&(c6e(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!l(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function c6e(e,t){let n=t.propertyTextures;if(!l(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 u=s[a].textureReader;l(u.texture)&&e.addTexture(u.texture)}}}var oM=_ce;var l6e=new F,u6e=new F,Ace={name:"SceneMode2DPipelineStage"};Ace.process=function(e,t,n){let i=Kt.getAttributeBySemantic(t,Tt.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=F.multiplyTransformation(s,a,l6e),u=h6e(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=u;let d=e.runtimeNode.node.instances;if(l(d))return;if(l(i.typedArray)){let x=_6e(i,c,u,n);f.positionBuffer2D=x,r._modelResources.push(x),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,pe.VERTEX),o.addUniform("mat4","u_modelView2D",pe.VERTEX);let p=F.fromTranslation(u.center,new F),g=n.context,m={u_modelView2D:function(){return F.multiplyTransformation(g.uniformState.view,p,u6e)}};e.uniformMap=yt(m,e.uniformMap)};var f6e=new h,d6e=new h;function h6e(e,t,n){let i=F.multiplyByPoint(t,e.positionMin,f6e),o=Ui.computeActualEllipsoidPosition(n,i,i),r=F.multiplyByPoint(t,e.positionMax,d6e),s=Ui.computeActualEllipsoidPosition(n,r,r);return se.fromCornerPoints(o,s,new se)}var Ece=new h;function m6e(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,Ece),c=h.multiplyComponents(a,r,a),u=h.add(c,o,c);i[s]=u.x,i[s+1]=u.y,i[s+2]=u.z}return i}function p6e(e,t,n,i){let o;l(e.quantization)?o=m6e(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=l(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let u=h.fromArray(o,c,Ece);if(isNaN(u.x)||isNaN(u.y)||isNaN(u.z))continue;let f=F.multiplyByPoint(t,u,u),d=Ui.computeActualEllipsoidPosition(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 _6e(e,t,n,i){let o=Ge(i);o.mode=ne.COLUMBUS_VIEW;let r=n.center,s=p6e(e,t,r,o),a=_t.createVertexBuffer({context:i.context,typedArray:s,usage:Fe.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var rM=Ace;var sM=`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 Cb={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};Cb.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,pe.VERTEX),y6e(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,pe.VERTEX),n.addVertexLines(sM);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=yt(r,e.uniformMap)};function g6e(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 y6e(e,t){e.addFunction(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,Cb.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,pe.VERTEX),e.addFunctionLines(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,["mat4 skinnedMatrix = mat4(0);"]);let i,o,r=["x","y","z","w"],s=g6e(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],u=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,[u])}e.addFunctionLines(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,["return skinnedMatrix;"])}var aM=Cb;var cM=`void verticalExaggerationStage(
  inout ProcessedAttributes attributes
) {
  // Compute the distance from the camera to the local center of curvature.
  vec4 vertexPositionENU = czm_modelToEnu * vec4(attributes.positionMC, 1.0);
  vec2 vertexAzimuth = normalize(vertexPositionENU.xy);
  // Curvature = 1 / radius of curvature.
  float azimuthalCurvature = dot(vertexAzimuth * vertexAzimuth, czm_eyeEllipsoidCurvature);
  float eyeToCenter = 1.0 / azimuthalCurvature + czm_eyeHeight;

  // Compute the approximate ellipsoid normal at the vertex position.
  // Uses a circular approximation for the Earth curvature along the geodesic.
  vec3 vertexPositionEC = (czm_modelView * vec4(attributes.positionMC, 1.0)).xyz;
  vec3 centerToVertex = eyeToCenter * czm_eyeEllipsoidNormalEC + vertexPositionEC;
  vec3 vertexNormal = normalize(centerToVertex);

  // Estimate the (sine of the) angle between the camera direction and the vertex normal
  float verticalDistance = dot(vertexPositionEC, czm_eyeEllipsoidNormalEC);
  float horizontalDistance = length(vertexPositionEC - verticalDistance * czm_eyeEllipsoidNormalEC);
  float sinTheta = horizontalDistance / (eyeToCenter + verticalDistance);
  bool isSmallAngle = clamp(sinTheta, 0.0, 0.05) == sinTheta;

  // Approximate the change in height above the ellipsoid, from camera to vertex position.
  float exactVersine = 1.0 - dot(czm_eyeEllipsoidNormalEC, vertexNormal);
  float smallAngleVersine = 0.5 * sinTheta * sinTheta;
  float versine = isSmallAngle ? smallAngleVersine : exactVersine;
  float dHeight = dot(vertexPositionEC, vertexNormal) - eyeToCenter * versine;
  float vertexHeight = czm_eyeHeight + dHeight;

  // Transform the approximate vertex normal to model coordinates.
  vec3 vertexNormalMC = (czm_inverseModelView * vec4(vertexNormal, 0.0)).xyz;
  vertexNormalMC = normalize(vertexNormalMC);

  // Compute the exaggeration and apply it along the approximate vertex normal.
  float stretch = u_verticalExaggerationAndRelativeHeight.x;
  float shift = u_verticalExaggerationAndRelativeHeight.y;
  float exaggeration = (vertexHeight - shift) * (stretch - 1.0);
  attributes.positionMC += exaggeration * vertexNormalMC;
}
`;var Sce={name:"VerticalExaggerationPipelineStage"},x6e=new z;Sce.process=function(e,t,n){let{shaderBuilder:i,uniformMap:o}=e;i.addVertexLines(cM),i.addDefine("HAS_VERTICAL_EXAGGERATION",void 0,pe.VERTEX),i.addUniform("vec2","u_verticalExaggerationAndRelativeHeight",pe.VERTEX),o.u_verticalExaggerationAndRelativeHeight=function(){return z.fromElements(n.verticalExaggeration,n.verticalExaggerationRelativeHeight,x6e)}};var lM=Sce;var tj={};function b6e(e){let t=Ne.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 T6e(e,t){let n=t.length,i=Ne.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 C6e(e){let t=e-2,n=2+t*4,i=Ne.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 A6e(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],u=t[a+1],f=t[a+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=c}return r}function E6e(e){let t=e-2,n=2+t*4,i=Ne.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 S6e(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let u=t[c+1],f=t[c+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=a}return r}tj.createWireframeIndices=function(e,t,n){let i=l(n);if(e===Me.TRIANGLES)return i?T6e(t,n):b6e(t);if(e===Me.TRIANGLE_STRIP)return i?A6e(t,n):C6e(t);if(e===Me.TRIANGLE_FAN)return i?S6e(t,n):E6e(t)};tj.getWireframeIndicesCount=function(e,t){return e===Me.TRIANGLES?t*2:e===Me.TRIANGLE_STRIP||e===Me.TRIANGLE_FAN?2+(t-2)*4:t};var QA=tj;var vce={name:"WireframePipelineStage"};vce.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,pe.FRAGMENT);let o=e.model,r=v6e(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r,o.statistics.addBuffer(r,!1);let a=e.primitiveType,c=e.count;e.primitiveType=Me.LINES,e.count=QA.getWireframeIndicesCount(a,c)};function v6e(e,t,n){let o=Kt.getAttributeBySemantic(e,Tt.POSITION).count,r=n.context.webgl2,s;if(l(t)){let f=t.buffer,d=t.count;l(f)&&r?(s=f.sizeInBytes===d?new Uint8Array(d):Ne.createTypedArray(o,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=QA.createWireframeIndices(a,o,s),u=Ne.fromSizeInBytes(c.BYTES_PER_ELEMENT);return _t.createIndexBuffer({context:n.context,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:u})}var uM=vce;function wce(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=[]}wce.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,u=e.mode!==ne.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,f=e.verticalExaggeration!==1&&o.hasVerticalExaggeration,d=l(n.morphTargets)&&n.morphTargets.length>0,p=l(i.skin),g=l(r),x=!(g&&l(r.fragmentShaderText))||r.mode!==m_.REPLACE_MATERIAL,b=Kt.hasQuantizedAttributes(n.attributes),T=o.debugWireframe&&Me.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),C=o.pointCloudShading,A=l(C)&&C.attenuation,E=l(C)&&C.backFaceCulling,v=n.primitiveType===Me.POINTS&&(l(s)||A||E),D=o._enableShowOutline&&l(n.outlineCoordinates),O=w6e(o,i,n),R=l(o.classificationType);u&&t.push(rM),t.push(jO),T&&t.push(uM),R&&t.push(IO),d&&t.push($O),p&&t.push(aM),v&&t.push(eM),b&&t.push(zO),x&&t.push(KO),t.push(Sy),t.push(Mf),t.push(Su),O.hasPropertyTable&&(t.push(wy),t.push(DO),t.push(OO)),f&&t.push(lM),g&&t.push(VO),t.push(YO),o.allowPicking&&t.push(QO),D&&t.push(iM),t.push(wO),t.push(oM)};function w6e(e,t,n){let i;return l(t.instances)&&(i=Kt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=Kt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var fM=wce;function nj(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=[],D6e(this)}Object.defineProperties(nj.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 D6e(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 u=i[c].index,f=r[u];s.push(f);let d=n[c],p=Dce(f,d,new F);a.push(p)}}function Dce(e,t,n){let i=F.multiplyTransformation(e.transformToRoot,e.transform,n);return n=F.multiplyTransformation(i,t,n),n}nj.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]=Dce(i,o,e[n])}};var dM=nj;function I6e(){this.pass=void 0,this.alphaCutoff=void 0}var hM=I6e;function P6e(e){this.shaderBuilder=new xx,this.model=e,this.uniformMap={},this.alphaOptions=new hM,this.renderStateOptions=Ve.getState(Ve.fromCache({depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var mM=P6e;var pM=`void silhouetteStage(inout vec4 color) {
    if(model_silhouettePass) {
        color = czm_gammaCorrect(model_silhouetteColor);
    }
}`;var _M=`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 cz={name:"ModelSilhouettePipelineStage"};cz.silhouettesLength=0;cz.process=function(e,t,n){l(t._silhouetteId)||(t._silhouetteId=++cz.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,pe.BOTH),i.addVertexLines(_M),i.addFragmentLines(pM),i.addUniform("vec4","model_silhouetteColor",pe.FRAGMENT),i.addUniform("float","model_silhouetteSize",pe.VERTEX),i.addUniform("bool","model_silhouettePass",pe.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=yt(o,e.uniformMap),e.hasSilhouette=!0};var gM=cz;var yM=`void modelSplitterStage()
{
    // Don't split when rendering the shadow map, because it is rendered from
    // the perspective of a totally different camera.
#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 lz={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};lz.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,pe.FRAGMENT),i.addFragmentLines(yM);let o={};i.addUniform("float",lz.SPLIT_DIRECTION_UNIFORM_NAME,pe.FRAGMENT),o[lz.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=yt(o,e.uniformMap)};var xM=lz;function R6e(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 bM=R6e;function O6e(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,ym.UNLIT)}var TM=O6e;function M6e(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=l(n.indices)?n.indices.count:Kt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Kt.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 TM,this.pickId=void 0}var CM=M6e;function oj(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!==Vn.CESIUM_3D_TILE,this._classifies3DTiles=o!==Vn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],B6e(this)}function L6e(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:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL},depthMask:!1}}var N6e={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},F6e={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},Rce=[];function B6e(e){let t=e._command,n=Rce;if(e._useDebugWireframe){t.pass=ve.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=AM(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=ve.TERRAIN_CLASSIFICATION,s=ij(t,r),a=Ice(t,r);n.length=0,n.push(s,a),e._commandListTerrain=AM(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=Pce(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=ve.CESIUM_3D_TILE_CLASSIFICATION,s=ij(t,r),a=Ice(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=AM(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=Pce(e,n,e._commandList3DTilesPicking))}}function AM(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 u=o[c],f=r[c];for(let d=0;d<a;d++){let p=t[d],g=Ze.shallowClone(p);g.count=u,g.offset=f,n.push(g)}}return n}function ij(e,t){let n=Ze.shallowClone(e);n.cull=!1,n.pass=t;let i=t===ve.TERRAIN_CLASSIFICATION?Un.ALWAYS:Un.EQUAL,o=L6e(i);return n.renderState=Ve.fromCache(o),n}function Ice(e,t){let n=Ze.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=Ve.fromCache(N6e),n}var k6e=[];function Pce(e,t,n){let i=Ve.fromCache(F6e),o=t[0],r=t[1],s=Ze.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=Ze.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=k6e;return c.length=0,c.push(s,a),AM(e,c,n)}Object.defineProperties(oj.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=F.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}}});oj.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=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,r=ij(this._command,o),s=Rce;s.length=0,s.push(r),this._commandListIgnoreShow=AM(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 EM=oj;function uz(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===ve.TRANSLUCENT,a=!o.primitive.material.doubleSided&&!r,c=n.hasSilhouette,u=!r&&!c,f=n.hasSkipLevelOfDetail&&!r,d=c;this._command=t,this._modelMatrix=F.clone(t.modelMatrix),this._boundingVolume=se.clone(t.boundingVolume),this._modelMatrix2D=new F,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=u,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,V6e(this)}function p_(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}p_.clone=function(e){return new p_({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function V6e(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 p_({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new p_({command:q6e(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new p_({command:Q6e(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new p_({command:J6e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new p_({command:Y6e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new p_({command:X6e(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand))}Object.defineProperties(uz.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=F.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,z6e(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,H6e(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,G6e(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,W6e(this))}}});function U6e(e,t){let n=e._modelMatrix;e._modelMatrix2D=F.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 z6e(e){let t=e.shadows,n=yn.castShadows(t),i=yn.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 H6e(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 G6e(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 W6e(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}}}uz.prototype.pushCommands=function(e,t){let n=Oce(this,e);n&&!this._has2DCommands&&(j6e(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(U6e(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&l(i)&&(i!==th.ALL_OPAQUE&&eE(t,this._translucentCommand,n),i===th.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||eE(o._backfaceCommands,this._skipLodBackfaceCommand,n),K6e(this,r,n),eE(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){eE(t,this._silhouetteModelCommand,n);return}return eE(t,this._originalCommand,n),t}};uz.prototype.pushSilhouetteCommands=function(e,t){let n=Oce(this,e);return eE(t,this._silhouetteColorCommand,n),t};function eE(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function Oce(e,t){if(t.mode!==ne.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 JA(e,t){if(!l(t))return;let n=p_.clone(t),i=Ze.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 j6e(e){JA(e,e._originalCommand),JA(e,e._translucentCommand),JA(e,e._skipLodBackfaceCommand),JA(e,e._skipLodStencilCommand),JA(e,e._silhouetteModelCommand),JA(e,e._silhouetteColorCommand)}function q6e(e){let t=Ze.shallowClone(e);t.pass=ve.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 Y6e(e,t){let n=t._silhouetteId%255,i=Ze.shallowClone(e),o=Ge(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:te.ALWAYS,backFunction:te.ALWAYS,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Ve.fromCache(o),i}function X6e(e,t){let n=t._silhouetteId%255,i=Ze.shallowClone(e),o=Ge(e.renderState,!0);o.cull.enabled=!1,(e.pass===ve.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=ve.TRANSLUCENT,o.depthMask=!1,o.blending=un.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:te.NOTEQUAL,backFunction:te.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.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 K6e(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=Z6e(o);if(r!==s){let a=$6e(r),c=Ge(o.renderState,!0);c.stencilTest.reference=a,o.renderState=Ve.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function Z6e(e){return(e.renderState.stencilTest.reference&Vt.SKIP_LOD_MASK)>>>Vt.SKIP_LOD_BIT_SHIFT}function $6e(e){return Vt.CESIUM_3D_TILE_MASK|e<<Vt.SKIP_LOD_BIT_SHIFT}function Q6e(e){let t=Ze.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 z(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 J6e(e){let t=Ze.shallowClone(e),n=Ge(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Vt.SKIP_LOD_MASK,i.reference=Vt.CESIUM_3D_TILE_MASK,i.frontFunction=Un.GREATER_OR_EQUAL,i.frontOperation.zPass=ft.REPLACE,i.backFunction=Un.GREATER_OR_EQUAL,i.backOperation.zPass=ft.REPLACE,n.stencilMask=Vt.CESIUM_3D_TILE_MASK|Vt.SKIP_LOD_MASK,t.renderState=Ve.fromCache(n),t}var SM=uz;var vM=`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_VERTICAL_EXAGGERATION
    verticalExaggerationStage(attributes);
    #endif

    #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);

    // This must go after the geometry stage as it needs v_positionWC
    #ifdef HAS_ATMOSPHERE
    atmosphereStage(attributes);
    #endif

    #ifdef ENABLE_CLIPPING_POLYGONS
    modelClippingPolygonsStage(attributes);
    #endif

    #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;
}
`;var wM=`
precision highp float;
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);

    //========================================================================
    // When not picking metadata START
    #ifndef METADATA_PICKING_ENABLED

    #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);

    // When not picking metadata END
    //========================================================================
    #else 
    //========================================================================
    // When picking metadata START

    vec4 metadataValues = vec4(0.0, 0.0, 0.0, 0.0);
    metadataPickingStage(metadata, metadataClass, metadataValues);
    vec4 color = metadataValues;

    #endif
    // When picking metadata END
    //========================================================================

    #ifdef HAS_CLIPPING_PLANES
    modelClippingPlanesStage(color);
    #endif

    #ifdef ENABLE_CLIPPING_POLYGONS
    modelClippingPolygonsStage();
    #endif

    //========================================================================
    // When not picking metadata START
    #ifndef METADATA_PICKING_ENABLED

    #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS)
    silhouetteStage(color);
    #endif

    #ifdef HAS_ATMOSPHERE
    atmosphereStage(color, attributes);
    #endif

    #endif
    // When not picking metadata END
    //========================================================================

    out_FragColor = color;
}
`;function Mce(){}Mce.buildModelDrawCommand=function(e,t){let n=e.shaderBuilder,i=e9e(e,n,t),o=t9e(e,i,t),r=e.model;return l(r.classificationType)?new EM({primitiveRenderResources:e,command:o}):new SM({primitiveRenderResources:e,command:o})};function e9e(e,t,n){t.addVertexLines(vM),t.addFragmentLines(wM);let i=e.model,o=t.buildShaderProgram(n.context);return i._pipelineResources.push(o),o}function t9e(e,t,n){let i=n9e(e),o=new ti({context:n.context,indexBuffer:i,attributes:e.attributes}),r=e.model;r._pipelineResources.push(o);let s=e.alphaOptions.pass,a=r.sceneGraph,c=n.mode===ne.SCENE3D,u,f;if(!c&&!n.scene3DOnly&&r._projectTo2D)u=F.multiplyTransformation(a._computedModelMatrix,e.runtimeNode.computedTransform,new F),f=e.runtimePrimitive.boundingSphere2D;else{let T=c?a._computedModelMatrix:a._computedModelMatrix2D;u=F.multiplyTransformation(T,e.runtimeNode.computedTransform,new F),f=se.transform(e.boundingSphere,u)}let d=Ge(Ve.fromCache(e.renderStateOptions),!0);d.cull.face=Kt.getCullFace(u,e.primitiveType),d=Ve.fromCache(d);let p=l(r.classificationType),g=p?!1:yn.castShadows(r.shadows),m=p?!1:yn.receiveShadows(r.shadows),x=p?void 0:e.pickId;return new Ze({boundingVolume:f,modelMatrix:u,uniformMap:e.uniformMap,renderState:d,vertexArray:o,shaderProgram:t,cull:r.cull,pass:s,count:e.count,owner:r,pickId:x,pickMetadataAllowed:!0,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:r.debugShowBoundingVolume,castShadows:g,receiveShadows:m})}function n9e(e){let t=e.wireframeIndexBuffer;if(l(t))return t;let n=e.indices;if(l(n))return n.buffer}var DM=Mce;function vu(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=F.clone(F.IDENTITY),this._computedModelMatrix2D=F.clone(F.IDENTITY),this._axisCorrectionMatrix=Kt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new F),this._runtimeArticulations={},i9e(this)}Object.defineProperties(vu.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 i9e(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;Lce(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let C=0;C<s;C++){let A=r[C],E=new fO({articulation:A,sceneGraph:e}),v=E.name;a[v]=E}let c=t.nodes,u=c.length;e._runtimeNodes=new Array(u);let d=n.nodes.length,p=F.IDENTITY;for(let C=0;C<d;C++){let A=n.nodes[C],E=Nce(e,A,p);e._rootNodes.push(E)}let g=t.skins,m=e._runtimeSkins,x=g.length;for(let C=0;C<x;C++){let A=g[C];m.push(new dM({skin:A,sceneGraph:e}))}let b=e._skinnedNodes,T=b.length;for(let C=0;C<T;C++){let A=b[C],E=e._runtimeNodes[A],D=c[A].skin.index;E._runtimeSkin=m[D],E.updateJointMatrices()}e.applyArticulations()}function Lce(e,t){let n=e._components,i=e._model;e._computedModelMatrix=F.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=F.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=F.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var o9e=new h;function r9e(e,t){let n=e._computedModelMatrix,i=F.getTranslation(n,o9e);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=Mt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=Mt.ellipsoidTo2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=F.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=se.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function Nce(e,t,n){let i=[],o=Kt.getNodeTransform(t),r=t.children.length;for(let f=0;f<r;f++){let d=t.children[f],p=F.multiplyTransformation(n,o,new F),g=Nce(e,d,p);i.push(g)}let s=new vO({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 fM({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,l(t.skin)&&e._skinnedNodes.push(c);let u=t.name;if(l(u)){let f=e._model,d=new yO(f,s);f._nodesByName[u]=d}return c}var s9e=new h,a9e=new h,c9e=new h,l9e=new h;vu.prototype.buildDrawCommands=function(e){let t=this._model,n=new mM(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,s9e),c=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,a9e);for(o=0;o<this._runtimeNodes.length;o++){let u=this._runtimeNodes[o];if(!l(u))continue;u.configurePipeline();let f=u.pipelineStages,d=new bM(n,u);for(r=0;r<f.length;r++)f[r].process(d,u.node,e);let p=u.computedTransform;for(r=0;r<u.runtimePrimitives.length;r++){let g=u.runtimePrimitives[r];g.configurePipeline(e);let m=g.pipelineStages,x=new CM(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=F.multiplyByPoint(p,x.positionMin,c9e),T=F.multiplyByPoint(p,x.positionMax,l9e);h.minimumByComponent(a,b,a),h.maximumByComponent(c,T,c);let C=DM.buildModelDrawCommand(x,e);g.drawCommand=C}}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};vu.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model,i=e.fog.enabled&&e.fog.renderable;l(n.color)&&t.push(Ey),!l(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(lO),n.isClippingEnabled()&&t.push(mO),n.isClippingPolygonsEnabled()&&t.push(gO),n.hasSilhouette(e)&&t.push(gM),l(n.splitDirection)&&n.splitDirection!==Nr.NONE&&t.push(xM),lr.is3DTiles(n.type)&&t.push(oO),i&&t.push(aO))};vu.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!l(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==ne.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)}}};vu.prototype.updateModelMatrix=function(e,t){Lce(this,e),t.mode!==ne.SCENE3D&&r9e(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};vu.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 Fce(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let u=t.getChild(c);Fce(e,u,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let u=s[c];i(u,o)}}function fz(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];Fce(e,c,t,n,i)}}var u9e={backFaceCulling:void 0};vu.prototype.updateBackFaceCulling=function(e){let t=u9e;t.backFaceCulling=e,fz(this,!1,f9e,t)};function f9e(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var d9e={shadowMode:void 0};vu.prototype.updateShadows=function(e){let t=d9e;t.shadowMode=e,fz(this,!1,h9e,t)};function h9e(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var m9e={debugShowBoundingVolume:void 0};vu.prototype.updateShowBoundingVolume=function(e){let t=m9e;t.debugShowBoundingVolume=e,fz(this,!1,p9e,t)};function p9e(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var Bce=[],_9e={frameState:void 0,hasSilhouette:void 0};vu.prototype.pushDrawCommands=function(e){let t=Bce;t.length=0;let n=_9e;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,fz(this,!0,g9e,n),e.commandList.push.apply(e.commandList,t)};function g9e(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=Bce,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!o.pick&&s.pushSilhouetteCommands(n,r)}vu.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];l(r)&&r.setArticulationStage(o,t)};vu.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var IM=vu;function tE(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new Et}Object.defineProperties(tE.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}}});tE.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()};tE.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};tE.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};tE.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var PM=tE;var zce=Vo(tV(),1);var kce={},Ab=Uint32Array.BYTES_PER_ELEMENT;kce.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=Ab;let o=i.getUint32(t,!0);if(o!==1)throw new ce(`Only Point Cloud tile version 1 is supported.  Version ${o} is not.`);t+=Ab,t+=Ab;let r=i.getUint32(t,!0);if(r===0)throw new ce("Feature table must have a byte length greater than zero");t+=Ab;let s=i.getUint32(t,!0);t+=Ab;let a=i.getUint32(t,!0);t+=Ab;let c=i.getUint32(t,!0);t+=Ab;let u=Mo(n,t,r);t+=r;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=Mo(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Jd(u,f),m=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=m,!l(m))throw new ce("Feature table global property: POINTS_LENGTH must be defined");let x=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(x)&&(x=h.unpack(x));let b=y9e(g,d);if(b.rtcCenter=x,b.pointsLength=m,!b.hasPositions){let T=x9e(g);b.positions=T,b.hasPositions=b.hasPositions||l(T)}if(!b.hasPositions)throw new ce("Either POSITION or POSITION_QUANTIZED must be defined.");if(!b.hasNormals){let T=T9e(g);b.normals=T,b.hasNormals=b.hasNormals||l(T)}if(!b.hasColors){let T=b9e(g);b.colors=T,b.hasColors=b.hasColors||l(T),b.hasConstantColor=l(b.constantColor),b.isTranslucent=l(T)&&T.isTranslucent}if(!b.hasBatchIds){let T=C9e(g);b.batchIds=T,b.hasBatchIds=b.hasBatchIds||l(T)}if(b.hasBatchIds){let T=g.getGlobalProperty("BATCH_LENGTH");if(!l(T))throw new ce("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");b.batchLength=T}return l(p)&&(p=new Uint8Array(p),b.batchTableJson=d,b.batchTableBinary=p),b};function y9e(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,u,f,d,p;if(l(s)){o=s.properties;let m=s.byteOffset,x=s.byteLength;if(!l(o)||!l(m)||!l(x))throw new ce("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(m,m+x),c=l(o.POSITION),u=l(o.RGB)||l(o.RGBA),f=l(o.NORMAL),d=l(o.BATCH_ID),p=l(o.RGBA)}let g;return l(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:yt(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:u,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function x9e(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(i))throw new ce("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65535,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(r))throw new ce("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:on.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:on.VEC3}}}function b9e(e){let t=e.json,n;if(l(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:on.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(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:on.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:on.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),o=i[3],r=H.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:on.VEC4,isQuantized:!1,isTranslucent:s}}}function T9e(e){let t=e.json,n;if(l(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:on.VEC3};if(l(t.NORMAL_OCT16P))return n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2),{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<8)-1,quantizedType:on.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:on.VEC3}}function C9e(e){let t=e.json;if(l(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:on.SCALAR}}}var Eb=kce;var A9e=xn.Components,E9e=xn.Scene,S9e=xn.Node,v9e=xn.Primitive,w9e=xn.Attribute,Vce=xn.Quantization,D9e=xn.FeatureIdAttribute,I9e=xn.Material,P9e=xn.MetallicRoughness;function Dy(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=mt.UNLOADED,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY}l(Object.create)&&(Dy.prototype=Object.create(Xi.prototype),Dy.prototype.constructor=Dy);Object.defineProperties(Dy.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});Dy.prototype.load=function(){if(l(this._promise))return this._promise;this._parsedContent=Eb.parse(this._arrayBuffer,this._byteOffset),this._state=mt.PROCESSING,this._promise=Promise.resolve(this)};Dy.prototype.process=function(e){if(l(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===mt.READY)return!0;if(this._state===mt.PROCESSING){if(l(this._decodePromise))return!1;this._decodePromise=R9e(this,e.context)}return!1};function R9e(e,t){let i=e._parsedContent.draco,o;if(l(i)?o=Zp.decodePointCloud(i,t):o=Promise.resolve(),!!l(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return l(r)&&O9e(e,i,r),G9e(e,t),e._state=mt.READY,e}).catch(function(r){e.unload(),e._state=mt.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function O9e(e,t,n){e._state=mt.READY;let i=e._parsedContent,o;if(l(n.POSITION)){if(o={name:"POSITION",semantic:Tt.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1},l(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,u=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=u,o.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,o.quantizedType=on.VEC3}i.positions=o}if(l(n.NORMAL)){if(o={name:"NORMAL",semantic:Tt.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},l(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=on.VEC2}i.normals=o}if(l(n.RGBA)?i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isTranslucent:!0}:l(n.RGB)&&(i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isTranslucent:!1}),l(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:on.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];l(r)||(r={}),i.hasDracoBatchTable=!0;let u=c.data;r[a]={byteOffset:u.byteOffset,type:M9e(u.componentsPerAttribute),componentType:L9e(u.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function M9e(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function L9e(e){switch(e){case te.BYTE:return"BYTE";case te.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case te.SHORT:return"SHORT";case te.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case te.INT:return"INT";case te.UNSIGNED_INT:return"UNSIGNED_INT";case te.DOUBLE:return"DOUBLE";case te.FLOAT:return"FLOAT"}}function RM(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new Vce,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new Vce;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 w9e;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=Mn.decodeRGB565(i)),l(t.constantColor)){let a=new Array(4);r.constant=H.pack(t.constantColor,a)}else{let a=_t.createVertexBuffer({typedArray:i,context:n,usage:Fe.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 Uce,dz;function N9e(e){if(!l(dz)){Uce=new zce.default(0),dz=new Array(e);for(let t=0;t<e;++t)dz[t]=Uce.random()}return dz}var F9e=new h,B9e=new h,k9e=new h;function V9e(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=N9e(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,F9e),u=h.fromElements(a,a,a,B9e),f,d,p;if(e.isQuantized)c=h.ZERO,u=e.quantizedVolumeScale;else for(f=0;f<o;++f)d=Math.floor(r[f]*i),p=h.unpack(t,d*3,k9e),h.minimumByComponent(c,p,c),h.maximumByComponent(u,p,u);e.min=h.clone(c),e.max=h.clone(u)}var U9e={name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:H.DARKGRAY,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:!1};function z9e(e,t,n){let i=[],o,r=t.positions;return l(r)&&(V9e(r),o=RM(e,r,n),o.count=t.pointsLength,i.push(o)),l(t.normals)&&(o=RM(e,t.normals,n),i.push(o)),l(t.colors)?(o=RM(e,t.colors,n),i.push(o)):(o=RM(e,U9e,n),i.push(o)),l(t.batchIds)&&(o=RM(e,t.batchIds,n),i.push(o)),i}function H9e(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableBinary,r=!l(e.batchIds);if(l(o)||e.hasDracoBatchTable){let s=y(n,i);return u_({count:s,batchTable:e.batchTableJson,binaryBody:o,parseAsPropertyAttributes:r,customAttributeOutput:t})}return new qs({schema:{},propertyTables:[]})}function G9e(e,t){let n=e._parsedContent,i=new P9e;i.metallicFactor=0,i.roughnessFactor=.9;let o=new I9e;o.metallicRoughness=i;let r=n.colors;l(r)&&r.isTranslucent&&(o.alphaMode=pm.BLEND);let s=!l(n.normals);o.unlit=s;let a=new v9e;if(a.attributes=z9e(e,n,t),a.primitiveType=Me.POINTS,a.material=o,l(n.batchIds)){let g=new D9e;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new S9e;c.index=0,c.primitives=[a];let u=new E9e;u.nodes=[c],u.upAxis=Oo.Z,u.forwardAxis=Oo.X;let f=new A9e;f.scene=u,f.nodes=[c];let d=[];f.structuralMetadata=H9e(n,d),d.length>0&&W9e(e,a,d,t),l(n.rtcCenter)&&(f.transform=F.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;l(p)&&p.isQuantized&&(f.transform=F.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function W9e(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=_t.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Fe.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}Dy.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 OM=Dy;var j9e=new h,q9e=new h,Y9e=new h,X9e=new F,K9e=new F,Z9e=new F,$9e=new fe,Q9e=new se;function nE(e,t,n,i,o,r,s){if(!e._ready||n.mode===ne.MORPHING)return;let a=Number.MAX_VALUE,c=e.sceneGraph,u=c._runtimeNodes;for(let f=0;f<u.length;f++){let d=u[f],p=d.node,g=F.clone(d.computedTransform,X9e),m=F.clone(c.computedModelMatrix,K9e),x=p.instances;l(x)&&x.transformInWorldSpace&&(m=F.multiplyTransformation(e.modelMatrix,c.components.transform,m),g=F.multiplyTransformation(c.axisCorrectionMatrix,d.computedTransform,g));let b=F.multiplyTransformation(m,g,Z9e);n.mode!==ne.SCENE3D&&(b=Mt.basisTo2D(n.mapProjection,b,b));let T=[];if(l(x)){let A=x.attributes[0].count,E=x.attributes[0].componentDatatype,v=12,D=d.transformsTypedArray;if(!l(D)){let O=d.instancingTransformsBuffer;l(O)&&n.context.webgl2&&(D=X.createTypedArray(E,A*v),O.getBufferData(D))}if(l(D))for(let O=0;O<A;O++){let R=O*v,M=new F(D[R],D[R+1],D[R+2],D[R+3],D[R+4],D[R+5],D[R+6],D[R+7],D[R+8],D[R+9],D[R+10],D[R+11],0,0,0,1);x.transformInWorldSpace?(F.multiplyTransformation(M,g,M),F.multiplyTransformation(m,M,M)):F.multiplyTransformation(M,b,M),T.push(M)}}T.length===0&&T.push(b);let C=d.runtimePrimitives.length;for(let A=0;A<C;A++){let E=d.runtimePrimitives[A],v=E.primitive;if(l(E.boundingSphere)&&!l(x)){let q=se.transform(E.boundingSphere,b,Q9e),J=$n.raySphere(t,q);if(!l(J))continue}let D=Kt.getAttributeBySemantic(v,Tt.POSITION),O=D.byteOffset,R=D.byteStride,M=D.count;if(!l(v.indices))continue;let N=v.indices.typedArray;if(!l(N)){let q=v.indices.buffer,J=v.indices.count,j=v.indices.indexDatatype;l(q)&&n.context.webgl2&&(j===Ne.UNSIGNED_BYTE?N=new Uint8Array(J):j===Ne.UNSIGNED_SHORT?N=new Uint16Array(J):j===Ne.UNSIGNED_INT&&(N=new Uint32Array(J)),q.getBufferData(N))}let _=D.typedArray,S=D.componentDatatype,w=D.type,I=D.quantization;l(I)&&(S=D.quantization.componentDatatype,w=D.quantization.type);let L=on.getNumberOfComponents(w),B=X.getSizeInBytes(S),U=!l(_)&&l(R)&&R!==L*B,V=L,G=0;U&&(V=R/B,G=O/B);let k=M*V;if(!l(_)){let q=D.buffer;l(q)&&n.context.webgl2&&(_=X.createTypedArray(S,k),q.getBufferData(_,U?0:O,0,k)),I&&D.normalized&&(_=Mn.dequantize(_,S,w,M))}if(!l(N)||!l(_))return;r=y(r,ee.default),i=y(i,1),o=y(o,0);let W=N.length;for(let q=0;q<W;q+=3){let J=N[q],j=N[q+1],K=N[q+2];for(let Q of T){let de=rj(_,J,G,V,I,Q,i,o,r,j9e),ye=rj(_,j,G,V,I,Q,i,o,r,q9e),ae=rj(_,K,G,V,I,Q,i,o,r,Y9e),_e=$n.rayTriangleParametric(t,de,ye,ae,y(e.backFaceCulling,!0));l(_e)&&_e<a&&_e>=0&&(a=_e)}}}}if(a!==Number.MAX_VALUE){if(s=mn.getPoint(t,a,s),n.mode!==ne.SCENE3D){h.fromElements(s.y,s.z,s.x,s);let f=n.mapProjection,d=f.ellipsoid,p=f.unproject(s,$9e);d.cartographicToCartesian(p,s)}return s}}function rj(e,t,n,i,o,r,s,a,c,u){let f=n+t*i;if(u.x=e[f],u.y=e[f+1],u.z=e[f+2],l(o))if(o.octEncoded){if(u=Mn.octDecodeInRange(u,o.normalizationRange,u),o.octEncodedZXY){let d=u.x;u.x=u.z,u.z=u.y,u.y=d}}else u=h.multiplyComponents(u,o.quantizedVolumeStepSize,u),u=h.add(u,o.quantizedVolumeOffset,u);return u=F.multiplyByPoint(r,u,u),s!==1&&Cr.getPosition(u,c,s,a,u),u}function ao(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,lr.GLTF),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=l(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 eO(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=H.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,dc.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,H.RED);this._silhouetteColor=H.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,ve.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,Ye.NONE),this._heightDirty=this._heightReference!==Ye.NONE,this._removeUpdateHeightCallback=void 0,this._enableVerticalExaggeration=y(e.enableVerticalExaggeration,!0),this._hasVerticalExaggeration=!1,this._clampedModelMatrix=void 0;let o=e.scene;l(o)&&l(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(()=>{this._heightDirty=!0})),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new gm(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;l(s)&&s.owner===void 0?_s.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=F.clone(F.IDENTITY);let a=e.clippingPolygons;l(a)&&a.owner===void 0?Kd.setOwner(a,this,"_clippingPolygons"):this._clippingPolygons=a,this._clippingPolygonsState=0,this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=l(e.imageBasedLighting)?e.imageBasedLighting:new qx,this._shouldDestroyImageBasedLighting=!l(e.imageBasedLighting),this._environmentMapManager=void 0;let c=new i_(e.environmentMapOptions);i_.setOwner(c,this,"_environmentMapManager"),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,yn.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&&xt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let u=e.credit;typeof u=="string"&&(u=new vt(u)),this._credits=[],this._credit=u,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,Nr.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,H.BLACK),this._classificationType=e.classificationType,this._statistics=new PM,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this._fogRenderable=void 0,this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._errorEvent=new me,this._readyEvent=new me,this._texturesReadyEvent=new me,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function sj(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function J9e(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 iO({model:e,propertyTable:s});n.push(a)}return n}function eWe(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],l(a.instances)&&(s=Kt.getFeatureIdsByLabel(a.instances.featureIds,i),l(s)&&l(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],u=Kt.getFeatureIdsByLabel(c.featureIds,n);if(l(u))return u.propertyTableId}if(t._featureTables.length===1)return 0}function lj(e,t){if(!l(e)&&!l(t))return!1;if(l(e)!==l(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(ao.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=Lt.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){lj(e,this._color)&&this.resetDrawCommands(),this._color=H.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(!H.equals(e,this._silhouetteColor)){let t=lj(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=H.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=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return Wce(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&&xt("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&&(_s.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){e!==this._clippingPolygons&&(Kd.setOwner(e,this,"_clippingPolygons"),this.resetDrawCommands())}},enableVerticalExaggeration:{get:function(){return this._enableVerticalExaggeration},set:function(e){e!==this._enableVerticalExaggeration&&this.resetDrawCommands(),this._enableVerticalExaggeration=e}},hasVerticalExaggeration:{get:function(){return this._hasVerticalExaggeration}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(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())}},environmentMapManager:{get:function(){return this._environmentMapManager},set:function(e){e!==this.environmentMapManager&&(i_.setOwner(e,this,"_environmentMapManager"),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}}});ao.prototype.getNode=function(e){return this._nodesByName[e]};ao.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};ao.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};ao.prototype.getExtension=function(e){return this._loader.components.extensions[e]};ao.prototype.makeStyleDirty=function(){this._styleDirty=!0};ao.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var tWe=new F,nWe=new $,iWe=new F;ao.prototype.update=function(e){let t=!1;try{t=oWe(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")sj(this,n);else{let i=Kt.getError("model",this._resource,n);sj(this,i)}}if(rWe(this,e),sWe(this,e),aWe(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!l(n)){if(this._loader.isUnloaded())return;let r=Kt.getError("model",this._resource,new ce("Failed to load model."));sj(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;l(i)&&i.propertyTableCount>0&&J9e(this,i);let o=new IM({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ne.MORPHING)){if(cWe(this),lWe(this),uWe(this,e),fWe(this),dWe(this,e),hWe(this,e),mWe(this,e),pWe(this,e),_We(this,e),gWe(this,e),yWe(this,e),this._defaultTexture=e.context.defaultTexture,xWe(this,e),bWe(this,e),TWe(this),CWe(this,e),vWe(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)),EWe(this),wWe(this,e),DWe(this),IWe(this,e)}};function oWe(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function rWe(e,t){l(e._customShader)&&e._customShader.update(t)}function sWe(e,t){let n=e._environmentMapManager,i=t.passes.pick||t.passes.pickVoxel;e._ready&&n.owner===e&&!i&&(n.position=e._boundingSphere.center,n.shouldUpdate=!l(e._imageBasedLighting.sphericalHarmonicCoefficients)||!l(e._imageBasedLighting.specularEnvironmentMaps),n.update(t),n.shouldRegenerateShaders&&e.resetDrawCommands())}function aWe(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function cWe(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=eWe(t,e),e._styleDirty=!0,e.resetDrawCommands())}function lWe(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function uWe(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&&Gce(e)}function Gce(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=th.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function fWe(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 dWe(e,t){e._silhouetteDirty&&(jce(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function hWe(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function mWe(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 pWe(e,t){let n=0;e.isClippingPolygonsEnabled()&&(e._clippingPolygons.owner===e&&(e._clippingPolygons.update(t),e._clippingPolygons.queueCommands(t)),n=e._clippingPolygons.clippingPolygonsState),n!==e._clippingPolygonsState&&(e.resetDrawCommands(),e._clippingPolygonsState=n)}function _We(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function gWe(e,t){let n=t.fog.enabled&&t.fog.renderable;n!==e._fogRenderable&&(e.resetDrawCommands(),e._fogRenderable=n)}function yWe(e,t){if(e.enableVerticalExaggeration){let n=t.verticalExaggeration!==1;e.hasVerticalExaggeration!==n&&(e.resetDrawCommands(),e._hasVerticalExaggeration=n)}else e.hasVerticalExaggeration&&(e.resetDrawCommands(),e._hasVerticalExaggeration=!1)}function xWe(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function bWe(e,t){F.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=F.clone(e.modelMatrix,e._modelMatrix))}var Iy=new h,aj=new fe;function TWe(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;l(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!l(t)||e.heightReference===Ye.NONE){e._clampedModelMatrix=void 0;return}let n=y(t.ellipsoid,ee.default),i=e.modelMatrix;Iy.x=i[12],Iy.y=i[13],Iy.z=i[14];let o=n.cartesianToCartographic(Iy);l(e._clampedModelMatrix)||(e._clampedModelMatrix=F.clone(i,new F)),e._removeUpdateHeightCallback=t.updateHeight(o,Hce(e,n,o),e.heightReference);let r=t.getHeight(o,e.heightReference);if(l(r)){let s=Hce(e,n,o);fe.clone(o,aj),aj.height=r,s(aj)}e._heightDirty=!1,e._updateModelMatrix=!0}function CWe(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;Wce(e,n),AWe(e,n,t)}function Wce(e,t){e._clampedScale=l(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 AWe(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let o=n.context,r=Math.max(o.drawingBufferWidth,o.drawingBufferHeight);F.getTranslation(t,Iy),e._sceneMode!==ne.SCENE3D&&Ui.computeActualEllipsoidPosition(n,Iy,Iy);let s=e._boundingSphere.radius,a=PWe(Iy,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=l(e.maximumScale)?Math.min(e.maximumScale,i):i}function EWe(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}var SWe=new $(1,0,0,0,0,1,0,-1,0);function vWe(e,t){let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),o=t.context,r=nWe,s=tWe;if(s=F.multiply(o.uniformState.view3D,i,s),r=F.getRotation(s,r),r=$.transpose(r,r),e._iblReferenceFrameMatrix=$.multiply(SWe,r,e._iblReferenceFrameMatrix),e.isClippingEnabled()){let a=iWe;a=F.multiply(o.uniformState.view3D,i,a),a=F.multiply(a,e._clippingPlanes.modelMatrix,a),e._clippingPlanesMatrix=F.inverseTranspose(a,e._clippingPlanesMatrix)}}function wWe(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=l(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;l(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function DWe(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1,e._credits.length=0;let t=e._showCreditsOnScreen;if(l(e._credit)){let s=vt.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=vt.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=vt.clone(o[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}}function IWe(e,t){let n=OWe(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&&(MWe(e,t),e._sceneGraph.pushDrawCommands(t))}var cj=new se;function PWe(e,t,n){return cj.center=e,cj.radius=t,n.camera.getPixelSize(cj,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}var hz=new h;function Hce(e,t,n){return function(i){JC(e.heightReference)&&(i.height+=n.height),t.cartographicToCartesian(i,hz);let o=e._clampedModelMatrix;F.clone(e.modelMatrix,o),o[12]=hz.x,o[13]=hz.y,o[14]=hz.z,e._heightDirty=!0}}var RWe=new h;function OWe(e,t){let n=e.distanceDisplayCondition;if(!l(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===ne.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=F.getTranslation(e.modelMatrix,RWe);Ui.computeActualEllipsoidPosition(t,s,s),r=h.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function MWe(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r<o;r++)n.addCreditToNextFrame(i[r])}ao.prototype.isTranslucent=function(){let e=this.color;return l(e)&&e.alpha>0&&e.alpha<1};ao.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function jce(e){return e.context.stencilBuffer}ao.prototype.hasSilhouette=function(e){return jce(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};ao.prototype.hasSkipLevelOfDetail=function(e){if(!lr.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};ao.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};ao.prototype.pick=function(e,t,n,i,o){return nE(this,e,t,n,i,o)};ao.prototype.isClippingPolygonsEnabled=function(){let e=this._clippingPolygons;return l(e)&&e.enabled&&e.length!==0};ao.prototype.isDestroyed=function(){return!1};ao.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let r=t.length;for(let s=0;s<r;s++)t[s].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),l(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;l(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0;let i=this._clippingPolygons;l(i)&&!i.isDestroyed()&&i.owner===this&&i.destroy(),this._clippingPolygons=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0;let o=this._environmentMapManager;!o.isDestroyed()&&o.owner===this&&o.destroy(),this._environmentMapManager=void 0,ue(this)};ao.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};ao.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};ao.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,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},i=y(e.basePath,""),o=we.createIfNeeded(i);l(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=we.createIfNeeded(t);let r=new s_(n),a=l(e.content)?lr.TILE_GLTF:lr.GLTF,c=n.gltfResource,u=MM(r,a,e);u.resource=c,u.environmentMapOptions=e.environmentMapOptions;try{await r.load()}catch(g){throw r.destroy(),Kt.getError("model",c,g)}let f=e.gltfCallback;l(f)&&f(r.gltfJson);let d=new ao(u),p=d._resource.credits;if(l(p)){let g=p.length;for(let m=0;m<g;m++)d._resourceCredits.push(vt.clone(p[m]))}return d};ao.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,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},n=new jR(t);try{await n.load();let i=MM(n,lr.TILE_B3DM,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new OM(t);try{await n.load();let i=MM(n,lr.TILE_PNTS,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.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,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new XR(t);try{await n.load();let i=MM(n,lr.TILE_I3DM,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new qR(t),i=MM(n,lr.TILE_GEOJSON,e);return new ao(i)};var LWe=new H;ao.prototype.applyColorAndShow=function(e){let t=H.clone(this._color,LWe),n=l(e)&&l(e.color),i=l(e)&&l(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):H.clone(H.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,lj(t,this._color)&&this.resetDrawCommands()};ao.prototype.applyStyle=function(e){let t=this.type===lr.TILE_PNTS,n=l(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),Gce(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function MM(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,enableVerticalExaggeration:n.enableVerticalExaggeration,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,clippingPolygons:n.clippingPolygons,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,enablePick:n.enablePick,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var nh=ao;function gs(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(gs.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return l(t)&&l(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(l(t)&&l(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}}});gs.prototype.getExtension=function(e){return this._model.getExtension(e)};gs.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};gs.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return l(i)?n.featureTables[i].hasProperty(e,t):!1};gs.prototype.applyDebugSettings=function(e,t){t=e?t:H.WHITE,this.featuresLength===0?this._model.color=t:l(this.batchTable)&&this.batchTable.setAllColor(t)};gs.prototype.applyStyle=function(e){this._model.style=e};gs.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,l(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0);let r=e.environmentMapManager;n.environmentMapManager!==o&&(n._environmentMapManager=r),l(o)&&l(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0);let s=e.clippingPolygons;l(s)&&i.clippingPolygonsDirty&&(n._clippingPolygons=s.enabled&&i._isClippedByPolygon?s:void 0),l(s)&&l(n._clippingPolygons)&&n._clippingPolygons!==s&&(n._clippingPolygons=s,n._clippingPolygonsState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:Vl.REPEAT}),this._ready=!0)};gs.prototype.isDestroyed=function(){return!1};gs.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};gs.fromGltf=async function(e,t,n,i){let o=new gs(e,t,n),s=LM(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await nh.fromGltfAsync(s);return o._model=c,o};gs.fromB3dm=async function(e,t,n,i,o){let r=new gs(e,t,n),a=LM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let u=await nh.fromB3dm(a);return r._model=u,r};gs.fromI3dm=async function(e,t,n,i,o){let r=new gs(e,t,n),a=LM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await nh.fromI3dm(a);return r._model=c,r};gs.fromPnts=async function(e,t,n,i,o){let r=new gs(e,t,n),a=LM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await nh.fromPnts(a);return r._model=c,r};gs.fromGeoJson=async function(e,t,n,i){let o=new gs(e,t,n),s=LM(e,t,o,{geoJson:i,resource:n}),a=await nh.fromGeoJson(s);return o._model=a,o};gs.prototype.pick=function(e,t,n){if(!l(this._model)||!this._ready)return;let i=t.verticalExaggeration,o=t.verticalExaggerationRelativeHeight;return this._model.pick(e,t,i,o,ee.WGS84,n)};function LM(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:ve.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,enablePick:e._enablePick,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return yt(i,o)}var xm=gs;function Lf(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(Lf.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}}});Lf.fromJson=function(e,t,n,i){let o=new Lf(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};Lf.prototype.hasProperty=function(e,t){return!1};Lf.prototype.getFeature=function(e){};Lf.prototype.applyDebugSettings=function(e,t){};Lf.prototype.applyStyle=function(e){};Lf.prototype.update=function(e,t){};Lf.prototype.pick=function(e,t,n){};Lf.prototype.isDestroyed=function(){return!1};Lf.prototype.destroy=function(){return ue(this)};var NM=Lf;var FM=`uniform sampler2D u_atlas;

#ifdef VECTOR_TILE
uniform vec4 u_highlightColor;
#endif

in vec2 v_textureCoordinates;
in vec4 v_pickColor;
in vec4 v_color;
in float v_splitDirection;

#ifdef SDF
in vec4 v_outlineColor;
in float v_outlineWidth;
#endif

#ifdef FRAGMENT_DEPTH_CHECK
in vec4 v_textureCoordinateBounds;                  // the min and max x and y values for the texture coordinates
in vec4 v_originTextureCoordinateAndTranslate;      // texture coordinate at the origin, billboard translate (used for label glyphs)
in vec4 v_compressed;                               // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize
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)); // aligns label glyph with bounding rectangle.  Will be zero for billboards because dimensions and imageSize will be equal

    vec2 translation = v_originTextureCoordinateAndTranslate.zw;

    if (applyTranslate)
    {
        // this is only needed for labels where the horizontal origin is not LEFT
        // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT
        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; // not on the globe
    }

    vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
    return eyeCoordinate.z / eyeCoordinate.w;
}
#endif


#ifdef SDF

// Get the distance from the edge of a glyph at a given position sampling an SDF texture.
float getDistance(vec2 position)
{
    return texture(u_atlas, position).r;
}

// Samples the sdf texture at the given position and produces a color based on the fill color and the outline.
vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing)
{
    float distance = getDistance(position);

    if (outlineWidth > 0.0)
    {
        // Don't get the outline edge exceed the SDF_EDGE
        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()
{
    if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard;
    if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard;
    
    vec4 color = texture(u_atlas, v_textureCoordinates);

#ifdef SDF
    float outlineWidth = v_outlineWidth;
    vec4 outlineColor = v_outlineColor;

    // Get the current distance
    float distance = getDistance(v_textureCoordinates);

#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives))
    float smoothing = fwidth(distance);
    // Get an offset that is approximately half the distance to the neighbor pixels
    // 0.354 is approximately half of 1/sqrt(2)
    vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates));

    // Sample the center point
    vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing);

    // Sample the 4 neighbors
    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);

    // Equally weight the center sample and the 4 neighboring samples
    color = (center + color1 + color2 + color3 + color4)/5.0;
#else
    // If no derivatives available (IE 10?), just do a single sample
    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

// Fully transparent parts of the billboard are not pickable.
#if !defined(OPAQUE) && !defined(TRANSLUCENT)
    if (color.a < 0.005)   // matches 0/255 and 1/255
    {
        discard;
    }
#else
// The billboard is rendered twice. The opaque pass discards translucent fragments
// and the translucent pass discards opaque fragments.
#ifdef OPAQUE
    if (color.a < 0.995)   // matches < 254/255
    {
        discard;
    }
#else
    if (color.a >= 0.995)  // matches 254/255 and 255/255
    {
        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);

        // negative values go into the screen
        if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth)
        {
            float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner
            if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth)
            {
                float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner
                if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth)
                {
                    discard;
                }
            }
        }
    }
#endif

}
`;var BM=`#ifdef INSTANCED
in vec2 direction;
#endif
in vec4 positionHighAndScale;
in vec4 positionLowAndRotation;
in vec4 compressedAttribute0;                       // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset)
in vec4 compressedAttribute1;                       // aligned axis, translucency by distance, image width
in vec4 compressedAttribute2;                       // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free
in vec4 eyeOffset;                                  // eye offset in meters, 4 bytes free (texture range)
in vec4 scaleByDistance;                            // near, nearScale, far, farScale
in vec4 pixelOffsetScaleByDistance;                 // near, nearScale, far, farScale
in vec4 compressedAttribute3;                       // distance display condition near, far, disableDepthTestDistance, dimensions
in vec2 sdf;                                        // sdf outline color (rgb) and width (w)
in float splitDirection;                            // splitDirection
#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK)
in vec4 textureCoordinateBoundsOrLabelTranslate;    // the min and max x and y values for the texture coordinates
#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;                                 // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize
out mat2 v_rotationMatrix;
#endif

out vec4 v_pickColor;
out vec4 v_color;
out float v_splitDirection;
#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)
{
    // Note the halfSize cannot be computed in JavaScript because it is sent via
    // compressed vertex attributes that coerce it to an integer.
    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; // not on the globe
    }

    vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth);
    return eyeCoordinate.z / eyeCoordinate.w;
}
#endif
void main()
{
    // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition

    // unpack attributes
    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) // is a billboard, so set apply translate to false
    {
        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)
    {
        // 2D camera distance is a special case
        // treat all billboards as flattened to the z=0.0 plane
        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;
    // push vertex behind near plane for clipping
    if (scale == 0.0)
    {
        positionEC.xyz = vec3(0.0);
    }
#endif

    float translucency = 1.0;
#ifdef EYE_DISTANCE_TRANSLUCENCY
    translucency = czm_nearFarScalar(translucencyByDistance, lengthSq);
    // push vertex behind near plane for clipping
    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)
    {
        // Don't try to "multiply both sides" by w.  Greater/less-than comparisons won't work for negative values of w.
        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)))
        {
            // Position z on the near plane.
            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;
    v_splitDirection = splitDirection;
}
`;function yi(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Bt.clone(o)),l(r)&&(r=Lt.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=z.clone(y(e.pixelOffset,z.ZERO)),this._translate=new z(0,0),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._heightReference=y(e.heightReference,Ye.NONE),this._verticalOrigin=y(e.verticalOrigin,Rn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,_i.CENTER),this._scale=y(e.scale,1),this._color=H.clone(y(e.color,H.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;l(s)&&(l(a)||(typeof s=="string"?a=s:l(s.src)?a=s.src:a=Hn()),this._imageId=a,this._image=s),l(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ne.SCENE3D,this._clusterShow=!0,this._outlineColor=H.clone(y(e.outlineColor,H.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping(),this._splitDirection=y(e.splitDirection,Nr.NONE)}var qce=yi.SHOW_INDEX=0,pz=yi.POSITION_INDEX=1,Zce=yi.PIXEL_OFFSET_INDEX=2,NWe=yi.EYE_OFFSET_INDEX=3,FWe=yi.HORIZONTAL_ORIGIN_INDEX=4,BWe=yi.VERTICAL_ORIGIN_INDEX=5,kWe=yi.SCALE_INDEX=6,_z=yi.IMAGE_INDEX_INDEX=7,Yce=yi.COLOR_INDEX=8,VWe=yi.ROTATION_INDEX=9,UWe=yi.ALIGNED_AXIS_INDEX=10,zWe=yi.SCALE_BY_DISTANCE_INDEX=11,HWe=yi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,GWe=yi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,WWe=yi.DISTANCE_DISPLAY_CONDITION=14,jWe=yi.DISABLE_DEPTH_DISTANCE=15;yi.TEXTURE_COORDINATE_BOUNDS=16;var Xce=yi.SDF_INDEX=17,qWe=yi.SPLIT_DIRECTION_INDEX=18;yi.NUMBER_OF_PROPERTIES=19;function No(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(yi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,No(this,qce))}},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(),No(this,pz))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),No(this,pz))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;z.equals(t,e)||(z.clone(e,t),No(this,Zce))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),No(this,zWe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),No(this,HWe))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Bt.equals(t,e)||(this._pixelOffsetScaleByDistance=Bt.clone(e,t),No(this,GWe))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),No(this,NWe))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,No(this,FWe))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,No(this,BWe))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,No(this,kWe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),No(this,Yce))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,No(this,VWe))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),No(this,UWe))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,No(this,_z))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,No(this,_z))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,No(this,Yce))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Lt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition),No(this,WWe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,No(this,jWe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?typeof e=="string"?this.setImage(e,e):e instanceof we?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(Hn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,No(this,_z))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),No(this,pz)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,No(this,qce))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),No(this,Xce))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,No(this,Xce))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,No(this,qWe))}}});yi.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};yi.prototype._updateClamping=function(){yi._updateClamping(this._billboardCollection,this)};var gz=new fe;yi._updateClamping=function(e,t){let n=e._scene;if(!l(n))return;let i=y(n.ellipsoid,ee.default),o=n.frameState.mode,r=o!==t._mode;if(t._mode=o,(t._heightReference===Ye.NONE||r)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===Ye.NONE||!l(t._position))return;l(t._removeCallbackFunc)&&t._removeCallbackFunc();let s=i.cartesianToCartographic(t._position);if(!l(s)){t._actualClampedPosition=void 0;return}function a(u){let f=i.cartographicToCartesian(u,t._clampedPosition);JC(t._heightReference)&&(t._mode===ne.SCENE3D?(u.height+=s.height,i.cartographicToCartesian(u,f)):f.x+=s.height),t._clampedPosition=f}t._removeCallbackFunc=n.updateHeight(s,a,t._heightReference),fe.clone(s,gz);let c=n.getHeight(s,t._heightReference);l(c)&&(gz.height=c),a(gz)};yi.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||!je.equals(r._imageSubRegion,i))return;let u=e.textureCoordinates[c];r._imageWidth=e.texture.width*u.width,r._imageHeight=e.texture.height*u.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,No(r,_z);let f=r._billboardCollection._scene;l(f)&&f.frameState.afterRender.push(()=>!0)}if(l(n)&&(o=e.addImage(t,n)),l(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!l(o))return;let a=e.getImageIndex(t);if(l(a)&&!l(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};yi.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())};yi.prototype.setImageSubRegion=function(e,t){this._imageId===e&&je.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=je.clone(t),l(this._billboardCollection._textureAtlas)&&this._loadImage())};yi.prototype._setTranslate=function(e){let t=this._translate;z.equals(t,e)||(z.clone(e,t),No(this,Zce))};yi.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};yi.prototype._setActualPosition=function(e){l(this._clampedPosition)||h.clone(e,this._actualPosition),No(this,pz)};var Kce=new oe;yi._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ne.SCENE3D?t:(F.multiplyByPoint(i,t,Kce),Ui.computeActualEllipsoidPosition(n,Kce))};var $ce=new h;yi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=F.multiplyByPoint(e,t,$ce),a=Ui.worldWithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return z.add(a,i,a),a};var mz=new z(0,0);yi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new z),z.clone(this._pixelOffset,mz),z.add(mz,this._translate,mz);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==ne.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,gz);o=a.cartographicToCartesian(c,$ce),i=F.IDENTITY}return yi._computeScreenSpacePosition(i,o,this._eyeOffset,mz,e,t)};yi.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===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?a-=o:e.verticalOrigin===Rn.CENTER&&(a-=o*.5),l(n)||(n=new je),n.x=s,n.y=a,n.width=i,n.height=o,n};yi.prototype.equals=function(e){return this===e||l(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&&je.equals(this._imageSubRegion,e._imageSubRegion)&&H.equals(this._color,e._color)&&z.equals(this._pixelOffset,e._pixelOffset)&&z.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Lt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};yi.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var co=yi;var YWe={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},Eo=Object.freeze(YWe);var XWe={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Xs=Object.freeze(XWe);function __(e,t,n,i,o){this.bottomLeft=y(e,z.ZERO),this.topRight=y(t,z.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var KWe=new z(16,16);function Py(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,KWe);this._context=e.context,this._pixelFormat=y(e.pixelFormat,Je.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Hn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Py.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return l(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 ZWe(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),u=o*(a+t.height+r),f=s/c,d=a/u,p=new __(new z(s+r,r),new z(c,a)),g=new __(new z,new z(c,a),e._root,p),m=new __(new z(r,a+r),new z(c,u)),x=new __(new z,new z(c,u),g,m);for(let C=0;C<e._textureCoordinates.length;C++){let A=e._textureCoordinates[C];l(A)&&(A.x*=f,A.y*=d,A.width*=f,A.height*=d)}let b=new Pt({context:e._context,width:c,height:u,pixelFormat:e._pixelFormat}),T=new Mr({context:n,colorTextures:[e._texture],destroyAttachments:!1});T._bind(),b.copyFromFramebuffer(0,0,0,0,c,u),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 __(new z(r,r),new z(s,a))}}function yz(e,t,n){if(l(t)){if(!l(t.childNode1)&&!l(t.childNode2)){if(l(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 __(new z(t.bottomLeft.x,t.bottomLeft.y),new z(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a<t.topRight.x&&(t.childNode2=new __(new z(a,t.bottomLeft.y),new z(t.topRight.x,t.topRight.y)))}else{t.childNode1=new __(new z(t.bottomLeft.x,t.bottomLeft.y),new z(t.topRight.x,t.bottomLeft.y+n.height));let a=t.bottomLeft.y+n.height+e._borderWidthInPixels;a<t.topRight.y&&(t.childNode2=new __(new z(t.bottomLeft.x,a),new z(t.topRight.x,t.topRight.y)))}return yz(e,t.childNode1,n)}return yz(e,t.childNode1,n)||yz(e,t.childNode2,n)}}function Qce(e,t,n){let i=yz(e,e._root,t);if(l(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,u=i.bottomLeft.y/r,f=s/o,d=a/r;e._textureCoordinates[n]=new je(c,u,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else ZWe(e,t),Qce(e,t,n);e._guid=Hn()}function Jce(e,t){if(!l(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return Qce(e,t,n),n}Py.prototype.getImageIndex=function(e){return this._indexHash[e]};Py.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return l(n)||(n=Jce(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};Py.prototype.addImage=function(e,t){let n=this._idHash[e];if(l(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof we)&&(t=we.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(o){let r=Jce(i,o);return i._indexHash[e]=r,r}),this._idHash[e]=n,n};Py.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!l(n))throw new ce(`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,u=a.y+t.y/s,f=t.width/r,d=t.height/s,p=i._textureCoordinates.push(new je(c,u,f,d))-1;return i._indexHash[e]=p,i._guid=Hn(),p})};Py.prototype.isDestroyed=function(){return!1};Py.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var Ry=Py;var $We=co.SHOW_INDEX,VM=co.POSITION_INDEX,ele=co.PIXEL_OFFSET_INDEX,tle=co.EYE_OFFSET_INDEX,QWe=co.HORIZONTAL_ORIGIN_INDEX,JWe=co.VERTICAL_ORIGIN_INDEX,eje=co.SCALE_INDEX,kM=co.IMAGE_INDEX_INDEX,nle=co.COLOR_INDEX,tje=co.ROTATION_INDEX,nje=co.ALIGNED_AXIS_INDEX,ile=co.SCALE_BY_DISTANCE_INDEX,ole=co.TRANSLUCENCY_BY_DISTANCE_INDEX,rle=co.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,sle=co.DISTANCE_DISPLAY_CONDITION,ije=co.DISABLE_DEPTH_DISTANCE,oje=co.TEXTURE_COORDINATE_BOUNDS,ale=co.SDF_INDEX,cle=co.SPLIT_DIRECTION_INDEX,_j=co.NUMBER_OF_PROPERTIES,lo,rje={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,splitDirection:12},sje={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,splitDirection:13};function Bf(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(_j),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=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowTextureAtlas=y(e.debugShowTextureAtlas,!1),this.blendOption=y(e.blendOption,Eo.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW],this._highlightColor=H.clone(H.WHITE);let t=this;this._uniforms={u_atlas:function(){return t._textureAtlas.texture},u_highlightColor:function(){return t._highlightColor}};let n=this._scene;l(n)&&l(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)l(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(Bf.prototype,{length:{get:function(){return gj(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 lle(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Bf.prototype.add=function(e){let t=new co(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};Bf.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Bf.prototype.removeAll=function(){lle(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function gj(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];l(s)&&(s._index=r++,t.push(s))}e._billboards=t}}Bf.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};Bf.prototype.contains=function(e){return l(e)&&e._billboardCollection===this};Bf.prototype.get=function(e){return gj(this),this._billboards[e]};var uj;function aje(e){let n=e.cache.billboardCollection_indexBufferBatched;if(l(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=_t.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function cje(e){let t=e.cache.billboardCollection_indexBufferInstanced;return l(t)||(t=_t.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function lje(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return l(t)||(t=_t.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}Bf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<_j;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function uje(e,t,n,i,o,r){let s=[{index:lo.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[VM]},{index:lo.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[VM]},{index:lo.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ele]},{index:lo.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ole]},{index:lo.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[nle]},{index:lo.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[tle]},{index:lo.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ile]},{index:lo.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[rle]},{index:lo.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[sle]},{index:lo.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[oje]},{index:lo.splitDirection,componentsPerAttribute:1,componentDatatype:X.FLOAT,usage:n[cle]}];i&&s.push({index:lo.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:lje(e)}),l(o)&&s.push({index:lo.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Fe.STATIC_DRAW}),r&&s.push({index:lo.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[ale]});let a=i?t:4*t;return new Dp(e,s,a,i)}var fj=new Gn;function ule(e,t,n,i,o){let r,s=i[lo.positionHighAndScale],a=i[lo.positionLowAndRotation],c=o._getActualPosition();e._mode===ne.SCENE3D&&(se.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),Gn.fromCartesian(c,fj);let u=o.scale,f=o.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,u);let d=fj.high,p=fj.low;e._instanced?(r=o._index,s(r,d.x,d.y,d.z,u),a(r,p.x,p.y,p.z,f)):(r=o._index*4,s(r+0,d.x,d.y,d.z,u),s(r+1,d.x,d.y,d.z,u),s(r+2,d.x,d.y,d.z,u),s(r+3,d.x,d.y,d.z,u),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 Ff=new z,Nf=32768,iE=65536,dj=4096,bm=256,fje=128,dje=32,hje=8,fle=4,mje=1/256,dle=0,hle=2,mle=3,ple=1;function _le(e,t,n,i,o){let r,s=i[lo.compressedAttribute0],a=o.pixelOffset,c=a.x,u=a.y,f=o._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-u+p));let g=o.horizontalOrigin,m=o._verticalOrigin,x=o.show&&o.clusterShow;o.color.alpha===0&&(x=!1),m===Rn.BASELINE&&(m=Rn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===_i.CENTER,e._allVerticalCenter=e._allVerticalCenter&&m===Rn.CENTER;let b=0,T=0,C=0,A=0,E=o._imageIndex;if(E!==-1){let U=n[E];b=U.x,T=U.y,C=U.width,A=U.height}let v=b+C,D=T+A,O=Math.floor(P.clamp(c,-Nf,Nf)+Nf)*fje;O+=(g+1)*dje,O+=(m+1)*hje,O+=(x?1:0)*fle;let R=Math.floor(P.clamp(u,-Nf,Nf)+Nf)*bm,M=Math.floor(P.clamp(d,-Nf,Nf)+Nf)*bm,N=(P.clamp(p,-Nf,Nf)+Nf)*mje,_=Math.floor(N),S=Math.floor((N-_)*bm);R+=_,M+=S,Ff.x=b,Ff.y=T;let w=Mn.compressTextureCoordinates(Ff);Ff.x=v;let I=Mn.compressTextureCoordinates(Ff);Ff.y=D;let L=Mn.compressTextureCoordinates(Ff);Ff.x=b;let B=Mn.compressTextureCoordinates(Ff);e._instanced?(r=o._index,s(r,O,R,M,w)):(r=o._index*4,s(r+0,O+dle,R,M,w),s(r+1,O+hle,R,M,I),s(r+2,O+mle,R,M,L),s(r+3,O+ple,R,M,B))}function gle(e,t,n,i,o){let r,s=i[lo.compressedAttribute1],a=o.alignedAxis;h.equals(a,h.ZERO)||(e._shaderAlignedAxis=!0);let c=0,u=1,f=1,d=1,p=o.translucencyByDistance;l(p)&&(c=p.near,u=p.nearValue,f=p.far,d=p.farValue,(u!==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,iE),C=0;Math.abs(h.magnitudeSquared(a)-1)<P.EPSILON6&&(C=Mn.octEncodeFloat(a)),u=P.clamp(u,0,1),u=u===1?255:u*255|0,T=T*bm+u,d=P.clamp(d,0,1),d=d===1?255:d*255|0,C=C*bm+d,e._instanced?(r=o._index,s(r,T,C,c,f)):(r=o._index*4,s(r+0,T,C,c,f),s(r+1,T,C,c,f),s(r+2,T,C,c,f),s(r+3,T,C,c,f))}function mj(e,t,n,i,o){let r,s=i[lo.compressedAttribute2],a=o.color,c=l(e._batchTable)?H.WHITE:o.getPickId(t.context).color,u=o.sizeInMeters?1:0,f=Math.abs(h.magnitudeSquared(o.alignedAxis)-1)<P.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&u===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*fle+x,T=H.floatToByte(a.red),C=H.floatToByte(a.green),A=H.floatToByte(a.blue),E=T*iE+C*bm+A;T=H.floatToByte(c.red),C=H.floatToByte(c.green),A=H.floatToByte(c.blue);let v=T*iE+C*bm+A,D=H.floatToByte(a.alpha)*iE+H.floatToByte(c.alpha)*bm;D+=u*2+f,e._instanced?(r=o._index,s(r,E,v,D,b)):(r=o._index*4,s(r+0,E,v,D,b),s(r+1,E,v,D,b),s(r+2,E,v,D,b),s(r+3,E,v,D,b))}function pj(e,t,n,i,o){let r,s=i[lo.eyeOffset],a=o.eyeOffset,c=a.z;if(o._heightReference!==Ye.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let u=0,f=0,d=o._imageIndex;if(d!==-1){let g=n[d];u=g.width,f=g.height}Ff.x=u,Ff.y=f;let p=Mn.compressTextureCoordinates(Ff);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 yle(e,t,n,i,o){let r,s=i[lo.scaleByDistance],a=0,c=1,u=1,f=1,d=o.scaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function xle(e,t,n,i,o){let r,s=i[lo.pixelOffsetScaleByDistance],a=0,c=1,u=1,f=1,d=o.pixelOffsetScaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function ble(e,t,n,i,o){let r,s=i[lo.compressedAttribute3],a=0,c=Number.MAX_VALUE,u=o.distanceDisplayCondition;l(u)&&(a=u.near,c=u.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=o.disableDepthTestDistance,d=Af(o.heightReference)&&t.context.depthTexture;l(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(l(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let T=0,C=0,A=o._imageIndex;if(A!==-1){let v=n[A];T=v.height,C=v.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*T));let E=e._textureAtlas.texture.width;g=Math.round(y(o.width,E*C))}let m=Math.floor(P.clamp(g,0,dj)),x=Math.floor(P.clamp(p,0,dj)),b=m*dj+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 Tle(e,t,n,i,o){if(Af(o.heightReference)){let m=e._scene,x=t.context,b=t.globeTranslucencyState.translucent,T=l(m.globe)&&m.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!b&&T}let r,s=i[lo.textureCoordinateBoundsOrLabelTranslate];if(kt.maximumVertexTextureImageUnits>0){let m=0,x=0;l(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,u=0,f=0,d=o._imageIndex;if(d!==-1){let m=n[d];a=m.x,c=m.y,u=m.width,f=m.height}let p=a+u,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 pje(e,t,n,i,o){if(!l(e._batchTable))return;let r=i[lo.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 Cle(e,t,n,i,o){if(!e._sdf)return;let r,s=i[lo.sdf],a=o.outlineColor,c=o.outlineWidth,u=H.floatToByte(a.red),f=H.floatToByte(a.green),d=H.floatToByte(a.blue),p=u*iE+f*bm+d,g=c/Xs.RADIUS,m=H.floatToByte(a.alpha)*iE+H.floatToByte(g)*bm;e._instanced?(r=o._index,s(r,p,m)):(r=o._index*4,s(r+0,p+dle,m),s(r+1,p+hle,m),s(r+2,p+mle,m),s(r+3,p+ple,m))}function Ale(e,t,n,i,o){let r=i[lo.splitDirection],s=0,a=o.splitDirection;l(a)&&(s=a);let c;e._instanced?(c=o._index,r(c,s)):(c=o._index*4,r(c+0,s),r(c+1,s),r(c+2,s),r(c+3,s))}function _je(e,t,n,i,o){ule(e,t,n,i,o),_le(e,t,n,i,o),gle(e,t,n,i,o),mj(e,t,n,i,o),pj(e,t,n,i,o),yle(e,t,n,i,o),xle(e,t,n,i,o),ble(e,t,n,i,o),Tle(e,t,n,i,o),pje(e,t,n,i,o),Cle(e,t,n,i,o),Ale(e,t,n,i,o)}function hj(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=co._computeActualPosition(u,f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function gje(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&hj(e,i,i.length,t,r,!0)):n===ne.MORPHING?hj(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&hj(e,o,e._billboardsToUpdateIndex,t,r,!1)}function yje(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 xje(e,t){let i=t.createViewportQuadCommand(`uniform sampler2D billboard_texture; 
in vec2 v_textureCoordinates; 
void main() 
{ 
    out_FragColor = texture(billboard_texture, v_textureCoordinates); 
} 
`,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=ve.OVERLAY,i}var bje=[];Bf.prototype.update=function(e){if(gj(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,lo=this._instanced?sje:rje,uj=this._instanced?cje:aje;let o=this._textureAtlas;if(!l(o)){o=this._textureAtlas=new Ry({context:i});for(let R=0;R<n;++R)t[R]._loadImage()}let r=o.textureCoordinates;if(r.length===0)return;gje(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,u=o.guid,f=this._createVertexArray||this._textureAtlasGUID!==u;this._textureAtlasGUID=u;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let R=0;R<_j;++R)c[R]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=uje(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let R=0;R<n;++R){let M=this._billboards[R];M._dirty=!1,_je(this,e,r,d,M)}this._vaf.commit(uj(i))}this._billboardsToUpdateIndex=0}else if(a>0){let R=bje;R.length=0,(c[VM]||c[tje]||c[eje])&&R.push(ule),(c[kM]||c[ele]||c[QWe]||c[JWe]||c[$We])&&(R.push(_le),this._instanced&&R.push(pj)),(c[kM]||c[nje]||c[ole])&&(R.push(gle),R.push(mj)),(c[kM]||c[nle])&&R.push(mj),c[tle]&&R.push(pj),c[ile]&&R.push(yle),c[rle]&&R.push(xle),(c[sle]||c[ije]||c[kM]||c[VM])&&R.push(ble),(c[kM]||c[VM])&&R.push(Tle),c[ale]&&R.push(Cle),c[cle]&&R.push(Ale);let M=R.length;if(d=this._vaf.writers,a/n>.1){for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let S=0;S<M;++S)R[S](this,e,r,d,_)}this._vaf.commit(uj(i))}else{for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let S=0;S<M;++S)R[S](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),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,x=F.IDENTITY;e.mode===ne.SCENE3D?(x=this.modelMatrix,m=se.clone(this._baseVolumeWC,this._boundingVolume)):m=se.clone(this._baseVolume2D,this._boundingVolume),yje(this,e,m);let b=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,b){this._blendOption===Eo.OPAQUE||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!0}):this._rsOpaque=void 0;let R=this._blendOption===Eo.TRANSLUCENT;this._blendOption===Eo.TRANSLUCENT||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:R?te.LEQUAL:te.LESS},depthMask:R,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let T,C,A,E,v,D=kt.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=BM,C=FM,v=[],l(this._batchTable)&&(v.push("VECTOR_TILE"),T=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(T),C=this._batchTable.getFragmentShaderCallback(!1,void 0)(C)),A=new Ue({defines:v,sources:[T]}),this._instanced&&A.defines.push("INSTANCED"),this._shaderRotation&&A.defines.push("ROTATION"),this._shaderAlignedAxis&&A.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&A.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&A.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&A.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&A.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&A.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?A.defines.push("VERTEX_DEPTH_CHECK"):A.defines.push("FRAGMENT_DEPTH_CHECK"));let R=1-Xs.CUTOFF;this._sdf&&A.defines.push("SDF");let M=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT&&(E=new Ue({defines:["OPAQUE",M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._sp=Qt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo}),E=new Ue({defines:["TRANSLUCENT",M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Qt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo})),this._blendOption===Eo.OPAQUE&&(E=new Ue({defines:[M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._sp=Qt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo})),this._blendOption===Eo.TRANSLUCENT&&(E=new Ue({defines:[M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Qt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo})),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,M=this._blendOption===Eo.OPAQUE,N=this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,S=_.length,w=this._uniforms,I;l(this._batchTable)?(w=this._batchTable.getUniformMapCallback()(w),I=this._batchTable.getPickId()):I="v_pickColor",R.length=S;let L=N?S*2:S;for(let B=0;B<L;++B){let U=R[B];l(U)||(U=R[B]=new Ze);let V=M||N&&B%2===0;U.pass=V||!N?ve.OPAQUE:ve.TRANSLUCENT,U.owner=this;let G=N?Math.floor(B/2):B;U.boundingVolume=m,U.modelMatrix=x,U.count=_[G].indicesCount,U.shaderProgram=V?this._sp:this._spTranslucent,U.uniformMap=w,U.vertexArray=_[G].va,U.renderState=V?this._rsOpaque:this._rsTranslucent,U.debugShowBoundingVolume=this.debugShowBoundingVolume,U.pickId=I,this._instanced&&(U.count=6,U.instanceCount=n),O.push(U)}this.debugShowTextureAtlas&&(l(this.debugCommand)||(this.debugCommand=xje(this,e.context)),O.push(this.debugCommand))}};Bf.prototype.isDestroyed=function(){return!1};Bf.prototype.destroy=function(){return l(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(),lle(this._billboards),ue(this)};var wu=Bf;function Tje(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 Sb=Tje;function da(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),oE(this)}var Cje=new fe;Object.defineProperties(da.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=H.clone(e,this._color),oE(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,oE(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=H.clone(e,this._pointOutlineColor),oE(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,oE(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){l(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,Cje);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=H.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&&oE(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}}});da.defaultColor=H.WHITE;da.defaultPointOutlineColor=H.BLACK;da.defaultPointOutlineWidth=0;da.defaultPointSize=8;function oE(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=y(e._color,da.defaultColor),i=y(e._pointOutlineColor,da.defaultPointOutlineColor),o=y(e._pointOutlineWidth,da.defaultPointOutlineWidth),r=y(e._pointSize,da.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,u=e._billboardSize;if(H.equals(n,s)&&H.equals(i,a)&&o===c&&r===u)return;e._billboardColor=H.clone(n,e._billboardColor),e._billboardOutlineColor=H.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,Sb(f,d,p,o,r))}da.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};da.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};da.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};da.prototype.getPropertyInherited=function(e){return Ws.getPropertyInherited(this._content,this._batchId,e)};da.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};da.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};da.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};da.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var g_=da;function Aje(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"),u=100,f=r.width+u|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,u/2,p)),o&&(g.fillStyle="black",g.fillText(t,u/2,p));let m=g.getImageData(0,0,f,d).data,x=m.length,b=f*4,T,C,A,E;for(T=0;T<x;++T)if(m[T]!==255){A=T/b|0;break}for(T=x-1;T>=0;--T)if(m[T]!==255){E=T/b|0;break}let v=-1;for(T=0;T<f&&v===-1;++T)for(C=0;C<d;++C){let D=T*4+C*b;if(m[D]!==255||m[D+1]!==255||m[D+2]!==255||m[D+3]!==255){v=T;break}}return{width:r.width,height:E-A,ascent:p-A,descent:E-p,minx:v-u/2}}return{width:r.width,height:0,ascent:0,descent:0,minx:0}}var vb;function Eje(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,H.TRANSPARENT),a=y(t.padding,0),c=a*2,u=document.createElement("canvas");u.width=1,u.height=1,u.style.font=n;let f=u.getContext("2d",{willReadFrequently:!0});l(vb)||(l(f.imageSmoothingEnabled)?vb="imageSmoothingEnabled":l(f.mozImageSmoothingEnabled)?vb="mozImageSmoothingEnabled":l(f.webkitImageSmoothingEnabled)?vb="webkitImageSmoothingEnabled":l(f.msImageSmoothingEnabled)&&(vb="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=r,f[vb]=!1,u.style.visibility="hidden",document.body.appendChild(u);let d=Aje(f,e,n,i,o);u.dimensions=d,document.body.removeChild(u),u.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(u.width=g,u.height=m,f.font=n,f.lineJoin="round",f.lineWidth=r,f[vb]=!1,s!==H.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,u.width,u.height)),i){let T=y(t.strokeColor,H.BLACK);f.strokeStyle=T.toCssColorString(),f.strokeText(e,p+a,b)}if(o){let T=y(t.fillColor,H.WHITE);f.fillStyle=T.toCssColorString(),f.fillText(e,p+a,b)}return u}var wb=Eje;var Lle=Vo(wle(),1);var vje={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},Wo=Object.freeze(vje);var Dle={},Ile=0,wje=256,Dje=new H(.165,.165,.165,.8),Ije=new z(7,5),ys=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function Db(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function zM(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function HM(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function Rle(e){let t=Dle[e._font];if(!l(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(HM(n,"line-height"));isNaN(i)&&(i=void 0),t={family:HM(n,"font-family"),size:HM(n,"font-size").replace("px",""),style:HM(n,"font-style"),weight:HM(n,"font-weight"),lineHeight:i},document.body.removeChild(n),Ile<wje&&(Dle[e._font]=t,Ile++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function y_(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Bt.clone(o)),l(r)&&(r=Lt.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=H.clone(y(e.fillColor,H.WHITE)),this._outlineColor=H.clone(y(e.outlineColor,H.BLACK)),this._outlineWidth=y(e.outlineWidth,1),this._showBackground=y(e.showBackground,!1),this._backgroundColor=H.clone(y(e.backgroundColor,Dje)),this._backgroundPadding=z.clone(y(e.backgroundPadding,Ije)),this._style=y(e.style,Wo.FILL),this._verticalOrigin=y(e.verticalOrigin,Rn.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,_i.LEFT),this._pixelOffset=z.clone(y(e.pixelOffset,z.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,Ye.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,Rle(this),this._updateClamping()}Object.defineProperties(y_.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;l(r)&&(r.show=e)}let n=this._backgroundBillboard;l(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;l(s)&&(s.position=e)}let i=this._backgroundBillboard;l(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;l(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;l(n)&&(n.heightReference=e),zM(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=y_.enableRightToLeftDetection?Nje(t):t,Db(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,Db(this),Rle(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;H.equals(t,e)||(H.clone(e,t),Db(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Db(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Db(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,Db(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!H.equals(t,e)){H.clone(e,t);let n=this._backgroundBillboard;l(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;z.equals(t,e)||(z.clone(e,t),zM(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,Db(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!z.equals(t,e)){z.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Bt.equals(t,e)){this._translucencyByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Bt.equals(t,e)){this._pixelOffsetScaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Bt.equals(t,e)){this._scaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;l(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];l(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,zM(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];l(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;l(n)&&(n.verticalOrigin=e),zM(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];l(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;l(n)&&(n.scale=e*this._relativeSize),zM(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!Lt.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;l(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];l(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;l(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];l(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;l(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!l(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];l(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;l(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];l(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;l(n)&&(n.clusterShow=e)}}}});y_.prototype._updateClamping=function(){co._updateClamping(this._labelCollection,this)};y_.prototype.computeScreenSpacePosition=function(e,t){l(t)||(t=new z);let i=this._labelCollection.modelMatrix,o=l(this._actualClampedPosition)?this._actualClampedPosition:this._position;return co._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};y_.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(l(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?o-=s:e.verticalOrigin===Rn.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let u=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let m=d[g],x=m.billboard;if(!l(x))continue;let b=t.x+x._translate.x,T=t.y-x._translate.y,C=m.dimensions.width*a,A=m.dimensions.height*a;e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?T-=A:e.verticalOrigin===Rn.CENTER&&(T-=A*.5),e._verticalOrigin===Rn.TOP?T+=Xs.PADDING*a:(e._verticalOrigin===Rn.BOTTOM||e._verticalOrigin===Rn.BASELINE)&&(T-=Xs.PADDING*a),i=Math.min(i,b),o=Math.min(o,T),u=Math.max(u,b+C),f=Math.max(f,T+A)}r=u-i,s=f-o}return l(n)||(n=new je),n.x=i,n.y=o,n.width=r,n.height=s,n};y_.prototype.equals=function(e){return this===e||l(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)&&H.equals(this._fillColor,e._fillColor)&&H.equals(this._outlineColor,e._outlineColor)&&H.equals(this._backgroundColor,e._backgroundColor)&&z.equals(this._backgroundPadding,e._backgroundPadding)&&z.equals(this._pixelOffset,e._pixelOffset)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Lt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};y_.prototype.isDestroyed=function(){return!1};y_.enableRightToLeftDetection=!1;function Pje(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=ys.LTR,a="",c=e.length;for(let u=0;u<c;++u){let f=e.charAt(u);t.test(f)?a=ys.RTL:n.test(f)?a=ys.LTR:i.test(f)?a=ys.BRACKETS:a=ys.WEAK,u===0&&(s=a),s===a&&a!==ys.BRACKETS?r+=f:(r!==""&&o.push({Type:s,Word:r}),s=a,r=f)}return o.push({Type:a,Word:r}),o}function Rje(e){return e.split("").reverse().join("")}function GM(e,t,n){return e.slice(0,t)+n+e.slice(t)}function Oje(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var Mje="\u05D0-\u05EA",Lje="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",Ple=new RegExp(`[${Mje}${Lje}]`);function Nje(e){let t=e.split(`
`),n="";for(let i=0;i<t.length;i++){let o=t[i],r=Ple.test(o.charAt(0)),s=Pje(o,Ple),a=0,c="";for(let u=0;u<s.length;++u){let f=s[u],d=f.Type===ys.BRACKETS?Oje(f.Word):Rje(f.Word);r?f.Type===ys.RTL?(c=d+c,a=0):f.Type===ys.LTR?(c=GM(c,a,f.Word),a+=f.Word.length):(f.Type===ys.WEAK||f.Type===ys.BRACKETS)&&(f.Type===ys.WEAK&&s[u-1].Type===ys.BRACKETS?c=d+c:s[u-1].Type===ys.RTL?(c=d+c,a=0):s.length>u+1?s[u+1].Type===ys.RTL?(c=d+c,a=0):(c=GM(c,a,f.Word),a+=f.Word.length):c=GM(c,0,d)):f.Type===ys.RTL?c=GM(c,a,d):f.Type===ys.LTR?(c+=f.Word,a=c.length):(f.Type===ys.WEAK||f.Type===ys.BRACKETS)&&(u>0&&s[u-1].Type===ys.RTL?s.length>u+1?s[u+1].Type===ys.RTL?c=GM(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 Oy=y_;var Nle=Vo(Ole(),1);function Bje(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function kje(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var Vje=1.2,Fle="ID_WHITE_PIXEL",yj=new z(4,4),Uje=new je(1,1,1,1);function zje(e){let t=document.createElement("canvas");t.width=yj.x,t.height=yj.y;let n=t.getContext("2d");return n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(Fle,t)}var kf={};function Hje(e,t,n,i,o,r,s){return kf.font=t,kf.fillColor=n,kf.strokeColor=i,kf.strokeWidth=o,kf.padding=Xs.PADDING,s===Rn.CENTER?kf.textBaseline="middle":s===Rn.TOP?kf.textBaseline="top":kf.textBaseline="bottom",kf.fill=r===Wo.FILL||r===Wo.FILL_AND_OUTLINE,kf.stroke=r===Wo.OUTLINE||r===Wo.FILL_AND_OUTLINE,kf.backgroundColor=H.BLACK,wb(e,kf)}function xj(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;l(n)&&(n.show=!1,n.image=void 0,l(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function Gje(e,t,n,i){i.index=e.addImageSync(t,n)}var Wje=new Nle.default;function jje(e,t){let n=t._renderedText,i=Wje.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length,a,c,u;if(t._relativeSize=t._fontSize/Xs.FONT_SIZE,o<s)for(c=o;c<s;++c)xj(e,r[c]);r.length=o;let f=t.show&&t._showBackground&&n.split(`
`).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(l(d)||(d=p.add({collection:e,image:Fle,imageSubRegion:Uje}),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,d.clusterShow=t.clusterShow):l(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(u=0;u<o;++u){let m=i[u],x=t._verticalOrigin,b=JSON.stringify([m,t._fontFamily,t._fontStyle,t._fontWeight,+x]),T=g[b];if(!l(T)){let C=`${t._fontStyle} ${t._fontWeight} ${Xs.FONT_SIZE}px ${t._fontFamily}`,A=Hje(m,C,H.WHITE,H.WHITE,0,Wo.FILL,x);if(T=new kje(e,-1,A.dimensions),g[b]=T,A.width>0&&A.height>0){let E=(0,Lle.default)(A,{cutoff:Xs.CUTOFF,radius:Xs.RADIUS}),v=A.getContext("2d"),D=A.width,O=A.height,R=v.getImageData(0,0,D,O);for(let M=0;M<D;M++)for(let N=0;N<O;N++){let _=N*D+M,S=E[_]*255,w=_*4;R.data[w+0]=S,R.data[w+1]=S,R.data[w+2]=S,R.data[w+3]=S}v.putImageData(R,0,0),m!==" "&&Gje(e._textureAtlas,b,A,T)}}if(a=r[u],l(a)?T.index===-1?xj(e,a):l(a.textureInfo)&&(a.textureInfo=void 0):(a=new Bje,r[u]=a),a.textureInfo=T,a.dimensions=T.dimensions,T.index!==-1){let C=a.billboard,A=e._spareBillboards;l(C)||(A.length>0?C=A.pop():(C=e._billboardCollection.add({collection:e}),C._labelDimensions=new z,C._labelTranslate=new z),a.billboard=C),C.show=t._show,C.position=t._position,C.eyeOffset=t._eyeOffset,C.pixelOffset=t._pixelOffset,C.horizontalOrigin=_i.LEFT,C.verticalOrigin=t._verticalOrigin,C.heightReference=t._heightReference,C.scale=t.totalScale,C.pickPrimitive=t,C.id=t._id,C.image=b,C.translucencyByDistance=t._translucencyByDistance,C.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,C.scaleByDistance=t._scaleByDistance,C.distanceDisplayCondition=t._distanceDisplayCondition,C.disableDepthTestDistance=t._disableDepthTestDistance,C._batchIndex=t._batchIndex,C.outlineColor=t.outlineColor,t.style===Wo.FILL_AND_OUTLINE?(C.color=t._fillColor,C.outlineWidth=t.outlineWidth):t.style===Wo.FILL?(C.color=t._fillColor,C.outlineWidth=0):t.style===Wo.OUTLINE&&(C.color=H.TRANSPARENT,C.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function Mle(e,t,n){return t===_i.CENTER?-e/2:t===_i.RIGHT?-(e+n.x):n.x}var ur=new z,qje=new z;function Yje(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,u=0,f=1,d,p=t.length,g=e._backgroundBillboard,m=z.clone(l(g)?e._backgroundPadding:z.ZERO,qje);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,u=Math.max(u,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=u+c,b=e.totalScale,T=e._horizontalOrigin,C=e._verticalOrigin,A=0,E=a[A],v=Mle(E,T,m),D=(l(e._lineHeight)?e._lineHeight:Vje*e._fontSize)/e._relativeSize,O=D*(f-1),R=s,M=x+O;l(g)&&(R+=m.x*2,M+=m.y*2,g._labelHorizontalOrigin=T),ur.x=v*b,ur.y=0;let N=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===`
`)++A,_+=D,E=a[A],v=Mle(E,T,m),ur.x=v*b,N=!0;else if(i=t[d],o=i.dimensions,C===Rn.TOP?(ur.y=o.height-u-m.y,ur.y+=Xs.PADDING):C===Rn.CENTER?ur.y=(O+o.height-u)/2:C===Rn.BASELINE?(ur.y=O,ur.y-=Xs.PADDING):(ur.y=O+c+m.y,ur.y-=Xs.PADDING),ur.y=(ur.y-o.descent-_)*b,N&&(ur.x-=Xs.PADDING*b,N=!1),l(i.billboard)&&(i.billboard._setTranslate(ur),i.billboard._labelDimensions.x=R,i.billboard._labelDimensions.y=M,i.billboard._labelHorizontalOrigin=T),d<p-1){let S=t[d+1];ur.x+=(o.width-o.minx+S.dimensions.minx)*b}if(l(g)&&n.split(`
`).join("").length>0&&(T===_i.CENTER?v=-s/2-m.x:T===_i.RIGHT?v=-(s+m.x*2):v=0,ur.x=v*b,C===Rn.TOP?ur.y=x-u-c:C===Rn.CENTER?ur.y=(x-u)/2-c:C===Rn.BASELINE?ur.y=-m.y-c:ur.y=0,ur.y=ur.y*b,g.width=R,g.height=M,g._setTranslate(ur),g._labelTranslate=z.clone(ur,g._labelTranslate)),Af(e.heightReference))for(d=0;d<p;++d){i=t[d];let S=i.billboard;l(S)&&(S._labelTranslate=z.clone(ur,S._labelTranslate))}}function Ble(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)xj(e,n[i]);l(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,l(t._removeCallbackFunc)&&t._removeCallbackFunc(),ue(t)}function Tm(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 wu({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new wu({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=H.clone(H.WHITE),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Eo.OPAQUE_AND_TRANSLUCENT)}Object.defineProperties(Tm.prototype,{length:{get:function(){return this._labels.length}}});Tm.prototype.add=function(e){let t=new Oy(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};Tm.prototype.remove=function(e){if(l(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),Ble(this,e),!0}return!1};Tm.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)Ble(this,e[t]);e.length=0};Tm.prototype.contains=function(e){return l(e)&&e._labelCollection===this};Tm.prototype.get=function(e){return this._labels[e]};Tm.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;l(this._textureAtlas)||(this._textureAtlas=new Ry({context:i}),t.textureAtlas=this._textureAtlas),l(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new Ry({context:i,initialSize:yj}),n.textureAtlas=this._backgroundTextureAtlas,zje(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&&(jje(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(Yje(a),a._repositionAllGlyphs=!1);let u=a._glyphs.length-c;this._totalGlyphCount+=u}let r=n.length>0?Eo.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)};Tm.prototype.isDestroyed=function(){return!1};Tm.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(),ue(this)};var Cm=Tm;var WM=`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 el={};el.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};el.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 Xje=new fe;el.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,Xje).height}return i};var Kje=new F,Zje=new h,kle=new h,$je=new cn(h.UNIT_X,0),Vle=new h,Qje=new cn(h.UNIT_X,0),Jje=new h,e7e=new h,Tj=[];function zle(e,t,n){let i=Tj;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 Tz=new fe,bz=new fe,My=new h,Cj=new h,t7e=new h,bj=new Op,jM=new Ra;function n7e(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,Cj),u=i.scaleToGeodeticSurface(t,t7e),f=el.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,Tz),p=i.cartesianToCartographic(u,bz),g=zle(f,o,r);bj.setEndPoints(d,p);let m=bj.surfaceDistance/f,x=a;d.height=o;let b=i.cartographicToCartesian(d,My);h.pack(b,s,x),x+=3;for(let T=1;T<f;T++){let C=bj.interpolateUsingSurfaceDistance(T*m,bz);C.height=g[T],b=i.cartographicToCartesian(C,My),h.pack(b,s,x),x+=3}return x}function i7e(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,Tz),u=i.cartesianToCartographic(t,bz),f=el.numberOfPointsRhumbLine(c,u,n);c.height=0,u.height=0;let d=zle(f,o,r);jM.ellipsoid.equals(i)||(jM=new Ra(void 0,void 0,i)),jM.setEndPoints(c,u);let p=jM.surfaceDistance/f,g=a;c.height=o;let m=i.cartographicToCartesian(c,My);h.pack(m,s,g),g+=3;for(let x=1;x<f;x++){let b=jM.interpolateUsingSurfaceDistance(x*p,bz);b.height=d[x],m=i.cartographicToCartesian(b,My),h.pack(m,s,g),g+=3}return g}el.wrapLongitude=function(e,t){let n=[],i=[];if(l(e)&&e.length>0){t=y(t,F.IDENTITY);let o=F.inverseTransformation(t,Kje),r=F.multiplyByPoint(o,h.ZERO,Zje),s=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_Y,kle),kle),a=cn.fromPointNormal(r,s,$je),c=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_X,Vle),Vle),u=cn.fromPointNormal(r,c,Qje),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(cn.getPointDistance(u,d)<0||cn.getPointDistance(u,m)<0){let x=$n.lineSegmentPlane(d,m,a,Jje);if(l(x)){let b=h.multiplyByScalar(s,5e-9,e7e);cn.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}};el.generateArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ee.default),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let x=i.scaleToGeodeticSurface(t[0],Cj);if(o=r?o[0]:o,o!==0){let b=i.geodeticSurfaceNormal(x,My);h.multiplyByScalar(b,o,b),h.add(x,b,x)}return[x.x,x.y,x.z]}let s=e.minDistance;if(!l(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+=el.numberOfPoints(t[c],t[c+1],s);let u=(a+1)*3,f=new Array(u),d=0;for(c=0;c<n-1;c++){let x=t[c],b=t[c+1],T=r?o[c]:o,C=r?o[c+1]:o;d=n7e(x,b,s,i,T,C,f,d)}Tj.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,Tz);g.height=r?o[n-1]:o;let m=i.cartographicToCartesian(g,My);return h.pack(m,f,u-3),f};var Ule=new fe,o7e=new fe;el.generateRhumbArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ee.default),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let T=i.scaleToGeodeticSurface(t[0],Cj);if(o=r?o[0]:o,o!==0){let C=i.geodeticSurfaceNormal(T,My);h.multiplyByScalar(C,o,C),h.add(T,C,T)}return[T.x,T.y,T.z]}let s=y(e.granularity,P.RADIANS_PER_DEGREE),a=0,c,u=i.cartesianToCartographic(t[0],Ule),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],o7e),a+=el.numberOfPointsRhumbLine(u,f,s),u=fe.clone(f,Ule);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let T=t[c],C=t[c+1],A=r?o[c]:o,E=r?o[c+1]:o;g=i7e(T,C,s,i,A,E,p,g)}Tj.length=0;let m=t[n-1],x=i.cartesianToCartographic(m,Tz);x.height=r?o[n-1]:o;let b=i.cartographicToCartesian(x,My);return h.pack(b,p,d-3),p};el.generateCartesianArc=function(e){let t=el.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};el.generateCartesianRhumbArc=function(e){let t=el.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 Ii=el;function Du(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,l(this._material)||(this._material=qi.fromType(qi.ColorType,{color:new H(1,1,1,1)}));let n=e.positions;l(n)||(n=[]),this._positions=n,this._actualPositions=To(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;l(t)&&(i=F.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Ii.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(Gle),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 Hle=Du.POSITION_INDEX=0,r7e=Du.SHOW_INDEX=1,s7e=Du.WIDTH_INDEX=2,a7e=Du.MATERIAL_INDEX=3,qM=Du.POSITION_SIZE_INDEX=4,c7e=Du.DISTANCE_DISPLAY_CONDITION=5,Gle=Du.NUMBER_OF_PROPERTIES=6;function x_(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(Du.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,x_(this,r7e))}},positions:{get:function(){return this._positions},set:function(e){let t=To(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)&&x_(this,qM),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),x_(this,Hle),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,x_(this,a7e))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,x_(this,s7e))}},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,x_(this,qM)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Lt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition),x_(this,c7e))}}});Du.prototype.update=function(){let e=F.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[Hle]>0||this._propertiesChanged[qM]>0;if((!F.equals(e,this._modelMatrix)||i)&&(this._segments=Ii.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=se.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=F.clone(e,this._modelMatrix),this._segments.positions.length!==t)x_(this,qM);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){x_(this,qM);break}}};Du.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};Du.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<Gle-1;++t)e[t]=0};Du.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var Vf=Du;var l7e=Vf.SHOW_INDEX,u7e=Vf.WIDTH_INDEX,Ej=Vf.POSITION_INDEX,f7e=Vf.MATERIAL_INDEX,Wle=Vf.POSITION_SIZE_INDEX,d7e=Vf.DISTANCE_DISPLAY_CONDITION,$le=Vf.NUMBER_OF_PROPERTIES,Hl={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 ih(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.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($le),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Fe.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=H.clone(H.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties(ih.prototype,{length:{get:function(){return Sj(this),this._polylines.length}}});ih.prototype.add=function(e){let t=new Vf(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};ih.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,l(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};ih.prototype.removeAll=function(){vj(this),nue(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};ih.prototype.contains=function(e){return l(e)&&e._polylineCollection===this};ih.prototype.get=function(e){return Sj(this),this._polylines[e]};function h7e(e,t){l(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 Ex(t,n,e._polylines.length)}var Qle=new Gn,Jle=new oe,eue=new z;ih.prototype.update=function(e){if(Sj(this),this._polylines.length===0||!this.show)return;x7e(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(kt.maximumVertexTextureImageUnits===0)throw new ce("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");h7e(this,t),this._createBatchTable=!1}if(this._createVertexArray||p7e(this))Yle(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==ne.SCENE3D){let u=c.length;for(let f=0;f<u;++f)i=c[f],i.update()}if(o[Wle]||o[f7e])Yle(this,t,n);else{let u=c.length,f=this._polylineBuckets;for(let d=0;d<u;++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[Ej]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[m].lengthOfPositions}if((o[l7e]||o[u7e])&&this._batchTable.setBatchedAttribute(i._index,0,new z(i._width,i._show)),this._batchTable.attributes.length>2){if(o[Ej]||o[Wle]){let m=e.mode===ne.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=Gn.fromCartesian(m.center,Qle),b=oe.fromElements(x.low.x,x.low.y,x.low.z,m.radius,Jle);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,b)}if(o[d7e]){let m=eue;m.x=0,m.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;l(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<$le;++c)o[c]=0;let r=F.IDENTITY;e.mode===ne.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!l(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=Ve.fromCache({depthMask:a,depthTest:{enabled:a}})),(!l(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;m7e(this,e,c,r)}};var YM=new se,jle=new se;function m7e(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,u=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=u.length;for(let m=0;m<g;++m){let x=u[m],b=x.buckets,T=b.length;for(let C=0;C<T;++C){let A=b[C],E=A.offset,v=A.bucket.shaderProgram,D=A.bucket.polylines,O=D.length,R,M,N=0,_,S;for(let w=0;w<O;++w){let I=D[w],L=g7e(I._material);if(L!==R){if(l(R)&&N>0){let G=M.isTranslucent();a>=s?(_=new Ze({owner:e}),n.push(_)):_=n[a],++a,S=yt(p(M._uniforms),e._uniformMap),_.boundingVolume=se.clone(YM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?ve.TRANSLUCENT:ve.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=S,_.count=N,_.offset=E,E+=N,N=0,c=!0,r.push(_)}M=I._material,M.update(o),R=L}let B=I._locatorBuckets,U=B.length;for(let G=0;G<U;++G){let k=B[G];k.locator===A&&(N+=k.count)}let V;t.mode===ne.SCENE3D?V=I._boundingVolumeWC:t.mode===ne.COLUMBUS_VIEW?V=I._boundingVolume2D:t.mode===ne.SCENE2D?l(I._boundingVolume2D)&&(V=se.clone(I._boundingVolume2D,jle),V.center.x=0):l(I._boundingVolumeWC)&&l(I._boundingVolume2D)&&(V=se.union(I._boundingVolumeWC,I._boundingVolume2D,jle)),c?(c=!1,se.clone(V,YM)):se.union(V,YM,YM)}l(R)&&N>0&&(a>=s?(_=new Ze({owner:e}),n.push(_)):_=n[a],++a,S=yt(p(M._uniforms),e._uniformMap),_.boundingVolume=se.clone(YM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=M.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=M.isTranslucent()?ve.TRANSLUCENT:ve.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=S,_.count=N,_.offset=E,c=!0,r.push(_)),R=void 0}}n.length=a}ih.prototype.isDestroyed=function(){return!1};ih.prototype.destroy=function(){return tue(this),vj(this),nue(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function p7e(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[Ej]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var qle=[0,0,0];function Yle(e,t,n){e._createVertexArray=!1,vj(e),tue(e),y7e(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,u=[[]],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,C=0,A=0,E=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(x,b,C,A,E,r,t,n),m===ne.MORPHING&&(l(T)||(T=new Float32Array(6*f*3)),g.writeForMorph(T,C));let S=g.lengthOfPositions;C+=6*S*3,A+=S*4,E+=S*4,c=g.updateIndices(i,a,u,c)}let v=e._positionBufferUsage.bufferUsage,D=Fe.STATIC_DRAW;e._positionBuffer=_t.createVertexBuffer({context:t,typedArray:x,usage:v});let O;l(T)&&(O=_t.createVertexBuffer({context:t,typedArray:T,usage:v})),e._texCoordExpandAndBatchIndexBuffer=_t.createVertexBuffer({context:t,typedArray:b,usage:D});let R=3*Float32Array.BYTES_PER_ELEMENT,M=4*Float32Array.BYTES_PER_ELEMENT,N=0,_=i.length;for(let S=0;S<_;++S)if(o=i[S],o.length>0){let w=new Uint16Array(o),I=_t.createIndexBuffer({context:t,typedArray:w,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});N+=a[S];let L=6*(S*(R*P.SIXTY_FOUR_KILOBYTES)-N*R),B=R+L,U=R+B,V=R+U,G=R+V,k=R+G,W=S*(M*P.SIXTY_FOUR_KILOBYTES)-N*M,q=[{index:Hl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:L,strideInBytes:6*R},{index:Hl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:Hl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:L,strideInBytes:6*R},{index:Hl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:Hl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:Hl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:Hl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:Hl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:Hl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:Hl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:Hl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:Hl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:Hl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:W}],J,j,K,Q;m===ne.SCENE3D?(j=e._positionBuffer,J="vertexBuffer",K=qle,Q="value"):m===ne.SCENE2D||m===ne.COLUMBUS_VIEW?(j=qle,J="value",K=e._positionBuffer,Q="vertexBuffer"):(j=O,J="vertexBuffer",K=e._positionBuffer,Q="vertexBuffer"),q[0][J]=j,q[1][J]=j,q[2][Q]=K,q[3][Q]=K,q[4][J]=j,q[5][J]=j,q[6][Q]=K,q[7][Q]=K,q[8][J]=j,q[9][J]=j,q[10][Q]=K,q[11][Q]=K;let de=new ti({context:t,attributes:q,indexBuffer:I});e._vertexArrays.push({va:de,buckets:u[S]})}}}function _7e(e,t){return t instanceof Pt?t.id:t}var Cz=[];function g7e(e){let t=qi._uniformList[e.type],n=t.length;Cz.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];Cz[i]=r,Cz[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(Cz,_7e)}`}function y7e(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,u=i[c.type];l(u)||(u=i[c.type]=new Am(c,t,n)),u.addPolyline(a)}}}function x7e(e,t){let n=t.mode;(e._mode!==n||!F.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=F.clone(e.modelMatrix),e._createVertexArray=!0)}function Sj(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 vj(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;l(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function tue(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}ih.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function nue(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function Aj(e,t,n){this.count=e,this.offset=t,this.bucket=n}function Am(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}Am.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};Am.prototype.updateShader=function(e,t,n){if(l(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"),Ht.isInternetExplorer()||i.push("CLIP_POLYLINE");let o=new Ue({defines:i,sources:[`in vec4 v_pickColor;
`,this.material.shaderSource,Px]}),r=t.getVertexShaderCallback()(WM),s=new Ue({defines:i,sources:[_u,r]});this.shaderProgram=Qt.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:Hl})};function iue(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(cn.ORIGIN_ZX_PLANE)===jt.INTERSECTING}Am.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===ne.SCENE3D||!iue(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 vs=new h,Uf=new h,zf=new h,Az=new h,b7e=new oe,T7e=new z;Am.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,u=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),C=T.positions,A=T.lengths,E=C.length,v=g.getPickId(s).color,D=0,O=0,R;for(let U=0;U<E;++U){U===0?g._loop?R=C[E-2]:(R=Az,h.subtract(C[0],C[1],R),h.add(C[0],R,R)):R=C[U-1],h.clone(R,Uf),h.clone(C[U],vs),U===E-1?g._loop?R=C[1]:(R=Az,h.subtract(C[E-1],C[E-2],R),h.add(C[E-1],R,R)):R=C[U+1],h.clone(R,zf);let V=A[D];U===O+V&&(O+=V,++D);let G=U-O===0,k=U===O+A[D]-1;c===ne.SCENE2D&&(Uf.z=0,vs.z=0,zf.z=0),(c===ne.SCENE2D||c===ne.MORPHING)&&(G||k)&&u-Math.abs(vs.x)<1&&((vs.x<0&&Uf.x>0||vs.x>0&&Uf.x<0)&&h.clone(vs,Uf),(vs.x<0&&zf.x>0||vs.x>0&&zf.x<0)&&h.clone(vs,zf));let W=G?2:0,q=k?2:4;for(let J=W;J<q;++J){Gn.writeElements(vs,e,n),Gn.writeElements(Uf,e,n+6),Gn.writeElements(zf,e,n+12);let j=J-2<0?-1:1;t[o]=U/(E-1),t[o+1]=2*(J%2)-1,t[o+2]=j,t[o+3]=b,n+=6*3,o+=4}}let M=b7e;M.x=H.floatToByte(v.red),M.y=H.floatToByte(v.green),M.z=H.floatToByte(v.blue),M.w=H.floatToByte(v.alpha);let N=T7e;N.x=m,N.y=x?1:0;let _=c===ne.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,S=Gn.fromCartesian(_.center,Qle),w=S.high,I=oe.fromElements(S.low.x,S.low.y,S.low.z,_.radius,Jle),L=eue;L.x=0,L.y=Number.MAX_VALUE;let B=g.distanceDisplayCondition;l(B)&&(L.x=B.near,L.y=B.far),r.setBatchedAttribute(b,0,N),r.setBatchedAttribute(b,1,M),r.attributes.length>2&&(r.setBatchedAttribute(b,2,w),r.setBatchedAttribute(b,3,I),r.setBatchedAttribute(b,4,L))}};var C7e=new h,A7e=new h,E7e=new h,Xle=new h;Am.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,u=a.length,f=0,d=0;for(let p=0;p<u;++p){let g;p===0?s._loop?g=a[u-2]:(g=Xle,h.subtract(a[0],a[1],g),h.add(a[0],g,g)):g=a[p-1],g=F.multiplyByPoint(n,g,A7e);let m=F.multiplyByPoint(n,a[p],C7e),x;p===u-1?s._loop?x=a[1]:(x=Xle,h.subtract(a[u-1],a[u-2],x),h.add(a[u-1],x,x)):x=a[p+1],x=F.multiplyByPoint(n,x,E7e);let b=c[f];p===d+b&&(d+=b,++f);let T=p-d===0,C=p===d+c[f]-1,A=T?2:0,E=C?2:4;for(let v=A;v<E;++v)Gn.writeElements(m,e,t),Gn.writeElements(g,e,t+6),Gn.writeElements(x,e,t+12),t+=6*3}}};var S7e=new Array(1);Am.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new Aj(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 u=this.polylines,f=u.length;for(let d=0;d<f;++d){let p=u[d];p._locatorBuckets=[];let g;if(this.mode===ne.SCENE3D){g=S7e;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 C=0;C<T;++C)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 Aj(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 Aj(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};Am.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 rE={positions:void 0,lengths:void 0},Kle=new Array(1),v7e=new h,w7e=new fe;Am.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===ne.SCENE3D)return Kle[0]=n.length,rE.positions=n,rE.lengths=Kle,rE;iue(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=v7e;for(let u=0;u<s;++u)a=n[u],c=F.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,w7e)));if(o.length>0){e._boundingVolume2D=se.fromPoints(o,e._boundingVolume2D);let u=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(u.z,u.x,u.y)}return rE.positions=o,rE.lengths=e._segments.lengths,rE};var Zle;Am.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=Zle,c=6*s*3;!l(a)||a.length<c?a=Zle=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let u=this.getSegments(t,i),f=u.positions,d=u.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=Az,h.subtract(f[0],f[1],x),h.add(f[0],x,x)):x=f[b-1],h.clone(x,Uf),h.clone(f[b],vs),b===s-1?t._loop?x=f[1]:(x=Az,h.subtract(f[s-1],f[s-2],x),h.add(f[s-1],x,x)):x=f[b+1],h.clone(x,zf);let T=d[g];b===m+T&&(m+=T,++g);let C=b-m===0,A=b===m+d[g]-1;o===ne.SCENE2D&&(Uf.z=0,vs.z=0,zf.z=0),(o===ne.SCENE2D||o===ne.MORPHING)&&(C||A)&&r-Math.abs(vs.x)<1&&((vs.x<0&&Uf.x>0||vs.x>0&&Uf.x<0)&&h.clone(vs,Uf),(vs.x<0&&zf.x>0||vs.x>0&&zf.x<0)&&h.clone(vs,zf));let E=C?2:0,v=A?2:4;for(let D=E;D<v;++D)Gn.writeElements(vs,a,p),Gn.writeElements(Uf,a,p+6),Gn.writeElements(zf,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var oh=ih;function Ly(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 wu({batchTable:e.batchTable}),this._labelCollection=new Cm({batchTable:e.batchTable}),this._polylineCollection=new oh,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Ly.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 D7e(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+re.packedLength+ee.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,re.pack(n,s,a),a+=re.packedLength,ee.pack(t,s,a),s}var I7e=new pi("createVectorTilePoints",5),P7e=new h;function R7e(e,t){let n=e._positions,i=e._packedBuffer;l(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=D7e(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=I7e.scheduleTask(r,o);if(l(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,u=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,P7e),b=c.add();b.position=x,b._batchIndex=m;let T=u.add();T.text=" ",T.position=x,T._batchIndex=m;let C=f.add();C.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)})}Ly.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],u=n.get(a),f=i.get(a),d=o.get(a);t[c]=new g_(e,c,u,f,d)}};Ly.prototype.applyDebugSettings=function(e,t){e?(H.clone(t,this._billboardCollection._highlightColor),H.clone(t,this._labelCollection._highlightColor),H.clone(t,this._polylineCollection._highlightColor)):(H.clone(H.WHITE,this._billboardCollection._highlightColor),H.clone(H.WHITE,this._labelCollection._highlightColor),H.clone(H.WHITE,this._polylineCollection._highlightColor))};function O7e(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=g_.defaultPointSize,s.color=g_.defaultColor,s.pointOutlineColor=g_.defaultPointOutlineColor,s.pointOutlineWidth=g_.defaultPointOutlineWidth,s.labelColor=H.WHITE,s.labelOutlineColor=H.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=Wo.FILL,s.labelText=void 0,s.backgroundColor=new H(.165,.165,.165,.8),s.backgroundPadding=new z(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=H.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=_i.CENTER,s.verticalOrigin=Rn.CENTER,s.labelHorizontalOrigin=_i.RIGHT,s.labelVerticalOrigin=Rn.BASELINE}}var M7e=new H,L7e=new H,N7e=new H,F7e=new H,B7e=new H,k7e=new H,XM=new Bt,KM=new Bt,wj=new Lt;Ly.prototype.applyStyle=function(e,t){if(!l(e)){O7e(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(l(e.show)&&(s.show=e.show.evaluate(s)),l(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),l(e.color)&&(s.color=e.color.evaluateColor(s,M7e)),l(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,L7e)),l(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),l(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,N7e)),l(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,F7e)),l(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),l(e.font)&&(s.font=e.font.evaluate(s)),l(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),l(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,l(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,B7e)),l(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),l(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),l(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);l(a)?(XM.near=a.x,XM.nearValue=a.y,XM.far=a.z,XM.farValue=a.w,s.scaleByDistance=XM):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(l(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);l(a)?(KM.near=a.x,KM.nearValue=a.y,KM.far=a.z,KM.farValue=a.w,s.translucencyByDistance=KM):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(l(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);l(a)?(wj.near=a.x,wj.far=a.y,s.distanceDisplayCondition=wj):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;l(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),l(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),l(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,k7e)),l(e.image)?s.image=e.image.evaluate(s):s.image=void 0,l(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),l(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),l(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),l(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),l(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};Ly.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=R7e(this,e.mapProjection.ellipsoid)),l(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)};Ly.prototype.isDestroyed=function(){return!1};Ly.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(),ue(this)};var ZM=Ly;function b_(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,ee.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=Vn.BOTH}Object.defineProperties(b_.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function V7e(e){let t=new Float64Array(3+h.packedLength+ee.packedLength+re.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,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,re.pack(e._rectangle,t,n),t}function U7e(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=vn.unpack(t,n),n+=vn.packedLength;let r=t[n++],s=e._batchedIndices=new Array(r);for(let a=0;a<r;++a){let c=H.unpack(t,n);n+=H.packedLength;let u=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 fm({color:c,offset:u,count:f,batchIds:p})}}var z7e=new pi("createVectorTilePolygons",5),H7e=new H;function G7e(e){if(l(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(!l(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(re.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,H7e);s[x]=b.toRgba()}a=e._packedBuffer=V7e(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],u={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;l(f)&&l(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),u.minimumHeights=f,u.maximumHeights=d);let p=z7e.scheduleTask(u,c);if(l(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];U7e(e,m),e._indices=Ne.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),W7e(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function W7e(e){l(e._primitive)||(e._primitive=new $x({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)}b_.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};b_.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};b_.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};b_.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};b_.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=G7e(this)),l(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)};b_.prototype.isDestroyed=function(){return!1};b_.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var $M=b_;var QM=`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 rh(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ee.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=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(rh.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function j7e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+re.packedLength+ee.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,re.pack(t,a,c),c+=re.packedLength,ee.pack(o,a,c),c+=ee.packedLength,h.pack(r,a,c),a}var q7e=new pi("createVectorTilePolylines",5),sE={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function Y7e(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(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=j7e(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},u=q7e.scheduleTask(c,a);if(l(u))return u.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===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),X7e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function X7e(e,t){if(!l(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 u=_t.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),f=_t.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),d=_t.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),p=_t.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),g=_t.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),m=_t.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),x=[{index:sE.previousPosition,vertexBuffer:u,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:sE.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:sE.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:sE.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:sE.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 JM=new F,oue=new h;function K7e(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,JM),F.multiplyByPoint(JM,e._center,oue),F.setTranslation(JM,oue,JM),JM},u_highlightColor:function(){return e._highlightColor}})}function Z7e(e){if(l(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 $7e=`uniform vec4 u_highlightColor; 
void main()
{
    out_FragColor = u_highlightColor;
}
`;function Q7e(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(QM),o=n.getFragmentShaderCallback(!1,void 0,!1)($7e),r=new Ue({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[_u,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:sE})}function J7e(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new Ze({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:ve.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}rh.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,u=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[u++]=i[g],f[u++]=i[g+1],f[u++]=i[g+2]}}return f};rh.prototype.getPositions=function(e){return rh.getPolylinePositions(this,e)};rh.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 Ws(e,r)}};rh.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function eqe(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=H.WHITE}}var tqe=new H,nqe=H.WHITE,iqe=!0;rh.prototype.applyStyle=function(e,t){if(!l(e)){eqe(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=l(e.color)?e.color.evaluateColor(s,tqe):nqe,s.show=l(e.show)?e.show.evaluate(s):iqe}};rh.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=Y7e(this,t)),l(this._error)){let i=this._error;throw this._error=void 0,i}return}K7e(this,t),Q7e(this,t),Z7e(this);let n=e.passes;(n.render||n.pick)&&J7e(this,e)};rh.prototype.isDestroyed=function(){return!1};rh.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var Ib=rh;var eL=`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()
{
    // vertex corner IDs
    //          3-----------7
    //         /|   left   /|
    //        / | 1       / |
    //       2-----------6  5  end
    //       | /         | /
    // start |/  right   |/
    //       0-----------4
    //
    float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end
    float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top

    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));

    // Push for volume height
    float offset;
    vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd);

    // offset height to create volume
    offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd);
    offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset;
    position.xyz += offset * ellipsoidNormal;

    // move from RTC to EC
    position = u_modifiedModelView * position;
    right = czm_normal * right;

    // Push for width in a direction that is in the start or end plane and in a plane with right
    // N = normalEC ("right-facing" direction for push)
    // R = right
    // p = angle between N and R
    // w = distance to push along R if R == N
    // d = distance to push along N
    //
    //   N   R
    //  {  p| }      * cos(p) = dot(N, R) = w / d
    //  d  |  |w    * d = w / dot(N, R)
    //    { | }
    //       o---------- polyline segment ---->
    //
    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 = widthEC
    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 tL=`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)));

    // Discard for sky
    if (logDepthOrDepth == 0.0) {
#ifdef DEBUG_SHOW_VOLUME
        out_FragColor = vec4(0.0, 0.0, 1.0, 0.5);
        return;
#else // DEBUG_SHOW_VOLUME
        discard;
#endif // DEBUG_SHOW_VOLUME
    }

    vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);
    eyeCoordinate /= eyeCoordinate.w;

    float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate);

    // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction
    halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC));

    // Check distance of the eye coordinate against the right-facing plane
    float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz);

    // Check eye coordinate against the mitering planes
    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 // DEBUG_SHOW_VOLUME
        discard;
#endif // DEBUG_SHOW_VOLUME
    }
    out_FragColor = u_highlightColor;

    czm_writeDepthClamp();
}
`;function T_(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ee.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 z(li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight),this._boundingVolume=vn.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=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(T_.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function oqe(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;vn.fromRectangle(c,o,r,n,a)}function rqe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+re.packedLength+ee.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,re.pack(t,a,c),c+=re.packedLength,ee.pack(o,a,c),c+=ee.packedLength,h.pack(r,a,c),a}var sqe=new pi("createVectorTileClampedPolylines"),Ny={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function aqe(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(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=rqe(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},u=sqe.scheduleTask(c,a);if(l(u))return u.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===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),cqe(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function cqe(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,u=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+u.byteLength,e._trianglesLength=u.length/3,e._geometryByteLength=f;let d=_t.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=_t.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),g=_t.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),m=_t.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),x=_t.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),b=_t.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),T=_t.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),C=_t.createIndexBuffer({context:t,typedArray:u,usage:Fe.STATIC_DRAW,indexDatatype:u.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),A=[{index:Ny.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Ny.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Ny.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.endPositionAndHeight,vertexBuffer:m,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.endFaceNormalAndHalfWidth,vertexBuffer:b,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.a_batchId,vertexBuffer:T,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:A,indexBuffer:C}),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 nL=new F,rue=new h;function lqe(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,nL),F.multiplyByPoint(nL,e._center,rue),F.setTranslation(nL,rue,nL),nL},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function sue(e){return Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.EQUAL,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK}})}function uqe(e){l(e._rs)||(e._rs=sue(!1),e._rs3DTiles=sue(!0))}function fqe(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(eL),o=n.getFragmentShaderCallback(!1,void 0,!0)(tL),r=new Ue({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[_u,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:Ny})}function dqe(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new Ze({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:ve.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=Ze.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===Vn.TERRAIN||i===Vn.BOTH)&&t.commandList.push(n),(i===Vn.CESIUM_3D_TILE||i===Vn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}T_.prototype.getPositions=function(e){return Ib.getPolylinePositions(this,e)};T_.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 Ws(e,r)}};T_.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function hqe(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=H.WHITE}}var mqe=new H,pqe=H.WHITE,_qe=!0;T_.prototype.applyStyle=function(e,t){if(!l(e)){hqe(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=l(e.color)?e.color.evaluateColor(s,mqe):pqe,s.show=l(e.show)?e.show.evaluate(s):_qe}};function gqe(e){return li.initialize().then(function(){oqe(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}T_.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=gqe(this).then(aqe(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}lqe(this,t),fqe(this,t),uqe(this);let n=e.passes;(n.render||n.pick)&&dqe(this,e)};T_.prototype.isDestroyed=function(){return!1};T_.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var iL=T_;var Dj=32767,yqe=new fe,xqe=new h;function bqe(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);Mn.zigZagDeltaDecode(s,a,c);let u=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/Dj),x=P.lerp(t.south,t.north,p/Dj),b=P.lerp(n,i,g/Dj),T=fe.fromRadians(m,x,b,yqe),C=o.cartographicToCartesian(T,xqe);h.pack(C,u,f*3)}return u}var oL=bqe;function ah(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,Sqe(this,i,o)}Object.defineProperties(ah.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return l(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.trianglesLength),l(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.geometryByteLength),l(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return l(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return l(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 Tqe(e){return function(t,n){l(e._polygons)&&e._polygons.updateCommands(t,n)}}function Cqe(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&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let u=l(n)||l(i)||l(o),f=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(u&&f)throw new ce("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!l(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!l(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var sh=Uint32Array.BYTES_PER_ELEMENT;function Aqe(e){return new Ib(e)}function Eqe(e){return new iL(e)}function Sqe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=sh;let r=o.getUint32(n,!0);if(r!==1)throw new ce(`Only Vector tile version 1 is supported.  Version ${r} is not.`);n+=sh;let s=o.getUint32(n,!0);if(n+=sh,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=sh,a===0)throw new ce("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=sh;let u=o.getUint32(n,!0);n+=sh;let f=o.getUint32(n,!0);n+=sh;let d=o.getUint32(n,!0);n+=sh;let p=o.getUint32(n,!0);n+=sh;let g=o.getUint32(n,!0);n+=sh;let m=o.getUint32(n,!0);n+=sh;let x=Mo(i,n,a);n+=a;let b=new Uint8Array(t,n,c);n+=c;let T,C;u>0&&(T=Mo(i,n,u),n+=u,f>0&&(C=new Uint8Array(t,n,f),C=new Uint8Array(C),n+=f));let A=y(x.POLYGONS_LENGTH,0),E=y(x.POLYLINES_LENGTH,0),v=y(x.POINTS_LENGTH,0),D=A+E+v,O=new Gp(e,D,T,C,Tqe(e));if(e._batchTable=O,D===0)return;let R=new Jd(x,b),M=R.getGlobalProperty("REGION");if(!l(M))throw new ce("Feature table global property: REGION must be defined");let N=re.unpack(M),_=M[4],S=M[5],w=e._tile.computedTransform,I=R.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(I)?(I=h.unpack(I),F.multiplyByPoint(w,I,I)):(I=re.center(N),I.height=P.lerp(_,S,.5),I=ee.WGS84.cartographicToCartesian(I));let L=Cqe(x,b);if(n+=(4-n%4)%4,A>0){R.featuresLength=A;let B=y(R.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new ce("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let U=y(R.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!l(U))throw new ce("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=B.reduce(function(j,K){return j+K*2},0),G=U.reduce(function(j,K){return j+K},0),k=new Uint32Array(t,n,G);n+=d;let W=new Uint16Array(t,n,V);n+=p;let q,J;l(x.POLYGON_MINIMUM_HEIGHTS)&&l(x.POLYGON_MAXIMUM_HEIGHTS)&&(q=R.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),J=R.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new $M({positions:W,counts:B,indexCounts:U,indices:k,minimumHeight:_,maximumHeight:S,polygonMinimumHeights:q,polygonMaximumHeights:J,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:L.polygons,modelMatrix:w})}if(E>0){R.featuresLength=E;let B=y(R.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new ce("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let U=R.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!l(U)){U=new Uint16Array(E);for(let J=0;J<E;++J)U[J]=2}let V=B.reduce(function(J,j){return J+j*3},0),G=new Uint16Array(t,n,V);n+=g;let k=e._tileset,W=k.examineVectorLinesFunction;if(l(W)){let J=oL(new Uint16Array(G),N,_,S,ee.WGS84);vqe(J,B,L.polylines,O,e.url,W)}let q=Aqe;l(k.classificationType)&&(q=Eqe),e._polylines=q({positions:G,widths:U,counts:B,batchIds:L.polylines,minimumHeight:_,maximumHeight:S,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,classificationType:k.classificationType,keepDecodedPositions:k.vectorKeepDecodedPositions})}if(v>0){let B=new Uint16Array(t,n,v*3);n+=m,e._points=new ZM({positions:B,batchIds:L.points,minimumHeight:_,maximumHeight:S,rectangle:N,batchTable:O})}}function Ij(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}ah.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};ah.prototype.getFeature=function(e){return l(this._features)||Ij(this),this._features[e]};ah.prototype.applyDebugSettings=function(e,t){l(this._polygons)&&this._polygons.applyDebugSettings(e,t),l(this._polylines)&&this._polylines.applyDebugSettings(e,t),l(this._points)&&this._points.applyDebugSettings(e,t)};ah.prototype.applyStyle=function(e){l(this._features)||Ij(this),l(this._polygons)&&this._polygons.applyStyle(e,this._features),l(this._polylines)&&this._polylines.applyStyle(e,this._features),l(this._points)&&this._points.applyStyle(e,this._features)};ah.prototype.update=function(e,t){let n=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),l(this._points)&&(this._points.update(t),n=n&&this._points.ready),l(this._batchTable)&&n&&(l(this._features)||Ij(this),this._batchTable.update(e,t),this._ready=!0)};ah.prototype.pick=function(e,t,n){};ah.prototype.getPolylinePositions=function(e){let t=this._polylines;if(l(t))return t.getPositions(e)};ah.prototype.isDestroyed=function(){return!1};ah.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(),ue(this)};function vqe(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let u=t[c]*3,f=e.slice(a,a+u);a+=u,r(f,n[c],o,i)}}var rL=ah;var aue={b3dm:function(e,t,n,i,o){return xm.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return xm.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return xm.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return N1.fromTileType(e,t,n,i,o,aue)},externalTileset:function(e,t,n,i){return NM.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new B1(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new rL(e,t,n,i,o)},subt:function(e,t,n,i,o){return IA.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return IA.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new ce("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return xm.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return xm.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return xm.fromGeoJson(e,t,n,i)}},Pb=aue;var wqe={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},jo=Object.freeze(wqe);var ch={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"};ch.isBinaryFormat=function(e){switch(e){case ch.BATCHED_3D_MODEL:case ch.INSTANCED_3D_MODEL:case ch.COMPOSITE:case ch.POINT_CLOUD:case ch.VECTOR:case ch.GEOMETRY:case ch.IMPLICIT_SUBTREE:case ch.VOXEL_BINARY:case ch.GLTF_BINARY:return!0;default:return!1}};var ws=Object.freeze(ch);var Dqe={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},Hf=Object.freeze(Dqe);var Ks={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},C_=new Array(Ks.NUMBER_OF_PASSES);C_[Ks.RENDER]=Object.freeze({pass:Ks.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});C_[Ks.PICK]=Object.freeze({pass:Ks.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});C_[Ks.SHADOW]=Object.freeze({pass:Ks.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});C_[Ks.PRELOAD]=Object.freeze({pass:Ks.PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.PRELOAD_FLIGHT]=Object.freeze({pass:Ks.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:Ks.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.MOST_DETAILED_PRELOAD]=Object.freeze({pass:Ks.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.MOST_DETAILED_PICK]=Object.freeze({pass:Ks.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Ks.getPassOptions=function(e){return C_[e]};var Fo=Object.freeze(Ks);function Em(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties(Em.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){}}});Em.prototype.hasProperty=function(e,t){return!1};Em.prototype.getFeature=function(e){};Em.prototype.applyDebugSettings=function(e,t){};Em.prototype.applyStyle=function(e){};Em.prototype.update=function(e,t){};Em.prototype.pick=function(e,t,n){};Em.prototype.isDestroyed=function(){return!1};Em.prototype.destroy=function(){return ue(this)};var aE=Em;function A_(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(A_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});A_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};A_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};A_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};A_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};A_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};A_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};A_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var sL=A_;function Pj(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){Pj._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(l(n.class)){let o=i[n.class];return new sL({content:n,class:o})}}Pj._oneTimeWarning=xt;var Rb=Pj;function Iqe(e,t){let n=e.metadataExtension;if(!l(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 Ob=Iqe;function E_(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(E_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});E_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};E_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};E_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};E_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};E_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};E_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};E_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var aL=E_;function Rj(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){Rj._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(l(n.class)){let o=i[n.class];return new aL({tile:n,class:o})}}Rj._oneTimeWarning=xt;var cL=Rj;function Pqe(e){let t=new Uint8Array(e),n=Gd(t);if(n==="glTF"&&(n="glb"),ws.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=Rqe(t);if(l(i.root))return{contentType:ws.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:ws.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:ws.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:ws.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:ws.VOXEL_JSON,jsonPayload:i};throw new ce("Invalid tile content.")}function Rqe(e){let t;try{t=Mo(e)}catch{throw new ce("Invalid tile content.")}return t}var Sm=Pqe;function Gf(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=l(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=ec.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(Gf.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 Oj(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function cue(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)}Gf.prototype.requestInnerContents=function(){if(!Oqe(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;Oj(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=Mqe(this,n,t,this._tile._contentState);return Lqe(this)};function Oqe(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];l(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!ec.serverHasOpenSlots(n,t[n]))return!1;return ec.heapHasOpenSlots(e.length)}function Mqe(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:fs.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let u=o.fetchArrayBuffer();if(l(u))return u.then(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Zn.CANCELLED){cue(e,i);return}return Oj(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Zn.CANCELLED){cue(e,i);return}Oj(e,-1),lue(e,t,f)}})}async function Lqe(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>Nqe(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(l),o}async function Nqe(e,t,n){if(l(t))try{let i=Sm(t);if(i.contentType===ws.EXTERNAL_TILESET)throw new ce("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===ws.GEOMETRY||i.contentType===ws.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=Pb[i.contentType];l(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 u=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=Rb(o,u));let f=Ob(o,u);return l(f)&&(a.group=new Yx({metadata:f})),a}catch(i){lue(e,n,i)}}function lue(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(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}`))}Gf.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];l(t)&&t.cancel()}};Gf.prototype.hasProperty=function(e,t){return!1};Gf.prototype.getFeature=function(e){};Gf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};Gf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};Gf.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)};Gf.prototype.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};Gf.prototype.isDestroyed=function(){return!1};Gf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var lL=Gf;var uue=Math.cos,fue=Math.sin,Fqe=Math.sqrt,Mj={};Mj.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,u=e.boundingRectangle,f=c.latitude-e.granYCos*i+o*e.granXSin,d=uue(f),p=fue(f),g=a.z*p,m=c.longitude+i*e.granYSin+o*e.granXCos,x=d*uue(m),b=d*fue(m),T=a.x*x,C=a.y*b,A=Fqe(T*x+C*b+g*p);if(r.x=T/A,r.y=C/A,r.z=g/A,n){let E=e.stNwCorner;l(E)?(f=E.latitude-e.stGranYCos*i+o*e.stGranXSin,m=E.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(m-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(m-u.west)*e.lonScalar,s.y=(f-u.south)*e.latScalar)}};var Bqe=new Bi,Wf=new h,kqe=new fe,Ez=new h,uL=new vi;function due(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,u=n*a,f=Math.sin(t),d=i*f,p=n*f;uL._ellipsoid=ee.default,Wf=uL.project(e,Wf),Wf=h.subtract(Wf,Ez,Wf);let g=Bi.fromRotation(t,Bqe);Wf=Bi.multiplyByVector(g,Wf,Wf),Wf=h.add(Wf,Ez,Wf),e=uL.unproject(Wf,e),r-=1,s-=1;let m=e.latitude,x=m+r*p,b=m-c*s,T=m-c*s+r*p,C=Math.max(m,x,b,T),A=Math.min(m,x,b,T),E=e.longitude,v=E+r*u,D=E+s*d,O=E+s*d+r*u,R=Math.max(E,v,D,O),M=Math.min(E,v,D,O);return{north:C,south:A,east:R,west:M,granYCos:c,granYSin:d,granXCos:u,granXSin:p,nwCorner:e}}Mj.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,u=e.north,f=e.south,d=!1,p=!1;u===P.PI_OVER_TWO&&(d=!0),f===-P.PI_OVER_TWO&&(p=!0);let g,m=u-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),C=m/(b-1),A=re.northwest(e,r),E=re.center(e,kqe);(n!==0||i!==0)&&(E.longitude<A.longitude&&(E.longitude+=P.TWO_PI),uL._ellipsoid=ee.default,Ez=uL.project(E,Ez));let v=C,D=T,O=0,R=0,M=re.clone(e,o),N={granYCos:v,granYSin:O,granXCos:D,granXSin:R,nwCorner:A,boundingRectangle:M,width:x,height:b,northCap:d,southCap:p};if(n!==0){let _=due(A,n,T,C,E,x,b);u=_.north,f=_.south,a=_.east,c=_.west,N.granYCos=_.granYCos,N.granYSin=_.granYSin,N.granXCos=_.granXCos,N.granXSin=_.granXSin,M.north=u,M.south=f,M.east=a,M.west=c}if(i!==0){n=n-i;let _=re.northwest(M,s),S=due(_,n,T,C,E,x,b);N.stGranYCos=S.granYCos,N.stGranXCos=S.granXCos,N.stGranYSin=S.granYSin,N.stGranXSin=S.granXSin,N.stNwCorner=_,N.stWest=S.west,N.stSouth=S.south}return N};var Ds=Mj;var Vqe=new se,Uqe=new se,zqe=new h,Hqe=new re;function hue(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,u=0,f=4;r&&(c-=1,a-=1,u+=1,f-=2),s&&(c-=1,a-=1,u+=1,f-=2),u+=c*o+2*a-f;let d=new Float64Array(u*3),p=0,g=0,m,x=zqe;if(r)Ds.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++)Ds.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++)Ds.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--)Ds.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--)Ds.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=Ne.createTypedArray(d.length/3,b),C=0;for(let E=0;E<d.length/3-1;E++)T[C++]=E,T[C++]=E+1;T[C++]=d.length/3-1,T[C++]=0;let A=new at({attributes:new fn,primitiveType:Me.LINES});return A.attributes.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),A.indices=T,A}function Gqe(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=hue(e,t),s=t.height,a=t.width,c=si.scaleToGeodeticHeight(r.attributes.position.values,n,o,!1),u=c.length,f=new Float64Array(u*2);f.set(c);let d=si.scaleToGeodeticHeight(r.attributes.position.values,i,o);f.set(d,u),r.attributes.position.values=f;let p=t.northCap,g=t.southCap,m=4;p&&(m-=1),g&&(m-=1);let x=(f.length/3+m)*2,b=Ne.createTypedArray(f.length/3,x);u=f.length/6;let T=0;for(let A=0;A<u-1;A++)b[T++]=A,b[T++]=A+1,b[T++]=A+u,b[T++]=A+u+1;b[T++]=u-1,b[T++]=0,b[T++]=u+u-1,b[T++]=u,b[T++]=0,b[T++]=u;let C;if(p)C=s-1;else{let A=a-1;b[T++]=A,b[T++]=A+u,C=a+s-2}if(b[T++]=C,b[T++]=C+u,!g){let A=a+C-1;b[T++]=A,b[T]=A+u}return r.indices=b,r}function lE(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.ellipsoid,ee.default),o=y(e.rotation,0),r=y(e.height,0),s=y(e.extrudedHeight,r);this._rectangle=re.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"}lE.packedLength=re.packedLength+ee.packedLength+5;lE.pack=function(e,t,n){return n=y(n,0),re.pack(e._rectangle,t,n),n+=re.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.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 mue=new re,pue=ee.clone(ee.UNIT_SPHERE),cE={rectangle:mue,ellipsoid:pue,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};lE.unpack=function(e,t,n){t=y(t,0);let i=re.unpack(e,t,mue);t+=re.packedLength;let o=ee.unpack(e,t,pue);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t];return l(n)?(n._rectangle=re.clone(i,n._rectangle),n._ellipsoid=ee.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=u===-1?void 0:u,n):(cE.granularity=r,cE.height=s,cE.rotation=a,cE.extrudedHeight=c,cE.offsetAttribute=u===-1?void 0:u,new lE(cE))};var Wqe=new fe;lE.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=Ds.computeOptions(t,e._granularity,e._rotation,0,Hqe,Wqe),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),u;if(c){if(o=Gqe(e,i),l(e._offsetAttribute)){let p=o.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===an.TOP?g=g.fill(1,0,p/2):(u=e._offsetAttribute===an.NONE?0:1,g=g.fill(u)),o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=se.fromRectangle3D(t,n,s,Uqe),d=se.fromRectangle3D(t,n,a,Vqe);r=se.union(f,d)}else{if(o=hue(e,i),o.attributes.position.values=si.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),l(e._offsetAttribute)){let f=o.attributes.position.values.length;u=e._offsetAttribute===an.NONE?0:1;let d=new Uint8Array(f/3).fill(u);o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}r=se.fromRectangle3D(t,n,s)}return new at({attributes:o.attributes,indices:o.indices,primitiveType:Me.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var Mb=lE;function fE(e){this.rectangle=re.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,ee.WGS84);Kqe(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(fE.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});fE.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=vn.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)};var _ue=new h,Sz=new h,gue=new h,jqe=new h,qqe=new h,Yqe=new h,Xqe=new h,jf=new fe,yue=new cn(h.UNIT_X,0),uE=new mn;function Kqe(e,t,n){n.cartographicToCartesian(re.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(re.northeast(t),e.northeastCornerCartesian),jf.longitude=t.west,jf.latitude=(t.south+t.north)*.5,jf.height=0;let i=n.cartographicToCartesian(jf,Yqe),o=h.cross(i,h.UNIT_Z,jqe);h.normalize(o,e.westNormal),jf.longitude=t.east;let r=n.cartographicToCartesian(jf,Xqe),s=h.cross(h.UNIT_Z,r,_ue);h.normalize(s,e.eastNormal);let a=h.subtract(i,r,_ue);h.magnitude(a)===0&&(a=h.clone(o,a));let c=h.normalize(a,qqe),u=t.south,f;if(u>0){jf.longitude=(t.west+t.east)*.5,jf.latitude=u;let x=n.cartographicToCartesian(jf,uE.origin);h.clone(c,uE.direction);let b=cn.fromPointNormal(e.southwestCornerCartesian,e.westNormal,yue);$n.rayPlane(uE,b,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(x,Sz)}else f=n.geodeticSurfaceNormalCartographic(re.southeast(t),Sz);let d=h.cross(f,a,gue);h.normalize(d,e.southNormal);let p=t.north,g;if(p<0){jf.longitude=(t.west+t.east)*.5,jf.latitude=p;let x=n.cartographicToCartesian(jf,uE.origin);h.negate(c,uE.direction);let b=cn.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,yue);$n.rayPlane(uE,b,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(x,Sz)}else g=n.geodeticSurfaceNormalCartographic(re.northwest(t),Sz);let m=h.cross(a,g,gue);h.normalize(m,e.northNormal)}var Zqe=new h,$qe=new h,Qqe=new h(0,-1,0),Jqe=new h(0,0,-1),xue=new h;function eYe(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!re.contains(e.rectangle,o)){let u=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,m=e.northNormal;t.mode!==ne.SCENE3D&&(u=t.mapProjection.project(re.southwest(e.rectangle),Zqe),u.z=u.y,u.y=u.x,u.x=0,f=t.mapProjection.project(re.northeast(e.rectangle),$qe),f.z=f.y,f.y=f.x,f.x=0,d=Qqe,g=h.UNIT_Y,p=Jqe,m=h.UNIT_Z);let x=h.subtract(i,u,xue),b=h.dot(x,d),T=h.dot(x,p),C=h.subtract(i,f,xue),A=h.dot(C,g),E=h.dot(C,m);b>0?r+=b*b:A>0&&(r+=A*A),T>0?r+=T*T:E>0&&(r+=E*E)}let s,a,c;if(t.mode===ne.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let u=s-c;r+=u*u}else if(s<a){let u=a-s;r+=u*u}return Math.sqrt(r)}fE.prototype.distanceToCamera=function(e){let t=eYe(this,e);if(e.mode===ne.SCENE3D&&l(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};fE.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};fE.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new Mb({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new St({geometry:n,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}});return new Dn({geometryInstances:i,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var qf=fE;var fL={},tYe=new h,bue=new h,Tue=new h,Cue=new h,Aue=new vn;fL.validOutline=function(e){let n=vn.fromPoints(e,Aue).halfAxes,i=$.getColumn(n,0,bue),o=$.getColumn(n,1,Tue),r=$.getColumn(n,2,Cue),s=h.magnitude(i),a=h.magnitude(o),c=h.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};fL.computeProjectTo2DArguments=function(e,t,n,i){let o=vn.fromPoints(e,Aue),r=o.halfAxes,s=$.getColumn(r,0,bue),a=$.getColumn(r,1,Tue),c=$.getColumn(r,2,Cue),u=h.magnitude(s),f=h.magnitude(a),d=h.magnitude(c),p=Math.min(u,f,d);if(u===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,m;return(p===f||p===d)&&(g=s),p===u?g=a:p===d&&(m=a),(p===u||p===f)&&(m=c),h.normalize(g,n),h.normalize(m,i),h.clone(o.center,t),!0};function Eue(e,t,n,i,o){let r=h.subtract(e,t,tYe),s=h.dot(n,r),a=h.dot(i,r);return z.fromElements(s,a,o)}fL.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=Eue(i[r],e,t,n);return o}};fL.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return Eue(i,e,t,n,o)}};var S_=fL;function nYe(e){let t=e.length,n=new Float64Array(t*3),i=Ne.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 fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new at({attributes:s,indices:i,primitiveType:Me.LINES})}function Lb(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=zn.computeHierarchyPackedLength(t,h)+1}Lb.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new Lb(t)};Lb.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var iYe={polygonHierarchy:{}};Lb.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 l(n)||(n=new Lb(iYe)),n._polygonHierarchy=i,n.packedLength=o,n};Lb.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=To(n,h.equalsEpsilon,!0),n.length<3||!S_.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 u=new St({geometry:nYe(o[c])});r.push(u)}let s=Ln.combineInstances(r)[0],a=se.fromPoints(t.positions);return new at({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var Yf=Lb;var vz=new fe;function dL(e){let t=qp.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),o=y(e.ellipsoid,ee.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=dYe(t,n,i,o);this._boundingPlanes=r;let s=_Ye(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=zj(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]=zj(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=zj(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();vz=o.cartesianToCartographic(c,vz),vz.height=(i+n)/2,this.center=o.cartographicToCartesian(vz,c),this._boundingSphere=se.fromPoints(s)}var oYe=new h,rYe=new fe,sYe=new h,aYe=new fe,cYe=new h,lYe=new h,uYe=new h,fYe=new h;function dYe(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,oYe),a=i.cartesianToCartographic(r,rYe);a.height=n;let c=i.cartographicToCartesian(a,sYe),u=cn.fromPointNormal(c,s);o[0]=u;let f=0,d,p=[],g,m;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,m=i.cartesianToCartographic(g,aYe),m.height=t;let b=cn.getPointDistance(u,i.cartographicToCartesian(m,cYe));b<f&&(f=b)}let x=cn.clone(u);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,lYe),C=h.subtract(b,g,fYe),A=h.cross(C,T,uYe);A=h.normalize(A,A),o[2+d]=cn.fromPointNormal(g,A)}return o}var Nb=new h,Fb=new h,Bb=new h,Lj=new h,Nj=new h,Fj=new h,hYe=new h,mYe=new h,pYe=new h,Bj=new h,kj=new h,Vj=new h,Fy=new h,vm=new $;function Sue(e,t,n){Nb=e.normal,Fb=t.normal,Bb=n.normal,Lj=h.multiplyByScalar(e.normal,-e.distance,Lj),Nj=h.multiplyByScalar(t.normal,-t.distance,Nj),Fj=h.multiplyByScalar(n.normal,-n.distance,Fj),Bj=h.multiplyByScalar(h.cross(Fb,Bb,hYe),h.dot(Lj,Nb),Bj),kj=h.multiplyByScalar(h.cross(Bb,Nb,mYe),h.dot(Nj,Fb),kj),Vj=h.multiplyByScalar(h.cross(Nb,Fb,pYe),h.dot(Fj,Bb),Vj),vm[0]=Nb.x,vm[1]=Fb.x,vm[2]=Bb.x,vm[3]=Nb.y,vm[4]=Fb.y,vm[5]=Bb.y,vm[6]=Nb.z,vm[7]=Fb.z,vm[8]=Bb.z;let i=$.determinant(vm);return Fy=h.add(Bj,kj,Fy),Fy=h.add(Fy,Vj,Fy),new h(Fy.x/i,Fy.y/i,Fy.z/i)}function _Ye(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=Sue(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=Sue(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var Uj=new h,dE=new h;function zj(e,t){let n=[];for(let i=0;i<4;i++)Uj=h.subtract(t[(i+1)%4],t[i],Uj),dE=h.cross(e.normal,Uj,dE),dE=h.normalize(dE,dE),n[i]=h.clone(dE);return n}Object.defineProperties(dL.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var Hj=new h;dL.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;cn.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):cn.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,cn.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=Gj(cn.projectPointOntoPlane(c,t,Hj),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=vue(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=Gj(cn.projectPointOntoPlane(c,t,Hj),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=Gj(cn.projectPointOntoPlane(this._boundingPlanes[1],t,Hj),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let u=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+u)%4]):h.distance(t,this._vertices[4+(n[1]-2+u)%4])};var gYe=new h,yYe=new h;function vue(e,t,n){let i=h.subtract(n,t,gYe),o=h.subtract(e,t,yYe),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 xYe=new cn(h.UNIT_X,0);function Gj(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let u=cn.fromPointNormal(t[c],i[c],xYe);cn.getPointDistance(u,e)<0||(a=vue(e,t[c],t[(c+1)%4]),r=h.distance(e,a),r<o&&(o=r,s=a))}return l(s)?s:e}dL.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?jt.INSIDE:n===this._vertices.length?jt.OUTSIDE:jt.INTERSECTING};dL.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new Yf({polygonHierarchy:{positions:this._planeVertices[0]}}),i=Yf.createGeometry(n),o=new St({geometry:i,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}}),r=new Yf({polygonHierarchy:{positions:this._planeVertices[1]}}),s=Yf.createGeometry(r),a=new St({geometry:s,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}}),c=[];for(let u=0;u<4;u++){let f=new Yf({polygonHierarchy:{positions:this._planeVertices[2+u]}}),d=Yf.createGeometry(f);c[u]=new St({geometry:d,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}})}return new Dn({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var hL=dL;var bYe=new h(1,1,1),wz=Math.cos,Dz=Math.sin;function hE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,bYe),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)),u=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=u,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}hE.packedLength=2*h.packedLength+8;hE.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 wue=new h,Due=new h,v_={radii:wue,innerRadii:Due,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};hE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,wue);t+=h.packedLength;let o=h.unpack(e,t,Due);t+=h.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(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=u,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(v_.minimumClock=r,v_.maximumClock=s,v_.minimumCone=a,v_.maximumCone=c,v_.stackPartitions=u,v_.slicePartitions=f,v_.subdivisions=d,v_.offsetAttribute=p===-1?void 0:p,new hE(v_))};hE.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=ee.fromCartesian3(t),u=e._slicePartitions+1,f=e._stackPartitions+1;u=Math.round(u*Math.abs(o-i)/P.TWO_PI),f=Math.round(f*Math.abs(s-r)/P.PI),u<2&&(u=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+=u),s<Math.PI&&(x=!0,d+=u));let b=a*p*(f+u),T=new Float64Array(b*3),C=2*(b+d-(u+f)*p),A=Ne.createTypedArray(b,C),E,v,D,O,R=0,M=new Array(f),N=new Array(f);for(E=0;E<f;E++)O=r+E*(s-r)/(f-1),M[E]=Dz(O),N[E]=wz(O);let _=new Array(a),S=new Array(a);for(E=0;E<a;E++)D=i+E*(o-i)/(a-1),_[E]=Dz(D),S[E]=wz(D);for(E=0;E<f;E++)for(v=0;v<a;v++)T[R++]=t.x*M[E]*S[v],T[R++]=t.y*M[E]*_[v],T[R++]=t.z*N[E];if(g)for(E=0;E<f;E++)for(v=0;v<a;v++)T[R++]=n.x*M[E]*S[v],T[R++]=n.y*M[E]*_[v],T[R++]=n.z*N[E];for(M.length=a,N.length=a,E=0;E<a;E++)O=r+E*(s-r)/(a-1),M[E]=Dz(O),N[E]=wz(O);for(_.length=u,S.length=u,E=0;E<u;E++)D=i+E*(o-i)/(u-1),_[E]=Dz(D),S[E]=wz(D);for(E=0;E<a;E++)for(v=0;v<u;v++)T[R++]=t.x*M[E]*S[v],T[R++]=t.y*M[E]*_[v],T[R++]=t.z*N[E];if(g)for(E=0;E<a;E++)for(v=0;v<u;v++)T[R++]=n.x*M[E]*S[v],T[R++]=n.y*M[E]*_[v],T[R++]=n.z*N[E];for(R=0,E=0;E<f*p;E++){let L=E*a;for(v=0;v<a-1;v++)A[R++]=L+v,A[R++]=L+v+1}let w=f*a*p;for(E=0;E<u;E++)for(v=0;v<a-1;v++)A[R++]=w+E+v*u,A[R++]=w+E+(v+1)*u;if(g)for(w=f*a*p+u*a,E=0;E<u;E++)for(v=0;v<a-1;v++)A[R++]=w+E+v*u,A[R++]=w+E+(v+1)*u;if(g){let L=f*a*p,B=L+a*u;if(m)for(E=0;E<u;E++)A[R++]=L+E,A[R++]=B+E;if(x)for(L+=a*u-u,B+=a*u-u,E=0;E<u;E++)A[R++]=L+E,A[R++]=B+E}let I=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T})});if(l(e._offsetAttribute)){let L=T.length,B=e._offsetAttribute===an.NONE?0:1,U=new Uint8Array(L/3).fill(B);I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:U})}return new at({attributes:I,indices:A,primitiveType:Me.LINES,boundingSphere:se.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var Iu=hE;function mE(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 Iu(i),this._workerName="createSphereOutlineGeometry"}mE.packedLength=Iu.packedLength;mE.pack=function(e,t,n){return Iu.pack(e._ellipsoidGeometry,t,n)};var TYe=new Iu,kb={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};mE.unpack=function(e,t,n){let i=Iu.unpack(e,t,TYe);return kb.stackPartitions=i._stackPartitions,kb.slicePartitions=i._slicePartitions,kb.subdivisions=i._subdivisions,l(n)?(h.clone(i._radii,kb.radii),n._ellipsoidGeometry=new Iu(kb),n):(kb.radius=i._radii.x,new mE(kb))};mE.createGeometry=function(e){return Iu.createGeometry(e._ellipsoidGeometry)};var w_=mE;function pE(e,t){t===0&&(t=P.EPSILON7),this._boundingSphere=new se(e,t)}Object.defineProperties(pE.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}}});pE.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};pE.prototype.intersectPlane=function(e){return se.intersectPlane(this._boundingSphere,e)};pE.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};pE.prototype.createDebugVolume=function(e){let t=new w_({radius:this.radius}),n=F.fromTranslation(this.center,new F.clone(F.IDENTITY)),i=new St({geometry:t,id:"outline",modelMatrix:n,attributes:{color:Wt.fromColor(e)}});return new Dn({geometryInstances:i,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var D_=pE;var CYe=new h,AYe=new h,EYe=new h,SYe=new h;function Vb(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,P.EPSILON7/i,n)}function Wj(e,t){let n=h.normalize(e,SYe),i=h.equalsEpsilon(n,h.UNIT_X,P.EPSILON6)?h.UNIT_Y:h.UNIT_X;return Vb(e,i,t)}function Iue(e){let t=$.getColumn(e,0,CYe),n=$.getColumn(e,1,AYe),i=$.getColumn(e,2,EYe),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=Vb(n,i,t):!o&&r&&!s?n=Vb(t,i,n):!o&&!r&&s?i=Vb(n,t,i):o?r?s||(t=Wj(i,t),n=Vb(i,t,n)):(t=Wj(n,t),i=Vb(n,t,i)):(n=Wj(t,n),i=Vb(n,t,i)),$.setColumn(e,0,t,e),$.setColumn(e,1,n,e),$.setColumn(e,2,i,e),e)}function _E(e,t){t=Iue(t),this._orientedBoundingBox=new vn(e,t),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(_E.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});_E.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};_E.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};_E.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=Iue(t),$.clone(t,this._orientedBoundingBox.halfAxes),se.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};_E.prototype.createDebugVolume=function(e){let t=new Md({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=F.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new St({geometry:t,id:"outline",modelMatrix:n,attributes:{color:Wt.fromColor(e)}});return new Dn({geometryInstances:i,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var Pu=_E;function nr(e,t,n,i){this._tileset=e,this._header=n;let o=l(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=l(n.transform)?F.unpack(n.transform):F.clone(F.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=F.multiply(a,this.transform,new F),u=l(i)?i._initialTransform:F.IDENTITY;this._initialTransform=F.multiply(u,this.transform,new F),this.computedTransform=c,this.metadata=cL(e,n),this._verticalExaggeration=1,this._verticalExaggerationRelativeHeight=0,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;l(s)&&l(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;l(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,nr._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&nr._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?Go.REPLACE:Go.ADD):l(i)?p=i.refine:p=Go.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,m=!1,x,b,T;if(t=we.createIfNeeded(t),r)x=jo.UNLOADED,b=t.clone();else if(l(s)){let v=s.uri;l(s.url)&&(nr._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),v=s.url),v===""?(nr._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 aE(e,this),m=!0,x=jo.READY):(x=jo.UNLOADED,b=t.getDerivedResource({url:v}),T=ec.getServerKey(b.getUrlComponent()))}else g=new aE(e,this),m=!0,x=jo.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 C=n.expire,A,E;l(C)&&(A=C.duration,l(C.date)&&(E=Z.fromIso8601(C.date))),this.expireDuration=A,this.expireDate=E,this.lastStyleTime=0,this._optimChildrenWithinParent=Hf.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!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._wasSelectedLastFrame=!1,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._isClippedByPolygon=!1,this._clippingPlanesState=0,this._clippingPolygonsState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=H.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 Z,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}nr._deprecationWarning=ds;Object.defineProperties(nr.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 l(this._color)||(this._color=new H),H.clone(this._color)},set:function(e){this._color=H.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||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===jo.READY}},contentUnloaded:{get:function(){return this._contentState===jo.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===jo.EXPIRED}},contentFailed:{get:function(){return this._contentState===jo.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var By=new h;function vYe(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,By),c=h.add(s.positionWC,a,By),u=h.subtract(c,r,By);if(h.magnitude(u)>o){let E=h.normalize(u,By),v=h.multiplyByScalar(E,o,By),D=h.add(r,v,By),O=h.subtract(D,s.positionWC,By),R=h.normalize(O,By);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,R))}else e._foveatedFactor=0;let p=e.refine===Go.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Fo.PRELOAD_FLIGHT||n._pass===Fo.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),C=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,T),A=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-C<=A}var Mue=new Z;nr.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,u=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===ne.SCENE2D||u instanceof rn){let g=u.offCenterFrustum;l(g)&&(u=g);let m=Math.max(u.top-u.bottom,u.right-u.left)/Math.max(f,d);p=s/m}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),m=u.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 wYe(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=l(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function DYe(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}nr.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:ps.MASK_INDETERMINATE;this.updateTransform(i,e),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!==ps.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=DYe(n,this),this._priorityProgressiveResolution=wYe(n,this),this.priorityDeferred=vYe(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};nr.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=Z.now(Mue);Z.lessThan(this.expireDate,e)&&(this._contentState=jo.EXPIRED,this._expiredContent=this._content)}};function IYe(e){if(!l(e.expireDuration))return;let t=Z.now(Mue);Z.addSeconds(t,e.expireDuration,t),l(e.expireDate)?Z.lessThan(e.expireDate,t)&&Z.clone(t,e.expireDate):e.expireDate=Z.clone(t)}function PYe(e){return function(){return e._priority}}nr.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?RYe(this):MYe(this)};function RYe(e){let t=e._content,n=e._tileset;if(!l(t)){let o=oi(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new lL(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=jo.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=jo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=jo.FAILED,o})}async function OYe(e,t,n,i,o){let r=e._contentState;e._contentState=jo.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===Zn.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=jo.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===Zn.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await LYe(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=jo.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=jo.FAILED,a}}function MYe(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:fs.TILES3D,priorityFunction:PYe(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return OYe(e,o,i,n,r)}async function LYe(e,t){let n=Sm(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===ws.GEOMETRY||n.contentType===ws.VECTOR,(n.contentType===ws.IMPLICIT_SUBTREE||n.contentType===ws.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===ws.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=Pb[n.contentType];if(e.isDestroyed())return;l(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,u=e.implicitCoordinates;o.metadata=c.getContentMetadataView(u,0)}else e.hasImplicitContent||(o.metadata=Rb(i,s));let a=Ob(i,s);return l(a)&&(o.group=new Yx({metadata:a})),o}nr.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};nr.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=jo.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this.clippingPolygonsDirty=this._clippingPolygonsState===0,this._clippingPolygonsState=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 Lue=new se;function qj(e,t){if(t.mode!==ne.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Lue);e._boundingVolume2D=new D_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._boundingVolume2D:e._boundingVolume}function NYe(e,t){if(t.mode!==ne.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Lue);e._contentBoundingVolume2D=new D_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}nr.prototype.visibility=function(e,t){let n=e.cullingVolume,i=qj(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let a=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=a!==jt.INSIDE,a===jt.OUTSIDE)return ps.MASK_OUTSIDE}let s=o.clippingPolygons;if(l(s)&&s.enabled){let a=s.computeIntersectionWithBoundingVolume(i);this._isClippedByPolygon=a!==jt.OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};nr.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return jt.INSIDE;if(this._visibilityPlaneMask===ps.MASK_INSIDE)return jt.INSIDE;let t=e.cullingVolume,n=NYe(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let s=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=s!==jt.INSIDE,s===jt.OUTSIDE)return jt.OUTSIDE}let r=i.clippingPolygons;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(n);if(this._isClippedByPolygon=s!==jt.OUTSIDE,s===jt.INSIDE)return jt.OUTSIDE}return t.computeVisibility(n)};nr.prototype.distanceToTile=function(e){return qj(this,e).distanceToCamera(e)};var FYe=new h;nr.prototype.distanceToTileCenter=function(e){let n=qj(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,FYe);return h.dot(e.camera.directionWC,i)};nr.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var Nue=new $,Fue=new h,BYe=new $,Yj=new h,Bue=new re,kue=new vn,jj=new F;function kYe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Yj),o=$.fromArray(e,3,BYe);i=F.multiplyByPoint(t,i,i);let r=F.getMatrix3(t,Nue);return o=$.multiply(r,o,o),l(n)?(n.update(i,o),n):new Pu(i,o)}function VYe(e,t,n,i){let o=re.unpack(e,0,Bue),r=e[4],s=e[5],a=vn.fromRectangle(o,r,s,ee.WGS84,kue),c=a.center,u=a.halfAxes;t=F.multiplyTransformation(t,F.inverseTransformation(n,jj),jj),c=F.multiplyByPoint(t,c,c);let f=F.getMatrix3(t,Nue);return u=$.multiply(f,u,u),l(i)&&i instanceof Pu?(i.update(c,u),i):new Pu(c,u)}function UYe(e,t,n,i){if(!F.equalsEpsilon(t,n,P.EPSILON8))return VYe(e,t,n,i);let o=re.unpack(e,0,Bue);return l(i)?(i.rectangle=re.clone(o,i.rectangle),i.minimumHeight=e[4],i.maximumHeight=e[5],i.computeBoundingVolumes(ee.WGS84),i):new qf({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function zYe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Yj),o=e[3];i=F.multiplyByPoint(t,i,i);let r=F.getScale(t,Fue),s=h.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new D_(i,o)}nr.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(l(i)&&(o=fb.parseBoundingVolumeSemantic("TILE",i)),l(o)&&(e=o),!l(e))throw new ce("boundingVolume must be defined");if(oi(e,"3DTILES_bounding_volume_S2"))return new hL(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(l(r)){let c=kYe(r,t,n);return this._verticalExaggeration!==1&&Pue(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c}if(l(s)){let c=UYe(s,t,this._initialTransform,n);return this._verticalExaggeration===1||(c instanceof Pu?Pue(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight):(c.minimumHeight=Cr.getHeight(c.minimumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.maximumHeight=Cr.getHeight(c.maximumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.computeBoundingVolumes(ee.WGS84))),c}if(l(a)){let c=zYe(a,t,n);if(this._verticalExaggeration!==1){let u=Cr.getPosition(c.center,ee.WGS84,this._verticalExaggeration,this._verticalExaggerationRelativeHeight,Yj),f=c.radius*this._verticalExaggeration;c.update(u,f)}return c}throw new ce("boundingVolume must contain a sphere, region, or box")};var HYe=h.unpackArray(new Array(8*3).fill(0));function Pue(e,t,n){let i=e.boundingVolume.computeCorners(HYe).map(r=>Cr.getPosition(r,ee.WGS84,t,n,r)),o=vn.fromPoints(i,kue);e.update(o.center,o.halfAxes)}nr.prototype.updateTransform=function(e,t){e=y(e,F.IDENTITY);let n=F.multiplyTransformation(e,this.transform,jj),i=!F.equals(n,this.computedTransform),o=l(t)&&(this._verticalExaggeration!==t.verticalExaggeration||this._verticalExaggerationRelativeHeight!==t.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&F.clone(n,this.computedTransform),o&&(this._verticalExaggeration=t.verticalExaggeration,this._verticalExaggerationRelativeHeight=t.verticalExaggerationRelativeHeight);let r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.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()};nr.prototype.updateGeometricErrorScale=function(){let e=F.getScale(this.computedTransform,Fue),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function GYe(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=H.WHITE:c=H.DARKGRAY:c=H.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let u=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");u.color=Wt.toValue(c,u.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(H.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(H.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(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=H.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function WYe(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=jo.FAILED,o}}function jYe(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}function qYe(e,t){let n=t.clippingPolygons,i=0;l(n)&&e._isClippedByPolygon&&n.enabled&&(i=n.clippingPolygonsState),i!==e._clippingPolygonsState&&(e._clippingPolygonsState=i,e.clippingPolygonsDirty=!0)}nr.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;jYe(this,e),qYe(this,e),GYe(this,e,t,n),WYe(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===ve.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1};var Rue=[];nr.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(IYe(this),this._selectedFrame=0,this.lastStyleTime=0,Z.now(this._loadTimestamp),this._contentState=jo.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=Rue;try{this._content.update(e,t)}catch(i){throw this._contentState=jo.FAILED,i}Rue.length=0,t.commandList=n};function Oue(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function Iz(e,t,n){return Math.max(P.normalize(e,t,n)-P.EPSILON7,0)}nr.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,u=o,f=c+u,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),C=Iz(this._depth,n.depth,i.depth);C=t?1-C:C;let E=!e.isSkippingLevelOfDetail&&this.refine===Go.REPLACE?Iz(this._priorityHolder._distanceToCamera,n.distance,i.distance):Iz(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),v=Oue(E,a,s),D=this._priorityProgressiveResolution?0:p,O=Iz(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),R=Oue(O,u,c),M=this.priorityDeferred?x:0,N=e._pass===Fo.PRELOAD_FLIGHT?0:T;this._priority=C+v+D+R+M+N};nr.prototype.isDestroyed=function(){return!1};nr.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(),ue(this)};var Xf=nr;function I_(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,o=l(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(I_.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}}});I_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};I_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};I_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};I_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};I_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};I_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};I_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var gE=I_;function P_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(P_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});P_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};P_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};P_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};P_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};P_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};P_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};P_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var mL=P_;function Vue(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),o;l(i)&&(o=new mL({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let u=0;u<c;u++){let f=a[u];s.push(new gE({group:f,class:n.classes[f.class]}))}}else if(l(a)){r=Object.keys(a).sort();let c=r.length;for(let u=0;u<c;u++){let f=r[u];if(a.hasOwnProperty(f)){let d=a[f];s.push(new gE({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(Vue.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 Ub=Vue;var Uue={},YYe=new h;Uue.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof Pu||i instanceof qf){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=Hf.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof Pu||a instanceof qf)){e._optimChildrenWithinParent=Hf.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,u=h.subtract(c.center,o.center,YYe),f=h.magnitude(u);h.divideByScalar(u,f,u);let d=Math.abs(o.halfAxes[0]*u.x)+Math.abs(o.halfAxes[1]*u.y)+Math.abs(o.halfAxes[2]*u.z)+Math.abs(o.halfAxes[3]*u.x)+Math.abs(o.halfAxes[4]*u.y)+Math.abs(o.halfAxes[5]*u.z)+Math.abs(o.halfAxes[6]*u.x)+Math.abs(o.halfAxes[7]*u.y)+Math.abs(o.halfAxes[8]*u.z),p=Math.abs(c.halfAxes[0]*u.x)+Math.abs(c.halfAxes[1]*u.y)+Math.abs(c.halfAxes[2]*u.z)+Math.abs(c.halfAxes[3]*u.x)+Math.abs(c.halfAxes[4]*u.y)+Math.abs(c.halfAxes[5]*u.z)+Math.abs(c.halfAxes[6]*u.x)+Math.abs(c.halfAxes[7]*u.y)+Math.abs(c.halfAxes[8]*u.z);if(d<=p+f){e._optimChildrenWithinParent=Hf.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===Hf.USE_OPTIMIZATION};var pL=Uue;function _L(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(_L.prototype,{length:{get:function(){return this._length}}});function XYe(e,t,n){this.item=e,this.previous=t,this.next=n}_L.prototype.add=function(e){let t=new XYe(e,this.tail,void 0);return l(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function zue(e,t){l(t.previous)&&l(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):l(t.previous)?(t.previous.next=void 0,e.tail=t.previous):l(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}_L.prototype.remove=function(e){l(e)&&(zue(this,e),--this._length)};_L.prototype.splice=function(e,t){if(e===t)return;zue(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 gL=_L;function zb(){this._list=new gL,this._sentinel=this._list.add(),this._trimTiles=!1}zb.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};zb.prototype.touch=function(e){let t=e.cacheNode;l(t)&&this._list.splice(this._sentinel,t)};zb.prototype.add=function(e){l(e.cacheNode)||(e.cacheNode=this._list.add(e))};zb.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;l(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};zb.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)}};zb.prototype.trim=function(){this._trimTiles=!0};var yL=zb;function Pz(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 Kj(e,t){let n;return t==="_loadTimestamp"?n=Z.toDate(e).getTime():n=e,n}Pz.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=Kj(e,n),this._referenceMaximum[n]=Kj(t,n)};function KYe(e,t){let n=e.tilePropertyName;if(l(n)){let i=Kj(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var Xj=[new H(.1,.1,.1,1),new H(.153,.278,.878,1),new H(.827,.231,.49,1),new H(.827,.188,.22,1),new H(1,.592,.259,1),new H(1,.843,0,1)];Pz.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=KYe(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,u=Xj.length-1,f=c*u,d=Math.floor(f),p=Math.ceil(f),g=f-d,m=Xj[d],x=Xj[p],b=H.clone(H.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};Pz.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var xL=Pz;function yE(){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}yE.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 Rz(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,u=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?-u:u,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),l(o)){let d=o.length;for(let p=0;p<d;++p)Rz(e,o[p],n,i)}}yE.prototype.incrementSelectionCounts=function(e){Rz(this,e,!1,!1)};yE.prototype.incrementLoadCounts=function(e){Rz(this,e,!1,!0)};yE.prototype.decrementLoadCounts=function(e){Rz(this,e,!0,!0)};yE.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 R_=yE;function bL(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(bL.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});bL.prototype.makeDirty=function(){this._styleDirty=!0};bL.prototype.resetDirty=function(){this._styleDirty=!1};bL.prototype.applyStyle=function(e){if(!l(e.root)||l(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 TL=bL;function ZYe(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(!l(o.box)&&!l(o.region)&&!oi(o,"3DTILES_bounding_volume_S2")&&!oi(o,"3DTILES_bounding_volume_cylinder"))throw new ce("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 we({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=$Ye(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(Ge(a,!0));let c=new we({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=QYe(t),this.subdivisionScheme=es[i.subdivisionScheme],this.branchingFactor=es.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,l(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function $Ye(e){if(oi(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return l(t.contents)?t.contents:t.content}return l(e.contents)?e.contents:l(e.content)?[e.content]:[]}function QYe(e){let t=Ge(e,!0);return l(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 Hb=ZYe;var CL={};function Hue(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function Zj(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function Gue(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 $j(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}CL.encode2D=function(e,t){return(Hue(e)|Hue(t)<<1)>>>0};CL.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=Gue(e),t[1]=Gue(e>>1),t};CL.encode3D=function(e,t,n){return Zj(e)|Zj(t)<<1|Zj(n)<<2};CL.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=$j(e),t[1]=$j(e>>1),t[2]=$j(e>>2),t};var ky=CL;function qo(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===es.OCTREE&&(this.z=e.z)}Object.defineProperties(qo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===es.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===es.OCTREE?ky.encode3D(this.x,this.y,this.z):ky.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===es.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});qo.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===es.OCTREE){let o=(this.z<<e.level)+e.z;return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};qo.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===es.OCTREE){let r=Math.floor(this.z/t);return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o,z:r})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o})};qo.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,o=e.y%n;if(this.subdivisionScheme===es.OCTREE){let r=e.z%n;return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o,z:r})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o})};qo.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===es.OCTREE){let o=2*this.z+Math.floor(e/4)%2;return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};qo.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};qo.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};qo.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===es.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};qo.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===es.OCTREE?this.z===e.z:!0)};qo.prototype.isImplicitTilesetRoot=function(){return this.level===0};qo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};qo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};qo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===es.OCTREE&&(e.z=this.z),e};var Wue=[0,0,0];qo.fromMortonIndex=function(e,t,n,i){let o;return e===es.OCTREE?(o=ky.decode3D(i,Wue),new qo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=ky.decode2D(i,Wue),new qo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};qo.fromTileIndex=function(e,t,n){let i,o,r;return e===es.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),qo.fromMortonIndex(e,t,i,r)};var Gb=qo;function O_(){}O_.selectTiles=function(e,t){he.throwInstantiationError()};O_.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};O_.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};O_.selectTile=function(e,t){if(e.contentVisibility(t)===jt.OUTSIDE)return;e._wasSelectedLastFrame=!0;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._wasSelectedLastFrame=!1),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};O_.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};O_.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};O_.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!JYe(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function JYe(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}O_.updateTile=function(e,t){jue(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,nXe(e),e._shouldSelect=!1,e._finalResolution=!0};function jue(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];jue(r,t),e._visible=r._visible;return}if(eXe(e,t)){e._visible=!1;return}let i=e.refine===Go.REPLACE,o=e._optimChildrenWithinParent===Hf.USE_OPTIMIZATION;if(i&&o&&n&&!tXe(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function eXe(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Go.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function tXe(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 nXe(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 Zs=O_;function que(){}var AL={stack:new Xc,stackMaximumLength:0};que.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}=Zs,s=AL.stack;for(s.push(i);s.length>0;){AL.stackMaximumLength=Math.max(AL.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Go.ADD,u=a.refine===Go.REPLACE,f=iXe(a);f&&oXe(a,s,t),(c||u&&!f)&&(rXe(e,a),o(a,t),sXe(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return AL.stack.trim(AL.stackMaximumLength),n};function iXe(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function oXe(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 rXe(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function sXe(e,t){e.contentAvailable&&e.contentVisibility(t)!==jt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var EL=que;function Yue(){}var SL={stack:new Xc,stackMaximumLength:0},vL={stack:new Xc,stackMaximumLength:0};Yue.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(Zs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;cXe(n,t),SL.stack.trim(SL.stackMaximumLength),vL.stack.trim(vL.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function Qj(e,t){e.contentAvailable&&Zs.selectTile(e,t)}function aXe(e,t,n){let i=e.refine===Go.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=Zs;for(let m=0;m<r.length;++m)s(r[m],n);r.sort(Zs.sortChildrenByDistanceToCamera);let u=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):(u||o.loadSiblings)&&(x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),a(x,n),c(x,n)),u){let b;x._inRequestVolume?x.hasRenderableContent?b=x.contentAvailable:b=lXe(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 cXe(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=Zs,a=SL.stack;for(a.push(e);a.length>0;){SL.stackMaximumLength=Math.max(SL.stackMaximumLength,a.length);let c=a.pop(),u=c.parent,f=!l(u)||u._refines;c._refines=i(c)?aXe(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===Go.ADD?(Qj(c,t),o(c,t)):c.refine===Go.REPLACE&&(o(c,t),d&&Qj(c,t)):(n._emptyTiles.push(c),o(c,t),d&&Qj(c,t)),r(c,t),s(c,t)}}function lXe(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=Zs,s=!0,a=vL.stack;for(a.push(e);a.length>0;){vL.stackMaximumLength=Math.max(vL.stackMaximumLength,a.length);let c=a.pop(),u=c.children,f=u.length,d=!c.hasRenderableContent&&n(c);if(!d&&!c.contentAvailable&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let p=0;p<f;++p){let g=u[p];a.push(g)}}return e.hasEmptyContent||s}var wL=Yue;function Xue(){}var DL={stack:new Xc,stackMaximumLength:0},IL={stack:new Xc,stackMaximumLength:0},M_={stack:new Xc,stackMaximumLength:0,ancestorStack:new Xc,ancestorStackMaximumLength:0},uXe=2;Xue.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(Zs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;_Xe(n,t),gXe(n,t),DL.stack.trim(DL.stackMaximumLength),IL.stack.trim(IL.stackMaximumLength),M_.stack.trim(M_.stackMaximumLength),M_.ancestorStack.trim(M_.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function fXe(e,t){let{updateTile:n,touchTile:i,selectTile:o}=Zs,r=IL.stack;for(r.push(e);r.length>0;){IL.stackMaximumLength=Math.max(IL.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let u=a[c];u.isVisible&&(u.contentAvailable?(n(u,t),i(u,t),o(u,t)):u._depth-e._depth<uXe&&r.push(u))}}}function Oz(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;l(n)?n._shouldSelect=!0:fXe(e,t)}function dXe(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!l(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function hXe(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||l(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function mXe(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=Zs;for(let u=0;u<o.length;++u)r(o[u],n);o.sort(Zs.sortChildrenByDistanceToCamera);let c=!1;for(let u=0;u<o.length;++u){let f=o[u];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function pXe(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:l(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function _Xe(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}=Zs,c=DL.stack;for(c.push(e);c.length>0;){DL.stackMaximumLength=Math.max(DL.stackMaximumLength,c.length);let u=c.pop();dXe(u,t);let f=u.parent,d=!l(f)||f._refines;u._refines=o(u)?mXe(u,c,t)&&d:!1;let p=!u._refines&&d;u.hasRenderableContent?u.refine===Go.ADD?(Oz(u,t),r(u,t)):u.refine===Go.REPLACE&&(pXe(u,i)?(r(u,t),p&&Oz(u,t)):p?(Oz(u,t),r(u,t)):hXe(n,u)&&r(u,t)):(n._emptyTiles.push(u),r(u,t),p&&Oz(u,t)),s(u,t),a(u,t)}}function gXe(e,t){let{selectTile:n,canTraverse:i}=Zs,{stack:o,ancestorStack:r}=M_,s;for(o.push(e);o.length>0||r.length>0;){if(M_.stackMaximumLength=Math.max(M_.stackMaximumLength,o.length),M_.ancestorStackMaximumLength=Math.max(M_.ancestorStackMaximumLength,r.length),r.length>0){let u=r.peek();if(u._stackLength===o.length){r.pop(),u!==s&&(u._finalResolution=!1),n(u,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===Go.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 u=a.children;for(let f=0;f<u.length;++f){let d=u[f];d.isVisible&&o.push(d)}}}}var PL=Xue;function ir(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 yL,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 Xc,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 TL,this._styleApplied=!1,this._modelMatrix=l(e.modelMatrix)?F.clone(e.modelMatrix):F.clone(F.IDENTITY),this._addHeightCallbacks=[],this._statistics=new R_,this._statisticsLast=new R_,this._statisticsPerPass=new Array(Fo.NUMBER_OF_PASSES);for(let o=0;o<Fo.NUMBER_OF_PASSES;++o)this._statisticsPerPass[o]=new R_;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 xL(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,ee.WGS84),this._initialClippingPlanesOriginMatrix=F.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,!0),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=y(e.dynamicScreenSpaceErrorDensity,2e-4),this.dynamicScreenSpaceErrorFactor=y(e.dynamicScreenSpaceErrorFactor,24),this.dynamicScreenSpaceErrorHeightFalloff=y(e.dynamicScreenSpaceErrorHeightFalloff,.25),this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,yn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=Ml.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new gm(e.pointCloudShading),this._pointCloudEyeDomeLighting=new a_,this.loadProgress=new me,this.allTilesLoaded=new me,this.initialTilesLoaded=new me,this.tileLoad=new me,this.tileUnload=new me,this.tileFailed=new me,this.tileVisible=new me,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,l(e.clippingPlanes)&&_s.setOwner(e.clippingPlanes,this,"_clippingPlanes"),this._clippingPolygons=void 0,l(e.clippingPolygons)&&Kd.setOwner(e.clippingPolygons,this,"_clippingPolygons"),l(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new qx,this._shouldDestroyImageBasedLighting=!0),this._environmentMapManager=new i_(e.environmentMapOptions),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,H.BLACK),this.splitDirection=y(e.splitDirection,Nr.NONE),this.enableCollision=y(e.enableCollision,!1),this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!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&&xt("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(ir.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){_s.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Kd.setOwner(e,this,"_clippingPolygons")}},properties:{get:function(){return this._properties}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return ds("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&&!l(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(l(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=F.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 l(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(F.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):F.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)}},environmentMapManager:{get:function(){return this._environmentMapManager}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e,nfe(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}}});ir.fromIonAssetId=async function(e,t){let n=await xu.fromAssetId(e);return ir.fromUrl(n,t)};ir.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await ir.loadJson(n),r=await yXe(n,o),s=new ir(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,nfe(s);let c=l(o.asset.gltfUpAxis)?Oo.fromName(o.asset.gltfUpAxis):Oo.Y,u=y(t.modelUpAxis,c),f=y(t.modelForwardAxis,Oo.X);s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=u,s._modelForwardAxis=f,s._root=s.loadTileset(n,o);let p=s._root.createBoundingVolume(o.root.boundingVolume,F.IDENTITY).boundingSphere.center,g=s._ellipsoid.cartesianToCartographic(p);return l(g)&&g.height>li._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Mt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=F.clone(s._initialClippingPlanesOriginMatrix),s};ir.loadJson=function(e){return we.createIfNeeded(e).fetchJson()};ir.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};ir.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new ce("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new ce("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&ir.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=Kue(this,e,t.root,n);l(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===Go.ADD;let u=c._header.children;if(l(u))for(let f=0;f<u.length;++f){let d=u[f],p=Kue(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&pL.checkChildrenWithinParent(c)}return s};function Kue(e,t,n,i){if(!(l(n.implicitTiling)||oi(n,"3DTILES_implicit_tiling")))return new Xf(e,t,n,i);let r=e.schema,s=new Hb(t,n,r),a=new Gb({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 Xf(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function yXe(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(l(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Ci.getSchemaLoader({resource:e});else if(l(n.schema))i=Ci.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new Ub({schema:i.schema,metadataJson:n});return Ci.unload(i),o}var Zue=new h,xXe=new fe,bXe=new F,TXe=new h,CXe=new h,AXe=new h,EXe=new h;function SXe(e,t){let n,i,o,r,s,a=t.camera,c=e._root,u=c.contentBoundingVolume;if(u instanceof qf)n=h.normalize(a.positionWC,Zue),i=a.directionWC,o=a.positionCartographic.height,r=u.minimumHeight,s=u.maximumHeight;else{let x=F.inverseTransformation(c.computedTransform,bXe),b=t.mapProjection.ellipsoid,T=u.boundingVolume,C=F.multiplyByPoint(x,T.center,TXe);if(h.magnitude(C)>b.minimumRadius){let A=fe.fromCartesian(C,b,xXe);n=h.normalize(a.positionWC,Zue),i=a.directionWC,o=a.positionCartographic.height,r=0,s=A.height*2}else{let A=F.multiplyByPoint(x,a.positionWC,CXe);if(n=h.UNIT_Z,i=F.multiplyByPointAsVector(x,a.directionWC,AXe),i=h.normalize(i,i),o=A.z,u instanceof Pu){let E=$.getColumn(T.halfAxes,2,EXe),v=h.magnitude(E);r=C.z-v,s=C.z+v}else if(u instanceof D_){let E=T.radius;r=C.z-E,s=C.z+E}}}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 vXe(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{Jue(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?UXe(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function Que(e,t){return e._priority-t._priority}ir.prototype.postPassesUpdate=function(e){l(this._root)&&(wXe(this,e),HXe(this,e),this._cache.unloadTiles(this,tfe),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};ir.prototype.prePassesUpdate=function(e){if(!l(this._root))return;LXe(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e);let n=this._clippingPolygons;l(n)&&n.enabled&&n.update(e),l(this._loadTimestamp)||(this._loadTimestamp=Z.clone(e.time)),this._timeSinceLoad=Math.max(Z.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&SXe(this,e),e.newFrame&&this._cache.reset()};function wXe(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!==jo.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function DXe(e){let t=e._requestedTiles;t.sort(Que);for(let n=0;n<t.length;++n)vXe(e,t[n])}function Jue(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=l(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}`),console.log(e.stack))}function IXe(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let o=t[i];if(o.isDestroyed()||o._contentState!==jo.PROCESSING){++n;continue}n>0&&(t[i-n]=o)}t.length-=n}var PXe=new fe,RXe=new fe,OXe=new h;function MXe(e,t,n){if(!e.enableCollision||!e.show)return;let i=e._addHeightCallbacks,o=t.boundingSphere;for(let r of i){if(r.invoked||t._wasSelectedLastFrame)continue;let s=r.ellipsoid,a=fe.clone(r.positionCartographic,PXe),c=fe.fromCartesian(o.center,s,RXe);l(c)&&(a.height=c.height);let u=fe.toCartesian(a,s,OXe);h.distance(u,o.center)<=o.radius&&n.afterRender.push(()=>{l(r.callback)&&r.callback(a),r.invoked=!1})}}function LXe(e,t){IXe(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 u=n[c];try{u.process(e,t),u.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(u))}catch(f){--r.numberOfTilesProcessing,Jue(f,e,u)}}e.totalMemoryUsageInBytes<i?FXe(e):a&&n.length>0&&NXe(e)}function NXe(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n<t.length;++n)t[n].updatePriority();t.sort(Que)}function FXe(e){e._memoryAdjustedScreenSpaceError=Math.max(e.memoryAdjustedScreenSpaceError/1.02,e.maximumScreenSpaceError)}var Mz=new h,BXe={maximumFractionDigits:3};function $ue(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,BXe):Math.round(t).toLocaleString()}function Jj(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=h.clone(i,Mz);if(l(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(l(n)){let r=h.normalize(i,Mz);r=h.multiplyByScalar(r,.75*n,Mz),o=h.add(r,i,Mz)}return o}function e7(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: ${$ue(e.content.texturesByteLength)}`,i+=`
Geometry Memory: ${$ue(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 kXe(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(l(e.debugPickedTile)){let s=l(e.debugPickPosition)?e.debugPickPosition:Jj(e.debugPickedTile),a=e7(e.debugPickedTile,e,s);a.pixelOffset=new z(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];e7(a,e,Jj(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&e7(a,e,Jj(a))}}e._tileDebugLabels.update(t)}function VXe(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&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new ei({stencil:0,pass:ve.CESIUM_3D_TILE,renderState:Ve.fromCache({stencilMask:Vt.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:u}=e,f=n.isRender,d=i.length;for(let m=0;m<s.length;++m){let x=s[m];f&&u.raiseEvent(x),MXe(e,x,t),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?(l(e._tileDebugLabels)||(e._tileDebugLabels=new Cm),kXe(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var efe=[];function UXe(e,t){let n=t,i=efe;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&&(zXe(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function tfe(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function zXe(e,t){e._cache.unloadTile(e,t,tfe),t.destroy()}ir.prototype.trimLoadedTiles=function(){this._cache.trim()};function HXe(e,t){let n=e._statistics,i=e._statisticsLast,o=n.numberOfPendingRequests,r=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;R_.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 GXe(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 WXe(e,t){t.frameNumber===e._updatedModelMatrixFrame&&l(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!F.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=F.clone(e.modelMatrix,e._previousModelMatrix)))}function jXe(e,t,n,i){if(t.mode===ne.MORPHING||!l(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,GXe(e),WXe(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&DXe(e),VXe(e,t,i),R_.clone(o,n),i.isRender){let s=e._credits;if(l(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];t.creditDisplay.addCreditToNextFrame(c)}}return r}function nfe(e){let t=e._credits;l(t)||(t=[]),t.length=0,l(e.resource.credits)&&e.resource.credits.forEach(i=>{t.push(vt.clone(i))});let n=e.asset.extras;if(l(n)&&l(n.cesium)&&l(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;o<i.length;++o){let r=i[o];t.push(new vt(r.html))}}t.forEach(i=>i.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}ir.prototype.getTraversal=function(e){let{pass:t}=e;return t===Fo.MOST_DETAILED_PRELOAD||t===Fo.MOST_DETAILED_PICK?EL:this.isSkippingLevelOfDetail?PL:wL};ir.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};ir.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Fo.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Fo.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Fo.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=Fo.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),u=c.length;if(e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r),s.isRender){let p=this._environmentMapManager;l(this._root)&&(p.position=this.boundingSphere.center),p.update(e)}let f=this._clippingPolygons;l(f)&&f.enabled&&f.queueCommands(e);let d=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=jXe(this,e,d,s)),a&&(c.length=u),e.commandList=i,e.camera=o,e.cullingVolume=r};ir.prototype.hasExtension=function(e){return l(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};ir.prototype.isDestroyed=function(){return!1};ir.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),l(this._root)){let e=efe;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,this._environmentMapManager.isDestroyed()||this._environmentMapManager.destroy(),this._environmentMapManager=void 0,ue(this)};ir.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};ir.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!ir.supportedExtensions[e[t]])throw new ce(`Unsupported 3D Tiles Extension: ${e[t]}`)};var qXe=new mn,YXe=new h,XXe=new fe;ir.prototype.getHeight=function(e,t){let n=t.ellipsoid;l(n)||(n=ee.WGS84);let i=qXe,o=n.cartographicToCartesian(e,i.direction);h.normalize(i.direction,i.direction),i.direction=h.normalize(o,i.direction),i.direction=h.negate(o,i.direction),i.origin=h.multiplyByScalar(i.direction,-2*n.maximumRadius,i.origin);let r=this.pick(i,t.frameState,YXe);if(l(r))return n.cartesianToCartographic(r,XXe)?.height};ir.prototype.updateHeight=function(e,t,n){n=y(n,ee.WGS84);let i={positionCartographic:e,ellipsoid:n,callback:t,invoked:!1},o=()=>{let r=this._addHeightCallbacks,s=r.length;for(let a=0;a<s;++a)if(r[a]===i){r.splice(a,1);break}i.callback&&(i.callback=void 0)};return this._addHeightCallbacks.push(i),o};var KXe=new wa,ZXe=new h;ir.prototype.pick=function(e,t,n){if(!t.context.webgl2&&!this._enablePick)return;let i=this._selectedTiles,o=i.length,r=[];for(let c=0;c<o;++c){let u=i[c],f=$n.raySphere(e,u.contentBoundingVolume.boundingSphere,KXe);!l(f)||!l(u.content)||r.push(u)}let s=r.length;r.sort((c,u)=>{let f=se.distanceSquaredTo(c.contentBoundingVolume.boundingSphere,e.origin),d=se.distanceSquaredTo(u.contentBoundingVolume.boundingSphere,e.origin);return f-d});let a;for(let c=0;c<s;++c){let f=r[c].content.pick(e,t,ZXe);if(l(f))return a=h.clone(f,n),a}};var ha=ir;var $Xe=new F;function Vy(e,t){t.collectionChanged.addEventListener(Vy.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new Et,this._onCollectionChanged(t,t.values,[],[])}Vy.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,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;f&&(d=s.computeModelMatrix(e,$Xe),c=we.createIfNeeded(Y.getValueOrUndefined(a._uri,e)));let p=l(u)?u.tilesetPrimitive:void 0;if(!f){l(p)&&(p.show=!1);continue}(!l(u)||c.url!==u.url)&&(l(p)&&i.removeAndDestroy(p),delete n[s.id],QXe(c,n,s,i)),l(p)&&(p.show=!0,l(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=Y.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};Vy.prototype.isDestroyed=function(){return!1};Vy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Vy.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)t7(this,e[i],t,n);return ue(this)};Vy.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return ct.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(se.clone(i.boundingSphere,t),ct.DONE):ct.FAILED:ct.PENDING};Vy.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],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(t7(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],t7(this,r,a,c),s.remove(r.id)};function t7(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function QXe(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await ha.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var RL=Vy;var JXe=H.WHITE,eKe=H.BLACK,tKe=new z(2,2);function xE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(xE.prototype,{isConstant:{get:function(){return Y.isConstant(this._evenColor)&&Y.isConstant(this._oddColor)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:le("evenColor"),oddColor:le("oddColor"),repeat:le("repeat")});xE.prototype.getType=function(e){return"Checkerboard"};var nKe=new Z;xE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(nKe)),l(t)||(t={}),t.lightColor=Y.getValueOrClonedDefault(this._evenColor,e,JXe,t.lightColor),t.darkColor=Y.getValueOrClonedDefault(this._oddColor,e,eKe,t.darkColor),t.repeat=Y.getValueOrDefault(this._repeat,e,tKe),t};xE.prototype.equals=function(e){return this===e||e instanceof xE&&Y.equals(this._evenColor,e._evenColor)&&Y.equals(this._oddColor,e._oddColor)&&Y.equals(this._repeat,e._repeat)};var bE=xE;var ife={id:void 0};function OL(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 _c(e){this._owner=e,this._entities=new Et,this._addedEntities=new Et,this._removedEntities=new Et,this._changedEntities=new Et,this._suspendCount=0,this._collectionChanged=new me,this._id=Hn(),this._show=!0,this._firing=!1,this._refire=!1}_c.prototype.suspendEvents=function(){this._suspendCount++};_c.prototype.resumeEvents=function(){this._suspendCount--,OL(this)};Object.defineProperties(_c.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}}});_c.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(l(s)){let a=s.start,c=s.stop;Z.lessThan(a,e)&&!a.equals(He.MINIMUM_VALUE)&&(e=a),Z.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 Cn({start:e,stop:t})};_c.prototype.add=function(e){e instanceof er||(e=new er(e));let t=e.id,n=this._entities;if(n.contains(t))throw new he(`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(_c.prototype._onEntityDefinitionChanged,this),OL(this),e};_c.prototype.remove=function(e){return l(e)?this.removeById(e.id):!1};_c.prototype.contains=function(e){return this._entities.get(e.id)===e};_c.prototype.removeById=function(e){if(!l(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(_c.prototype._onEntityDefinitionChanged,this),OL(this),!0):!1};_c.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);l(c)||(s.definitionChanged.removeEventListener(_c.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),OL(this)};_c.prototype.getById=function(e){return this._entities.get(e)};_c.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return l(t)||(ife.id=e,t=new er(ife),this.add(t)),t};_c.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),OL(this)};var $s=_c;var Lz={id:void 0},TE=new Array(2);function n7(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 ofe(e,t,n,i){TE[0]=n,TE[1]=i.id,t[JSON.stringify(TE)]=i.definitionChanged.addEventListener(Ur.prototype._onDefinitionChanged,e)}function rfe(e,t,n,i){TE[0]=n,TE[1]=i.id;let o=JSON.stringify(TE);t[o](),t[o]=void 0}function Uy(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,u,f=e._composite,d=new $s(e),p=e._eventHash,g;for(r=0;r<o;r++)for(u=i[r],u.collectionChanged.removeEventListener(Ur.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--)s=a[c],rfe(e,p,g,s);for(r=n-1;r>=0;r--)for(u=t[r],u.collectionChanged.addEventListener(Ur.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--){s=a[c],ofe(e,p,g,s);let x=d.getById(s.id);l(x)||(x=f.getById(s.id),l(x)?n7(x):(Lz.id=s.id,x=new er(Lz)),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 Ur(e,t){this._owner=t,this._composite=new $s(this),this._suspendCount=0,this._collections=l(e)?e.slice():[],this._collectionsCopy=[],this._id=Hn(),this._eventHash={},Uy(this),this._shouldRecomposite=!1}Object.defineProperties(Ur.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}}});Ur.prototype.addCollection=function(e,t){l(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),Uy(this)};Ur.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),Uy(this),!0):!1};Ur.prototype.removeAllCollections=function(){this._collections.length=0,Uy(this)};Ur.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};Ur.prototype.contains=function(e){return this._composite.contains(e)};Ur.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};Ur.prototype.getCollection=function(e){return this._collections[e]};Ur.prototype.getCollectionsLength=function(){return this._collections.length};function Nz(e,t){return e.indexOf(t)}function sfe(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,Uy(e)}Ur.prototype.raiseCollection=function(e){let t=Nz(this._collections,e);sfe(this,t,t+1)};Ur.prototype.lowerCollection=function(e){let t=Nz(this._collections,e);sfe(this,t,t-1)};Ur.prototype.raiseCollectionToTop=function(e){let t=Nz(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),Uy(this))};Ur.prototype.lowerCollectionToBottom=function(e){let t=Nz(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),Uy(this))};Ur.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Ur.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(Uy(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};Ur.prototype.computeAvailability=function(){return this._composite.computeAvailability()};Ur.prototype.getById=function(e){return this._composite.getById(e)};Ur.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,o=i.length,r=this._composite;r.suspendEvents();let s,a,c,u,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let m=n[s];rfe(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),n7(u)),u.merge(c));l(u)||r.removeById(x),u=void 0}let g=t.length;for(s=0;s<g;s++){let m=t[s];ofe(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),l(u)?n7(u):(Lz.id=x,u=new er(Lz),r.add(u))),u.merge(c));u=void 0}r.resumeEvents()};Ur.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),u=c[t],f=!l(u),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(l(g)){let m=g[t];if(l(m)){if(d)if(d=!1,l(m.merge)&&l(m.clone))u=m.clone(u);else{u=m;break}u.merge(m)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=u};var i7=Ur;function o7(){this._removalFunctions=[]}o7.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)}};o7.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var fr=o7;function a7(e,t){return Z.compare(e.start,t.start)}function zr(e){if(this._intervals=[],this._changedEvent=new me,l(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(zr.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}}});zr.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof zr))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(!Cn.equals(n[r],i[r],t))return!1;return!0};zr.prototype.get=function(e){return this._intervals[e]};zr.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};zr.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};zr.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};zr.prototype.contains=function(e){return this.indexOf(e)>=0};var r7=new Cn;zr.prototype.indexOf=function(e){let t=this._intervals;r7.start=e,r7.stop=e;let n=Po(t,r7,a7);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&&Cn.contains(t[n-1],e)?n-1:~n)};zr.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((!l(t)||c.start.equals(t))&&(!l(n)||c.stop.equals(n))&&(!l(i)||c.isStartIncluded===i)&&(!l(o)||c.isStopIncluded===o))return r[s]}};zr.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||Z.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=Po(n,e,a7);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=Z.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(Z.greaterThan(e.stop,n[i-1].stop)?e=new Cn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Cn({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=Z.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Cn({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 Cn({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=Z.compare(e.stop,n[i].start),o>0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Cn({start:e.start,stop:Z.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:Z.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Cn({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)};zr.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Po(t,e,a7);n<0&&(n=~n);let i=!1;for(n>0&&(Z.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(Z.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 Cn({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 Cn({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 Cn({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&Z.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 Cn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new Cn({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(Z.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new Cn({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};zr.prototype.intersect=function(e,t,n){let i=new zr,o=0,r=0,s=this._intervals,a=e._intervals;for(;o<s.length&&r<a.length;){let c=s[o],u=a[r];if(Z.lessThan(c.stop,u.start))++o;else if(Z.lessThan(u.stop,c.start))++r;else{if(l(n)||l(t)&&t(c.data,u.data)||!l(t)&&u.data===c.data){let f=Cn.intersect(c,u,new Cn,n);f.isEmpty||i.addInterval(f,t)}Z.lessThan(c.stop,u.stop)||c.stop.equals(u.stop)&&!c.isStopIncluded&&u.isStopIncluded?++o:++r}}return i};zr.fromJulianDateArray=function(e,t){l(t)||(t=new zr);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),u,f=0;a&&(++f,u=new Cn({start:He.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];u=new Cn({start:p,stop:g,isStartIncluded:t.length===f?r:!0,isStopIncluded:d===i-2?s:!1}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u),p=g}return c&&(u=new Cn({start:n[i-1],stop:He.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u)),t};var gc=new yp,ML=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s7(e,t,n){l(n)||(n=new Z),Z.toGregorianDate(e,gc);let i=gc.millisecond+t.millisecond,o=gc.second+t.second,r=gc.minute+t.minute,s=gc.hour+t.hour,a=gc.day+t.day,c=gc.month+t.month,u=gc.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),ML[2]=Ad(u)?29:28;a>ML[c]||c>=13;)a>ML[c]&&(a-=ML[c],++c),c>=13&&(--c,u+=Math.floor(c/12),c=c%12,++c),ML[2]=Ad(u)?29:28;return gc.millisecond=i,gc.second=o,gc.minute=r,gc.hour=s,gc.day=a,gc.month=c,gc.year=u,Z.fromGregorianDate(gc,n)}var iKe=new Z,oKe=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function afe(e,t){if(!l(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(oKe);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(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"),Z.toGregorianDate(Z.fromIso8601(e,iKe),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var LL=new yp;zr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=Z.fromIso8601(n[0]),o=Z.fromIso8601(n[1]),r=[];if(!afe(n[2],LL))r.push(i,o);else{let s=Z.clone(i);for(r.push(s);Z.compare(s,o)<0;)s=s7(s,LL),Z.compare(o,s)<=0&&Z.clone(o,s),r.push(s)}return zr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};zr.fromIso8601DateArray=function(e,t){return zr.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return Z.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};zr.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let u=0;u<c;++u)(afe(i[u],LL)||u===0)&&(o&&l(a)?s=s7(a,LL):s=s7(n,LL),r.push(s),a=s);return zr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var Hr=zr;function rKe(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);l(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function Wb(){this._eventHelper=new fr,this._definitionChanged=new me,this._intervals=new Hr,this._intervals.changedEvent.addEventListener(Wb.prototype._intervalsChanged,this)}Object.defineProperties(Wb.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var sKe=new Z;Wb.prototype.getValue=function(e,t){l(e)||(e=Z.now(sKe));let n=this._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};Wb.prototype.equals=function(e){return this===e||e instanceof Wb&&this._intervals.equals(e._intervals,Y.equals)};Wb.prototype._intervalsChanged=function(){rKe(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var yc=Wb;function zy(){this._definitionChanged=new me,this._composite=new yc,this._composite.definitionChanged.addEventListener(zy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(zy.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});zy.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(t))return t.getType(e)};var aKe=new Z;zy.prototype.getValue=function(e,t){l(e)||(e=Z.now(aKe));let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};zy.prototype.equals=function(e){return this===e||e instanceof zy&&this._composite.equals(e._composite,Y.equals)};zy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var CE=zy;function Hy(e){this._referenceFrame=y(e,Vi.FIXED),this._definitionChanged=new me,this._composite=new yc,this._composite.definitionChanged.addEventListener(Hy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Hy.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}}});var cKe=new Z;Hy.prototype.getValue=function(e,t){return l(e)||(e=Z.now(cKe)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Hy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(i))return i.getValueInReferenceFrame(e,t,n)};Hy.prototype.equals=function(e){return this===e||e instanceof Hy&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,Y.equals)};Hy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var ma=Hy;var lKe={ROUNDED:0,MITERED:1,BEVELED:2},Pi=Object.freeze(lKe);var pa=[new h,new h],uKe=new h,fKe=new h,dKe=new h,hKe=new h,mKe=new h,pKe=new h,_Ke=new h,gKe=new h,yKe=new h,AE=new h,Fz=new h,NL={},c7=new fe;function xKe(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];c7=t.cartesianToCartographic(o,c7),n[i]=c7.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function l7(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),u;if(t===n){for(u=0;u<a;u++)c[u]=t;return c.push(n),c}let d=(n-t)/a;for(u=1;u<a;u++){let p=t+u*d;c[u]=p}return c[0]=t,c.push(n),c}var Bz=new h,kz=new h;function bKe(e,t,n,i){let o=new $r(n,i),r=o.projectPointOntoPlane(h.add(n,e,Bz),Bz),s=o.projectPointOntoPlane(h.add(n,t,kz),kz),a=z.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var TKe=new h(-1,0,0),jb=new F,CKe=new F,u7=new $,AKe=$.IDENTITY.clone(),EKe=new h,SKe=new oe,cfe=new h;function L_(e,t,n,i,o,r,s,a){let c=EKe,u=SKe;jb=Mt.eastNorthUpToFixedFrame(e,o,jb),c=F.multiplyByPointAsVector(jb,TKe,c),c=h.normalize(c,c);let f=bKe(c,t,e,o);u7=$.fromRotationZ(f,u7),cfe.z=r,jb=F.multiplyTransformation(jb,F.fromRotationTranslation(u7,cfe,CKe),jb);let d=AKe;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)u=h.fromArray(n,g,u),u=$.multiplyByVector(d,u,u),u=F.multiplyByPoint(jb,u,u),i.push(u.x,u.y,u.z);return i}var vKe=new h;function f7(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,vKe);i=L_(c,t,n,i,o,r[a/3],s,1)}return i}function wKe(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 u=a.x-r,f=a.y-s;i[o++]=u,i[o++]=0,i[o++]=f,i[o++]=u,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 lfe(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 ufe=new Oe,ffe=new h,dfe=new $;function hfe(e,t,n,i,o,r,s,a,c,u){let f=h.angleBetween(h.subtract(t,e,AE),h.subtract(n,e,Fz)),d=i===Pi.BEVELED?0:Math.ceil(f/P.toRadians(5)),p;o?p=$.fromQuaternion(Oe.fromAxisAngle(h.negate(e,AE),f/(d+1),ufe),dfe):p=$.fromQuaternion(Oe.fromAxisAngle(e,f/(d+1),ufe),dfe);let g,m;if(t=h.clone(t,ffe),d>0){let x=u?2:1;for(let b=0;b<d;b++)t=$.multiplyByVector(p,t,t),g=h.subtract(t,e,AE),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,Fz),s=L_(m,g,a,s,r,c,1,x)}else g=h.subtract(t,e,AE),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,Fz),s=L_(m,g,a,s,r,c,1,1),n=h.clone(n,ffe),g=h.subtract(n,e,AE),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(n,Fz),s=L_(m,g,a,s,r,c,1,1);return s}NL.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];z.equals(r,s)||n.push(s)}return n};NL.angleIsGreaterThanPi=function(e,t,n,i){let o=new $r(n,i),r=o.projectPointOntoPlane(h.add(n,e,Bz),Bz),s=o.projectPointOntoPlane(h.add(n,t,kz),kz);return s.x*r.y-s.y*r.x>=0};var DKe=new h,IKe=new h;NL.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=xKe(e,r),a=i._granularity,c=i._cornerType,u=o?wKe(t,n):lfe(t,n),f=o?lfe(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,m=[],x=o?[]:void 0,b=uKe,T=fKe,C=dKe,A=hKe,E=mKe,v=pKe,D=_Ke,O=gKe,R=yKe,M=e[0],N=e[1];A=r.geodeticSurfaceNormal(M,A),b=h.subtract(N,M,b),b=h.normalize(b,b),O=h.cross(A,b,O),O=h.normalize(O,O);let _=s[0],S=s[1];o&&(x=L_(M,O,f,x,r,_+d,1,1)),R=h.clone(M,R),M=N,T=h.negate(b,T);let w,I;for(let U=1;U<g-1;U++){let V=o?2:1;if(N=e[U+1],M.equals(N)){xt("Positions are too close and are considered equivalent with rounding error.");continue}b=h.subtract(N,M,b),b=h.normalize(b,b),A=r.geodeticSurfaceNormal(M,A);let G=h.multiplyByScalar(A,h.dot(b,A),DKe);h.subtract(b,G,G),h.normalize(G,G);let k=h.multiplyByScalar(A,h.dot(T,A),IKe);if(h.subtract(T,k,k),h.normalize(k,k),!P.equalsEpsilon(Math.abs(h.dot(G,k)),1,P.EPSILON7)){C=h.add(b,T,C),C=h.normalize(C,C),C=h.cross(C,A,C),C=h.cross(A,C,C),C=h.normalize(C,C);let q=1/Math.max(.25,h.magnitude(h.cross(C,T,AE))),J=NL.angleIsGreaterThanPi(b,T,M,r);J?(E=h.add(M,h.multiplyByScalar(C,q*p,C),E),v=h.add(E,h.multiplyByScalar(O,p,v),v),pa[0]=h.clone(R,pa[0]),pa[1]=h.clone(v,pa[1]),w=l7(pa,_+d,S+d,a),I=Ii.generateArc({positions:pa,granularity:a,ellipsoid:r}),m=f7(I,O,u,m,r,w,1),O=h.cross(A,b,O),O=h.normalize(O,O),D=h.add(E,h.multiplyByScalar(O,p,D),D),c===Pi.ROUNDED||c===Pi.BEVELED?hfe(E,v,D,c,J,r,m,u,S+d,o):(C=h.negate(C,C),m=L_(M,C,u,m,r,S+d,q,V)),R=h.clone(D,R)):(E=h.add(M,h.multiplyByScalar(C,q*p,C),E),v=h.add(E,h.multiplyByScalar(O,-p,v),v),pa[0]=h.clone(R,pa[0]),pa[1]=h.clone(v,pa[1]),w=l7(pa,_+d,S+d,a),I=Ii.generateArc({positions:pa,granularity:a,ellipsoid:r}),m=f7(I,O,u,m,r,w,1),O=h.cross(A,b,O),O=h.normalize(O,O),D=h.add(E,h.multiplyByScalar(O,-p,D),D),c===Pi.ROUNDED||c===Pi.BEVELED?hfe(E,v,D,c,J,r,m,u,S+d,o):m=L_(M,C,u,m,r,S+d,q,V),R=h.clone(D,R)),T=h.negate(b,T)}else m=L_(R,O,u,m,r,_+d,1,1),R=M;_=S,S=s[U+1],M=N}pa[0]=h.clone(R,pa[0]),pa[1]=h.clone(M,pa[1]),w=l7(pa,_+d,S+d,a),I=Ii.generateArc({positions:pa,granularity:a,ellipsoid:r}),m=f7(I,O,u,m,r,w,1),o&&(x=L_(M,O,f,x,r,S+d,1,1)),g=m.length;let L=o?g+x.length:g,B=new Float64Array(L);return B.set(m),o&&B.set(x,g),B};var lh=NL;var h7={},EE=new h,yfe=new h,PKe=new h,mfe=new h,tl=[new h,new h],xfe=new h,bfe=new h,Tfe=new h,RKe=new h,OKe=new h,MKe=new h,LKe=new h,NKe=new h,FKe=new h,BKe=new h,pfe=new Oe,_fe=new $;function Vz(e,t,n,i,o){let r=h.angleBetween(h.subtract(t,e,EE),h.subtract(n,e,yfe)),s=i===Pi.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 u;o?u=$.fromQuaternion(Oe.fromAxisAngle(h.negate(e,EE),r/s,pfe),_fe):u=$.fromQuaternion(Oe.fromAxisAngle(e,r/s,pfe),_fe);let f=0;t=h.clone(t,EE);for(let d=0;d<s;d++)t=$.multiplyByVector(u,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function kKe(e){let t=xfe,n=bfe,i=Tfe,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=Vz(t,n,i,Pi.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=Vz(t,n,i,Pi.ROUNDED,!1);return[r,c]}function gfe(e,t,n,i){let o=EE;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 d7(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=h.multiplyByScalar(t,n,EE),a=h.negate(s,yfe),c=0,u=e.length-1;for(let f=0;f<e.length;f+=3){let d=h.fromArray(e,f,PKe),p=h.add(d,a,mfe);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let g=h.add(d,s,mfe);r[u--]=g.z,r[u--]=g.y,r[u--]=g.x}return i.push(o,r),i}h7.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;l(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),l(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var VKe=new h,UKe=new h;h7.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=xfe,c=bfe,u=Tfe,f=RKe,d=OKe,p=MKe,g=LKe,m=NKe,x=FKe,b=BKe,T=[],C=s?[]:void 0,A=s?[]:void 0,E=n[0],v=n[1];c=h.normalize(h.subtract(v,E,c),c),a=i.geodeticSurfaceNormal(E,a),f=h.normalize(h.cross(a,c,f),f),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z)),g=h.clone(E,g),E=v,u=h.negate(c,u);let D,O=[],R,M=n.length;for(R=1;R<M-1;R++){a=i.geodeticSurfaceNormal(E,a),v=n[R+1],c=h.normalize(h.subtract(v,E,c),c);let _=h.multiplyByScalar(a,h.dot(c,a),VKe);h.subtract(c,_,_),h.normalize(_,_);let S=h.multiplyByScalar(a,h.dot(u,a),UKe);if(h.subtract(u,S,S),h.normalize(S,S),!P.equalsEpsilon(Math.abs(h.dot(_,S)),1,P.EPSILON7)){d=h.normalize(h.add(c,u,d),d),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,u,EE))),L=lh.angleIsGreaterThanPi(c,u,E,i);d=h.multiplyByScalar(d,I,d),L?(m=h.add(E,d,m),b=h.add(m,h.multiplyByScalar(f,o,b),b),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(b,tl[1]),D=Ii.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=d7(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.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===Pi.ROUNDED||r===Pi.BEVELED?O.push({leftPositions:Vz(m,p,x,r,L)}):O.push({leftPositions:gfe(E,h.negate(d,d),x,L)})):(x=h.add(E,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),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(b,tl[1]),D=Ii.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=d7(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.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===Pi.ROUNDED||r===Pi.BEVELED?O.push({rightPositions:Vz(x,p,m,r,L)}):O.push({rightPositions:gfe(E,d,m,L)})),u=h.negate(c,u)}E=v}a=i.geodeticSurfaceNormal(E,a),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(E,tl[1]),D=Ii.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=d7(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z));let N;return r===Pi.ROUNDED&&(N=kKe(T)),{positions:T,corners:O,lefts:C,normals:A,endPositions:N}};var Hi=h7;var Efe=new h,Sfe=new h,Uz=new h,zz=new h,zKe=new h,vfe=new h,Gy=new h,SE=new h;function wfe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function uh(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,u=h.normalize(h.cross(n,t,Gy),Gy);r.normal&&Hi.addAttribute(s,t,i,o),r.tangent&&Hi.addAttribute(a,u,i,o),r.bitangent&&Hi.addAttribute(c,n,i,o)}function Dfe(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new fn,u,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++){u=o[p];let Q=o[p].leftPositions;l(Q)?(m=Q.length,f+=m,g+=m):(m=o[p].rightPositions.length,d+=m,g+=m)}let x=l(r),b;x&&(b=r[0].length-3,f+=b,d+=b,b/=3,g+=b*6);let T=f+d,C=new Float64Array(T),A=t.normal?new Float32Array(T):void 0,E=t.tangent?new Float32Array(T):void 0,v=t.bitangent?new Float32Array(T):void 0,D={normals:A,tangents:E,bitangents:v},O=0,R=T-1,M,N,_,S,w=Efe,I=Sfe,L,B,U=b/2,V=Ne.createTypedArray(T/3,g),G=0;if(x){B=Uz,L=zz;let Q=r[0];for(w=h.fromArray(a,0,w),I=h.fromArray(s,0,I),p=0;p<U;p++)B=h.fromArray(Q,(U-1-p)*3,B),L=h.fromArray(Q,(U+p)*3,L),Hi.addAttribute(C,L,O),Hi.addAttribute(C,B,void 0,R),uh(D,w,I,O,R,t),N=O/3,S=N+1,M=(R-2)/3,_=M-1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3}let k=0,W=0,q=i[k++],J=i[k++];C.set(q,O),C.set(J,R-J.length+1),I=h.fromArray(s,W,I);let j,K;for(m=J.length-3,p=0;p<m;p+=3)j=n.geodeticSurfaceNormal(h.fromArray(q,p,Gy),Gy),K=n.geodeticSurfaceNormal(h.fromArray(J,m-p,SE),SE),w=h.normalize(h.add(j,K,w),w),uh(D,w,I,O,R,t),N=O/3,S=N+1,M=(R-2)/3,_=M-1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3;for(j=n.geodeticSurfaceNormal(h.fromArray(q,m,Gy),Gy),K=n.geodeticSurfaceNormal(h.fromArray(J,m,SE),SE),w=h.normalize(h.add(j,K,w),w),W+=3,p=0;p<o.length;p++){let Q;u=o[p];let de=u.leftPositions,ye=u.rightPositions,ae,_e,xe=vfe,De=Uz,Ae=zz;if(w=h.fromArray(a,W,w),l(de)){for(uh(D,w,I,void 0,R,t),R-=3,ae=S,_e=_,Q=0;Q<de.length/3;Q++)xe=h.fromArray(de,Q*3,xe),V[G++]=ae,V[G++]=_e-Q-1,V[G++]=_e-Q,Hi.addAttribute(C,xe,void 0,R),De=h.fromArray(C,(_e-Q-1)*3,De),Ae=h.fromArray(C,ae*3,Ae),I=h.normalize(h.subtract(De,Ae,I),I),uh(D,w,I,void 0,R,t),R-=3;xe=h.fromArray(C,ae*3,xe),De=h.subtract(h.fromArray(C,_e*3,De),xe,De),Ae=h.subtract(h.fromArray(C,(_e-Q)*3,Ae),xe,Ae),I=h.normalize(h.add(De,Ae,I),I),uh(D,w,I,O,void 0,t),O+=3}else{for(uh(D,w,I,O,void 0,t),O+=3,ae=_,_e=S,Q=0;Q<ye.length/3;Q++)xe=h.fromArray(ye,Q*3,xe),V[G++]=ae,V[G++]=_e+Q,V[G++]=_e+Q+1,Hi.addAttribute(C,xe,O),De=h.fromArray(C,ae*3,De),Ae=h.fromArray(C,(_e+Q)*3,Ae),I=h.normalize(h.subtract(De,Ae,I),I),uh(D,w,I,O,void 0,t),O+=3;xe=h.fromArray(C,ae*3,xe),De=h.subtract(h.fromArray(C,(_e+Q)*3,De),xe,De),Ae=h.subtract(h.fromArray(C,_e*3,Ae),xe,Ae),I=h.normalize(h.negate(h.add(Ae,De,I),I),I),uh(D,w,I,void 0,R,t),R-=3}for(q=i[k++],J=i[k++],q.splice(0,3),J.splice(J.length-3,3),C.set(q,O),C.set(J,R-J.length+1),m=J.length-3,W+=3,I=h.fromArray(s,W,I),Q=0;Q<J.length;Q+=3)j=n.geodeticSurfaceNormal(h.fromArray(q,Q,Gy),Gy),K=n.geodeticSurfaceNormal(h.fromArray(J,m-Q,SE),SE),w=h.normalize(h.add(j,K,w),w),uh(D,w,I,O,R,t),S=O/3,N=S-1,_=(R-2)/3,M=_+1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3;O-=3,R+=3}if(w=h.fromArray(a,a.length-3,w),uh(D,w,I,O,R,t),x){O+=3,R-=3,B=Uz,L=zz;let Q=r[1];for(p=0;p<U;p++)B=h.fromArray(Q,(b-p-1)*3,B),L=h.fromArray(Q,p*3,L),Hi.addAttribute(C,B,void 0,R),Hi.addAttribute(C,L,O),uh(D,w,I,O,R,t),S=O/3,N=S-1,_=(R-2)/3,M=_+1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3}if(c.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:C}),t.st){let Q=new Float32Array(T/3*2),de,ye,ae=0;if(x){f/=3,d/=3;let _e=Math.PI/(b+1);ye=1/(f-b+1),de=1/(d-b+1);let xe,De=b/2;for(p=De+1;p<b+1;p++)xe=P.PI_OVER_TWO+_e*p,Q[ae++]=de*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=1;p<d-b+1;p++)Q[ae++]=p*de,Q[ae++]=0;for(p=b;p>De;p--)xe=P.PI_OVER_TWO-p*_e,Q[ae++]=1-de*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=De;p>0;p--)xe=P.PI_OVER_TWO-_e*p,Q[ae++]=1-ye*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=f-b;p>0;p--)Q[ae++]=p*ye,Q[ae++]=1;for(p=1;p<De+1;p++)xe=P.PI_OVER_TWO+_e*p,Q[ae++]=ye*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe))}else{for(f/=3,d/=3,ye=1/(f-1),de=1/(d-1),p=0;p<d;p++)Q[ae++]=p*de,Q[ae++]=0;for(p=f;p>0;p--)Q[ae++]=(p-1)*ye,Q[ae++]=1}c.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:Q})}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:V}}function HKe(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,u;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=Efe,m=Sfe,x=Uz,b=zz,T=zKe,C=vfe,A=c;for(u=0;u<s;u+=3){let E=A+c;g=h.fromArray(n,u,g),m=h.fromArray(n,u+s,m),x=h.fromArray(n,(u+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&&(Hi.addAttribute(f,b,E),Hi.addAttribute(f,b,E+3),Hi.addAttribute(f,b,A),Hi.addAttribute(f,b,A+3)),(t.tangent||t.bitangent)&&(C=h.fromArray(i,u,C),t.bitangent&&(Hi.addAttribute(p,C,E),Hi.addAttribute(p,C,E+3),Hi.addAttribute(p,C,A),Hi.addAttribute(p,C,A+3)),t.tangent&&(T=h.normalize(h.cross(C,b,T),T),Hi.addAttribute(d,T,E),Hi.addAttribute(d,T,E+3),Hi.addAttribute(d,T,A),Hi.addAttribute(d,T,A+3))),A+=6}if(t.normal){for(f.set(i),u=0;u<s;u+=3)f[u+s]=-i[u],f[u+s+1]=-i[u+1],f[u+s+2]=-i[u+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 E=e.tangent.values;d.set(E),d.set(E,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],u=2;u<a;u+=2){let m=f[u],x=f[u+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 m7(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 GKe(e,t){let n=new Ie({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=Hi.computePositions(e),r=Dfe(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,u=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=si.scaleToGeodeticHeight(f,s,i),m=m7(f,0,m),g=si.scaleToGeodeticHeight(g,a,i),m=m7(g,d*2,m),p.set(f),p.set(g,d),p.set(m,d*2),c.position.values=p,c=HKe(c,t);let x,b=d/3;if(e.shadowVolume){let M=c.normal.values;d=M.length;let N=new Float32Array(d*6);for(x=0;x<d;x++)M[x]=-M[x];N.set(M,d),N=m7(M,d*4,N),c.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:N}),t.normal||(c.normal=void 0)}if(l(e.offsetAttribute)){let M=new Uint8Array(b*6);if(e.offsetAttribute===an.TOP)M=M.fill(1,0,b).fill(1,b*2,b*4);else{let N=e.offsetAttribute===an.NONE?0:1;M=M.fill(N)}c.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}let T=u.length,C=b+b,A=Ne.createTypedArray(p.length/3,T*2+C*3);A.set(u);let E=T;for(x=0;x<T;x+=3){let M=u[x],N=u[x+1],_=u[x+2];A[E++]=_+b,A[E++]=N+b,A[E++]=M+b}let v,D,O,R;for(x=0;x<C;x+=2)v=x+C,D=v+C,O=v+1,R=D+1,A[E++]=v,A[E++]=D,A[E++]=O,A[E++]=O,A[E++]=D,A[E++]=R;return{attributes:c,indices:A}}var Cfe=new h,FL=new h,Zf=new fe;function Afe(e,t,n,i,o,r){let s=h.subtract(t,e,Cfe);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,FL),c=h.cross(s,a,Cfe);h.multiplyByScalar(c,i,c);let u=o.latitude,f=o.longitude,d=r.latitude,p=r.longitude;h.add(e,c,FL),n.cartesianToCartographic(FL,Zf);let g=Zf.latitude,m=Zf.longitude;u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),h.subtract(e,c,FL),n.cartesianToCartographic(FL,Zf),g=Zf.latitude,m=Zf.longitude,u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),o.latitude=u,o.longitude=f,r.latitude=d,r.longitude=p}var Kf=new h,BL=new h,Gl=new fe,Wl=new fe;function Ife(e,t,n,i,o){e=wfe(e,t);let r=To(e,h.equalsEpsilon),s=r.length;if(s<2||n<=0)return new re;let a=n*.5;Gl.latitude=Number.POSITIVE_INFINITY,Gl.longitude=Number.POSITIVE_INFINITY,Wl.latitude=Number.NEGATIVE_INFINITY,Wl.longitude=Number.NEGATIVE_INFINITY;let c,u;if(i===Pi.ROUNDED){let p=r[0];h.subtract(p,r[1],Kf),h.normalize(Kf,Kf),h.multiplyByScalar(Kf,a,Kf),h.add(p,Kf,BL),t.cartesianToCartographic(BL,Zf),c=Zf.latitude,u=Zf.longitude,Gl.latitude=Math.min(Gl.latitude,c),Gl.longitude=Math.min(Gl.longitude,u),Wl.latitude=Math.max(Wl.latitude,c),Wl.longitude=Math.max(Wl.longitude,u)}for(let p=0;p<s-1;++p)Afe(r[p],r[p+1],t,a,Gl,Wl);let f=r[s-1];h.subtract(f,r[s-2],Kf),h.normalize(Kf,Kf),h.multiplyByScalar(Kf,a,Kf),h.add(f,Kf,BL),Afe(f,BL,t,a,Gl,Wl),i===Pi.ROUNDED&&(t.cartesianToCartographic(BL,Zf),c=Zf.latitude,u=Zf.longitude,Gl.latitude=Math.min(Gl.latitude,c),Gl.longitude=Math.min(Gl.longitude,u),Wl.latitude=Math.max(Wl.latitude,c),Wl.longitude=Math.max(Wl.longitude,u));let d=l(o)?o:new re;return d.north=Wl.latitude,d.south=Gl.latitude,d.east=Wl.longitude,d.west=Gl.longitude,d}function F_(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=ee.clone(y(e.ellipsoid,ee.default)),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Pi.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+ee.packedLength+Ie.packedLength+7}F_.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 ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,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++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Pfe=ee.clone(ee.UNIT_SPHERE),Rfe=new Ie,N_={positions:void 0,ellipsoid:Pfe,vertexFormat:Rfe,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};F_.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=ee.unpack(e,t,Pfe);t+=ee.packedLength;let s=Ie.unpack(e,t,Rfe);t+=Ie.packedLength;let a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return l(n)?(n._positions=o,n._ellipsoid=ee.clone(r,n._ellipsoid),n._vertexFormat=Ie.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=u,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(N_.positions=o,N_.width=a,N_.height=c,N_.extrudedHeight=u,N_.cornerType=f,N_.granularity=d,N_.shadowVolume=p,N_.offsetAttribute=g===-1?void 0:g,new F_(N_))};F_.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,o=y(e.ellipsoid,ee.default),r=y(e.cornerType,Pi.ROUNDED);return Ife(n,o,i,r,t)};F_.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=wfe(t,i);let o=To(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,u={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)u.height=r,u.extrudedHeight=s,u.shadowVolume=e._shadowVolume,u.offsetAttribute=e._offsetAttribute,f=GKe(u,c);else{let g=Hi.computePositions(u);if(f=Dfe(g,c,i),f.attributes.position.values=si.scaleToGeodeticHeight(f.attributes.position.values,r,i),l(e._offsetAttribute)){let m=e._offsetAttribute===an.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 at({attributes:d,indices:f.indices,primitiveType:Me.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};F_.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new F_({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(F_.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=Ife(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var qb=F_;var Ofe=new h,Mfe=new h,WKe=new h;function jKe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function Lfe(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new fn,a,c=0,u=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,u+=i[f+1].length-3;for(c+=3,u+=3,f=0;f<o.length;f++){a=o[f];let L=o[f].leftPositions;l(L)?(p=L.length,c+=p,d+=p/3*2):(p=o[f].rightPositions.length,u+=p,d+=p/3*2)}let g=l(r),m;g&&(m=r[0].length-3,c+=m,u+=m,m/=3,d+=m*4);let x=c+u,b=new Float64Array(x),T=0,C=x-1,A,E,v,D,O,R,M=m/2,N=Ne.createTypedArray(x/3,d+4),_=0;if(N[_++]=T/3,N[_++]=(C-2)/3,g){n.push(T/3),R=Ofe,O=Mfe;let L=r[0];for(f=0;f<M;f++)R=h.fromArray(L,(M-1-f)*3,R),O=h.fromArray(L,(M+f)*3,O),Hi.addAttribute(b,O,T),Hi.addAttribute(b,R,void 0,C),E=T/3,D=E+1,A=(C-2)/3,v=A-1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3}let S=0,w=i[S++],I=i[S++];for(b.set(w,T),b.set(I,C-I.length+1),p=I.length-3,n.push(T/3,(C-2)/3),f=0;f<p;f+=3)E=T/3,D=E+1,A=(C-2)/3,v=A-1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;for(f=0;f<o.length;f++){let L;a=o[f];let B=a.leftPositions,U=a.rightPositions,V,G=WKe;if(l(B)){for(C-=3,V=v,n.push(D),L=0;L<B.length/3;L++)G=h.fromArray(B,L*3,G),N[_++]=V-L-1,N[_++]=V-L,Hi.addAttribute(b,G,void 0,C),C-=3;n.push(V-Math.floor(B.length/6)),t===Pi.BEVELED&&n.push((C-2)/3+1),T+=3}else{for(T+=3,V=D,n.push(v),L=0;L<U.length/3;L++)G=h.fromArray(U,L*3,G),N[_++]=V+L,N[_++]=V+L+1,Hi.addAttribute(b,G,T),T+=3;n.push(V+Math.floor(U.length/6)),t===Pi.BEVELED&&n.push(T/3-1),C-=3}for(w=i[S++],I=i[S++],w.splice(0,3),I.splice(I.length-3,3),b.set(w,T),b.set(I,C-I.length+1),p=I.length-3,L=0;L<I.length;L+=3)D=T/3,E=D-1,v=(C-2)/3,A=v+1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;T-=3,C+=3,n.push(T/3,(C-2)/3)}if(g){T+=3,C-=3,R=Ofe,O=Mfe;let L=r[1];for(f=0;f<M;f++)R=h.fromArray(L,(m-f-1)*3,R),O=h.fromArray(L,f*3,O),Hi.addAttribute(b,R,void 0,C),Hi.addAttribute(b,O,T),D=T/3,E=D-1,v=(C-2)/3,A=v+1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;n.push(T/3)}else n.push(T/3,(C-2)/3);return N[_++]=T/3,N[_++]=(C-2)/3,s.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:s,indices:N,wallIndices:n}}function qKe(e){let t=e.ellipsoid,n=Hi.computePositions(e),i=Lfe(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,u=a.position.values,f=u.length,d=new Float64Array(f);d.set(u);let p=new Float64Array(f*2);if(u=si.scaleToGeodeticHeight(u,r,t),d=si.scaleToGeodeticHeight(d,s,t),p.set(u),p.set(d,f),a.position.values=p,f/=3,l(e.offsetAttribute)){let A=new Uint8Array(f*2);if(e.offsetAttribute===an.TOP)A=A.fill(1,0,f);else{let E=e.offsetAttribute===an.NONE?0:1;A=A.fill(E)}a.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}let g,m=c.length,x=Ne.createTypedArray(p.length/3,(m+o.length)*2);x.set(c);let b=m;for(g=0;g<m;g+=2){let A=c[g],E=c[g+1];x[b++]=A+f,x[b++]=E+f}let T,C;for(g=0;g<o.length;g++)T=o[g],C=T+f,x[b++]=T,x[b++]=C;return{attributes:a,indices:x}}function kL(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=ee.clone(y(e.ellipsoid,ee.default)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+ee.packedLength+6}kL.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 ee.pack(e._ellipsoid,t,n),n+=ee.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 Nfe=ee.clone(ee.UNIT_SPHERE),Wy={positions:void 0,ellipsoid:Nfe,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};kL.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=ee.unpack(e,t,Nfe);t+=ee.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t];return l(n)?(n._positions=o,n._ellipsoid=ee.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=u,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):(Wy.positions=o,Wy.width=s,Wy.height=a,Wy.extrudedHeight=c,Wy.cornerType=u,Wy.granularity=f,Wy.offsetAttribute=d===-1?void 0:d,new kL(Wy))};kL.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=jKe(t,i);let o=To(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},u;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,u=qKe(c);else{let p=Hi.computePositions(c);if(u=Lfe(p,c.cornerType),u.attributes.position.values=si.scaleToGeodeticHeight(u.attributes.position.values,r,i),l(e._offsetAttribute)){let g=u.attributes.position.values.length,m=e._offsetAttribute===an.NONE?0:1,x=new Uint8Array(g/3).fill(m);u.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let f=u.attributes,d=se.fromVertices(f.position.values,void 0,3);return new at({attributes:f,indices:u.indices,primitiveType:Me.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var VL=kL;var YKe=new Kn(0);function nl(e){ii.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}l(Object.create)&&(nl.prototype=Object.create(ii.prototype),nl.prototype.constructor=nl);Object.defineProperties(nl.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});nl.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!l(t.height)&&!l(t.extrudedHeight)&&zc.isSupported(this._scene)};nl.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||l(n)&&n!==t};nl.prototype._computeCenter=he.throwInstantiationError;nl.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(!l(o))return;l(o.zIndex)&&(l(o.height)||l(o.extrudedHeight))&&xt(xt.geometryZIndex),this._zIndex=y(o.zIndex,YKe),l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(l(r)||l(s)){let a=new Vd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new Hx(this._scene,a,r,s)}};nl.prototype.destroy=function(){l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),ii.prototype.destroy.call(this)};nl.getGeometryHeight=function(e,t){if(!l(e)){t!==Ye.NONE&&xt(xt.geometryHeightReference);return}return Af(t)?0:e};nl.getGeometryExtrudedHeight=function(e,t){if(!l(e)){t!==Ye.NONE&&xt(xt.geometryExtrudedHeightReference);return}return Af(t)?nl.CLAMP_TO_GROUND:e};nl.CLAMP_TO_GROUND="clamp";nl.computeGeometryOffsetAttribute=function(e,t,n,i){(!l(e)||!l(t))&&(t=Ye.NONE),(!l(n)||!l(i))&&(i=Ye.NONE);let o=0;if(t!==Ye.NONE&&o++,i===Ye.RELATIVE_TO_GROUND&&o++,o===2)return an.ALL;if(o===1)return an.TOP};var Wn=nl;var Ffe=new H,Bfe=h.ZERO,kfe=new h,Vfe=new re;function XKe(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 fh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new XKe(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}l(Object.create)&&(fh.prototype=Object.create(Wn.prototype),fh.prototype.constructor=fh);fh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(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 Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,Ffe)),l(o)||(o=H.WHITE),i.color=Wt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bfe,kfe))),new St({id:t,geometry:new qb(this._options),attributes:i})};fh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Ffe),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return l(this._options.offsetAttribute)&&(o.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bfe,kfe))),new St({id:t,geometry:new VL(this._options),attributes:o})};fh.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!l(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};fh.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.width)||ii.prototype._isHidden.call(this,e,t)};fh.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.width)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.cornerType)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};fh.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),i=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),o=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),r=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(He.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(He.MINIMUM_VALUE),s.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),s.cornerType=Y.getValueOrUndefined(t.cornerType,He.MINIMUM_VALUE),s.offsetAttribute=Wn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Wn.getGeometryHeight(n,i),o=Wn.getGeometryExtrudedHeight(o,r),o===Wn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(qb.computeRectangle(s,Vfe)).minimumTerrainHeight),s.extrudedHeight=o};fh.DynamicGeometryUpdater=vE;function vE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(vE.prototype=Object.create(ni.prototype),vE.prototype.constructor=vE);vE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.positions)||!l(i.width)||ni.prototype._isHidden.call(this,e,t,n)};vE.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE);l(s)&&!l(o)&&(o=0),i.positions=Y.getValueOrUndefined(t.positions,n),i.width=Y.getValueOrUndefined(t.width,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.cornerType=Y.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(qb.computeRectangle(i,Vfe)).minimumTerrainHeight),i.extrudedHeight=s};var UL=fh;function Hz(){he.throwInstantiationError()}Object.defineProperties(Hz.prototype,{name:{get:he.throwInstantiationError},clock:{get:he.throwInstantiationError},entities:{get:he.throwInstantiationError},isLoading:{get:he.throwInstantiationError},changedEvent:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError},loadingEvent:{get:he.throwInstantiationError},show:{get:he.throwInstantiationError},clustering:{get:he.throwInstantiationError}});Hz.prototype.update=function(e){he.throwInstantiationError()};Hz.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var Gr=Hz;function wm(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(wm.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 Ufe=new h;wm.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Ufe);return _7(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};wm.prototype.isScaledSpacePointVisible=function(e){return _7(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var KKe=new h;wm.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return l(t)&&t<0&&n.minimumRadius>-t?(o=KKe,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),_7(e,o,i)};wm.prototype.computeHorizonCullingPoint=function(e,t,n){return Gfe(this._ellipsoid,e,t,n)};var zfe=ee.clone(ee.UNIT_SPHERE);wm.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=Hfe(this._ellipsoid,n,zfe);return Gfe(o,e,t,i)};wm.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Wfe(this._ellipsoid,e,t,n,i,o)};wm.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=Hfe(this._ellipsoid,o,zfe);return Wfe(s,e,t,n,i,r)};var ZKe=[];wm.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=re.subsample(e,t,0,ZKe),o=se.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var $Ke=new h;function Hfe(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,$Ke);e=ee.fromCartesian3(i,n)}return e}function Gfe(e,t,n,i){l(i)||(i=new h);let o=Yfe(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],u=jfe(e,c,o);if(u<0)return;r=Math.max(r,u)}return qfe(o,r,i)}var Gz=new h;function Wfe(e,t,n,i,o,r){l(r)||(r=new h),i=y(i,3),o=y(o,h.ZERO);let s=Yfe(e,t),a=0;for(let c=0,u=n.length;c<u;c+=i){Gz.x=n[c]+o.x,Gz.y=n[c+1]+o.y,Gz.z=n[c+2]+o.z;let f=jfe(e,Gz,s);if(f<0)return;a=Math.max(a,f)}return qfe(s,a,r)}function _7(e,t,n){let i=t,o=n,r=h.subtract(e,i,Ufe),s=-h.dot(r,i);return!(o<0?s>0:s>o&&s*s/h.magnitudeSquared(r)>o)}var QKe=new h,JKe=new h;function jfe(e,t,n){let i=e.transformPositionToScaledSpace(t,QKe),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,JKe);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),u=1/r,f=Math.sqrt(o-1)*u;return 1/(a*u-c*f)}function qfe(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var p7=new h;function Yfe(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,p7),h.normalize(p7,p7))}var B_=wm;function vr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Lt.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=H.clone(y(e.color,H.WHITE)),this._outlineColor=H.clone(y(e.outlineColor,H.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,this._splitDirection=y(e.splitDirection,Nr.NONE)}var Xfe=vr.SHOW_INDEX=0,$fe=vr.POSITION_INDEX=1,eZe=vr.COLOR_INDEX=2,tZe=vr.OUTLINE_COLOR_INDEX=3,nZe=vr.OUTLINE_WIDTH_INDEX=4,iZe=vr.PIXEL_SIZE_INDEX=5,oZe=vr.SCALE_BY_DISTANCE_INDEX=6,rZe=vr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,sZe=vr.DISTANCE_DISPLAY_CONDITION_INDEX=8,aZe=vr.DISABLE_DEPTH_DISTANCE_INDEX=9,cZe=vr.SPLIT_DIRECTION_INDEX=10;vr.NUMBER_OF_PROPERTIES=11;function Ru(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(vr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Ru(this,Xfe))}},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),Ru(this,$fe))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),Ru(this,oZe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),Ru(this,rZe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Ru(this,iZe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),Ru(this,eZe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Ru(this,tZe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Ru(this,nZe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Lt.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition),Ru(this,sZe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Ru(this,aZe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(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,Ru(this,Xfe))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,Ru(this,cZe))}}});vr.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};vr.prototype._getActualPosition=function(){return this._actualPosition};vr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),Ru(this,$fe)};var Kfe=new oe;vr._computeActualPosition=function(e,t,n){return t.mode===ne.SCENE3D?e:(F.multiplyByPoint(n,e,Kfe),Ui.computeActualEllipsoidPosition(t,Kfe))};var Zfe=new oe;vr._computeScreenSpacePosition=function(e,t,n,i){let o=F.multiplyByVector(e,oe.fromElements(t.x,t.y,t.z,1,Zfe),Zfe);return Ui.worldToWindowCoordinates(n,o,i)};vr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new z);let i=n.modelMatrix,o=vr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};vr.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 l(n)||(n=new je),n.x=r,n.y=s,n.width=a,n.height=c,n};vr.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&H.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&H.equals(this._outlineColor,e._outlineColor)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Lt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};vr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Is=vr;var jy=`in vec4 v_color;
in vec4 v_outlineColor;
in float v_innerPercent;
in float v_pixelDistance;
in vec4 v_pickColor;
in float v_splitDirection;

void main()
{
    if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard;
    if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard;

    // The distance in UV space from this fragment to the center of the point, at most 0.5.
    float distanceToCenter = length(gl_PointCoord - vec2(0.5));
    // The max distance stops one pixel shy of the edge to leave space for anti-aliasing.
    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;

// Fully transparent parts of the billboard are not pickable.
#if !defined(OPAQUE) && !defined(TRANSLUCENT)
    if (color.a < 0.005)   // matches 0/255 and 1/255
    {
        discard;
    }
#else
// The billboard is rendered twice. The opaque pass discards translucent fragments
// and the translucent pass discards opaque fragments.
#ifdef OPAQUE
    if (color.a < 0.995)   // matches < 254/255
    {
        discard;
    }
#else
    if (color.a >= 0.995)  // matches 254/255 and 255/255
    {
        discard;
    }
#endif
#endif

    out_FragColor = czm_gammaCorrect(color);
    czm_writeLogDepth();
}
`;var zL=`uniform float u_maxTotalPointSize;

in vec4 positionHighAndSize;
in vec4 positionLowAndOutline;
in vec4 compressedAttribute0;                                        // color, outlineColor, pick color
in vec4 compressedAttribute1;                                        // show, translucency by distance, some free space
in vec4 scaleByDistance;                                             // near, nearScale, far, farScale
in vec4 distanceDisplayConditionAndDisableDepthAndSplitDirection;    // near, far, disableDepthTestDistance, splitDirection

out vec4 v_color;
out vec4 v_outlineColor;
out float v_innerPercent;
out float v_pixelDistance;
out vec4 v_pickColor;
out float v_splitDirection;

const float SHIFT_LEFT8 = 256.0;
const float SHIFT_RIGHT8 = 1.0 / 256.0;

void main()
{
    // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition

    // unpack attributes
    vec3 positionHigh = positionHighAndSize.xyz;
    vec3 positionLow = positionLowAndOutline.xyz;
    float outlineWidthBothSides = 2.0 * positionLowAndOutline.w;
    float totalSize = positionHighAndSize.w + outlineWidthBothSides;
    float outlinePercent = outlineWidthBothSides / totalSize;
    // Scale in response to browser-zoom.
    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;

    // compressedAttribute0.z => pickColor.rgb

    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);

    // compressedAttribute0.x => color.rgb

    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);

    // compressedAttribute0.y => outlineColor.rgb

    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);

    // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a

    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)
    {
        // 2D camera distance is a special case
        // treat all billboards as flattened to the z=0.0 plane
        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) {
        // Add padding for anti-aliasing on both sides.
        totalSize += 3.0;
    }

    // Clamp to max point size.
    totalSize = min(totalSize, u_maxTotalPointSize);
    // If size is too small, push vertex behind near plane for clipping.
    // Note that context.minimumAliasedPointSize "will be at most 1.0".
    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);
    // push vertex behind near plane for clipping
    if (translucency < 0.004)
    {
        positionEC.xyz = vec3(0.0);
    }
#endif

#ifdef DISTANCE_DISPLAY_CONDITION
    float nearSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.x;
    float farSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.y;
    if (lengthSq < nearSq || lengthSq > farSq) {
        // push vertex behind camera to force it to be clipped
        positionEC.xyz = vec3(0.0, 0.0, 1.0);
    }
#endif

    gl_Position = czm_projection * positionEC;
    czm_vertexLogDepth();

#ifdef DISABLE_DEPTH_DISTANCE
    float disableDepthTestDistance = distanceDisplayConditionAndDisableDepthAndSplitDirection.z;
    if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0)
    {
        disableDepthTestDistance = czm_minimumDisableDepthTestDistance;
    }

    if (disableDepthTestDistance != 0.0)
    {
        // Don't try to "multiply both sides" by w.  Greater/less-than comparisons won't work for negative values of w.
        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)))
        {
            // Position z on the near plane.
            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;
    v_splitDirection = distanceDisplayConditionAndDisableDepthAndSplitDirection.w;
}
`;var lZe=Is.SHOW_INDEX,x7=Is.POSITION_INDEX,Qfe=Is.COLOR_INDEX,uZe=Is.OUTLINE_COLOR_INDEX,fZe=Is.OUTLINE_WIDTH_INDEX,dZe=Is.PIXEL_SIZE_INDEX,Jfe=Is.SCALE_BY_DISTANCE_INDEX,ede=Is.TRANSLUCENCY_BY_DISTANCE_INDEX,tde=Is.DISTANCE_DISPLAY_CONDITION_INDEX,hZe=Is.DISABLE_DEPTH_DISTANCE_INDEX,mZe=Is.SPLIT_DIRECTION_INDEX,b7=Is.NUMBER_OF_PROPERTIES,xc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepthAndSplitDirection:5};function $f(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(b7),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=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Eo.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties($f.prototype,{length:{get:function(){return T7(this),this._pointPrimitives.length}}});function nde(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}$f.prototype.add=function(e){let t=new Is(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};$f.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};$f.prototype.removeAll=function(){nde(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function T7(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}}$f.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};$f.prototype.contains=function(e){return l(e)&&e._pointPrimitiveCollection===this};$f.prototype.get=function(e){return T7(this),this._pointPrimitives[e]};$f.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<b7;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function pZe(e,t,n){return new Dp(e,[{index:xc.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[x7]},{index:xc.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[x7]},{index:xc.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Qfe]},{index:xc.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ede]},{index:xc.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Jfe]},{index:xc.distanceDisplayConditionAndDisableDepthAndSplitDirection,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[tde]}],t)}var g7=new Gn;function ide(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===ne.SCENE3D&&(se.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),Gn.fromCartesian(r,g7);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[xc.positionHighAndSize],u=g7.high;c(o,u.x,u.y,u.z,s);let f=n[xc.positionLowAndOutline],d=g7.low;f(o,d.x,d.y,d.z,a)}var Wz=65536,HL=256;function ode(e,t,n,i){let o=i._index,r=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=H.floatToByte(r.red),u=H.floatToByte(r.green),f=H.floatToByte(r.blue),d=c*Wz+u*HL+f;c=H.floatToByte(a.red),u=H.floatToByte(a.green),f=H.floatToByte(a.blue);let p=c*Wz+u*HL+f;c=H.floatToByte(s.red),u=H.floatToByte(s.green),f=H.floatToByte(s.blue);let g=c*Wz+u*HL+f,m=H.floatToByte(r.alpha)*Wz+H.floatToByte(a.alpha)*HL+H.floatToByte(s.alpha),x=n[xc.compressedAttribute0];x(o,d,p,g,m)}function rde(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,u=i.translucencyByDistance;l(u)&&(r=u.near,s=u.nearValue,a=u.far,c=u.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)*HL+s;c=P.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[xc.compressedAttribute1];g(o,d,p,r,a)}function sde(e,t,n,i){let o=i._index,r=n[xc.scaleByDistance],s=0,a=1,c=1,u=1,f=i.scaleByDistance;l(f)&&(s=f.near,a=f.nearValue,c=f.far,u=f.farValue,(a!==1||u!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,u)}function ade(e,t,n,i){let o=i._index,r=n[xc.distanceDisplayConditionAndDisableDepthAndSplitDirection],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;l(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let u=i.disableDepthTestDistance;u*=u,u>0&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1));let f=0,d=i.splitDirection;l(d)&&(f=d),r(o,s,a,u,f)}function _Ze(e,t,n,i){ide(e,t,n,i),ode(e,t,n,i),rde(e,t,n,i),sde(e,t,n,i),ade(e,t,n,i)}function y7(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=Is._computeActualPosition(f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function gZe(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&y7(e,i,i.length,t,r,!0)):n===ne.MORPHING?y7(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&y7(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function yZe(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var xZe=[];$f.prototype.update=function(e){if(T7(this),!this.show)return;this._maxTotalPointSize=kt.maximumAliasedPointSize,gZe(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,u=e.passes,f=u.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let v=0;v<b7;++v)r[v]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=pZe(c,n,this._buffersUsage),a=this._vaf.writers;for(let v=0;v<n;++v){let D=this._pointPrimitives[v];D._dirty=!1,_Ze(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let v=xZe;v.length=0,(r[x7]||r[fZe]||r[dZe])&&v.push(ide),(r[Qfe]||r[uZe])&&v.push(ode),(r[lZe]||r[ede])&&v.push(rde),r[Jfe]&&v.push(sde),(r[tde]||r[hZe]||r[mZe])&&v.push(ade);let D=v.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 M=0;M<D;++M)v[M](this,c,a,R)}this._vaf.commit()}else{for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let M=0;M<D;++M)v[M](this,c,a,R);this._vaf.subCommit(R._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=F.IDENTITY;e.mode===ne.SCENE3D?(p=this.modelMatrix,d=se.clone(this._baseVolumeWC,this._boundingVolume)):d=se.clone(this._baseVolume2D,this._boundingVolume),yZe(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===Eo.OPAQUE||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===Eo.TRANSLUCENT||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:te.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 Ue({sources:[zL]}),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===Eo.OPAQUE_AND_TRANSLUCENT&&(x=new Ue({defines:["OPAQUE"],sources:[jy]}),this._sp=Qt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc}),x=new Ue({defines:["TRANSLUCENT"],sources:[jy]}),this._spTranslucent=Qt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc})),this._blendOption===Eo.OPAQUE&&(x=new Ue({sources:[jy]}),this._sp=Qt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc})),this._blendOption===Eo.TRANSLUCENT&&(x=new Ue({sources:[jy]}),this._spTranslucent=Qt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let b,T,C,A,E=e.commandList;if(u.render||f){let v=this._colorCommands,D=this._blendOption===Eo.OPAQUE,O=this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT;b=this._vaf.va,T=b.length,v.length=T;let R=O?T*2:T;for(A=0;A<R;++A){let M=D||O&&A%2===0;C=v[A],l(C)||(C=v[A]=new Ze),C.primitiveType=Me.POINTS,C.pass=M||!O?ve.OPAQUE:ve.TRANSLUCENT,C.owner=this;let N=O?Math.floor(A/2):A;C.boundingVolume=d,C.modelMatrix=p,C.shaderProgram=M?this._sp:this._spTranslucent,C.uniformMap=this._uniforms,C.vertexArray=b[N].va,C.renderState=M?this._rsOpaque:this._rsTranslucent,C.debugShowBoundingVolume=this.debugShowBoundingVolume,C.pickId="v_pickColor",E.push(C)}}};$f.prototype.isDestroyed=function(){return!1};$f.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(),nde(this._pointPrimitives),ue(this)};var wE=$f;var cde=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],C7=1,GL=8,jL=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!==C7)throw new Error(`Got v${o} data when expected v${C7}.`);let r=cde[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=cde.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,GL,t),this.coords=new this.ArrayType(this.data,GL+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(GL+s+a+c),this.ids=new this.IndexArrayType(this.data,GL,t),this.coords=new this.ArrayType(this.data,GL+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(C7<<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 E7(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],u=[];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],C=s[2*b+1];T>=t&&T<=i&&C>=n&&C<=o&&u.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&&u.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 u}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=[],u=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++)lde(r[2*b],r[2*b+1],t,n)<=u&&c.push(o[b]);continue}let g=p+d>>1,m=r[2*g],x=r[2*g+1];lde(m,x,t,n)<=u&&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 E7(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;ude(e,t,s,i,o,r),E7(e,t,n,i,s-1,1-r),E7(e,t,n,s+1,o,1-r)}function ude(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let u=o-i+1,f=n-i+1,d=Math.log(u),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(u-p)/u)*(f-u/2<0?-1:1),m=Math.max(i,Math.floor(n-f*p/u+g)),x=Math.min(o,Math.floor(n+(u-f)*p/u+g));ude(e,t,n,m,x,r)}let s=t[2*n+r],a=i,c=o;for(WL(e,t,i,n),t[2*o+r]>s&&WL(e,t,i,o);a<c;){for(WL(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?WL(e,t,i,c):(c++,WL(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function WL(e,t,n,i){A7(e,n,i),A7(t,2*n,2*i),A7(t,2*n+1,2*i+1)}function A7(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function lde(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function dh(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 me,this.show=y(e.show,!0)}function fde(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var bZe=new je;function dde(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=Oy.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=co.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Is.getScreenSpaceBoundingBox(e,t,o)),fde(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&mde(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=Oy.getScreenSpaceBoundingBox(s,t,bZe);fde(a,n),o=je.union(o,a,o)}return o}function TZe(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&mde(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function hde(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 mde(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function S7(e,t,n,i,o){if(!l(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===ne.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&l(a._labelCollection),u=o._clusterBillboards&&l(a.id._billboard),f=o._clusterPoints&&l(a.id._point);if(c&&(f||u))continue;let d=a.computeScreenSpacePosition(n);l(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var CZe=new je,AZe=new je,EZe=new je;function SZe(e){return function(t){if(l(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!l(i)&&!l(o)&&!l(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;l(s)?s.removeAll():s=e._clusterLabelCollection=new Cm({scene:n}),l(a)?a.removeAll():a=e._clusterBillboardCollection=new wu({scene:n}),l(c)?c.removeAll():c=e._clusterPointCollection=new wE;let u=e._pixelRange,f=e._minimumClusterSize,d=e._previousClusters,p=[],g=e._previousHeight,m=n.camera.positionCartographic.height,x=n.ellipsoid,b=n.camera.positionWC,T=new B_(x,b),C=[];e._clusterLabels&&S7(i,C,n,T,e),e._clusterBillboards&&S7(o,C,n,T,e),e._clusterPoints&&S7(r,C,n,T,e);let A,E,v,D,O,R,M,N,_,S,w,I;if(C.length>0){let L=new jL(C.length,64,Uint32Array);for(let B=0;B<C.length;++B)L.add(C[B].coord.x,C[B].coord.y);if(L.finish(),m<g)for(v=d.length,A=0;A<v;++A){let B=d[A];if(!T.isPointVisible(B.position))continue;let U=co._computeScreenSpacePosition(F.IDENTITY,B.position,h.ZERO,z.ZERO,n);if(!l(U))continue;let V=1-m/g,G=B.width=B.width*V,k=B.height=B.height*V;G=Math.max(G,B.minimumWidth),k=Math.max(k,B.minimumHeight);let W=U.x-G*.5,q=U.y-k*.5,J=U.x+G,j=U.y+k;for(O=L.range(W,q,J,j),R=O.length,S=0,_=[],E=0;E<R;++E)M=O[E],N=C[M],N.clustered||(++S,w=N.collection,I=N.index,_.push(w.get(I).id));if(S>=f)for(hde(B.position,S,_,e),p.push(B),E=0;E<R;++E)C[O[E]].clustered=!0}for(v=C.length,A=0;A<v;++A){let B=C[A];if(B.clustered)continue;B.clustered=!0,w=B.collection,I=B.index;let U=w.get(I);D=dde(U,B.coord,u,e,CZe);let V=je.clone(D,AZe);O=L.range(D.x,D.y,D.x+D.width,D.y+D.height),R=O.length;let G=h.clone(U.position);for(S=1,_=[U.id],E=0;E<R;++E)if(M=O[E],N=C[M],!N.clustered){let k=N.collection.get(N.index),W=dde(k,N.coord,u,e,EZe);h.add(k.position,G,G),je.union(V,W,V),++S,_.push(k.id)}if(S>=f){let k=h.multiplyByScalar(G,1/S,G);for(hde(k,S,_,e),p.push({position:k,width:V.width,height:V.height,minimumWidth:D.width,minimumHeight:D.height}),E=0;E<R;++E)C[O[E]].clustered=!0}else TZe(U,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}}dh.prototype._initialize=function(e){this._scene=e;let t=SZe(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(dh.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 w7(e,t,n,i){return function(o){let r=this[e];l(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(l(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),l(r)&&l(s[i]))return r.get(s[i]);l(r)||(r=this[e]=new t({scene:this._scene}));let a,c,u=this[n];u.length>0?(a=u.shift(),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 D7(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}dh.prototype.getLabel=w7("_labelCollection",Cm,"_unusedLabelIndices","labelIndex");dh.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,D7(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};dh.prototype.getBillboard=w7("_billboardCollection",wu,"_unusedBillboardIndices","billboardIndex");dh.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,D7(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};dh.prototype.getPoint=w7("_pointCollection",wE,"_unusedPointIndices","pointIndex");dh.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,D7(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function v7(e){if(!l(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function vZe(e){e.enabled||(l(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),l(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),l(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,v7(e._labelCollection),v7(e._billboardCollection),v7(e._pointCollection))}dh.prototype.update=function(e){if(!this.show)return;let t;l(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),l(this._billboardCollection)&&this._billboardCollection.length>0&&!l(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,vZe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(this._labelCollection)&&this._labelCollection.update(e),l(this._billboardCollection)&&this._billboardCollection.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};dh.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(),l(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 Ou=dh;function I7(e){this._name=e,this._clock=void 0,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._entityCollection=new $s(this),this._entityCluster=new Ou}Object.defineProperties(I7.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){Gr.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}}});I7.prototype.update=function(e){return!0};var qL=I7;var pde={};pde.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,u=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),C=b*n,A=T*n,E=b*t,v=T*t;u[p+g]=C,u[p+g+1]=A,u[p+g+2]=s,u[p+m]=E,u[p+m+1]=v,u[p+m+2]=r,p+=3,o&&(u[d++]=C,u[d++]=A,u[d++]=s,u[d++]=E,u[d++]=v,u[d++]=r)}return u};var Yb=pde;var P7=new z,wZe=new h,DZe=new h,IZe=new h,PZe=new h;function k_(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Ie.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}k_.packedLength=Ie.packedLength+5;k_.pack=function(e,t,n){return n=y(n,0),Ie.pack(e._vertexFormat,t,n),n+=Ie.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 _de=new Ie,DE={vertexFormat:_de,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};k_.unpack=function(e,t,n){t=y(t,0);let i=Ie.unpack(e,t,_de);t+=Ie.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._vertexFormat=Ie.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(DE.length=o,DE.topRadius=r,DE.bottomRadius=s,DE.slices=a,DE.offsetAttribute=c===-1?void 0:c,new k_(DE))};k_.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,u=Yb.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,M=0,N=0,_=Math.atan2(i-n,t),S=wZe;S.z=Math.sin(_);let w=Math.cos(_),I=IZe,L=DZe;for(m=0;m<r;m++){let B=m/r*P.TWO_PI,U=w*Math.cos(B),V=w*Math.sin(B);x&&(S.x=U,S.y=V,O&&(I=h.normalize(h.cross(h.UNIT_Z,S,I),I)),o.normal&&(d[R++]=S.x,d[R++]=S.y,d[R++]=S.z,d[R++]=S.x,d[R++]=S.y,d[R++]=S.z),o.tangent&&(p[M++]=I.x,p[M++]=I.y,p[M++]=I.z,p[M++]=I.x,p[M++]=I.y,p[M++]=I.z),o.bitangent&&(L=h.normalize(h.cross(S,I,L),L),g[N++]=L.x,g[N++]=L.y,g[N++]=L.z,g[N++]=L.x,g[N++]=L.y,g[N++]=L.z))}for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=-1),o.tangent&&(p[M++]=1,p[M++]=0,p[M++]=0),o.bitangent&&(g[N++]=0,g[N++]=-1,g[N++]=0);for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=1),o.tangent&&(p[M++]=1,p[M++]=0,p[M++]=0),o.bitangent&&(g[N++]=0,g[N++]=1,g[N++]=0)}let b=12*r-12,T=Ne.createTypedArray(c,b),C=0,A=0;for(m=0;m<r-1;m++)T[C++]=A,T[C++]=A+2,T[C++]=A+3,T[C++]=A,T[C++]=A+3,T[C++]=A+1,A+=2;for(T[C++]=s-2,T[C++]=0,T[C++]=1,T[C++]=s-2,T[C++]=1,T[C++]=s-1,m=1;m<r-1;m++)T[C++]=s+m+1,T[C++]=s+m,T[C++]=s;for(m=1;m<r-1;m++)T[C++]=a,T[C++]=a+m,T[C++]=a+m+1;let E=0;if(o.st){let O=Math.max(n,i);for(m=0;m<c;m++){let R=h.fromArray(u,m*3,PZe);f[E++]=(R.x+O)/(2*O),f[E++]=(R.y+O)/(2*O)}}let v=new fn;o.position&&(v.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})),o.normal&&(v.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),o.tangent&&(v.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(v.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),o.st&&(v.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),P7.x=t*.5,P7.y=Math.max(i,n);let D=new se(h.ZERO,z.magnitude(P7));if(l(e._offsetAttribute)){t=u.length;let O=e._offsetAttribute===an.NONE?0:1,R=new Uint8Array(t/3).fill(O);v.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return new at({attributes:v,indices:T,primitiveType:Me.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var R7;k_.getUnitCylinder=function(){return l(R7)||(R7=k_.createGeometry(new k_({topRadius:1,bottomRadius:1,length:1,vertexFormat:Ie.POSITION_ONLY}))),R7};var YL=k_;var O7=new z;function IE(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"}IE.packedLength=6;IE.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 Xb={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};IE.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 l(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(Xb.length=i,Xb.topRadius=o,Xb.bottomRadius=r,Xb.slices=s,Xb.numberOfVerticalLines=a,Xb.offsetAttribute=c===-1?void 0:c,new IE(Xb))};IE.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=Yb.computePositions(t,n,i,o,!1),c=o*2,u;if(r>0){let x=Math.min(r,o);u=Math.round(o/x),c+=x}let f=Ne.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+=u)f[d++]=p,f[d++]=p+o;let g=new fn;g.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),O7.x=t*.5,O7.y=Math.max(i,n);let m=new se(h.ZERO,z.magnitude(O7));if(l(e._offsetAttribute)){t=a.length;let x=e._offsetAttribute===an.NONE?0:1,b=new Uint8Array(t/3).fill(x);g.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}return new at({attributes:g,indices:f,primitiveType:Me.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var XL=IE;var gde=h.ZERO,yde=new h,RZe=new h,xde=new H;function OZe(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 Mu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new OZe(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}l(Object.create)&&(Mu.prototype=Object.create(ii.prototype),Mu.prototype.constructor=Mu);Object.defineProperties(Mu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Mu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(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 Ut){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,xde)),l(a)||(a=H.WHITE),s.color=Wt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,gde,yde))),new St({id:t,geometry:new YL(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:s})};Mu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,xde),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,gde,yde))),new St({id:t,geometry:new XL(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:r})};Mu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};Mu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.length)||!l(t.topRadius)||!l(t.bottomRadius)||ii.prototype._isHidden.call(this,e,t)};Mu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!Y.isConstant(t.slices)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.numberOfVerticalLines)};Mu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.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=Y.getValueOrUndefined(t.slices,He.MINIMUM_VALUE),i.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,He.MINIMUM_VALUE),i.offsetAttribute=n!==Ye.NONE?an.ALL:void 0};Mu.prototype._onEntityPropertyChanged=Up;Mu.DynamicGeometryUpdater=PE;function PE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(PE.prototype=Object.create(ni.prototype),PE.prototype.constructor=PE);PE.prototype._isHidden=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(e.position,n,RZe);return!l(o)||!l(i.length)||!l(i.topRadius)||!l(i.bottomRadius)||ni.prototype._isHidden.call(this,e,t,n)};PE.prototype._setOptions=function(e,t,n){let i=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),o=this._options;o.length=Y.getValueOrUndefined(t.length,n),o.topRadius=Y.getValueOrUndefined(t.topRadius,n),o.bottomRadius=Y.getValueOrUndefined(t.bottomRadius,n),o.slices=Y.getValueOrUndefined(t.slices,n),o.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,n),o.offsetAttribute=i!==Ye.NONE?an.ALL:void 0};var KL=Mu;var MZe={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Wr=Object.freeze(MZe);var LZe={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},mo=Object.freeze(LZe);var NZe={NONE:0,HOLD:1,EXTRAPOLATE:2},Lu=Object.freeze(NZe);var bde=Vo(au(),1);function FZe(e){let t=new bde.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var V_=FZe;var BZe=P.factorial;function M7(e,t,n,i,o,r){let s=0,a,c,u;if(i>0){for(c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(r.push(c),s+=M7(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,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(s*=e-n[t[c]])}return s}var jz={type:"Hermite"};jz.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};jz.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c,u,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]],C=t[m[s+r]],A;C-T<=0?(f=m[s]*i+i*r+c,A=n[f],p[c][r].push(A/BZe(r))):(A=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(A/(C-T))),b=b||A!==0}b||(x=r-1)}}for(a=0,u=0;a<=u;a++)for(r=a;r<=x;r++){let b=M7(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 kZe=[];jz.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);l(s)||(s=new Array(a));for(let T=0;T<a;T++)s[T]=0;let c=t.length,u=new Array(c*(o+1)),f;for(f=0;f<c;f++)for(let T=0;T<o+1;T++)u[f*(o+1)+T]=f;let d=u.length,p=kZe,g=VZe(p,u,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 C=M7(e,u,t,T,f,m),A=Math.floor(f*(1-f)/2)+d*f;for(let E=0;E<i;E++){let v=Math.floor(E*x),D=p[v+A];s[E+T*i]+=D*C}}return s};function VZe(e,t,n,i,o,r){let s,a,c=-1,u=t.length,f=u*(u+1)/2;for(let d=0;d<o;d++){let p=Math.floor(d*f);for(s=0;s<u;s++)a=t[s]*o*(r+1)+d,e[p+s]=i[a];for(let g=1;g<u;g++){let m=0,x=Math.floor(g*(1-g)/2)+u*g,b=!1;for(s=0;s<u-g;s++){let T=n[t[s]],C=n[t[s+g]],A,E;if(C-T<=0)a=t[s]*o*(r+1)+o*g+d,A=i[a],E=A/P.factorial(g),e[p+x+m]=E,m++;else{let v=Math.floor((g-1)*(2-g)/2)+u*(g-1);A=e[p+v+s+1]-e[p+v+s],E=A/(C-T),e[p+x+m]=E,m++}b=b||A!==0}b&&(c=Math.max(c,g))}}return c}var ZL=jz;var L7={type:"Lagrange"};L7.getRequiredDataPoints=function(e){return Math.max(e+1,2)};L7.interpolateOrderZero=function(e,t,n,i,o){l(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 u=t[r]-t[s];c*=(e-t[s])/u}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var $L=L7;var N7={type:"Linear"};N7.getRequiredDataPoints=function(e){return 2};N7.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c=t[0],u=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+u*s-c*a)/(u-c);return o};var Kb=N7;function bc(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}bc.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return l(t)||(t=new bc),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};bc.clone=function(e,t){if(l(e))return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new bc(e.clock,e.cone,e.magnitude)};bc.normalize=function(e,t){return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new bc(e.clock,e.cone,1)};bc.equals=function(e,t){return e===t||l(e)&&l(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};bc.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};bc.prototype.equals=function(e){return bc.equals(this,e)};bc.prototype.clone=function(e){return bc.clone(this,e)};bc.prototype.equalsEpsilon=function(e,t){return bc.equalsEpsilon(this,e,t)};bc.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var QL=bc;var iN=Vo(au(),1);var F7;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?F7=function(){return performance.now()}:F7=function(){return Date.now()};var xi=F7;function B7(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;l(t)?t=Z.clone(t):l(n)?t=Z.clone(n):l(i)?t=Z.addDays(i,-1,new Z):t=Z.now(),l(n)?n=Z.clone(n):n=Z.clone(t),l(i)?i=Z.clone(i):i=Z.addDays(n,1,new Z),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Wr.UNBOUNDED),this.canAnimate=y(e.canAnimate,!0),this.onTick=new me,this.onStop=new me,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=xi(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,mo.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(B7.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){Z.equals(this._currentTime,e)||(this._clockStep===mo.SYSTEM_CLOCK&&(this._clockStep=mo.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===mo.SYSTEM_CLOCK&&(this._clockStep=mo.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===mo.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=Z.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===mo.SYSTEM_CLOCK&&(this._clockStep=mo.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});B7.prototype.tick=function(){let e=xi(),t=Z.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===mo.SYSTEM_CLOCK)t=Z.now(t);else{let i=this._multiplier;if(n===mo.TICK_DEPENDENT)t=Z.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=Z.addSeconds(t,i*(a/1e3),t)}let o=this.clockRange,r=this.startTime,s=this.stopTime;if(o===Wr.CLAMPED)Z.lessThan(t,r)?t=Z.clone(r,t):Z.greaterThan(t,s)&&(t=Z.clone(s,t),this.onStop.raiseEvent(this));else if(o===Wr.LOOP_STOP)for(Z.lessThan(t,r)&&(t=Z.clone(r,t));Z.greaterThan(t,s);)t=Z.addSeconds(r,Z.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var hh=B7;function Zb(){this._definitionChanged=new me,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(Zb.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:Pl("startTime"),stopTime:Pl("stopTime"),currentTime:Pl("currentTime"),clockRange:Pl("clockRange"),clockStep:Pl("clockStep"),multiplier:Pl("multiplier")});Zb.prototype.clone=function(e){return l(e)||(e=new Zb),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};Zb.prototype.equals=function(e){return this===e||l(e)&&Z.equals(this.startTime,e.startTime)&&Z.equals(this.stopTime,e.stopTime)&&Z.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};Zb.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)};Zb.prototype.getValue=function(e){return l(e)||(e=new hh),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 mh=Zb;var UZe=H.WHITE,zZe=.1,HZe=new z(8,8),GZe=new z(0,0),WZe=new z(1,1);function RE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(RE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._cellAlpha)&&Y.isConstant(this._lineCount)&&Y.isConstant(this._lineThickness)&&Y.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),cellAlpha:le("cellAlpha"),lineCount:le("lineCount"),lineThickness:le("lineThickness"),lineOffset:le("lineOffset")});RE.prototype.getType=function(e){return"Grid"};var jZe=new Z;RE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(jZe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,UZe,t.color),t.cellAlpha=Y.getValueOrDefault(this._cellAlpha,e,zZe),t.lineCount=Y.getValueOrClonedDefault(this._lineCount,e,HZe,t.lineCount),t.lineThickness=Y.getValueOrClonedDefault(this._lineThickness,e,WZe,t.lineThickness),t.lineOffset=Y.getValueOrClonedDefault(this._lineOffset,e,GZe,t.lineOffset),t};RE.prototype.equals=function(e){return this===e||e instanceof RE&&Y.equals(this._color,e._color)&&Y.equals(this._cellAlpha,e._cellAlpha)&&Y.equals(this._lineCount,e._lineCount)&&Y.equals(this._lineThickness,e._lineThickness)&&Y.equals(this._lineOffset,e._lineOffset)};var OE=RE;function ME(e){this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(ME.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color")});ME.prototype.getType=function(e){return"PolylineArrow"};var qZe=new Z;ME.prototype.getValue=function(e,t){return l(e)||(e=Z.now(qZe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};ME.prototype.equals=function(e){return this===e||e instanceof ME&&Y.equals(this._color,e._color)};var LE=ME;var YZe=H.WHITE,XZe=H.TRANSPARENT,KZe=16,ZZe=255;function NE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(NE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._gapColor)&&Y.isConstant(this._dashLength)&&Y.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),gapColor:le("gapColor"),dashLength:le("dashLength"),dashPattern:le("dashPattern")});NE.prototype.getType=function(e){return"PolylineDash"};var $Ze=new Z;NE.prototype.getValue=function(e,t){return l(e)||(e=Z.now($Ze)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,YZe,t.color),t.gapColor=Y.getValueOrClonedDefault(this._gapColor,e,XZe,t.gapColor),t.dashLength=Y.getValueOrDefault(this._dashLength,e,KZe,t.dashLength),t.dashPattern=Y.getValueOrDefault(this._dashPattern,e,ZZe,t.dashPattern),t};NE.prototype.equals=function(e){return this===e||e instanceof NE&&Y.equals(this._color,e._color)&&Y.equals(this._gapColor,e._gapColor)&&Y.equals(this._dashLength,e._dashLength)&&Y.equals(this._dashPattern,e._dashPattern)};var FE=NE;var QZe=H.WHITE,JZe=.25,e$e=1;function BE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(BE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),glowPower:le("glowPower"),taperPower:le("taperPower")});BE.prototype.getType=function(e){return"PolylineGlow"};var t$e=new Z;BE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(t$e)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,QZe,t.color),t.glowPower=Y.getValueOrDefault(this._glowPower,e,JZe,t.glowPower),t.taperPower=Y.getValueOrDefault(this._taperPower,e,e$e,t.taperPower),t};BE.prototype.equals=function(e){return this===e||e instanceof BE&&Y.equals(this._color,e._color)&&Y.equals(this._glowPower,e._glowPower)&&Y.equals(this._taperPower,e._taperPower)};var kE=BE;var n$e=H.WHITE,i$e=H.BLACK,o$e=1;function VE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(VE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._outlineColor)&&Y.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth")});VE.prototype.getType=function(e){return"PolylineOutline"};var r$e=new Z;VE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(r$e)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,n$e,t.color),t.outlineColor=Y.getValueOrClonedDefault(this._outlineColor,e,i$e,t.outlineColor),t.outlineWidth=Y.getValueOrDefault(this._outlineWidth,e,o$e),t};VE.prototype.equals=function(e){return this===e||e instanceof VE&&Y.equals(this._color,e._color)&&Y.equals(this._outlineColor,e._outlineColor)&&Y.equals(this._outlineWidth,e._outlineWidth)};var qy=VE;function U_(e,t){this._value=void 0,this._definitionChanged=new me,this._eventHelper=new fr,this._referenceFrame=y(t,Vi.FIXED),this.setValue(e)}Object.defineProperties(U_.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!Y.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var s$e=new Z;U_.prototype.getValue=function(e,t){return l(e)||(e=Z.now(s$e)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};U_.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!l(i))return;let o=i.length;l(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);l(c)&&(n[s]=c,s++),r++}return n.length=s,n};U_.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,U_.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};U_.prototype.equals=function(e){return this===e||e instanceof U_&&this._referenceFrame===e._referenceFrame&&Y.arrayEquals(this._value,e._value)};U_.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var z_=U_;function Yy(e){this._value=void 0,this._definitionChanged=new me,this._eventHelper=new fr,this.setValue(e)}Object.defineProperties(Yy.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!Y.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});var a$e=new Z;Yy.prototype.getValue=function(e,t){l(e)||(e=Z.now(a$e));let n=this._value;if(!l(n))return;let i=n.length;l(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);l(a)&&(t[r]=a,r++),o++}return t.length=r,t};Yy.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,Yy.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};Yy.prototype.equals=function(e){return this===e||e instanceof Yy&&Y.arrayEquals(this._value,e._value)};Yy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var UE=Yy;function $b(e){let t=e._targetProperty;if(!l(t)){let n=e._targetEntity;if(!l(n)){if(n=e._targetCollection.getById(e._targetId),!l(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(Nu.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&l(t);++o)t=t[i[o]];e._targetProperty=t}return t}function Nu(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new me,e.collectionChanged.addEventListener(Nu.prototype._onCollectionChanged,this)}Object.defineProperties(Nu.prototype,{isConstant:{get:function(){return Y.isConstant($b(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=$b(this);return l(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 $b(this)}}});Nu.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 Nu(e,n,i)};var c$e=new Z;Nu.prototype.getValue=function(e,t){let n=$b(this);return l(e)||(e=Z.now(c$e)),l(n)?n.getValue(e,t):void 0};Nu.prototype.getValueInReferenceFrame=function(e,t,n){let i=$b(this);return l(i)?i.getValueInReferenceFrame(e,t,n):void 0};Nu.prototype.getType=function(e){let t=$b(this);return l(t)?t.getType(e):void 0};Nu.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};Nu.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){l(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};Nu.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;l(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(Nu.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):l(i)||(i=$b(this),l(i)&&this._definitionChanged.raiseEvent(this))};var H_=Nu;var l$e={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){l(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}},Qf=l$e;var Tde={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 Cde(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 Ade(e,t){return e instanceof Z?e:typeof e=="string"?Z.fromIso8601(e):Z.addSeconds(t,e,new Z)}var k7=[],V7=[];function qz(e,t,n,i,o){let r=0,s,a,c,u,f,d;for(;r<i.length;){f=Ade(i[r],e),c=Po(t,f,Z.compare);let p=0,g=0;if(c<0){for(c=~c,u=c*o,a=void 0,d=t[c];r<i.length&&(f=Ade(i[r],e),!(l(a)&&Z.compare(a,f)>=0||l(d)&&Z.compare(f,d)>=0));){for(k7[p++]=f,r=r+1,s=0;s<o;s++)V7[g++]=i[r],r=r+1;a=f}p>0&&(V7.length=g,Cde(n,u,V7),k7.length=p,Cde(t,c,k7))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function ph(e,t){let n=e;n===Number&&(n=Tde);let i=n.packedLength,o=y(n.packedInterpolationLength,i),r=0,s;if(l(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let u=t[c];u===Number&&(u=Tde);let f=u.packedLength;i+=f,o+=y(u.packedInterpolationLength,f),s[c]=u}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=Kb,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 me,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=r,this._forwardExtrapolationType=Lu.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=Lu.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(ph.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))}}});var u$e=new Z;ph.prototype.getValue=function(e,t){l(e)||(e=Z.now(u$e));let n=this._times,i=n.length;if(i===0)return;let o,r=this._innerType,s=this._values,a=Po(n,e,Z.compare);if(a<0){if(a=~a,a===0){let E=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===Lu.NONE||o!==0&&Z.secondsDifference(E,e)>o)return;if(this._backwardExtrapolationType===Lu.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let E=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===Lu.NONE||o!==0&&Z.secondsDifference(e,E)>o)return;if(this._forwardExtrapolationType===Lu.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,u=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let E=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);E!==this._numberOfPoints&&(this._numberOfPoints=E,c.length=E,u.length=E*d)}let g=this._numberOfPoints-1;if(g<1)return;let m=0,x=i-1;if(x-m+1>=g+1){let E=a-(g/2|0)-1;E<m&&(E=m);let v=E+g;v>x&&(v=x,E=v-g,E<m&&(E=m)),m=E,x=v}let T=x-m+1;for(let E=0;E<T;++E)c[E]=Z.secondsDifference(n[m+E],n[x]);if(l(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,m,x,u);else{let E=0,v=this._packedLength,D=m*v,O=(x+1)*v;for(;D<O;)u[E]=s[D],D++,E++}let C=Z.secondsDifference(e,n[x]),A;if(p===0||!l(f.interpolate))A=f.interpolateOrderZero(C,c,u,d,this._interpolationResult);else{let E=Math.floor(d/(p+1));A=f.interpolate(C,c,u,E,p,p,this._interpolationResult)}return l(r.unpackInterpolationResult)?r.unpackInterpolationResult(A,s,m,x,t):r.unpack(A,0,t)}return r.unpack(s,a*this._packedLength,t)};ph.prototype.setInterpolationOptions=function(e){if(!l(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;l(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),l(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};ph.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=l(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)}qz(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};ph.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=l(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 u=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(u[d],a,a.length)}qz(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};ph.prototype.addSamplesPackedArray=function(e,t){qz(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};ph.prototype.removeSample=function(e){let t=Po(this._times,e,Z.compare);return t<0?!1:(Ede(this,t,1),!0)};function Ede(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)}ph.prototype.removeSamples=function(e){let t=this._times,n=Po(t,e.start,Z.compare);n<0?n=~n:e.isStartIncluded||++n;let i=Po(t,e.stop,Z.compare);i<0?i=~i:e.isStopIncluded&&++i,Ede(this,n,i-n)};ph.prototype.equals=function(e){if(this===e)return!0;if(!l(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=l(t),i=e._derivativeTypes,o=l(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(!Z.equals(a[r],c[r]))return!1;let u=this._values,f=e._values;for(s=u.length,r=0;r<s;r++)if(u[r]!==f[r])return!1;return!0};ph._mergeNewSamples=qz;var Fu=ph;function Jf(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 Fu(h,n),this._definitionChanged=new me,this._referenceFrame=y(e,Vi.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(Jf.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}}});var f$e=new Z;Jf.prototype.getValue=function(e,t){return l(e)||(e=Z.now(f$e)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Jf.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),l(n))return Nd.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};Jf.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};Jf.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};Jf.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};Jf.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};Jf.prototype.removeSample=function(e){return this._property.removeSample(e)};Jf.prototype.removeSamples=function(e){this._property.removeSamples(e)};Jf.prototype.equals=function(e){return this===e||e instanceof Jf&&Y.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var _a=Jf;var d$e={HORIZONTAL:0,VERTICAL:1},_h=Object.freeze(d$e);var h$e=_h.HORIZONTAL,m$e=H.WHITE,p$e=H.BLACK,_$e=0,g$e=1;function zE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,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(zE.prototype,{isConstant:{get:function(){return Y.isConstant(this._orientation)&&Y.isConstant(this._evenColor)&&Y.isConstant(this._oddColor)&&Y.isConstant(this._offset)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:le("orientation"),evenColor:le("evenColor"),oddColor:le("oddColor"),offset:le("offset"),repeat:le("repeat")});zE.prototype.getType=function(e){return"Stripe"};var y$e=new Z;zE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(y$e)),l(t)||(t={}),t.horizontal=Y.getValueOrDefault(this._orientation,e,h$e)===_h.HORIZONTAL,t.evenColor=Y.getValueOrClonedDefault(this._evenColor,e,m$e,t.evenColor),t.oddColor=Y.getValueOrClonedDefault(this._oddColor,e,p$e,t.oddColor),t.offset=Y.getValueOrDefault(this._offset,e,_$e),t.repeat=Y.getValueOrDefault(this._repeat,e,g$e),t};zE.prototype.equals=function(e){return this===e||e instanceof zE&&Y.equals(this._orientation,e._orientation)&&Y.equals(this._evenColor,e._evenColor)&&Y.equals(this._oddColor,e._oddColor)&&Y.equals(this._offset,e._offset)&&Y.equals(this._repeat,e._repeat)};var HE=zE;function Xy(e){this._definitionChanged=new me,this._intervals=new Hr,this._intervals.changedEvent.addEventListener(Xy.prototype._intervalsChanged,this),this._referenceFrame=y(e,Vi.FIXED)}Object.defineProperties(Xy.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}}});var x$e=new Z;Xy.prototype.getValue=function(e,t){return l(e)||(e=Z.now(x$e)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Xy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(l(i))return Nd.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};Xy.prototype.equals=function(e){return this===e||e instanceof Xy&&this._intervals.equals(e._intervals,Y.equals)&&this._referenceFrame===e._referenceFrame};Xy.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var G_=Xy;function Qb(){this._definitionChanged=new me,this._intervals=new Hr,this._intervals.changedEvent.addEventListener(Qb.prototype._intervalsChanged,this)}Object.defineProperties(Qb.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var b$e=new Z;Qb.prototype.getValue=function(e,t){l(e)||(e=Z.now(b$e));let n=this._intervals.findDataForIntervalContainingDate(e);return l(n)&&typeof n.clone=="function"?n.clone(t):n};Qb.prototype.equals=function(e){return this===e||e instanceof Qb&&this._intervals.equals(e._intervals,Y.equals)};Qb.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var W_=Qb;function GE(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new me,this._normalize=y(t,!0),this.position=e}Object.defineProperties(GE.prototype,{isConstant:{get:function(){return Y.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(l(t)&&this._subscription(),this._position=e,l(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 T$e=new h,Sde=new h,vde=new Z,C$e=new Z,U7=1/60;GE.prototype.getValue=function(e,t){return this._getValue(e,t)};GE.prototype._getValue=function(e,t,n){l(e)||(e=Z.now(C$e)),l(t)||(t=new h);let i=this._position;if(Y.isConstant(i))return this._normalize?void 0:h.clone(h.ZERO,t);let o=i.getValue(e,T$e),r=i.getValue(Z.addSeconds(e,U7,vde),Sde);if(!l(o)||!l(r)&&(r=o,o=i.getValue(Z.addSeconds(e,-U7,vde),Sde),!l(o)))return;if(h.equals(o,r))return this._normalize?void 0:h.clone(h.ZERO,t);l(n)&&o.clone(n);let s=h.subtract(r,o,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,U7,t)};GE.prototype.equals=function(e){return this===e||e instanceof GE&&Y.equals(this._position,e._position)};var Jb=GE;function JL(e,t){this._velocityVectorProperty=new Jb(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new me,this.ellipsoid=y(t,ee.default);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(JL.prototype,{isConstant:{get:function(){return Y.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 wde=new h,A$e=new h,Dde=new $,E$e=new Z;JL.prototype.getValue=function(e,t){l(e)||(e=Z.now(E$e));let n=this._velocityVectorProperty._getValue(e,A$e,wde);if(l(n))return Mt.rotationMatrixFromPositionVelocity(wde,n,this._ellipsoid,Dde),Oe.fromRotationMatrix(Dde,t)};JL.prototype.equals=function(e){return this===e||e instanceof JL&&Y.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var eN=JL;var j_={COMPLETE:0,BELOW_ELLIPSOID_HORIZON:1,ABOVE_ELLIPSOID_HORIZON:2};j_.validate=function(e){return e===j_.COMPLETE||e===j_.BELOW_ELLIPSOID_HORIZON||e===j_.ABOVE_ELLIPSOID_HORIZON};j_.toString=function(e){switch(e){case j_.COMPLETE:return"COMPLETE";case j_.BELOW_ELLIPSOID_HORIZON:return"BELOW_ELLIPSOID_HORIZON";case j_.ABOVE_ELLIPSOID_HORIZON:return"ABOVE_ELLIPSOID_HORIZON";default:throw new he("SensorVolumePortionToDisplay value is not valid and cannot be converted to a String.")}};var WE=j_;function Ky(){}Ky.packedLength=h.packedLength;Ky.unpack=h.unpack;Ky.pack=h.pack;var z7;function tN(e,t){return t[0]==="#"&&(t=z7+t),H_.fromString(e,t)}function Ide(e,t,n){if(l(n.reference))return tN(t,n.reference);if(l(n.velocityReference)){let i=tN(t,n.velocityReference);switch(e){case h:case Ky:return new Jb(i,e===Ky);case Oe:return new eN(i)}}throw new ce(`${JSON.stringify(n)} is not valid CZML.`)}function S$e(e,t){return new Vd(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var Gi=new h,il=new QL,Tc=new fe,eT=new Cn,Yz=new Oe;function v$e(e){let t=e.rgbaf;if(l(t))return t;let n=e.rgba;if(!l(n))return;let i=n.length;if(i===H.packedLength)return[H.byteToFloat(n[0]),H.byteToFloat(n[1]),H.byteToFloat(n[2]),H.byteToFloat(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=H.byteToFloat(n[o+1]),t[o+2]=H.byteToFloat(n[o+2]),t[o+3]=H.byteToFloat(n[o+3]),t[o+4]=H.byteToFloat(n[o+4]);return t}function Pde(e,t){let n=y(e.uri,e);return l(t)?t.getDerivedResource({url:n}):we.createIfNeeded(n)}function w$e(e){let t=e.wsen;if(l(t))return t;let n=e.wsenDegrees;if(!l(n))return;let i=n.length;if(i===re.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 D$e(e){let t=e.length;if(il.magnitude=1,t===2)return il.clock=e[0],il.cone=e[1],h.fromSpherical(il,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],il.clock=e[i+1],il.cone=e[i+2],h.fromSpherical(il,Gi),n[o+1]=Gi.x,n[o+2]=Gi.y,n[o+3]=Gi.z;return n}function I$e(e){let t=e.length;if(t===3)return il.clock=e[0],il.cone=e[1],il.magnitude=e[2],h.fromSpherical(il,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],il.clock=e[i+1],il.cone=e[i+2],il.magnitude=e[i+3],h.fromSpherical(il,Gi),n[i+1]=Gi.x,n[i+2]=Gi.y,n[i+3]=Gi.z;return n}function P$e(e){let t=e.length;if(t===3)return Tc.longitude=e[0],Tc.latitude=e[1],Tc.height=e[2],ee.default.cartographicToCartesian(Tc,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Tc.longitude=e[i+1],Tc.latitude=e[i+2],Tc.height=e[i+3],ee.default.cartographicToCartesian(Tc,Gi),n[i+1]=Gi.x,n[i+2]=Gi.y,n[i+3]=Gi.z;return n}function R$e(e){let t=e.length;if(t===3)return Tc.longitude=P.toRadians(e[0]),Tc.latitude=P.toRadians(e[1]),Tc.height=e[2],ee.default.cartographicToCartesian(Tc,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Tc.longitude=P.toRadians(e[i+1]),Tc.latitude=P.toRadians(e[i+2]),Tc.height=e[i+3],ee.default.cartographicToCartesian(Tc,Gi),n[i+1]=Gi.x,n[i+2]=Gi.y,n[i+3]=Gi.z;return n}function H7(e){let t=e.cartesian;if(l(t))return t;let n=e.cartesianVelocity;if(l(n))return n;let i=e.unitCartesian;if(l(i))return i;let o=e.unitSpherical;if(l(o))return D$e(o);let r=e.spherical;if(l(r))return I$e(r);let s=e.cartographicRadians;if(l(s))return P$e(s);let a=e.cartographicDegrees;if(l(a))return R$e(a);throw new ce(`${JSON.stringify(e)} is not a valid CZML interval.`)}function Rde(e,t){h.unpack(e,t,Gi),h.normalize(Gi,Gi),h.pack(Gi,e,t)}function O$e(e){let t=H7(e);if(t.length===3)return Rde(t,0),t;for(let n=1;n<t.length;n+=4)Rde(t,n);return t}function Ode(e,t){Oe.unpack(e,t,Yz),Oe.normalize(Yz,Yz),Oe.pack(Yz,e,t)}function M$e(e){let t=e.unitQuaternion;if(l(t)){if(t.length===4)return Ode(t,0),t;for(let n=1;n<t.length;n+=5)Ode(t,n)}return t}function Mde(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")?je:e.hasOwnProperty("cartesian2")?z:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?Ky:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?H:e.hasOwnProperty("arcType")?Jt:e.hasOwnProperty("classificationType")?Vn:e.hasOwnProperty("colorBlendMode")?dc:e.hasOwnProperty("cornerType")?Pi:e.hasOwnProperty("heightReference")?Ye:e.hasOwnProperty("horizontalOrigin")?_i:e.hasOwnProperty("date")?Z:e.hasOwnProperty("labelStyle")?Wo:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Bt:e.hasOwnProperty("distanceDisplayCondition")?Lt:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Oe:e.hasOwnProperty("shadowMode")?yn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?_h:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?re:e.hasOwnProperty("uri")?iN.default:e.hasOwnProperty("verticalOrigin")?Rn:Object}function L$e(e,t,n){switch(e){case Jt:return Jt[y(t.arcType,t)];case Array:return t.array;case Boolean:return y(t.boolean,t);case je:return t.boundingRectangle;case z:return t.cartesian2;case h:return H7(t);case Ky:return O$e(t);case H:return v$e(t);case Vn:return Vn[y(t.classificationType,t)];case dc:return dc[y(t.colorBlendMode,t)];case Pi:return Pi[y(t.cornerType,t)];case Ye:return Ye[y(t.heightReference,t)];case _i:return _i[y(t.horizontalOrigin,t)];case Image:return Pde(t,n);case Z:return Z.fromIso8601(y(t.date,t));case Wo:return Wo[y(t.labelStyle,t)];case Number:return y(t.number,t);case Bt:return t.nearFarScalar;case Lt:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Oe:return M$e(t);case Qf:return y(t.number,t);case WE:return WE[y(t.portionToDisplay,t)];case yn:return yn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case _h:return _h[y(t.stripeOrientation,t)];case re:return w$e(t);case iN.default:return Pde(t,n);case Rn:return Rn[y(t.verticalOrigin,t)];default:throw new ce(`Unknown CzmlDataSource interval type: ${e}`)}}var N$e={HERMITE:ZL,LAGRANGE:$L,LINEAR:Kb};function Xz(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(l(n)||l(i))&&t.setInterpolationOptions({interpolationAlgorithm:N$e[n],interpolationDegree:i});let o=e.forwardExtrapolationType;l(o)&&(t.forwardExtrapolationType=Lu[o]);let r=e.forwardExtrapolationDuration;l(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;l(s)&&(t.backwardExtrapolationType=Lu[s]);let a=e.backwardExtrapolationDuration;l(a)&&(t.backwardExtrapolationDuration=a)}var Lde={iso8601:void 0};function dr(e){if(l(e))return Lde.iso8601=e,Cn.fromIso8601(Lde)}function G7(e){let t=He.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Nde(e){let t=new yc;return t.intervals.addInterval(G7(e)),t}function Fde(e){let t=new ma(e.referenceFrame);return t.intervals.addInterval(G7(e)),t}function Kz(e,t,n,i,o,r,s){let a=dr(i.interval);l(o)&&(l(a)?a=Cn.intersect(a,o,eT):a=o);let c,u,f,d=!l(i.reference)&&!l(i.velocityReference),p=l(a)&&!a.equals(He.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Yde(t[n],a)}let g=!1;if(d){if(u=L$e(e,i,r),!l(u))return;c=y(e.packedLength,1),f=y(u.length,1),g=!l(i.array)&&typeof u!="string"&&f>c&&e!==Object}let m=typeof e.unpack=="function"&&e!==Qf;if(!g&&!p){d?t[n]=new Kn(m?e.unpack(u,0):u):t[n]=Ide(e,s,i);return}let x=t[n],b,T=i.epoch;if(l(T)&&(b=Z.fromIso8601(T)),g&&!p){x instanceof Fu||(t[n]=x=new Fu(e)),x.addSamplesPackedArray(u,b),Xz(i,x);return}let C;if(!g&&p){a=a.clone(),d?a.data=m?e.unpack(u,0):u:a.data=Ide(e,s,i),l(x)||(t[n]=x=d?new W_:new yc),d&&x instanceof W_?x.intervals.addInterval(a):x instanceof yc?(d&&(a.data=new Kn(a.data)),x.intervals.addInterval(a)):(t[n]=x=Nde(x),d&&(a.data=new Kn(a.data)),x.intervals.addInterval(a));return}l(x)||(t[n]=x=new yc),x instanceof yc||(t[n]=x=Nde(x));let A=x.intervals;C=A.findInterval(a),(!l(C)||!(C.data instanceof Fu))&&(C=a.clone(),C.data=new Fu(e),A.addInterval(C)),C.data.addSamplesPackedArray(u,b),Xz(i,C.data)}function Yde(e,t){if(e instanceof Fu){e.removeSamples(t);return}else if(e instanceof W_){e.intervals.removeInterval(t);return}else if(e instanceof yc){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Cn.intersect(n.get(i),t,eT);o.isEmpty||Yde(o.data,t)}n.removeInterval(t);return}}function ge(e,t,n,i,o,r,s){if(l(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)Kz(e,t,n,i[a],o,r,s);else Kz(e,t,n,i,o,r,s)}function Bde(e,t,n,i,o,r){let s=dr(n.interval);l(i)&&(l(s)?s=Cn.intersect(s,i,eT):s=i);let a=l(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),u,f,d=!l(n.reference),p=l(s)&&!s.equals(He.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return Xde(e[t],s)}let g,m=!1;if(d&&(l(n.referenceFrame)&&(g=Vi[n.referenceFrame]),g=y(g,Vi.FIXED),u=H7(n),f=y(u.length,1),m=f>c),!m&&!p){d?e[t]=new Gc(h.unpack(u),g):e[t]=tN(r,n.reference);return}let x=e[t],b,T=n.epoch;if(l(T)&&(b=Z.fromIso8601(T)),m&&!p){(!(x instanceof _a)||l(g)&&x.referenceFrame!==g)&&(e[t]=x=new _a(g,a)),x.addSamplesPackedArray(u,b),Xz(n,x);return}let C;if(!m&&p){s=s.clone(),d?s.data=h.unpack(u):s.data=tN(r,n.reference),l(x)||(d?x=new G_(g):x=new ma(g),e[t]=x),d&&x instanceof G_&&l(g)&&x.referenceFrame===g?x.intervals.addInterval(s):x instanceof ma?(d&&(s.data=new Gc(s.data,g)),x.intervals.addInterval(s)):(e[t]=x=Fde(x),d&&(s.data=new Gc(s.data,g)),x.intervals.addInterval(s));return}l(x)?x instanceof ma||(e[t]=x=Fde(x)):e[t]=x=new ma(g);let A=x.intervals;C=A.findInterval(s),(!l(C)||!(C.data instanceof _a)||l(g)&&C.data.referenceFrame!==g)&&(C=s.clone(),C.data=new _a(g,a),A.addInterval(C)),C.data.addSamplesPackedArray(u,b),Xz(n,C.data)}function Xde(e,t){if(e instanceof _a){e.removeSamples(t);return}else if(e instanceof G_){e.intervals.removeInterval(t);return}else if(e instanceof ma){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Cn.intersect(n.get(i),t,eT);o.isEmpty||Xde(o.data,t)}n.removeInterval(t);return}}function Kde(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Bde(e,t,n[s],i,o,r);else Bde(e,t,n,i,o,r)}function kde(e,t,n,i){l(n.references)?Zz(e,t,n.references,n.interval,i,UE,yc):(l(n.cartesian2)?n.array=z.unpackArray(n.cartesian2):l(n.cartesian)&&(n.array=z.unpackArray(n.cartesian)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i))}function Vde(e,t,n,i,o,r){let s=dr(n.interval);l(i)&&(l(s)?s=Cn.intersect(s,i,eT):s=i);let a=e[t],c,u;if(l(s)){a instanceof CE||(a=new CE,e[t]=a);let d=a.intervals;u=d.findInterval({start:s.start,stop:s.stop}),l(u)?c=u.data:(u=s.clone(),d.addInterval(u))}else c=a;let f;l(n.solidColor)?(c instanceof Ut||(c=new Ut),f=n.solidColor,ge(H,c,"color",f.color,void 0,void 0,r)):l(n.grid)?(c instanceof OE||(c=new OE),f=n.grid,ge(H,c,"color",f.color,void 0,o,r),ge(Number,c,"cellAlpha",f.cellAlpha,void 0,o,r),ge(z,c,"lineCount",f.lineCount,void 0,o,r),ge(z,c,"lineThickness",f.lineThickness,void 0,o,r),ge(z,c,"lineOffset",f.lineOffset,void 0,o,r)):l(n.image)?(c instanceof Yg||(c=new Yg),f=n.image,ge(Image,c,"image",f.image,void 0,o,r),ge(z,c,"repeat",f.repeat,void 0,o,r),ge(H,c,"color",f.color,void 0,o,r),ge(Boolean,c,"transparent",f.transparent,void 0,o,r)):l(n.stripe)?(c instanceof HE||(c=new HE),f=n.stripe,ge(_h,c,"orientation",f.orientation,void 0,o,r),ge(H,c,"evenColor",f.evenColor,void 0,o,r),ge(H,c,"oddColor",f.oddColor,void 0,o,r),ge(Number,c,"offset",f.offset,void 0,o,r),ge(Number,c,"repeat",f.repeat,void 0,o,r)):l(n.polylineOutline)?(c instanceof qy||(c=new qy),f=n.polylineOutline,ge(H,c,"color",f.color,void 0,o,r),ge(H,c,"outlineColor",f.outlineColor,void 0,o,r),ge(Number,c,"outlineWidth",f.outlineWidth,void 0,o,r)):l(n.polylineGlow)?(c instanceof kE||(c=new kE),f=n.polylineGlow,ge(H,c,"color",f.color,void 0,o,r),ge(Number,c,"glowPower",f.glowPower,void 0,o,r),ge(Number,c,"taperPower",f.taperPower,void 0,o,r)):l(n.polylineArrow)?(c instanceof LE||(c=new LE),f=n.polylineArrow,ge(H,c,"color",f.color,void 0,void 0,r)):l(n.polylineDash)?(c instanceof FE||(c=new FE),f=n.polylineDash,ge(H,c,"color",f.color,void 0,void 0,r),ge(H,c,"gapColor",f.gapColor,void 0,void 0,r),ge(Number,c,"dashLength",f.dashLength,void 0,o,r),ge(Number,c,"dashPattern",f.dashPattern,void 0,o,r)):l(n.checkerboard)&&(c instanceof bE||(c=new bE),f=n.checkerboard,ge(H,c,"evenColor",f.evenColor,void 0,o,r),ge(H,c,"oddColor",f.oddColor,void 0,o,r),ge(z,c,"repeat",f.repeat,void 0,o,r)),l(u)?u.data=c:e[t]=c}function Bu(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Vde(e,t,n[s],i,o,r);else Vde(e,t,n,i,o,r)}function F$e(e,t,n,i){let o=t.name;l(o)&&(e.name=t.name)}function B$e(e,t,n,i){let o=t.description;l(o)&&ge(String,e,"description",o,void 0,i,n)}function k$e(e,t,n,i){let o=t.position;l(o)&&Kde(e,"position",o,void 0,i,n)}function V$e(e,t,n,i){let o=t.viewFrom;l(o)&&ge(h,e,"viewFrom",o,void 0,i,n)}function U$e(e,t,n,i){let o=t.orientation;l(o)&&ge(Oe,e,"orientation",o,void 0,i,n)}function z$e(e,t,n,i){let o=t.properties;if(l(o)){l(e.properties)||(e.properties=new Rl);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)Kz(Mde(s[a]),e.properties,r,s[a],void 0,i,n);else Kz(Mde(s),e.properties,r,s,void 0,i,n)}}}function Zz(e,t,n,i,o,r,s){let a=n.map(function(c){return tN(o,c)});if(l(i)){i=dr(i);let c=e[t];if(!(c instanceof s)){let u=new s;u.intervals.addInterval(G7(c)),e[t]=c=u}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function Ude(e,t,n,i){let o=n.references;l(o)?Zz(e,t,o,n.interval,i,UE,yc):ge(Array,e,t,n,void 0,void 0,i)}function zde(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Ude(e,t,n[o],i);else Ude(e,t,n,i)}function Hde(e,t,n,i){let o=n.references;l(o)?Zz(e,t,o,n.interval,i,z_,ma):(l(n.cartesian)?n.array=h.unpackArray(n.cartesian):l(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians,ee.default):l(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees,ee.default)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i))}function oN(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Hde(e,t,n[o],i);else Hde(e,t,n,i)}function H$e(e){return h.unpackArray(e)}function G$e(e){return h.fromRadiansArrayHeights(e,ee.default)}function W$e(e){return h.fromDegreesArrayHeights(e,ee.default)}function Gde(e,t,n,i){let o=n.references;if(l(o)){let r=o.map(function(s){let a={};return Zz(a,"positions",s,n.interval,i,z_,ma),a.positions});e[t]=new z_(r)}else l(n.cartesian)?n.array=n.cartesian.map(H$e):l(n.cartographicRadians)?n.array=n.cartographicRadians.map(G$e):l(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(W$e)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i)}function j$e(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Gde(e,t,n[o],i);else Gde(e,t,n,i)}function q$e(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)kde(e,t,n[o],i);else kde(e,t,n,i)}function Y$e(e,t,n,i){let o=t.availability;if(!l(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)l(r)||(r=new Hr),r.addInterval(dr(o[s]));else r=new Hr,r.addInterval(dr(o));e.availability=r}function X$e(e,t,n,i,o){l(t)&&ge(Ky,e,"alignedAxis",t,n,i,o)}function K$e(e,t,n,i){let o=t.billboard;if(!l(o))return;let r=dr(o.interval),s=e.billboard;l(s)||(e.billboard=s=new oc),ge(Boolean,s,"show",o.show,r,i,n),ge(Image,s,"image",o.image,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(z,s,"pixelOffset",o.pixelOffset,r,i,n),ge(h,s,"eyeOffset",o.eyeOffset,r,i,n),ge(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ge(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"color",o.color,r,i,n),ge(Qf,s,"rotation",o.rotation,r,i,n),X$e(s,o.alignedAxis,r,i,n),ge(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Bt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ge(je,s,"imageSubRegion",o.imageSubRegion,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function Z$e(e,t,n,i){let o=t.box;if(!l(o))return;let r=dr(o.interval),s=e.box;l(s)||(e.box=s=new Ox),ge(Boolean,s,"show",o.show,r,i,n),ge(h,s,"dimensions",o.dimensions,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function $$e(e,t,n,i){let o=t.corridor;if(!l(o))return;let r=dr(o.interval),s=e.corridor;l(s)||(e.corridor=s=new Lx),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"positions",o.positions,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Pi,s,"cornerType",o.cornerType,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function Q$e(e,t,n,i){let o=t.cylinder;if(!l(o))return;let r=dr(o.interval),s=e.cylinder;l(s)||(e.cylinder=s=new Nx),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"length",o.length,r,i,n),ge(Number,s,"topRadius",o.topRadius,r,i,n),ge(Number,s,"bottomRadius",o.bottomRadius,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ge(Number,s,"slices",o.slices,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function J$e(e,t){let n=e.version;if(l(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new ce("Cesium only supports CZML version 1.");t._version=n}}if(!l(t._version))throw new ce("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;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(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 eQe(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=dr(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new Fx),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),ge(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Qf,s,"rotation",o.rotation,r,i,n),ge(Qf,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function tQe(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=dr(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new Bx),ge(Boolean,s,"show",o.show,r,i,n),ge(h,s,"radii",o.radii,r,i,n),ge(h,s,"innerRadii",o.innerRadii,r,i,n),ge(Number,s,"minimumClock",o.minimumClock,r,i,n),ge(Number,s,"maximumClock",o.maximumClock,r,i,n),ge(Number,s,"minimumCone",o.minimumCone,r,i,n),ge(Number,s,"maximumCone",o.maximumCone,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"stackPartitions",o.stackPartitions,r,i,n),ge(Number,s,"slicePartitions",o.slicePartitions,r,i,n),ge(Number,s,"subdivisions",o.subdivisions,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function nQe(e,t,n,i){let o=t.label;if(!l(o))return;let r=dr(o.interval),s=e.label;l(s)||(e.label=s=new Fd),ge(Boolean,s,"show",o.show,r,i,n),ge(String,s,"text",o.text,r,i,n),ge(String,s,"font",o.font,r,i,n),ge(Wo,s,"style",o.style,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Boolean,s,"showBackground",o.showBackground,r,i,n),ge(H,s,"backgroundColor",o.backgroundColor,r,i,n),ge(z,s,"backgroundPadding",o.backgroundPadding,r,i,n),ge(z,s,"pixelOffset",o.pixelOffset,r,i,n),ge(h,s,"eyeOffset",o.eyeOffset,r,i,n),ge(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ge(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"fillColor",o.fillColor,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Bt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ge(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function iQe(e,t,n,i){let o=t.model;if(!l(o))return;let r=dr(o.interval),s=e.model;l(s)||(e.model=s=new Bp),ge(Boolean,s,"show",o.show,r,i,n),ge(iN.default,s,"uri",o.gltf,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),ge(Number,s,"maximumScale",o.maximumScale,r,i,n),ge(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),ge(Boolean,s,"runAnimations",o.runAnimations,r,i,n),ge(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"silhouetteColor",o.silhouetteColor,r,i,n),ge(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),ge(H,s,"color",o.color,r,i,n),ge(dc,s,"colorBlendMode",o.colorBlendMode,r,i,n),ge(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,u=o.nodeTransformations;if(l(u))if(Array.isArray(u))for(a=0,c=u.length;a<c;++a)Wde(s,u[a],r,i,n);else Wde(s,u,r,i,n);let f=o.articulations;if(l(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)jde(s,f[a],r,i,n);else jde(s,f,r,i,n)}function Wde(e,t,n,i,o){let r=dr(t.interval);l(n)&&(l(r)?r=Cn.intersect(r,n,eT):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!l(d))continue;l(s)||(e.nodeTransformations=s=new Rl),s.hasProperty(f)||s.addProperty(f);let p=s[f];l(p)||(s[f]=p=new kx),ge(h,p,"translation",d.translation,r,i,o),ge(Oe,p,"rotation",d.rotation,r,i,o),ge(h,p,"scale",d.scale,r,i,o)}}function jde(e,t,n,i,o){let r=dr(t.interval);l(n)&&(l(r)?r=Cn.intersect(r,n,eT):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];l(d)&&(l(s)||(e.articulations=s=new Rl),s.hasProperty(f)||s.addProperty(f),ge(Number,s,f,d,r,i,o))}}function oQe(e,t,n,i){let o=t.path;if(!l(o))return;let r=dr(o.interval),s=e.path;l(s)||(e.path=s=new kp),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"leadTime",o.leadTime,r,i,n),ge(Number,s,"trailTime",o.trailTime,r,i,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"resolution",o.resolution,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function rQe(e,t,n,i){let o=t.point;if(!l(o))return;let r=dr(o.interval),s=e.point;l(s)||(e.point=s=new Ux),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"pixelSize",o.pixelSize,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"color",o.color,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function nN(e){this.polygon=e,this._definitionChanged=new me}Object.defineProperties(nN.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!l(e)||e.isConstant)&&(!l(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});nN.prototype.getValue=function(e,t){let n;l(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return l(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),l(i)&&(i=i.map(function(o){return new Oa(o)}))),l(t)?(t.positions=n,t.holes=i,t):new Oa(n,i)};nN.prototype.equals=function(e){return this===e||e instanceof nN&&Y.equals(this.polygon._positions,e.polygon._positions)&&Y.equals(this.polygon._holes,e.polygon._holes)};function sQe(e,t,n,i){let o=t.polygon;if(!l(o))return;let r=dr(o.interval),s=e.polygon;l(s)||(e.polygon=s=new Bd),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"_positions",o.positions,n),j$e(s,"_holes",o.holes,n),(l(s._positions)||l(s._holes))&&(s.hierarchy=new nN(s)),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Qf,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),ge(Boolean,s,"closeTop",o.closeTop,r,i,n),ge(Boolean,s,"closeBottom",o.closeBottom,r,i,n),ge(Jt,s,"arcType",o.arcType,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function aQe(e){return e?Jt.GEODESIC:Jt.NONE}function cQe(e,t,n,i){let o=t.polyline;if(!l(o))return;let r=dr(o.interval),s=e.polyline;if(l(s)||(e.polyline=s=new ac),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"positions",o.positions,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),Bu(s,"material",o.material,r,i,n),Bu(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),ge(Jt,s,"arcType",o.arcType,r,i,n),ge(Boolean,s,"clampToGround",o.clampToGround,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n),l(o.followSurface)&&!l(o.arcType)){let a={};ge(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=S$e(a.followSurface,aQe)}}function lQe(e,t,n,i){let o=t.polylineVolume;if(!l(o))return;let r=dr(o.interval),s=e.polylineVolume;l(s)||(e.polylineVolume=s=new zx),oN(s,"positions",o.positions,n),q$e(s,"shape",o.shape,n),ge(Boolean,s,"show",o.show,r,i,n),ge(Pi,s,"cornerType",o.cornerType,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function uQe(e,t,n,i){let o=t.rectangle;if(!l(o))return;let r=dr(o.interval),s=e.rectangle;l(s)||(e.rectangle=s=new kd),ge(Boolean,s,"show",o.show,r,i,n),ge(re,s,"coordinates",o.coordinates,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Qf,s,"rotation",o.rotation,r,i,n),ge(Qf,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function fQe(e,t,n,i){let o=t.tileset;if(!l(o))return;let r=dr(o.interval),s=e.tileset;l(s)||(e.tileset=s=new Vx),ge(Boolean,s,"show",o.show,r,i,n),ge(iN.default,s,"uri",o.uri,r,i,n),ge(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function dQe(e,t,n,i){let o=t.wall;if(!l(o))return;let r=dr(o.interval),s=e.wall;l(s)||(e.wall=s=new Vp),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"positions",o.positions,n),zde(s,"minimumHeights",o.minimumHeights,n),zde(s,"maximumHeights",o.maximumHeights,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function qde(e,t,n,i,o){let r=e.id;if(l(r)||(r=Hn()),z7=r,!l(o._version)&&r!=="document")throw new ce("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")J$e(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;l(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}z7=void 0}function hQe(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(He.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=Z.secondsDifference(s,r),c=Math.round(a/120);return t=new mh,t.startTime=Z.clone(r),t.stopTime=Z.clone(s),t.clockRange=Wr.LOOP_STOP,t.multiplier=c,t.currentTime=Z.clone(r),t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new mh,t.startTime=He.MINIMUM_VALUE.clone(),t.stopTime=He.MAXIMUM_VALUE.clone(),t.currentTime=He.MINIMUM_VALUE.clone(),t.clockRange=Wr.LOOP_STOP,t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=dr(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=Z.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=y(Wr[n.range],Wr.LOOP_STOP)),l(n.step)&&(t.clockStep=y(mo[n.step],mo.SYSTEM_CLOCK_MULTIPLIER)),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function Zde(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 vt(s)),e._credit=s,typeof t=="string"||t instanceof we){t=we.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return r=we.createIfNeeded(r),Gr.setLoading(e,!0),Promise.resolve(o).then(function(a){return mQe(e,a,r,i)}).catch(function(a){return Gr.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function mQe(e,t,n,i){Gr.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new $de,o.removeAll()),xs._processCzml(t,o,n,void 0,e);let r=hQe(e),s=e._documentPacket;return l(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!l(e._name)&&l(n)&&(e._name=V_(n.getUrlComponent()),r=!0),Gr.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function $de(){this.name=void 0,this.clock=void 0}function xs(e){this._name=e,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._clock=void 0,this._documentPacket=new $de,this._version=void 0,this._entityCollection=new $s(this),this._entityCluster=new Ou,this._credit=void 0,this._resourceCredits=[]}xs.load=function(e,t){return new xs().load(e,t)};Object.defineProperties(xs.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}}});xs.updaters=[K$e,Z$e,$$e,Q$e,eQe,tQe,nQe,iQe,F$e,B$e,oQe,rQe,sQe,cQe,lQe,z$e,uQe,k$e,fQe,V$e,dQe,U$e,Y$e];xs.registerUpdater=function(e){xs.updaters.includes(e)||xs.updaters.push(e)};xs.unregisterUpdater=function(e){if(xs.updaters.includes(e)){let t=xs.updaters.indexOf(e);xs.updaters.splice(t,1)}};xs.prototype.process=function(e,t){return Zde(this,e,t,!1)};xs.prototype.load=function(e,t){return Zde(this,e,t,!0)};xs.prototype.update=function(e){return!0};xs.processPacketData=ge;xs.processPositionPacketData=Kde;xs.processMaterialPacketData=Bu;xs._processCzml=function(e,t,n,i,o){if(i=y(i,xs.updaters),Array.isArray(e))for(let r=0,s=e.length;r<s;++r)qde(e[r],t,i,n,o);else qde(e,t,i,n,o)};var rN=xs;function ol(){this._dataSources=[],this._dataSourceAdded=new me,this._dataSourceRemoved=new me,this._dataSourceMoved=new me}Object.defineProperties(ol.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}}});ol.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})};ol.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};ol.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=[]};ol.prototype.contains=function(e){return this.indexOf(e)!==-1};ol.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};ol.prototype.get=function(e){return this._dataSources[e]};ol.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function $z(e,t){return e.indexOf(t)}function Qde(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)}ol.prototype.raise=function(e){let t=$z(this._dataSources,e);Qde(this,t,t+1)};ol.prototype.lower=function(e){let t=$z(this._dataSources,e);Qde(this,t,t-1)};ol.prototype.raiseToTop=function(e){let t=$z(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))};ol.prototype.lowerToBottom=function(e){let t=$z(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};ol.prototype.isDestroyed=function(){return!1};ol.prototype.destroy=function(){return this.removeAll(!0),ue(this)};var sN=ol;function ga(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=Hn(),this._primitiveAdded=new me,this._primitiveRemoved=new me,this._zIndex=void 0,this.show=y(e.show,!0),this.destroyPrimitives=y(e.destroyPrimitives,!0)}Object.defineProperties(ga.prototype,{length:{get:function(){return this._primitives.length}},primitiveAdded:{get:function(){return this._primitiveAdded}},primitiveRemoved:{get:function(){return this._primitiveRemoved}}});ga.prototype.add=function(e,t){let n=l(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};ga.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};ga.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};ga.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=[]};ga.prototype.contains=function(e){return!!(l(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function Qz(e,t){return e._primitives.indexOf(t)}ga.prototype.raise=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};ga.prototype.raiseToTop=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};ga.prototype.lower=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};ga.prototype.lowerToBottom=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};ga.prototype.get=function(e){return this._primitives[e]};ga.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};ga.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.prePassesUpdate)&&i.prePassesUpdate(e)}};ga.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];l(o.updateForPass)&&o.updateForPass(e,t)}};ga.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.postPassesUpdate)&&i.postPassesUpdate(e)}};ga.prototype.isDestroyed=function(){return!1};ga.prototype.destroy=function(){return this.removeAll(),ue(this)};var jl=ga;function Dm(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(Dm.prototype,{length:{get:function(){return this._length}}});Dm.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!l(n)){n=new jl({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};Dm.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};Dm.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};Dm.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};Dm.prototype.contains=function(e){if(!l(e))return!1;let t=this._collections[e._zIndex];return l(t)&&t.contains(e)};Dm.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};Dm.prototype.isDestroyed=function(){return!1};Dm.prototype.destroy=function(){return this.removeAll(),ue(this)};var aN=Dm;function jE(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new Et}jE.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};jE.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);l(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};jE.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};jE.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};jE.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),l(e)&&l(e.getBoundingSphere)?e.getBoundingSphere(t):ct.FAILED};var tT=jE;var j7={},Jz=new h,Jde=new h,ehe=new Oe,the=new $;function qE(e,t,n,i,o,r,s,a,c,u){let f=e+t;h.multiplyByScalar(i,Math.cos(f),Jz),h.multiplyByScalar(n,Math.sin(f),Jde),h.add(Jz,Jde,Jz);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 Oe.fromAxisAngle(Jz,m,ehe),$.fromQuaternion(ehe,the),$.multiplyByVector(the,c,u),h.normalize(u,u),h.multiplyByScalar(u,a,u),u}var nhe=new h,ihe=new h,W7=new h,pQe=new h;j7.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,u=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=h.fromArray(e,f,nhe);i.scaleToGeodeticSurface(g,g);let m=h.clone(g,ihe),x=i.geodeticSurfaceNormal(g,pQe),b=h.multiplyByScalar(x,o,W7);h.add(g,b,g),n&&(h.multiplyByScalar(x,r,b),h.add(m,b,m),a[f+u]=m.x,a[d+u]=m.y,a[p+u]=m.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var _Qe=new h,gQe=new h,yQe=new h;j7.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,u=o*o,f=o*i,d=h.magnitude(s),p=h.normalize(s,_Qe),g=h.cross(h.UNIT_Z,s,gQe);g=h.normalize(g,g);let m=h.cross(p,g,yQe),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 C=2*(x*(x+2)),A=t?new Array(C*3):void 0,E=0,v=nhe,D=ihe,O=x*4*3,R=O-1,M=0,N=n?new Array(O):void 0,_,S,w,I,L;for(T=P.PI_OVER_TWO,v=qE(T,r,m,g,c,f,u,d,p,v),t&&(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z),n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x),T=P.PI_OVER_TWO-b,_=1;_<x+1;++_){if(v=qE(T,r,m,g,c,f,u,d,p,v),D=qE(Math.PI-T,r,m,g,c,f,u,d,p,D),t){for(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,w=2*_+2,S=1;S<w-1;++S)I=S/(w-1),L=h.lerp(v,D,I,W7),A[E++]=L.x,A[E++]=L.y,A[E++]=L.z;A[E++]=D.x,A[E++]=D.y,A[E++]=D.z}n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x,N[M++]=D.x,N[M++]=D.y,N[M++]=D.z),T=P.PI_OVER_TWO-(_+1)*b}for(_=x;_>1;--_){if(T=P.PI_OVER_TWO-(_-1)*b,v=qE(-T,r,m,g,c,f,u,d,p,v),D=qE(T+Math.PI,r,m,g,c,f,u,d,p,D),t){for(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,w=2*(_-1)+2,S=1;S<w-1;++S)I=S/(w-1),L=h.lerp(v,D,I,W7),A[E++]=L.x,A[E++]=L.y,A[E++]=L.z;A[E++]=D.x,A[E++]=D.y,A[E++]=D.z}n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x,N[M++]=D.x,N[M++]=D.y,N[M++]=D.z)}T=P.PI_OVER_TWO,v=qE(-T,r,m,g,c,f,u,d,p,v);let B={};return t&&(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,B.positions=A,B.numPts=x),n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x,B.outerPositions=N),B};var ql=j7;var YE=new h,q7=new h,Y7=new h,ohe=new h,Ps=new z,rhe=new $,xQe=new $,X7=new Oe,she=new h,ahe=new h,che=new h,n4=new fe,lhe=new h,uhe=new z,fhe=new z;function dhe(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,u=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(u*2):void 0,p=i.normal?new Float32Array(u*3):void 0,g=i.tangent?new Float32Array(u*3):void 0,m=i.bitangent?new Float32Array(u*3):void 0,x=f?new Float32Array(u*3):void 0,b=0,T=she,C=ahe,A=che,E=new vi(a),v=E.project(a.cartesianToCartographic(o,n4),lhe),D=a.scaleToGeodeticSurface(o,YE);a.geodeticSurfaceNormal(D,D);let O=rhe,R=xQe;if(c!==0){let L=Oe.fromAxisAngle(D,c,X7);O=$.fromQuaternion(L,O),L=Oe.fromAxisAngle(D,-c,X7),R=$.fromQuaternion(L,R)}else O=$.clone($.IDENTITY,O),R=$.clone($.IDENTITY,R);let M=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,uhe),N=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,fhe),_=e.length,S=n?_:0,w=S/3*2;for(let L=0;L<_;L+=3){let B=L+1,U=L+2,V=h.fromArray(e,L,YE);if(i.st){let G=$.multiplyByVector(O,V,q7),k=E.project(a.cartesianToCartographic(G,n4),Y7);h.subtract(k,v,k),Ps.x=(k.x+r)/(2*r),Ps.y=(k.y+s)/(2*s),M.x=Math.min(Ps.x,M.x),M.y=Math.min(Ps.y,M.y),N.x=Math.max(Ps.x,N.x),N.y=Math.max(Ps.y,N.y),n&&(d[b+w]=Ps.x,d[b+1+w]=Ps.y),d[b++]=Ps.x,d[b++]=Ps.y}(i.normal||i.tangent||i.bitangent||f)&&(T=a.geodeticSurfaceNormal(V,T),f&&(x[L+S]=-T.x,x[B+S]=-T.y,x[U+S]=-T.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(C=h.normalize(h.cross(h.UNIT_Z,T,C),C),$.multiplyByVector(R,C,C)),i.normal&&(p[L]=T.x,p[B]=T.y,p[U]=T.z,n&&(p[L+S]=-T.x,p[B+S]=-T.y,p[U+S]=-T.z)),i.tangent&&(g[L]=C.x,g[B]=C.y,g[U]=C.z,n&&(g[L+S]=-C.x,g[B+S]=-C.y,g[U+S]=-C.z)),i.bitangent&&(A=h.normalize(h.cross(T,C,A),A),m[L]=A.x,m[B]=A.y,m[U]=A.z,n&&(m[L+S]=A.x,m[B+S]=A.y,m[U+S]=A.z))))}if(i.st){_=d.length;for(let L=0;L<_;L+=2)d[L]=(d[L]-M.x)/(N.x-M.x),d[L+1]=(d[L+1]-M.y)/(N.y-M.y)}let I=new fn;if(i.position){let L=ql.raisePositionsToHeight(e,t,n);I.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:L})}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&&l(t.offsetAttribute)){let L=new Uint8Array(u);if(t.offsetAttribute===an.TOP)L=L.fill(1,0,u/2);else{let B=t.offsetAttribute===an.NONE?0:1;L=L.fill(B)}I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:L})}return I}function hhe(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 nT=new h;function bQe(e){let t=e.center;nT=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,nT),e.height,nT),nT=h.add(t,nT,nT);let n=new se(nT,e.semiMajorAxis),i=ql.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=dhe(o,e,!1),a=hhe(r);return a=Ne.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function TQe(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,u=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,C=0,A=she,E=ahe,v=che,D=new vi(s),O=D.project(s.cartesianToCartographic(i,n4),lhe),R=s.scaleToGeodeticSurface(i,YE);s.geodeticSurfaceNormal(R,R);let M=Oe.fromAxisAngle(R,u,X7),N=$.fromQuaternion(M,rhe),_=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,uhe),S=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,fhe),w=e.length,I=w/3*2;for(let B=0;B<w;B+=3){let U=B+1,V=B+2,G=h.fromArray(e,B,YE),k;if(n.st){let q=$.multiplyByVector(N,G,q7),J=D.project(s.cartesianToCartographic(q,n4),Y7);h.subtract(J,O,J),Ps.x=(J.x+o)/(2*o),Ps.y=(J.y+r)/(2*r),_.x=Math.min(Ps.x,_.x),_.y=Math.min(Ps.y,_.y),S.x=Math.max(Ps.x,S.x),S.y=Math.max(Ps.y,S.y),p[C+I]=Ps.x,p[C+1+I]=Ps.y,p[C++]=Ps.x,p[C++]=Ps.y}G=s.scaleToGeodeticSurface(G,G),k=h.clone(G,q7),A=s.geodeticSurfaceNormal(G,A),b&&(T[B+w]=-A.x,T[U+w]=-A.y,T[V+w]=-A.z);let W=h.multiplyByScalar(A,a,ohe);if(G=h.add(G,W,G),W=h.multiplyByScalar(A,c,W),k=h.add(k,W,k),n.position&&(d[B+w]=k.x,d[U+w]=k.y,d[V+w]=k.z,d[B]=G.x,d[U]=G.y,d[V]=G.z),n.normal||n.tangent||n.bitangent){v=h.clone(A,v);let q=h.fromArray(e,(B+3)%w,ohe);h.subtract(q,G,q);let J=h.subtract(k,G,Y7);A=h.normalize(h.cross(J,q,A),A),n.normal&&(g[B]=A.x,g[U]=A.y,g[V]=A.z,g[B+w]=A.x,g[U+w]=A.y,g[V+w]=A.z),n.tangent&&(E=h.normalize(h.cross(v,A,E),E),m[B]=E.x,m[U]=E.y,m[V]=E.z,m[B+w]=E.x,m[B+1+w]=E.y,m[B+2+w]=E.z),n.bitangent&&(x[B]=v.x,x[U]=v.y,x[V]=v.z,x[B+w]=v.x,x[U+w]=v.y,x[V+w]=v.z)}}if(n.st){w=p.length;for(let B=0;B<w;B+=2)p[B]=(p[B]-_.x)/(S.x-_.x),p[B+1]=(p[B+1]-_.y)/(S.y-_.y)}let L=new fn;if(n.position&&(L.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(L.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(L.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(L.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),n.bitangent&&(L.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),b&&(L.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),l(t.offsetAttribute)){let B=new Uint8Array(f);if(t.offsetAttribute===an.TOP)B=B.fill(1,0,f/2);else{let U=t.offsetAttribute===an.NONE?0:1;B=B.fill(U)}L.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return L}function CQe(e){let t=e.length/3,n=Ne.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 e4=new se,t4=new se;function AQe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,YE),e.height,YE);e4.center=h.add(t,o,e4.center),e4.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),t4.center=h.add(t,o,t4.center),t4.radius=i;let r=ql.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,u=se.union(e4,t4),f=dhe(s,e,!0),d=hhe(a),p=d.length;d.length=p*2;let g=s.length/3;for(let E=0;E<p;E+=3)d[E+p]=d[E+2]+g,d[E+1+p]=d[E+1]+g,d[E+2+p]=d[E]+g;let m=Ne.createTypedArray(g*2/3,d),x=new at({attributes:f,indices:m,primitiveType:Me.TRIANGLES}),b=TQe(c,e);d=CQe(c);let T=Ne.createTypedArray(c.length*2/3,d),C=new at({attributes:b,indices:T,primitiveType:Me.TRIANGLES}),A=Ln.combineInstances([new St({geometry:x}),new St({geometry:C})]);return{boundingSphere:u,attributes:A[0].attributes,indices:A[0].indices}}function mhe(e,t,n,i,o,r,s){let c=ql.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,u=c.length/3,f=new Array(u);for(let p=0;p<u;++p)f[p]=h.fromArray(c,p*3);let d=re.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 Pm(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ee.default),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Ie.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ee.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=Ie.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}Pm.packedLength=h.packedLength+ee.packedLength+Ie.packedLength+9;Pm.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.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 phe=new h,_he=new ee,ghe=new Ie,Im={center:phe,ellipsoid:_he,vertexFormat:ghe,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};Pm.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,phe);t+=h.packedLength;let o=ee.unpack(e,t,_he);t+=ee.packedLength;let r=Ie.unpack(e,t,ghe);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,m=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=u,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=m===-1?void 0:m,n):(Im.height=f,Im.extrudedHeight=p,Im.granularity=d,Im.stRotation=u,Im.rotation=c,Im.semiMajorAxis=s,Im.semiMinorAxis=a,Im.shadowVolume=g,Im.offsetAttribute=m===-1?void 0:m,new Pm(Im))};Pm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,ee.default),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return mhe(n,o,r,a,s,i,t)};Pm.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=AQe(o);else if(r=bQe(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===an.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 at({attributes:r.attributes,indices:r.indices,primitiveType:Me.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};Pm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Pm({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};function EQe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=ql.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 at._textureCoordinateRotationPoints(r,t,s,a)}Object.defineProperties(Pm.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=mhe(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=EQe(this)),this._textureCoordinateRotationPoints}}});var rl=Pm;var yhe=new h,iT=new h;function SQe(e){let t=e.center;iT=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,iT),e.height,iT),iT=h.add(t,iT,iT);let n=new se(iT,e.semiMajorAxis),i=ql.computeEllipsePositions(e,!1,!0).outerPositions,o=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:ql.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=Ne.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 i4=new se,o4=new se;function vQe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,yhe),e.height,yhe);i4.center=h.add(t,o,i4.center),i4.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),o4.center=h.add(t,o,o4.center),o4.radius=i;let r=ql.computeEllipsePositions(e,!1,!0).outerPositions,s=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:ql.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=se.union(i4,o4),c=r.length/3;if(l(e.offsetAttribute)){let m=new Uint8Array(c);if(e.offsetAttribute===an.TOP)m=m.fill(1,0,c/2);else{let x=e.offsetAttribute===an.NONE?0:1;m=m.fill(x)}s.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}let u=y(e.numberOfVerticalLines,16);u=P.clamp(u,0,c/2);let f=Ne.createTypedArray(c,c*2+u*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(u>0){let m=Math.min(u,c);g=Math.round(c/m);let x=Math.min(g*u,c);for(p=0;p<x;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function XE(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ee.default),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=ee.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"}XE.packedLength=h.packedLength+ee.packedLength+8;XE.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.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 xhe=new h,bhe=new ee,q_={center:xhe,ellipsoid:bhe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};XE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,xhe);t+=h.packedLength;let o=ee.unpack(e,t,bhe);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ee.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=u,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(q_.height=c,q_.extrudedHeight=f,q_.granularity=u,q_.rotation=a,q_.semiMajorAxis=r,q_.semiMinorAxis=s,q_.numberOfVerticalLines=d,q_.offsetAttribute=p===-1?void 0:p,new XE(q_))};XE.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=vQe(o);else if(r=SQe(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===an.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 at({attributes:r.attributes,indices:r.indices,primitiveType:Me.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var ku=XE;var The=new H,Che=h.ZERO,Ahe=new h,Ehe=new re;function wQe(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 gh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new wQe(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}l(Object.create)&&(gh.prototype=Object.create(Wn.prototype),gh.prototype.constructor=gh);gh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(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 Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,The)),l(o)||(o=H.WHITE),i.color=Wt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Che,Ahe))),new St({id:t,geometry:new rl(this._options),attributes:i})};gh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,The),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Che,Ahe))),new St({id:t,geometry:new ku(this._options),attributes:r})};gh.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};gh.prototype._isHidden=function(e,t){let n=e.position;return!l(n)||!l(t.semiMajorAxis)||!l(t.semiMinorAxis)||ii.prototype._isHidden.call(this,e,t)};gh.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!Y.isConstant(t.rotation)||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.numberOfVerticalLines)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};gh.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),i=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),o=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),r=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.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=Y.getValueOrUndefined(t.rotation,He.MINIMUM_VALUE),s.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),s.stRotation=Y.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),s.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,He.MINIMUM_VALUE),s.offsetAttribute=Wn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Wn.getGeometryHeight(n,i),o=Wn.getGeometryExtrudedHeight(o,r),o===Wn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(rl.computeRectangle(s,Ehe)).minimumTerrainHeight),s.extrudedHeight=o};gh.DynamicGeometryUpdater=KE;function KE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(KE.prototype=Object.create(ni.prototype),KE.prototype.constructor=KE);KE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.center)||!l(i.semiMajorAxis)||!l(i.semiMinorAxis)||ni.prototype._isHidden.call(this,e,t,n)};KE.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE);l(s)&&!l(o)&&(o=0),i.center=Y.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=Y.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=Y.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=Y.getValueOrUndefined(t.rotation,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(rl.computeRectangle(i,Ehe)).minimumTerrainHeight),i.extrudedHeight=s};var cN=gh;var DQe=new h,IQe=new h,PQe=new h,RQe=new h,OQe=new h,MQe=new h(1,1,1),She=Math.cos,vhe=Math.sin;function Y_(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,MQe),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)),u=y(e.vertexFormat,Ie.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=Ie.clone(u),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}Y_.packedLength=2*h.packedLength+Ie.packedLength+7;Y_.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,Ie.pack(e._vertexFormat,t,n),n+=Ie.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 whe=new h,Dhe=new h,Ihe=new Ie,Zy={radii:whe,innerRadii:Dhe,vertexFormat:Ihe,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};Y_.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,whe);t+=h.packedLength;let o=h.unpack(e,t,Dhe);t+=h.packedLength;let r=Ie.unpack(e,t,Ihe);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=u,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(Zy.minimumClock=s,Zy.maximumClock=a,Zy.minimumCone=c,Zy.maximumCone=u,Zy.stackPartitions=f,Zy.slicePartitions=d,Zy.offsetAttribute=p===-1?void 0:p,new Y_(Zy))};Y_.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,u=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/P.TWO_PI),u=Math.round(u*Math.abs(s-r)/P.PI),c<2&&(c=2),u<2&&(u=2);let f,d,p=0,g=[r],m=[i];for(f=0;f<u;f++)g.push(r+f*(s-r)/(u-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,C=1,A=n.x!==t.x||n.y!==t.y||n.z!==t.z,E=!1,v=!1,D=!1;A&&(C=2,r>0&&(E=!0,T+=c-1),s<Math.PI&&(v=!0,T+=c-1),(o-i)%P.TWO_PI?(D=!0,T+=(u-1)*2+1):T+=1);let O=b*x*C,R=new Float64Array(O*3),M=new Array(O).fill(!1),N=new Array(O).fill(!1),_=c*u*C,S=6*(_+T+1-(c+u)*C),w=Ne.createTypedArray(_,S),I=a.normal?new Float32Array(O*3):void 0,L=a.tangent?new Float32Array(O*3):void 0,B=a.bitangent?new Float32Array(O*3):void 0,U=a.st?new Float32Array(O*2):void 0,V=new Array(x),G=new Array(x);for(f=0;f<x;f++)V[f]=vhe(g[f]),G[f]=She(g[f]);let k=new Array(b),W=new Array(b);for(d=0;d<b;d++)W[d]=She(m[d]),k[d]=vhe(m[d]);for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=t.x*V[f]*W[d],R[p++]=t.y*V[f]*k[d],R[p++]=t.z*G[f];let q=O/2;if(A)for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=n.x*V[f]*W[d],R[p++]=n.y*V[f]*k[d],R[p++]=n.z*G[f],M[q]=!0,f>0&&f!==x-1&&d!==0&&d!==b-1&&(N[q]=!0),q++;p=0;let J,j;for(f=1;f<x-2;f++)for(J=f*b,j=(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=j+d+1,w[p++]=J+d+1,w[p++]=j+d,w[p++]=J+d+1,w[p++]=J+d;if(A){let tt=x*b;for(f=1;f<x-2;f++)for(J=tt+f*b,j=tt+(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=J+d,w[p++]=J+d+1,w[p++]=j+d,w[p++]=J+d+1,w[p++]=j+d+1}let K,Q;if(A){if(E)for(Q=x*b,f=1;f<b-2;f++)w[p++]=f,w[p++]=f+1,w[p++]=Q+f+1,w[p++]=f,w[p++]=Q+f+1,w[p++]=Q+f;if(v)for(K=x*b-b,Q=x*b*C-b,f=1;f<b-2;f++)w[p++]=K+f+1,w[p++]=K+f,w[p++]=Q+f,w[p++]=K+f+1,w[p++]=Q+f,w[p++]=Q+f+1}if(D){for(f=1;f<x-2;f++)Q=b*x+b*f,K=b*f,w[p++]=Q,w[p++]=K+b,w[p++]=K,w[p++]=Q,w[p++]=Q+b,w[p++]=K+b;for(f=1;f<x-2;f++)Q=b*x+b*(f+1)-1,K=b*(f+1)-1,w[p++]=K+b,w[p++]=Q,w[p++]=K,w[p++]=K+b,w[p++]=Q+b,w[p++]=Q}let de=new fn;a.position&&(de.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:R}));let ye=0,ae=0,_e=0,xe=0,De=O/2,Ae,ke=ee.fromCartesian3(t),ze=ee.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<O;f++){Ae=M[f]?ze:ke;let tt=h.fromArray(R,f*3,DQe),wt=Ae.geodeticSurfaceNormal(tt,IQe);if(N[f]&&h.negate(wt,wt),a.st){let pt=z.negate(wt,OQe);U[ye++]=Math.atan2(pt.y,pt.x)/P.TWO_PI+.5,U[ye++]=Math.asin(wt.z)/Math.PI+.5}if(a.normal&&(I[ae++]=wt.x,I[ae++]=wt.y,I[ae++]=wt.z),a.tangent||a.bitangent){let pt=PQe,Be=0,Yt;if(M[f]&&(Be=De),!E&&f>=Be&&f<Be+b*2?Yt=h.UNIT_X:Yt=h.UNIT_Z,h.cross(Yt,wt,pt),h.normalize(pt,pt),a.tangent&&(L[_e++]=pt.x,L[_e++]=pt.y,L[_e++]=pt.z),a.bitangent){let Ct=h.cross(wt,pt,RQe);h.normalize(Ct,Ct),B[xe++]=Ct.x,B[xe++]=Ct.y,B[xe++]=Ct.z}}}a.st&&(de.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:U})),a.normal&&(de.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:I})),a.tangent&&(de.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:L})),a.bitangent&&(de.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:B}))}if(l(e._offsetAttribute)){let tt=R.length,wt=e._offsetAttribute===an.NONE?0:1,pt=new Uint8Array(tt/3).fill(wt);de.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:pt})}return new at({attributes:de,indices:w,primitiveType:Me.TRIANGLES,boundingSphere:se.fromEllipsoid(ke),offsetAttribute:e._offsetAttribute})};var K7;Y_.getUnitEllipsoid=function(){return l(K7)||(K7=Y_.createGeometry(new Y_({radii:new h(1,1,1),vertexFormat:Ie.POSITION_ONLY}))),K7};var Qs=Y_;var LQe=new Ut(H.WHITE),Z7=h.ZERO,$7=new h,NQe=new h,FQe=new h,Q7=new H,BQe=new h(1,1,1);function kQe(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 Vu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new kQe(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}l(Object.create)&&(Vu.prototype=Object.create(ii.prototype),Vu.prototype.constructor=Vu);Object.defineProperties(Vu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Vu.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r,s=new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=kn.fromDistanceDisplayCondition(a),u={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let f;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(f=this._materialProperty.color.getValue(e,Q7)),l(f)||(f=H.WHITE),r=Wt.fromColor(f),u.color=r}return l(this._options.offsetAttribute)&&(u.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Z7,$7))),new St({id:i,geometry:new Qs(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:u})};Vu.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Q7),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(r),distanceDisplayCondition:kn.fromDistanceDisplayCondition(s),offset:void 0};return l(this._options.offsetAttribute)&&(a.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Z7,$7))),new St({id:i,geometry:new Iu(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:a})};Vu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};Vu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.radii)||ii.prototype._isHidden.call(this,e,t)};Vu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.radii.isConstant||!Y.isConstant(t.innerRadii)||!Y.isConstant(t.stackPartitions)||!Y.isConstant(t.slicePartitions)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.minimumClock)||!Y.isConstant(t.maximumClock)||!Y.isConstant(t.minimumCone)||!Y.isConstant(t.maximumCone)||!Y.isConstant(t.subdivisions)};Vu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(He.MINIMUM_VALUE,i.radii),i.innerRadii=Y.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=Y.getValueOrUndefined(t.minimumClock,He.MINIMUM_VALUE),i.maximumClock=Y.getValueOrUndefined(t.maximumClock,He.MINIMUM_VALUE),i.minimumCone=Y.getValueOrUndefined(t.minimumCone,He.MINIMUM_VALUE),i.maximumCone=Y.getValueOrUndefined(t.maximumCone,He.MINIMUM_VALUE),i.stackPartitions=Y.getValueOrUndefined(t.stackPartitions,He.MINIMUM_VALUE),i.slicePartitions=Y.getValueOrUndefined(t.slicePartitions,He.MINIMUM_VALUE),i.subdivisions=Y.getValueOrUndefined(t.subdivisions,He.MINIMUM_VALUE),i.offsetAttribute=n!==Ye.NONE?an.ALL:void 0};Vu.prototype._onEntityPropertyChanged=Up;Vu.DynamicGeometryUpdater=lN;function lN(e,t,n){ni.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new F,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={}}l(Object.create)&&(lN.prototype=Object.create(ni.prototype),lN.prototype.constructor=lN);lN.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!Y.getValueOrDefault(n.show,e,!0)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=Y.getValueOrUndefined(n.radii,e,NQe),o=l(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.ellipsoid,this._modelMatrix):void 0;if(!l(o)||!l(i)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let r=Y.getValueOrDefault(n.fill,e,!0),s=Y.getValueOrDefault(n.outline,e,!1),a=Y.getValueOrClonedDefault(n.outlineColor,e,H.BLACK,Q7),c=Jo.getValue(e,y(n.material,LQe),this._material),u=Y.getValueOrUndefined(n.innerRadii,e,FQe),f=Y.getValueOrUndefined(n.minimumClock,e),d=Y.getValueOrUndefined(n.maximumClock,e),p=Y.getValueOrUndefined(n.minimumCone,e),g=Y.getValueOrUndefined(n.maximumCone,e),m=Y.getValueOrUndefined(n.stackPartitions,e),x=Y.getValueOrUndefined(n.slicePartitions,e),b=Y.getValueOrUndefined(n.subdivisions,e),T=Y.getValueOrDefault(n.outlineWidth,e,1),C=Y.getValueOrDefault(n.heightReference,e,Ye.NONE),A=C!==Ye.NONE?an.ALL:void 0,E=this._scene.mode,v=E===ne.SCENE3D&&C===Ye.NONE,D=this._options,O=this._geometryUpdater.shadowsProperty.getValue(e),M=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),N=Y.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,Z7,$7);if(!v||this._lastSceneMode!==E||!l(this._primitive)||D.stackPartitions!==m||D.slicePartitions!==x||l(u)&&!h.equals(D.innerRadii!==u)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==b||this._lastOutlineWidth!==T||D.offsetAttribute!==A){let S=this._primitives;S.removeAndDestroy(this._primitive),S.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=E,this._lastOutlineWidth=T,D.stackPartitions=m,D.slicePartitions=x,D.subdivisions=b,D.offsetAttribute=A,D.radii=h.clone(v?BQe:i,D.radii),l(u)?v?D.innerRadii=h.fromElements(u.x/i.x,u.y/i.y,u.z/i.z,D.innerRadii):D.innerRadii=h.clone(u,D.innerRadii):D.innerRadii=void 0,D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let w=new so({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=w.vertexFormat;let I=this._geometryUpdater.createFillGeometryInstance(e,v,this._modelMatrix);this._primitive=S.add(new Dn({geometryInstances:I,appearance:w,asynchronous:!1,shadows:O}));let L=this._geometryUpdater.createOutlineGeometryInstance(e,v,this._modelMatrix);this._outlinePrimitive=S.add(new Dn({geometryInstances:L,appearance:new ln({flat:!0,translucent:L.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(T)}}),asynchronous:!1,shadows:O})),this._lastShow=r,this._lastOutlineShow=s,this._lastOutlineColor=H.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=M,this._lastOffset=h.clone(N,this._lastOffset)}else if(this._primitive.ready){let S=this._primitive,w=this._outlinePrimitive;S.show=!0,w.show=!0,S.appearance.material=c;let I=this._attributes;l(I)||(I=S.getGeometryInstanceAttributes(t),this._attributes=I),r!==this._lastShow&&(I.show=gn.toValue(r,I.show),this._lastShow=r);let L=this._outlineAttributes;l(L)||(L=w.getGeometryInstanceAttributes(t),this._outlineAttributes=L),s!==this._lastOutlineShow&&(L.show=gn.toValue(s,L.show),this._lastOutlineShow=s),H.equals(a,this._lastOutlineColor)||(L.color=Wt.toValue(a,L.color),H.clone(a,this._lastOutlineColor)),Lt.equals(M,this._lastDistanceDisplayCondition)||(I.distanceDisplayCondition=kn.toValue(M,I.distanceDisplayCondition),L.distanceDisplayCondition=kn.toValue(M,L.distanceDisplayCondition),Lt.clone(M,this._lastDistanceDisplayCondition)),h.equals(N,this._lastOffset)||(I.offset=Qi.toValue(N,I.offset),L.offset=Qi.toValue(N,I.offset),h.clone(N,this._lastOffset))}v&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),o=F.multiplyByScale(o,i,o),this._primitive.modelMatrix=o,this._outlinePrimitive.modelMatrix=o)};var uN=Vu;function ZE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Ie.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}ZE.packedLength=Ie.packedLength;ZE.pack=function(e,t,n){return n=y(n,0),Ie.pack(e._vertexFormat,t,n),t};var Phe=new Ie,VQe={vertexFormat:Phe};ZE.unpack=function(e,t,n){t=y(t,0);let i=Ie.unpack(e,t,Phe);return l(n)?(n._vertexFormat=Ie.clone(i,n._vertexFormat),n):new ZE(VQe)};var r4=new h(-.5,-.5,0),s4=new h(.5,.5,0);ZE.createGeometry=function(e){let t=e._vertexFormat,n=new fn,i,o;if(t.position){if(o=new Float64Array(4*3),o[0]=r4.x,o[1]=r4.y,o[2]=0,o[3]=s4.x,o[4]=r4.y,o[5]=0,o[6]=s4.x,o[7]=s4.y,o[8]=0,o[9]=r4.x,o[10]=s4.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 at({attributes:n,indices:i,primitiveType:Me.TRIANGLES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var fN=ZE;function $E(){this._workerName="createPlaneOutlineGeometry"}$E.packedLength=0;$E.pack=function(e,t){return t};$E.unpack=function(e,t,n){return l(n)?n:new $E};var $y=new h(-.5,-.5,0),a4=new h(.5,.5,0);$E.createGeometry=function(){let e=new fn,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=$y.x,n[1]=$y.y,n[2]=$y.z,n[3]=a4.x,n[4]=$y.y,n[5]=$y.z,n[6]=a4.x,n[7]=a4.y,n[8]=$y.z,n[9]=$y.x,n[10]=a4.y,n[11]=$y.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 at({attributes:e,indices:t,primitiveType:Me.LINES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var dN=$E;var UQe=new h,Rhe=new H;function zQe(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function ed(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new zQe(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}l(Object.create)&&(ed.prototype=Object.create(ii.prototype),ed.prototype.constructor=ed);ed.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let g;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,Rhe)),l(g)||(g=H.WHITE),o=Wt.fromColor(g),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,u=this._options,f=t.computeModelMatrix(e),d=Y.getValueOrDefault(c.plane,e,u.plane),p=Y.getValueOrUndefined(c.dimensions,e,u.dimensions);return u.plane=d,u.dimensions=p,f=J7(d,p,f,f),new St({id:t,geometry:new fN(this._options),modelMatrix:f,attributes:i})};ed.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Rhe),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=Y.getValueOrDefault(r.plane,e,s.plane),u=Y.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=u,a=J7(c,u,a,a),new St({id:t,geometry:new dN,modelMatrix:a,attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};ed.prototype._isHidden=function(e,t){return!l(t.plane)||!l(t.dimensions)||!l(e.position)||ii.prototype._isHidden.call(this,e,t)};ed.prototype._getIsClosed=function(e){return!1};ed.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!Y.isConstant(t.outlineWidth)};ed.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(He.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(He.MINIMUM_VALUE,i.dimensions)};ed.DynamicGeometryUpdater=QE;function QE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(QE.prototype=Object.create(ni.prototype),QE.prototype.constructor=QE);QE.prototype._isHidden=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(e.position,n,UQe);return!l(o)||!l(i.plane)||!l(i.dimensions)||ni.prototype._isHidden.call(this,e,t,n)};QE.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=Y.getValueOrDefault(t.plane,n,i.plane),i.dimensions=Y.getValueOrUndefined(t.dimensions,n,i.dimensions)};var HQe=new h,GQe=new h,WQe=new h,jQe=new h,qQe=new $,YQe=new $,XQe=new F;function J7(e,t,n,i){let o=e.normal,r=e.distance,s=h.multiplyByScalar(o,-r,WQe),a=h.clone(h.UNIT_Z,GQe);P.equalsEpsilon(Math.abs(h.dot(a,o)),1,P.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,o,HQe);a=h.cross(o,c,a),h.normalize(c,c),h.normalize(a,a);let u=qQe;$.setColumn(u,0,c,u),$.setColumn(u,1,a,u),$.setColumn(u,2,o,u);let f=h.fromElements(t.x,t.y,1,jQe),d=$.multiplyByScale(u,f,YQe),p=F.fromRotationTranslation(d,s,XQe);return F.multiplyTransformation(n,p,i)}ed.createPrimitiveMatrix=J7;var hN=ed;var KQe=new h,ZQe=new je,$Qe=new z,QQe=new z,JQe=new h,eJe=new h,tJe=new h,mN=new h,nJe=new h,iJe=new h,Ohe=new Oe,oJe=new $,rJe=new $,sJe=new h;function aJe(e,t,n,i,o,r,s,a,c){let u=e.positions,f=si.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=Ne.createTypedArray(u.length,f.length);d.set(f);let p=oJe;if(i!==0){let _=Oe.fromAxisAngle(s,i,Ohe);if(p=$.fromQuaternion(_,p),t.tangent||t.bitangent){_=Oe.fromAxisAngle(s,-i,Ohe);let S=$.fromQuaternion(_,rJe);a=h.normalize($.multiplyByVector(S,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=$.clone($.IDENTITY,p);let g=QQe;t.st&&(g.x=n.x,g.y=n.y);let m=u.length,x=m*3,b=new Float64Array(x),T=t.normal?new Float32Array(x):void 0,C=t.tangent?new Float32Array(x):void 0,A=t.bitangent?new Float32Array(x):void 0,E=t.st?new Float32Array(m*2):void 0,v=0,D=0,O=0,R=0,M=0;for(let _=0;_<m;_++){let S=u[_];if(b[v++]=S.x,b[v++]=S.y,b[v++]=S.z,t.st)if(l(o)&&o.positions.length===m)E[M++]=o.positions[_].x,E[M++]=o.positions[_].y;else{let w=$.multiplyByVector(p,S,KQe),I=r(w,$Qe);z.subtract(I,g,I);let L=P.clamp(I.x/n.width,0,1),B=P.clamp(I.y/n.height,0,1);E[M++]=L,E[M++]=B}t.normal&&(T[D++]=s.x,T[D++]=s.y,T[D++]=s.z),t.tangent&&(C[R++]=a.x,C[R++]=a.y,C[R++]=a.z),t.bitangent&&(A[O++]=c.x,A[O++]=c.y,A[O++]=c.z)}let N=new fn;return t.position&&(N.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b})),t.normal&&(N.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(N.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.bitangent&&(N.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.st&&(N.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:E})),new at({attributes:N,indices:d,primitiveType:Me.TRIANGLES})}function oT(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Ie.DEFAULT);this._vertexFormat=Ie.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=zn.computeHierarchyPackedLength(t,h)+Ie.packedLength+ee.packedLength+(l(n)?zn.computeHierarchyPackedLength(n,z):1)+2}oT.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 oT(t)};oT.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._stRotation,l(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var cJe=ee.clone(ee.UNIT_SPHERE),lJe=new Ie,uJe={polygonHierarchy:{}};oT.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,cJe);t+=ee.packedLength;let r=Ie.unpack(e,t,lJe);t+=Ie.packedLength;let s=e[t++],a=e[t]===-1?void 0:zn.unpackPolygonHierarchy(e,t,z);l(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return l(n)||(n=new oT(uJe)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};oT.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=l(o),s=n.positions;if(s=To(s,h.equalsEpsilon,!0),s.length<3)return;let a=JQe,c=eJe,u=tJe,f=nJe,d=iJe;if(!S_.computeProjectTo2DArguments(s,mN,f,d))return;if(a=h.cross(f,d,a),a=h.normalize(a,a),!h.equalsEpsilon(mN,h.ZERO,P.EPSILON6)){let M=e._ellipsoid.geodeticSurfaceNormal(mN,sJe);h.dot(a,M)<0&&(a=h.negate(a,a),f=h.negate(f,f))}let g=S_.createProjectPointsTo2DFunction(mN,f,d),m=S_.createProjectPointTo2DFunction(mN,f,d);t.tangent&&(c=h.clone(f,c)),t.bitangent&&(u=h.clone(d,u));let x=zn.polygonsFromHierarchy(n,r,g,!1),b=x.hierarchy,T=x.polygons,C=function(M){return M},A=r?zn.polygonsFromHierarchy(o,!0,C,!1).polygons:void 0;if(b.length===0)return;s=b[0].outerRing;let E=se.fromPoints(s),v=zn.computeBoundingRectangle(a,m,s,i,ZQe),D=[];for(let M=0;M<T.length;M++){let N=new St({geometry:aJe(T[M],t,v,i,r?A[M]:void 0,m,a,c,u)});D.push(N)}let O=Ln.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=Ne.createTypedArray(O.attributes.position.values.length/3,O.indices);let R=O.attributes;return t.position||delete R.position,new at({attributes:R,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:E})};var pN=oT;var Mhe=[],c4=[];function fJe(e,t,n,i,o){let s=$r.fromPoints(t,e).projectPointsOntoPlane(t,Mhe);si.computeWindingOrder2D(s)===hs.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),u=0;u<f;u++){let m=t[u],x=t[(u+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===Jt.GEODESIC)for(u=0;u<f;u++)m+=zn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Jt.RHUMB)for(u=0;u<f;u++)m+=zn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(m*3),u=0;u<f;u++){let x;o===Jt.GEODESIC?x=zn.subdivideLine(t[u],t[(u+1)%f],n,c4):o===Jt.RHUMB&&(x=zn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,c4));let b=x.length;for(let T=0;T<b;++T)c[d++]=x[T]}}f=c.length/3;let p=f*2,g=Ne.createTypedArray(f,p);for(d=0,u=0;u<f-1;u++)g[d++]=u,g[d++]=u+1;return g[d++]=f-1,g[d++]=0,new St({geometry:new at({attributes:new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Me.LINES})})}function dJe(e,t,n,i,o){let s=$r.fromPoints(t,e).projectPointsOntoPlane(t,Mhe);si.computeWindingOrder2D(s)===hs.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),u=0;u<f;++u){d[u]=p/3;let b=t[u],T=t[(u+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===Jt.GEODESIC)for(u=0;u<f;u++)b+=zn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Jt.RHUMB)for(u=0;u<f;u++)b+=zn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(b*3*2),u=0;u<f;++u){d[u]=p/3;let T;o===Jt.GEODESIC?T=zn.subdivideLine(t[u],t[(u+1)%f],n,c4):o===Jt.RHUMB&&(T=zn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,c4));let C=T.length;for(let A=0;A<C;++A)c[p++]=T[A]}}f=c.length/(3*2);let g=d.length,m=(f*2+g)*2,x=Ne.createTypedArray(f+g,m);for(p=0,u=0;u<f;++u)x[p++]=u,x[p++]=(u+1)%f,x[p++]=u+f,x[p++]=(u+1)%f+f;for(u=0;u<g;u++){let b=d[u];x[p++]=b,x[p++]=b+f}return new St({geometry:new at({attributes:new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:x,primitiveType:Me.LINES})})}function rT(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,ee.default),i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.perPositionHeight,!1),r=o&&l(e.extrudedHeight),s=y(e.arcType,Jt.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!r){let u=Math.max(a,c);c=Math.min(a,c),a=u}this._ellipsoid=ee.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)+ee.packedLength+8}rT.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.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 hJe=ee.clone(ee.UNIT_SPHERE),mJe={polygonHierarchy:{}};rT.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,hJe);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,u=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return l(n)||(n=new rT(mJe)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=u,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};rT.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 rT(t)};rT.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=[],u=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=dJe(t,s[m],u,o,r),a.geometry=zn.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length/3,C=new Uint8Array(T);e._offsetAttribute===an.TOP?C=C.fill(1,0,T/2):(g=e._offsetAttribute===an.NONE?0:1,C=C.fill(g)),a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}c.push(a)}else for(m=0;m<s.length;m++){if(a=fJe(t,s[m],u,o,r),a.geometry.attributes.position.values=si.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length;g=e._offsetAttribute===an.NONE?0:1;let C=new Uint8Array(T/3).fill(g);a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}c.push(a)}let x=Ln.combineInstances(c)[0],b=se.fromVertices(x.attributes.position.values);return new at({attributes:x.attributes,indices:x.indices,primitiveType:x.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};var _N=rT;var Lhe="Entity polygons cannot have both height and perPositionHeight.  height will be ignored",Nhe="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",Fhe=new H,Bhe=h.ZERO,khe=new h,Vhe=new re,pJe=[],_Je=new z;function gJe(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 Uu(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new gJe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}l(Object.create)&&(Uu.prototype=Object.create(Wn.prototype),Uu.prototype.constructor=Uu);Uu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o={show:new gn(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 Ut){let s;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,Fhe)),l(s)||(s=H.WHITE),o.color=Wt.fromColor(s)}l(i.offsetAttribute)&&(o.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bhe,khe)));let r;return i.perPositionHeight&&!l(i.extrudedHeight)?r=new pN(i):r=new e_(i),new St({id:t,geometry:r,attributes:o})};Uu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Fhe),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(o),distanceDisplayCondition:kn.fromDistanceDisplayCondition(r),offset:void 0};l(i.offsetAttribute)&&(s.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bhe,khe)));let a;return i.perPositionHeight&&!l(i.extrudedHeight)?a=new Yf(i):a=new _N(i),new St({id:t,geometry:a,attributes:s})};Uu.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!l(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.ellipsoid,r=$r.fromPoints(i,o),s=r.projectPointsOntoPlane(i,pJe),a=s.length,c=0,u=a-1,f=new z;for(let p=0;p<a;u=p++){let g=s[p],m=s[u],x=g.x*m.y-m.x*g.y,b=z.add(g,m,_Je);b=z.multiplyByScalar(b,x,b),f=z.add(f,b,f),c+=x}let d=1/(c*3);return f=z.multiplyByScalar(f,d,f),r.projectPointOntoEllipsoid(f,t)};Uu.prototype._isHidden=function(e,t){return!l(t.hierarchy)||ii.prototype._isHidden.call(this,e,t)};Uu.prototype._isOnTerrain=function(e,t){let n=Wn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=l(i)&&(i.isConstant?i.getValue(He.MINIMUM_VALUE):!0);return n&&!o};Uu.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.textureCoordinates)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.perPositionHeight)||!Y.isConstant(t.closeTop)||!Y.isConstant(t.closeBottom)||!Y.isConstant(t.zIndex)||!Y.isConstant(t.arcType)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};Uu.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(He.MINIMUM_VALUE),r=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),s=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),a=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),c=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE),u=Y.getValueOrDefault(t.perPositionHeight,He.MINIMUM_VALUE,!1);r=Wn.getGeometryHeight(r,s);let f;if(u?(l(r)&&(r=void 0,xt(Lhe)),s!==Ye.NONE&&u&&(r=void 0,xt(Nhe))):(l(a)&&!l(r)&&(r=0),f=Wn.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),i.stRotation=Y.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),i.perPositionHeight=u,i.closeTop=Y.getValueOrDefault(t.closeTop,He.MINIMUM_VALUE,!0),i.closeBottom=Y.getValueOrDefault(t.closeBottom,He.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=r,i.arcType=Y.getValueOrDefault(t.arcType,He.MINIMUM_VALUE,Jt.GEODESIC),i.textureCoordinates=Y.getValueOrUndefined(t.textureCoordinates,He.MINIMUM_VALUE),a=Wn.getGeometryExtrudedHeight(a,c),a===Wn.CLAMP_TO_GROUND){let d=e_.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,Vhe);a=li.getMinimumMaximumHeights(d).minimumTerrainHeight}i.extrudedHeight=a};Uu.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=l(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};Uu.DynamicGeometryUpdater=JE;function JE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(JE.prototype=Object.create(ni.prototype),JE.prototype.constructor=JE);JE.prototype._isHidden=function(e,t,n){return!l(this._options.polygonHierarchy)||ni.prototype._isHidden.call(this,e,t,n)};JE.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=Y.getValueOrUndefined(t.hierarchy,n);let o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE),a=Y.getValueOrUndefined(t.extrudedHeight,n),c=Y.getValueOrUndefined(t.perPositionHeight,n);o=Wn.getGeometryHeight(o,s);let u;if(c?(l(o)&&(o=void 0,xt(Lhe)),r!==Ye.NONE&&c&&(o=void 0,xt(Nhe))):(l(a)&&!l(o)&&(o=0),u=Wn.computeGeometryOffsetAttribute(o,r,a,s)),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=Y.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=Y.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=Y.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=Y.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=u,i.height=o,i.arcType=Y.getValueOrDefault(t.arcType,n,Jt.GEODESIC),a=Wn.getGeometryExtrudedHeight(a,s),a===Wn.CLAMP_TO_GROUND){let f=e_.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,Vhe);a=li.getMinimumMaximumHeights(f).minimumTerrainHeight}i.extrudedHeight=a};var gN=Uu;function yJe(e,t,n,i){let o=new fn;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=si.triangulate(t),u=(a-1)*r*6+c.length*2,f=Ne.createTypedArray(s,u),d,p,g,m,x,b,T=r*2,C=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[C++]=m,f[C++]=g,f[C++]=x,f[C++]=x,f[C++]=g,f[C++]=b;g=r*2-2+d*r*2,m=g+1,x=m+T,b=g+T,f[C++]=m,f[C++]=g,f[C++]=x,f[C++]=x,f[C++]=g,f[C++]=b}if(i.st||i.tangent||i.bitangent){let v=new Float32Array(s*2),D=1/(a-1),O=1/n.height,R=n.height/2,M,N,_=0;for(d=0;d<a;d++){for(M=d*D,N=O*(t[0].y+R),v[_++]=M,v[_++]=N,p=1;p<r;p++)N=O*(t[p].y+R),v[_++]=M,v[_++]=N,v[_++]=M,v[_++]=N;N=O*(t[0].y+R),v[_++]=M,v[_++]=N}for(p=0;p<r;p++)M=0,N=O*(t[p].y+R),v[_++]=M,v[_++]=N;for(p=0;p<r;p++)M=(a-1)*D,N=O*(t[p].y+R),v[_++]=M,v[_++]=N;o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(v)})}let A=s-r*2;for(d=0;d<c.length;d+=3){let v=c[d]+A,D=c[d+1]+A,O=c[d+2]+A;f[C++]=v,f[C++]=D,f[C++]=O,f[C++]=O+r,f[C++]=D+r,f[C++]=v+r}let E=new at({attributes:o,indices:f,boundingSphere:se.fromVertices(e),primitiveType:Me.TRIANGLES});if(i.normal&&(E=Ln.computeNormal(E)),i.tangent||i.bitangent){try{E=Ln.computeTangentAndBitangent(E)}catch{xt("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(E.attributes.tangent=void 0),i.bitangent||(E.attributes.bitangent=void 0),i.st||(E.attributes.st=void 0)}return E}function xN(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+ee.packedLength+Ie.packedLength+2}xN.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+=z.packedLength)z.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Uhe=ee.clone(ee.UNIT_SPHERE),zhe=new Ie,yN={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Uhe,vertexFormat:zhe,cornerType:void 0,granularity:void 0};xN.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+=z.packedLength)s[i]=z.unpack(e,t);let a=ee.unpack(e,t,Uhe);t+=ee.packedLength;let c=Ie.unpack(e,t,zhe);t+=Ie.packedLength;let u=e[t++],f=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._vertexFormat=Ie.clone(c,n._vertexFormat),n._cornerType=u,n._granularity=f,n):(yN.polylinePositions=r,yN.shapePositions=s,yN.cornerType=u,yN.granularity=f,new xN(yN))};var xJe=new je;xN.createGeometry=function(e){let t=e._positions,n=To(t,h.equalsEpsilon),i=e._shape;if(i=lh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;si.computeWindingOrder2D(i)===hs.CLOCKWISE&&i.reverse();let o=je.fromPoints(i,xJe),r=lh.computePositions(n,i,o,e,!0);return yJe(r,i,o,e._vertexFormat)};var bN=xN;function bJe(e,t){let n=new fn;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=Ne.createTypedArray(o,2*i*(s+1)),c,u,f=0;c=0;let d=c*i;for(u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+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(u=0;u<i;u++)a[f++]=u+g,a[f++]=u+m}return new at({attributes:n,indices:Ne.createTypedArray(o,a),boundingSphere:se.fromVertices(e),primitiveType:Me.LINES})}function CN(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+ee.packedLength+2}CN.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+=z.packedLength)z.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Hhe=ee.clone(ee.UNIT_SPHERE),TN={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Hhe,height:void 0,cornerType:void 0,granularity:void 0};CN.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+=z.packedLength)s[i]=z.unpack(e,t);let a=ee.unpack(e,t,Hhe);t+=ee.packedLength;let c=e[t++],u=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=u,n):(TN.polylinePositions=r,TN.shapePositions=s,TN.cornerType=c,TN.granularity=u,new CN(TN))};var TJe=new je;CN.createGeometry=function(e){let t=e._positions,n=To(t,h.equalsEpsilon),i=e._shape;if(i=lh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;si.computeWindingOrder2D(i)===hs.CLOCKWISE&&i.reverse();let o=je.fromPoints(i,TJe),r=lh.computePositions(n,i,o,e,!1);return bJe(r,i)};var AN=CN;var Ghe=new H;function CJe(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 Rm(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new CJe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}l(Object.create)&&(Rm.prototype=Object.create(ii.prototype),Rm.prototype.constructor=Rm);Rm.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Ghe)),l(c)||(c=H.WHITE),o=Wt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new St({id:t,geometry:new bN(this._options),attributes:i})};Rm.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Ghe),o=this._distanceDisplayConditionProperty.getValue(e);return new St({id:t,geometry:new AN(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};Rm.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.shape)||ii.prototype._isHidden.call(this,e,t)};Rm.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!Y.isConstant(t.granularity)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.cornerType)};Rm.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof Ut;o.vertexFormat=r?ln.VERTEX_FORMAT:so.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=l(n)?n.getValue(He.MINIMUM_VALUE):void 0,o.cornerType=l(i)?i.getValue(He.MINIMUM_VALUE):void 0};Rm.DynamicGeometryUpdater=eS;function eS(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(eS.prototype=Object.create(ni.prototype),eS.prototype.constructor=eS);eS.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.polylinePositions)||!l(i.shapePositions)||ni.prototype._isHidden.call(this,e,t,n)};eS.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=Y.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=Y.getValueOrUndefined(t.shape,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.cornerType=Y.getValueOrUndefined(t.cornerType,n)};var EN=Rm;var eq=new h,qhe=new h,Yhe=new h,Xhe=new h,Khe=new re,AJe=new z,EJe=new se,SJe=new se;function Zhe(e,t){let n=new at({attributes:new fn,primitiveType:Me.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 vJe(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,u=Xhe,f=Yhe,d=qhe;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let g=h.fromArray(e,p,eq),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,u),u)),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]=u.x,a[m]=u.y,a[x]=u.z),c+=3}return Zhe(t,{positions:e,normals:r,tangents:s,bitangents:a})}var tq=new h,$he=new h;function wJe(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,u=0,f=!0,d=Xhe,p=Yhe,g=qhe;if(t.normal||t.tangent||t.bitangent)for(let m=0;m<i;m+=6){let x=h.fromArray(e,m,eq),b=h.fromArray(e,(m+6)%i,tq);if(f){let T=h.fromArray(e,(m+3)%i,$he);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[u++]=d.x,s[u++]=d.y,s[u++]=d.z,s[u++]=d.x,s[u++]=d.y,s[u++]=d.z)}return Zhe(t,{positions:e,normals:o,tangents:r,bitangents:s})}function Qhe(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,u=o,f=o,d=0;s&&(c=1,f-=1,d+=1),a&&(u-=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=eq,T=AJe,C=Number.MAX_VALUE,A=Number.MAX_VALUE,E=-Number.MAX_VALUE,v=-Number.MAX_VALUE;for(let S=c;S<u;++S)for(let w=0;w<r;++w)Ds.computePosition(t,i,n.st,S,w,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,C=Math.min(C,T.x),A=Math.min(A,T.y),E=Math.max(E,T.x),v=Math.max(v,T.y));if(s&&(Ds.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,C=T.x,A=T.y,E=T.x,v=T.y)),a&&(Ds.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,C=Math.min(C,T.x),A=Math.min(A,T.y),E=Math.max(E,T.x),v=Math.max(v,T.y))),n.st&&(C<0||A<0||E>1||v>1))for(let S=0;S<g.length;S+=2)g[S]=(g[S]-C)/(E-C),g[S+1]=(g[S+1]-A)/(v-A);let D=vJe(p,n,i,t.tangentRotationMatrix),O=6*(r-1)*(f-1);s&&(O+=3*(r-1)),a&&(O+=3*(r-1));let R=Ne.createTypedArray(d,O),M=0,N=0,_;for(_=0;_<f-1;++_){for(let S=0;S<r-1;++S){let w=M,I=w+r,L=I+1,B=w+1;R[N++]=w,R[N++]=I,R[N++]=B,R[N++]=B,R[N++]=I,R[N++]=L,++M}++M}if(s||a){let S=d-1,w=d-1;s&&a&&(S=d-2);let I,L;if(M=0,s)for(_=0;_<r-1;_++)I=M,L=I+1,R[N++]=S,R[N++]=I,R[N++]=L,++M;if(a)for(M=(f-1)*r,_=0;_<r-1;_++)I=M,L=I+1,R[N++]=I,R[N++]=w,R[N++]=L,++M}return D.indices=R,n.st&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function tS(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 nS(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 nq=new Ie;function DJe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,u=t.width,f;if(n){let Be=Ie.clone(o,nq);Be.normal=!0,e._vertexFormat=Be}let d=Qhe(e,t);n&&(e._vertexFormat=o);let p=si.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=si.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,C=o.tangent?new Float32Array(m):void 0,A=o.bitangent?new Float32Array(m):void 0,E=o.st?new Float32Array(m/3*2):void 0,v,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 Be=new Float32Array(m);for(f=0;f<g;f++)D[f]=-D[f];Be.set(D,g),d.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:Be})}let O,R=l(i);if(R){let Be=g/3*2,Yt=new Uint8Array(Be);i===an.TOP?Yt=Yt.fill(1,0,Be/2):(O=i===an.NONE?0:1,Yt=Yt.fill(O)),d.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Yt})}if(o.tangent){let Be=d.attributes.tangent.values;for(C.set(Be),f=0;f<g;f++)Be[f]=-Be[f];C.set(Be,g),d.attributes.tangent.values=C}if(o.bitangent){let Be=d.attributes.bitangent.values;A.set(Be),A.set(Be,g),d.attributes.bitangent.values=A}o.st&&(v=d.attributes.st.values,E.set(v),E.set(v,g/3*2),d.attributes.st.values=E);let M=d.indices,N=M.length,_=g/3,S=Ne.createTypedArray(m/3,N*2);for(S.set(M),f=0;f<N;f+=3)S[f+N]=M[f+2]+_,S[f+1+N]=M[f+1]+_,S[f+2+N]=M[f]+_;d.indices=S;let w=t.northCap,I=t.southCap,L=c,B=2,U=0,V=4,G=4;w&&(B-=1,L-=1,U+=1,V-=2,G-=1),I&&(B-=1,L-=1,U+=1,V-=2,G-=1),U+=B*u+2*L-V;let k=(U+G)*2,W=new Float64Array(k*3),q=n?new Float32Array(k*3):void 0,J=R?new Uint8Array(k):void 0,j=o.st?new Float32Array(k*2):void 0,K=i===an.TOP;R&&!K&&(O=i===an.ALL?1:0,J=J.fill(O));let Q=0,de=0,ye=0,ae=0,_e=u*L,xe;for(f=0;f<_e;f+=u)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);if(I){let Be=w?_e+1:_e;for(xe=Be*3,f=0;f<2;f++)W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,Be*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1)}else for(f=_e-u;f<_e;f++)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);for(f=_e-1;f>0;f-=u)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);if(w){let Be=_e;for(xe=Be*3,f=0;f<2;f++)W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,Be*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1)}else for(f=u-1;f>=0;f--)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);let De=wJe(W,o,a);o.st&&(De.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:j})),n&&(De.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:q})),R&&(De.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:J}));let Ae=Ne.createTypedArray(k,U*6),ke,ze,tt,wt;g=W.length/3;let pt=0;for(f=0;f<g-1;f+=2){ke=f,wt=(ke+2)%g;let Be=h.fromArray(W,ke*3,tq),Yt=h.fromArray(W,wt*3,$he);h.equalsEpsilon(Be,Yt,P.EPSILON10)||(ze=(ke+1)%g,tt=(ze+2)%g,Ae[pt++]=ke,Ae[pt++]=ze,Ae[pt++]=wt,Ae[pt++]=wt,Ae[pt++]=ze,Ae[pt++]=tt)}return De.indices=Ae,De=Ln.combineInstances([new St({geometry:d}),new St({geometry:De})]),De[0]}var IJe=[new h,new h,new h,new h],Jhe=new fe,PJe=new fe;function iq(e,t,n,i,o){if(n===0)return re.clone(e,o);let r=Ds.computeOptions(e,t,n,0,Khe,Jhe),s=r.height,a=r.width,c=IJe;return Ds.computePosition(r,i,!1,0,0,c[0]),Ds.computePosition(r,i,!1,0,a-1,c[1]),Ds.computePosition(r,i,!1,s-1,0,c[2]),Ds.computePosition(r,i,!1,s-1,a-1,c[3]),re.fromCartesianArray(c,i,o)}function Om(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=re.clone(t),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.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}Om.packedLength=re.packedLength+ee.packedLength+Ie.packedLength+7;Om.pack=function(e,t,n){return n=y(n,0),re.pack(e._rectangle,t,n),n+=re.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.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 eme=new re,tme=ee.clone(ee.UNIT_SPHERE),Qy={rectangle:eme,ellipsoid:tme,vertexFormat:nq,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Om.unpack=function(e,t,n){t=y(t,0);let i=re.unpack(e,t,eme);t+=re.packedLength;let o=ee.unpack(e,t,tme);t+=ee.packedLength;let r=Ie.unpack(e,t,nq);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return l(n)?(n._rectangle=re.clone(i,n._rectangle),n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=u,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(Qy.granularity=s,Qy.height=a,Qy.rotation=c,Qy.stRotation=u,Qy.extrudedHeight=f,Qy.shadowVolume=d,Qy.offsetAttribute=p===-1?void 0:p,new Om(Qy))};Om.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,ee.default),r=y(e.rotation,0);return iq(n,i,r,o,t)};var RJe=new $,Whe=new Oe,OJe=new fe;Om.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=Ds.computeOptions(t,e._granularity,i,o,Khe,Jhe,PJe),a=RJe;if(o!==0||i!==0){let g=re.center(t,OJe),m=n.geodeticSurfaceNormalCartographic(g,tq);Oe.fromAxisAngle(m,-o,Whe),$.fromQuaternion(Whe,a)}else $.clone($.IDENTITY,a);let c=e._surfaceHeight,u=e._extrudedHeight,f=!P.equalsEpsilon(c,u,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=DJe(e,s);let g=se.fromRectangle3D(t,n,c,SJe),m=se.fromRectangle3D(t,n,u,EJe);p=se.union(g,m)}else{if(d=Qhe(e,s),d.attributes.position.values=si.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),l(e._offsetAttribute)){let g=d.attributes.position.values.length,m=e._offsetAttribute===an.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 at({attributes:d.attributes,indices:d.indices,primitiveType:d.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Om.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Om({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};var jhe=new re,MJe=[new z,new z,new z],LJe=new Bi,NJe=new fe;function FJe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=re.clone(e._rectangle,jhe),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=iq(t,n,o,i,jhe),s=MJe;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=Bi.fromRotation(e._stRotation,LJe),u=re.center(a,NJe);for(let m=0;m<3;++m){let x=s[m];x.x-=u.longitude,x.y-=u.latitude,Bi.multiplyByVector(c,x,x),x.x+=u.longitude,x.y+=u.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 z.pack(f,g),z.pack(d,g,2),z.pack(p,g,4),g}Object.defineProperties(Om.prototype,{rectangle:{get:function(){return l(this._rotatedRectangle)||(this._rotatedRectangle=iq(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=FJe(this)),this._textureCoordinateRotationPoints}}});var sT=Om;var nme=new H,ime=h.ZERO,ome=new h,rme=new re,BJe=new re,kJe=new fe;function VJe(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 yh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new VJe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}l(Object.create)&&(yh.prototype=Object.create(Wn.prototype),yh.prototype.constructor=yh);yh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(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 Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,nme)),l(o)||(o=H.WHITE),i.color=Wt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,ime,ome))),new St({id:t,geometry:new sT(this._options),attributes:i})};yh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,nme),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,ime,ome))),new St({id:t,geometry:new Mb(this._options),attributes:r})};yh.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.rectangle.coordinates,e,BJe);if(!l(n))return;let i=re.center(n,kJe);return fe.toCartesian(i,ee.default,t)};yh.prototype._isHidden=function(e,t){return!l(t.coordinates)||ii.prototype._isHidden.call(this,e,t)};yh.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.rotation)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};yh.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),o=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),r=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),s=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE);l(r)&&!l(i)&&(i=0);let a=this._options;a.vertexFormat=n?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(He.MINIMUM_VALUE,a.rectangle),a.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),a.stRotation=Y.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),a.rotation=Y.getValueOrUndefined(t.rotation,He.MINIMUM_VALUE),a.offsetAttribute=Wn.computeGeometryOffsetAttribute(i,o,r,s),a.height=Wn.getGeometryHeight(i,o),r=Wn.getGeometryExtrudedHeight(r,s),r===Wn.CLAMP_TO_GROUND&&(r=li.getMinimumMaximumHeights(sT.computeRectangle(a,rme)).minimumTerrainHeight),a.extrudedHeight=r};yh.DynamicGeometryUpdater=iS;function iS(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(iS.prototype=Object.create(ni.prototype),iS.prototype.constructor=iS);iS.prototype._isHidden=function(e,t,n){return!l(this._options.rectangle)||ni.prototype._isHidden.call(this,e,t,n)};iS.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE);l(s)&&!l(o)&&(o=0),i.rectangle=Y.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.rotation=Y.getValueOrUndefined(t.rotation,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(sT.computeRectangle(i,rme)).minimumTerrainHeight),i.extrudedHeight=s};var SN=yh;var sme={};function UJe(e,t){return P.equalsEpsilon(e.latitude,t.latitude,P.EPSILON10)&&P.equalsEpsilon(e.longitude,t.longitude,P.EPSILON10)}var zJe=new fe,HJe=new fe;function GJe(e,t,n,i){t=To(t,h.equalsEpsilon);let o=t.length;if(o<2)return;let r=l(i),s=l(n),a=new Array(o),c=new Array(o),u=new Array(o),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,zJe);s&&(d.height=n[0]),c[0]=d.height,r?u[0]=i[0]:u[0]=0;let p=c[0],g=u[0],m=p===g,x=1;for(let b=1;b<o;++b){let T=t[b],C=e.cartesianToCartographic(T,HJe);s&&(C.height=n[b]),m=m&&C.height===0,UJe(d,C)?d.height<C.height&&(c[x-1]=C.height):(a[x]=T,c[x]=C.height,r?u[x]=i[b]:u[x]=0,m=m&&c[x]===u[x],fe.clone(C,d),++x)}if(!(m||x<2))return a.length=x,c.length=x,u.length=x,{positions:a,topHeights:c,bottomHeights:u}}var WJe=new Array(2),jJe=new Array(2),qJe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};sme.computePositions=function(e,t,n,i,o,r){let s=GJe(e,t,n,i);if(!l(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,u,f,d=P.chordLength(o,e.maximumRadius),p=qJe;if(p.minDistance=d,p.ellipsoid=e,r){let g=0,m;for(m=0;m<a-1;m++)g+=Ii.numberOfPoints(t[m],t[m+1],d)+1;u=new Float64Array(g*3),f=new Float64Array(g*3);let x=WJe,b=jJe;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 C=Ii.generateArc(p);u.set(C,T),b[0]=i[m],b[1]=i[m+1],f.set(Ii.generateArc(p),T),T+=C.length}}else p.positions=t,p.height=n,u=new Float64Array(Ii.generateArc(p)),p.height=i,f=new Float64Array(Ii.generateArc(p));return{bottomPositions:f,topPositions:u,numCorners:c}};var aT=sme;var oq=new h,l4=new h,YJe=new h,ame=new h,XJe=new h,KJe=new h,ZJe=new h;function cT(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.ellipsoid,ee.default);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Ie.clone(o),this._granularity=r,this._ellipsoid=ee.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;l(i)&&(a+=i.length),l(n)&&(a+=n.length),this.packedLength=a+ee.packedLength+Ie.packedLength+1}cT.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=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n]=e._granularity,t};var cme=ee.clone(ee.UNIT_SPHERE),lme=new Ie,vN={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:cme,vertexFormat:lme,granularity:void 0};cT.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=ee.unpack(e,t,cme);t+=ee.packedLength;let u=Ie.unpack(e,t,lme);t+=Ie.packedLength;let f=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ee.clone(c,n._ellipsoid),n._vertexFormat=Ie.clone(u,n._vertexFormat),n._granularity=f,n):(vN.positions=r,vN.minimumHeights=s,vN.maximumHeights=a,vN.granularity=f,new cT(vN))};cT.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++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 cT(c)};cT.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=aT.computePositions(s,t,i,n,r,!0);if(!l(a))return;let c=a.bottomPositions,u=a.topPositions,f=a.numCorners,d=u.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,C=0,A=0,E=0,v=0,D=0,O=ZJe,R=KJe,M=XJe,N=!0;d/=3;let _,S=0,w=1/(d-f-1);for(_=0;_<d;++_){let V=_*3,G=h.fromArray(u,V,oq),k=h.fromArray(c,V,l4);if(o.position&&(g[C++]=k.x,g[C++]=k.y,g[C++]=k.z,g[C++]=G.x,g[C++]=G.y,g[C++]=G.z),o.st&&(T[D++]=S,T[D++]=0,T[D++]=S,T[D++]=1),o.normal||o.tangent||o.bitangent){let W=h.clone(h.ZERO,ame),q=h.subtract(G,s.geodeticSurfaceNormal(G,l4),l4);if(_+1<d&&(W=h.fromArray(u,V+3,ame)),N){let J=h.subtract(W,G,YJe),j=h.subtract(q,G,oq);O=h.normalize(h.cross(j,J,O),O),N=!1}h.equalsEpsilon(G,W,P.EPSILON10)?N=!0:(S+=w,o.tangent&&(R=h.normalize(h.subtract(W,G,R),R)),o.bitangent&&(M=h.normalize(h.cross(O,R,M),M))),o.normal&&(m[A++]=O.x,m[A++]=O.y,m[A++]=O.z,m[A++]=O.x,m[A++]=O.y,m[A++]=O.z),o.tangent&&(x[v++]=R.x,x[v++]=R.y,x[v++]=R.z,x[v++]=R.x,x[v++]=R.y,x[v++]=R.z),o.bitangent&&(b[E++]=M.x,b[E++]=M.y,b[E++]=M.z,b[E++]=M.x,b[E++]=M.y,b[E++]=M.z)}}let I=new fn;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 L=p/3;p-=6*(f+1);let B=Ne.createTypedArray(L,p),U=0;for(_=0;_<L-2;_+=2){let V=_,G=_+2,k=h.fromArray(g,V*3,oq),W=h.fromArray(g,G*3,l4);if(h.equalsEpsilon(k,W,P.EPSILON10))continue;let q=_+1,J=_+3;B[U++]=q,B[U++]=V,B[U++]=J,B[U++]=J,B[U++]=V,B[U++]=G}return new at({attributes:I,indices:B,primitiveType:Me.TRIANGLES,boundingSphere:new se.fromVertices(g)})};var wN=cT;var ume=new h,fme=new h;function lT(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,ee.default);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=ee.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;l(i)&&(s+=i.length),l(n)&&(s+=n.length),this.packedLength=s+ee.packedLength+1}lT.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=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n]=e._granularity,t};var dme=ee.clone(ee.UNIT_SPHERE),DN={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:dme,granularity:void 0};lT.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=ee.unpack(e,t,dme);t+=ee.packedLength;let u=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ee.clone(c,n._ellipsoid),n._granularity=u,n):(DN.positions=r,DN.minimumHeights=s,DN.maximumHeights=a,DN.granularity=u,new lT(DN))};lT.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new lT(c)};lT.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=aT.computePositions(r,t,i,n,o,!1);if(!l(s))return;let a=s.bottomPositions,c=s.topPositions,u=c.length,f=u*2,d=new Float64Array(f),p=0;u/=3;let g;for(g=0;g<u;++g){let C=g*3,A=h.fromArray(c,C,ume),E=h.fromArray(a,C,fme);d[p++]=E.x,d[p++]=E.y,d[p++]=E.z,d[p++]=A.x,d[p++]=A.y,d[p++]=A.z}let m=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),x=f/3;f=2*x-4+x;let b=Ne.createTypedArray(x,f),T=0;for(g=0;g<x-2;g+=2){let C=g,A=g+2,E=h.fromArray(d,C*3,ume),v=h.fromArray(d,A*3,fme);if(h.equalsEpsilon(E,v,P.EPSILON10))continue;let D=g+1,O=g+3;b[T++]=D,b[T++]=C,b[T++]=D,b[T++]=O,b[T++]=C,b[T++]=A}return b[T++]=x-2,b[T++]=x-1,new at({attributes:m,indices:b,primitiveType:Me.LINES,boundingSphere:new se.fromVertices(d)})};var IN=lT;var hme=new H;function $Je(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 xh(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new $Je(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}l(Object.create)&&(xh.prototype=Object.create(ii.prototype),xh.prototype.constructor=xh);xh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,hme)),l(c)||(c=H.WHITE),o=Wt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new St({id:t,geometry:new wN(this._options),attributes:i})};xh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,hme),o=this._distanceDisplayConditionProperty.getValue(e);return new St({id:t,geometry:new IN(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};xh.prototype._isHidden=function(e,t){return!l(t.positions)||ii.prototype._isHidden.call(this,e,t)};xh.prototype._getIsClosed=function(e){return!1};xh.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!Y.isConstant(t.minimumHeights)||!Y.isConstant(t.maximumHeights)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.granularity)};xh.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof Ut,s=this._options;s.vertexFormat=r?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(He.MINIMUM_VALUE,s.positions),s.minimumHeights=l(n)?n.getValue(He.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=l(i)?i.getValue(He.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=l(o)?o.getValue(He.MINIMUM_VALUE):void 0};xh.DynamicGeometryUpdater=oS;function oS(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(oS.prototype=Object.create(ni.prototype),oS.prototype.constructor=oS);oS.prototype._isHidden=function(e,t,n){return!l(this._options.positions)||ni.prototype._isHidden.call(this,e,t,n)};oS.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=Y.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=Y.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=Y.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=Y.getValueOrUndefined(t.granularity,n)};var PN=xh;var uT=[S1,KL,UL,cN,uN,hN,gN,EN,SN,PN];function fT(e,t){this.entity=e,this.scene=t;let n=new Array(uT.length),i=new me,o=new fr;for(let r=0;r<n.length;r++){let s=new uT[r](e,t);o.add(s.geometryChanged,a=>{i.raiseEvent(a)}),n[r]=s}this.updaters=n,this.geometryChanged=i,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(fT.prototype._onEntityPropertyChanged,this)}fT.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)};fT.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};fT.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),ue(this)};fT.registerUpdater=function(e){uT.includes(e)||uT.push(e)};fT.unregisterUpdater=function(e){if(uT.includes(e)){let t=uT.indexOf(e);uT.splice(t,1)}};var dT=fT;var mme=new H,QJe=new Lt,JJe=new Lt,eet=h.ZERO,tet=new h;function bh(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 Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.subscriptions=new Et,this.showsUpdated=new Et,this.itemsToRemove=[],this.invalidated=!1;let a;l(o)&&(a=o.definitionChanged.addEventListener(bh.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}bh.prototype.onMaterialChanged=function(){this.invalidated=!0};bh.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:l(t)?t.equals(n):!1};bh.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||!Y.isConstant(e.distanceDisplayConditionProperty)||!Y.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)}))}};bh.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 l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};bh.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){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;l(this.depthFailAppearanceType)&&(l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new Dn({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{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=Jo.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 u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let b=u.fillMaterialProperty.color,T=Y.getValueOrDefault(b,e,H.WHITE,mme);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=Wt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}if(l(this.depthFailAppearanceType)&&u.depthFailMaterialProperty instanceof Ut&&(!u.depthFailMaterialProperty.isConstant||c)){let b=u.depthFailMaterialProperty.color,T=Y.getValueOrDefault(b,e,H.WHITE,mme);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=Wt.toValue(T,d.depthFailColor))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,JJe,QJe);Lt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,eet,tet);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Qi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};bh.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);l(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=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};bh.prototype.contains=function(e){return this.updaters.contains(e.id)};bh.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};bh.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),l(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function rS(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}rS.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 bh(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function pme(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}rS.prototype.remove=function(e){pme(this._solidItems,e)||pme(this._translucentItems,e)};function _me(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 u=a[r];s.remove(u),e.add(n,u),i=!0}}return i}function u4(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 u=0;u<c;u++)e.add(n,a[u]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}rS.prototype.update=function(e){let t=u4(this,this._solidItems,e,!0);t=u4(this,this._translucentItems,e,t)&&t;let n=_me(this,this._solidItems,e),i=_me(this,this._translucentItems,e);return(n||i)&&(t=u4(this,this._solidItems,e,t)&&t,t=u4(this,this._translucentItems,e,t)&&t),t};function gme(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 ct.FAILED}rS.prototype.getBoundingSphere=function(e,t){let n=gme(this._solidItems,e,t);return n===ct.FAILED?gme(this._translucentItems,e,t):n};function yme(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}rS.prototype.removeAllPrimitives=function(){yme(this._solidItems),yme(this._translucentItems)};var td=rS;var net=new Lt,iet=new Lt,oet=h.ZERO,ret=new h;function Th(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 Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Th.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et}Th.prototype.onMaterialChanged=function(){this.invalidated=!0};Th.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=l(t)&&t.equals(n);return r=(!l(i)&&!l(o)||l(i)&&i.equals(o))&&r,r};Th.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||!Y.isConstant(t.distanceDisplayConditionProperty)||!Y.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};Th.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 l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var set=new H;Th.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){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Jo.getValue(e,this.materialProperty,this.material);let a;l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new Dn({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{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Jo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=Jo.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],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),l(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof Ut&&!c.depthFailMaterialProperty.isConstant){let b=c.depthFailMaterialProperty.color,T=Y.getValueOrDefault(b,e,H.WHITE,set);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=Wt.toValue(T,d.depthFailColor))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,iet,net);Lt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=c.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,oet,ret);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Qi.toValue(b,d.offset))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};Th.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);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Th.prototype.contains=function(e){return this.updaters.contains(e.id)};Th.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};Th.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function sS(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}sS.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 Th(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};sS.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}}};sS.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};sS.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 ct.FAILED};sS.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 nd=sS;var bme=Vo(xme(),1);function f4(){this._tree=new bme.default}function hT(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}hT.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};f4.prototype.insert=function(e,t){let n=hT.fromRectangleAndId(e,t,new hT);this._tree.insert(n)};function aet(e,t){return e.id===t.id}var cet=new hT;f4.prototype.remove=function(e,t){let n=hT.fromRectangleAndId(e,t,cet);this._tree.remove(n,aet)};var uet=new hT;f4.prototype.collides=function(e){let t=hT.fromRectangleAndId("",e,uet);return this._tree.collides(t)};var mT=f4;var fet=new H,det=new Lt,het=new Lt;function X_(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 Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.subscriptions=new Et,this.showsUpdated=new Et,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new mT}X_.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};X_.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||!Y.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)}))}};X_.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 l(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};X_.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)l(i)&&(l(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{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(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 u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let x=u.fillMaterialProperty.color,b=Y.getValueOrDefault(x,e,H.WHITE,fet);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=Wt.toValue(b,d.color))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,het,det);Lt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};X_.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);l(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=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};X_.prototype.contains=function(e){return this.updaters.contains(e.id)};X_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getBoundingSphere(e.entity);return l(i)?(i.clone(t),ct.DONE):ct.FAILED};X_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function aS(e,t){this._batches=[],this._primitives=e,this._classificationType=t}aS.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,o=Y.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 l(r)||(r=new X_(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};aS.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};aS.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 u=0;u<c;u++){n=a[u],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};aS.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 ct.FAILED};aS.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var cS=aS;var met=new Lt,pet=new Lt;function id(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener(id.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new mT}id.prototype.onMaterialChanged=function(){this.invalidated=!0};id.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};id.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:l(t)&&t.equals(n)};id.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||!Y.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};id.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 l(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};id.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)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Jo.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{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Jo.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],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,pet,met);Lt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};id.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);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};id.prototype.contains=function(e){return this.updaters.contains(e.id)};id.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};id.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function lS(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}lS.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=pu.shouldUseSphericalCoordinates(o.geometry.rectangle),s=Y.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let u=n[c];if(u.isMaterial(t)&&u.usingSphericalTextureCoordinates===r&&u.zIndex===s&&!u.overlapping(o.geometry.rectangle)){u.add(e,t,o);return}}let a=new id(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};lS.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}}};lS.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};lS.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 ct.FAILED};lS.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 RN=lS;var _et=new H,get=new Lt,yet=new Lt,xet=h.ZERO,bet=new h;function K_(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 Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.itemsToRemove=[],this.subscriptions=new Et,this.showsUpdated=new Et}K_.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||!Y.isConstant(e.distanceDisplayConditionProperty)||!Y.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)}))}};K_.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 l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};K_.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)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Dn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new ln({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(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 u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.outlineColorProperty.isConstant||c){let b=u.outlineColorProperty,T=Y.getValueOrDefault(b,e,H.WHITE,_et);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=Wt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}let p=u.entity.isShowing&&(u.hasConstantOutline||u.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,yet,get);Lt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,xet,bet);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Qi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};K_.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);l(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=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};K_.prototype.contains=function(e){return this.updaters.contains(e.id)};K_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};K_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function uS(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new Et,this._translucentBatches=new Et}uS.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),l(r)||(r=new K_(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),l(r)||(r=new K_(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};uS.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};uS.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,u,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){o=r[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}}while(d);return f};uS.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 ct.FAILED};uS.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 fS=uS;var Tet=[];function Yl(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 Et,this._removedObjects=new Et,this._changedObjects=new Et;let o=yn.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=er.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new fS(n,e,s,!1),this._outlineBatches[o+s]=new fS(n,e,s,!0),this._closedColorBatches[s]=new td(n,ln,void 0,!0,s,!0),this._closedColorBatches[o+s]=new td(n,ln,void 0,!0,s,!1),this._closedMaterialBatches[s]=new nd(n,so,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new nd(n,so,void 0,!0,s,!1),this._openColorBatches[s]=new td(n,ln,void 0,!1,s,!0),this._openColorBatches[o+s]=new td(n,ln,void 0,!1,s,!1),this._openMaterialBatches[s]=new nd(n,so,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new nd(n,so,void 0,!1,s,!1);let a=Vn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),u=[];if(r)for(s=0;s<a;++s)u.push(new RN(i,s,so)),c[s]=new cS(i,s);else for(s=0;s<a;++s)c[s]=new cS(i,s);this._groundColorBatches=c,this._groundMaterialBatches=u,this._dynamicBatch=new tT(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new Et,this._updaterSets=new Et,this._entityCollection=t,t.collectionChanged.addEventListener(Yl.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,Tet)}Yl.registerUpdater=function(e){dT.registerUpdater(e)};Yl.unregisterUpdater=function(e){dT.unregisterUpdater(e)};Yl.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,u,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaterSets.get(u),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],u=c.id,f=this._updaterSets.get(u),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new dT(c,this._scene),this._updaterSets.set(u,f),f.forEach(function(x){d._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(u,f.geometryChanged.addEventListener(Yl._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 Cet=[],Aet=new se;Yl.prototype.getBoundingSphere=function(e,t){let n=Cet,i=Aet,o=0,r=ct.DONE,s=this._batches,a=s.length,c=e.id,u=this._updaterSets.get(c).updaters;for(let f=0;f<u.length;f++){let d=u[f];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(d,i),r===ct.PENDING)return ct.PENDING;r===ct.DONE&&(n[o]=se.clone(i,n[o]),o++)}}return o===0?ct.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),ct.DONE)};Yl.prototype.isDestroyed=function(){return!1};Yl.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Yl.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(),ue(this)};Yl.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};Yl.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=yn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(l(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 Ut?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof Ut?l(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof Ut?l(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};Yl._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Yl.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 ON=Yl;var Eet=1,vet="30px sans-serif",wet=Wo.FILL,Det=H.WHITE,Iet=H.BLACK,Pet=1,Ret=!1,Oet=new H(.165,.165,.165,.8),Met=new z(7,5),Let=z.ZERO,Net=h.ZERO,Fet=Ye.NONE,Bet=_i.CENTER,ket=Rn.CENTER,Vet=new h,Uet=new H,zet=new H,Het=new H,Get=new z,Wet=new h,jet=new z,qet=new Bt,Yet=new Bt,Xet=new Bt,Ket=new Lt;function Tme(e){this.entity=e,this.label=void 0,this.index=void 0}function Jy(e,t){t.collectionChanged.addEventListener(Jy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}Jy.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,u=r.label,f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=Y.getValueOrUndefined(s._position,e,Vet),c=Y.getValueOrUndefined(a._text,e),f=l(d)&&l(c)),!f){aq(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=Y.getValueOrDefault(a._heightReference,e,Fet);l(u)||(u=n.getLabel(s),u.id=s,r.label=u,p=h.equals(u.position,d)&&u.heightReference===g),u.show=!0,u.position=d,u.text=c,u.scale=Y.getValueOrDefault(a._scale,e,Eet),u.font=Y.getValueOrDefault(a._font,e,vet),u.style=Y.getValueOrDefault(a._style,e,wet),u.fillColor=Y.getValueOrDefault(a._fillColor,e,Det,Uet),u.outlineColor=Y.getValueOrDefault(a._outlineColor,e,Iet,zet),u.outlineWidth=Y.getValueOrDefault(a._outlineWidth,e,Pet),u.showBackground=Y.getValueOrDefault(a._showBackground,e,Ret),u.backgroundColor=Y.getValueOrDefault(a._backgroundColor,e,Oet,Het),u.backgroundPadding=Y.getValueOrDefault(a._backgroundPadding,e,Met,Get),u.pixelOffset=Y.getValueOrDefault(a._pixelOffset,e,Let,jet),u.eyeOffset=Y.getValueOrDefault(a._eyeOffset,e,Net,Wet),u.heightReference=g,u.horizontalOrigin=Y.getValueOrDefault(a._horizontalOrigin,e,Bet),u.verticalOrigin=Y.getValueOrDefault(a._verticalOrigin,e,ket),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,qet),u.pixelOffsetScaleByDistance=Y.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,Yet),u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Xet),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,Ket),u.disableDepthTestDistance=Y.getValueOrUndefined(a._disableDepthTestDistance,e),p&&u._updateClamping()}return!0};Jy.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.label))return ct.FAILED;let i=n.label;return t.center=h.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,ct.DONE};Jy.prototype.isDestroyed=function(){return!1};Jy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Jy.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return ue(this)};Jy.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],l(r._label)&&l(r._position)&&s.set(r.id,new Tme(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Tme(r)):(aq(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],aq(s.get(r.id),r,a),s.remove(r.id)};function aq(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var MN=Jy;var Zet=1,$et=!0,Qet=0,Jet=!0,ett=!0,ttt=yn.ENABLED,ntt=Ye.NONE,itt=H.RED,ott=0,rtt=H.WHITE,stt=dc.HIGHLIGHT,att=.5,ctt=new z(1,1),ltt=new F,utt=new F,Cme=new H,Ame=new Array(4),ftt=new h;function e0(e,t){t.collectionChanged.addEventListener(e0.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new Et,this._onCollectionChanged(t,t.values,[],[])}async function dtt(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await nh.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!l(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{l(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!l(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}e0.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,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,ltt),c=we.createIfNeeded(Y.getValueOrUndefined(a._uri,e)),f=l(d)&&l(c)),!f){l(u)&&u.modelPrimitive&&(u.modelPrimitive.show=!1);continue}if(!l(u)||c.url!==u.url){l(u?.modelPrimitive)&&(i.removeAndDestroy(u.modelPrimitive),delete n[s.id]),u={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1},n[s.id]=u;let m=Y.getValueOrDefault(a._incrementallyLoadTextures,e,Jet);dtt(this,s,c,m)}let p=u.modelPrimitive;if(!l(p))continue;p.show=!0,p.scale=Y.getValueOrDefault(a._scale,e,Zet),p.enableVerticalExaggeration=Y.getValueOrDefault(a._enableVerticalExaggeration,e,$et),p.minimumPixelSize=Y.getValueOrDefault(a._minimumPixelSize,e,Qet),p.maximumScale=Y.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=F.clone(d,p.modelMatrix),p.shadows=Y.getValueOrDefault(a._shadows,e,ttt),p.heightReference=Y.getValueOrDefault(a._heightReference,e,ntt),p.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=Y.getValueOrDefault(a._silhouetteColor,e,itt,Cme),p.silhouetteSize=Y.getValueOrDefault(a._silhouetteSize,e,ott),p.color=Y.getValueOrDefault(a._color,e,rtt,Cme),p.colorBlendMode=Y.getValueOrDefault(a._colorBlendMode,e,stt),p.colorBlendAmount=Y.getValueOrDefault(a._colorBlendAmount,e,att),p.clippingPlanes=Y.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=Y.getValueOrDefault(a._clampAnimations,e,ett),p.imageBasedLighting.imageBasedLightingFactor=Y.getValueOrDefault(a._imageBasedLightingFactor,e,ctt);let g=Y.getValueOrUndefined(a._lightColor,e);if(l(g)&&(H.pack(g,Ame,0),g=h.unpack(Ame,0,ftt)),p.lightColor=g,p.customShader=Y.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let m=Y.getValueOrDefault(a._runAnimations,e,!0);u.animationsRunning!==m&&(m?p.activeAnimations.addAll({loop:Vl.REPEAT}):p.activeAnimations.removeAll(),u.animationsRunning=m);let x=Y.getValueOrUndefined(a._nodeTransformations,e,u.nodeTransformationsScratch);if(l(x)){let C=Object.keys(x);for(let A=0,E=C.length;A<E;++A){let v=C[A],D=x[v];if(!l(D))continue;let O=p.getNode(v);if(!l(O))continue;let R=F.fromTranslationRotationScale(D,utt);O.matrix=F.multiply(O.originalMatrix,R,R)}}let b=!1,T=Y.getValueOrUndefined(a._articulations,e,u.articulationsScratch);if(l(T)){let C=Object.keys(T);for(let A=0,E=C.length;A<E;++A){let v=C[A],D=T[v];l(D)&&(b=!0,p.setArticulationStage(v,D))}}b&&p.applyArticulations()}}return!0};e0.prototype.isDestroyed=function(){return!1};e0.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(e0.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)cq(this,e[i],t,n);return ue(this)};var d4=new h,htt=new fe;e0.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return ct.FAILED;if(n.loadFailed)return ct.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return ct.PENDING;if(!i.ready||!n.modelUpdated)return ct.PENDING;let o=this._scene,r=y(o.ellipsoid,ee.default);if(i.heightReference!==Ye.NONE){let a=i.modelMatrix;d4.x=a[12],d4.y=a[13],d4.z=a[14];let c=r.cartesianToCartographic(d4,htt),u=o.getHeight(c,i.heightReference);return l(u)&&(Af(i.heightReference)?c.height=u:c.height+=u),se.clone(i.boundingSphere,t),t.center=r.cartographicToCartesian(c),ct.DONE}return se.clone(i.boundingSphere,t),ct.DONE};e0.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],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?(mtt(r,a),s.set(r.id,r)):(cq(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],cq(this,r,a,c),s.remove(r.id)};function cq(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function mtt(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var LN=e0;function t0(e){this._definitionChanged=new me,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(t0.prototype,{isConstant:{get:function(){return Y.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:Vi.FIXED}}});var ptt=new Z;t0.prototype.getValue=function(e,t){return l(e)||(e=Z.now(ptt)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};t0.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};t0.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?ee.default.scaleToGeodeticSurface(n,n):void 0};t0.prototype.equals=function(e){return this===e||e instanceof t0&&this._value===e._value};t0.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Mm=t0;var _tt=60,gtt=1,Sme=new Cn,lq=new Cn,uq=new Cn;function Eme(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function ytt(e,t,n,i,o,r,s,a,c){let u=a,f;f=e.getValueInReferenceFrame(t,r,c[u]),l(f)&&(c[u++]=f);let d=!l(o)||Z.lessThanOrEquals(o,t)||Z.greaterThanOrEquals(o,n),p=0,g=i.length,m=i[p],x=n,b=!1,T,C,A;for(;p<g;){if(!d&&Z.greaterThanOrEquals(m,o)&&(f=e.getValueInReferenceFrame(o,r,c[u]),l(f)&&(c[u++]=f),d=!0),Z.greaterThan(m,t)&&Z.lessThan(m,x)&&!m.equals(o)&&(f=e.getValueInReferenceFrame(m,r,c[u]),l(f)&&(c[u++]=f)),p<g-1){if(s>0&&!b){let E=i[p+1],v=Z.secondsDifference(E,m);b=v>s,b&&(T=Math.ceil(v/s),C=0,A=v/Math.max(T,2),T=Math.max(T-1,1))}if(b&&C<T){m=Z.addSeconds(m,A,new Z),C++;continue}}b=!1,p++,m=i[p]}return f=e.getValueInReferenceFrame(n,r,c[u]),l(f)&&(c[u++]=f),u}function xtt(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=!l(i)||Z.lessThanOrEquals(i,t)||Z.greaterThanOrEquals(i,n);for(;Z.lessThan(d,n);)!p&&Z.greaterThanOrEquals(d,i)&&(p=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=Z.addSeconds(t,r*u,new Z);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function btt(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=Math.max(r,60),g=!l(i)||Z.lessThanOrEquals(i,t)||Z.greaterThanOrEquals(i,n);for(;Z.lessThan(d,n);)!g&&Z.greaterThanOrEquals(d,i)&&(g=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=Z.addSeconds(t,p*u,new Z);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function Ttt(e,t,n,i,o,r,s,a){uq.start=t,uq.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Cn.intersect(d,uq,Sme).isEmpty){let p=d.start;d.isStartIncluded||(d.isStopIncluded?p=d.stop:p=Z.addSeconds(d.start,Z.secondsDifference(d.stop,d.start)/2,new Z));let g=e.getValueInReferenceFrame(p,o,a[c]);l(g)&&(a[c]=g,c++)}}return c}function Ctt(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return l(c)&&(a[s++]=c),s}function Att(e,t,n,i,o,r,s,a){lq.start=t,lq.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Cn.intersect(d,lq,Sme).isEmpty){let p=d.start,g=d.stop,m=t;Z.greaterThan(p,m)&&(m=p);let x=n;Z.lessThan(g,x)&&(x=g),c=vme(d.data,m,x,i,o,r,c,a)}}return c}function vme(e,t,n,i,o,r,s,a){for(;e instanceof H_;)e=e.resolvedProperty;if(e instanceof _a){let c=e._property._times;s=ytt(e,t,n,c,i,o,r,s,a)}else e instanceof v1?s=xtt(e,t,n,i,o,r,s,a):e instanceof ma?s=Att(e,t,n,i,o,r,s,a):e instanceof G_?s=Ttt(e,t,n,i,o,r,s,a):e instanceof Gc||e instanceof Mm&&Y.isConstant(e)?s=Ctt(e,t,n,i,o,r,s,a):s=btt(e,t,n,i,o,r,s,a);return s}function wme(e,t,n,i,o,r,s){l(s)||(s=[]);let a=vme(e,t,n,i,o,r,0,s);return s.length=a,s}var Ett=new $;function NN(e,t){this._unusedIndexes=[],this._polylineCollection=new oh,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}NN.prototype.update=function(e){if(this._referenceFrame===Vi.INERTIAL){let t=Mt.computeIcrfToCentralBodyFixedMatrix(e,Ett);F.fromRotationTranslation(t,h.ZERO,this._polylineCollection.modelMatrix)}};NN.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,u=n.isShowing&&n.isAvailable(e)&&(!l(a)||a.getValue(e));if(u){let d=Y.getValueOrUndefined(i._leadTime,e),p=Y.getValueOrUndefined(i._trailTime,e),g=n._availability,m=l(g),x=l(d),b=l(p);if(u=m||x&&b,u){if(b&&(r=Z.addSeconds(e,-p,new Z)),x&&(s=Z.addSeconds(e,d,new Z)),m){let T=g.start,C=g.stop;(!b||Z.greaterThan(T,r))&&(r=T),(!x||Z.lessThan(C,s))&&(s=C)}u=Z.lessThan(r,s)}}if(!u){l(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!l(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=Y.getValueOrDefault(i._resolution,e,_tt);c.show=!0,c.positions=wme(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=Jo.getValue(e,i._material,c.material),c.width=Y.getValueOrDefault(i._width,e,gtt),c.distanceDisplayCondition=Y.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};NN.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};NN.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function n0(e,t){t.collectionChanged.addEventListener(n0.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}n0.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&&l(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,u=Vi.FIXED;this._scene.mode===ne.SCENE3D&&(u=a.referenceFrame);let f=this._updaters[u];if(c===f&&l(f)){f.updateObject(e,r);continue}l(c)&&c.removeObject(r),l(f)||(f=new NN(this._scene,u),f.update(e),this._updaters[u]=f),r.updater=f,l(f)&&f.updateObject(e,r)}return!0};n0.prototype.isDestroyed=function(){return!1};n0.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(n0.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return ue(this)};n0.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],l(r._path)&&l(r._position)&&a.set(r.id,new Eme(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new Eme(r)):(s=a.get(r.id),l(s)&&(l(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),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};n0._subSample=wme;var FN=n0;var Dme=H.WHITE,Ime=H.BLACK,Pme=0,Rme=1,Ome=0,Mme=Nr.NONE,Lme=new H,Stt=new h,Nme=new H,Fme=new Bt,Bme=new Bt,kme=new Lt;function Vme(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 i0(e,t){t.collectionChanged.addEventListener(i0.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}i0.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,u=r.billboard,f=Y.getValueOrDefault(a._heightReference,e,Ye.NONE),d=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),p;if(d&&(p=Y.getValueOrUndefined(s._position,e,Stt),d=l(p)),!d){BN(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,m=!1;if(f!==Ye.NONE&&!l(u)?(l(c)&&(BN(r,s,n),c=void 0),u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u,g=!0,m=h.equals(u.position,p)&&u.heightReference===f):f===Ye.NONE&&!l(c)&&(l(u)&&(BN(r,s,n),u=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),l(c))c.show=!0,c.position=p,c.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Fme),c.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,Bme),c.color=Y.getValueOrDefault(a._color,e,Dme,Lme),c.outlineColor=Y.getValueOrDefault(a._outlineColor,e,Ime,Nme),c.outlineWidth=Y.getValueOrDefault(a._outlineWidth,e,Pme),c.pixelSize=Y.getValueOrDefault(a._pixelSize,e,Rme),c.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,kme),c.disableDepthTestDistance=Y.getValueOrDefault(a._disableDepthTestDistance,e,Ome),c.splitDirection=Y.getValueOrDefault(a._splitDirection,e,Mme);else if(l(u)){u.show=!0,u.position=p,u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Fme),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,Bme),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,kme),u.disableDepthTestDistance=Y.getValueOrDefault(a._disableDepthTestDistance,e,Ome),u.splitDirection=Y.getValueOrDefault(a._splitDirection,e,Mme),u.heightReference=f;let x=Y.getValueOrDefault(a._color,e,Dme,Lme),b=Y.getValueOrDefault(a._outlineColor,e,Ime,Nme),T=Math.round(Y.getValueOrDefault(a._outlineWidth,e,Pme)),C=Math.max(1,Math.round(Y.getValueOrDefault(a._pixelSize,e,Rme)));if(T>0?(u.scale=1,g=g||T!==r.outlineWidth||C!==r.pixelSize||!H.equals(x,r.color)||!H.equals(b,r.outlineColor)):(u.scale=C/50,C=50,g=g||T!==r.outlineWidth||!H.equals(x,r.color)||!H.equals(b,r.outlineColor)),g){r.color=H.clone(x,r.color),r.outlineColor=H.clone(b,r.outlineColor),r.pixelSize=C,r.outlineWidth=T;let A=x.alpha,E=x.toCssColorString(),v=b.toCssColorString(),D=JSON.stringify([E,C,v,T]);u.setImage(D,Sb(A,E,v,T,C))}m&&u._updateClamping()}}return!0};i0.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return ct.FAILED;if(l(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return ct.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,ct.DONE};i0.prototype.isDestroyed=function(){return!1};i0.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(i0.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return ue(this)};i0.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],l(r._point)&&l(r._position)&&s.set(r.id,new Vme(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Vme(r)):(BN(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],BN(s.get(r.id),r,a),s.remove(r.id)};function BN(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var kN=i0;var Wme=[];function vtt(e,t,n,i,o){let r=Wme;r.length=o;let s,a=n.red,c=n.green,u=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,m=i.alpha;if(H.equals(n,i)){for(s=0;s<o;s++)r[s]=H.clone(n);return r}let x=(d-a)/o,b=(p-c)/o,T=(g-u)/o,C=(m-f)/o;for(s=0;s<o;s++)r[s]=new H(a+s*x,c+s*b,u+s*T,f+s*C);return r}function VN(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=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._arcType=y(e.arcType,Jt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._workerName="createPolylineGeometry";let r=1+t.length*h.packedLength;r+=l(n)?1+n.length*H.packedLength:1,this.packedLength=r+ee.packedLength+Ie.packedLength+4}VN.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=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var jme=ee.clone(ee.UNIT_SPHERE),qme=new Ie,pT={positions:void 0,colors:void 0,ellipsoid:jme,vertexFormat:qme,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};VN.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+=H.packedLength)s[i]=H.unpack(e,t);let a=ee.unpack(e,t,jme);t+=ee.packedLength;let c=Ie.unpack(e,t,qme);t+=Ie.packedLength;let u=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._vertexFormat=Ie.clone(c,n._vertexFormat),n._width=u,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(pT.positions=r,pT.colors=s,pT.width=u,pT.colorsPerVertex=f,pT.arcType=d,pT.granularity=p,new VN(pT))};var Ume=new h,zme=new h,Hme=new h,Gme=new h;VN.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,u,f,d=[],p=To(e._positions,h.equalsEpsilon,!1,d);if(l(i)&&d.length>0){let L=0,B=d[0];i=i.filter(function(U,V){let G=!1;return o?G=V===B||V===0&&B===1:G=V+1===B,G?(L++,B=d[L],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===Jt.GEODESIC||r===Jt.RHUMB){let L,B;r===Jt.GEODESIC?(L=P.chordLength(s,a.maximumRadius),B=Ii.numberOfPoints):(L=s,B=Ii.numberOfPointsRhumbLine);let U=Ii.extractHeights(p,a);if(l(i)){let V=1;for(c=0;c<g-1;++c)V+=B(p[c],p[c+1],L);let G=new Array(V),k=0;for(c=0;c<g-1;++c){let W=p[c],q=p[c+1],J=i[c],j=B(W,q,L);if(o&&c<V){let K=i[c+1],Q=vtt(W,q,J,K,j),de=Q.length;for(u=0;u<de;++u)G[k++]=Q[u]}else for(u=0;u<j;++u)G[k++]=H.clone(J)}G[k]=H.clone(i[i.length-1]),i=G,Wme.length=0}r===Jt.GEODESIC?p=Ii.generateCartesianArc({positions:p,minDistance:L,ellipsoid:a,height:U}):p=Ii.generateCartesianRhumbArc({positions:p,granularity:L,ellipsoid:a,height:U})}g=p.length;let m=g*4-4,x=new Float64Array(m*3),b=new Float64Array(m*3),T=new Float64Array(m*3),C=new Float32Array(m*2),A=n.st?new Float32Array(m*2):void 0,E=l(i)?new Uint8Array(m*4):void 0,v=0,D=0,O=0,R=0,M;for(u=0;u<g;++u){u===0?(M=Ume,h.subtract(p[0],p[1],M),h.add(p[0],M,M)):M=p[u-1],h.clone(M,Hme),h.clone(p[u],zme),u===g-1?(M=Ume,h.subtract(p[g-1],p[g-2],M),h.add(p[g-1],M,M)):M=p[u+1],h.clone(M,Gme);let L,B;l(E)&&(u!==0&&!o?L=i[u-1]:L=i[u],u!==g-1&&(B=i[u]));let U=u===0?2:0,V=u===g-1?2:4;for(f=U;f<V;++f){h.pack(zme,x,v),h.pack(Hme,b,v),h.pack(Gme,T,v),v+=3;let G=f-2<0?-1:1;if(C[D++]=2*(f%2)-1,C[D++]=G*t,n.st&&(A[O++]=u/(g-1),A[O++]=Math.max(C[D-2],0)),l(E)){let k=f<2?L:B;E[R++]=H.floatToByte(k.red),E[R++]=H.floatToByte(k.green),E[R++]=H.floatToByte(k.blue),E[R++]=H.floatToByte(k.alpha)}}}let N=new fn;N.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),N.prevPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),N.nextPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),N.expandAndWidth=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C}),n.st&&(N.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A})),l(E)&&(N.color=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:E,normalize:!0}));let _=Ne.createTypedArray(m,g*6-6),S=0,w=0,I=g-1;for(u=0;u<I;++u)_[w++]=S,_[w++]=S+2,_[w++]=S+1,_[w++]=S+1,_[w++]=S+2,_[w++]=S+3,S+=4;return new at({attributes:N,indices:_,primitiveType:Me.TRIANGLES,boundingSphere:se.fromPoints(p),geometryType:gf.POLYLINES})};var Z_=VN;var wtt=new Kn(0),h4={},Yme=new H,Dtt=new Ut(H.WHITE),Itt=new Kn(!0),Ptt=new Kn(yn.DISABLED),Rtt=new Kn(new Lt),Ott=new Kn(Vn.BOTH);function Mtt(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function Ltt(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function Ch(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(Ch.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new me,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 Mtt,this._groundGeometryOptions=new Ltt,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=er.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(Ch.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||!l(this._entity.availability)&&Y.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}}});Ch.prototype.isOutlineVisible=function(e){return!1};Ch.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};Ch.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(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 Ut&&(l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Yme)),l(a)||(a=H.WHITE),s.color=Wt.fromColor(a)),this.clampToGround?new St({id:t,geometry:new Dx(this._groundGeometryOptions),attributes:s}):(l(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof Ut&&(l(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,Yme)),l(a)||(a=H.WHITE),s.depthFailColor=Wt.fromColor(a)),new St({id:t,geometry:new Z_(this._geometryOptions),attributes:s}))};Ch.prototype.createOutlineGeometryInstance=function(e){};Ch.prototype.isDestroyed=function(){return!1};Ch.prototype.destroy=function(){this._entitySubscription(),ue(this)};Ch.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!l(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(l(s)&&s.isConstant&&!s.getValue(He.MINIMUM_VALUE)||!l(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=y(o.material,Dtt),u=c instanceof Ut;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=y(s,Itt),this._shadowsProperty=y(o.shadows,Ptt),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,Rtt),this._classificationTypeProperty=y(o.classificationType,Ott),this._fillEnabled=!0,this._zIndex=y(a,wtt);let f=o.width,d=o.arcType,p=o.clampToGround,g=o.granularity;if(!r.isConstant||!Y.isConstant(f)||!Y.isConstant(d)||!Y.isConstant(g)||!Y.isConstant(p)||!Y.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(!l(x)||x.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let b;u&&(!l(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof Ut)?b=Qr.VERTEX_FORMAT:b=ca.VERTEX_FORMAT,m.vertexFormat=b,m.positions=x,m.width=l(f)?f.getValue(He.MINIMUM_VALUE):void 0,m.arcType=l(d)?d.getValue(He.MINIMUM_VALUE):void 0,m.granularity=l(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=l(p)?p.getValue(He.MINIMUM_VALUE):!1,!this._clampToGround&&l(a)&&xt("Entity polylines must have clampToGround: true when using zIndex.  zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Ch.prototype.createDynamicUpdater=function(e,t){return new UN(e,t,this)};var dS={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function UN(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 Xme(e){if(l(e._line))return e._line;let t=e._primitives,n=e._geometryUpdater._scene.id+t._guid,i=h4[n];!l(i)||i.isDestroyed()?(i=new oh,h4[n]=i,t.add(i)):t.contains(i)||t.add(i);let o=i.add();return o.id=e._geometryUpdater._entity,e._line=o,o}UN.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,o=i.positions,r=Y.getValueOrUndefined(o,e,this._positions);t._clampToGround=Y.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=r,t._groundGeometryOptions.width=Y.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=Y.getValueOrDefault(i._arcType,e,Jt.GEODESIC),t._groundGeometryOptions.granularity=Y.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(l(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!Y.getValueOrDefault(i._show,e,!0)||!l(r)||r.length<2)return;let d=t.fillMaterialProperty,p;if(d instanceof Ut)p=new Qr;else{let g=Jo.getValue(e,d,this._material);p=new ca({material:g,translucent:g.isTranslucent()}),this._material=g}this._groundPolylinePrimitive=s.add(new Ld({geometryInstances:t.createFillGeometryInstance(e),appearance:p,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),Y.getValueOrUndefined(t.zIndex,e)),l(this._line)&&(this._line.show=!1);return}let a=Xme(this);if(!n.isShowing||!n.isAvailable(e)||!Y.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!l(r)||r.length<2){a.show=!1;return}let c=Jt.GEODESIC;c=Y.getValueOrDefault(i._arcType,e,c);let u=t._scene.globe,f=t._scene.ellipsoid;c!==Jt.NONE&&l(u)&&(dS.ellipsoid=f,dS.positions=r,dS.granularity=Y.getValueOrUndefined(i._granularity,e),dS.height=Ii.extractHeights(r,f),c===Jt.GEODESIC?r=Ii.generateCartesianArc(dS):r=Ii.generateCartesianRhumbArc(dS)),a.show=!0,a.positions=r.slice(),a.material=Jo.getValue(e,t.fillMaterialProperty,a.material),a.width=Y.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=Y.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};UN.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(l(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(l(n)&&l(n.boundingSphere))return se.clone(n.boundingSphere,e),ct.DONE}return l(t)&&!t.ready?ct.PENDING:ct.DONE}else{let t=Xme(this);if(t.show&&t.positions.length>0)return se.fromPoints(t.positions,e),ct.DONE}return ct.FAILED};UN.prototype.isDestroyed=function(){return!1};UN.prototype.destroy=function(){let t=this._geometryUpdater._scene.id+this._primitives._guid,n=h4[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete h4[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var zN=Ch;var Ntt=new H,Ftt=new Lt,Btt=new Lt;function Ah(e,t,n,i,o){let r;n instanceof Ut?r=Qr:r=ca,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Ah.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et,this.zIndex=i,this._asynchronous=o}Ah.prototype.onMaterialChanged=function(){this.invalidated=!0};Ah.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:l(t)&&t.equals(n)};Ah.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||!Y.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};Ah.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 l(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};Ah.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)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new Ld({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===ca&&(this.material=Jo.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===ca&&(this.material=Jo.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],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!c.fillMaterialProperty.isConstant){let x=c.fillMaterialProperty.color,b=Y.getValueOrDefault(x,e,H.WHITE,Ntt);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=Wt.toValue(b,d.color))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,Btt,Ftt);Lt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};Ah.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);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Ah.prototype.contains=function(e){return this.updaters.contains(e.id)};Ah.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};Ah.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function hS(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}hS.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=Y.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 Ah(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};hS.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}}};hS.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};hS.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 ct.FAILED};hS.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 HN=hS;var ktt=[];function Kme(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function Zme(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;l(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof Ut?1:2);let r;l(i)&&(r=i+o*yn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof Ut?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function Lm(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 Et,this._removedObjects=new Et,this._changedObjects=new Et;let o,r=yn.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 td(n,Qr,void 0,!1,o),this._materialBatches[o]=new nd(n,ca,void 0,!1,o),this._colorBatches[o+r]=new td(n,Qr,Qr,!1,o),this._materialBatches[o+r]=new nd(n,ca,Qr,!1,o),this._colorBatches[o+r*2]=new td(n,Qr,ca,!1,o),this._materialBatches[o+r*2]=new nd(n,ca,ca,!1,o);this._dynamicBatch=new tT(n,i);let s=Vn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new HN(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new Et,this._updaters=new Et,this._entityCollection=t,t.collectionChanged.addEventListener(Lm.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,ktt)}Lm.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,u,f;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaters.get(u),f.entity===c?(Kme(this,f),Zme(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaters.get(u),Kme(this,f),f.destroy(),this._updaters.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new zN(c,this._scene),this._updaters.set(u,f),Zme(this,e,f),this._subscriptions.set(u,f.geometryChanged.addEventListener(Lm._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 Vtt=[],Utt=new se;Lm.prototype.getBoundingSphere=function(e,t){let n=Vtt,i=Utt,o=0,r=ct.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let u=0;u<a;u++){if(r=s[u].getBoundingSphere(c,i),r===ct.PENDING)return ct.PENDING;r===ct.DONE&&(n[o]=se.clone(i,n[o]),o++)}return o===0?ct.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),ct.DONE)};Lm.prototype.isDestroyed=function(){return!1};Lm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Lm.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(),ue(this)};Lm._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Lm.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 GN=Lm;function Xl(e){zc.initializeTerrainHeights(),Ld.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new fr,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,Xl.defaultVisualizersCallback);let i=!1,o=new jl,r=new jl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let u=0,f=n.length;u<f;u++)this._onDataSourceAdded(n,n.get(u));let s=new qL;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let u=this,f=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),u._removeDefaultDataSourceListener=void 0,u._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}var mS=[];Xl.registerVisualizer=function(e){mS.includes(e)||mS.push(e)};Xl.unregisterVisualizer=function(e){if(mS.includes(e)){let t=mS.indexOf(e);mS.splice(t,1)}};Xl.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new mP(t,i),new ON(e,i,n._primitives,n._groundPrimitives),new MN(t,i),new LN(e,i),new RL(e,i),new kN(t,i),new FN(e,i),new GN(e,i,n._primitives,n._groundPrimitives),...mS.map(o=>new o(e,i))]};Object.defineProperties(Xl.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}}});Xl.prototype.isDestroyed=function(){return!1};Xl.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),l(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),ue(this)};Xl.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(l(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&&this._scene.requestRender(),this._ready=t,t};Xl.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;l(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var ztt=[],Htt=new se;Xl.prototype.getBoundingSphere=function(e,t,n){if(!this._ready&&!t)return ct.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(!l(r))return ct.FAILED;let s=ztt,a=Htt,c=0,u=ct.DONE,f=r._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(l(p.getBoundingSphere)){if(u=f[i].getBoundingSphere(e,a),!t&&u===ct.PENDING)return ct.PENDING;u===ct.DONE&&(s[c]=se.clone(a,s[c]),c++)}}return c===0?ct.FAILED:(s.length=c,se.fromBoundingSpheres(s,n),ct.DONE)};Xl.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new jl),s=o.add(new aN);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};Xl.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 u=0;u<c;u++)a[u].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};Xl.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 WN=Xl;function fq(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}fq.clone=function(e,t){if(l(e))return l(t)||(t=new fq),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var od=fq;var $me=new $,Qme=new $,Jme=new $,Gtt=new F,m4=new h,epe=new h,dq=new h,hq=new h,tpe=new h,npe=new h,pS=new Z,Wtt=1.25;function jtt(e,t,n,i,o,r,s){let a=e.scene.mode,c=o.getValue(r,e._lastCartesian);if(l(c)){let u=!1,f=!1,d,p,g;if(a===ne.SCENE3D){Z.addSeconds(r,.001,pS);let C=o.getValue(pS,m4);if(l(C)||(Z.addSeconds(r,-.001,pS),C=o.getValue(pS,m4),f=!0),l(C)){let A=Mt.computeFixedToIcrfMatrix(r,$me),E=Mt.computeFixedToIcrfMatrix(pS,Qme),v;!l(A)||!l(E)?(v=Mt.computeTemeToPseudoFixedMatrix(r,Jme),A=$.transpose(v,$me),E=Mt.computeTemeToPseudoFixedMatrix(pS,Qme),$.transpose(E,E)):v=$.transpose(A,Jme);let D=$.multiplyByVector(A,c,tpe),O=$.multiplyByVector(E,C,npe);h.subtract(D,O,hq);let R=h.magnitude(hq)*1e3,M=P.GRAVITATIONALPARAMETER,N=-M/(R*R-2*M/h.magnitude(D));N<0||N>Wtt*s.maximumRadius?(d=epe,h.normalize(c,d),h.negate(d,d),g=h.clone(h.UNIT_Z,dq),p=h.cross(g,d,m4),h.magnitude(p)>P.EPSILON7&&(h.normalize(d,d),h.normalize(p,p),g=h.cross(d,p,dq),h.normalize(g,g),u=!0)):h.equalsEpsilon(c,C,P.EPSILON7)||(g=epe,h.normalize(D,g),h.normalize(O,O),p=h.cross(g,O,dq),f&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,P.EPSILON7)||(d=h.cross(p,g,m4),$.multiplyByVector(v,d,d),$.multiplyByVector(v,p,p),$.multiplyByVector(v,g,g),h.normalize(d,d),h.normalize(p,p),h.normalize(g,g),u=!0))}}l(e.boundingSphere)&&(c=e.boundingSphere.center);let m,x,b;i&&(m=h.clone(t.position,hq),x=h.clone(t.direction,tpe),b=h.clone(t.up,npe));let T=Gtt;u?(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):Mt.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 u=a===ne.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,u)}}function jN(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,ee.default),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(jN,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});jN.defaultOffset3D=new h(-14e3,3500,3500);var p4=new od,qtt=new h;jN.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===ne.MORPHING)return;let r=this.entity,s=r.position;if(!l(s))return;let a=r!==this._lastEntity,c=o!==this._mode,u=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=l(p);if(!g&&l(t)){p4.pitch=-P.PI_OVER_FOUR,p4.range=0;let m=s.getValue(e,qtt);if(l(m)){let x=2-1/Math.max(1,h.magnitude(m)/i.maximumRadius);p4.pitch*=x}u.viewBoundingSphere(t,p4),this.boundingSphere=t,f=!1,d=!1}else(!g||!l(p.getValue(e,this._offset3D)))&&h.clone(jN._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ne.SCENE2D&&h.clone(u.position,this._offset3D);this._lastEntity=r,this._mode=o,jtt(this,u,f,d,s,e,i)};var qN=jN;function XN(){this._cache={}}XN.prototype.fromColor=function(e,t){return _4(void 0,void 0,e,t,this._cache)};XN.prototype.fromUrl=function(e,t,n){return _4(e,void 0,t,n,this._cache)};XN.prototype.fromMakiIconId=function(e,t,n){return _4(nn(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};XN.prototype.fromText=function(e,t,n){return _4(void 0,e,t,n,this._cache)};var Ytt=new H;function Xtt(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,Ytt).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 ipe(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=H.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=H.WHITE.toCssColorString(),e.fillRect(s-1,a-2,o+2,r+2)}var YN=new Array(4);function _4(e,t,n,i,o){YN[0]=e,YN[1]=t,YN[2]=n,YN[3]=i;let r=JSON.stringify(YN),s=o[r];if(l(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(Xtt(c,n,i),l(e)){let f=we.createIfNeeded(e).fetchImage().then(function(d){return ipe(c,d,i),o[r]=a,a});return o[r]=f,f}else if(l(t)){let u=wb(t,{font:`bold ${i}px sans-serif`});ipe(c,u,i)}return o[r]=a,a}var $_=XN;var spe=Vo(rpe(),1);function y4(e){return h.fromDegrees(e[0],e[1],e[2])}var mq={"urn:ogc:def:crs:OGC:1.3:CRS84":y4,"EPSG:4326":y4,"urn:ogc:def:crs:EPSG::4326":y4},ape={},cpe={},pq=48,_q,gq=H.ROYALBLUE,yq=H.YELLOW,xq=2,bq=H.fromBytes(255,255,0,100),Tq=!1,Ktt={small:24,medium:48,large:64},Ztt=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function lpe(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||Ztt.indexOf(i)!==-1)continue;let o=e[i];l(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${lpe(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 $tt(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function Qtt(e,t){return new Vd($tt(lpe,e,t),!0)}function x4(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=Hn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let u=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(u>1&&d==="title"){u=1,s=f;break}else u>2&&d==="name"?(u=2,s=f):u>3&&/title/i.test(f)?(u=3,s=f):u>4&&/name/i.test(f)&&(u=4,s=f)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new Kn(c):n(r,s))}return o}function Cq(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var upe={Feature:dpe,FeatureCollection:Jtt,GeometryCollection:hpe,LineString:ype,MultiLineString:xpe,MultiPoint:_pe,MultiPolygon:Cpe,Point:ppe,Polygon:Tpe,Topology:Ape},fpe={GeometryCollection:hpe,LineString:ype,MultiLineString:xpe,MultiPoint:_pe,MultiPolygon:Cpe,Point:ppe,Polygon:Tpe,Topology:Ape};function dpe(e,t,n,i,o){if(t.geometry===null){x4(t,e._entityCollection,o.describe);return}if(!l(t.geometry))throw new ce("feature.geometry is required.");let r=t.geometry.type,s=fpe[r];if(!l(s))throw new ce(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function Jtt(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)dpe(e,r[s],void 0,i,o)}function hpe(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],u=c.type,f=fpe[u];if(!l(f))throw new ce(`Unknown geometry type: ${u}`);f(e,t,c,i,o)}}function mpe(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(l(c)){let g=c["marker-color"];l(g)&&(s=H.fromCssColorString(g)),a=y(Ktt[c["marker-size"]],a);let m=c["marker-symbol"];l(m)&&(r=m)}let u;l(r)?r.length===1?u=e._pinBuilder.fromText(r.toUpperCase(),s,a):u=e._pinBuilder.fromMakiIconId(r,s,a):u=e._pinBuilder.fromColor(s,a);let f=new oc;f.verticalOrigin=new Kn(Rn.BOTTOM),i.length===2&&o.clampToGround&&(f.heightReference=Ye.CLAMP_TO_GROUND);let d=x4(t,e._entityCollection,o.describe);d.billboard=f,d.position=new Gc(n(i));let p=Promise.resolve(u).then(function(g){f.image=new Kn(g)}).catch(function(){f.image=new Kn(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function ppe(e,t,n,i,o){mpe(e,t,i,n.coordinates,o)}function _pe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)mpe(e,t,i,r[s],o)}function gpe(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(l(a)){let f=a["stroke-width"];l(f)&&(s=new Kn(f));let d,p=a.stroke;l(p)&&(d=H.fromCssColorString(p));let g=a["stroke-opacity"];l(g)&&g!==1&&(l(d)||(d=r.color.getValue().clone()),d.alpha=g),l(d)&&(r=new Ut(d))}let c=x4(t,e._entityCollection,o.describe),u=new ac;c.polyline=u,u.clampToGround=o.clampToGround,u.material=r,u.width=s,u.positions=new Kn(Cq(i,n)),u.arcType=Jt.RHUMB}function ype(e,t,n,i,o){gpe(e,t,i,n.coordinates,o)}function xpe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)gpe(e,t,i,r[s],o)}function bpe(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(l(c)){let g=c["stroke-width"];l(g)&&(a=new Kn(g));let m,x=c.stroke;l(x)&&(m=H.fromCssColorString(x));let b=c["stroke-opacity"];l(b)&&b!==1&&(l(m)||(m=r.getValue().clone()),m.alpha=b),l(m)&&(r=new Kn(m));let T,C=c.fill,A=s.color.getValue();l(C)&&(T=H.fromCssColorString(C),T.alpha=A.alpha),b=c["fill-opacity"],l(b)&&b!==A.alpha&&(l(T)||(T=A.clone()),T.alpha=b),l(T)&&(s=new Ut(T))}let u=new Bd;u.outline=new Kn(!0),u.outlineColor=r,u.outlineWidth=a,u.material=s,u.arcType=Jt.RHUMB;let f=[];for(let g=1,m=i.length;g<m;g++)f.push(new Oa(Cq(i[g],n)));let d=i[0];u.hierarchy=new Kn(new Oa(Cq(d,n),f)),d[0].length>2?u.perPositionHeight=new Kn(!0):o.clampToGround||(u.height=0);let p=x4(t,e._entityCollection,o.describe);p.polygon=u}function Tpe(e,t,n,i,o){bpe(e,t,i,n.coordinates,o)}function Cpe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)bpe(e,t,i,r[s],o)}function Ape(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=spe.feature(n,n.objects[r]),a=upe[s.type];a(e,s,s,i,o)}}function o0(e){this._name=e,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._entityCollection=new $s(this),this._promises=[],this._pinBuilder=new $_,this._entityCluster=new Ou,this._credit=void 0,this._resourceCredits=[]}o0.load=function(e,t){return new o0().load(e,t)};Object.defineProperties(o0,{markerSize:{get:function(){return pq},set:function(e){pq=e}},markerSymbol:{get:function(){return _q},set:function(e){_q=e}},markerColor:{get:function(){return gq},set:function(e){gq=e}},stroke:{get:function(){return yq},set:function(e){yq=e}},strokeWidth:{get:function(){return xq},set:function(e){xq=e}},fill:{get:function(){return bq},set:function(e){bq=e}},clampToGround:{get:function(){return Tq},set:function(e){Tq=e}},crsNames:{get:function(){return mq}},crsLinkHrefs:{get:function(){return ape}},crsLinkTypes:{get:function(){return cpe}}});Object.defineProperties(o0.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}}});o0.prototype.load=function(e,t){return Epe(this,e,t,!0)};o0.prototype.process=function(e,t){return Epe(this,e,t,!1)};function Epe(e,t,n,i){Gr.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let o=n.credit;typeof o=="string"&&(o=new vt(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof we){t=we.createIfNeeded(t),r=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return n={describe:y(n.describe,Qtt),markerSize:y(n.markerSize,pq),markerSymbol:y(n.markerSymbol,_q),markerColor:y(n.markerColor,gq),strokeWidthProperty:new Kn(y(n.strokeWidth,xq)),strokeMaterialProperty:new Ut(y(n.stroke,yq)),fillMaterialProperty:new Ut(y(n.fill,bq)),clampToGround:y(n.clampToGround,Tq)},Promise.resolve(r).then(function(a){return ent(e,a,n,s,i)}).catch(function(a){throw Gr.setLoading(e,!1),e._error.raiseEvent(e,a),a})}o0.prototype.update=function(e){return!0};function ent(e,t,n,i,o){let r;l(i)&&(r=V_(i)),l(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=upe[t.type];if(!l(s))throw new ce(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?y4:null;if(l(a)){if(!l(a.properties))throw new ce("crs.properties is undefined.");let u=a.properties;if(a.type==="name"){if(c=mq[u.name],!l(c))throw new ce(`Unknown crs name: ${u.name}`)}else if(a.type==="link"){let f=ape[u.href];if(l(f)||(f=cpe[u.type]),!l(f))throw new ce(`Unable to resolve crs link: ${JSON.stringify(u)}`);c=f(u)}else if(a.type==="EPSG"){if(c=mq[`EPSG:${u.code}`],!l(c))throw new ce(`Unknown crs EPSG code: ${u.code}`)}else throw new ce(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(u){return o&&e._entityCollection.removeAll(),u!==null&&s(e,t,t,u,n),Promise.all(e._promises).then(function(){return e._promises.length=0,Gr.setLoading(e,!1),e})})}var KN=o0;var w_e=Vo(Hq(),1);var D_e;typeof DOMParser<"u"&&(D_e=new DOMParser);var Xit=new w_e.default({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),U4=32,x_e=2414016,b_e=1,T_e=16093e3,C_e=.1,Kit=[null,void 0,"http://www.topografix.com/GPX/1/1"],vo={gpx:Kit};function Zit(e){return new Promise((t,n)=>{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function Gq(e,t){let n=QN(e,"id");return n=l(n)?n:Hn(),t.getOrCreateEntity(n)}function Wq(e){let t=A_e(e,"lon"),n=A_e(e,"lat"),i=ZN(e,"ele",vo.gpx);return h.fromDegrees(t,n,i)}function A_e(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function QN(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function c0(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function jq(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagName(t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function ZN(e,t,n){let i=c0(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Kl(e,t,n){let i=c0(e,t,n);if(l(i))return i.textContent.trim()}function I_e(e){let t=new oc;return t.width=U4,t.height=U4,t.scaleByDistance=new Bt(x_e,b_e,T_e,C_e),t.pixelOffsetScaleByDistance=new Bt(x_e,b_e,T_e,C_e),t.verticalOrigin=new Kn(Rn.BOTTOM),t.image=e,t}function $it(){let e=new Fd;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=Wo.FILL_AND_OUTLINE,e}function P_e(e){let t=new ac;return t.width=4,t.material=new qy,t.material.color=l(e)?e:H.RED,t.material.outlineWidth=2,t.material.outlineColor=H.BLACK,t}var E_e={time:{text:"Time",tag:"time"},comment:{text:"Comment",tag:"cmt"},description:{text:"Description",tag:"desc"},source:{text:"Source",tag:"src"},number:{text:"GPS track/route number",tag:"number"},type:{text:"Type",tag:"type"}},$N;typeof document<"u"&&($N=document.createElement("div"));function qq(e,t){let n,i="",o=Object.keys(E_e),r=o.length;for(n=0;n<r;n++){let f=o[n],d=E_e[f];d.value=y(Kl(e,d.tag,vo.gpx),""),l(d.value)&&d.value!==""&&(i=`${i}<p>${d.text}: ${d.value}</p>`)}if(!l(i)||i==="")return;i=Xit.link(i),$N.innerHTML=i;let s=$N.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=H.WHITE,c=H.BLACK,u='<div class="cesium-infoBox-description-lighter" style="';return u+="overflow:auto;",u+="word-wrap:break-word;",u+=`background-color:${a.toCssColorString()};`,u+=`color:${c.toCssColorString()};`,u+='">',u+=`${$N.innerHTML}</div>`,$N.innerHTML="",u}function R_e(e,t,n,i){let o=Wq(t),r=Gq(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,U4);r.billboard=I_e(s);let a=Kl(t,"name",vo.gpx);r.name=a,r.label=$it(),r.label.text=a,r.description=qq(t,r),i.clampToGround&&(r.billboard.heightReference=Ye.CLAMP_TO_GROUND,r.label.heightReference=Ye.CLAMP_TO_GROUND)}function Qit(e,t,n,i){let o=Gq(t,n);o.description=qq(t,o);let r=jq(t,"rtept",vo.gpx),s=new Array(r.length);for(let a=0;a<r.length;a++)R_e(e,r[a],n,i),s[a]=Wq(r[a]);o.polyline=P_e(i.routeColor),i.clampToGround&&(o.polyline.clampToGround=!0),o.polyline.positions=s}function Jit(e,t,n,i){let o=Gq(t,n);o.description=qq(t,o);let r=jq(t,"trkseg",vo.gpx),s=[],a=[],c,u=!0,f=new _a;for(let d=0;d<r.length;d++)c=eot(r[d]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),f.addSamples(a,s),u=u&&!0):u=!1;if(u){let d=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,U4);o.billboard=I_e(d),o.position=f,i.clampToGround&&(o.billboard.heightReference=Ye.CLAMP_TO_GROUND),o.availability=new Hr,o.availability.addInterval(new Cn({start:a[0],stop:a[a.length-1]}))}o.polyline=P_e(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function eot(e){let t={positions:[],times:[]},n=jq(e,"trkpt",vo.gpx),i;for(let o=0;o<n.length;o++){let r=Wq(n[o]);t.positions.push(r),i=Kl(n[o],"time",vo.gpx),l(i)&&t.times.push(Z.fromIso8601(i))}return t}function tot(e){let t=c0(e,"metadata",vo.gpx);if(l(t)){let n={name:Kl(t,"name",vo.gpx),desc:Kl(t,"desc",vo.gpx),author:not(t),copyright:oot(t),link:O_e(t),time:Kl(t,"time",vo.gpx),keywords:Kl(t,"keywords",vo.gpx),bounds:rot(t)};if(l(n.name)||l(n.desc)||l(n.author)||l(n.copyright)||l(n.link)||l(n.time)||l(n.keywords)||l(n.bounds))return n}}function not(e){let t=c0(e,"author",vo.gpx);if(l(t)){let n={name:Kl(t,"name",vo.gpx),email:iot(t),link:O_e(t)};if(l(n.name)||l(n.email)||l(n.link))return n}}function iot(e){let t=c0(e,"email",vo.gpx);if(l(t)){let n=Kl(t,"id",vo.gpx),i=Kl(t,"domain",vo.gpx);return`${n}@${i}`}}function O_e(e){let t=c0(e,"link",vo.gpx);if(l(t)){let n={href:QN(t,"href"),text:Kl(t,"text",vo.gpx),mimeType:Kl(t,"type",vo.gpx)};if(l(n.href)||l(n.text)||l(n.mimeType))return n}}function oot(e){let t=c0(e,"copyright",vo.gpx);if(l(t)){let n={author:QN(t,"author"),year:Kl(t,"year",vo.gpx),license:Kl(t,"license",vo.gpx)};if(l(n.author)||l(n.year)||l(n.license))return n}}function rot(e){let t=c0(e,"bounds",vo.gpx);if(l(t)){let n={minLat:ZN(t,"minlat",vo.gpx),maxLat:ZN(t,"maxlat",vo.gpx),minLon:ZN(t,"minlon",vo.gpx),maxLon:ZN(t,"maxlon",vo.gpx)};if(l(n.minLat)||l(n.maxLat)||l(n.minLon)||l(n.maxLon))return n}}var S_e={wpt:R_e,rte:Qit,trk:Jit};function sot(e,t,n,i){let o=Object.keys(S_e),r=o.length;for(let s=0;s<r;s++){let a=o[s],c=S_e[a],u=t.childNodes,f=u.length;for(let d=0;d<f;d++){let p=u[d];p.localName===a&&vo.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function v_e(e,t,n){let i=e._entityCollection;i.removeAll();let o=t.documentElement,r=QN(o,"version"),s=QN(o,"creator"),a,c=tot(o);l(c)&&(a=c.name),o.localName==="gpx"?sot(e,o,i,n):console.log(`GPX - Unsupported node: ${o.localName}`);let u,f=i.computeAvailability(),d=f.start,p=f.stop,g=Z.equals(d,He.MINIMUM_VALUE),m=Z.equals(p,He.MAXIMUM_VALUE);if(!g||!m){let b;g&&(b=new Date,b.setHours(0,0,0,0),d=Z.fromDate(b)),m&&(b=new Date,b.setHours(24,0,0,0),p=Z.fromDate(b)),u=new mh,u.startTime=d,u.stopTime=p,u.currentTime=Z.clone(d),u.clockRange=Wr.LOOP_STOP,u.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,u.multiplier=Math.round(Math.min(Math.max(Z.secondsDifference(p,d)/60,1),31556900))}let x=!1;return e._name!==a&&(e._name=a,x=!0),e._creator!==s&&(e._creator=s,x=!0),aot(e._metadata,c)&&(e._metadata=c,x=!0),e._version!==r&&(e._version=r,x=!0),u!==e._clock&&(x=!0,e._clock=u),x&&e._changed.raiseEvent(e),Gr.setLoading(e,!1),e}function aot(e,t){return!l(e)&&!l(t)?!1:l(e)&&l(t)?e.name!==t.name||e.dec!==t.desc||e.src!==t.src||e.author!==t.author||e.copyright!==t.copyright||e.link!==t.link||e.time!==t.time||e.bounds!==t.bounds:!0}function cot(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=n;if(typeof n=="string"||n instanceof we){n=we.createIfNeeded(n),o=n.fetchBlob();let r=e._resourceCredits,s=n.credits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)r.push(s[c])}}return Promise.resolve(o).then(function(r){return r instanceof Blob?Zit(r).then(function(s){let a,c;try{a=D_e.parseFromString(s,"application/xml")}catch(u){c=u.toString()}if(l(c)||a.body||a.documentElement.tagName==="parsererror"){let u=l(c)?c:a.documentElement.firstChild.nodeValue;throw u||(u=a.body.innerText),new ce(u)}return v_e(e,a,i)}):v_e(e,r,i)}).catch(function(r){return e._error.raiseEvent(e,r),console.log(r),Promise.reject(r)})}function CS(){this._changed=new me,this._error=new me,this._loading=new me,this._clock=void 0,this._entityCollection=new $s(this),this._entityCluster=new Ou,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new $_}CS.load=function(e,t){return new CS().load(e,t)};Object.defineProperties(CS.prototype,{name:{get:function(){return this._name}},version:{get:function(){return this._version}},creator:{get:function(){return this._creator}},metadata:{get:function(){return this._metadata}},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}}});CS.prototype.update=function(e){return!0};CS.prototype.load=function(e,t){if(!l(e))throw new he("data is required.");t=y(t,y.EMPTY_OBJECT),Gr.setLoading(this,!0);let n=this._name,i=this;return cot(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=Z.equals(s,He.MINIMUM_VALUE),u=Z.equals(a,He.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=Z.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=Z.fromDate(d)),o=new mh,o.startTime=s,o.stopTime=a,o.currentTime=Z.clone(s),o.clockRange=Wr.LOOP_STOP,o.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(Z.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Gr.setLoading(i,!1),i}).catch(function(o){return Gr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};var JN=CS;function lot(e,t){this.position=e,this.headingPitchRoll=t}var eF=lot;var mye=Vo(Hq(),1),EF=Vo(au(),1);function Y4(e){return X4(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function X4(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?X4(n):n),[])}var M_e=[0,1,2,3].concat(...Y4([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function mr(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,u=e.stat_desc.max_length,f,d,p,g,m,x,b=0;for(g=0;g<=15;g++)o.bl_count[g]=0;for(r[o.heap[o.heap_max]*2+1]=0,f=o.heap_max+1;f<573;f++)d=o.heap[f],g=r[r[d*2+1]*2+1]+1,g>u&&(g=u,b++),r[d*2+1]=g,!(d>e.max_code)&&(o.bl_count[g]++,m=0,d>=c&&(m=a[d-c]),x=r[d*2],o.opt_len+=x*(g+m),s&&(o.static_len+=x*(s[d*2+1]+m)));if(b!==0){do{for(g=u-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[u]--,b-=2}while(b>0);for(g=u;g!==0;g--)for(d=o.bl_count[g];d!==0;)p=o.heap[--f],!(p>e.max_code)&&(r[p*2+1]!=g&&(o.opt_len+=(g-r[p*2+1])*r[p*2],r[p*2+1]=g),d--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,u,f,d;for(u=1;u<=15;u++)a[u]=c=c+s[u-1]<<1;for(f=0;f<=r;f++)d=o[f*2+1],d!==0&&(o[f*2]=n(a[d]++,d))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,u,f=-1,d;for(o.heap_len=0,o.heap_max=573,c=0;c<a;c++)r[c*2]!==0?(o.heap[++o.heap_len]=f=c,o.depth[c]=0):r[c*2+1]=0;for(;o.heap_len<2;)d=o.heap[++o.heap_len]=f<2?++f:0,r[d*2]=1,o.depth[d]=0,o.opt_len--,s&&(o.static_len-=s[d*2+1]);for(e.max_code=f,c=Math.floor(o.heap_len/2);c>=1;c--)o.pqdownheap(r,c);d=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),u=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=u,r[d*2]=r[c*2]+r[u*2],o.depth[d]=Math.max(o.depth[c],o.depth[u])+1,r[c*2+1]=r[u*2+1]=d,o.heap[1]=d++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}mr._length_code=[0,1,2,3,4,5,6,7].concat(...Y4([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));mr.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];mr.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];mr.d_code=function(e){return e<256?M_e[e]:M_e[256+(e>>>7)]};mr.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];mr.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];mr.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];mr.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function ka(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var uot=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],fot=Y4([[144,8],[112,9],[24,7],[8,8]]);ka.static_ltree=X4(uot.map((e,t)=>[e,fot[t]]));var dot=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],hot=Y4([[30,5]]);ka.static_dtree=X4(dot.map((e,t)=>[e,hot[t]]));ka.static_l_desc=new ka(ka.static_ltree,mr.extra_lbits,257,286,15);ka.static_d_desc=new ka(ka.static_dtree,mr.extra_dbits,0,30,15);ka.static_bl_desc=new ka(null,mr.extra_blbits,0,19,7);var mot=9,pot=8;function Vm(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var N_e=0,j4=1,TT=2,Sh=[new Vm(0,0,0,0,N_e),new Vm(4,4,8,4,j4),new Vm(4,5,16,8,j4),new Vm(4,6,32,32,j4),new Vm(4,4,16,16,TT),new Vm(8,16,32,32,TT),new Vm(8,16,128,128,TT),new Vm(8,32,128,256,TT),new Vm(32,128,258,1024,TT),new Vm(32,258,258,4096,TT)],z4=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],rd=0,H4=1,tF=2,G4=3,_ot=32,Yq=42,W4=113,nF=666,Xq=8,got=0,Kq=1,yot=2,wr=3,q4=258,zu=q4+wr+1;function L_e(e,t,n,i){let o=e[t*2],r=e[n*2];return o<r||o==r&&i[t]<=i[n]}function xot(){let e=this,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x,b,T,C,A,E,v,D,O,R,M,N,_,S,w,I,L,B,U,V=new mr,G=new mr,k=new mr;e.depth=[];let W,q,J,j,K,Q;e.bl_count=[],e.heap=[],L=[],B=[],U=[];function de(){u=2*r,d[g-1]=0;for(let Le=0;Le<g-1;Le++)d[Le]=0;N=Sh[_].max_lazy,w=Sh[_].good_length,I=Sh[_].nice_length,M=Sh[_].max_chain,v=0,T=0,O=0,C=R=wr-1,E=0,p=0}function ye(){let Le;for(Le=0;Le<286;Le++)L[Le*2]=0;for(Le=0;Le<30;Le++)B[Le*2]=0;for(Le=0;Le<19;Le++)U[Le*2]=0;L[256*2]=1,e.opt_len=e.static_len=0,q=J=0}function ae(){V.dyn_tree=L,V.stat_desc=ka.static_l_desc,G.dyn_tree=B,G.stat_desc=ka.static_d_desc,k.dyn_tree=U,k.stat_desc=ka.static_bl_desc,K=0,Q=0,j=8,ye()}e.pqdownheap=function(Le,ot){let qe=e.heap,Xe=qe[ot],dt=ot<<1;for(;dt<=e.heap_len&&(dt<e.heap_len&&L_e(Le,qe[dt+1],qe[dt],e.depth)&&dt++,!L_e(Le,Xe,qe[dt],e.depth));)qe[ot]=qe[dt],ot=dt,dt<<=1;qe[ot]=Xe};function _e(Le,ot){let qe=-1,Xe,dt=Le[0*2+1],Gt=0,wn=7,Io=4;dt===0&&(wn=138,Io=3),Le[(ot+1)*2+1]=65535;for(let Jn=0;Jn<=ot;Jn++)Xe=dt,dt=Le[(Jn+1)*2+1],!(++Gt<wn&&Xe==dt)&&(Gt<Io?U[Xe*2]+=Gt:Xe!==0?(Xe!=qe&&U[Xe*2]++,U[16*2]++):Gt<=10?U[17*2]++:U[18*2]++,Gt=0,qe=Xe,dt===0?(wn=138,Io=3):Xe==dt?(wn=6,Io=3):(wn=7,Io=4))}function xe(){let Le;for(_e(L,V.max_code),_e(B,G.max_code),k.build_tree(e),Le=18;Le>=3&&U[mr.bl_order[Le]*2+1]===0;Le--);return e.opt_len+=3*(Le+1)+5+5+4,Le}function De(Le){e.pending_buf[e.pending++]=Le}function Ae(Le){De(Le&255),De(Le>>>8&255)}function ke(Le){De(Le>>8&255),De(Le&255&255)}function ze(Le,ot){let qe,Xe=ot;Q>16-Xe?(qe=Le,K|=qe<<Q&65535,Ae(K),K=qe>>>16-Q,Q+=Xe-16):(K|=Le<<Q&65535,Q+=Xe)}function tt(Le,ot){let qe=Le*2;ze(ot[qe]&65535,ot[qe+1]&65535)}function wt(Le,ot){let qe,Xe=-1,dt,Gt=Le[0*2+1],wn=0,Io=7,Jn=4;for(Gt===0&&(Io=138,Jn=3),qe=0;qe<=ot;qe++)if(dt=Gt,Gt=Le[(qe+1)*2+1],!(++wn<Io&&dt==Gt)){if(wn<Jn)do tt(dt,U);while(--wn!==0);else dt!==0?(dt!=Xe&&(tt(dt,U),wn--),tt(16,U),ze(wn-3,2)):wn<=10?(tt(17,U),ze(wn-3,3)):(tt(18,U),ze(wn-11,7));wn=0,Xe=dt,Gt===0?(Io=138,Jn=3):dt==Gt?(Io=6,Jn=3):(Io=7,Jn=4)}}function pt(Le,ot,qe){let Xe;for(ze(Le-257,5),ze(ot-1,5),ze(qe-4,4),Xe=0;Xe<qe;Xe++)ze(U[mr.bl_order[Xe]*2+1],3);wt(L,Le-1),wt(B,ot-1)}function Be(){Q==16?(Ae(K),K=0,Q=0):Q>=8&&(De(K&255),K>>>=8,Q-=8)}function Yt(){ze(Kq<<1,3),tt(256,ka.static_ltree),Be(),1+j+10-Q<9&&(ze(Kq<<1,3),tt(256,ka.static_ltree),Be()),j=7}function Ct(Le,ot){let qe,Xe,dt;if(e.dist_buf[q]=Le,e.lc_buf[q]=ot&255,q++,Le===0?L[ot*2]++:(J++,Le--,L[(mr._length_code[ot]+256+1)*2]++,B[mr.d_code(Le)*2]++),!(q&8191)&&_>2){for(qe=q*8,Xe=v-T,dt=0;dt<30;dt++)qe+=B[dt*2]*(5+mr.extra_dbits[dt]);if(qe>>>=3,J<Math.floor(q/2)&&qe<Math.floor(Xe/2))return!0}return q==W-1}function lt(Le,ot){let qe,Xe,dt=0,Gt,wn;if(q!==0)do qe=e.dist_buf[dt],Xe=e.lc_buf[dt],dt++,qe===0?tt(Xe,Le):(Gt=mr._length_code[Xe],tt(Gt+256+1,Le),wn=mr.extra_lbits[Gt],wn!==0&&(Xe-=mr.base_length[Gt],ze(Xe,wn)),qe--,Gt=mr.d_code(qe),tt(Gt,ot),wn=mr.extra_dbits[Gt],wn!==0&&(qe-=mr.base_dist[Gt],ze(qe,wn)));while(dt<q);tt(256,Le),j=Le[256*2+1]}function tn(){Q>8?Ae(K):Q>0&&De(K&255),K=0,Q=0}function Ce(Le,ot,qe){tn(),j=8,qe&&(Ae(ot),Ae(~ot)),e.pending_buf.set(c.subarray(Le,Le+ot),e.pending),e.pending+=ot}function Te(Le,ot,qe){ze((got<<1)+(qe?1:0),3),Ce(Le,ot,!0)}function it(Le,ot,qe){let Xe,dt,Gt=0;_>0?(V.build_tree(e),G.build_tree(e),Gt=xe(),Xe=e.opt_len+3+7>>>3,dt=e.static_len+3+7>>>3,dt<=Xe&&(Xe=dt)):Xe=dt=ot+5,ot+4<=Xe&&Le!=-1?Te(Le,ot,qe):dt==Xe?(ze((Kq<<1)+(qe?1:0),3),lt(ka.static_ltree,ka.static_dtree)):(ze((yot<<1)+(qe?1:0),3),pt(V.max_code+1,G.max_code+1,Gt+1),lt(L,B)),ye(),qe&&tn()}function Wi(Le){it(T>=0?T:-1,v-T,Le),T=v,t.flush_pending()}function ut(){let Le,ot,qe,Xe;do{if(Xe=u-O-v,Xe===0&&v===0&&O===0)Xe=r;else if(Xe==-1)Xe--;else if(v>=r+r-zu){c.set(c.subarray(r,r+r),0),D-=r,v-=r,T-=r,Le=g,qe=Le;do ot=d[--qe]&65535,d[qe]=ot>=r?ot-r:0;while(--Le!==0);Le=r,qe=Le;do ot=f[--qe]&65535,f[qe]=ot>=r?ot-r:0;while(--Le!==0);Xe+=r}if(t.avail_in===0)return;Le=t.read_buf(c,v+O,Xe),O+=Le,O>=wr&&(p=c[v]&255,p=(p<<b^c[v+1]&255)&x)}while(O<zu&&t.avail_in!==0)}function go(Le){let ot=65535,qe;for(ot>i-5&&(ot=i-5);;){if(O<=1){if(ut(),O===0&&Le==0)return rd;if(O===0)break}if(v+=O,O=0,qe=T+ot,(v===0||v>=qe)&&(O=v-qe,v=qe,Wi(!1),t.avail_out===0)||v-T>=r-zu&&(Wi(!1),t.avail_out===0))return rd}return Wi(Le==4),t.avail_out===0?Le==4?tF:rd:Le==4?G4:H4}function Yo(Le){let ot=M,qe=v,Xe,dt,Gt=R,wn=v>r-zu?v-(r-zu):0,Io=I,Jn=a,ls=v+q4,Xa=c[qe+Gt-1],Yr=c[qe+Gt];R>=w&&(ot>>=2),Io>O&&(Io=O);do if(Xe=Le,!(c[Xe+Gt]!=Yr||c[Xe+Gt-1]!=Xa||c[Xe]!=c[qe]||c[++Xe]!=c[qe+1])){qe+=2,Xe++;do;while(c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&qe<ls);if(dt=q4-(ls-qe),qe=ls-q4,dt>Gt){if(D=Le,Gt=dt,dt>=Io)break;Xa=c[qe+Gt-1],Yr=c[qe+Gt]}}while((Le=f[Le&Jn]&65535)>wn&&--ot!==0);return Gt<=O?Gt:O}function Ya(Le){let ot=0,qe;for(;;){if(O<zu){if(ut(),O<zu&&Le==0)return rd;if(O===0)break}if(O>=wr&&(p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v),ot!==0&&(v-ot&65535)<=r-zu&&S!=2&&(C=Yo(ot)),C>=wr)if(qe=Ct(v-D,C-wr),O-=C,C<=N&&O>=wr){C--;do v++,p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v;while(--C!==0);v++}else v+=C,C=0,p=c[v]&255,p=(p<<b^c[v+1]&255)&x;else qe=Ct(0,c[v]&255),O--,v++;if(qe&&(Wi(!1),t.avail_out===0))return rd}return Wi(Le==4),t.avail_out===0?Le==4?tF:rd:Le==4?G4:H4}function Ir(Le){let ot=0,qe,Xe;for(;;){if(O<zu){if(ut(),O<zu&&Le==0)return rd;if(O===0)break}if(O>=wr&&(p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v),R=C,A=D,C=wr-1,ot!==0&&R<N&&(v-ot&65535)<=r-zu&&(S!=2&&(C=Yo(ot)),C<=5&&(S==1||C==wr&&v-D>4096)&&(C=wr-1)),R>=wr&&C<=R){Xe=v+O-wr,qe=Ct(v-1-A,R-wr),O-=R-1,R-=2;do++v<=Xe&&(p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v);while(--R!==0);if(E=0,C=wr-1,v++,qe&&(Wi(!1),t.avail_out===0))return rd}else if(E!==0){if(qe=Ct(0,c[v-1]&255),qe&&Wi(!1),v++,O--,t.avail_out===0)return rd}else E=1,v++,O--}return E!==0&&(qe=Ct(0,c[v-1]&255),E=0),Wi(Le==4),t.avail_out===0?Le==4?tF:rd:Le==4?G4:H4}function Cs(Le){return Le.total_in=Le.total_out=0,Le.msg=null,e.pending=0,e.pending_out=0,n=W4,o=0,ae(),de(),0}e.deflateInit=function(Le,ot,qe,Xe,dt,Gt){return Xe||(Xe=Xq),dt||(dt=pot),Gt||(Gt=0),Le.msg=null,ot==-1&&(ot=6),dt<1||dt>mot||Xe!=Xq||qe<9||qe>15||ot<0||ot>9||Gt<0||Gt>2?-2:(Le.dstate=e,s=qe,r=1<<s,a=r-1,m=dt+7,g=1<<m,x=g-1,b=Math.floor((m+wr-1)/wr),c=new Uint8Array(r*2),f=[],d=[],W=1<<dt+6,e.pending_buf=new Uint8Array(W*4),i=W*4,e.dist_buf=new Uint16Array(W),e.lc_buf=new Uint8Array(W),_=ot,S=Gt,Cs(Le))},e.deflateEnd=function(){return n!=Yq&&n!=W4&&n!=nF?-2:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,d=null,f=null,c=null,e.dstate=null,n==W4?-3:0)},e.deflateParams=function(Le,ot,qe){let Xe=0;return ot==-1&&(ot=6),ot<0||ot>9||qe<0||qe>2?-2:(Sh[_].func!=Sh[ot].func&&Le.total_in!==0&&(Xe=Le.deflate(1)),_!=ot&&(_=ot,N=Sh[_].max_lazy,w=Sh[_].good_length,I=Sh[_].nice_length,M=Sh[_].max_chain),S=qe,Xe)},e.deflateSetDictionary=function(Le,ot,qe){let Xe=qe,dt,Gt=0;if(!ot||n!=Yq)return-2;if(Xe<wr)return 0;for(Xe>r-zu&&(Xe=r-zu,Gt=qe-Xe),c.set(ot.subarray(Gt,Gt+Xe),0),v=Xe,T=Xe,p=c[0]&255,p=(p<<b^c[1]&255)&x,dt=0;dt<=Xe-wr;dt++)p=(p<<b^c[dt+(wr-1)]&255)&x,f[dt&a]=d[p],d[p]=dt;return 0},e.deflate=function(Le,ot){let qe,Xe,dt,Gt,wn;if(ot>4||ot<0)return-2;if(!Le.next_out||!Le.next_in&&Le.avail_in!==0||n==nF&&ot!=4)return Le.msg=z4[4],-2;if(Le.avail_out===0)return Le.msg=z4[7],-5;if(t=Le,Gt=o,o=ot,n==Yq&&(Xe=Xq+(s-8<<4)<<8,dt=(_-1&255)>>1,dt>3&&(dt=3),Xe|=dt<<6,v!==0&&(Xe|=_ot),Xe+=31-Xe%31,n=W4,ke(Xe)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&ot<=Gt&&ot!=4)return t.msg=z4[7],-5;if(n==nF&&t.avail_in!==0)return Le.msg=z4[7],-5;if(t.avail_in!==0||O!==0||ot!=0&&n!=nF){switch(wn=-1,Sh[_].func){case N_e:wn=go(ot);break;case j4:wn=Ya(ot);break;case TT:wn=Ir(ot);break;default:}if((wn==tF||wn==G4)&&(n=nF),wn==rd||wn==tF)return t.avail_out===0&&(o=-1),0;if(wn==H4){if(ot==1)Yt();else if(Te(0,0,!1),ot==3)for(qe=0;qe<g;qe++)d[qe]=0;if(t.flush_pending(),t.avail_out===0)return o=-1,0}}return ot!=4?0:1}}function F_e(){let e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}F_e.prototype={deflateInit(e,t){let n=this;return n.dstate=new xot,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate(e){let t=this;return t.dstate?t.dstate.deflate(t,e):-2},deflateEnd(){let e=this;if(!e.dstate)return-2;let t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams(e,t){let n=this;return n.dstate?n.dstate.deflateParams(n,e,t):-2},deflateSetDictionary(e,t){let n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):-2},read_buf(e,t,n){let i=this,o=i.avail_in;return o>n&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function B_e(e){let t=this,n=new F_e,i=bot(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let u,f,d=0,p=0,g=0,m=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,u=n.deflate(o),u!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?m.push(new Uint8Array(r)):m.push(r.subarray(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=d&&(c(n.next_in_index),d=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return m.length>1?(f=new Uint8Array(g),m.forEach(function(x){f.set(x,p),p+=x.length})):f=m[0]?new Uint8Array(m[0]):new Uint8Array,f}},t.flush=function(){let a,c,u=0,f=0,d=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&d.push(r.slice(0,n.next_out_index)),f+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(f),d.forEach(function(p){c.set(p,u),u+=p.length}),c}}function bot(e){return e+5*(Math.floor(e/16383)+1)}var Hu=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ige=1440,Tot=0,Cot=4,Aot=9,Eot=5,Sot=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],vot=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],wot=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Dot=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Iot=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Pot=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],l0=15;function Jq(){let e=this,t,n,i,o,r,s;function a(u,f,d,p,g,m,x,b,T,C,A){let E,v,D,O,R,M,N,_,S,w,I,L,B,U,V;w=0,R=d;do i[u[f+w]]++,w++,R--;while(R!==0);if(i[0]==d)return x[0]=-1,b[0]=0,0;for(_=b[0],M=1;M<=l0&&i[M]===0;M++);for(N=M,_<M&&(_=M),R=l0;R!==0&&i[R]===0;R--);for(D=R,_>R&&(_=R),b[0]=_,U=1<<M;M<R;M++,U<<=1)if((U-=i[M])<0)return-3;if((U-=i[R])<0)return-3;for(i[R]+=U,s[1]=M=0,w=1,B=2;--R!==0;)s[B]=M+=i[w],B++,w++;R=0,w=0;do(M=u[f+w])!==0&&(A[s[M]++]=R),w++;while(++R<d);for(d=s[D],s[0]=R=0,w=0,O=-1,L=-_,r[0]=0,I=0,V=0;N<=D;N++)for(E=i[N];E--!==0;){for(;N>L+_;){if(O++,L+=_,V=D-L,V=V>_?_:V,(v=1<<(M=N-L))>E+1&&(v-=E+1,B=N,M<V))for(;++M<V&&!((v<<=1)<=i[++B]);)v-=i[B];if(V=1<<M,C[0]+V>ige)return-3;r[O]=I=C[0],C[0]+=V,O!==0?(s[O]=R,o[0]=M,o[1]=_,M=R>>>L-_,o[2]=I-r[O-1]-M,T.set(o,(r[O-1]+M)*3)):x[0]=I}for(o[1]=N-L,w>=d?o[0]=192:A[w]<p?(o[0]=A[w]<256?0:96,o[2]=A[w++]):(o[0]=m[A[w]-p]+16+64,o[2]=g[A[w++]-p]),v=1<<N-L,M=R>>>L;M<V;M+=v)T.set(o,(I+M)*3);for(M=1<<N-1;R&M;M>>>=1)R^=M;for(R^=M,S=(1<<L)-1;(R&S)!=s[O];)O--,L-=_,S=(1<<L)-1}return U!==0&&D!=1?-5:0}function c(u){let f;for(t||(t=[],n=[],i=new Int32Array(l0+1),o=[],r=new Int32Array(l0),s=new Int32Array(l0+1)),n.length<u&&(n=[]),f=0;f<u;f++)n[f]=0;for(f=0;f<l0+1;f++)i[f]=0;for(f=0;f<3;f++)o[f]=0;r.set(i.subarray(0,l0),0),s.set(i.subarray(0,l0+1),0)}e.inflate_trees_bits=function(u,f,d,p,g){let m;return c(19),t[0]=0,m=a(u,0,19,19,null,null,d,f,p,t,n),m==-3?g.msg="oversubscribed dynamic bit lengths tree":(m==-5||f[0]===0)&&(g.msg="incomplete dynamic bit lengths tree",m=-3),m},e.inflate_trees_dynamic=function(u,f,d,p,g,m,x,b,T){let C;return c(288),t[0]=0,C=a(d,0,u,257,wot,Dot,m,p,b,t,n),C!=0||p[0]===0?(C==-3?T.msg="oversubscribed literal/length tree":C!=-4&&(T.msg="incomplete literal/length tree",C=-3),C):(c(288),C=a(d,u,f,0,Iot,Pot,x,g,b,t,n),C!=0||g[0]===0&&u>257?(C==-3?T.msg="oversubscribed distance tree":C==-5?(T.msg="incomplete distance tree",C=-3):C!=-4&&(T.msg="empty distance tree with lengths",C=-3),C):0)}}Jq.inflate_trees_fixed=function(e,t,n,i){return e[0]=Aot,t[0]=Eot,n[0]=Sot,i[0]=vot,0};var K4=0,k_e=1,V_e=2,U_e=3,z_e=4,H_e=5,G_e=6,Zq=7,W_e=8,Z4=9;function Rot(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,u=0,f=0,d,p=0,g,m=0;function x(b,T,C,A,E,v,D,O){let R,M,N,_,S,w,I,L,B,U,V,G,k,W,q,J;I=O.next_in_index,L=O.avail_in,S=D.bitb,w=D.bitk,B=D.write,U=B<D.read?D.read-B-1:D.end-B,V=Hu[b],G=Hu[T];do{for(;w<20;)L--,S|=(O.read_byte(I++)&255)<<w,w+=8;if(R=S&V,M=C,N=A,J=(N+R)*3,(_=M[J])===0){S>>=M[J+1],w-=M[J+1],D.win[B++]=M[J+2],U--;continue}do{if(S>>=M[J+1],w-=M[J+1],_&16){for(_&=15,k=M[J+2]+(S&Hu[_]),S>>=_,w-=_;w<15;)L--,S|=(O.read_byte(I++)&255)<<w,w+=8;R=S&G,M=E,N=v,J=(N+R)*3,_=M[J];do if(S>>=M[J+1],w-=M[J+1],_&16){for(_&=15;w<_;)L--,S|=(O.read_byte(I++)&255)<<w,w+=8;if(W=M[J+2]+(S&Hu[_]),S>>=_,w-=_,U-=k,B>=W)q=B-W,B-q>0&&2>B-q?(D.win[B++]=D.win[q++],D.win[B++]=D.win[q++],k-=2):(D.win.set(D.win.subarray(q,q+2),B),B+=2,q+=2,k-=2);else{q=B-W;do q+=D.end;while(q<0);if(_=D.end-q,k>_){if(k-=_,B-q>0&&_>B-q)do D.win[B++]=D.win[q++];while(--_!==0);else D.win.set(D.win.subarray(q,q+_),B),B+=_,q+=_,_=0;q=0}}if(B-q>0&&k>B-q)do D.win[B++]=D.win[q++];while(--k!==0);else D.win.set(D.win.subarray(q,q+k),B),B+=k,q+=k,k=0;break}else if(!(_&64))R+=M[J+2],R+=S&Hu[_],J=(N+R)*3,_=M[J];else return O.msg="invalid distance code",k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3;while(!0);break}if(_&64)return _&32?(k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,1):(O.msg="invalid literal/length code",k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3);if(R+=M[J+2],R+=S&Hu[_],J=(N+R)*3,(_=M[J])===0){S>>=M[J+1],w-=M[J+1],D.win[B++]=M[J+2],U--;break}}while(!0)}while(U>=258&&L>=10);return k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,0}e.init=function(b,T,C,A,E,v){t=K4,u=b,f=T,d=C,p=A,g=E,m=v,i=null},e.proc=function(b,T,C){let A,E,v,D=0,O=0,R=0,M,N,_,S;for(R=T.next_in_index,M=T.avail_in,D=b.bitb,O=b.bitk,N=b.write,_=N<b.read?b.read-N-1:b.end-N;;)switch(t){case K4:if(_>=258&&M>=10&&(b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,C=x(u,f,d,p,g,m,b,T),R=T.next_in_index,M=T.avail_in,D=b.bitb,O=b.bitk,N=b.write,_=N<b.read?b.read-N-1:b.end-N,C!=0)){t=C==1?Zq:Z4;break}r=u,i=d,o=p,t=k_e;case k_e:for(A=r;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(E=(o+(D&Hu[A]))*3,D>>>=i[E+1],O-=i[E+1],v=i[E],v===0){s=i[E+2],t=G_e;break}if(v&16){a=v&15,n=i[E+2],t=V_e;break}if(!(v&64)){r=v,o=E/3+i[E+2];break}if(v&32){t=Zq;break}return t=Z4,T.msg="invalid literal/length code",C=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);case V_e:for(A=a;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}n+=D&Hu[A],D>>=A,O-=A,r=f,i=g,o=m,t=U_e;case U_e:for(A=r;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(E=(o+(D&Hu[A]))*3,D>>=i[E+1],O-=i[E+1],v=i[E],v&16){a=v&15,c=i[E+2],t=z_e;break}if(!(v&64)){r=v,o=E/3+i[E+2];break}return t=Z4,T.msg="invalid distance code",C=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);case z_e:for(A=a;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}c+=D&Hu[A],D>>=A,O-=A,t=H_e;case H_e:for(S=N-c;S<0;)S+=b.end;for(;n!==0;){if(_===0&&(N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0&&(b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);b.win[N++]=b.win[S++],_--,S==b.end&&(S=0),n--}t=K4;break;case G_e:if(_===0&&(N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0&&(b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);C=0,b.win[N++]=s,_--,t=K4;break;case Zq:if(O>7&&(O-=8,M++,R--),b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,b.read!=b.write)return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);t=W_e;case W_e:return C=1,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);case Z4:return C=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);default:return C=-2,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C)}},e.free=function(){}}var j_e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],AS=0,$q=1,q_e=2,Y_e=3,X_e=4,K_e=5,$4=6,Q4=7,Z_e=8,CT=9;function Oot(e,t){let n=this,i=AS,o=0,r=0,s=0,a,c=[0],u=[0],f=new Rot,d=0,p=new Int32Array(ige*3),g=0,m=new Jq;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(x,b){b&&(b[0]=g),i==$4&&f.free(x),i=AS,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(x,b){let T,C,A;return C=x.next_out_index,A=n.read,T=(A<=n.write?n.write:n.end)-A,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(A,A+T),C),C+=T,A+=T,A==n.end&&(A=0,n.write==n.end&&(n.write=0),T=n.write-A,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(A,A+T),C),C+=T,A+=T),x.next_out_index=C,n.read=A,b},n.proc=function(x,b){let T,C,A,E,v,D,O,R;for(E=x.next_in_index,v=x.avail_in,C=n.bitb,A=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D;;){let M,N,_,S,w,I,L,B;switch(i){case AS:for(;A<3;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}switch(T=C&7,d=T&1,T>>>1){case 0:C>>>=3,A-=3,T=A&7,C>>>=T,A-=T,i=$q;break;case 1:M=[],N=[],_=[[]],S=[[]],Jq.inflate_trees_fixed(M,N,_,S),f.init(M[0],N[0],_[0],0,S[0],0),C>>>=3,A-=3,i=$4;break;case 2:C>>>=3,A-=3,i=Y_e;break;case 3:return C>>>=3,A-=3,i=CT,x.msg="invalid block type",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b)}break;case $q:for(;A<32;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if((~C>>>16&65535)!=(C&65535))return i=CT,x.msg="invalid stored block lengths",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);o=C&65535,C=A=0,i=o!==0?q_e:d!==0?Q4:AS;break;case q_e:if(v===0||O===0&&(D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0&&(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0)))return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);if(b=0,T=o,T>v&&(T=v),T>O&&(T=O),n.win.set(x.read_buf(E,T),D),E+=T,v-=T,D+=T,O-=T,(o-=T)!==0)break;i=d!==0?Q4:AS;break;case Y_e:for(;A<14;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(r=T=C&16383,(T&31)>29||(T>>5&31)>29)return i=CT,x.msg="too many length or distance symbols",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);if(T=258+(T&31)+(T>>5&31),!a||a.length<T)a=[];else for(R=0;R<T;R++)a[R]=0;C>>>=14,A-=14,s=0,i=X_e;case X_e:for(;s<4+(r>>>10);){for(;A<3;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}a[j_e[s++]]=C&7,C>>>=3,A-=3}for(;s<19;)a[j_e[s++]]=0;if(c[0]=7,T=m.inflate_trees_bits(a,c,u,p,x),T!=0)return b=T,b==-3&&(a=null,i=CT),n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);s=0,i=K_e;case K_e:for(;T=r,!(s>=258+(T&31)+(T>>5&31));){let U,V;for(T=c[0];A<T;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(T=p[(u[0]+(C&Hu[T]))*3+1],V=p[(u[0]+(C&Hu[T]))*3+2],V<16)C>>>=T,A-=T,a[s++]=V;else{for(R=V==18?7:V-14,U=V==18?11:3;A<T+R;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(C>>>=T,A-=T,U+=C&Hu[R],C>>>=R,A-=R,R=s,T=r,R+U>258+(T&31)+(T>>5&31)||V==16&&R<1)return a=null,i=CT,x.msg="invalid bit length repeat",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);V=V==16?a[R-1]:0;do a[R++]=V;while(--U!==0);s=R}}if(u[0]=-1,w=[],I=[],L=[],B=[],w[0]=9,I[0]=6,T=r,T=m.inflate_trees_dynamic(257+(T&31),1+(T>>5&31),a,w,I,L,B,p,x),T!=0)return T==-3&&(a=null,i=CT),b=T,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);f.init(w[0],I[0],p,L[0],p,B[0]),i=$4;case $4:if(n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,(b=f.proc(n,x,b))!=1)return n.inflate_flush(x,b);if(b=0,f.free(x),E=x.next_in_index,v=x.avail_in,C=n.bitb,A=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D,d===0){i=AS;break}i=Q4;case Q4:if(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,n.read!=n.write)return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);i=Z_e;case Z_e:return b=1,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);case CT:return b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);default:return b=-2,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b)}}},n.free=function(x){n.reset(x,null),n.win=null,p=null},n.set_dictionary=function(x,b,T){n.win.set(x.subarray(b,b+T),0),n.read=n.write=T},n.sync_point=function(){return i==$q?1:0}}var Mot=32,Lot=8,Not=0,$_e=1,Q_e=2,J_e=3,ege=4,tge=5,Qq=6,iF=7,nge=12,u0=13,Fot=[0,0,255,255];function Bot(){let e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?-2:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=iF,n.istate.blocks.reset(n,null),0)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,0},e.inflateInit=function(n,i){return n.msg=null,e.blocks=null,i<8||i>15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new Oot(n,1<<i),t(n),0)},e.inflate=function(n,i){let o,r;if(!n||!n.istate||!n.next_in)return-2;let s=n.istate;for(i=i==Cot?-5:0,o=-5;;)switch(s.mode){case Not:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,((s.method=n.read_byte(n.next_in_index++))&15)!=Lot){s.mode=u0,n.msg="unknown compression method",s.marker=5;break}if((s.method>>4)+8>s.wbits){s.mode=u0,n.msg="invalid win size",s.marker=5;break}s.mode=$_e;case $_e:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=u0,n.msg="incorrect header check",s.marker=5;break}if(!(r&Mot)){s.mode=iF;break}s.mode=Q_e;case Q_e:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=J_e;case J_e:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=ege;case ege:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=tge;case tge:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=Qq,2);case Qq:return s.mode=u0,n.msg="need dictionary",s.marker=0,-2;case iF:if(o=s.blocks.proc(n,o),o==-3){s.mode=u0,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=nge;case nge:return n.avail_in=0,1;case u0:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=Qq)return-2;let a=n.istate;return s>=1<<a.wbits&&(s=(1<<a.wbits)-1,r=o-s),a.blocks.set_dictionary(i,r,s),a.mode=iF,0},e.inflateSync=function(n){let i,o,r,s,a;if(!n||!n.istate)return-2;let c=n.istate;if(c.mode!=u0&&(c.mode=u0,c.marker=0),(i=n.avail_in)===0)return-5;for(o=n.next_in_index,r=c.marker;i!==0&&r<4;)n.read_byte(o)==Fot[r]?r++:n.read_byte(o)!==0?r=0:r=4-r,o++,i--;return n.total_in+=o-n.next_in_index,n.next_in_index=o,n.avail_in=i,c.marker=r,r!=4?-3:(s=n.total_in,a=n.total_out,t(n),n.total_in=s,n.total_out=a,c.mode=iF,0)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?-2:n.istate.blocks.sync_point()}}function oge(){}oge.prototype={inflateInit(e){let t=this;return t.istate=new Bot,e||(e=15),t.istate.inflateInit(t,e)},inflate(e){let t=this;return t.istate?t.istate.inflate(t,e):-2},inflateEnd(){let e=this;if(!e.istate)return-2;let t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync(){let e=this;return e.istate?e.istate.inflateSync(e):-2},inflateSetDictionary(e,t){let n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):-2},read_byte(e){return this.next_in[e]},read_buf(e,t){return this.next_in.subarray(e,e+t)}};function rge(e){let t=this,n=new oge,i=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,o=Tot,r=new Uint8Array(i),s=!1;n.inflateInit(),n.next_out=r,t.append=function(a,c){let u=[],f,d,p=0,g=0,m=0;if(a.length!==0){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,n.avail_in===0&&!s&&(n.next_in_index=0,s=!0),f=n.inflate(o),s&&f===-5){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==0&&f!==1)throw new Error("inflating: "+n.msg);if((s||f===1)&&n.avail_in===a.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===i?u.push(new Uint8Array(r)):u.push(r.subarray(0,n.next_out_index))),m+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return u.length>1?(d=new Uint8Array(m),u.forEach(function(x){d.set(x,g),g+=x.length})):d=u[0]?new Uint8Array(u[0]):new Uint8Array,d}},t.flush=function(){n.inflateEnd()}}var ES="/",eY=new Date(2107,11,31),tY=new Date(1980,0,1),Ri=void 0,Gu="undefined",J_="function";var oF=class{constructor(t){return class extends null{constructor(n,i){let o=new t(i);super({transform(r,s){s.enqueue(o.append(r))},flush(r){let s=o.flush();s&&r.enqueue(s)}})}}}};var kot=64,sge=2;try{typeof navigator!=Gu&&navigator.hardwareConcurrency&&(sge=navigator.hardwareConcurrency)}catch{}var Vot={chunkSize:512*1024,maxWorkers:sge,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Ri,CompressionStreamNative:typeof CompressionStream!=Gu&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=Gu&&DecompressionStream},d0=Object.assign({},Vot);function rF(){return d0}function J4(e){return Math.max(e.chunkSize,kot)}function SS(e){let{baseURL:t,chunkSize:n,maxWorkers:i,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,Deflate:a,Inflate:c,CompressionStream:u,DecompressionStream:f,workerScripts:d}=e;if(f0("baseURL",t),f0("chunkSize",n),f0("maxWorkers",i),f0("terminateWorkerTimeout",o),f0("useCompressionStream",r),f0("useWebWorkers",s),a&&(d0.CompressionStream=new oF(a)),c&&(d0.DecompressionStream=new oF(c)),f0("CompressionStream",u),f0("DecompressionStream",f),d!==Ri){let{deflate:p,inflate:g}=d;if((p||g)&&(d0.workerScripts||(d0.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");d0.workerScripts.deflate=p}if(g){if(!Array.isArray(g))throw new Error("workerScripts.inflate must be an array");d0.workerScripts.inflate=g}}}function f0(e,t){t!==Ri&&(d0[e]=t)}var age=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;age[e]=t}var eg=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i<o;i++)n=n>>>8^age[(n^t[i])&255];this.crc=n}get(){return~this.crc}};var sF=class extends null{constructor(){let t,n=new eg;super({transform(i,o){n.append(i),o.enqueue(i)},flush(){let i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,n.get()),t.value=i}}),t=this}};function vS(e){if(typeof TextEncoder==Gu){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}var al={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=al.getPartial(n);return i===32?e.concat(t):al._shiftRight(t,i,n|0,e.slice(0,e.length-1))},bitLength(e){let t=e.length;if(t===0)return 0;let n=e[t-1];return(t-1)*32+al.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));let n=e.length;return t=t&31,n>0&&t&&(e[n-1]=al.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s<e.length;s++)i.push(n|e[s]>>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=al.getPartial(o);return i.push(al.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},aF={bytes:{fromBits(e){let n=al.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r<n;r++)r&3||(o=e[r/4]),i[r]=o>>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n<e.length;n++)i=i<<8|e[n],(n&3)===3&&(t.push(i),i=0);return n&3&&t.push(al.partial(8*(n&3),i)),t}}},cge={};cge.sha1=class{constructor(e){let t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){let e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){let t=this;typeof e=="string"&&(e=aF.utf8String.toBits(e));let n=t._buffer=al.concat(t._buffer,e),i=t._length,o=t._length=i+al.bitLength(e);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t}finalize(){let e=this,t=e._buffer,n=e._h;t=al.concat(t,[al.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i}_S(e,t){return t<<e|t>>>32-e}_block(e){let t=this,n=t._h,i=Array(80);for(let u=0;u<16;u++)i[u]=e[u];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let u=0;u<=79;u++){u>=16&&(i[u]=t._S(1,i[u-3]^i[u-8]^i[u-14]^i[u-16]));let f=t._S(5,o)+t._f(u,r,s,a)+c+i[u]+t._key[Math.floor(u/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=f}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var nY={};nY.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let u=s[r-1];(r%o===0||o===8&&r%o===4)&&(u=n[u>>>24]<<24^n[u>>16&255]<<16^n[u>>8&255]<<8^n[u&255],r%o===0&&(u=u<<8^u>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^u}for(let u=0;r;u++,r--){let f=s[u&3?r:r-4];r<=4||u<4?a[u]=f:a[u]=i[0][n[f>>>24]]^i[1][n[f>>16&255]]^i[2][n[f>>8&255]]^i[3][n[f&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,u;for(let f=0;f<256;f++)r[(o[f]=f<<1^(f>>7)*283)^f]=f;for(let f=s=0;!n[f];f^=a||1,s=r[s]||1){let d=s^s<<1^s<<2^s<<3^s<<4;d=d>>8^d&255^99,n[f]=d,i[d]=f,u=o[c=o[a=o[f]]];let p=u*16843009^c*65537^a*257^f*16843008,g=o[d]*257^d*16843008;for(let m=0;m<4;m++)e[m][f]=g=g<<24^g>>>8,t[m][d]=p=p<<24^p>>>8}for(let f=0;f<5;f++)e[f]=e[f].slice(0),t[f]=t[f].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],u=r[3],f=r[4],d=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],m=e[t?1:3]^n[3],x=4,b,T,C;for(let A=0;A<i;A++)b=s[d>>>24]^a[p>>16&255]^c[g>>8&255]^u[m&255]^n[x],T=s[p>>>24]^a[g>>16&255]^c[m>>8&255]^u[d&255]^n[x+1],C=s[g>>>24]^a[m>>16&255]^c[d>>8&255]^u[p&255]^n[x+2],m=s[m>>>24]^a[d>>16&255]^c[p>>8&255]^u[g&255]^n[x+3],x+=4,d=b,p=T,g=C;for(let A=0;A<4;A++)o[t?3&-A:A]=f[d>>>24]<<24^f[p>>16&255]<<16^f[g>>8&255]<<8^f[m&255]^n[x++],b=d,d=p,p=g,g=m,m=b;return o}};var lge={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i<e.length;i+=4){let r=n((o||Math.random())*4294967296);o=r()*987654071,t[i/4]=r()*4294967296|0}return e}},iY={};iY.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=al.bitLength(t);for(let r=0;r<i;r+=4){this.incCounter(n);let s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return al.clamp(t,o)}};var h0={importKey(e){return new h0.hmacSha1(aF.bytes.toBits(e))},pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");let o=(i>>5)+1<<2,r,s,a,c,u,f=new ArrayBuffer(o),d=new DataView(f),p=0,g=al;for(t=aF.bytes.toBits(t),u=1;p<(o||1);u++){for(r=s=e.encrypt(g.concat(t,[u])),a=1;a<n;a++)for(s=e.encrypt(s),c=0;c<s.length;c++)r[c]^=s[c];for(a=0;p<(o||1)&&a<r.length;a++)d.setInt32(p,r[a]),p+=4}return f.slice(0,i/8)}};h0.hmacSha1=class{constructor(e){let t=this,n=t._hash=cge.sha1,i=[[],[]];t._baseHash=[new n,new n];let o=t._baseHash[0].blockSize/32;e.length>o&&(e=new n().update(e).finalize());for(let r=0;r<o;r++)i[0][r]=e[r]^909522486,i[1][r]=e[r]^1549556828;t._baseHash[0].update(i[0]),t._baseHash[1].update(i[1]),t._resultHash=new n(t._baseHash[0])}reset(){let e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){let t=this;t._updated=!0,t._resultHash.update(e)}digest(){let e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}};var Uot=typeof crypto!=Gu&&typeof crypto.getRandomValues==J_,m0="Invalid password",AT="Invalid signature",tg="zipjs-abort-check-password";function eH(e){return Uot?crypto.getRandomValues(e):lge.getRandomValues(e)}var wS=16,zot="raw",dge={name:"PBKDF2"},Hot={name:"HMAC"},Got="SHA-1",Wot=Object.assign({hash:Hot},dge),oY=Object.assign({iterations:1e3,hash:{name:Got}},dge),jot=["deriveBits"],lF=[8,12,16],cF=[16,24,32],p0=10,qot=[0,0,0,0],iH=typeof crypto!=Gu,dF=iH&&crypto.subtle,hge=iH&&typeof dF!=Gu,Um=aF.bytes,Yot=nY.aes,Xot=iY.ctrGladman,Kot=h0.hmacSha1,uge=iH&&hge&&typeof dF.importKey==J_,fge=iH&&hge&&typeof dF.deriveBits==J_,tH=class extends null{constructor({password:t,rawPassword:n,signed:i,encryptionStrength:o,checkPasswordOnly:r}){super({start(){Object.assign(this,{ready:new Promise(s=>this.resolveReady=s),password:_ge(t,n),signed:i,strength:o-1,pending:new Uint8Array})},async transform(s,a){let c=this,{password:u,strength:f,resolveReady:d,ready:p}=c;u?(await Zot(c,f,u,sd(s,0,lF[f]+2)),s=sd(s,lF[f]+2),r?a.error(new Error(tg)):d()):await p;let g=new Uint8Array(s.length-p0-(s.length-p0)%wS);a.enqueue(mge(c,s,g,0,p0,!0))},async flush(s){let{signed:a,ctr:c,hmac:u,pending:f,ready:d}=this;if(u&&c){await d;let p=sd(f,0,f.length-p0),g=sd(f,f.length-p0),m=new Uint8Array;if(p.length){let x=fF(Um,p);u.update(x);let b=c.update(x);m=uF(Um,b)}if(a){let x=sd(uF(Um,u.digest()),0,p0);for(let b=0;b<p0;b++)if(x[b]!=g[b])throw new Error(AT)}s.enqueue(m)}}})}},nH=class extends null{constructor({password:t,rawPassword:n,encryptionStrength:i}){let o;super({start(){Object.assign(this,{ready:new Promise(r=>this.resolveReady=r),password:_ge(t,n),strength:i-1,pending:new Uint8Array})},async transform(r,s){let a=this,{password:c,strength:u,resolveReady:f,ready:d}=a,p=new Uint8Array;c?(p=await $ot(a,u,c),f()):await d;let g=new Uint8Array(p.length+r.length-r.length%wS);g.set(p,0),s.enqueue(mge(a,r,g,p.length,0))},async flush(r){let{ctr:s,hmac:a,pending:c,ready:u}=this;if(a&&s){await u;let f=new Uint8Array;if(c.length){let d=s.update(fF(Um,c));a.update(d),f=uF(Um,d)}o.signature=uF(Um,a.digest()).slice(0,p0),r.enqueue(rY(f,o.signature))}}}),o=this}};function mge(e,t,n,i,o,r){let{ctr:s,hmac:a,pending:c}=e,u=t.length-o;c.length&&(t=rY(c,t),n=ert(n,u-u%wS));let f;for(f=0;f<=u-wS;f+=wS){let d=fF(Um,sd(t,f,f+wS));r&&a.update(d);let p=s.update(d);r||a.update(p),n.set(uF(Um,p),f+i)}return e.pending=sd(t,f),n}async function Zot(e,t,n,i){let o=await pge(e,t,n,sd(i,0,lF[t])),r=sd(i,lF[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(m0)}async function $ot(e,t,n){let i=eH(new Uint8Array(lF[t])),o=await pge(e,t,n,i);return rY(i,o)}async function pge(e,t,n,i){e.password=null;let o=await Qot(zot,n,Wot,!1,jot),r=await Jot(Object.assign({salt:i},oY),o,8*(cF[t]*2+2)),s=new Uint8Array(r),a=fF(Um,sd(s,0,cF[t])),c=fF(Um,sd(s,cF[t],cF[t]*2)),u=sd(s,cF[t]*2);return Object.assign(e,{keys:{key:a,authentication:c,passwordVerification:u},ctr:new Xot(new Yot(a),Array.from(qot)),hmac:new Kot(c)}),u}async function Qot(e,t,n,i,o){if(uge)try{return await dF.importKey(e,t,n,i,o)}catch{return uge=!1,h0.importKey(t)}else return h0.importKey(t)}async function Jot(e,t,n){if(fge)try{return await dF.deriveBits(e,t,n)}catch{return fge=!1,h0.pbkdf2(t,e.salt,oY.iterations,n)}else return h0.pbkdf2(t,e.salt,oY.iterations,n)}function _ge(e,t){return t===Ri?vS(e):t}function rY(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ert(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function sd(e,t,n){return e.subarray(t,n)}function uF(e,t){return e.fromBits(t)}function fF(e,t){return e.toBits(t)}var DS=12,oH=class extends null{constructor({password:t,passwordVerification:n,checkPasswordOnly:i}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),bge(this,t)},transform(o,r){let s=this;if(s.password){let a=gge(s,o.subarray(0,DS));if(s.password=null,a[DS-1]!=s.passwordVerification)throw new Error(m0);o=o.subarray(DS)}i?r.error(new Error(tg)):r.enqueue(gge(s,o))}})}},rH=class extends null{constructor({password:t,passwordVerification:n}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),bge(this,t)},transform(i,o){let r=this,s,a;if(r.password){r.password=null;let c=eH(new Uint8Array(DS));c[DS-1]=r.passwordVerification,s=new Uint8Array(i.length+c.length),s.set(yge(r,c),0),a=DS}else s=new Uint8Array(i.length),a=0;s.set(yge(r,i),a),o.enqueue(s)}})}};function gge(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=Tge(e)^t[i],sY(e,n[i]);return n}function yge(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=Tge(e)^t[i],sY(e,t[i]);return n}function bge(e,t){let n=[305419896,591751049,878082192];Object.assign(e,{keys:n,crcKey0:new eg(n[0]),crcKey2:new eg(n[2])});for(let i=0;i<t.length;i++)sY(e,t.charCodeAt(i))}function sY(e,t){let[n,i,o]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),i=xge(Math.imul(xge(i+Cge(n)),134775813)+1),e.crcKey2.append([i>>>24]),o=~e.crcKey2.get(),e.keys=[n,i,o]}function Tge(e){let t=e.keys[2]|2;return Cge(Math.imul(t,t^1)>>>8)}function Cge(e){return e&255}function xge(e){return e&4294967295}var Age="deflate-raw",sH=class extends null{constructor(t,{chunkSize:n,CompressionStream:i,CompressionStreamNative:o}){super({});let{compressed:r,encrypted:s,useCompressionStream:a,zipCrypto:c,signed:u,level:f}=t,d=this,p,g,m=Ege(super.readable);(!s||c)&&u&&(p=new sF,m=zm(m,p)),r&&(m=vge(m,a,{level:f,chunkSize:n},o,i)),s&&(c?m=zm(m,new rH(t)):(g=new nH(t),m=zm(m,g))),Sge(d,m,()=>{let x;s&&!c&&(x=g.signature),(!s||c)&&u&&(x=new DataView(p.value.buffer).getUint32(0)),d.signature=x})}},aH=class extends null{constructor(t,{chunkSize:n,DecompressionStream:i,DecompressionStreamNative:o}){super({});let{zipCrypto:r,encrypted:s,signed:a,signature:c,compressed:u,useCompressionStream:f}=t,d,p,g=Ege(super.readable);s&&(r?g=zm(g,new oH(t)):(p=new tH(t),g=zm(g,p))),u&&(g=vge(g,f,{chunkSize:n},o,i)),(!s||r)&&a&&(d=new sF,g=zm(g,d)),Sge(this,g,()=>{if((!s||r)&&a){let m=new DataView(d.value.buffer);if(c!=m.getUint32(0,!1))throw new Error(AT)}})}};function Ege(e){return zm(e,new null({transform(t,n){t&&t.length&&n.enqueue(t)}}))}function Sge(e,t,n){t=zm(t,new null({flush:n})),Object.defineProperty(e,"readable",{get(){return t}})}function vge(e,t,n,i,o){try{let r=t&&i?i:o;e=zm(e,new r(Age,n))}catch{if(t)try{e=zm(e,new o(Age,n))}catch{return e}else return e}return e}function zm(e,t){return e.pipeThrough(t)}var wge="message",Dge="start",Ige="pull",aY="data",Pge="ack",cY="close",uH="deflate",fH="inflate";var cH=class extends null{constructor(t,n){super({});let i=this,{codecType:o}=t,r;o.startsWith(uH)?r=sH:o.startsWith(fH)&&(r=aH);let s=0,a=0,c=new r(t,n),u=super.readable,f=new null({transform(p,g){p&&p.length&&(a+=p.length,g.enqueue(p))},flush(){Object.assign(i,{inputSize:a})}}),d=new null({transform(p,g){p&&p.length&&(s+=p.length,g.enqueue(p))},flush(){let{signature:p}=c;Object.assign(i,{signature:p,outputSize:s,inputSize:a})}});Object.defineProperty(i,"readable",{get(){return u.pipeThrough(f).pipeThrough(c).pipeThrough(d)}})}},lH=class extends null{constructor(t){let n;super({transform:i,flush(o){n&&n.length&&o.enqueue(n)}});function i(o,r){if(n){let s=new Uint8Array(n.length+o.length);s.set(n),s.set(o,n.length),o=s,n=null}o.length>t?(r.enqueue(o.slice(0,t)),i(o.slice(t),r)):n=o}}};var Mge=typeof Worker!=Gu;var IS=class{constructor(t,{readable:n,writable:i},{options:o,config:r,streamOptions:s,useWebWorkers:a,transferStreams:c,scripts:u},f){let{signal:d}=s;return Object.assign(t,{busy:!0,readable:n.pipeThrough(new lH(r.chunkSize)).pipeThrough(new uY(n,s),{signal:d}),writable:i,options:Object.assign({},o),scripts:u,transferStreams:c,terminate(){return new Promise(p=>{let{worker:g,busy:m}=t;g?(m?t.resolveTerminated=p:(g.terminate(),p()),t.interface=null):p()})},onTaskFinished(){let{resolveTerminated:p}=t;p&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),p()),t.busy=!1,f(t)}}),(a&&Mge?trt:Lge)(t,r)}},uY=class extends null{constructor(t,{onstart:n,onprogress:i,size:o,onend:r}){let s=0;super({async start(){n&&await lY(n,o)},async transform(a,c){s+=a.length,i&&await lY(i,s,o),c.enqueue(a)},async flush(){t.size=s,r&&await lY(r,s)}})}};async function lY(e,...t){try{await e(...t)}catch{}}function Lge(e,t){return{run:()=>nrt(e,t)}}function trt(e,t){let{baseURL:n,chunkSize:i}=t;if(!e.interface){let o;try{o=rrt(e.scripts[0],n,e)}catch{return Mge=!1,Lge(e,t)}Object.assign(e,{worker:o,interface:{run:()=>irt(e,{chunkSize:i})}})}return e.interface}async function nrt({options:e,readable:t,writable:n,onTaskFinished:i},o){try{let r=new cH(e,o);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});let{signature:s,inputSize:a,outputSize:c}=r;return{signature:s,inputSize:a,outputSize:c}}finally{i()}}async function irt(e,t){let n,i,o=new Promise((p,g)=>{n=p,i=g});Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:i,result:o});let{readable:r,options:s,scripts:a}=e,{writable:c,closed:u}=ort(e.writable),f=dH({type:Dge,scripts:a.slice(1),options:s,config:t,readable:r,writable:c},e);f||Object.assign(e,{reader:r.getReader(),writer:c.getWriter()});let d=await o;return f||await c.getWriter().close(),await u,d}function ort(e){let t,n=new Promise(o=>t=o);return{writable:new WritableStream({async write(o){let r=e.getWriter();await r.ready,await r.write(o),r.releaseLock()},close(){t()},abort(o){return e.getWriter().abort(o)}}),closed:n}}var Rge=!0,Oge=!0;function rrt(e,t,n){let i={type:"module"},o,r;typeof e==J_&&(e=e());try{o=new URL(e,t)}catch{o=e}if(Rge)try{r=new Worker(o)}catch{Rge=!1,r=new Worker(o,i)}else r=new Worker(o,i);return r.addEventListener(wge,s=>srt(s,n)),r}function dH(e,{worker:t,writer:n,onTaskFinished:i,transferStreams:o}){try{let{value:r,readable:s,writable:a}=e,c=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(0,r.byteLength):e.value=r.buffer,c.push(e.value)),o&&Oge?(s&&c.push(s),a&&c.push(a)):e.readable=e.writable=null,c.length)try{return t.postMessage(e,c),!0}catch{Oge=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(r){throw n&&n.releaseLock(),i(),r}}async function srt({data:e},t){let{type:n,value:i,messageId:o,result:r,error:s}=e,{reader:a,writer:c,resolveResult:u,rejectResult:f,onTaskFinished:d}=t;try{if(s){let{message:g,stack:m,code:x,name:b}=s,T=new Error(g);Object.assign(T,{stack:m,code:x,name:b}),p(T)}else{if(n==Ige){let{value:g,done:m}=await a.read();dH({type:aY,value:g,done:m,messageId:o},t)}n==aY&&(await c.ready,await c.write(new Uint8Array(i)),dH({type:Pge,messageId:o},t)),n==cY&&p(null,r)}}catch(g){dH({type:cY,messageId:o},t),p(g)}function p(g,m){g?f(g):u(m),c&&c.releaseLock(),d()}}var ET=[],fY=[];var Nge=0;async function hH(e,t){let{options:n,config:i}=t,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,codecType:a,compressed:c,signed:u,encrypted:f}=n,{workerScripts:d,maxWorkers:p}=i;t.transferStreams=o||o===Ri;let g=!c&&!u&&!f&&!t.transferStreams;return t.useWebWorkers=!g&&(r||r===Ri&&i.useWebWorkers),t.scripts=t.useWebWorkers&&d?d[a]:[],n.useCompressionStream=s||s===Ri&&i.useCompressionStream,(await m()).run();async function m(){let b=ET.find(T=>!T.busy);if(b)return Fge(b),new IS(b,e,t,x);if(ET.length<p){let T={indexWorker:Nge};return Nge++,ET.push(T),new IS(T,e,t,x)}else return new Promise(T=>fY.push({resolve:T,stream:e,workerOptions:t}))}function x(b){if(fY.length){let[{resolve:T,stream:C,workerOptions:A}]=fY.splice(0,1);T(new IS(b,C,A,x))}else b.worker?(Fge(b),art(b,t)):ET=ET.filter(T=>T!=b)}}function art(e,t){let{config:n}=t,{terminateWorkerTimeout:i}=n;Number.isFinite(i)&&i>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{ET=ET.filter(o=>o!=e);try{await e.terminate()}catch{}},i))}function Fge(e){let{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}var crt="Writer iterator completed too soon",lrt="text/plain";var urt="Content-Type";var frt=64*1024,mY="writable",PS=class{constructor(){this.size=0}init(){this.initialized=!0}},mH=class extends PS{get readable(){let t=this,{chunkSize:n=frt}=t,i=new ReadableStream({start(){this.chunkOffset=0},async pull(o){let{offset:r=0,size:s,diskNumberStart:a}=i,{chunkOffset:c}=this;o.enqueue(await Va(t,r+c,Math.min(n,s-c),a)),c+n>s?o.close():this.chunkOffset+=n}});return i}},dY=class extends PS{constructor(){super();let t=this,n=new WritableStream({write(i){return t.writeUint8Array(i)}});Object.defineProperty(t,mY,{get(){return n}})}writeUint8Array(){}};var pH=class extends dY{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){let n=this,i=0,o=n.pending,r=n.pending.length;for(n.pending="",i=0;i<Math.floor((r+t.length)/3)*3-r;i++)o+=String.fromCharCode(t[i]);for(;i<t.length;i++)n.pending+=String.fromCharCode(t[i]);o.length>2?n.data+=btoa(o):n.pending=o}getData(){return this.data+btoa(this.pending)}},ng=class extends mH{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,n){let i=this,o=t+n,s=await(t||o<i.size?i.blob.slice(t,o):i.blob).arrayBuffer();return s.byteLength>n&&(s=s.slice(t,o)),new Uint8Array(s)}},hF=class extends PS{constructor(t){super();let n=this,i=new null,o=[];t&&o.push([urt,t]),Object.defineProperty(n,mY,{get(){return i.writable}}),n.blob=new Response(i.readable,{headers:o}).blob()}getData(){return this.blob}},_H=class extends ng{constructor(t){super(new Blob([t],{type:lrt}))}},gH=class extends hF{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){let{encoding:t,utf8:n}=this,i=await super.getData();if(i.text&&n)return i.text();{let o=new FileReader;return new Promise((r,s)=>{Object.assign(o,{onload:({target:a})=>r(a.result),onerror:()=>s(o.error)}),o.readAsText(i,t)})}}};var hY=class extends mH{constructor(t){super(),this.readers=t}async init(){let t=this,{readers:n}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(n.map(async(i,o)=>{await i.init(),o!=n.length-1&&(t.lastDiskOffset+=i.size),t.size+=i.size})),super.init()}async readUint8Array(t,n,i=0){let o=this,{readers:r}=this,s,a=i;a==-1&&(a=r.length-1);let c=t;for(;c>=r[a].size;)c-=r[a].size,a++;let u=r[a],f=u.size;if(c+n<=f)s=await Va(u,c,n);else{let d=f-c;s=new Uint8Array(n),s.set(await Va(u,c,d)),s.set(await o.readUint8Array(t+d,n-d,i),d)}return o.lastDiskNumber=Math.max(a,o.lastDiskNumber),s}},yH=class extends PS{constructor(t,n=4294967295){super();let i=this;Object.assign(i,{diskNumber:0,diskOffset:0,size:0,maxSize:n,availableSize:n});let o,r,s,a=new WritableStream({async write(f){let{availableSize:d}=i;if(s)f.length>=d?(await c(f.slice(0,d)),await u(),i.diskOffset+=o.size,i.diskNumber++,s=null,await this.write(f.slice(d))):await c(f);else{let{value:p,done:g}=await t.next();if(g&&!p)throw new Error(crt);o=p,o.size=0,o.maxSize&&(i.maxSize=o.maxSize),i.availableSize=i.maxSize,await Gm(o),r=p.writable,s=r.getWriter(),await this.write(f)}},async close(){await s.ready,await u()}});Object.defineProperty(i,mY,{get(){return a}});async function c(f){let d=f.length;d&&(await s.ready,await s.write(f),o.size+=d,i.size+=d,i.availableSize-=d)}async function u(){r.size=o.size,await s.close()}}};async function Gm(e,t){if(e.init&&!e.initialized)await e.init(t);else return Promise.resolve()}function xH(e){return Array.isArray(e)&&(e=new hY(e)),e instanceof ReadableStream&&(e={readable:e}),e}function bH(e){e.writable===Ri&&typeof e.next==J_&&(e=new yH(e)),e instanceof WritableStream&&(e={writable:e});let{writable:t}=e;return t.size===Ri&&(t.size=0),e instanceof yH||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function Va(e,t,n,i){return e.readUint8Array(t,n,i)}var Bge="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),drt=Bge.length==256;function kge(e){if(drt){let t="";for(let n=0;n<e.length;n++)t+=Bge[e[n]];return t}else return new TextDecoder().decode(e)}function mF(e,t){return t&&t.trim().toLowerCase()=="cp437"?kge(e):new TextDecoder(t).decode(e)}var pY="filename",_Y="rawFilename",gY="comment",yY="rawComment",xY="uncompressedSize",bY="compressedSize",TY="offset",TH="diskNumberStart",RS="lastModDate",CH="rawLastModDate",pF="lastAccessDate",Vge="rawLastAccessDate",_F="creationDate",Uge="rawCreationDate",CY="internalFileAttribute",AY="externalFileAttribute",EY="msDosCompatible",AH="zip64",SY="encrypted",vY="version",wY="versionMadeBy",DY="zipCrypto",hrt=[pY,_Y,bY,xY,RS,CH,gY,yY,pF,_F,TY,TH,TH,CY,AY,EY,AH,SY,vY,wY,DY,"directory","bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"],_0=class{constructor(t){hrt.forEach(n=>this[n]=t[n])}};var IY="File format is not recognized",grt="End of central directory not found",yrt="End of Zip64 central directory locator not found",xrt="Central directory header not found",brt="Local file header not found",Trt="Zip64 extra field not found",Crt="File contains encrypted entry",Art="Encryption method not supported",zge="Compression method not supported",Hge="Split zip file",Gge="utf-8",Wge="cp437",Ert=[[xY,4294967295],[bY,4294967295],[TY,4294967295],[TH,65535]],Srt={[65535]:{getValue:bs,bytes:4},[4294967295]:{getValue:EH,bytes:8}},RH=class{constructor(t,n={}){Object.assign(this,{reader:xH(t),options:n,config:rF()})}async*getEntriesGenerator(t={}){let n=this,{reader:i}=n,{config:o}=n;if(await Gm(i),(i.size===Ri||!i.readUint8Array)&&(i=new ng(await new Response(i.readable).blob()),await Gm(i)),i.size<22)throw new Error(IY);i.chunkSize=J4(o);let r=await Prt(i,101010256,i.size,22,65535*16);if(!r){let N=await Va(i,0,4),_=xa(N);throw bs(_)==134695760?new Error(Hge):new Error(grt)}let s=xa(r),a=bs(s,12),c=bs(s,16),u=r.offset,f=ya(s,20),d=u+22+f,p=ya(s,4),g=i.lastDiskNumber||0,m=ya(s,6),x=ya(s,8),b=0,T=0;if(c==4294967295||a==4294967295||x==65535||m==65535){let N=await Va(i,r.offset-20,20),_=xa(N);if(bs(_,0)==117853008){c=EH(_,8);let S=await Va(i,c,56,-1),w=xa(S),I=r.offset-20-56;if(bs(w,0)!=101075792&&c!=I){let L=c;c=I,b=c-L,S=await Va(i,c,56,-1),w=xa(S)}if(bs(w,0)!=101075792)throw new Error(yrt);p==65535&&(p=bs(w,16)),m==65535&&(m=bs(w,20)),x==65535&&(x=EH(w,32)),a==4294967295&&(a=EH(w,40)),c-=a}}if(c>=i.size&&(b=i.size-c-a-22,c=i.size-a-22),g!=p)throw new Error(Hge);if(c<0)throw new Error(IY);let C=0,A=await Va(i,c,a,m),E=xa(A);if(a){let N=r.offset-a;if(bs(E,C)!=33639248&&c!=N){let _=c;c=N,b+=c-_,A=await Va(i,c,a,m),E=xa(A)}}let v=r.offset-c-(i.lastDiskOffset||0);if(a!=v&&v>=0&&(a=v,A=await Va(i,c,a,m),E=xa(A)),c<0||c>=i.size)throw new Error(IY);let D=cl(n,t,"filenameEncoding"),O=cl(n,t,"commentEncoding");for(let N=0;N<x;N++){let _=new RY(i,o,n.options);if(bs(E,C)!=33639248)throw new Error(xrt);qge(_,E,C+6);let S=!!_.bitFlag.languageEncodingFlag,w=C+46,I=w+_.filenameLength,L=I+_.extraFieldLength,B=ya(E,C+4),U=(B&0)==0,V=A.subarray(w,I),G=ya(E,C+32),k=L+G,W=A.subarray(L,k),q=S,J=S,j=U&&(OS(E,C+38)&16)==16,K=bs(E,C+42)+b;Object.assign(_,{versionMadeBy:B,msDosCompatible:U,compressedSize:0,uncompressedSize:0,commentLength:G,directory:j,offset:K,diskNumberStart:ya(E,C+34),internalFileAttribute:ya(E,C+36),externalFileAttribute:bs(E,C+38),rawFilename:V,filenameUTF8:q,commentUTF8:J,rawExtraField:A.subarray(I,L)});let Q=cl(n,t,"decodeText")||mF,de=q?Gge:D||Wge,ye=J?Gge:O||Wge,ae=Q(V,de);ae===Ri&&(ae=mF(V,de));let _e=Q(W,ye);_e===Ri&&(_e=mF(W,ye)),Object.assign(_,{rawComment:W,filename:ae,comment:_e,directory:j||ae.endsWith(ES)}),T=Math.max(K,T),await Yge(_,_,E,C+6),_.zipCrypto=_.encrypted&&!_.extraFieldAES;let xe=new _0(_);xe.getData=(Ae,ke)=>_.getData(Ae,xe,ke),C=k;let{onprogress:De}=t;if(De)try{await De(N+1,x,new _0(_))}catch{}yield xe}let R=cl(n,t,"extractPrependedData"),M=cl(n,t,"extractAppendedData");return R&&(n.prependedData=T>0?await Va(i,0,T):new Uint8Array),n.comment=f?await Va(i,u+22,f):new Uint8Array,M&&(n.appendedData=d<i.size?await Va(i,d,i.size-d):new Uint8Array),!0}async getEntries(t={}){let n=[];for await(let i of this.getEntriesGenerator(t))n.push(i);return n}async close(){}};var RY=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let o=this,{reader:r,offset:s,diskNumberStart:a,extraFieldAES:c,compressionMethod:u,config:f,bitFlag:d,signature:p,rawLastModDate:g,uncompressedSize:m,compressedSize:x}=o,b=n.localDirectory={},T=await Va(r,s,30,a),C=xa(T),A=cl(o,i,"password"),E=cl(o,i,"rawPassword"),v=cl(o,i,"passThrough");if(A=A&&A.length&&A,E=E&&E.length&&E,c&&c.originalCompressionMethod!=99)throw new Error(zge);if(u!=0&&u!=8&&!v)throw new Error(zge);if(bs(C,0)!=67324752)throw new Error(brt);qge(b,C,4),b.rawExtraField=b.extraFieldLength?await Va(r,s+30+b.filenameLength,b.extraFieldLength,a):new Uint8Array,await Yge(o,b,C,4,!0),Object.assign(n,{lastAccessDate:b.lastAccessDate,creationDate:b.creationDate});let D=o.encrypted&&b.encrypted&&!v,O=D&&!c;if(v||(n.zipCrypto=O),D){if(!O&&c.strength===Ri)throw new Error(Art);if(!A&&!E)throw new Error(Crt)}let R=s+30+b.filenameLength+b.extraFieldLength,M=x,N=r.readable;Object.assign(N,{diskNumberStart:a,offset:R,size:M});let _=cl(o,i,"signal"),S=cl(o,i,"checkPasswordOnly");S&&(t=new WritableStream),t=bH(t),await Gm(t,v?x:m);let{writable:w}=t,{onstart:I,onprogress:L,onend:B}=i,U={options:{codecType:fH,password:A,rawPassword:E,zipCrypto:O,encryptionStrength:c&&c.strength,signed:cl(o,i,"checkSignature")&&!v,passwordVerification:O&&(d.dataDescriptor?g>>>8&255:p>>>24&255),signature:p,compressed:u!=0&&!v,encrypted:o.encrypted&&!v,useWebWorkers:cl(o,i,"useWebWorkers"),useCompressionStream:cl(o,i,"useCompressionStream"),transferStreams:cl(o,i,"transferStreams"),checkPasswordOnly:S},config:f,streamOptions:{signal:_,size:M,onstart:I,onprogress:L,onend:B}},V=0;try{({outputSize:V}=await hH({readable:N,writable:w},U))}catch(G){if(!S||G.message!=tg)throw G}finally{let G=cl(o,i,"preventClose");w.size+=V,!G&&!w.locked&&await w.getWriter().close()}return S?Ri:t.getData?t.getData():w}};function qge(e,t,n){let i=e.rawBitFlag=ya(t,n+2),o=(i&1)==1,r=bs(t,n+6);Object.assign(e,{encrypted:o,version:ya(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:Rrt(r),filenameLength:ya(t,n+22),extraFieldLength:ya(t,n+24)})}async function Yge(e,t,n,i,o){let{rawExtraField:r}=t,s=t.extraField=new Map,a=xa(new Uint8Array(r)),c=0;try{for(;c<r.length;){let T=ya(a,c),C=ya(a,c+2);s.set(T,{type:T,data:r.slice(c+4,c+4+C)}),c+=4+C}}catch{}let u=ya(n,i+4);Object.assign(t,{signature:bs(n,i+10),uncompressedSize:bs(n,i+18),compressedSize:bs(n,i+14)});let f=s.get(1);f&&(vrt(f,t),t.extraFieldZip64=f);let d=s.get(28789);d&&(await jge(d,pY,_Y,t,e),t.extraFieldUnicodePath=d);let p=s.get(25461);p&&(await jge(p,gY,yY,t,e),t.extraFieldUnicodeComment=p);let g=s.get(39169);g?(wrt(g,t,u),t.extraFieldAES=g):t.compressionMethod=u;let m=s.get(10);m&&(Drt(m,t),t.extraFieldNTFS=m);let x=s.get(21589);x&&(Irt(x,t,o),t.extraFieldExtendedTimestamp=x);let b=s.get(6534);b&&(t.extraFieldUSDZ=b)}function vrt(e,t){t.zip64=!0;let n=xa(e.data),i=Ert.filter(([o,r])=>t[o]==r);for(let o=0,r=0;o<i.length;o++){let[s,a]=i[o];if(t[s]==a){let c=Srt[a];t[s]=e[s]=c.getValue(n,r),r+=c.bytes}else if(e[s])throw new Error(Trt)}}async function jge(e,t,n,i,o){let r=xa(e.data),s=new eg;s.append(o[n]);let a=xa(new Uint8Array(4));a.setUint32(0,s.get(),!0);let c=bs(r,1);Object.assign(e,{version:OS(r,0),[t]:mF(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&c==bs(a,0)}),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function wrt(e,t,n){let i=xa(e.data),o=OS(i,4);Object.assign(e,{vendorVersion:OS(i,0),vendorId:OS(i,2),strength:o,originalCompressionMethod:n,compressionMethod:ya(i,5)}),t.compressionMethod=e.compressionMethod}function Drt(e,t){let n=xa(e.data),i=4,o;try{for(;i<e.data.length&&!o;){let r=ya(n,i),s=ya(n,i+2);r==1&&(o=e.data.slice(i+4,i+4+s)),i+=4+s}}catch{}try{if(o&&o.length==24){let r=xa(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),c=r.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:c});let u=PY(s),f=PY(a),d=PY(c),p={lastModDate:u,lastAccessDate:f,creationDate:d};Object.assign(e,p),Object.assign(t,p)}}catch{}}function Irt(e,t,n){let i=xa(e.data),o=OS(i,0),r=[],s=[];n?((o&1)==1&&(r.push(RS),s.push(CH)),(o&2)==2&&(r.push(pF),s.push(Vge)),(o&4)==4&&(r.push(_F),s.push(Uge))):e.data.length>=5&&(r.push(RS),s.push(CH));let a=1;r.forEach((c,u)=>{if(e.data.length>=a+4){let f=bs(i,a);t[c]=e[c]=new Date(f*1e3);let d=s[u];e[d]=f}a+=4})}async function Prt(e,t,n,i,o){let r=new Uint8Array(4),s=xa(r);Ort(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(u){let f=n-u,d=await Va(e,f,u);for(let p=d.length-i;p>=0;p--)if(d[p]==r[0]&&d[p+1]==r[1]&&d[p+2]==r[2]&&d[p+3]==r[3])return{offset:f+p,buffer:d.slice(p,p+i).buffer}}}function cl(e,t,n){return t[n]===Ri?e.options[n]:t[n]}function Rrt(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function PY(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function OS(e,t){return e.getUint8(t)}function ya(e,t){return e.getUint16(t,!0)}function bs(e,t){return e.getUint32(t,!0)}function EH(e,t){return Number(e.getBigUint64(t,!0))}function Ort(e,t,n){e.setUint32(t,n,!0)}function xa(e){return new DataView(e.buffer)}var Frt="File already exists",Brt="Zip file comment exceeds 64KB",krt="File entry comment exceeds 64KB",Vrt="File entry name exceeds 64KB",Zge="Version exceeds 65535",Urt="The strength must equal 1, 2, or 3",zrt="Extra field type exceeds 65535",Hrt="Extra field data exceeds 64KB",jY="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Grt="Undefined uncompressed size",$ge=new Uint8Array([7,0,2,0,65,69,3,0,0]),GY=0,Qge=[],LH=class{constructor(t,n={}){t=bH(t);let i=t.availableSize!==Ri&&t.availableSize>0&&t.availableSize!==1/0&&t.maxSize!==Ri&&t.maxSize>0&&t.maxSize!==1/0;Object.assign(this,{writer:t,addSplitZipSignature:i,options:n,config:rF(),files:new Map,filenames:new Set,offset:n.offset===Ri?t.writable.size:n.offset,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(t="",n,i={}){let o=this,{pendingAddFileCalls:r,config:s}=o;GY<s.maxWorkers?GY++:await new Promise(c=>Qge.push(c));let a;try{if(t=t.trim(),o.filenames.has(t))throw new Error(Frt);return o.filenames.add(t),a=Wrt(o,t,n,i),r.add(a),await a}catch(c){throw o.filenames.delete(t),c}finally{r.delete(a);let c=Qge.shift();c?c():GY--}}async close(t=new Uint8Array,n={}){let i=this,{pendingAddFileCalls:o,writer:r}=this,{writable:s}=r;for(;o.size;)await Promise.allSettled(Array.from(o));return await Jrt(this,t,n),po(i,n,"preventClose")||await s.getWriter().close(),r.getData?r.getData():s}};async function Wrt(e,t,n,i){t=t.trim(),i.directory&&!t.endsWith(ES)?t+=ES:i.directory=t.endsWith(ES);let o=po(e,i,"encodeText",vS),r=o(t);if(r===Ri&&(r=vS(t)),Zi(r)>65535)throw new Error(Vrt);let s=i.comment||"",a=o(s);if(a===Ri&&(a=vS(s)),Zi(a)>65535)throw new Error(krt);let c=po(e,i,vY,20);if(c>65535)throw new Error(Zge);let u=po(e,i,wY,20);if(u>65535)throw new Error(Zge);let f=po(e,i,RS,new Date),d=po(e,i,pF),p=po(e,i,_F),g=po(e,i,EY,!0),m=po(e,i,CY,0),x=po(e,i,AY,0),b=po(e,i,"passThrough"),T,C;b||(T=po(e,i,"password"),C=po(e,i,"rawPassword"));let A=po(e,i,"encryptionStrength",3),E=po(e,i,DY),v=po(e,i,"extendedTimestamp",!0),D=po(e,i,"keepOrder",!0),O=po(e,i,"level"),R=po(e,i,"useWebWorkers"),M=po(e,i,"bufferedWrite"),N=po(e,i,"dataDescriptorSignature",!1),_=po(e,i,"signal"),S=po(e,i,"useUnicodeFileNames",!0),w=po(e,i,"useCompressionStream"),I=po(e,i,"compressionMethod"),L=po(e,i,"dataDescriptor",!0),B=po(e,i,AH);if(!E&&(T!==Ri||C!==Ri)&&!(A>=1&&A<=3))throw new Error(Urt);let U=new Uint8Array,{extraField:V}=i;if(V){let wt=0,pt=0;V.forEach(Be=>wt+=4+Zi(Be)),U=new Uint8Array(wt),V.forEach((Be,Yt)=>{if(Yt>65535)throw new Error(zrt);if(Zi(Be)>65535)throw new Error(Hrt);Os(U,new Uint16Array([Yt]),pt),Os(U,new Uint16Array([Zi(Be)]),pt+2),Os(U,Be,pt+4),pt+=4+Zi(Be)})}let G=0,k=0,W=0;if(b&&({uncompressedSize:W}=i,W===Ri))throw new Error(Grt);let q=B===!0;n&&(n=xH(n),await Gm(n),b?G=Jge(W):n.size===Ri?(L=!0,(B||B===Ri)&&(B=!0,W=G=4294967296)):(W=n.size,G=Jge(W)));let{diskOffset:J,diskNumber:j,maxSize:K}=e.writer,Q=q||W>4294967295,de=q||G>4294967295,ye=q||e.offset+e.pendingEntriesSize-J>4294967295,_e=po(e,i,"supportZip64SplitFile",!0)&&q||j+Math.ceil(e.pendingEntriesSize/K)>65535;if(ye||Q||de||_e){if(B===!1||!D)throw new Error(jY);B=!0}B=B||!1;let xe=po(e,i,SY),{signature:De}=i;i=Object.assign({},i,{rawFilename:r,rawComment:a,version:c,versionMadeBy:u,lastModDate:f,lastAccessDate:d,creationDate:p,rawExtraField:U,zip64:B,zip64UncompressedSize:Q,zip64CompressedSize:de,zip64Offset:ye,zip64DiskNumberStart:_e,password:T,rawPassword:C,level:!w&&e.config.CompressionStream===Ri&&e.config.CompressionStreamNative===Ri?0:O,useWebWorkers:R,encryptionStrength:A,extendedTimestamp:v,zipCrypto:E,bufferedWrite:M,keepOrder:D,useUnicodeFileNames:S,dataDescriptor:L,dataDescriptorSignature:N,signal:_,msDosCompatible:g,internalFileAttribute:m,externalFileAttribute:x,useCompressionStream:w,passThrough:b,encrypted:!!(T&&Zi(T)||C&&Zi(C))||b&&xe,signature:De,compressionMethod:I});let Ae=Yrt(i),ke=Krt(i),ze=Zi(Ae.localHeaderArray,ke.dataDescriptorArray);k=ze+G,e.options.usdz&&(k+=k+64),e.pendingEntriesSize+=k;let tt;try{tt=await jrt(e,t,n,{headerInfo:Ae,dataDescriptorInfo:ke,metadataSize:ze},i)}finally{e.pendingEntriesSize-=k}return Object.assign(tt,{name:t,comment:s,extraField:V}),new _0(tt)}async function jrt(e,t,n,i,o){let{files:r,writer:s}=e,{keepOrder:a,dataDescriptor:c,signal:u}=o,{headerInfo:f}=i,{usdz:d}=e.options,p=Array.from(r.values()).pop(),g={},m,x,b,T,C,A,E;r.set(t,g);try{let R;a&&(R=p&&p.lock,v()),(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&a||!c)&&!d?(A=new null,E=new Response(A.readable).blob(),A.writable.size=0,m=!0,e.bufferedWrites++,await Gm(s)):(A=s,await D()),await Gm(A);let{writable:M}=s,{diskOffset:N}=s;if(e.addSplitZipSignature){delete e.addSplitZipSignature;let S=new Uint8Array(4),w=Ua(S);Ki(w,0,134695760),await Wm(M,S),e.offset+=4}d&&Xrt(i,e.offset-N),m||(await R,await O(M));let{diskNumber:_}=s;if(C=!0,g.diskNumberStart=_,g=await qrt(n,A,g,i,e.config,o),C=!1,r.set(t,g),g.filename=t,m){await A.writable.getWriter().close();let S=await E;await R,await D(),T=!0,c||(S=await $rt(g,S,M,o)),await O(M),g.diskNumberStart=s.diskNumber,N=s.diskOffset,await S.stream().pipeTo(M,{preventClose:!0,preventAbort:!0,signal:u}),M.size+=S.size,T=!1}if(g.offset=e.offset-N,g.zip64)Qrt(g,o);else if(g.offset>4294967295)throw new Error(jY);return e.offset+=g.size,g}catch(R){if(m&&T||!m&&C){if(e.hasCorruptedEntries=!0,R)try{R.corruptedEntry=!0}catch{}m?e.offset+=A.writable.size:e.offset=A.writable.size}throw r.delete(t),R}finally{m&&e.bufferedWrites--,b&&b(),x&&x()}function v(){g.lock=new Promise(R=>b=R)}async function D(){e.writerLocked=!0;let{lockWriter:R}=e;e.lockWriter=new Promise(M=>x=()=>{e.writerLocked=!1,M()}),await R}async function O(R){Zi(f.localHeaderArray)>s.availableSize&&(s.availableSize=0,await Wm(R,new Uint8Array))}}async function qrt(e,t,{diskNumberStart:n,lock:i},o,r,s){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:u}=o,{localHeaderArray:f,headerArray:d,lastModDate:p,rawLastModDate:g,encrypted:m,compressed:x,version:b,compressionMethod:T,rawExtraFieldExtendedTimestamp:C,extraFieldExtendedTimestampFlag:A,rawExtraFieldNTFS:E,rawExtraFieldAES:v}=a,{dataDescriptorArray:D}=c,{rawFilename:O,lastAccessDate:R,creationDate:M,password:N,rawPassword:_,level:S,zip64:w,zip64UncompressedSize:I,zip64CompressedSize:L,zip64Offset:B,zip64DiskNumberStart:U,zipCrypto:V,dataDescriptor:G,directory:k,versionMadeBy:W,rawComment:q,rawExtraField:J,useWebWorkers:j,onstart:K,onprogress:Q,onend:de,signal:ye,encryptionStrength:ae,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:De,externalFileAttribute:Ae,useCompressionStream:ke,passThrough:ze}=s,tt={lock:i,versionMadeBy:W,zip64:w,directory:!!k,filenameUTF8:!0,rawFilename:O,commentUTF8:!0,rawComment:q,rawExtraFieldExtendedTimestamp:C,rawExtraFieldNTFS:E,rawExtraFieldAES:v,rawExtraField:J,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:De,externalFileAttribute:Ae,diskNumberStart:n},{signature:wt,uncompressedSize:pt}=s,Be=0;ze||(pt=0);let{writable:Yt}=t;if(e){e.chunkSize=J4(r),await Wm(Yt,f);let lt=e.readable,tn=lt.size=e.size,Ce={options:{codecType:uH,level:S,rawPassword:_,password:N,encryptionStrength:ae,zipCrypto:m&&V,passwordVerification:m&&V&&g>>8&255,signed:!ze,compressed:x&&!ze,encrypted:m&&!ze,useWebWorkers:j,useCompressionStream:ke,transferStreams:!1},config:r,streamOptions:{signal:ye,size:tn,onstart:K,onprogress:Q,onend:de}},Te=await hH({readable:lt,writable:Yt},Ce);Be=Te.outputSize,ze||(pt=Te.inputSize,wt=Te.signature),Yt.size+=pt}else await Wm(Yt,f);let Ct;if(w){let lt=4;I&&(lt+=8),L&&(lt+=8),B&&(lt+=8),U&&(lt+=4),Ct=new Uint8Array(lt)}else Ct=new Uint8Array;return Zrt({signature:wt,rawExtraFieldZip64:Ct,compressedSize:Be,uncompressedSize:pt,headerInfo:a,dataDescriptorInfo:c},s),G&&await Wm(Yt,D),Object.assign(tt,{uncompressedSize:pt,compressedSize:Be,lastModDate:p,rawLastModDate:g,creationDate:M,lastAccessDate:R,encrypted:m,zipCrypto:V,size:u+Be,compressionMethod:T,version:b,headerArray:d,signature:wt,rawExtraFieldZip64:Ct,extraFieldExtendedTimestampFlag:A,zip64UncompressedSize:I,zip64CompressedSize:L,zip64Offset:B,zip64DiskNumberStart:U}),tt}function Yrt(e){let{rawFilename:t,lastModDate:n,lastAccessDate:i,creationDate:o,level:r,zip64:s,zipCrypto:a,useUnicodeFileNames:c,dataDescriptor:u,directory:f,rawExtraField:d,encryptionStrength:p,extendedTimestamp:g,encrypted:m}=e,x=r!==0&&!f,{version:b,compressionMethod:T}=e,C;if(m&&!a){C=new Uint8Array(Zi($ge)+2);let B=Ua(C);oo(B,0,39169),Os(C,$ge,2),NH(B,8,p)}else C=new Uint8Array;let A,E,v;if(g){E=new Uint8Array(9+(i?4:0)+(o?4:0));let B=Ua(E);oo(B,0,21589),oo(B,2,Zi(E)-4),v=1+(i?2:0)+(o?4:0),NH(B,4,v);let U=5;Ki(B,U,Math.floor(n.getTime()/1e3)),U+=4,i&&(Ki(B,U,Math.floor(i.getTime()/1e3)),U+=4),o&&Ki(B,U,Math.floor(o.getTime()/1e3));try{A=new Uint8Array(36);let V=Ua(A),G=WY(n);oo(V,0,10),oo(V,2,32),oo(V,8,1),oo(V,10,24),Zl(V,12,G),Zl(V,20,WY(i)||G),Zl(V,28,WY(o)||G)}catch{A=new Uint8Array}}else A=E=new Uint8Array;let D=0;c&&(D=D|2048),u&&(D=D|8),T===Ri&&(T=x?8:0),T==8&&(r>=1&&r<3&&(D=D|6),r>=3&&r<5&&(D=D|1),r===9&&(D=D|2)),s&&(b=b>45?b:45),m&&(D=D|1,a||(b=b>51?b:51,C[9]=T,T=99));let O=new Uint8Array(26),R=Ua(O);oo(R,0,b),oo(R,2,D),oo(R,4,T);let M=new Uint32Array(1),N=Ua(M),_;n<tY?_=tY:n>eY?_=eY:_=n,oo(N,0,(_.getHours()<<6|_.getMinutes())<<5|_.getSeconds()/2),oo(N,2,(_.getFullYear()-1980<<4|_.getMonth()+1)<<5|_.getDate());let S=M[0];Ki(R,6,S),oo(R,22,Zi(t));let w=Zi(C,E,A,d);oo(R,24,w);let I=new Uint8Array(30+Zi(t)+w),L=Ua(I);return Ki(L,0,67324752),Os(I,O,4),Os(I,t,30),Os(I,C,30+Zi(t)),Os(I,E,30+Zi(t,C)),Os(I,A,30+Zi(t,C,E)),Os(I,d,30+Zi(t,C,E,A)),{localHeaderArray:I,headerArray:O,headerView:R,lastModDate:n,rawLastModDate:S,encrypted:m,compressed:x,version:b,compressionMethod:T,extraFieldExtendedTimestampFlag:v,rawExtraFieldExtendedTimestamp:E,rawExtraFieldNTFS:A,rawExtraFieldAES:C,extraFieldLength:w}}function Xrt(e,t){let{headerInfo:n}=e,{localHeaderArray:i,extraFieldLength:o}=n,r=Ua(i),s=64-(t+Zi(i))%64;s<4&&(s+=64);let a=new Uint8Array(s),c=Ua(a);oo(c,0,6534),oo(c,2,s-2);let u=i;n.localHeaderArray=i=new Uint8Array(Zi(u)+s),Os(i,u),Os(i,a,Zi(u)),r=Ua(i),oo(r,28,o+s),e.metadataSize+=s}function Krt(e){let{zip64:t,dataDescriptor:n,dataDescriptorSignature:i}=e,o=new Uint8Array,r,s=0;return n&&(o=new Uint8Array(t?i?24:20:i?16:12),r=Ua(o),i&&(s=4,Ki(r,0,134695760))),{dataDescriptorArray:o,dataDescriptorView:r,dataDescriptorOffset:s}}function Zrt(e,t){let{signature:n,rawExtraFieldZip64:i,compressedSize:o,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:a}=e,{headerView:c,encrypted:u}=s,{dataDescriptorView:f,dataDescriptorOffset:d}=a,{zip64:p,zip64UncompressedSize:g,zip64CompressedSize:m,zipCrypto:x,dataDescriptor:b}=t;if((!u||x)&&n!==Ri&&(Ki(c,10,n),b&&Ki(f,d,n)),p){let T=Ua(i);oo(T,0,1),oo(T,2,Zi(i)-4);let C=4;g&&(Ki(c,18,4294967295),Zl(T,C,BigInt(r)),C+=8),m&&(Ki(c,14,4294967295),Zl(T,C,BigInt(o))),b&&(Zl(f,d+4,BigInt(o)),Zl(f,d+12,BigInt(r)))}else Ki(c,14,o),Ki(c,18,r),b&&(Ki(f,d+4,o),Ki(f,d+8,r))}async function $rt(e,t,n,{zipCrypto:i}){let o;o=await t.slice(0,26).arrayBuffer(),o.byteLength!=26&&(o=o.slice(0,26));let r=new DataView(o);return(!e.encrypted||i)&&Ki(r,14,e.signature),e.zip64?(Ki(r,18,4294967295),Ki(r,22,4294967295)):(Ki(r,18,e.compressedSize),Ki(r,22,e.uncompressedSize)),await Wm(n,new Uint8Array(o)),t.slice(o.byteLength)}function Qrt(e,t){let{rawExtraFieldZip64:n,offset:i,diskNumberStart:o}=e,{zip64UncompressedSize:r,zip64CompressedSize:s,zip64Offset:a,zip64DiskNumberStart:c}=t,u=Ua(n),f=4;r&&(f+=8),s&&(f+=8),a&&(Zl(u,f,BigInt(i)),f+=8),c&&Ki(u,f,o)}async function Jrt(e,t,n){let{files:i,writer:o}=e,{diskOffset:r,writable:s}=o,{diskNumber:a}=o,c=0,u=0,f=e.offset-r,d=i.size;for(let[,v]of i){let{rawFilename:D,rawExtraFieldZip64:O,rawExtraFieldAES:R,rawComment:M,rawExtraFieldNTFS:N,rawExtraField:_,extendedTimestamp:S,extraFieldExtendedTimestampFlag:w,lastModDate:I}=v,L;if(S){L=new Uint8Array(9);let B=Ua(L);oo(B,0,21589),oo(B,2,5),NH(B,4,w),Ki(B,5,Math.floor(I.getTime()/1e3))}else L=new Uint8Array;v.rawExtraFieldCDExtendedTimestamp=L,u+=46+Zi(D,M,O,R,N,L,_)}let p=new Uint8Array(u),g=Ua(p);await Gm(o);let m=0;for(let[v,D]of Array.from(i.values()).entries()){let{offset:O,rawFilename:R,rawExtraFieldZip64:M,rawExtraFieldAES:N,rawExtraFieldCDExtendedTimestamp:_,rawExtraFieldNTFS:S,rawExtraField:w,rawComment:I,versionMadeBy:L,headerArray:B,directory:U,zip64:V,zip64UncompressedSize:G,zip64CompressedSize:k,zip64DiskNumberStart:W,zip64Offset:q,msDosCompatible:J,internalFileAttribute:j,externalFileAttribute:K,diskNumberStart:Q,uncompressedSize:de,compressedSize:ye}=D,ae=Zi(M,N,_,S,w);Ki(g,c,33639248),oo(g,c+4,L);let _e=Ua(B);G||Ki(_e,18,de),k||Ki(_e,14,ye),Os(p,B,c+6),oo(g,c+30,ae),oo(g,c+32,Zi(I)),oo(g,c+34,V&&W?65535:Q),oo(g,c+36,j),K?Ki(g,c+38,K):U&&J&&NH(g,c+38,16),Ki(g,c+42,V&&q?4294967295:O),Os(p,R,c+46),Os(p,M,c+46+Zi(R)),Os(p,N,c+46+Zi(R,M)),Os(p,_,c+46+Zi(R,M,N)),Os(p,S,c+46+Zi(R,M,N,_)),Os(p,w,c+46+Zi(R,M,N,_,S)),Os(p,I,c+46+Zi(R)+ae);let xe=46+Zi(R,I)+ae;if(c-m>o.availableSize&&(o.availableSize=0,await Wm(s,p.slice(m,c)),m=c),c+=xe,n.onprogress)try{await n.onprogress(v+1,i.size,new _0(D))}catch{}}await Wm(s,m?p.slice(m):p);let x=o.diskNumber,{availableSize:b}=o;b<22&&x++;let T=po(e,n,AH);if(f>4294967295||u>4294967295||d>65535||x>65535){if(T===!1)throw new Error(jY);T=!0}let C=new Uint8Array(T?98:22),A=Ua(C);c=0,T&&(Ki(A,0,101075792),Zl(A,4,BigInt(44)),oo(A,12,45),oo(A,14,45),Ki(A,16,x),Ki(A,20,a),Zl(A,24,BigInt(d)),Zl(A,32,BigInt(d)),Zl(A,40,BigInt(u)),Zl(A,48,BigInt(f)),Ki(A,56,117853008),Zl(A,64,BigInt(f)+BigInt(u)),Ki(A,72,x+1),po(e,n,"supportZip64SplitFile",!0)&&(x=65535,a=65535),d=65535,f=4294967295,u=4294967295,c+=76),Ki(A,c,101010256),oo(A,c+4,x),oo(A,c+6,a),oo(A,c+8,d),oo(A,c+10,d),Ki(A,c+12,u),Ki(A,c+16,f);let E=Zi(t);if(E)if(E<=65535)oo(A,c+20,E);else throw new Error(Brt);await Wm(s,C),E&&await Wm(s,t)}async function Wm(e,t){let n=e.getWriter();try{await n.ready,e.size+=Zi(t),await n.write(t)}finally{n.releaseLock()}}function WY(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function po(e,t,n,i){let o=t[n]===Ri?e.options[n]:t[n];return o===Ri?i:o}function Jge(e){return e+5*(Math.floor(e/16383)+1)}function NH(e,t,n){e.setUint8(t,n)}function oo(e,t,n){e.setUint16(t,n,!0)}function Ki(e,t,n){e.setUint32(t,n,!0)}function Zl(e,t,n){e.setBigUint64(t,n,!0)}function Os(e,t,n){e.set(t,n)}function Ua(e){return new DataView(e.buffer)}function Zi(...e){let t=0;return e.forEach(n=>n&&(t+=n.length)),t}SS({Deflate:B_e,Inflate:rge});function est(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var In=est;function tst(e,t){this.position=e,this.headingPitchRange=t}var xF=tst;function FH(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new me,this.tourEnd=new me,this.entryStart=new me,this.entryEnd=new me,this._activeEntries=[]}FH.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};FH.prototype.play=function(e,t){this.tourStart.raiseEvent();let n=this;nye.call(this,e,t,function(i){n.playlistIndex=0,i||tye(n._activeEntries),n.tourEnd.raiseEvent(i)})};FH.prototype.stop=function(){tye(this._activeEntries)};function tye(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function nye(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=nst.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(o,e.scene.camera,t);else{let r=this;i.play(function(){r.entryEnd.raiseEvent(i);let s=r._activeEntries.indexOf(i);s>=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function nst(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,nye.call(this,e,t,n)}}var bF=FH;var Oi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var t=1.70158;return e===1?1:e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return e===0?0:--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Oi.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Oi.Bounce.In(e*2)*.5:Oi.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(t){return Math.pow(t,e)},Out:function(t){return 1-Math.pow(1-t,e)},InOut:function(t){return t<.5?Math.pow(t*2,e)/2:(1-Math.pow(2-t*2,e))/2+.5}}}}),TF=function(){return performance.now()},ist=function(){function e(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,t)}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(){for(var t,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];for(var o=0,r=n;o<r.length;o++){var s=r[o];(t=s._group)===null||t===void 0||t.remove(s),s._group=this,this._tweens[s.getId()]=s,this._tweensAddedDuringUpdate[s.getId()]=s}},e.prototype.remove=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var i=0,o=t;i<o.length;i++){var r=o[i];r._group=void 0,delete this._tweens[r.getId()],delete this._tweensAddedDuringUpdate[r.getId()]}},e.prototype.allStopped=function(){return this.getAll().every(function(t){return!t.isPlaying()})},e.prototype.update=function(t,n){t===void 0&&(t=TF()),n===void 0&&(n=!0);var i=Object.keys(this._tweens);if(i.length!==0)for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<i.length;o++){var r=this._tweens[i[o]],s=!n;r&&r.update(t,s)===!1&&!n&&this.remove(r)}i=Object.keys(this._tweensAddedDuringUpdate)}},e}(),MS={Linear:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=MS.Utils.Linear;return t<0?r(e[0],e[1],i):t>1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=MS.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=MS.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n<o+1?n:o+1],e[n<o+2?n:o+2],i-o)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=MS.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var i=t;i>1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},iye=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),qY=new ist,oye=function(){function e(t,n){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Oi.Linear.None,this._interpolationFunction=MS.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=iye.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,typeof n=="object"?(this._group=n,n.add(this)):n===!0&&(this._group=qY,qY.add(this))}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(t,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},e.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},e.prototype.start=function(t,n){if(t===void 0&&(t=TF()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var r in this._valuesEnd)o[r]=this._valuesEnd[r];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},e.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},e.prototype._setupProperties=function(t,n,i,o,r){for(var s in i){var a=t[s],c=Array.isArray(a),u=c?"array":typeof a,f=!c&&Array.isArray(i[s]);if(!(u==="undefined"||u==="function")){if(f){var d=i[s];if(d.length===0)continue;for(var p=[a],g=0,m=d.length;g<m;g+=1){var x=this._handleRelativeValue(a,d[g]);if(isNaN(x)){f=!1,console.warn("Found invalid interpolation list. Skipping.");break}p.push(x)}f&&(i[s]=p)}if((u==="object"||c)&&a&&!f){n[s]=c?[]:{};var b=a;for(var T in b)n[s][T]=b[T];o[s]=c?[]:{};var d=i[s];if(!this._isDynamic){var C={};for(var T in d)C[T]=d[T];i[s]=d=C}this._setupProperties(b,n[s],d,o[s],r)}else(typeof n[s]>"u"||r)&&(n[s]=a),c||(n[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=n[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},e.prototype.pause=function(t){return t===void 0&&(t=TF()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this)},e.prototype.resume=function(t){return t===void 0&&(t=TF()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop();return this},e.prototype.group=function(t){return t?(t.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},e.prototype.remove=function(){var t;return(t=this._group)===null||t===void 0||t.remove(this),this},e.prototype.delay=function(t){return t===void 0&&(t=0),this._delayTime=t,this},e.prototype.repeat=function(t){return t===void 0&&(t=0),this._initialRepeat=t,this._repeat=t,this},e.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},e.prototype.yoyo=function(t){return t===void 0&&(t=!1),this._yoyo=t,this},e.prototype.easing=function(t){return t===void 0&&(t=Oi.Linear.None),this._easingFunction=t,this},e.prototype.interpolation=function(t){return t===void 0&&(t=MS.Linear),this._interpolationFunction=t,this},e.prototype.chain=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return this._chainedTweens=t,this},e.prototype.onStart=function(t){return this._onStartCallback=t,this},e.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},e.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},e.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},e.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},e.prototype.onStop=function(t){return this._onStopCallback=t,this},e.prototype.update=function(t,n){var i=this,o;if(t===void 0&&(t=TF()),n===void 0&&(n=e.autoStartOnUpdate),this._isPaused)return!0;var r;if(!this._goToEnd&&!this._isPlaying)if(n)this.start(t,!0);else return!1;if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var s=t-this._startTime,a=this._duration+((o=this._repeatDelayTime)!==null&&o!==void 0?o:this._delayTime),c=this._duration+this._repeat*a,u=function(){if(i._duration===0||s>c)return 1;var x=Math.trunc(s/a),b=s-x*a,T=Math.min(b/i._duration,1);return T===0&&s===i._duration?1:T},f=u(),d=this._easingFunction(f);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,f),this._duration===0||s>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((s-this._duration)/a)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(r in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[r]=="string"&&(this._valuesStartRepeat[r]=this._valuesStartRepeat[r]+parseFloat(this._valuesEnd[r])),this._yoyo&&this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=a*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var g=0,m=this._chainedTweens.length;g<m;g++)this._chainedTweens[g].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(t,n,i,o){for(var r in i)if(n[r]!==void 0){var s=n[r]||0,a=i[r],c=Array.isArray(t[r]),u=Array.isArray(a),f=!c&&u;f?t[r]=this._interpolationFunction(a,o):typeof a=="object"&&a?this._updateProperties(t[r],s,a,o):(a=this._handleRelativeValue(s,a),typeof a=="number"&&(t[r]=s+(a-s)*o))}},e.prototype._handleRelativeValue=function(t,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?t+parseFloat(n):parseFloat(n)},e.prototype._swapEndStartRepeatValues=function(t){var n=this._valuesStartRepeat[t],i=this._valuesEnd[t];typeof i=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(i):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=n},e.autoStartOnUpdate=!1,e}();var cti=iye.nextId,jm=qY,lti=jm.getAll.bind(jm),uti=jm.removeAll.bind(jm),fti=jm.add.bind(jm),dti=jm.remove.bind(jm),hti=jm.update.bind(jm);var ost={LINEAR_NONE:Oi.Linear.None,QUADRATIC_IN:Oi.Quadratic.In,QUADRATIC_OUT:Oi.Quadratic.Out,QUADRATIC_IN_OUT:Oi.Quadratic.InOut,CUBIC_IN:Oi.Cubic.In,CUBIC_OUT:Oi.Cubic.Out,CUBIC_IN_OUT:Oi.Cubic.InOut,QUARTIC_IN:Oi.Quartic.In,QUARTIC_OUT:Oi.Quartic.Out,QUARTIC_IN_OUT:Oi.Quartic.InOut,QUINTIC_IN:Oi.Quintic.In,QUINTIC_OUT:Oi.Quintic.Out,QUINTIC_IN_OUT:Oi.Quintic.InOut,SINUSOIDAL_IN:Oi.Sinusoidal.In,SINUSOIDAL_OUT:Oi.Sinusoidal.Out,SINUSOIDAL_IN_OUT:Oi.Sinusoidal.InOut,EXPONENTIAL_IN:Oi.Exponential.In,EXPONENTIAL_OUT:Oi.Exponential.Out,EXPONENTIAL_IN_OUT:Oi.Exponential.InOut,CIRCULAR_IN:Oi.Circular.In,CIRCULAR_OUT:Oi.Circular.Out,CIRCULAR_IN_OUT:Oi.Circular.InOut,ELASTIC_IN:Oi.Elastic.In,ELASTIC_OUT:Oi.Elastic.Out,ELASTIC_IN_OUT:Oi.Elastic.InOut,BACK_IN:Oi.Back.In,BACK_OUT:Oi.Back.Out,BACK_IN_OUT:Oi.Back.InOut,BOUNCE_IN:Oi.Bounce.In,BOUNCE_OUT:Oi.Bounce.Out,BOUNCE_IN_OUT:Oi.Bounce.InOut},qr=Object.freeze(ost);function BH(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}BH.prototype.play=function(e,t,n){if(this.activeCamera=t,l(e)&&e!==null){let o=this;this.activeCallback=function(r){delete o.activeCallback,delete o.activeCamera,e(l(r)?!1:r)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let o=new se(this.view.position);t.flyToBoundingSphere(o,i)}};BH.prototype.stop=function(){l(this.activeCamera)&&this.activeCamera.cancelFlight(),l(this.activeCallback)&&this.activeCallback(!0)};BH.prototype.getCameraOptions=function(e){let t={duration:this.duration};return l(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=qr.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),l(e)&&(t=yt(t,e)),t};var CF=BH;function YY(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}YY.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};YY.prototype.stop=function(){clearTimeout(this.timeout),l(this.activeCallback)&&this.activeCallback(!0)};var AF=YY;var pye={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){let t=e.toLowerCase();return t=Q0(t),pye[t]}},eX;typeof DOMParser<"u"&&(eX=new DOMParser);var rst=new mye.default({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),g0=32,rye=2414016,sye=1,aye=16093e3,cye=.1,lye=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],uye=["http://www.google.com/kml/ext/2.2"],sst=["http://www.w3.org/2005/Atom"],Re={kml:lye,gx:uye,atom:sst,kmlgx:lye.concat(uye)},tX={Document:Sye,Folder:Sst,Placemark:vst,NetworkLink:Nst,GroundOverlay:Ost,PhotoOverlay:Dye,ScreenOverlay:Rst,Tour:Dst};function qm(e){this._dataSource=e,this._deferred=Al(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}Object.defineProperties(qm.prototype,{dataSource:{get:function(){return this._dataSource}}});qm.prototype.addNodes=function(e,t){this._stack.push({nodes:e,index:0,processingData:t}),this._used=!0};qm.prototype.addPromise=function(e){this._promises.push(e)};qm.prototype.wait=function(){let e=this._deferred;return this._used||e.resolve(),Promise.all([e.promise,Promise.all(this._promises)])};qm.prototype.process=function(){let e=this._stack.length===1;return e&&(this._started=qu._getTimestamp()),this._process(e)};qm.prototype._giveUpTime=function(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let e=this;setTimeout(function(){e._timeoutSet=!1,e._started=qu._getTimestamp(),e._process(!0)},0)};qm.prototype._nextNode=function(){let e=this._stack,t=e[e.length-1],n=t.index,i=t.nodes;if(n!==i.length)return++t.index,i[n]};qm.prototype._pop=function(){let e=this._stack;return e.pop(),e.length===0?(this._deferred.resolve(),!1):!0};qm.prototype._process=function(e){let t=this.dataSource,n=this._stack[this._stack.length-1].processingData,i=this._nextNode();for(;l(i);){let o=tX[i.localName];if(l(o)&&(Re.kml.indexOf(i.namespaceURI)!==-1||Re.gx.indexOf(i.namespaceURI)!==-1)&&(o(t,i,n,this),this._timeoutSet||qu._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function ast(e){let t=e.slice(0,Math.min(4,e.size)),n=Al(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function cst(e){let t=Al(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function _ye(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${r}"${t[s]}"`));return l(n)&&(e=n+i),e}function gye(e){let t=e.indexOf("xmlns:"),n=e.indexOf(">",t),i,o,r;for(;t!==-1&&t<n;)i=e.slice(t,e.indexOf('"',t)),o=t,t=e.indexOf(i,t+1),t!==-1?(r=e.indexOf('"',e.indexOf('"',t)+1),e=e.slice(0,t-1)+e.slice(r+1,e.length),t=e.indexOf("xmlns:",o-1)):t=e.indexOf("xmlns:",o+1);return e}function lst(e,t){return Promise.resolve(e.getData(new gH)).then(function(n){n=_ye(n),n=gye(n),t.kml=eX.parseFromString(n,"application/xml")})}function XY(e,t){let n=y(pye.detectFromFilename(e.filename),"application/octet-stream");return Promise.resolve(e.getData(new pH(n))).then(function(i){t[e.filename]=i})}function Wu(e,t,n,i){let o=i.keys,r=new EF.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],u=c.getAttribute(n);if(l(u)){let d=new EF.default(u).absoluteTo(r).toString(),p=o.indexOf(d);if(p!==-1){let g=o[p];c.setAttribute(n,i[g]),t==="a"&&c.getAttribute("download")===null&&c.setAttribute("download",g)}}}}function ju(e,t,n,i){let o=e.querySelectorAll(t);for(let r=0;r<o.length;r++){let s=o[r],a=s.getAttribute(n),c=nX(a,i);l(c)&&s.setAttribute(n,c.url)}}function yye(e,t,n){let i=Ms(e,"id");i=l(i)&&i.length!==0?i:Hn(),l(n)&&(i=n+i);let o=t.getById(i);return l(o)&&(i=Hn(),l(n)&&(i=n+i)),o=t.add(new er({id:i})),l(o.kml)||(o.addProperty("kml"),o.kml=new Vst),o}function SF(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function zH(e,t){if(!l(e))return h.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!l(n))return h.fromDegrees(0,0,0,t);let i=parseFloat(n[0]),o=parseFloat(n[1]),r=parseFloat(n[2]);return i=isNaN(i)?0:i,o=isNaN(o)?0:o,r=isNaN(r)?0:r,h.fromDegrees(i,o,r,t)}function kH(e,t){if(!l(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!l(n))return;let i=n.length,o=new Array(i),r=0;for(let s=0;s<i;s++)o[r++]=zH(n[s],t);return o}function y0(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function Ms(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Mi(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function fye(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagNameNS("*",t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function vh(e,t,n){if(!l(e))return[];let i=[],o=e.childNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Qn(e,t,n){let i=Mi(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Pn(e,t,n){let i=Mi(e,t,n);if(l(i))return i.textContent.trim()}function wh(e,t,n){let i=Mi(e,t,n);if(l(i)){let o=i.textContent.trim();return o==="1"||/^true$/i.test(o)}}function nX(e,t,n){if(!l(e))return;let i;if(l(n)){e=e.replace(/\\/g,"/");let o=n[e];if(l(o))i=new we({url:o});else{let r=new EF.default(t.getUrlComponent()),s=new EF.default(e);o=n[s.absoluteTo(r)],l(o)&&(i=new we({url:o}))}}return l(i)||(i=t.getDerivedResource({url:e})),i}var $l={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function QY(e,t){if(!l(e)||/^\s*$/gm.test(e))return;e[0]==="#"&&(e=e.substring(1));let n=parseInt(e.substring(0,2),16)/255,i=parseInt(e.substring(2,4),16)/255,o=parseInt(e.substring(4,6),16)/255,r=parseInt(e.substring(6,8),16)/255;return t?(r>0?($l.maximumRed=r,$l.red=void 0):($l.maximumRed=void 0,$l.red=0),o>0?($l.maximumGreen=o,$l.green=void 0):($l.maximumGreen=void 0,$l.green=0),i>0?($l.maximumBlue=i,$l.blue=void 0):($l.maximumBlue=void 0,$l.blue=0),$l.alpha=n,H.fromRandom($l)):new H(r,o,i,n)}function ST(e,t,n){let i=Pn(e,t,n);if(l(i))return QY(i,Pn(e,"colorMode",n)==="random")}function ust(e){let t=Mi(e,"TimeStamp",Re.kmlgx),n=Pn(t,"when",Re.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=Z.fromIso8601(n),o=new Hr;return o.addInterval(new Cn({start:i,stop:He.MAXIMUM_VALUE})),o}function fst(e){let t=Mi(e,"TimeSpan",Re.kmlgx);if(!l(t))return;let n,i=Mi(t,"begin",Re.kmlgx),o=l(i)?Z.fromIso8601(i.textContent):void 0,r=Mi(t,"end",Re.kmlgx),s=l(r)?Z.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(Z.lessThan(s,o)){let a=o;o=s,s=a}n=new Hr,n.addInterval(new Cn({start:o,stop:s}))}else l(o)?(n=new Hr,n.addInterval(new Cn({start:o,stop:He.MAXIMUM_VALUE}))):l(s)&&(n=new Hr,n.addInterval(new Cn({start:He.MINIMUM_VALUE,stop:s})));return n}function xye(){let e=new oc;return e.width=g0,e.height=g0,e.scaleByDistance=new Bt(rye,sye,aye,cye),e.pixelOffsetScaleByDistance=new Bt(rye,sye,aye,cye),e}function iX(){let e=new Bd;return e.outline=!0,e.outlineColor=H.WHITE,e}function bye(){let e=new Fd;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=Wo.FILL_AND_OUTLINE,e}function oX(e,t,n,i,o){let r=Pn(e,"href",Re.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y(Qn(e,"x",Re.gx),0),u=y(Qn(e,"y",Re.gx),0);c=Math.min(c/32,7),u=7-Math.min(u/32,7);let f=8*u+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=nX(r,n,i);if(o){let a=Pn(e,"refreshMode",Re.kml),c=Pn(e,"viewRefreshMode",Re.kml);a==="onInterval"||a==="onExpire"?xt(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&xt(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let u=y(Pn(e,"viewBoundScale",Re.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(Pn(e,"viewFormat",Re.kml),f),p=Pn(e,"httpQuery",Re.kml);l(d)&&s.setQueryParameters(cu(UH(d))),l(p)&&s.setQueryParameters(cu(UH(p)));let g=t._ellipsoid;return sX(s,t.camera,t.canvas,u,t._lastCameraView.bbox,g),s}return s}function dst(e,t,n,i,o){let r=Qn(t,"scale",Re.kml),s=Qn(t,"heading",Re.kml),a=ST(t,"color",Re.kml),c=Mi(t,"Icon",Re.kml),u=oX(c,e,i,o,!1);l(c)&&!l(u)&&(u=!1);let f=Qn(c,"x",Re.gx),d=Qn(c,"y",Re.gx),p=Qn(c,"w",Re.gx),g=Qn(c,"h",Re.gx),m=Mi(t,"hotSpot",Re.kml),x=y0(m,"x"),b=y0(m,"y"),T=Ms(m,"xunits"),C=Ms(m,"yunits"),A=n.billboard;l(A)||(A=xye(),n.billboard=A),A.image=u,A.scale=r,A.color=a,(l(f)||l(d)||l(p)||l(g))&&(A.imageSubRegion=new je(f,d,p,g)),l(s)&&s!==0&&(A.rotation=P.toRadians(-s),A.alignedAxis=h.UNIT_Z),r=y(r,1);let E,v;l(x)&&(T==="pixels"?E=-x*r:T==="insetPixels"?E=(x-g0)*r:T==="fraction"&&(E=-x*g0*r),E+=g0*.5*r),l(b)&&(C==="pixels"?v=b*r:C==="insetPixels"?v=(-b+g0)*r:C==="fraction"&&(v=b*g0*r),v-=g0*.5*r),(l(E)||l(v))&&(A.pixelOffset=new z(E,v))}function VH(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r<s;r++){let a=t.childNodes.item(r);if(a.localName==="IconStyle")dst(e,a,n,i,o);else if(a.localName==="LabelStyle"){let c=n.label;l(c)||(c=bye(),n.label=c),c.scale=y(Qn(a,"scale",Re.kml),c.scale),c.fillColor=y(ST(a,"color",Re.kml),c.fillColor),c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;l(c)||(c=new ac,n.polyline=c),c.width=Qn(a,"width",Re.kml),c.material=ST(a,"color",Re.kml),l(ST(a,"outerColor",Re.gx))&&xt("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),l(Qn(a,"outerWidth",Re.gx))&&xt("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),l(Qn(a,"physicalWidth",Re.gx))&&xt("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),l(wh(a,"labelVisibility",Re.gx))&&xt("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;l(c)||(c=iX(),n.polygon=c),c.material=y(ST(a,"color",Re.kml),c.material),c.fill=y(wh(a,"fill",Re.kml),c.fill),c.outline=y(wh(a,"outline",Re.kml),c.outline)}else if(a.localName==="BalloonStyle"){let c=y(QY(Pn(a,"bgColor",Re.kml)),H.WHITE),u=y(QY(Pn(a,"textColor",Re.kml)),H.BLACK),f=Pn(a,"text",Re.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:u,text:f}}else if(a.localName==="ListStyle"){let c=Pn(a,"listItemType",Re.kml);(c==="radioFolder"||c==="checkOffOnly")&&xt(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function hst(e,t,n,i,o){let r=new er,s,a=-1,c=t.childNodes,u=c.length;for(let d=0;d<u;d++){let p=c[d];(p.localName==="Style"||p.localName==="StyleMap")&&(a=d)}if(a!==-1){let d=c[a];if(d.localName==="Style")VH(e,d,r,i,o);else{let p=vh(d,"Pair",Re.kml);for(let g=0;g<p.length;g++){let m=p[g],x=Pn(m,"key",Re.kml);if(x==="normal"){let b=Pn(m,"styleUrl",Re.kml);if(l(b))s=n.getById(b),l(s)||(s=n.getById(`#${b}`)),l(s)&&r.merge(s);else{let T=Mi(m,"Style",Re.kml);VH(e,T,r,i,o)}}else xt(`kml-styleMap-${x}`,`KML - Unsupported StyleMap key: ${x}`)}}}let f=Pn(t,"styleUrl",Re.kml);if(l(f)){let d=f;if(f[0]!=="#"&&f.indexOf("#")!==-1){let p=f.split("#"),g=p[0];d=`${i.getDerivedResource({url:g}).getUrlComponent()}#${p[1]}`}s=n.getById(d),l(s)||(s=n.getById(`#${d}`)),l(s)&&r.merge(s)}return r}function mst(e,t,n){return t.fetchXML().then(function(i){return Tye(e,i,n,t,!0)})}function Tye(e,t,n,i,o,r){let s,a,c,u,f=fye(t,"Style",Re.kml);if(l(f)){let x=f.length;for(s=0;s<x;s++)u=f[s],a=Ms(u,"id"),l(a)&&(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),l(n.getById(a))||(c=new er({id:a}),n.add(c),VH(e,u,c,i,r)))}let d=fye(t,"StyleMap",Re.kml);if(l(d)){let x=d.length;for(s=0;s<x;s++){let b=d[s];if(a=Ms(b,"id"),l(a)){let T=vh(b,"Pair",Re.kml);for(let C=0;C<T.length;C++){let A=T[C],E=Pn(A,"key",Re.kml);if(E==="normal"){if(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),!l(n.getById(a))){c=n.getOrCreateEntity(a);let v=Pn(A,"styleUrl",Re.kml);if(l(v)){v[0]!=="#"&&(v=`#${v}`),o&&l(i)&&(v=i.getUrlComponent()+v);let D=n.getById(v);l(D)&&c.merge(D)}else u=Mi(A,"Style",Re.kml),VH(e,u,c,i,r)}}else xt(`kml-styleMap-${E}`,`KML - Unsupported StyleMap key: ${E}`)}}}}let p=[],g=t.getElementsByTagName("styleUrl"),m=g.length;for(s=0;s<m;s++){let x=g[s].textContent;if(x[0]!=="#"){let b=x.split("#");if(b.length===2){let T=b[0],C=i.getDerivedResource({url:T});p.push(mst(e,C,n))}}}return p}function rX(e,t,n){let i=new H_(e,t.id,["position"]),o=new Mm(t.position);t.polyline=l(n.polyline)?n.polyline.clone():new ac,t.polyline.positions=new z_([i,o])}function Cye(e,t){return!l(e)&&!l(t)||e==="clampToGround"?Ye.CLAMP_TO_GROUND:e==="relativeToGround"?Ye.RELATIVE_TO_GROUND:e==="absolute"?Ye.NONE:t==="clampToSeaFloor"?(xt("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),Ye.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(xt("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),Ye.RELATIVE_TO_GROUND):(l(e)?xt("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):xt("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),Ye.CLAMP_TO_GROUND)}function pst(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new Mm(e))}function _st(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let o=e.length;for(let r=0;r<o;r++){let s=e[r];i.scaleToGeodeticSurface(s,s)}return e}function HH(e,t,n,i){let o=t.label;l(o)||(o=l(n.label)?n.label.clone():bye(),t.label=o),o.text=t.name;let r=t.billboard;l(r)||(r=l(n.billboard)?n.billboard.clone():xye(),t.billboard=r),l(r.image)?r.image.getValue()||(r.image=void 0):r.image=e._pinBuilder.fromColor(H.YELLOW,64);let s=1;l(r.scale)&&(s=r.scale.getValue(),s!==0?o.pixelOffset=new z(s*16+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),l(i)&&e._clampToGround&&(r.heightReference=i,o.heightReference=i)}function Aye(e,t){let n=e.path;l(n)||(n=new kp,n.leadTime=0,e.path=n);let i=t.polyline;l(i)&&(n.material=i.material,n.width=i.width)}function gst(e,t,n,i,o){let r=Pn(n,"coordinates",Re.kml),s=Pn(n,"altitudeMode",Re.kml),a=Pn(n,"altitudeMode",Re.gx),c=wh(n,"extrude",Re.kml),u=e._ellipsoid,f=zH(r,u);return i.position=f,HH(e,i,o,Cye(s,a)),c&&SF(s,a)&&rX(t,i,o),!0}function dye(e,t,n,i,o){let r=Mi(n,"coordinates",Re.kml),s=Pn(n,"altitudeMode",Re.kml),a=Pn(n,"altitudeMode",Re.gx),c=wh(n,"extrude",Re.kml),u=wh(n,"tessellate",Re.kml),f=SF(s,a),d=Qn(n,"drawOrder",Re.gx),p=e._ellipsoid,g=kH(r,p),m=o.polyline;if(f&&c){let x=new Vp;i.wall=x,x.positions=g;let b=o.polygon;l(b)&&(x.fill=b.fill,x.material=b.material),x.outline=!0,l(m)?(x.outlineColor=l(m.material)?m.material.color:H.WHITE,x.outlineWidth=m.width):l(b)&&(x.outlineColor=l(b.material)?b.material.color:H.WHITE)}else if(e._clampToGround&&!f&&u){let x=new ac;x.clampToGround=!0,i.polyline=x,x.positions=g,l(m)?(x.material=l(m.material)?m.material.color.getValue(He.MINIMUM_VALUE):H.WHITE,x.width=y(m.width,1)):(x.material=H.WHITE,x.width=1),x.zIndex=d}else l(d)&&xt("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!u&&xt("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),m=l(m)?m.clone():new ac,i.polyline=m,m.positions=_st(g,s,a,p),(!u||f)&&(m.arcType=Jt.NONE);return!0}function yst(e,t,n,i,o){let r=Mi(n,"outerBoundaryIs",Re.kml),s=Mi(r,"LinearRing",Re.kml),a=Mi(s,"coordinates",Re.kml),c=e._ellipsoid,u=kH(a,c),f=wh(n,"extrude",Re.kml),d=Pn(n,"altitudeMode",Re.kml),p=Pn(n,"altitudeMode",Re.gx),g=SF(d,p),m=l(o.polygon)?o.polygon.clone():iX(),x=o.polyline;if(l(x)&&(m.outlineColor=l(x.material)?x.material.color:H.WHITE,m.outlineWidth=x.width),i.polygon=m,g?(m.perPositionHeight=!0,m.extrudedHeight=f?0:void 0):e._clampToGround||(m.height=0),l(u)){let b=new Oa(u),T=vh(n,"innerBoundaryIs",Re.kml);for(let C=0;C<T.length;C++){s=vh(T[C],"LinearRing",Re.kml);for(let A=0;A<s.length;A++)a=Mi(s[A],"coordinates",Re.kml),u=kH(a,c),l(u)&&b.holes.push(new Oa(u))}m.hierarchy=b}return!0}function xst(e,t,n,i,o){let r=Pn(n,"altitudeMode",Re.kml),s=Pn(n,"altitudeMode",Re.gx),a=vh(n,"coord",Re.gx),c=vh(n,"angles",Re.gx),u=vh(n,"when",Re.kml),f=wh(n,"extrude",Re.kml),d=SF(r,s),p=e._ellipsoid;c.length>0&&xt("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,u.length),m=[],x=[];for(let T=0;T<g;T++){let C=zH(a[T].textContent,p);m.push(C),x.push(Z.fromIso8601(u[T].textContent))}let b=new _a;return b.addSamples(x,m),i.position=b,HH(e,i,o,Cye(r,s)),Aye(i,o),i.availability=new Hr,u.length>0&&i.availability.addInterval(new Cn({start:x[0],stop:x[x.length-1]})),d&&f&&rX(t,i,o),!0}function hye(e,t,n,i,o,r,s,a,c){let u=e[0],f=e[e.length-1],d=new _a;d.addSamples(e,t),n.intervals.addInterval(new Cn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:pst(d,s,a)})),i.addInterval(new Cn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Cn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:r}))}function bst(e,t,n,i,o){let r=wh(n,"interpolate",Re.gx),s=vh(n,"Track",Re.gx),a,c,u,f=!1,d=new W_,p=new Hr,g=new ma,m=e._ellipsoid;for(let x=0,b=s.length;x<b;x++){let T=s[x],C=vh(T,"when",Re.kml),A=vh(T,"coord",Re.gx),E=Pn(T,"altitudeMode",Re.kml),v=Pn(T,"altitudeMode",Re.gx),D=SF(E,v),O=wh(T,"extrude",Re.kml),R=Math.min(A.length,C.length),M=[];a=[];for(let N=0;N<R;N++){let _=zH(A[N].textContent,m);M.push(_),a.push(Z.fromIso8601(C[N].textContent))}r&&(l(c)&&hye([c,a[0]],[u,M[0]],g,p,d,!1,"absolute",void 0,!1),c=a[R-1],u=M[M.length-1]),hye(a,M,g,p,d,D&&O,E,v,!0),f=f||D&&O}return i.availability=p,i.position=g,HH(e,i,o),Aye(i,o),f&&(rX(t,i,o),i.polyline.show=d),!0}var Eye={Point:gst,LineString:dye,LinearRing:dye,Polygon:yst,Track:xst,MultiTrack:bst,MultiGeometry:Tst,Model:Cst};function Tst(e,t,n,i,o,r){let s=n.childNodes,a=!1;for(let c=0,u=s.length;c<u;c++){let f=s.item(c),d=Eye[f.localName];if(l(d)){let p=yye(f,t,r);p.parent=i,p.name=i.name,p.availability=i.availability,p.description=i.description,p.kml=i.kml,d(e,t,f,p,o)&&(a=!0)}}return a}function Cst(e,t,n,i,o){return xt("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function Ast(e,t){let n=Mi(e,"ExtendedData",Re.kml);if(!l(n))return;l(Mi(n,"SchemaData",Re.kml))&&xt("kml-schemaData","KML - SchemaData is unsupported"),l(Ms(n,"xmlns:prefix"))&&xt("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},o=vh(n,"Data",Re.kml);if(l(o)){let r=o.length;for(let s=0;s<r;s++){let a=o[s],c=Ms(a,"name");l(c)&&(i[c]={displayName:Pn(a,"displayName",Re.kml),value:Pn(a,"value",Re.kml)})}}t.kml.extendedData=i}var _o;typeof document<"u"&&(_o=document.createElement("div"));function Est(e,t,n,i,o){let r,s,a,c=t.kml,u=c.extendedData,f=Pn(e,"description",Re.kml),d=y(t.balloonStyle,n.balloonStyle),p=H.WHITE,g=H.BLACK,m=f;l(d)&&(p=y(d.bgColor,H.WHITE),g=y(d.textColor,H.BLACK),m=y(d.text,f));let x;if(l(m)){if(m=m.replace("$[name]",y(t.name,"")),m=m.replace("$[description]",y(f,"")),m=m.replace("$[address]",y(c.address,"")),m=m.replace("$[Snippet]",y(c.snippet,"")),m=m.replace("$[id]",t.id),m=m.replace("$[geDirections]",""),l(u)){let C=m.match(/\$\[.+?\]/g);if(C!==null)for(r=0;r<C.length;r++){let A=C[r],E=A.substr(2,A.length-3),v=/\/displayName$/.test(E);E=E.replace(/\/displayName$/,""),x=u[E],l(x)&&(x=v?x.displayName:x.value),l(x)&&(m=m.replace(A,y(x,"")))}}}else if(l(u)&&(a=Object.keys(u),a.length>0)){for(m='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',r=0;r<a.length;r++)s=a[r],x=u[s],m+=`<tr><th>${y(x.displayName,s)}</th><td>${y(x.value,"")}</td></tr>`;m+="</tbody></table>"}if(!l(m))return;m=rst.link(m),_o.innerHTML=m;let b=_o.querySelectorAll("a");for(r=0;r<b.length;r++)b[r].setAttribute("target","_blank");l(i)&&i.keys.length>1&&(Wu(_o,"a","href",i),Wu(_o,"link","href",i),Wu(_o,"area","href",i),Wu(_o,"img","src",i),Wu(_o,"iframe","src",i),Wu(_o,"video","src",i),Wu(_o,"audio","src",i),Wu(_o,"source","src",i),Wu(_o,"track","src",i),Wu(_o,"input","src",i),Wu(_o,"embed","src",i),Wu(_o,"script","src",i),Wu(_o,"video","poster",i)),ju(_o,"a","href",o),ju(_o,"link","href",o),ju(_o,"area","href",o),ju(_o,"img","src",o),ju(_o,"iframe","src",o),ju(_o,"video","src",o),ju(_o,"audio","src",o),ju(_o,"source","src",o),ju(_o,"track","src",o),ju(_o,"input","src",o),ju(_o,"embed","src",o),ju(_o,"script","src",o),ju(_o,"video","poster",o);let T='<div class="cesium-infoBox-description-lighter" style="';T+="overflow:auto;",T+="word-wrap:break-word;",T+=`background-color:${p.toCssColorString()};`,T+=`color:${g.toCssColorString()};`,T+='">',T+=`${_o.innerHTML}</div>`,_o.innerHTML="",t.description=T}function GH(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=yye(t,i,n.context),c=a.kml,u=hst(e,t,n.styleCollection,r,s),f=Pn(t,"name",Re.kml);a.name=f,a.parent=o;let d=fst(t);l(d)||(d=ust(t)),a.availability=d,cX(a);function p(A){return A?A.show&&p(A.parent):!0}let g=wh(t,"visibility",Re.kml);a.show=p(o)&&y(g,!0);let m=Mi(t,"author",Re.atom),x=c.author;x.name=Pn(m,"name",Re.atom),x.uri=Pn(m,"uri",Re.atom),x.email=Pn(m,"email",Re.atom);let b=Mi(t,"link",Re.atom),T=c.link;T.href=Ms(b,"href"),T.hreflang=Ms(b,"hreflang"),T.rel=Ms(b,"rel"),T.type=Ms(b,"type"),T.title=Ms(b,"title"),T.length=Ms(b,"length"),c.address=Pn(t,"address",Re.kml),c.phoneNumber=Pn(t,"phoneNumber",Re.kml),c.snippet=Pn(t,"Snippet",Re.kml),Ast(t,a),Est(t,a,u,s,r);let C=e._ellipsoid;return wye(t,a,C),vye(t,a,C),l(Mi(t,"Region",Re.kml))&&xt("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:u}}function Sye(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function Sst(e,t,n,i){let o=GH(e,t,n),r=Ge(n);r.parentEntity=o.entity,Sye(e,t,r,i)}function vst(e,t,n,i){let o=GH(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let u=0,f=c.length;u<f&&!a;u++){let d=c.item(u),p=Eye[d.localName];l(p)&&(p(e,n.entityCollection,d,r,s,r.id),a=!0)}a||(r.merge(s),HH(e,r,s))}var wst={FlyTo:Pst,Wait:Ist,SoundCue:KY,AnimatedUpdate:KY,TourControl:KY};function Dst(e,t,n,i){let o=Pn(t,"name",Re.kml),r=Ms(t,"id"),s=new bF(o,r),a=Mi(t,"Playlist",Re.gx);if(a){let c=e._ellipsoid,u=a.childNodes;for(let f=0;f<u.length;f++){let d=u[f];if(d.localName){let p=wst[d.localName];p?p(s,d,c):console.log(`Unknown KML Tour playlist entry type ${d.localName}`)}}}e._kmlTours.push(s)}function KY(e,t){xt(`KML Tour unsupported node ${t.localName}`)}function Ist(e,t){let n=Qn(t,"duration",Re.gx);e.addPlaylistEntry(new AF(n))}function Pst(e,t,n){let i=Qn(t,"duration",Re.gx),o=Pn(t,"flyToMode",Re.gx),r={kml:{}};wye(t,r,n),vye(t,r,n);let s=r.kml.lookAt||r.kml.camera,a=new CF(i,o,s);e.addPlaylistEntry(a)}function vye(e,t,n){let i=Mi(e,"Camera",Re.kml);if(l(i)){let o=y(Qn(i,"longitude",Re.kml),0),r=y(Qn(i,"latitude",Re.kml),0),s=y(Qn(i,"altitude",Re.kml),0),a=y(Qn(i,"heading",Re.kml),0),c=y(Qn(i,"tilt",Re.kml),0),u=y(Qn(i,"roll",Re.kml),0),f=h.fromDegrees(o,r,s,n),d=Sa.fromDegrees(a,c-90,u);t.kml.camera=new eF(f,d)}}function wye(e,t,n){let i=Mi(e,"LookAt",Re.kml);if(l(i)){let o=y(Qn(i,"longitude",Re.kml),0),r=y(Qn(i,"latitude",Re.kml),0),s=y(Qn(i,"altitude",Re.kml),0),a=Qn(i,"heading",Re.kml),c=Qn(i,"tilt",Re.kml),u=y(Qn(i,"range",Re.kml),0);c=P.toRadians(y(c,0)),a=P.toRadians(y(a,0));let f=new od(a,c-P.PI_OVER_TWO,u),d=h.fromDegrees(o,r,s,n);t.kml.lookAt=new xF(d,f)}}function Rst(e,t,n,i){let o=n.screenOverlayContainer;if(!l(o))return;let r=n.sourceResource,s=n.uriResolver,a=Mi(t,"Icon",Re.kml),c=oX(a,e,r,s,!1);if(!l(c))return;let u=document.createElement("img");e._screenOverlays.push(u),u.src=c.url,u.onload=function(){let f=["position: absolute"],d=Mi(t,"screenXY",Re.kml),p=Mi(t,"overlayXY",Re.kml),g=Mi(t,"size",Re.kml),m,x,b,T,C,A;l(g)&&(m=y0(g,"x"),x=y0(g,"y"),b=Ms(g,"xunits"),T=Ms(g,"yunits"),l(m)&&m!==-1&&m!==0&&(b==="fraction"?C=`width: ${Math.floor(m*100)}%`:b==="pixels"&&(C=`width: ${m}px`),f.push(C)),l(x)&&x!==-1&&x!==0&&(T==="fraction"?A=`height: ${Math.floor(x*100)}%`:T==="pixels"&&(A=`height: ${x}px`),f.push(A))),u.style=f.join(";");let E=0,v=u.height;l(p)&&(m=y0(p,"x"),x=y0(p,"y"),b=Ms(p,"xunits"),T=Ms(p,"yunits"),l(m)&&(b==="fraction"?E=m*u.width:(b==="pixels"||b==="insetPixels")&&(E=m)),l(x)&&(T==="fraction"?v=x*u.height:(T==="pixels"||T==="insetPixels")&&(v=x))),l(d)&&(m=y0(d,"x"),x=y0(d,"y"),b=Ms(d,"xunits"),T=Ms(d,"yunits"),l(m)&&(b==="fraction"?C=`left: calc(${Math.floor(m*100)}% - ${E}px)`:b==="pixels"?C=`left: ${m-E}px`:b==="insetPixels"&&(C=`right: ${m-E}px`),f.push(C)),l(x)&&(T==="fraction"?A=`bottom: calc(${Math.floor(x*100)}% - ${v}px)`:T==="pixels"?A=`bottom: ${x-v}px`:T==="insetPixels"&&(A=`top: ${x-v}px`),f.push(A))),u.style=f.join(";")},o.appendChild(u)}function Ost(e,t,n,i){let r=GH(e,t,n).entity,s,a=!1,c=e._ellipsoid,u=kH(Mi(t,"LatLonQuad",Re.gx),c),f=Qn(t,"drawOrder",Re.kml);if(l(u))s=iX(),s.hierarchy=new Oa(u),s.zIndex=f,r.polygon=s,a=!0;else{s=new kd,s.zIndex=f,r.rectangle=s;let m=Mi(t,"LatLonBox",Re.kml);if(l(m)){let x=Qn(m,"west",Re.kml),b=Qn(m,"south",Re.kml),T=Qn(m,"east",Re.kml),C=Qn(m,"north",Re.kml);l(x)&&(x=P.negativePiToPi(P.toRadians(x))),l(b)&&(b=P.clampToLatitudeRange(P.toRadians(b))),l(T)&&(T=P.negativePiToPi(P.toRadians(T))),l(C)&&(C=P.clampToLatitudeRange(P.toRadians(C))),s.coordinates=new re(x,b,T,C);let A=Qn(m,"rotation",Re.kml);if(l(A)){let E=P.toRadians(A);s.rotation=E,s.stRotation=E}}}let d=Mi(t,"Icon",Re.kml),p=oX(d,e,n.sourceResource,n.uriResolver,!0);if(l(p)){a&&xt("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let m=Qn(d,"x",Re.gx),x=Qn(d,"y",Re.gx),b=Qn(d,"w",Re.gx),T=Qn(d,"h",Re.gx);(l(m)||l(x)||l(b)||l(T))&&xt("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=ST(t,"color",Re.kml),s.material.transparent=!0}else s.material=ST(t,"color",Re.kml);let g=Pn(t,"altitudeMode",Re.kml);l(g)?g==="absolute"?(s.height=Qn(t,"altitude",Re.kml),s.zIndex=void 0):g!=="clampToGround"&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`):(g=Pn(t,"altitudeMode",Re.gx),g==="relativeToSeaFloor"?(xt("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=Qn(t,"altitude",Re.kml),s.zIndex=void 0):g==="clampToSeaFloor"?xt("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):l(g)&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`))}function Dye(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),xt(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var x0={INTERVAL:0,EXPIRE:1,STOP:2};function UH(e){if(!l(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var Mst=new re,LS=new fe,ZY=new z,Lst=new h;function sX(e,t,n,i,o,r){function s(u){return u<-P.PI_OVER_TWO?-P.PI_OVER_TWO:u>P.PI_OVER_TWO?P.PI_OVER_TWO:u}function a(u){return u>P.PI?u-P.TWO_PI:u<-P.PI?u+P.TWO_PI:u}let c=tx(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==ne.MORPHING){let u,f;if(o=y(o,Mst),l(n)&&(ZY.x=n.clientWidth*.5,ZY.y=n.clientHeight*.5,u=t.pickEllipsoid(ZY,r,Lst)),l(u)?f=r.cartesianToCartographic(u,LS):(f=re.center(o,LS),u=r.cartographicToCartesian(f)),l(i)&&!P.equalsEpsilon(i,1,P.EPSILON9)){let T=o.width*i*.5,C=o.height*i*.5;o=new re(a(f.longitude-T),s(f.latitude-C),a(f.longitude+T),s(f.latitude+C))}c=c.replace("[bboxWest]",P.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",P.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",P.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",P.toDegrees(o.north).toString());let d=P.toDegrees(f.longitude).toString(),p=P.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",P.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",P.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,u)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),r.cartesianToCartographic(t.positionWC,LS),c=c.replace("[cameraLon]",P.toDegrees(LS.longitude).toString()),c=c.replace("[cameraLat]",P.toDegrees(LS.latitude).toString()),c=c.replace("[cameraAlt]",P.toDegrees(LS.height).toString());let g=t.frustum,m=g.aspectRatio,x="",b="";if(l(m)){let T=P.toDegrees(g.fov);m>1?(x=T,b=T/m):(b=T,x=T*m)}c=c.replace("[horizFov]",x.toString()),c=c.replace("[vertFov]",b.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(cu(c))}function Nst(e,t,n,i){let r=GH(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Mi(t,"Link",Re.kml);if(l(c)||(c=Mi(t,"Url",Re.kml)),l(c)){let u=Pn(c,"href",Re.kml),f,d;if(l(u)){let p=u;if(u=nX(u,s,n.uriResolver),/^data:/.test(u.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=u.clone(),f=Pn(c,"viewRefreshMode",Re.kml),f==="onRegion"){xt("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(Pn(c,"viewBoundScale",Re.kml),1);let b=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",T=y(Pn(c,"viewFormat",Re.kml),b),C=Pn(c,"httpQuery",Re.kml);l(T)&&u.setQueryParameters(cu(UH(T))),l(C)&&u.setQueryParameters(cu(UH(C)));let A=e._ellipsoid;sX(u,e.camera,e.canvas,d,e._lastCameraView.bbox,A)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},m=new $s,x=aX(e,m,u,g).then(function(b){let T=e._entityCollection,C=m.values;T.suspendEvents();for(let v=0;v<C.length;v++){let D=C[v];l(D.parent)||(D.parent=r,cX(D)),T.add(D)}T.resumeEvents();let A=Pn(c,"refreshMode",Re.kml),E=y(Qn(c,"refreshInterval",Re.kml),0);if(A==="onInterval"&&E>0||A==="onExpire"||f==="onStop"){let v=Mi(b,"NetworkLinkControl",Re.kml),D=l(v),O=Z.now(),R={id:Hn(),href:u,cookie:{},lastUpdated:O,updating:!1,entity:r,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:O},M=0;if(D&&(R.cookie=cu(y(Pn(v,"cookie",Re.kml),"")),M=y(Qn(v,"minRefreshPeriod",Re.kml),0)),A==="onInterval")D&&(E=Math.max(M,E)),R.refreshMode=x0.INTERVAL,R.time=E;else if(A==="onExpire"){let N;if(D&&(N=Pn(v,"expires",Re.kml)),l(N))try{let _=Z.fromIso8601(N),S=Z.secondsDifference(_,O);S>0&&S<M&&Z.addSeconds(O,M,_),R.refreshMode=x0.EXPIRE,R.time=_}catch{xt("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else xt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else l(e.camera)?(R.refreshMode=x0.STOP,R.time=y(Qn(c,"viewRefreshTime",Re.kml),0)):xt("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");l(R.refreshMode)&&e._networkLinks.set(R.id,R)}}).catch(function(b){xt(`An error occured during loading ${u.url}`),e._error.raiseEvent(e,b)});i.addPromise(x)}}}function Fst(e,t,n,i){let o=tX[t.localName];return l(o)?o(e,t,n,i):Dye(e,t,n,i)}function JY(e,t,n,i,o,r,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Mi(a,"Document",Re.kml),u=Pn(c,"name",Re.kml);l(u)||(u=V_(i.getUrlComponent())),l(e._name)||(e._name=u);let f=new qu._DeferredLoading(e),d=new $s(e);return Promise.all(Tye(e,n,d,i,!1,o)).then(function(){let p=n.documentElement;if(p.localName==="kml"){let m=p.childNodes;for(let x=0;x<m.length;x++){let b=m[x];if(l(tX[b.localName])){p=b;break}}}let g={parentEntity:void 0,entityCollection:t,styleCollection:d,sourceResource:i,uriResolver:o,context:s,screenOverlayContainer:r};return t.suspendEvents(),Fst(e,p,g,f),t.resumeEvents(),f.wait().then(function(){return n.documentElement})})}function Bst(e,t,n,i,o){let r=nn("ThirdParty/Workers/z-worker-pako.js");SS({workerScripts:{deflate:[r,"./pako_deflate.min.js"],inflate:[r,"./pako_inflate.min.js"]}});let s=new RH(new ng(n));return Promise.resolve(s.getEntries()).then(function(a){let c=[],u={},f;for(let d=0;d<a.length;d++){let p=a[d];p.directory||(/\.kml$/i.test(p.filename)&&(!l(f)||!/\//i.test(p.filename))?(l(f)&&c.push(XY(f,u)),f=p):c.push(XY(p,u)))}return l(f)&&c.push(lst(f,u)),Promise.all(c).then(function(){if(s.close(),!l(u.kml))throw new ce("KMZ file does not contain a KML document.");return u.keys=Object.keys(u),JY(e,t,u.kml,i,u,o)})})}function aX(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=i.sourceUri,r=i.uriResolver,s=i.context,a=i.screenOverlayContainer,c=n;if(typeof n=="string"||n instanceof we){n=we.createIfNeeded(n),c=n.fetchBlob(),o=y(o,n.clone());let u=e._resourceCredits,f=n.credits;if(l(f)){let d=f.length;for(let p=0;p<d;p++)u.push(f[p])}}else o=y(o,we.DEFAULT.clone());return o=we.createIfNeeded(o),l(a)&&(a=In(a)),Promise.resolve(c).then(function(u){return u instanceof Blob?ast(u).then(function(f){return f?Bst(e,t,u,o,a):cst(u).then(function(d){d=_ye(d),d=gye(d);let p,g;try{p=eX.parseFromString(d,"application/xml")}catch(m){g=m.toString()}if(l(g)||p.body||p.documentElement.tagName==="parsererror"){let m=l(g)?g:p.documentElement.firstChild.nodeValue;throw m||(m=p.body.innerText),new ce(m)}return JY(e,t,p,o,r,a,s)})}):JY(e,t,u,o,r,a,s)}).catch(function(u){return e._error.raiseEvent(e,u),console.log(u),Promise.reject(u)})}function qu(e){e=y(e,y.EMPTY_OBJECT);let t=e.camera,n=e.canvas;this._changed=new me,this._error=new me,this._loading=new me,this._refresh=new me,this._unsupportedNode=new me,this._clock=void 0,this._entityCollection=new $s(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new $_,this._networkLinks=new Et,this._entityCluster=new Ou,this.canvas=n,this.camera=t,this._lastCameraView={position:l(t)?h.clone(t.positionWC):void 0,direction:l(t)?h.clone(t.directionWC):void 0,up:l(t)?h.clone(t.upWC):void 0,bbox:l(t)?t.computeViewRectangle():re.clone(re.MAX_VALUE)},this._ellipsoid=y(e.ellipsoid,ee.default);let i=e.credit;typeof i=="string"&&(i=new vt(i)),this._credit=i,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}qu.load=function(e,t){return t=y(t,y.EMPTY_OBJECT),new qu(t).load(e,t)};Object.defineProperties(qu.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}},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}},refreshEvent:{get:function(){return this._refresh}},unsupportedNodeEvent:{get:function(){return this._unsupportedNode}},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}},kmlTours:{get:function(){return this._kmlTours}}});qu.prototype.load=function(e,t){t=y(t,y.EMPTY_OBJECT),Gr.setLoading(this,!0);let n=this._name;this._name=void 0,this._clampToGround=y(t.clampToGround,!1);let i=this;return aX(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=Z.equals(s,He.MINIMUM_VALUE),u=Z.equals(a,He.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=Z.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=Z.fromDate(d)),o=new mh,o.startTime=s,o.stopTime=a,o.currentTime=Z.clone(s),o.clockRange=Wr.LOOP_STOP,o.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(Z.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Gr.setLoading(i,!1),i}).catch(function(o){return Gr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};qu.prototype.destroy=function(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()};function cX(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function kst(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Mi(r,"NetworkLinkControl",Re.kml),c=l(a),u=0;if(c){if(l(Mi(a,"Update",Re.kml))){xt("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=cu(y(Pn(a,"cookie",Re.kml),"")),u=y(Qn(a,"minRefreshPeriod",Re.kml),0)}let f=Z.now(),d=t.refreshMode;if(d===x0.INTERVAL)l(a)&&(t.time=Math.max(u,t.time));else if(d===x0.EXPIRE){let O;if(l(a)&&(O=Pn(a,"expires",Re.kml)),l(O))try{let R=Z.fromIso8601(O),M=Z.secondsDifference(R,f);M>0&&M<u&&Z.addSeconds(f,u,R),t.time=R}catch{xt("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else xt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}let p=t.entity,g=e._entityCollection,m=n.values;function x(O){g.remove(O);let R=O._children,M=R.length;for(let N=0;N<M;++N)x(R[N])}g.suspendEvents();let b=g.values.slice(),T;for(T=0;T<b.length;++T){let O=b[T];O.parent===p&&(O.parent=void 0,x(O))}for(g.resumeEvents(),g.suspendEvents(),T=0;T<m.length;T++){let O=m[T];l(O.parent)||(O.parent=p,cX(O)),g.add(O)}g.resumeEvents(),s?i.remove(t.id):t.lastUpdated=f;let C=g.computeAvailability(),A=C.start,E=C.stop,v=Z.equals(A,He.MINIMUM_VALUE),D=Z.equals(E,He.MAXIMUM_VALUE);if(!v||!D){let O=e._clock;(O.startTime!==A||O.stopTime!==E)&&(O.startTime=A,O.stopTime=E,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,o.getUrlComponent(!0))}}var $Y=new Et;qu.prototype.update=function(e){let t=this._networkLinks;if(t.length===0)return!0;let n=Z.now(),i=this;$Y.removeAll();function o(f){let d=f._children,p=d.length;for(let g=0;g<p;++g){let m=d[g];$Y.set(m.id,m),o(m)}}let r=!1,s=this._lastCameraView,a=this.camera;l(a)&&!(a.positionWC.equalsEpsilon(s.position,P.EPSILON7)&&a.directionWC.equalsEpsilon(s.direction,P.EPSILON7)&&a.upWC.equalsEpsilon(s.up,P.EPSILON7))&&(s.position=h.clone(a.positionWC),s.direction=h.clone(a.directionWC),s.up=h.clone(a.upWC),s.bbox=a.computeViewRectangle(),r=!0);let c=new Et,u=!1;return t.values.forEach(function(f){let d=f.entity;if(!$Y.contains(d.id)){if(!f.updating){let p=!1;if(f.refreshMode===x0.INTERVAL?Z.secondsDifference(n,f.lastUpdated)>f.time&&(p=!0):f.refreshMode===x0.EXPIRE?Z.greaterThan(n,f.time)&&(p=!0):f.refreshMode===x0.STOP&&(r&&(f.needsUpdate=!0,f.cameraUpdateTime=n),f.needsUpdate&&Z.secondsDifference(n,f.cameraUpdateTime)>=f.time&&(p=!0)),p){o(d),f.updating=!0;let g=new $s,m=f.href.clone();m.setQueryParameters(f.cookie);let x=y(i._ellipsoid,ee.default);sX(m,i.camera,i.canvas,f.viewBoundScale,s.bbox,x),aX(i,g,m,{context:d.id}).then(kst(i,f,g,c,m)).catch(function(b){let T=`NetworkLink ${f.href} refresh failed: ${b}`;console.log(T),i._error.raiseEvent(i,T)}),u=!0}}c.set(f.id,f)}}),u&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function Vst(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}qu._DeferredLoading=qm;qu._getTimestamp=xi;var vF=qu;function wF(){he.throwInstantiationError()}wF.prototype.update=he.throwInstantiationError;wF.prototype.getBoundingSphere=he.throwInstantiationError;wF.prototype.isDestroyed=he.throwInstantiationError;wF.prototype.destroy=he.throwInstantiationError;var lX=wF;var uX=32,Ust="http://www.opengis.net/kml/2.2",Ih="http://www.google.com/kml/ext/2.2",zst="http://www.w3.org/2000/xmlns/";function WH(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var Hst=/^data:image\/([^,;]+)/;WH.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof we){if(e=we.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(Hst);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function Gst(e,t){return function(n){e._files[t]=n}}WH.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new ce("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(Gst(this,r))}return o};Object.defineProperties(WH.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function jH(e){this._time=e}jH.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),y(i,t)};jH.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return wT(n)};jH.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function fX(){this._ids={},this._styles={},this._count=0}fX.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};fX.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function Rye(){this._ids={}}Rye.prototype.get=function(e){if(!l(e))return this.get(Hn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function dX(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=dX._createState(e),o=t.values.filter(function(u){return!l(u.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(zst,"xmlns:gx",Ih);let a=r.createElement("Document");s.appendChild(a),Mye(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let f=new XMLSerializer().serializeToString(i.kmlDoc);return n?Wst(f,c.files):{kml:f,externalFiles:c.files}})}function Wst(e,t){let n=nn("ThirdParty/Workers/z-worker-pako.js");SS({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new hF,o=new LH(i);return o.add("doc.kml",new _H(e)).then(function(){let r=Object.keys(t);return Oye(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function Oye(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new ng(n[o])).then(function(){return Oye(e,t,n,i+1)})}dX._createState=function(e){let t=e.entities,n=new fX,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===He.MINIMUM_VALUE?r.stop===He.MAXIMUM_VALUE?r=new Cn:Z.addSeconds(r.stop,-10*s,r.start):r.stop===He.MAXIMUM_VALUE&&Z.addSeconds(r.start,10*s,r.stop);let a=new WH(e.modelCallback);return{kmlDoc:document.implementation.createDocument(Ust,"kml"),ellipsoid:y(e.ellipsoid,ee.default),idManager:new Rye,styleCache:n,externalFileHandler:a,time:o,valueGetter:new jH(o),sampleDuration:s,defaultAvailability:new Hr([r])}};function Mye(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,u,f;for(let d=0;d<a;++d){let p=n[d];c=[],u=[],f=[],jst(e,p,u,f),qst(e,p.polyline,u,f),Pye(e,p.rectangle,u,f,c),Pye(e,p.polygon,u,f,c),Zst(e,p,p.model,u,f);let g,m=p.availability;l(m)&&(g=i.createElement("TimeSpan"),Z.equals(m.start,He.MINIMUM_VALUE)||g.appendChild(dn(i,"begin",Z.toIso8601(m.start))),Z.equals(m.stop,He.MAXIMUM_VALUE)||g.appendChild(dn(i,"end",Z.toIso8601(m.stop))));for(let T=0;T<c.length;++T){let C=c[T];C.setAttribute("id",s.get(p.id)),C.appendChild(dn(i,"name",p.name)),C.appendChild(dn(i,"visibility",p.show)),C.appendChild(dn(i,"description",p.description)),l(g)&&C.appendChild(g),t.appendChild(C)}let x=u.length;if(x>0){let T=i.createElement("Placemark");T.setAttribute("id",s.get(p.id));let C=p.name,A=p.label;if(l(A)){let v=i.createElement("LabelStyle"),D=r.get(A.text);C=l(D)&&D.length>0?D:C;let O=r.getColor(A.fillColor);l(O)&&(v.appendChild(dn(i,"color",O)),v.appendChild(dn(i,"colorMode","normal")));let R=r.get(A.scale);l(R)&&v.appendChild(dn(i,"scale",R)),f.push(v)}T.appendChild(dn(i,"name",C)),T.appendChild(dn(i,"visibility",p.show)),T.appendChild(dn(i,"description",p.description)),l(g)&&T.appendChild(g),t.appendChild(T);let E=f.length;if(E>0){let v=i.createElement("Style");for(let D=0;D<E;++D)v.appendChild(f[D]);T.appendChild(dn(i,"styleUrl",o.get(v)))}if(u.length===1)T.appendChild(u[0]);else if(u.length>1){let v=i.createElement("MultiGeometry");for(let D=0;D<x;++D)v.appendChild(u[D]);T.appendChild(v)}}let b=p._children;if(b.length>0){let T=i.createElement("Folder");T.setAttribute("id",s.get(p.id)),T.appendChild(dn(i,"name",p.name)),T.appendChild(dn(i,"visibility",p.show)),T.appendChild(dn(i,"description",p.description)),t.appendChild(T),Mye(e,T,b)}}}var Ql=new h,ll=new fe,Dh=new Z;function jst(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){Lye(e,t,a,n,i);return}s.get(c,void 0,Ql);let u=dn(o,"coordinates",vT(Ql,r)),f=o.createElement("Point"),d=o.createElement("altitudeMode");d.appendChild(DT(e,a.heightReference)),f.appendChild(d),f.appendChild(u),n.push(f);let p=a instanceof oc?Fye(e,a):Nye(e,a);i.push(p)}function Lye(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,u=t.position,f=!0;u instanceof ma?(c=u.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof Bp,p,g,m,x=[];for(p=0;p<c.length;++p){let T=c.get(p),C=f?u:T.data,A=r.createElement("altitudeMode");C instanceof Mm?(C=C._value,A.appendChild(DT(e,Ye.CLAMP_TO_GROUND))):l(n)?A.appendChild(DT(e,n.heightReference)):A.appendChild(DT(e,Ye.NONE));let E=[],v=[];if(C.isConstant){a.get(C,void 0,Ql);let O=dn(r,"coordinates",vT(Ql,s));E.push(Z.toIso8601(T.start)),v.push(O),E.push(Z.toIso8601(T.stop)),v.push(O)}else if(C instanceof _a)for(m=C._property._times,g=0;g<m.length;++g)E.push(Z.toIso8601(m[g])),C.getValueInReferenceFrame(m[g],Vi.FIXED,Ql),v.push(vT(Ql,s));else if(C instanceof Fu){m=C._times;let O=C._values;for(g=0;g<m.length;++g)E.push(Z.toIso8601(m[g])),h.fromArray(O,g*3,Ql),v.push(vT(Ql,s))}else{let O=e.sampleDuration;T.start.clone(Dh),T.isStartIncluded||Z.addSeconds(Dh,O,Dh);let R=T.stop;for(;Z.lessThan(Dh,R);)C.getValue(Dh,Ql),E.push(Z.toIso8601(Dh)),v.push(vT(Ql,s)),Z.addSeconds(Dh,O,Dh);T.isStopIncluded&&Z.equals(Dh,R)&&(C.getValue(Dh,Ql),E.push(Z.toIso8601(Dh)),v.push(vT(Ql,s)))}let D=r.createElementNS(Ih,"Track");D.appendChild(A);for(let O=0;O<E.length;++O){let R=dn(r,"when",E[O]),M=dn(r,"coord",v[O],Ih);D.appendChild(R),D.appendChild(M)}d&&D.appendChild(Bye(e,n)),x.push(D)}if(x.length===1)i.push(x[0]);else if(x.length>1){let T=r.createElementNS(Ih,"MultiTrack");for(p=0;p<x.length;++p)T.appendChild(x[p]);i.push(T)}if(l(n)&&!d){let T=n instanceof oc?Fye(e,n):Nye(e,n);o.push(T)}let b=t.path;if(l(b)){let T=a.get(b.width),C=b.material;if(l(C)||l(T)){let A=r.createElement("LineStyle");l(T)&&A.appendChild(dn(r,"width",T)),hX(e,C,A),o.push(A)}}}function Nye(e,t){let n=e.kmlDoc,i=e.valueGetter,o=n.createElement("IconStyle"),r=i.getColor(t.color);l(r)&&(o.appendChild(dn(n,"color",r)),o.appendChild(dn(n,"colorMode","normal")));let s=i.get(t.pixelSize);return l(s)&&o.appendChild(dn(n,"scale",s/uX)),o}function Fye(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("IconStyle"),s=i.get(t.image);if(l(s)){s=o.texture(s);let p=n.createElement("Icon");p.appendChild(dn(n,"href",s));let g=i.get(t.imageSubRegion);l(g)&&(p.appendChild(dn(n,"x",g.x,Ih)),p.appendChild(dn(n,"y",g.y,Ih)),p.appendChild(dn(n,"w",g.width,Ih)),p.appendChild(dn(n,"h",g.height,Ih))),r.appendChild(p)}let a=i.getColor(t.color);l(a)&&(r.appendChild(dn(n,"color",a)),r.appendChild(dn(n,"colorMode","normal")));let c=i.get(t.scale);l(c)&&r.appendChild(dn(n,"scale",c));let u=i.get(t.pixelOffset);if(l(u)){c=y(c,1),z.divideByScalar(u,c,u);let p=i.get(t.width,uX),g=i.get(t.height,uX),m=i.get(t.horizontalOrigin,_i.CENTER);m===_i.CENTER?u.x-=p*.5:m===_i.RIGHT&&(u.x-=p);let x=i.get(t.verticalOrigin,Rn.CENTER);x===Rn.TOP?u.y+=g:x===Rn.CENTER&&(u.y+=g*.5);let b=n.createElement("hotSpot");b.setAttribute("x",-u.x),b.setAttribute("y",u.y),b.setAttribute("xunits","pixels"),b.setAttribute("yunits","pixels"),r.appendChild(b)}let f=i.get(t.rotation),d=i.get(t.alignedAxis);return l(f)&&h.equals(h.UNIT_Z,d)&&(f=P.toDegrees(-f),f===0&&(f=360),r.appendChild(dn(n,"heading",f))),r}function qst(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter;if(!l(t))return;let a=o.createElement("LineString"),c=o.createElement("altitudeMode"),u=s.get(t.clampToGround,!1),f;u?(a.appendChild(dn(o,"tessellate",!0)),f=o.createTextNode("clampToGround")):f=o.createTextNode("absolute"),c.appendChild(f),a.appendChild(c);let d=t.positions,p=s.get(d),g=dn(o,"coordinates",vT(p,r));a.appendChild(g);let m=s.get(t.zIndex);u&&l(m)&&a.appendChild(dn(o,"drawOrder",m,Ih)),n.push(a);let x=o.createElement("LineStyle"),b=s.get(t.width);l(b)&&x.appendChild(dn(o,"width",b)),hX(e,t.material,x),i.push(x)}function Yst(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0);n>0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],u=[re.northeast,re.southeast,re.southwest,re.northwest];for(let g=0;g<4;++g)u[g](a,ll),c.push(`${P.toDegrees(ll.longitude)},${P.toDegrees(ll.latitude)},${r}`);let f=dn(i,"coordinates",c.join(" ")),d=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(f),d.appendChild(p),[d]}function Iye(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let f=0;f<a;++f)fe.fromCartesian(t[f],r,ll),s.push(`${P.toDegrees(ll.longitude)},${P.toDegrees(ll.latitude)},${i?ll.height:n}`);let c=dn(o,"coordinates",s.join(" ")),u=o.createElement("LinearRing");return u.appendChild(c),u}function Xst(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0),s=o.get(t.perPositionHeight,!1);!s&&n>0&&(r=n);let a=[],c=t.hierarchy,u=o.get(c),f=Array.isArray(u)?u:u.positions,d=i.createElement("outerBoundaryIs");d.appendChild(Iye(e,f,r,s)),a.push(d);let p=u.holes;if(l(p)){let g=p.length;for(let m=0;m<g;++m){let x=i.createElement("innerBoundaryIs");x.appendChild(Iye(e,p[m].positions,r,s)),a.push(x)}}return a}function Pye(e,t,n,i,o){let r=e.kmlDoc,s=e.valueGetter;if(!l(t))return;let a=t instanceof kd;if(a&&s.getMaterialType(t.material)==="Image"){Kst(e,t,o);return}let c=r.createElement("Polygon"),u=s.get(t.extrudedHeight,0);u>0&&c.appendChild(dn(r,"extrude",!0));let f=a?Yst(e,t,u):Xst(e,t,u),d=f.length;for(let b=0;b<d;++b)c.appendChild(f[b]);let p=r.createElement("altitudeMode");p.appendChild(DT(e,t.heightReference)),c.appendChild(p),n.push(c);let g=r.createElement("PolyStyle"),m=s.get(t.fill,!1);m&&g.appendChild(dn(r,"fill",m)),hX(e,t.material,g);let x=s.get(t.outline,!1);if(x){g.appendChild(dn(r,"outline",x));let b=r.createElement("LineStyle"),T=s.get(t.outlineWidth,1);b.appendChild(dn(r,"width",T));let C=s.getColor(t.outlineColor,H.BLACK);b.appendChild(dn(r,"color",C)),b.appendChild(dn(r,"colorMode","normal")),i.push(b)}i.push(g)}function Kst(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(DT(e,t.heightReference)),s.appendChild(a);let c=o.get(t.height);l(c)&&s.appendChild(dn(i,"altitude",c));let u=o.get(t.coordinates),f=i.createElement("LatLonBox");f.appendChild(dn(i,"north",P.toDegrees(u.north))),f.appendChild(dn(i,"south",P.toDegrees(u.south))),f.appendChild(dn(i,"east",P.toDegrees(u.east))),f.appendChild(dn(i,"west",P.toDegrees(u.west))),s.appendChild(f);let d=o.get(t.material),p=r.texture(d.image),g=i.createElement("Icon");g.appendChild(dn(i,"href",p)),s.appendChild(g);let m=d.color;l(m)&&s.appendChild(dn(i,"color",wT(d.color))),n.push(s)}function Bye(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("Model"),s=i.get(t.scale);if(l(s)){let u=n.createElement("scale");u.appendChild(dn(n,"x",s)),u.appendChild(dn(n,"y",s)),u.appendChild(dn(n,"z",s)),r.appendChild(u)}let a=n.createElement("Link"),c=o.model(t,e.time);return a.appendChild(dn(n,"href",c)),r.appendChild(a),r}function Zst(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!l(n))return;let c=t.position;if(!c.isConstant){Lye(e,t,n,i,o);return}let u=Bye(e,n),f=r.createElement("altitudeMode");f.appendChild(DT(e,n.heightReference)),u.appendChild(f),a.get(c,void 0,Ql),fe.fromCartesian(Ql,s,ll);let d=r.createElement("Location");d.appendChild(dn(r,"longitude",P.toDegrees(ll.longitude))),d.appendChild(dn(r,"latitude",P.toDegrees(ll.latitude))),d.appendChild(dn(r,"altitude",ll.height)),u.appendChild(d),i.push(u)}function hX(e,t,n){let i=e.kmlDoc,o=e.valueGetter;if(!l(t))return;let r=o.get(t);if(!l(r))return;let s,a=o.getMaterialType(t),c,u;switch(a){case"Image":s=wT(H.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=wT(r.color);break;case"PolylineOutline":s=wT(r.color),c=wT(r.outlineColor),u=r.outlineWidth,n.appendChild(dn(i,"outerColor",c,Ih)),n.appendChild(dn(i,"outerWidth",u,Ih));break;case"Stripe":s=wT(r.oddColor);break}l(s)&&(n.appendChild(dn(i,"color",s)),n.appendChild(dn(i,"colorMode","normal")))}function DT(e,t){let n=e.kmlDoc,o=e.valueGetter.get(t,Ye.NONE),r;switch(o){case Ye.NONE:r=n.createTextNode("absolute");break;case Ye.CLAMP_TO_GROUND:r=n.createTextNode("clampToGround");break;case Ye.RELATIVE_TO_GROUND:r=n.createTextNode("relativeToGround");break}return r}function vT(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let o=0;o<n;++o)fe.fromCartesian(e[o],t,ll),i.push(`${P.toDegrees(ll.longitude)},${P.toDegrees(ll.latitude)},${ll.height}`);return i.join(" ")}function dn(e,t,n,i){n=y(n,""),typeof n=="boolean"&&(n=n?"1":"0");let o=l(i)?e.createElementNS(i,t):e.createElement(t),r=n==="string"&&n.indexOf("<")!==-1?e.createCDATASection(n):e.createTextNode(n);return o.appendChild(r),o}function wT(e){let t="",n=e.toBytes();for(let i=3;i>=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var mX=dX;function $st(e){let t,n=e.name,i=e.message;l(n)&&l(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return l(o)&&(t+=`
${o}`),t}var Ym=$st;async function Qst(e,t,n,i){return l(i)||(i=!1),tat(e,t,n,i)}function Jst(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(Vye(i)):r=o.then(Vye(i)).catch(nat(i)),e.shift(),t.push(r),!0}function eat(e){return new Promise(function(t){setTimeout(t,e)})}function pX(e,t,n){return e.length?Jst(e,t,n)?pX(e,t,n):eat(100).then(()=>pX(e,t,n)):Promise.resolve()}function tat(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r<n.length;++r){let u=o.positionToTileXY(n[r],t);if(!l(u))continue;let f=u.toString();if(!a.hasOwnProperty(f)){let d={x:u.x,y:u.y,level:t,tilingScheme:o,terrainProvider:e,positions:[]};a[f]=d,s.push(d)}a[f].positions.push(n[r])}let c=[];return pX(s,c,i).then(function(){return Promise.all(c).then(function(){return n})})}function kye(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function Vye(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(!kye(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];kye(s,i,n)}}):Promise.resolve()}}function nat(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var DF=Qst;var _X=new z;async function Uye(e,t,n){l(n)||(n=!1);let i=[],o=[],r=e.availability,s=[];for(let c=0;c<t.length;++c){let u=t[c],f=r.computeMaximumLevelAtPosition(u);if(o[c]=f,f===0){e.tilingScheme.positionToTileXY(u,1,_X);let p=e.loadTileDataAvailability(_X.x,_X.y,1);l(p)&&s.push(p)}let d=i[f];l(d)||(i[f]=d=[]),d.push(u)}await Promise.all(s),await Promise.all(i.map(function(c,u){if(l(c))return DF(e,u,c,n)}));let a=[];for(let c=0;c<t.length;++c){let u=t[c];r.computeMaximumLevelAtPosition(u)!==o[c]&&a.push(u)}return a.length>0&&await Uye(e,a,n),t}var IT=Uye;async function gX(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ne.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;let a=n.availability;if(!l(a)||t.mode===ne.SCENE2D)return r;let c=[re.center(e),re.southeast(e),re.southwest(e),re.northeast(e),re.northwest(e)],u=await gX._sampleTerrainMostDetailed(n,c),f=!1,d=u.reduce(function(g,m){return l(m.height)?(f=!0,Math.max(m.height,g)):g},-Number.MAX_VALUE),p=r;return f&&(p.height+=d),p}gX._sampleTerrainMostDetailed=IT;var PT=gX;var iat={NONE:0,LERC:1},ad=Object.freeze(iat);var oat={NONE:0,BITS12:1},Js=Object.freeze(oat);var RT=new h,rat=new h,cd=new z,qH=new F,sat=new F,aat=Math.pow(2,12);function Ec(e,t,n,i,o,r,s,a,c,u){let f=Js.NONE,d,p;if(l(t)&&l(n)&&l(i)&&l(o)){let g=t.minimum,m=t.maximum,x=h.subtract(m,g,rat),b=i-n;Math.max(h.maximumComponent(x),b)<aat-1?f=Js.BITS12:f=Js.NONE,d=F.inverseTransformation(o,new F);let C=h.negate(g,RT);F.multiply(F.fromTranslation(C,qH),d,d);let A=RT;A.x=1/x.x,A.y=1/x.y,A.z=1/x.z,F.multiply(F.fromScale(A,qH),d,d),p=F.clone(o),F.setTranslation(p,h.ZERO,p),o=F.clone(o,new F);let E=F.fromTranslation(g,qH),v=F.fromScale(x,sat),D=F.multiply(E,v,qH);F.multiply(o,D,o),F.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(u,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}Ec.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,u=i.y;if(this.quantization===Js.BITS12){n=F.multiplyByPoint(this.toScaledENU,n,RT),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);z.fromElements(n.x,n.y,cd);let p=Mn.compressTextureCoordinates(cd);z.fromElements(n.z,d,cd);let g=Mn.compressTextureCoordinates(cd);z.fromElements(c,u,cd);let m=Mn.compressTextureCoordinates(cd);if(e[t++]=p,e[t++]=g,e[t++]=m,this.hasWebMercatorT){z.fromElements(s,0,cd);let x=Mn.compressTextureCoordinates(cd);e[t++]=x}}else h.subtract(n,this.center,RT),e[t++]=RT.x,e[t++]=RT.y,e[t++]=RT.z,e[t++]=o,e[t++]=c,e[t++]=u,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=Mn.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var cat=new h,zye=new h;Ec.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,cat),c=n.geodeticSurfaceNormal(a,zye),u=s*r+this._offsetGeodeticSurfaceNormal;t[u]=c.x,t[u+1]=c.y,t[u+2]=c.z}};Ec.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]}};Ec.prototype.decodePosition=function(e,t,n){if(l(n)||(n=new h),t*=this.stride,this.quantization===Js.BITS12){let i=Mn.decompressTextureCoordinates(e[t],cd);n.x=i.x,n.y=i.y;let o=Mn.decompressTextureCoordinates(e[t+1],cd);return n.z=o.x,F.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)};Ec.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,zye),a=this.decodeHeight(e,t),c=Cr.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};Ec.prototype.decodeTextureCoordinates=function(e,t,n){return l(n)||(n=new z),t*=this.stride,this.quantization===Js.BITS12?Mn.decompressTextureCoordinates(e[t+2],n):z.fromElements(e[t+4],e[t+5],n)};Ec.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===Js.BITS12?Mn.decompressTextureCoordinates(e[t+1],cd).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};Ec.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===Js.BITS12?Mn.decompressTextureCoordinates(e[t+3],cd).x:e[t+6]};Ec.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 z.fromElements(o,r,n)};Ec.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};Ec.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case Js.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 YH={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},XH={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};Ec.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===Js.NONE){s(YH.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(YH.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(YH.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(XH.compressed0,a?4:3),c&&s(XH.compressed1,1),this.hasGeodeticSurfaceNormals&&s(XH.geodeticSurfaceNormal,3)}return r};Ec.prototype.getAttributeLocations=function(){return this.quantization===Js.NONE?YH:XH};Ec.clone=function(e,t){if(l(e))return l(t)||(t=new Ec),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=h.clone(e.center),t.toScaledENU=F.clone(e.toScaledENU),t.fromScaledENU=F.clone(e.fromScaledENU),t.matrix=F.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 Sc=Ec;var Xm={};Xm.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var yX=new h,lat=new F,uat=new h,fat=new h;Xm.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,u=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),m=y(e.ellipsoid,ee.default),x=1/m.maximumRadius,b=re.clone(e.nativeRectangle),T=re.clone(e.rectangle),C,A,E,v;l(T)?(C=T.west,A=T.south,E=T.east,v=T.north):g?(C=a(b.west),A=a(b.south),E=a(b.east),v=a(b.north)):(C=b.west*x,A=s-2*o(r(-b.south*x)),E=b.east*x,v=s-2*o(r(-b.north*x)));let D=e.relativeToCenter,O=l(D);D=O?D:h.ZERO;let R=y(e.includeWebMercatorT,!1),M=y(e.exaggeration,1),N=y(e.exaggerationRelativeHeight,0),S=M!==1,w=y(e.structure,Xm.DEFAULT_STRUCTURE),I=y(w.heightScale,Xm.DEFAULT_STRUCTURE.heightScale),L=y(w.heightOffset,Xm.DEFAULT_STRUCTURE.heightOffset),B=y(w.elementsPerHeight,Xm.DEFAULT_STRUCTURE.elementsPerHeight),U=y(w.stride,Xm.DEFAULT_STRUCTURE.stride),V=y(w.elementMultiplier,Xm.DEFAULT_STRUCTURE.elementMultiplier),G=y(w.isBigEndian,Xm.DEFAULT_STRUCTURE.isBigEndian),k=re.computeWidth(b),W=re.computeHeight(b),q=k/(u-1),J=W/(f-1);g||(k*=x,W*=x);let j=m.radiiSquared,K=j.x,Q=j.y,de=j.z,ye=65536,ae=-65536,_e=Mt.eastNorthUpToFixedFrame(D,m),xe=F.inverseTransformation(_e,lat),De,Ae;R&&(De=wi.geodeticLatitudeToMercatorAngle(A),Ae=1/(wi.geodeticLatitudeToMercatorAngle(v)-De));let ke=uat;ke.x=Number.POSITIVE_INFINITY,ke.y=Number.POSITIVE_INFINITY,ke.z=Number.POSITIVE_INFINITY;let ze=fat;ze.x=Number.NEGATIVE_INFINITY,ze.y=Number.NEGATIVE_INFINITY,ze.z=Number.NEGATIVE_INFINITY;let tt=Number.POSITIVE_INFINITY,wt=u*f,pt=d>0?u*2+f*2:0,Be=wt+pt,Yt=new Array(Be),Ct=new Array(Be),lt=new Array(Be),tn=R?new Array(Be):[],Ce=S?new Array(Be):[],Te=0,it=f,Wi=0,ut=u;p&&(--Te,++it,--Wi,++ut);let go=1e-5;for(let Xe=Te;Xe<it;++Xe){let dt=Xe;dt<0&&(dt=0),dt>=f&&(dt=f-1);let Gt=b.north-J*dt;g?Gt=a(Gt):Gt=s-2*o(r(-Gt*x));let wn=(Gt-A)/(v-A);wn=P.clamp(wn,0,1);let Io=Xe===Te,Jn=Xe===it-1;d>0&&(Io?Gt+=go*W:Jn&&(Gt-=go*W));let ls=t(Gt),Xa=n(Gt),Yr=de*Xa,Fi;R&&(Fi=(wi.geodeticLatitudeToMercatorAngle(Gt)-De)*Ae);for(let ks=Wi;ks<ut;++ks){let Xr=ks;Xr<0&&(Xr=0),Xr>=u&&(Xr=u-1);let lf=dt*(u*U)+Xr*U,yo;if(B===1)yo=c[lf];else{yo=0;let Bo;if(G)for(Bo=0;Bo<B;++Bo)yo=yo*V+c[lf+Bo];else for(Bo=B-1;Bo>=0;--Bo)yo=yo*V+c[lf+Bo]}yo=yo*I+L,ae=Math.max(ae,yo),ye=Math.min(ye,yo);let Pr=b.west+q*Xr;g?Pr=a(Pr):Pr=Pr*x;let mp=(Pr-C)/(E-C);mp=P.clamp(mp,0,1);let Kr=dt*u+Xr;if(d>0){let Bo=ks===Wi,sn=ks===ut-1,Ee=Io||Jn||Bo||sn;if((Io||Jn)&&(Bo||sn))continue;Ee&&(yo-=d,Bo?(Kr=wt+(f-dt-1),Pr-=go*k):Jn?Kr=wt+f+(u-Xr-1):sn?(Kr=wt+f+u+dt,Pr+=go*k):Io&&(Kr=wt+f+u+f+Xr))}let uf=ls*t(Pr),Ka=ls*n(Pr),X0=K*uf,Aa=Q*Ka,Oc=1/i(X0*uf+Aa*Ka+Yr*Xa),us=X0*Oc,ff=Aa*Oc,df=Yr*Oc,hf=new h;hf.x=us+uf*yo,hf.y=ff+Ka*yo,hf.z=df+Xa*yo,F.multiplyByPoint(xe,hf,yX),h.minimumByComponent(yX,ke,ke),h.maximumByComponent(yX,ze,ze),tt=Math.min(tt,yo),Yt[Kr]=hf,lt[Kr]=new z(mp,wn),Ct[Kr]=yo,R&&(tn[Kr]=Fi),S&&(Ce[Kr]=m.geodeticSurfaceNormal(hf))}}let Yo=se.fromPoints(Yt),Ya;l(T)&&(Ya=vn.fromRectangle(T,ye,ae,m));let Ir;O&&(Ir=new B_(m).computeHorizonCullingPointPossiblyUnderEllipsoid(D,Yt,ye));let Cs=new Gg(ke,ze,D),Le=new Sc(D,Cs,tt,ae,_e,!1,R,S,M,N),ot=new Float32Array(Be*Le.stride),qe=0;for(let Xe=0;Xe<Be;++Xe)qe=Le.encode(ot,qe,Yt[Xe],lt[Xe],Ct[Xe],void 0,tn[Xe],Ce[Xe]);return{vertices:ot,maximumHeight:ae,minimumHeight:ye,encoding:Le,boundingSphere3D:Yo,orientedBoundingBox:Ya,occludeePointInScaledSpace:Ir}};var NS=Xm;function b0(){he.throwInstantiationError()}Object.defineProperties(b0.prototype,{credits:{get:he.throwInstantiationError},waterMask:{get:he.throwInstantiationError}});b0.prototype.interpolateHeight=he.throwInstantiationError;b0.prototype.isChildAvailable=he.throwInstantiationError;b0.prototype.createMesh=he.throwInstantiationError;b0.prototype.upsample=he.throwInstantiationError;b0.prototype.wasCreatedByUpsampling=he.throwInstantiationError;b0.maximumAsynchronousTasks=5;var Ph=b0;function dat(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){this.center=e,this.vertices=t,this.stride=y(u,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=dat;function ul(){he.throwInstantiationError()}Object.defineProperties(ul.prototype,{errorEvent:{get:he.throwInstantiationError},credit:{get:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},hasWaterMask:{get:he.throwInstantiationError},hasVertexNormals:{get:he.throwInstantiationError},availability:{get:he.throwInstantiationError}});var Hye=[];ul.getRegularGridIndices=function(e,t){let n=Hye[e];l(n)||(Hye[e]=n=[]);let i=n[t];return l(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),qye(e,t,i,0)),i};var Gye=[];ul.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=Gye[e];l(n)||(Gye[e]=n=[]);let i=n[t];if(!l(i)){let o=ul.getRegularGridIndices(e,t),r=jye(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,u=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:u}}return i};var Wye=[];ul.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=Wye[e];l(n)||(Wye[e]=n=[]);let i=n[t];if(!l(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,u=r+a,f=jye(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,m=f.northIndicesWestToEast,x=Ne.createTypedArray(c,u);qye(e,t,x,0),ul.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};ul.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=KH(e,a,r,s),a+=e.length,s=KH(t,a,r,s),a+=t.length,s=KH(n,a,r,s),a+=n.length,KH(i,a,r,s)};function jye(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 qye(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,u=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=u,++o}++o}}function KH(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}ul.heightmapTerrainQuality=.25;ul.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*ul.heightmapTerrainQuality/(t*n)};ul.prototype.requestTileGeometry=he.throwInstantiationError;ul.prototype.getLevelMaximumGeometricError=he.throwInstantiationError;ul.prototype.getTileDataAvailable=he.throwInstantiationError;ul.prototype.loadTileDataAvailability=he.throwInstantiationError;var os=ul;function ig(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,ad.NONE);let t=NS.DEFAULT_STRUCTURE,n=e.structure;l(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===ad.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(ig.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var Yye="createVerticesFromHeightmap",hat=new pi(Yye),mat=new pi(Yye,Ph.maximumAsynchronousTasks);ig.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,u=t.tileXYToNativeRectangle(n,i,o),f=t.tileXYToRectangle(n,i,o),d=c.cartographicToCartesian(re.center(f)),p=this._structure,m=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(m*4,1e3);let b=(a?mat:hat).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:u,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof vi,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!l(b))return;let T=this;return Promise.resolve(b).then(function(C){let A;T._skirtHeight>0?A=os.getRegularGridAndSkirtIndicesAndEdgeIndices(C.gridWidth,C.gridHeight):A=os.getRegularGridIndicesAndEdgeIndices(C.gridWidth,C.gridHeight);let E=C.gridWidth*C.gridHeight;return T._mesh=new ld(d,new Float32Array(C.vertices),A.indices,A.indexCountWithoutSkirts,E,C.minimumHeight,C.maximumHeight,se.clone(C.boundingSphere3D),h.clone(C.occludeePointInScaledSpace),C.numberOfAttributes,vn.clone(C.orientedBoundingBox),Sc.clone(C.encoding),A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),T._buffer=void 0,T._mesh})};ig.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),u=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(re.center(u)),d=this._structure,g=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(g*4,1e3);let m=NS.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:u,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof vi,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let x;this._skirtHeight>0?x=os.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=os.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};ig.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,u=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=l(this._mesh),g=this._encoding===ad.LERC;if(!p&&g)return;let x;if(p){let b=this._mesh.vertices,T=this._mesh.encoding;x=Xye(b,T,f,d,e,i,o,t,n)}else x=pat(this._buffer,a,c,s,u,e,i,o,t,n),x=x*d+f;return x};ig.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,u=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*u*d),g=a.vertices,m=a.encoding,x=e.tileXYToRectangle(t,n,i),b=e.tileXYToRectangle(o,r,s),T=f.heightOffset,C=f.heightScale,A=f.elementsPerHeight,E=f.elementMultiplier,v=f.isBigEndian,D=Math.pow(E,A-1);for(let O=0;O<u;++O){let R=P.lerp(b.north,b.south,O/(u-1));for(let M=0;M<c;++M){let N=P.lerp(b.west,b.east,M/(c-1)),_=Xye(g,m,T,C,x,c,u,N,R);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,_at(p,A,E,D,d,v,O*c+M,_)}}return Promise.resolve(new ig({buffer:p,width:c,height:u,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};ig.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};ig.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function pat(e,t,n,i,o,r,s,a,c,u){let f=(c-r.west)*(s-1)/(r.east-r.west),d=(u-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 C=ZH(e,t,n,i,o,m*s+p),A=ZH(e,t,n,i,o,m*s+g),E=ZH(e,t,n,i,o,x*s+p),v=ZH(e,t,n,i,o,x*s+g);return Kye(b,T,C,A,E,v)}function Xye(e,t,n,i,o,r,s,a,c){let u=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=u|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=u-d,b=f-g;g=s-1-g,m=s-1-m;let T=(t.decodeHeight(e,g*r+d)-n)/i,C=(t.decodeHeight(e,g*r+p)-n)/i,A=(t.decodeHeight(e,m*r+d)-n)/i,E=(t.decodeHeight(e,m*r+p)-n)/i;return Kye(x,b,T,C,A,E)}function Kye(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function ZH(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 _at(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 za=ig;function FS(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Yi({ellipsoid:y(e.ellipsoid,ee.default)})),this._levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new me}Object.defineProperties(FS.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(){}}});FS.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new za({buffer:new Uint8Array(16*16),width:16,height:16}))};FS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};FS.prototype.getTileDataAvailable=function(e,t,n){};FS.prototype.loadTileDataAvailability=function(e,t,n){};var Km=FS;var IF=`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

#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL))
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

#ifdef ENABLE_CLIPPING_POLYGONS
uniform highp sampler2D u_clippingDistance;
in vec2 v_clippingPosition;
flat in int v_regionIndex;
#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; // Hue, saturation, brightness
#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)
{
    // This crazy step stuff sets the alpha to 0.0 if this following condition is true:
    //    tileTextureCoordinates.s < textureCoordinateRectangle.s ||
    //    tileTextureCoordinates.s > textureCoordinateRectangle.p ||
    //    tileTextureCoordinates.t < textureCoordinateRectangle.t ||
    //    tileTextureCoordinates.t > textureCoordinateRectangle.q
    // In other words, the alpha is zero if the fragment is outside the rectangle
    // covered by this texture.  Would an actual 'if' yield better performance?
    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 = czm_maximumComponent(colorDiff);
    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;
    // Split to the left
    if (split < 0.0 && gl_FragCoord.x > splitPosition) {
       alpha = 0.0;
    }
    // Split to the right
    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;

    // When rendering imagery for a tile in multiple passes,
    // some GPU/WebGL implementation combinations will not blend fragments in
    // additional passes correctly if their computation includes an unmasked
    // divide-by-zero operation,
    // even if it's not in the output or if the output has alpha zero.
    //
    // For example, without sanitization for outAlpha,
    // this renders without artifacts:
    //   if (outAlpha == 0.0) { outColor = vec3(0.0); }
    //
    // but using czm_branchFreeTernary will cause portions of the tile that are
    // alpha-zero in the additional pass to render as black instead of blending
    // with the previous pass:
    //   outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor);
    //
    // So instead, sanitize against divide-by-zero,
    // store this state on the sign of outAlpha, and correct on return.

    return vec4(outColor, max(outAlpha, 0.0));
}

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));   // normalized surface normal in model coordinates
    vec3 normalEC = czm_normal3D * normalMC;                                         // normalized surface normal in eye coordinates
#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

    // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0
    // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the
    // fragments on the edges of tiles even though the vertex shader is outputting
    // coordinates strictly in the 0-1 range.
    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

#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL))
    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;

    #ifdef SHOW_REFLECTIVE_OCEAN
    if (mask > 0.0)
    {
        mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC);

        vec2 ellipsoidTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC);
        vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidTextureCoordinates(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
#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;
    #ifdef HAS_WATER_MASK
        materialInput.waterMask = mask;
    #endif

    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 ENABLE_CLIPPING_POLYGONS
    vec2 clippingPosition = v_clippingPosition;
    int regionIndex = v_regionIndex;
    clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex);
#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;

        // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader.
        // Otherwise, the scattering is computed in the vertex shader.
        #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

        #ifdef COLOR_CORRECT
            const bool ignoreBlackPixels = true;
            rayleighColor = czm_applyHSBShift(rayleighColor, u_hsbShift, ignoreBlackPixels);
            mieColor = czm_applyHSBShift(mieColor, u_hsbShift, ignoreBlackPixels);
        #endif

        vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity);

        // Fog is applied to tiles selected for fog, close to the Earth.
        #ifdef FOG
            vec3 fogColor = groundAtmosphereColor.rgb;

            // If there is lighting, apply that to the fog.
            #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_pbrNeutralTonemapping(fogColor.rgb);
                fogColor.rgb = czm_inverseGamma(fogColor.rgb);
            #endif

            finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, czm_fogVisualDensityScalar), finalColor.a);

        #else
            // Apply ground atmosphere. This happens when the camera is far away from the earth.

            // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere.
            // This value is larger near the "circumference", as it is further away from the camera. We use it to
            // brighten up that area of the ground atmosphere.
            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);
}

// Based on water rendering by Jonas Wagner:
// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog

// low altitude wave settings
const float oceanFrequencyLowAltitude = 825000.0;
const float oceanAnimationSpeedLowAltitude = 0.004;
const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0;
const float oceanSpecularIntensity = 0.5;

// high altitude wave settings
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);

    // The double normalize below works around a bug in Firefox on Android devices.
    vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC));

    // Fade out the waves as the camera moves far from the surface.
    float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength);

#ifdef SHOW_OCEAN_WAVES
    // high altitude 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);

    // low altitude waves
    time = czm_frameNumber * oceanAnimationSpeedLowAltitude;
    noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0);
    vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude);

    // blend the 2 wave layers based on distance to surface
    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);

    // fade out the normal perturbation as we move farther from the water surface
    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);

    // Use diffuse light to highlight the waves
    float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue;
    vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade);

#ifdef SHOW_OCEAN_WAVES
    // Where diffuse light is low or non-existent, use wave highlights based solely on
    // the wave bumpiness and no particular light direction.
    float tsPerturbationRatio = normalTangentSpace.z;
    vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity);
#else
    vec3 nonDiffuseHighlight = vec3(0.0);
#endif

    // Add specular highlights in 3D, and in all modes when zoomed in.
    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 // #ifdef SHOW_REFLECTIVE_OCEAN
`;var PF=`#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_verticalExaggerationAndRelativeHeight;
#endif

uniform vec3 u_center3D;
uniform mat4 u_modifiedModelView;
uniform mat4 u_modifiedModelViewProjection;
uniform vec4 u_tileRectangle;

// Uniforms for 2D Mercator projection
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

#ifdef ENABLE_CLIPPING_POLYGONS
uniform highp sampler2D u_clippingExtents;
out vec2 v_clippingPosition;
flat out int v_regionIndex;
#endif

// These functions are generated at runtime.
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)
{
    // The width of a tile at level 11, in radians and assuming a single root tile, is
    //   2.0 * czm_pi / pow(2.0, 11.0)
    // We want to just linearly interpolate the 2D position from the texture coordinates
    // when we're at this level or higher.  The constant below is the expression
    // above evaluated and then rounded up at the 4th significant digit.
    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)
{
    // We do not do RTC while morphing, so there is potential for jitter.
    // This is unlikely to be noticeable, though.
    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) || defined(APPLY_MATERIAL)
    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
    // A single float per element
    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_verticalExaggerationAndRelativeHeight.x;
    float relativeHeight = u_verticalExaggerationAndRelativeHeight.y;
    float newHeight = (height - relativeHeight) * exaggeration + relativeHeight;

    // stop from going through center of earth
    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;  // position in model coordinates

    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

#ifdef ENABLE_CLIPPING_POLYGONS
    vec2 sphericalLatLong = czm_approximateSphericalCoordinates(position3DWC);
    sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi);
    
    vec2 minDistance = vec2(czm_infinity);
    v_clippingPosition = vec2(czm_infinity);
    v_regionIndex = -1;

    for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) {
        vec4 extents = unpackClippingExtents(u_clippingExtents, regionIndex);
        vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz;

        vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0));
        vec2 distance = abs(rectUv - clamped) * extents.wz;

        float threshold = 0.01;
        if (minDistance.x > distance.x || minDistance.y > distance.y) {
            minDistance = distance;
            v_clippingPosition = rectUv;
            if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) {
                v_regionIndex = regionIndex;
            }
        }
    }
#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 BS=`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 gat=new z;function yat(e,t){let n=e.unionClippingRegions,i=e.length,o=_s.useFloatTexture(t),r=_s.getTextureResolution(e,t,gat),s=r.x,a=r.y,c=o?Tat(s,a):Cat(s,a);return c+=`
`,c+=n?xat(i):bat(i),c}function xat(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 bat(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 Tat(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 Cat(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 og=yat;function Aat(e,t,n,i,o,r){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o,this.clippingPolygonShaderState=r}function xX(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function Eat(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 ne.SCENE3D:o=t;break;case ne.SCENE2D:case ne.COLUMBUS_VIEW:o=n;break;case ne.MORPHING:o=i;break}return o}function Sat(e){return e.webgl2?`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) {
    czm_clipPolygons(clippingDistance, regionsLength, clippingPosition, regionIndex);
  }`:`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) {
    }`}function vat(e){return e.webgl2?`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) {
    return czm_unpackClippingExtents(extentsTexture, index);
  }`:`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) {
      return vec4();
    }`}function wat(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}xX.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,u=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.hasWaterMask,g=e.showReflectiveOcean,m=e.showOceanWaves,x=e.enableLighting,b=e.dynamicAtmosphereLighting,T=e.dynamicAtmosphereLightingFromSun,C=e.showGroundAtmosphere,A=e.perFragmentGroundAtmosphere,E=e.hasVertexNormals,v=e.useWebMercatorProjection,D=e.enableFog,O=e.enableClippingPlanes,R=e.clippingPlanes,M=e.enableClippingPolygons,N=e.clippingPolygons,_=e.clippedByBoundaries,S=e.hasImageryLayerCutout,w=e.colorCorrect,I=e.highlightFillTile,L=e.colorToAlpha,B=e.hasGeodeticSurfaceNormals,U=e.hasExaggeration,V=e.showUndergroundColor,G=e.translucent,k=0,W="",J=n.renderedMesh.encoding;J.quantization===Js.BITS12&&(k=1,W="QUANTIZATION_BITS12");let K=0,Q="";_&&(K=1,Q="TILE_LIMIT_RECTANGLE");let de=0,ye="";S&&(de=1,ye="APPLY_IMAGERY_CUTOUT");let ae=t.mode,_e=ae|o<<2|r<<3|s<<4|a<<5|c<<6|u<<7|p<<8|g<<9|m<<10|x<<11|b<<12|T<<13|C<<14|A<<15|E<<16|v<<17|D<<18|k<<19|d<<20|O<<21|M<<22|K<<23|de<<24|w<<25|I<<26|L<<27|B<<28|U<<29|V<<30|G<<31|f<<32,xe=0;l(R)&&R.length>0&&(xe=O?R.clippingPlanesState:0);let De=0;l(N)&&N.length>0&&(De=M?N.clippingPolygonsState:0);let Ae=n.surfaceShader;if(l(Ae)&&Ae.numberOfDayTextures===i&&Ae.flags===_e&&Ae.material===this.material&&Ae.clippingShaderState===xe&&Ae.clippingPolygonShaderState===De)return Ae.shaderProgram;let ke=this._shadersByTexturesFlags[i];if(l(ke)||(ke=this._shadersByTexturesFlags[i]=[]),Ae=ke[_e],!l(Ae)||Ae.material!==this.material||Ae.clippingShaderState!==xe||Ae.clippingPolygonShaderState!==De){let ze=this.baseVertexShaderSource.clone(),tt=this.baseFragmentShaderSource.clone();xe!==0&&tt.sources.unshift(og(R,t.context)),De!==0&&(tt.sources.unshift(Sat(t.context)),ze.sources.unshift(vat(t.context))),ze.defines.push(W),tt.defines.push(`TEXTURE_UNITS ${i}`,Q,ye),o&&tt.defines.push("APPLY_BRIGHTNESS"),r&&tt.defines.push("APPLY_CONTRAST"),s&&tt.defines.push("APPLY_HUE"),a&&tt.defines.push("APPLY_SATURATION"),c&&tt.defines.push("APPLY_GAMMA"),u&&tt.defines.push("APPLY_ALPHA"),f&&tt.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&tt.defines.push("HAS_WATER_MASK"),g&&(tt.defines.push("SHOW_REFLECTIVE_OCEAN"),ze.defines.push("SHOW_REFLECTIVE_OCEAN")),m&&tt.defines.push("SHOW_OCEAN_WAVES"),L&&tt.defines.push("APPLY_COLOR_TO_ALPHA"),V&&(ze.defines.push("UNDERGROUND_COLOR"),tt.defines.push("UNDERGROUND_COLOR")),G&&(ze.defines.push("TRANSLUCENT"),tt.defines.push("TRANSLUCENT")),x&&(E?(ze.defines.push("ENABLE_VERTEX_LIGHTING"),tt.defines.push("ENABLE_VERTEX_LIGHTING")):(ze.defines.push("ENABLE_DAYNIGHT_SHADING"),tt.defines.push("ENABLE_DAYNIGHT_SHADING"))),b&&(ze.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),tt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),T&&(ze.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),tt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),C&&(ze.defines.push("GROUND_ATMOSPHERE"),tt.defines.push("GROUND_ATMOSPHERE"),A&&(ze.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),tt.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),ze.defines.push("INCLUDE_WEB_MERCATOR_Y"),tt.defines.push("INCLUDE_WEB_MERCATOR_Y"),D&&(ze.defines.push("FOG"),tt.defines.push("FOG")),d&&tt.defines.push("APPLY_SPLIT"),O&&tt.defines.push("ENABLE_CLIPPING_PLANES"),M&&(tt.defines.push("ENABLE_CLIPPING_POLYGONS"),ze.defines.push("ENABLE_CLIPPING_POLYGONS"),N.inverse&&tt.defines.push("CLIPPING_INVERSE"),tt.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${N.extentsCount}`),ze.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${N.extentsCount}`)),w&&tt.defines.push("COLOR_CORRECT"),I&&tt.defines.push("HIGHLIGHT_FILL_TILE"),B&&ze.defines.push("GEODETIC_SURFACE_NORMALS"),U&&ze.defines.push("EXAGGERATION");let wt=`    vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend)
    {
        vec4 color = initialColor;
`;S&&(wt+=`        vec4 cutoutAndColorResult;
        bool texelUnclipped;
`);for(let Be=0;Be<i;++Be)S?wt+=`        cutoutAndColorResult = u_dayTextureCutoutRectangles[${Be}];
        texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y;
        cutoutAndColorResult = sampleAndBlend(
`:wt+=`        color = sampleAndBlend(
`,wt+=`            color,
            u_dayTextures[${Be}],
            u_dayTextureUseWebMercatorT[${Be}] ? textureCoordinates.xz : textureCoordinates.xy,
            u_dayTextureTexCoordsRectangle[${Be}],
            u_dayTextureTranslationAndScale[${Be}],
            ${u?`u_dayTextureAlpha[${Be}]`:"1.0"},
            ${f?`u_dayTextureNightAlpha[${Be}]`:"1.0"},
${f?`u_dayTextureDayAlpha[${Be}]`:"1.0"},
${o?`u_dayTextureBrightness[${Be}]`:"0.0"},
            ${r?`u_dayTextureContrast[${Be}]`:"0.0"},
            ${s?`u_dayTextureHue[${Be}]`:"0.0"},
            ${a?`u_dayTextureSaturation[${Be}]`:"0.0"},
            ${c?`u_dayTextureOneOverGamma[${Be}]`:"0.0"},
            ${d?`u_dayTextureSplit[${Be}]`:"0.0"},
            ${L?`u_colorsToAlpha[${Be}]`:"vec4(0.0)"},
        nightBlend        );
`,S&&(wt+=`        color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color);
`);wt+=`        return color;
    }`,tt.sources.push(wt),ze.sources.push(Eat(ae)),ze.sources.push(wat(v));let pt=Qt.fromCache({context:t.context,vertexShaderSource:ze,fragmentShaderSource:tt,attributeLocations:J.getAttributeLocations()});Ae=ke[_e]=new Aat(i,_e,this.material,pt,xe,De)}return n.surfaceShader=Ae,Ae.shaderProgram};xX.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];if(!l(o))continue;for(e in o)o.hasOwnProperty(e)&&(t=o[e],l(t)&&t.shaderProgram.destroy())}return ue(this)};var RF=xX;var Dat={NONE:-1,PARTIAL:0,FULL:1},pr=Object.freeze(Dat);function $H(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}$H.reportError=function(e,t,n,i,o,r,s,a){let c=e;return l(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 $H(t,i,o,r,s,0,a),l(n)&&n.numberOfListeners>0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${Ym(i)}`),c};$H.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var wo=$H;var Iat={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ai=Object.freeze(Iat);var Pat={START:0,LOADING:1,DONE:2,FAILED:3},ea=Object.freeze(Pat);var Rat={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},uo=Object.freeze(Rat);function or(){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=uo.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(or.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===uo.RECEIVING||e===uo.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o<r;++o){let s=i[o];n=!l(s.loadingImagery)||s.loadingImagery.state!==ai.TRANSITIONING}return n}},renderedMesh:{get:function(){if(l(this.vertexArray))return this.mesh;if(l(this.fill))return this.fill.mesh}}});var Oat=new fe;function bX(e,t,n,i,o,r){let s=e.getExaggeratedPosition(i,o,r);if(l(t)&&t!==ne.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,Oat);s=n.project(c,r),s=h.fromElements(s.z,s.x,s.y,r)}return s}var Mat=new h,Lat=new h,Nat=new h;or.prototype.pick=function(e,t,n,i,o){let r=this.renderedMesh;if(!l(r))return;let s=r.vertices,a=r.indices,c=r.encoding,u=a.length,f=Number.MAX_VALUE;for(let d=0;d<u;d+=3){let p=a[d],g=a[d+1],m=a[d+2],x=bX(c,t,n,s,p,Mat),b=bX(c,t,n,s,g,Lat),T=bX(c,t,n,s,m,Nat),C=$n.rayTriangleParametric(e,x,b,T,i);l(C)&&C<f&&C>=0&&(f=C)}return f!==Number.MAX_VALUE?mn.getPoint(e,f,o):void 0};or.prototype.freeResources=function(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=uo.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()};or.prototype.freeVertexArray=function(){or._freeVertexArray(this.vertexArray),this.vertexArray=void 0,or._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};or.initialize=function(e,t,n){let i=e.data;l(i)||(i=e.data=new or),e.state===ea.START&&(Fat(e,t,n),e.state=ea.LOADING)};or.processStateMachine=function(e,t,n,i,o,r,s){or.initialize(e,n,i);let a=e.data;if(e.state===ea.LOADING&&Bat(e,t,n,i,o,r),s)return;let c=e.renderable;e.renderable=l(a.vertexArray);let u=a.terrainState===uo.READY;e.upsampledFromParent=l(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(u&&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=ea.DONE}c&&(e.renderable=!0)};or.prototype.processImagery=function(e,t,n,i){let o=e.data,r=e.upsampledFromParent,s=!1,a=!0,c=o.imagery,u,f;for(u=0,f=c.length;u<f;++u){let d=c[u];if(!l(d.loadingImagery)){r=!1;continue}if(d.loadingImagery.state===ai.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready){d.freeResources(),c.splice(u,1),g._createTileImagerySkeletons(e,t,u),--u,f=c.length;continue}else r=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||l(d.readyImagery),r=r&&l(d.loadingImagery)&&(d.loadingImagery.state===ai.FAILED||d.loadingImagery.state===ai.INVALID)}return e.upsampledFromParent=r,e.renderable=e.renderable&&(s||a),a};function Zye(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=Sc.clone(s);c.hasGeodeticSurfaceNormals=t,c=Sc.clone(c);let u=c.stride,f=new Float32Array(a*u);t?s.addGeodeticSurfaceNormals(r,f,n):s.removeGeodeticSurfaceNormals(r,f),o.vertices=f,o.stride=u,o!==e.mesh?(or._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=or._createVertexArrayForMesh(i.context,o)):(or._freeVertexArray(e.vertexArray),e.vertexArray=or._createVertexArrayForMesh(i.context,o)),or._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}or.prototype.addGeodeticSurfaceNormals=function(e,t){Zye(this,!0,e,t)};or.prototype.removeGeodeticSurfaceNormals=function(e){Zye(this,!1,void 0,e)};or.prototype.updateExaggeration=function(e,t,n){let i=this,o=i.renderedMesh;if(o===void 0)return;let r=t.verticalExaggeration,s=t.verticalExaggerationRelativeHeight,a=r!==1,c=o.encoding,u=c.exaggeration!==r,f=c.exaggerationRelativeHeight!==s;if(u||f){if(u)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 Fat(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!l(i)&&l(e.parent)){let o=e.parent,r=o.data;l(r)&&l(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}i===!1&&(e.data.terrainState=uo.FAILED);for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function Bat(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===uo.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||or.processStateMachine(a,t,n,i,o,r,!0)),s.terrainState===uo.FAILED&&kat(s,e,t,n,e.x,e.y,e.level),s.terrainState===uo.UNLOADED&&Vat(s,n,e.x,e.y,e.level),s.terrainState===uo.RECEIVED&&zat(s,t,n,e.x,e.y,e.level),s.terrainState===uo.TRANSFORMED&&(Hat(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=uo.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)Wat(t.context,s);else{let u=s._findAncestorTileWithTerrainData(e);l(u)&&l(u.data.waterMaskTexture)&&(s.waterMaskTexture=u.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,u,s.waterMaskTranslationAndScale))}}function kat(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=ea.FAILED;return}let c=a.data.terrainData,u=a.x,f=a.y,d=a.level;if(!l(c))return;let p=c.upsample(i.tilingScheme,u,f,d,o,r,s);l(p)&&(e.terrainState=uo.RECEIVING,Promise.resolve(p).then(function(g){l(g)&&(e.terrainData=g,e.terrainState=uo.RECEIVED)}).catch(function(){e.terrainState=uo.FAILED}))}function Vat(e,t,n,i,o){function r(c){if(!l(c)){e.terrainState=uo.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=uo.RECEIVED,e.request=void 0}function s(c){if(e.request.state===Zn.CANCELLED){e.terrainData=void 0,e.terrainState=uo.UNLOADED,e.request=void 0;return}e.terrainState=uo.FAILED,e.request=void 0;let u=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=wo.reportError(t._requestError,t,t.errorEvent,u,n,i,o),t._requestError.retry&&a()}function a(){let c=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN});e.request=c;let u=t.requestTileGeometry(n,i,o,c);l(u)?(e.terrainState=uo.RECEIVING,Promise.resolve(u).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=uo.UNLOADED,e.request=void 0)}a()}var Uat={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function zat(e,t,n,i,o,r){let s=n.tilingScheme,a=Uat;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.verticalExaggeration,a.exaggerationRelativeHeight=t.verticalExaggerationRelativeHeight,a.throttle=!0;let u=e.terrainData.createMesh(a);l(u)&&(e.terrainState=uo.TRANSFORMING,Promise.resolve(u).then(function(f){e.mesh=f,e.terrainState=uo.TRANSFORMED}).catch(function(){e.terrainState=uo.FAILED}))}or._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=_t.createVertexBuffer({context:e,typedArray:n,usage:Fe.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!l(s)||s.isDestroyed()){let a=t.indices;s=_t.createIndexBuffer({context:e,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:Ne.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})};or._freeVertexArray=function(e){if(l(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),l(t)&&!t.isDestroyed()&&l(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function Hat(e,t,n,i,o,r,s){e.vertexArray=or._createVertexArrayForMesh(t,e.mesh),e.terrainState=uo.READY,e.fill=e.fill&&e.fill.destroy(s)}function Gat(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Pt.create({context:e,pixelFormat:Je.LUMINANCE,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function Wat(e,t){let n=t.terrainData.waterMask,i=Gat(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:Je.LUMINANCE,pixelDatatype:Ke.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)}or.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;l(t)&&(!l(t.data)||!l(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};or.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 ud=or;function T0(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ee.default),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new wi(this._ellipsoid),l(e.rectangleSouthwestInMeters)&&l(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new z(-i,-i),this._rectangleNortheastInMeters=new z(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new re(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(T0.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});T0.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};T0.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};T0.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(re.southwest(e)),o=n.project(re.northeast(e));return l(t)?(t.west=i.x,t.south=i.y,t.east=o.x,t.north=o.y,t):new re(i.x,i.y,o.x,o.y)};T0.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,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,f=this._rectangleNortheastInMeters.y-t*u,d=this._rectangleNortheastInMeters.y-(t+1)*u;return l(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new re(a,d,c,f)};T0.prototype.tileXYToRectangle=function(e,t,n,i){let o=this.tileXYToNativeRectangle(e,t,n,i),r=this._projection,s=r.unproject(new z(o.west,o.south)),a=r.unproject(new z(o.east,o.north));return o.west=s.longitude,o.south=s.latitude,o.east=a.longitude,o.north=a.latitude,o};T0.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!re.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,u=(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/u|0;return x>=r&&(x=r-1),l(n)?(n.x=m,n.y=x,n):new z(m,x)};var rs=T0;var TX,$ye="AAPTxy8BH1VEsoebNVZXo8HurEOF051kAEKlhkOhBEc9BmQpcUfxe1Yndhf82d5oKkQJ4_7VPaBQGYSISOMaRew7Sy-eTX1JQ4XwaC8v5aCvV72O6LCPs5Ss1pXXH-0uEw6bSRhTeQYHOmikutC2OMyZt6lu0VfT7FA-jVMO_UsunWNTf2cycP2O4IeDN_UV9G-VNmUu2jRvCHioi8o72ua4238s2219cYLEmcoGRJGVJTA.AT1_PjLvyih0",kS={};kS.defaultAccessToken=$ye;kS.defaultWorldImageryServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});kS.defaultWorldHillshadeServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});kS.defaultWorldOceanServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});kS.getDefaultTokenCredit=function(e){if(e===$ye){if(!l(TX)){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>';TX=new vt(t,!0)}return TX}};var Yu=kS;function CX(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=we.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=Ed(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,u=e.pixelsToCheck;for(let f=0,d=u.length;a&&f<d;++f){let p=u[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)}CX.prototype.isReady=function(){return this._isReady};CX.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=Ed(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 u=0;u<4;++u){let f=c+u;if(i[f]!==n[f])return!1}}return!0};var OF=CX;function AX(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}AX.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)}l(n)&&(this.name=e[n])};AX.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];l(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 Rh=AX;function VS(){he.throwInstantiationError()}Object.defineProperties(VS.prototype,{rectangle:{get:he.throwInstantiationError},tileWidth:{get:he.throwInstantiationError},tileHeight:{get:he.throwInstantiationError},maximumLevel:{get:he.throwInstantiationError},minimumLevel:{get:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},tileDiscardPolicy:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError},credit:{get:he.throwInstantiationError},proxy:{get:he.throwInstantiationError},hasAlphaChannel:{get:he.throwInstantiationError}});VS.prototype.getTileCredits=function(e,t,n){he.throwInstantiationError()};VS.prototype.requestImage=function(e,t,n,i){he.throwInstantiationError()};VS.prototype.pickFeatures=function(e,t,n,i,o){he.throwInstantiationError()};var jat=/\.ktx2$/i;VS.loadImage=function(e,t){let n=we.createIfNeeded(t);return jat.test(n.url)?Sl(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var fl=VS;var qat={SATELLITE:1,OCEANS:2,HILLSHADE:3},Oh=Object.freeze(qat);function Qye(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new Yi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new vt(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}Qye.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&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new OF({missingImageUrl:Jye(e,0,0,this.maximumLevel).url,pixelsToCheck:[new z(0,0),new z(200,20),new z(20,200),new z(80,110),new z(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function Yat(e,t){let n=e.tileInfo;if(!l(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 rs({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Yi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new ce(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new wi,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 re(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=re.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 ce(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new vt(e.copyrightText)]:t.credit=new vt(e.copyrightText))}function Xat(e,t){let n=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(n+=`: ${t.message}`),new ce(n)}async function Kat(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();Yat(i,t)}catch(i){Xat(e,i)}}function Zm(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 Yi({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 vt(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new me}Zm.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case Oh.SATELLITE:{n=y(t.token,Yu.defaultAccessToken),i=we.createIfNeeded(Yu.defaultWorldImageryServer),i.appendForwardSlash();let r=Yu.getDefaultTokenCredit(n);l(r)&&(o=vt.clone(r))}break;case Oh.OCEANS:{n=y(t.token,Yu.defaultAccessToken),i=we.createIfNeeded(Yu.defaultWorldOceanServer),i.appendForwardSlash();let r=Yu.getDefaultTokenCredit(n);l(r)&&(o=vt.clone(r))}break;case Oh.HILLSHADE:{n=y(t.token,Yu.defaultAccessToken),i=we.createIfNeeded(Yu.defaultWorldHillshadeServer),i.appendForwardSlash();let r=Yu.getDefaultTokenCredit(n);l(r)&&(o=vt.clone(r))}break;default:}return Zm.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function Jye(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 vi?(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(Zm.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}}});Zm.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new Zm(t);i._resource=n;let o=new Qye(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await Kat(n,o),o.build(i),i};Zm.prototype.getTileCredits=function(e,t,n){return this._tileCredits};Zm.prototype.requestImage=function(e,t,n,i){return fl.loadImage(this,Jye(this,e,t,n,i))};Zm.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 vi)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 u="visible";l(this._layers)&&(u+=`:${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:u};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],m=p.results;if(!l(m))return g;for(let x=0;x<m.length;++x){let b=m[x],T=new Rh;if(T.data=b,T.name=b.value,T.properties=b.attributes,T.configureDescriptionFromProperties(b.attributes),b.geometryType==="esriGeometryPoint"&&b.geometry){let C=b.geometry.spatialReference&&b.geometry.spatialReference.wkid?b.geometry.spatialReference.wkid:4326;if(C===4326||C===4283)T.position=fe.fromDegrees(b.geometry.x,b.geometry.y,b.geometry.z);else if(C===102100||C===900913||C===3857){let A=new wi;T.position=A.unproject(new h(b.geometry.x,b.geometry.y,b.geometry.z))}}g.push(T)}return g})};Zm._metadataCache={};var rg=Zm;var Zat={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"},US=Object.freeze(Zat);function MF(e){}MF.prototype.isReady=function(){return!0};MF.prototype.shouldDiscardImage=function(e){return MF.EMPTY_IMAGE===e};var QH;Object.defineProperties(MF,{EMPTY_IMAGE:{get:function(){return l(QH)||(QH=new Image,QH.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),QH}}});var zS=MF;function e0e(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}e0e.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 vt)break;o.credit=new vt(o.attribution);let r=o.coverageAreas;for(let s=0,a=o.coverageAreas.length;s<a;++s){let c=r[s],u=c.bbox;c.bbox=new re(P.toRadians(u[1]),P.toRadians(u[0]),P.toRadians(u[3]),P.toRadians(u[2]))}}};function $at(e,t){if(e.resourceSets.length!==1)throw new ce("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;let i=n.imageryProviders;l(n.imageryProviders)&&(i=n.imageryProviders.filter(o=>o.coverageAreas?.some(r=>l(r.bbox)))),t.attributionList=i}function Qat(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new ce(i)}async function Jat(e,t,n){let i=e.url,o=Ls._metadataCache[i];l(o)||(o=e.fetchJsonp("jsonp"),Ls._metadataCache[i]=o);try{let r=await o;return $at(r,t)}catch(r){Qat(e,r,n)}}function Ls(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,US.AERIAL),this._mapLayer=e.mapLayer,this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new zS),this._proxy=e.proxy,this._credit=new vt(`<a href="https://www.microsoft.com/en-us/maps/bing-maps/product"><img src="${Ls.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new rs({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 me}Object.defineProperties(Ls.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}},mapLayer:{get:function(){return this._mapLayer}},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 l(this.mapLayer)}}});Ls.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;l(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,US.AERIAL),o=we.createIfNeeded(e);o.appendForwardSlash();let r={incl:"ImageryProviders",key:t.key,uriScheme:n};l(t.mapLayer)&&(r.mapLayer=t.mapLayer),l(t.culture)&&(r.culture=t.culture);let s=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:r}),a=new Ls(t);a._resource=o;let c=new e0e(t);return await Jat(s,c),c.build(a),a};var ect=new re;Ls.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,ect);return ict(this._attributionList,n,i)};Ls.prototype.requestImage=function(e,t,n,i){let o=fl.loadImage(this,tct(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?zS.EMPTY_IMAGE:Promise.reject(r)})};Ls.prototype.pickFeatures=function(e,t,n,i,o){};Ls.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};Ls.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}};Ls._logoUrl=void 0;Object.defineProperties(Ls,{logoUrl:{get:function(){return l(Ls._logoUrl)||(Ls._logoUrl=nn("Assets/Images/bing_maps_credit.png")),Ls._logoUrl},set:function(e){Ls._logoUrl=e}}});function tct(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:Ls.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var nct=new re;function ict(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 u=0,f=s.coverageAreas.length;!c&&u<f;++u){let d=a[u];if(t>=d.zoomMin&&t<=d.zoomMax){let p=re.intersection(n,d.bbox,nct);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}Ls._metadataCache={};var LF=Ls;var t0e=/{[^}]+}/g,n0e={x:act,y:lct,z:dct,s:hct,reverseX:cct,reverseY:uct,reverseZ:fct,westDegrees:mct,southDegrees:pct,eastDegrees:_ct,northDegrees:gct,westProjected:yct,southProjected:xct,eastProjected:bct,northProjected:Tct,width:Cct,height:Act},oct=yt(n0e,{i:Ect,j:Sct,reverseI:vct,reverseJ:wct,longitudeDegrees:Ict,latitudeDegrees:Pct,longitudeProjected:Rct,latitudeProjected:Oct,format:Lct});function NF(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new me;let t=we.createIfNeeded(e.url),n=we.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():l(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 rs({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=re.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new vt(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=yt(n0e,r),a=yt(oct,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(NF.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}}});NF.prototype.getTileCredits=function(e,t,n){};NF.prototype.requestImage=function(e,t,n,i){return fl.loadImage(this,rct(this,e,t,n,i))};NF.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(u,f){return u.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let u=s._getFeatureInfoFormats[r],f=sct(s,e,t,n,i,o,u.format);return++r,u.type==="json"?f.fetchJson().then(u.callback).catch(c):u.type==="xml"?f.fetchXML().then(u.callback).catch(c):u.type==="text"||u.type==="html"?f.fetchText().then(u.callback).catch(c):f.fetch({responseType:u.format}).then(a.bind(void 0,u)).catch(c)}return c()};var JH=!1,Xu=new re,e8=!1,FF=new re;function rct(e,t,n,i,o){JH=!1,e8=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},u=s.match(t0e);return l(u)&&u.forEach(function(f){let d=f.substring(1,f.length-1);l(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var EX=!1,GS=new z,SX=!1;function sct(e,t,n,i,o,r,s){JH=!1,e8=!1,EX=!1,SX=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),u=e._pickFeaturesTags,f={},d=c.match(t0e);return l(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);l(u[g])&&(f[g]=u[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function WS(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 act(e,t,n,i){return WS(e,"{x}",t)}function cct(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return WS(e,"{reverseX}",o)}function lct(e,t,n,i){return WS(e,"{y}",n)}function uct(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return WS(e,"{reverseY}",o)}function fct(e,t,n,i){let o=e.maximumLevel,r=l(o)&&i<o?o-i-1:i;return WS(e,"{reverseZ}",r)}function dct(e,t,n,i){return WS(e,"{z}",i)}function hct(e,t,n,i){let o=(t+n+i)%e._subdomains.length;return e._subdomains[o]}function t8(e,t,n,i){JH||(e.tilingScheme.tileXYToRectangle(t,n,i,Xu),Xu.west=P.toDegrees(Xu.west),Xu.south=P.toDegrees(Xu.south),Xu.east=P.toDegrees(Xu.east),Xu.north=P.toDegrees(Xu.north),JH=!0)}function mct(e,t,n,i){return t8(e,t,n,i),Xu.west}function pct(e,t,n,i){return t8(e,t,n,i),Xu.south}function _ct(e,t,n,i){return t8(e,t,n,i),Xu.east}function gct(e,t,n,i){return t8(e,t,n,i),Xu.north}function n8(e,t,n,i){e8||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,FF),e8=!0)}function yct(e,t,n,i){return n8(e,t,n,i),FF.west}function xct(e,t,n,i){return n8(e,t,n,i),FF.south}function bct(e,t,n,i){return n8(e,t,n,i),FF.east}function Tct(e,t,n,i){return n8(e,t,n,i),FF.north}function Cct(e,t,n,i){return e.tileWidth}function Act(e,t,n,i){return e.tileHeight}function Ect(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),GS.x}function Sct(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),GS.y}function vct(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),e.tileWidth-GS.x-1}function wct(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),e.tileHeight-GS.y-1}var Dct=new re,HS=new h;function i8(e,t,n,i,o,r,s){if(EX)return;vX(e,t,n,i,o,r);let a=HS,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,Dct);GS.x=e.tileWidth*(a.x-c.west)/c.width|0,GS.y=e.tileHeight*(c.north-a.y)/c.height|0,EX=!0}function Ict(e,t,n,i,o,r,s){return P.toDegrees(o)}function Pct(e,t,n,i,o,r,s){return P.toDegrees(r)}function Rct(e,t,n,i,o,r,s){return vX(e,t,n,i,o,r),HS.x}function Oct(e,t,n,i,o,r,s){return vX(e,t,n,i,o,r),HS.y}var Mct=new fe;function vX(e,t,n,i,o,r,s){if(!SX){if(e.tilingScheme.projection instanceof vi)HS.x=P.toDegrees(o),HS.y=P.toDegrees(r);else{let a=Mct;a.longitude=o,a.latitude=r,e.tilingScheme.projection.project(a,HS)}SX=!0}}function Lct(e,t,n,i,o,r,s){return s}var Ha=NF;function fd(e){Ha.call(this,e)}fd._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return fd._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof $h)return fd._metadataFailure(e,t);throw o}};fd.fromUrl=async function(e,t){let n=we.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await fd._requestMetadata(t,i,o);return new fd(r)};l(Object.create)&&(fd.prototype=Object.create(Ha.prototype),fd.prototype.constructor=fd);function i0e(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 o0e(e,t,n){let i=e.positionToTileXY(re.southwest(t),n),o=e.positionToTileXY(re.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}fd._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,u,f,d,p=[],g=e.childNodes[0].childNodes;for(let R=0;R<g.length;R++)if(r.test(g.item(R).nodeName))u=g.item(R);else if(a.test(g.item(R).nodeName)){d=g.item(R);let M=g.item(R).childNodes;for(let N=0;N<M.length;N++)s.test(M.item(N).nodeName)&&p.push(M.item(N))}else c.test(g.item(R).nodeName)&&(f=g.item(R));let m;if(!l(d)||!l(f))throw m=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,l(o)&&wo.reportError(void 0,o,o.errorEvent,m),new ce(m);let x=y(t.fileExtension,u.getAttribute("extension")),b=y(t.tileWidth,parseInt(u.getAttribute("width"),10)),T=y(t.tileHeight,parseInt(u.getAttribute("height"),10)),C=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),A=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),E=d.getAttribute("profile"),v=t.tilingScheme;if(!l(v))if(E==="geodetic"||E==="global-geodetic")v=new Yi({ellipsoid:t.ellipsoid});else if(E==="mercator"||E==="global-mercator")v=new rs({ellipsoid:t.ellipsoid});else throw m=`${i.url} specifies an unsupported profile attribute, ${E}.`,l(o)&&wo.reportError(void 0,o,o.errorEvent,m),new ce(m);let D=re.clone(t.rectangle);if(!l(D)){let R,M,N,_;y(t.flipXY,!1)?(N=new z(parseFloat(f.getAttribute("miny")),parseFloat(f.getAttribute("minx"))),_=new z(parseFloat(f.getAttribute("maxy")),parseFloat(f.getAttribute("maxx")))):(N=new z(parseFloat(f.getAttribute("minx")),parseFloat(f.getAttribute("miny"))),_=new z(parseFloat(f.getAttribute("maxx")),parseFloat(f.getAttribute("maxy"))));let w=E==="geodetic"||E==="mercator";if(v.projection instanceof vi||w)R=fe.fromDegrees(N.x,N.y),M=fe.fromDegrees(_.x,_.y);else{let I=v.projection;R=I.unproject(N),M=I.unproject(_)}D=new re(R.longitude,R.latitude,M.longitude,M.latitude)}return D=i0e(D,v),C=o0e(v,D,C),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${x}`}),tilingScheme:v,rectangle:D,tileWidth:b,tileHeight:T,minimumLevel:C,maximumLevel:A,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};fd._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),o=y(e.tileHeight,256),r=e.maximumLevel,s=l(e.tilingScheme)?e.tilingScheme:new rs({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=i0e(a,s);let c=o0e(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 C0=fd;function r0e(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}r0e.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function Nct(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(!l(i)){let o=`Could not find layer with channel (id) of ${t.channel}.`;throw new ce(o)}if(!l(i.version)){let o=`Could not find a version in channel (id) ${t.channel}.`;throw new ce(o)}if(t.version=i.version,l(n.projection)&&n.projection==="flat")t.tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!l(n.projection)||n.projection==="mercator")t.tilingScheme=new rs({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let o=`Unsupported projection ${n.projection}.`;throw new ce(o)}return!0}function Fct(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw l(e)&&l(e.message)&&(i+=`: ${e.message}`),wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new ce(i)}async function Bct(e,t,n){try{let i=await e.fetchText();Nct(i,t)}catch(i){Fct(i,e,n)}}function Jl(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 vt(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${Jl.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 me}Object.defineProperties(Jl.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}}});Jl.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=we.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 r0e(n);s.channel=t,await Bct(r,s);let a=new Jl(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};Jl.prototype.getTileCredits=function(e,t,n){};Jl.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 fl.loadImage(this,o)};Jl.prototype.pickFeatures=function(e,t,n,i,o){};Jl._logoUrl=void 0;Object.defineProperties(Jl,{logoUrl:{get:function(){return l(Jl._logoUrl)||(Jl._logoUrl=nn("Assets/Images/google_earth_credit.png")),Jl._logoUrl},set:function(e){Jl._logoUrl=e}}});var BF=Jl;var kct=/\/$/,s0e=new vt('&copy; <a href="https://www.mapbox.com/about/maps/">Mapbox</a> &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function jS(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=we.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();kct.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new vt(s))):s=s0e,this._resource=i,this._imageryProvider=new Ha({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(jS.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}}});jS.prototype.getTileCredits=function(e,t,n){};jS.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};jS.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};jS._defaultCredit=s0e;var kF=jS;function OT(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,re.MAX_VALUE),n=new Yi({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 me;let i=e.credit;typeof i=="string"&&(i=new vt(i)),this._credit=i;let o=we.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(OT.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 Vct(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=wo.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return wX(e,n,r);throw l(n)&&(n._hasError=!0),new ce(o)}async function wX(e,t,n){try{return await fl.loadImage(null,e)}catch(i){return Vct(e,i,t,n)}}OT.fromUrl=async function(e,t){let n=we.createIfNeeded(e),i=await wX(n);t=y(t,y.EMPTY_OBJECT);let o=new OT({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};OT.prototype.getTileCredits=function(e,t,n){};OT.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await wX(this._resource,this);return this._image=o,wo.reportSuccess(this._errorEvent),o}return this._image};OT.prototype.pickFeatures=function(e,t,n,i,o){};var VF=OT;function Uct(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=zct:e==="xml"?n=jct:(e==="html"||e==="text")&&(n=a0e)),this.callback=n}function zct(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let o=n[i],r=new Rh;if(r.data=o,r.properties=o.properties,r.configureNameFromProperties(o.properties),r.configureDescriptionFromProperties(o.properties),l(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 DX="http://www.mapinfo.com/mxp",Hct="http://www.esri.com/wms",Gct="http://www.opengis.net/wfs",Wct="http://www.opengis.net/gml";function jct(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===DX)return qct(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===Hct)return Yct(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===Gct)return Xct(e);if(t.localName==="ServiceExceptionReport")throw new ce(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?Kct(e):Zct(e)}function qct(e){let t=[],i=e.documentElement.getElementsByTagNameNS(DX,"Feature");for(let o=0;o<i.length;++o){let r=i[o],s={},a=r.getElementsByTagNameNS(DX,"Val");for(let u=0;u<a.length;++u){let f=a[u];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new Rh;c.data=r,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function Yct(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 u=a[c];i[u.name]=u.value}n.push(o8(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 u=0;u<c.length;++u){let f=c[u];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push(o8(a,i))}}return n}function Xct(e){let t=[],i=e.documentElement.getElementsByTagNameNS(Wct,"featureMember");for(let o=0;o<i.length;++o){let r=i[o],s={};IX(r,s),t.push(o8(r,s))}return t}function Kct(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(!l(n))throw new ce("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={};IX(s,a),t.push(o8(s,a))}}return t}function IX(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()&&IX(o,t)&&(t[o.localName]=o.textContent)}return n}function o8(e,t){let n=new Rh;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function Zct(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let o=new Rh;return o.data=e,o.description=n.innerHTML,[o]}var $ct=/<body>\s*<\/body>/im,Qct=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,Jct=/<title>([\s\S]*)<\/title>/im;function a0e(e){if($ct.test(e)||Qct.test(e))return;let t,n=Jct.exec(e);n&&n.length>1&&(t=n[1]);let i=new Rh;return i.name=t,i.description=e,i.data=e,[i]}var MT=Uct;function UF(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(UF.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)}}});UF.prototype.getFromCache=function(e,t,n,i){let o=c0e(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};UF.prototype.checkApproachingInterval=function(e,t,n,i){let o=c0e(e,t,n),r=this._tilesRequestedForInterval,s=l0e(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!u0e(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};UF.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=l0e(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=u0e(this,c,r),a||s.push(c)}}};function c0e(e,t,n){return`${e}-${t}-${n}`}function elt(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function l0e(e){let t=e._times;if(!l(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=Z.secondsDifference(c.stop,i),++a):(s=Z.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function u0e(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=elt(s),c=new Ko({throttle:!1,throttleByServer:!0,type:fs.IMAGERY,priorityFunction:t.priorityFunction}),u=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(u)?(r[s]={promise:u,request:c},!0):!1}var LT=UF;var tlt=[3034,3035,3042,3043,3044],nlt=[4471,4559];function Mh(e){if(e=y(e,y.EMPTY_OBJECT),l(e.times)&&!l(e.clock))throw new he("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=we.createIfNeeded(e.url),n=we.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Mh.DefaultParameters,!0),n.setQueryParameters(Mh.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters(f0e(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters(f0e(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new LT({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,u,f){return d0e(i,s,a,c,u,f)},reloadFunction:function(){l(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 wi?"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&&!nlt.includes(a)||tlt.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof wi?"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 Ha({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new Yi({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,Mh.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function d0e(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function ilt(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Mh.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}}});Mh.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Mh.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=d0e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Mh.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return ilt(this,e,t,n,i,o,s)};Mh.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Mh.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Mh.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new MT("json","application/json")),Object.freeze(new MT("xml","text/xml")),Object.freeze(new MT("text","text/html"))]);function f0e(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var zF=Mh;var olt=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function HF(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=we.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!l(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(olt),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=l(e.tilingScheme)?e.tilingScheme:new rs({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,l(e.times)&&(this._timeDynamicImagery=new LT({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,m,x){return h0e(s,d,p,g,m,x)},reloadFunction:function(){l(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(re.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(re.northeast(this._rectangle),this._minimumLevel),u=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new me;let f=e.credit;this._credit=typeof f=="string"?new vt(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():l(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function h0e(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=l(s)?s[i]:i.toString(),c=e._subdomains,u=e._dimensions,f=l(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),l(u)&&d.setTemplateValues(u),l(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,l(u)&&(g=yt(g,u)),l(f)&&(g=yt(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return fl.loadImage(e,d)}Object.defineProperties(HF.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,l(this._reload)&&this._reload())}}});HF.prototype.getTileCredits=function(e,t,n){};HF.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=h0e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};HF.prototype.pickFeatures=function(e,t,n,i,o){};var GF=HF;var rlt={ARCGIS_MAPSERVER:rg.fromUrl,BING:async(e,t)=>LF.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,BF.fromUrl(e,n,t)},MAPBOX:(e,t)=>new kF({url:e,...t}),SINGLE_TILE:VF.fromUrl,TMS:C0.fromUrl,URL_TEMPLATE:(e,t)=>new Ha({url:e,...t}),WMS:(e,t)=>new zF({url:e,...t}),WMTS:(e,t)=>new GF({url:e,...t})};function $m(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 me}Object.defineProperties($m.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(){}}});$m.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=xu._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=$m._endpointCache[i];l(o)||(o=n.fetchJson(),$m._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new ce(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!l(a))s=await C0.fromUrl(new xu(r,n));else{let u=rlt[a];if(!l(u))throw new ce(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await u(d,f)}let c=new $m(t);return s.errorEvent.addEventListener(function(u){u.provider=c,c._errorEvent.raiseEvent(u)}),c._tileCredits=xu.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};$m.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};$m.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};$m.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};$m._endpointCache={};var sg=$m;var slt={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},ag=Object.freeze(slt);function alt(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ag.AERIAL);return sg.fromAssetId(t)}var cg=alt;var WF=`uniform sampler2D u_texture;

in vec2 v_textureCoordinates;

void main()
{
    out_FragColor = texture(u_texture, v_textureCoordinates);
}
`;var jF=`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 qS(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=ai.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}qS.createPlaceholder=function(e){let t=new qS(e,0,0,0);return t.addReference(),t.state=ai.PLACEHOLDER,t};qS.prototype.addReference=function(){++this.referenceCount};qS.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};qS.prototype.processStateMachine=function(e,t,n){this.state===ai.UNLOADED&&!n&&(this.state=ai.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ai.RECEIVED&&(this.state=ai.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ai.READY&&t&&!this.texture;(this.state===ai.TEXTURE_LOADED||i)&&(this.state=ai.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var YS=qS;function PX(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}PX.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};PX.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ai.READY)return l(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(;l(r)&&(r.state!==ai.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==ai.FAILED&&r.state!==ai.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ai.FAILED||i.state===ai.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var XS=PX;function bi(e,t){this._imageryProvider=e,this._readyEvent=new me,this._errorEvent=new me,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,bi.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,bi.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,bi.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,bi.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,bi.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,bi.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,bi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,bi.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,re.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new XS(YS.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,bi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(bi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});bi.DEFAULT_BRIGHTNESS=1;bi.DEFAULT_CONTRAST=1;bi.DEFAULT_HUE=0;bi.DEFAULT_SATURATION=1;bi.DEFAULT_GAMMA=1;bi.DEFAULT_SPLIT=Nr.NONE;bi.DEFAULT_MINIFICATION_FILTER=Zt.LINEAR;bi.DEFAULT_MAGNIFICATION_FILTER=di.LINEAR;bi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;bi.fromProviderAsync=function(e,t){let n=new bi(void 0,t);return dlt(n,Promise.resolve(e)),n};bi.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),bi.fromProviderAsync(cg({style:e.style}),e)};bi.prototype.isBaseLayer=function(){return this._isBaseLayer};bi.prototype.isDestroyed=function(){return!1};bi.prototype.destroy=function(){return ue(this)};var _0e=new re,m0e=new re,RX=new re,g0e=new re;bi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return re.intersection(e.rectangle,t)};bi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(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 wi&&e.rectangle.north<wi.MaximumLatitude&&e.rectangle.south>-wi.MaximumLatitude,s=re.intersection(o.rectangle,this._rectangle,_0e),a=re.intersection(e.rectangle,s,m0e);if(!l(a)){if(!this.isBaseLayer())return!1;let w=s,I=e.rectangle;a=m0e,I.south>=w.north?a.north=a.south=w.north:I.north<=w.south?a.north=a.south=w.south:(a.south=Math.max(I.south,w.south),a.north=Math.min(I.north,w.north)),I.west>=w.east?a.west=a.east=w.east:I.east<=w.west?a.west=a.east=w.west:(a.west=Math.max(I.west,w.west),a.east=Math.min(I.east,w.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=ult(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),l(o.minimumLevel)){let w=o.minimumLevel;d<w&&(d=w)}let g=o.tilingScheme,m=g.positionToTileXY(re.northwest(a),d),x=g.positionToTileXY(re.southeast(a),d),b=e.rectangle.width/512,T=e.rectangle.height/512,C=g.tileXYToRectangle(m.x,m.y,d);Math.abs(C.south-e.rectangle.north)<T&&m.y<x.y&&++m.y,Math.abs(C.east-e.rectangle.west)<b&&m.x<x.x&&++m.x;let A=g.tileXYToRectangle(x.x,x.y,d);Math.abs(A.north-e.rectangle.south)<T&&x.y>m.y&&--x.y,Math.abs(A.west-e.rectangle.east)<b&&x.x>m.x&&--x.x;let E=re.clone(e.rectangle,g0e),v=g.tileXYToRectangle(m.x,m.y,d),D=re.intersection(v,s,RX),O;r?(g.rectangleToNativeRectangle(E,E),g.rectangleToNativeRectangle(v,v),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),b=E.width/512,T=E.height/512):O=g.tileXYToRectangle.bind(g);let R,M=0,N=1,_;!this.isBaseLayer()&&Math.abs(D.west-E.west)>=b&&(M=Math.min(1,(D.west-E.west)/E.width)),!this.isBaseLayer()&&Math.abs(D.north-E.north)>=T&&(N=Math.max(0,(D.north-E.south)/E.height));let S=N;for(let w=m.x;w<=x.x;w++)if(R=M,v=O(w,m.y,d),D=re.simpleIntersection(v,s,RX),!!l(D)){M=Math.min(1,(D.east-E.west)/E.width),w===x.x&&(this.isBaseLayer()||Math.abs(D.east-E.east)<b)&&(M=1),N=S;for(let I=m.y;I<=x.y;I++){if(_=N,v=O(w,I,d),D=re.simpleIntersection(v,s,RX),!l(D))continue;N=Math.max(0,(D.south-E.south)/E.height),I===x.y&&(this.isBaseLayer()||Math.abs(D.south-E.south)<T)&&(N=0);let L=new oe(R,N,M,_),B=this.getImageryFromCache(w,I,d);i.imagery.splice(n,0,new XS(B,L,r)),++n}}return!0};bi.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,_0e),i=c.rectangleToNativeRectangle(i,g0e)}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)};bi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=ai.RECEIVED,e.request=void 0,wo.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===Zn.CANCELLED){e.state=ai.UNLOADED,e.request=void 0;return}e.state=ai.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=wo.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:fs.IMAGERY});e.request=s,e.state=ai.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=ai.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};bi.prototype._createTextureWebGL=function(e,t){let n=new $t({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(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?Je.RGBA:Je.RGB,sampler:n})};bi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=ai.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ai.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof wi?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ai.TEXTURE_LOADED};function p0e(e,t,n){return`${e}:${t}:${n}`}bi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===Zt.LINEAR&&i===di.LINEAR&&!Je.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=Zt.LINEAR_MIPMAP_LINEAR;let r=kt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=p0e(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let u=c[a];l(u)||(u=c[a]=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(rm.NICEST),t.sampler=u}else{let r=p0e(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};bi.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 vi)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Nc({persists:!0,owner:this,preExecute:function(c){llt(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ai.READY,t.releaseReference()},canceled:function(){t.state=ai.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ai.READY};bi.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};bi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};bi.prototype.getImageryFromCache=function(e,t,n,i){let o=y0e(e,t,n),r=this._imageryCache[o];return l(r)||(r=new YS(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};bi.prototype.removeImageryFromCache=function(e){let t=y0e(e.x,e.y,e.level);delete this._imageryCache[t]};function y0e(e,t,n){return JSON.stringify([e,t,n])}var r8={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new z,texture:void 0},clt=Ht.supportsTypedArrays()?new Float32Array(2*64):void 0;function llt(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(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 C={position:0,webMercatorT:1},A=os.getRegularGridIndices(2,64),E=_t.createIndexBuffer({context:t,typedArray:A,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});o.vertexArray=new ti({context:t,attributes:[{index:C.position,vertexBuffer:_t.createVertexBuffer({context:t,typedArray:b,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:C.webMercatorT,vertexBuffer:_t.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:E});let v=new Ue({sources:[jF]});o.shaderProgram=Qt.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:WF,attributeLocations:C}),o.sampler=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;r8.textureDimensions.x=r,r8.textureDimensions.y=s,r8.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(rm.NICEST);let p=i.south,g=i.north,m=clt,x=0;for(let b=0;b<64;++b){let T=b/63,C=P.lerp(p,g,T);a=Math.sin(C);let E=(.5*Math.log((1+a)/(1-a))-c)*f;m[x++]=E,m[x++]=E}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(m),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=r8,e.vertexArray=o.vertexArray}function ult(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof vi?1:Math.cos(n),a=o.rectangle,u=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(u)/Math.log(2);return Math.round(f)|0}function flt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function dlt(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){flt(e._errorEvent,i)}}var Ga=bi;var hlt={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},_n=hlt;var x0e={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>=x0e.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Xn=x0e;function ZS(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}ZS.prototype.update=function(e,t,n){this.changedThisFrame&&(v0e(e,t,this.tile,n),this.changedThisFrame=!1)};ZS.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};ZS.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):ud._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var mlt=new my;ZS.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=mlt;a.clear();for(let u=0;u<t.length;++u){let f=t[u];l(f.data.vertexArray)&&a.enqueue(t[u])}let c=a.dequeue();for(;c!==void 0;){let u=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);Ns(e,n,c,u,s,_n.EAST,!1,a,i),Ns(e,n,c,f,s,_n.NORTH,!1,a,i),Ns(e,n,c,d,s,_n.WEST,!1,a,i),Ns(e,n,c,p,s,_n.SOUTH,!1,a,i);let g=u.findTileToNorth(r),m=u.findTileToSouth(r),x=d.findTileToNorth(r),b=d.findTileToSouth(r);Ns(e,n,c,g,s,_n.SOUTHEAST,!1,a,i),Ns(e,n,c,x,s,_n.SOUTHWEST,!1,a,i),Ns(e,n,c,m,s,_n.NORTHEAST,!1,a,i),Ns(e,n,c,b,s,_n.NORTHWEST,!1,a,i),c=a.dequeue()}};function Ns(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let u=i;for(;u&&(u._lastSelectionResultFrame!==o||Xn.wasKicked(u._lastSelectionResult)||Xn.originalResult(u._lastSelectionResult)===Xn.CULLED);){if(s)return;let f=u.parent;if(r>=_n.NORTHWEST&&f!==void 0)switch(r){case _n.NORTHWEST:u=u===f.northwestChild?f:void 0;break;case _n.NORTHEAST:u=u===f.northeastChild?f:void 0;break;case _n.SOUTHWEST:u=u===f.southwestChild?f:void 0;break;case _n.SOUTHEAST:u=u===f.southeastChild?f:void 0;break}else u=f}if(u!==void 0){if(u._lastSelectionResult===Xn.RENDERED){if(l(u.data.vertexArray))return;plt(e,t,n,u,r,o,a,c);return}if(Xn.originalResult(i._lastSelectionResult)!==Xn.CULLED)switch(r){case _n.WEST:Ns(e,t,n,i.northwestChild,o,r,!0,a,c),Ns(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.EAST:Ns(e,t,n,i.southeastChild,o,r,!0,a,c),Ns(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTH:Ns(e,t,n,i.southwestChild,o,r,!0,a,c),Ns(e,t,n,i.southeastChild,o,r,!0,a,c);break;case _n.NORTH:Ns(e,t,n,i.northeastChild,o,r,!0,a,c),Ns(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHWEST:Ns(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHEAST:Ns(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTHWEST:Ns(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.SOUTHEAST:Ns(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new he("Invalid edge")}}}function plt(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new ZS(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),_lt(e,t,n,i,o,a)}function _lt(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(v0e(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let u,f;switch(o){case _n.WEST:u=s.westMeshes,f=s.westTiles;break;case _n.SOUTH:u=s.southMeshes,f=s.southTiles;break;case _n.EAST:u=s.eastMeshes,f=s.eastTiles;break;case _n.NORTH:u=s.northMeshes,f=s.northTiles;break;case _n.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case _n.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case _n.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case _n.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||u[0]!==a||u.length!==1,u[0]=a,f[0]=n,u.length=1,f.length=1;return}let d,p,g,m,x=n.rectangle,b,T=i.rectangle;switch(o){case _n.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 _n.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 _n.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 _n.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||u[d]!==a,u[d]=a,f[d]=n):(s.changedThisFrame=!0,u.splice(d,p-d,a),f.splice(d,p-d,n))}var NT=new fe,glt=new fe,KS=new h,NX=new h,OX=new z,MX=new z,Ku=new z;function d8(){this.height=0,this.encodedNormal=new z}function s8(e,t,n,i,o,r,s,a,c){if(l(o))return o;let u;if(l(r)&&l(s))u=(r.height+s.height)*.5;else if(l(r))u=r.height;else if(l(s))u=s.height;else if(l(a))u=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;l(d)&&(p=d.minimumHeight,g=d.maximumHeight),u=(p+g)*.5}return w0e(e,t,n,i,u,c),c}var ylt={minimumHeight:0,maximumHeight:0},xlt=new h,b0e=new d8,T0e=new d8,C0e=new d8,A0e=new d8,blt=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,Tlt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function v0e(e,t,n,i){ud.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.verticalExaggeration,c=t.verticalExaggerationRelativeHeight,u=a!==1,f=n.tilingScheme.ellipsoid,d=c8(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,C0e),p=c8(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,b0e),g=c8(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,T0e),m=c8(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,A0e);d=s8(r,f,0,1,d,p,m,g,C0e),p=s8(r,f,0,0,p,d,g,m,b0e),g=s8(r,f,1,1,g,p,m,d,T0e),m=s8(r,f,1,1,m,g,d,p,A0e);let x=p.height,b=g.height,T=d.height,C=m.height,A=Math.min(x,b,T,C),E=Math.max(x,b,T,C),v=(A+E)*.5,D,O,R=e.getLevelMaximumGeometricError(n.level),M=f.maximumRadius-R,N=Math.acos(M/f.maximumRadius)*4;if(N*=1.5,s.width>N&&E-A<=R){let w=new za({width:9,height:9,buffer:blt,structure:{heightOffset:E}}),I=Tlt;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=w._createMeshSync(I)}else{let w=u,I=re.center(s,glt);I.height=v;let L=f.cartographicToCartesian(I,xlt),B=new Sc(L,void 0,void 0,void 0,void 0,!0,!0,w,a,c),U=5,V;for(V=r.westMeshes,D=0,O=V.length;D<O;++D)U+=V[D].eastIndicesNorthToSouth.length;for(V=r.southMeshes,D=0,O=V.length;D<O;++D)U+=V[D].northIndicesWestToEast.length;for(V=r.eastMeshes,D=0,O=V.length;D<O;++D)U+=V[D].westIndicesSouthToNorth.length;for(V=r.northMeshes,D=0,O=V.length;D<O;++D)U+=V[D].southIndicesEastToWest.length;let G=ylt;G.minimumHeight=A,G.maximumHeight=E;let k=B.stride,W=new Float32Array(U*k),q=0,J=q;q=a8(f,s,B,W,q,0,1,d.height,d.encodedNormal,1,G),q=u8(r,f,B,W,q,r.westTiles,r.westMeshes,_n.EAST,G);let j=q;q=a8(f,s,B,W,q,0,0,p.height,p.encodedNormal,0,G),q=u8(r,f,B,W,q,r.southTiles,r.southMeshes,_n.NORTH,G);let K=q;q=a8(f,s,B,W,q,1,0,g.height,g.encodedNormal,0,G),q=u8(r,f,B,W,q,r.eastTiles,r.eastMeshes,_n.WEST,G);let Q=q;q=a8(f,s,B,W,q,1,1,m.height,m.encodedNormal,1,G),q=u8(r,f,B,W,q,r.northTiles,r.northMeshes,_n.SOUTH,G),A=G.minimumHeight,E=G.maximumHeight;let de=vn.fromRectangle(s,A,E,n.tilingScheme.ellipsoid),ye=wi.geodeticLatitudeToMercatorAngle(s.south),ae=1/(wi.geodeticLatitudeToMercatorAngle(s.north)-ye),_e=(wi.geodeticLatitudeToMercatorAngle(I.latitude)-ye)*ae,xe=f.geodeticSurfaceNormalCartographic(NT,NX),De=Mn.octEncode(xe,OX),Ae=q;B.encode(W,q*k,de.center,z.fromElements(.5,.5,Ku),v,De,_e,xe),++q;let ke=q,ze=ke<256?1:2,tt=(ke-1)*3,wt=tt*ze,pt=(W.length-ke*k)*Float32Array.BYTES_PER_ELEMENT,Be;if(pt>=wt){let Te=ke*k*Float32Array.BYTES_PER_ELEMENT;Be=ke<256?new Uint8Array(W.buffer,Te,tt):new Uint16Array(W.buffer,Te,tt)}else Be=ke<256?new Uint8Array(tt):new Uint16Array(tt);W=new Float32Array(W.buffer,0,ke*k);let Yt=0;for(D=0;D<ke-2;++D)Be[Yt++]=Ae,Be[Yt++]=D,Be[Yt++]=D+1;Be[Yt++]=Ae,Be[Yt++]=D,Be[Yt++]=0;let Ct=[];for(D=j;D>=J;--D)Ct.push(D);let lt=[];for(D=K;D>=j;--D)lt.push(D);let tn=[];for(D=Q;D>=K;--D)tn.push(D);let Ce=[];for(Ce.push(0),D=Ae-1;D>=Q;--D)Ce.push(D);r.mesh=new ld(B.center,W,Be,tt,ke,A,E,se.fromOrientedBoundingBox(de),Dlt(e,de.center,s,A,E),B.stride,de,B,Ct,lt,tn,Ce)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=ud._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let S=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let w=o._findAncestorTileWithTerrainData(n);l(w)&&l(w.data.waterMaskTexture)&&(r.waterMaskTexture=w.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,w,r.waterMaskTranslationAndScale))}l(S)&&(--S.referenceCount,S.referenceCount===0&&S.destroy())}function a8(e,t,n,i,o,r,s,a,c,u,f){let d=NT;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,KS),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,NX));let m=MX;return m.x=r,m.y=s,n.encode(i,o*n.stride,p,m,a,c,u,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var f8=new re;function qF(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=re.clone(e.rectangle,f8),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=re.clone(e.rectangle,f8),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,u=o.north-o.south,f=(r.south-o.south)/u,d=(r.north-o.south)/u,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 Clt=new z;function LX(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 Alt=new z,Elt=new h;function Slt(e,t,n,i,o,r,s,a,c,u){let f=i.encoding,d=i.vertices,p=qF(t,n,f.decodeTextureCoordinates(d,o,Ku),Ku),g=qF(t,n,f.decodeTextureCoordinates(d,r,MX),MX),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;NT.longitude=P.lerp(T.west,T.east,s),NT.latitude=P.lerp(T.south,T.north,a),u.height=NT.height=P.lerp(x,b,m);let C;if(f.hasVertexNormals){let A=f.getOctEncodedNormal(d,o,Clt),E=f.getOctEncodedNormal(d,r,Alt),v=Mn.octDecode(A.x,A.y,KS),D=Mn.octDecode(E.x,E.y,Elt);C=h.lerp(v,D,m,KS),h.normalize(C,C),Mn.octEncode(C,u.encodedNormal)}else C=e.geodeticSurfaceNormalCartographic(NT,KS),Mn.octEncode(C,u.encodedNormal)}function w0e(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(NT,KS);Mn.octEncode(s,r.encodedNormal)}function c8(e,t,n,i,o,r,s,a,c,u,f){if(S0e(e,t,a,s,!1,n,i,f)||S0e(e,t,u,c,!0,n,i,f))return f;let p;if(FX(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],LX(r,p,n,i,f),f;let g;if(n===0?i===0?g=l8(e.westMeshes,e.westTiles,_n.EAST,e.southMeshes,e.southTiles,_n.NORTH,n,i):g=l8(e.northMeshes,e.northTiles,_n.SOUTH,e.westMeshes,e.westTiles,_n.EAST,n,i):i===0?g=l8(e.southMeshes,e.southTiles,_n.NORTH,e.eastMeshes,e.eastTiles,_n.WEST,n,i):g=l8(e.eastMeshes,e.eastTiles,_n.WEST,e.northMeshes,e.northTiles,_n.SOUTH,n,i),l(g))return w0e(e,t,n,i,g,f),f}function l8(e,t,n,i,o,r,s,a){let c=E0e(e,t,!1,n,s,a),u=E0e(i,o,!0,r,s,a);return l(c)&&l(u)?(c+u)*.5:l(c)?c:u}function u8(e,t,n,i,o,r,s,a,c){for(let u=0;u<r.length;++u)o=vlt(e,t,n,i,o,r[u],s[u],a,c);return o}function vlt(e,t,n,i,o,r,s,a,c){let u=r.rectangle;a===_n.EAST&&e.tile.x===0?(u=re.clone(r.rectangle,f8),u.west-=P.TWO_PI,u.east-=P.TWO_PI):a===_n.WEST&&r.x===0&&(u=re.clone(r.rectangle,f8),u.west+=P.TWO_PI,u.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Ku),d=Ku.x,p=Ku.y);let g,m;switch(a){case _n.WEST:g=s.westIndicesSouthToNorth,m=!1;break;case _n.NORTH:g=s.northIndicesWestToEast,m=!0;break;case _n.EAST:g=s.eastIndicesNorthToSouth,m=!1;break;case _n.SOUTH:g=s.southIndicesEastToWest,m=!0;break}let x=r,b=e.tile,T=s.encoding,C=s.vertices,A=n.stride,E,v;T.hasWebMercatorT&&(E=wi.geodeticLatitudeToMercatorAngle(f.south),v=1/(wi.geodeticLatitudeToMercatorAngle(f.north)-E));for(let D=0;D<g.length;++D){let O=g[D],R=T.decodeTextureCoordinates(C,O,Ku);qF(x,b,R,R);let M=R.x,N=R.y,_=m?M:N;if(_<0||_>1||Math.abs(M-d)<P.EPSILON5&&Math.abs(N-p)<P.EPSILON5)continue;let S=Math.abs(M)<P.EPSILON5||Math.abs(M-1)<P.EPSILON5,w=Math.abs(N)<P.EPSILON5||Math.abs(N-1)<P.EPSILON5;if(S&&w)continue;let I=T.decodePosition(C,O,KS),L=T.decodeHeight(C,O),B;T.hasVertexNormals?B=T.getOctEncodedNormal(C,O,OX):(B=OX,B.x=0,B.y=0);let U=N;if(T.hasWebMercatorT){let G=P.lerp(f.south,f.north,N);U=(wi.geodeticLatitudeToMercatorAngle(G)-E)*v}let V;n.hasGeodeticSurfaceNormals&&(V=t.geodeticSurfaceNormal(I,NX)),n.encode(i,o*A,I,R,L,B,U,V),c.minimumHeight=Math.min(c.minimumHeight,L),c.maximumHeight=Math.max(c.maximumHeight,L),++o}return o}function E0e(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 u=s;u!==a;u+=c){let f=e[u],d=t[u];if(!FX(d,f))continue;let p;switch(i){case _n.WEST:p=f.westIndicesSouthToNorth;break;case _n.SOUTH:p=f.southIndicesEastToWest;break;case _n.EAST:p=f.eastIndicesNorthToSouth;break;case _n.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(l(g))return f.encoding.decodeHeight(f.vertices,g)}}function FX(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function S0e(e,t,n,i,o,r,s,a){let c,u,f,d,p,g=i[o?0:n.length-1],m=n[o?0:n.length-1];if(FX(g,m)&&(r===0?s===0?(c=o?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,u=o,f=o):(c=o?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,u=!o,f=!1):s===0?(c=o?m.westIndicesSouthToNorth:m.northIndicesWestToEast,u=!o,f=!0):(c=o?m.southIndicesEastToWest:m.westIndicesSouthToNorth,u=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],m.encoding.decodeTextureCoordinates(m.vertices,p,Ku);let x=qF(g,e.tile,Ku,Ku);if(x.x===r&&x.y===s)return LX(m,p,r,s,a),!0;if(d=Po(c,u?r:s,function(b,T){m.encoding.decodeTextureCoordinates(m.vertices,b,Ku);let C=qF(g,e.tile,Ku,Ku);return f?u?C.x-r:C.y-s:u?r-C.x:s-C.y}),d<0){if(d=~d,d>0&&d<c.length)return Slt(t,g,e.tile,m,c[d-1],c[d],r,s,u,a),!0}else return LX(m,c[d],r,s,a),!0}return!1}var wlt=[new h,new h,new h,new h];function Dlt(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=wlt;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 $S=ZS;function rr(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.showWaterEffect=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=yn.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 me,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(rr.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(rr.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(rr.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(rr.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new me,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 H(0,0,.5,1),this._clippingPlanes=void 0,this._clippingPolygons=void 0,this.cartographicLimitRectangle=re.clone(re.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldVerticalExaggeration=void 0,this._oldVerticalExaggerationRelativeHeight=void 0}Object.defineProperties(rr.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(l(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,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){_s.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Kd.setOwner(e,this,"_clippingPolygons")}}});function Ilt(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}rr.prototype.update=function(e){this._imageryLayers._update()};function Plt(e,t){let n=t.creditDisplay,i=e._terrainProvider;l(i)&&l(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&&l(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}rr.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(Ilt)})),Plt(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)ud._freeVertexArray(t[i]);t.length=0};rr.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let o=0,r=t.length;o<r;++o){let s=t[o];l(s)&&(s.length=0)}let n=this._clippingPlanes;l(n)&&n.enabled&&n.update(e);let i=this._clippingPolygons;l(i)&&i.enabled&&(i.update(e),i.queueCommands(e)),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};rr.prototype.endUpdate=function(e){if(!l(this._renderState)){this._renderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:rc.LESS}}),this._blendRenderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:rc.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&&$S.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.verticalExaggeration,i=e.verticalExaggerationRelativeHeight,o=this._oldVerticalExaggeration!==n||this._oldVerticalExaggerationRelativeHeight!==i;this._oldVerticalExaggeration=n,this._oldVerticalExaggerationRelativeHeight=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(l(c))for(let u=0,f=c.length;u<f;++u){let d=c[u],p=d.data.tileBoundingRegion;eut(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function O0e(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)}rr.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)O0e(t[n],e)};rr.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};rr.prototype.getLevelMaximumGeometricError=function(e){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};rr.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;l(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Xn.CULLED_BUT_NEEDED,o=n.terrainState),ud.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)!==pr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,ud.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var Rlt=new se,M0e=new re,Olt=new re,Mlt=new fe;function m8(e,t){if(t.west<t.east)return t;let n=re.clone(t,Olt);return re.center(e,Mlt).longitude>0?n.east=P.PI:n.west=-P.PI,n}function L0e(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;if(l(n)&&n.enabled)return!0;let i=e._clippingPolygons;return!!(l(i)&&i.enabled||!re.equals(e.cartographicLimitRectangle,re.MAX_VALUE))}rr.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=L0e(this,t);if(t.fog.enabled&&!o&&P.fog(i,t.fog.density)>=1)return pr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return pr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;l(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let u=m8(e.rectangle,this.cartographicLimitRectangle),f=re.simpleIntersection(u,e.rectangle,M0e);if(!l(f))return pr.NONE;if(re.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==ne.SCENE3D&&(c=Rlt,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===ne.MORPHING&&l(r.renderedMesh)&&(c=se.union(s.boundingSphere,c,c))),!l(c))return pr.PARTIAL;let d=this._clippingPlanes;if(l(d)&&d.enabled){let b=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=b!==jt.INSIDE,b===jt.OUTSIDE)return pr.NONE}let p=this._clippingPolygons;if(l(p)&&p.enabled){let b=p.computeIntersectionWithBoundingVolume(s);e.isClipped=b!==jt.OUTSIDE}let g,m=a.computeVisibility(c);if(m===jt.OUTSIDE?g=pr.NONE:m===jt.INTERSECTING?g=pr.PARTIAL:m===jt.INSIDE&&(g=pr.FULL),g===pr.NONE)return g;let x=t.mode===ne.SCENE3D&&t.camera.frustum instanceof rn;if(t.mode===ne.SCENE3D&&!x&&l(n)&&!o){let b=r.occludeePointInScaledSpace;return!l(b)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(b,s.minimumHeight)?g:pr.NONE}return g};rr.prototype.canRefine=function(e){return l(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var Llt=[],Nlt=[];rr.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=Llt;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===uo.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!l(p)||p.state===ai.FAILED||p.state===ai.INVALID,m=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[m]=g&&i[m]}let u=this.quadtree._lastSelectionFrameNumber,f=Nlt;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===u?d._lastSelectionResult:Xn.NONE;if(p===Xn.RENDERED){let g=d.data;if(!l(g))continue;if(!o&&d.data.terrainState===uo.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=!l(b)||b.state===ai.FAILED||b.state===ai.INVALID,C=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(T&&!i[C])return!1}}else p===Xn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var Flt=new h;rr.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,Flt),a=h.magnitude(s);return a<P.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var D0e=new F,h8=new F,Blt=new oe,klt=new oe,Vlt=new oe,Ult=new h,I0e=new h,zlt=new h,Hlt=new h;rr.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let u=i[a];l(u.readyImagery)&&u.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];l(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;l(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var Glt=[new h,new h,new h,new h];function P0e(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Glt;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)}rr.prototype.computeDistanceToTile=function(e,t){Wlt(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,u=Math.abs(c-r),f=Math.abs(c-s);u>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 Wlt(e,t,n){let i=e.data;i===void 0&&(i=e.data=new ud);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new qf({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,u=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}u=p}if(u!==void 0){let p=n.verticalExaggeration,g=n.verticalExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=Cr.getHeight(r.minimumHeight,p,g),r.maximumHeight=Cr.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=vn.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=se.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=P0e(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=P0e(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=u,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}rr.prototype.isDestroyed=function(){return!1};rr.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.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(),ue(this)};function jlt(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,u;for(u=0;u<c;++u)if(o=a[u],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=u;break}if(s!==-1){let f=s+e;if(o=a[f],r=l(o)?y(o.readyImagery,o.loadingImagery):void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(u=s;u<f;++u)a[u].freeResources();a.splice(s,e)}return!0}}rr.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(l(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,u=c.length,f=-1,d=0;for(a=0;a<u;++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]=jlt(d,e,n),s.state=ea.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=ea.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Xn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};rr.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],u=c.loadingImagery;if(l(u)||(u=c.readyImagery),u.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),l(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};rr.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};rr.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var qlt=new F,Ylt=new F;function R0e(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_verticalExaggerationAndRelativeHeight:function(){return this.properties.verticalExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=F.multiplyByPoint(i,this.properties.rtc,I0e);return F.setTranslation(i,o,D0e),D0e},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=F.multiplyByPoint(i,this.properties.rtc,I0e);return F.setTranslation(i,r,h8),F.multiply(o,h8,h8),h8},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 l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?F.multiply(e.context.uniformState.view,i.modelMatrix,qlt):F.IDENTITY;return F.inverseTranspose(o,Ylt)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_clippingDistance:function(){let i=t._clippingPolygons.clippingTexture;return l(i)?i:e.context.defaultTexture},u_clippingExtents:function(){let i=t._clippingPolygons.extentsTexture;return l(i)?i:e.context.defaultTexture},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 H(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new z(65e5,9e6),nightFadeDistance:new z(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 F,tileRectangle:new oe,verticalExaggerationAndRelativeHeight:new z(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new z,southMercatorYAndOneOverHeight:new z,waterMask:void 0,waterMaskTranslationAndScale:new oe,minMaxHeight:new z,scaleAndBias:new F,clippingPlanesEdgeColor:H.clone(H.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new oe,frontFaceAlphaByDistance:new oe,backFaceAlphaByDistance:new oe,localizedTranslucencyRectangle:new oe,undergroundColor:H.clone(H.TRANSPARENT),undergroundColorAlphaByDistance:new oe,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?yt(n,t.materialUniformMap):n}function Xlt(e,t,n){let i=n.data,o,r;if(l(i.vertexArray)?(o=i.mesh,r=i.vertexArray):l(i.fill)&&l(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!l(o)||!l(r))){if(l(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=Klt(e,r,o),i.wireframeVertexArray.mesh=o}}function Klt(e,t,n){let o={indices:n.indices,primitiveType:Me.TRIANGLES};Ln.toWireframe(o);let r=o.indices,s=_t.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ne.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ti({context:e,attributes:t._attributes,indexBuffer:s})}var N0e,F0e,p8;(function(){let e=new St({geometry:Md.fromDimensions({dimensions:new h(2,2,2)})}),t=new St({geometry:new w_({radius:1})}),n=new F,i,o;function r(s){return new Dn({geometryInstances:s,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})}N0e=function(s,a){return s===i||(p8(),i=s,n=F.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=Wt.fromColor(a),o=r(e)),o},F0e=function(s,a){return s===i||(p8(),i=s,n=F.fromTranslation(s.center,n),n=F.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=Wt.fromColor(a),o=r(t)),o},p8=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var Zlt=new oe(0,0,0,0),$lt={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,enableClippingPolygons:void 0,clippingPolygons:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Qlt=H.TRANSPARENT,Jlt=new Bt;function eut(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new $S(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let Te=r.credits;for(let it=0,Wi=Te.length;it<Wi;++it)o.addCreditToNextFrame(Te[it])}let s=kt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let u=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,m=f.rectangle,x=y(e.undergroundColor,Qlt),b=y(e.undergroundColorAlphaByDistance,Jlt),T=L0e(e,n)&&n.mode===ne.SCENE3D&&x.alpha>0&&(b.nearValue>0||b.farValue>0),C=e.lambertDiffuseMultiplier,A=e.vertexShadowDarkness,E=e.hasWaterMask&&l(a),v=E&&e.showWaterEffect,D=e.oceanNormalMap,O=v&&l(D),R=e.terrainProvider,M=l(R)&&e.terrainProvider.hasVertexNormals,N=n.fog.enabled&&n.fog.renderable&&!u,_=e.showGroundAtmosphere&&n.mode===ne.SCENE3D,S=yn.castShadows(e.shadows)&&!d,w=yn.receiveShadows(e.shadows)&&!d,I=e.hueShift,L=e.saturationShift,B=e.brightnessShift,U=!(P.equalsEpsilon(I,0,P.EPSILON7)&&P.equalsEpsilon(L,0,P.EPSILON7)&&P.equalsEpsilon(B,0,P.EPSILON7)),V=!1;if(_){let Te=h.magnitude(n.camera.positionWC),it=e.nightFadeOutDistance;V=Te>it}E&&--s,O&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,l(e.clippingPolygons)&&e.clippingPolygons.enabled&&(--s,--s),s-=f.numberOfTextureUniforms;let G=i.renderedMesh,k=G.center,W=G.encoding,q=i.tileBoundingRegion,J=n.verticalExaggeration,j=n.verticalExaggerationRelativeHeight,K=J!==1,Q=W.hasGeodeticSurfaceNormals,de=Blt,ye=0,ae=0,_e=0,xe=0,De=!1;if(n.mode!==ne.SCENE3D){let Te=n.mapProjection,it=Te.project(re.southwest(t.rectangle),zlt),Wi=Te.project(re.northeast(t.rectangle),Hlt);if(de.x=it.x,de.y=it.y,de.z=Wi.x,de.w=Wi.y,n.mode!==ne.MORPHING&&(k=Ult,k.x=0,k.y=(de.z+de.x)*.5,k.z=(de.w+de.y)*.5,de.x-=k.y,de.y-=k.z,de.z-=k.y,de.w-=k.z),n.mode===ne.SCENE2D&&W.quantization===Js.BITS12){let ut=1/(Math.pow(2,12)-1)*.5,go=(de.z-de.x)*ut,Yo=(de.w-de.y)*ut;de.x-=go,de.y-=Yo,de.z+=go,de.w+=Yo}Te instanceof wi&&(ye=t.rectangle.south,ae=t.rectangle.north,_e=wi.geodeticLatitudeToMercatorAngle(ye),xe=1/(wi.geodeticLatitudeToMercatorAngle(ae)-_e),De=!0)}let Ae=$lt;Ae.frameState=n,Ae.surfaceTile=i,Ae.hasWaterMask=E,Ae.showReflectiveOcean=v,Ae.showOceanWaves=O,Ae.enableLighting=e.enableLighting,Ae.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Ae.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Ae.showGroundAtmosphere=_,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=V,Ae.hasVertexNormals=M,Ae.useWebMercatorProjection=De,Ae.clippedByBoundaries=i.clippedByBoundaries,Ae.hasGeodeticSurfaceNormals=Q,Ae.hasExaggeration=K;let ke=i.imagery,ze=0,tt=ke.length,wt=e.showSkirts&&!u&&!d,pt=e.backFaceCulling&&!u&&!d,Be=pt?e._renderState:e._disableCullingRenderState,Yt=pt?e._blendRenderState:e._disableCullingBlendRenderState,Ct=Be,lt=e._firstPassInitialColor,tn=n.context;if(l(e._debug.boundingSphereTile)||p8(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let Te=e._drawCommands.length;for(let it=0;it<Te;++it)e._uniformMaps[it]=R0e(n,e)}do{let Te=0,it,Wi;if(e._drawCommands.length<=e._usedDrawCommands?(it=new Ze,it.owner=t,it.cull=!1,it.boundingVolume=new se,it.orientedBoundingBox=void 0,Wi=R0e(n,e),e._drawCommands.push(it),e._uniformMaps.push(Wi)):(it=e._drawCommands[e._usedDrawCommands],Wi=e._uniformMaps[e._usedDrawCommands]),it.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let Aa=q.boundingVolume,bl=q.boundingSphere;l(Aa)?N0e(Aa,H.RED).update(n):l(bl)&&F0e(bl,H.RED).update(n)}let ut=Wi.properties;oe.clone(lt,ut.initialColor),ut.oceanNormalMap=D,ut.lightingFadeDistance.x=e.lightingFadeOutDistance,ut.lightingFadeDistance.y=e.lightingFadeInDistance,ut.nightFadeDistance.x=e.nightFadeOutDistance,ut.nightFadeDistance.y=e.nightFadeInDistance,ut.atmosphereLightIntensity=e.atmosphereLightIntensity,ut.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,ut.atmosphereMieCoefficient=e.atmosphereMieCoefficient,ut.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,ut.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,ut.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,ut.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let go=u?g:p,Yo=u?p:g;l(go)&&(oe.fromElements(go.near,go.nearValue,go.far,go.farValue,ut.frontFaceAlphaByDistance),oe.fromElements(Yo.near,Yo.nearValue,Yo.far,Yo.farValue,ut.backFaceAlphaByDistance)),oe.fromElements(b.near,b.nearValue,b.far,b.farValue,ut.undergroundColorAlphaByDistance),H.clone(x,ut.undergroundColor),ut.lambertDiffuseMultiplier=C,ut.vertexShadowDarkness=A;let Ya=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;Ya&&H.clone(e.fillHighlightColor,ut.fillHighlightColor),ut.verticalExaggerationAndRelativeHeight.x=J,ut.verticalExaggerationAndRelativeHeight.y=j,ut.center3D=G.center,h.clone(k,ut.rtc),oe.clone(de,ut.tileRectangle),ut.southAndNorthLatitude.x=ye,ut.southAndNorthLatitude.y=ae,ut.southMercatorYAndOneOverHeight.x=_e,ut.southMercatorYAndOneOverHeight.y=xe;let Ir=klt,Cs=m8(t.rectangle,e.cartographicLimitRectangle),Le=Vlt,ot=m8(t.rectangle,m);h.fromElements(I,L,B,ut.hsbShift);let qe=t.rectangle,Xe=1/qe.width,dt=1/qe.height;Ir.x=(Cs.west-qe.west)*Xe,Ir.y=(Cs.south-qe.south)*dt,Ir.z=(Cs.east-qe.west)*Xe,Ir.w=(Cs.north-qe.south)*dt,oe.clone(Ir,ut.localizedCartographicLimitRectangle),Le.x=(ot.west-qe.west)*Xe,Le.y=(ot.south-qe.south)*dt,Le.z=(ot.east-qe.west)*Xe,Le.w=(ot.north-qe.south)*dt,oe.clone(Le,ut.localizedTranslucencyRectangle);let Gt=N&&P.fog(t._distance,n.fog.density)>P.EPSILON3;U=U&&(Gt||_);let wn=!1,Io=!1,Jn=!1,ls=!1,Xa=!1,Yr=!1,Fi=!1,ks=!1,Xr=!1,lf=!1;for(;Te<s&&ze<tt;){let Aa=ke[ze],bl=Aa.readyImagery;if(++ze,!l(bl)||bl.imageryLayer.alpha===0)continue;let Oc=Aa.useWebMercatorT?bl.textureWebMercator:bl.texture,us=bl.imageryLayer;l(Aa.textureTranslationAndScale)||(Aa.textureTranslationAndScale=us._calculateTextureTranslationAndScale(t,Aa)),ut.dayTextures[Te]=Oc,ut.dayTextureTranslationAndScale[Te]=Aa.textureTranslationAndScale,ut.dayTextureTexCoordsRectangle[Te]=Aa.textureCoordinateRectangle,ut.dayTextureUseWebMercatorT[Te]=Aa.useWebMercatorT,ut.dayTextureAlpha[Te]=us.alpha,Yr=Yr||ut.dayTextureAlpha[Te]!==1,ut.dayTextureNightAlpha[Te]=us.nightAlpha,Fi=Fi||ut.dayTextureNightAlpha[Te]!==1,ut.dayTextureDayAlpha[Te]=us.dayAlpha,Fi=Fi||ut.dayTextureDayAlpha[Te]!==1,ut.dayTextureBrightness[Te]=us.brightness,wn=wn||ut.dayTextureBrightness[Te]!==Ga.DEFAULT_BRIGHTNESS,ut.dayTextureContrast[Te]=us.contrast,Io=Io||ut.dayTextureContrast[Te]!==Ga.DEFAULT_CONTRAST,ut.dayTextureHue[Te]=us.hue,Jn=Jn||ut.dayTextureHue[Te]!==Ga.DEFAULT_HUE,ut.dayTextureSaturation[Te]=us.saturation,ls=ls||ut.dayTextureSaturation[Te]!==Ga.DEFAULT_SATURATION,ut.dayTextureOneOverGamma[Te]=1/us.gamma,Xa=Xa||ut.dayTextureOneOverGamma[Te]!==1/Ga.DEFAULT_GAMMA,ut.dayTextureSplit[Te]=us.splitDirection,ks=ks||ut.dayTextureSplit[Te]!==0;let ff=ut.dayTextureCutoutRectangles[Te];if(l(ff)||(ff=ut.dayTextureCutoutRectangles[Te]=new oe),oe.clone(oe.ZERO,ff),l(us.cutoutRectangle)){let Bo=m8(qe,us.cutoutRectangle),sn=re.simpleIntersection(Bo,qe,M0e);Xr=l(sn)||Xr,ff.x=(Bo.west-qe.west)*Xe,ff.y=(Bo.south-qe.south)*dt,ff.z=(Bo.east-qe.west)*Xe,ff.w=(Bo.north-qe.south)*dt}let df=ut.colorsToAlpha[Te];l(df)||(df=ut.colorsToAlpha[Te]=new oe);let hf=l(us.colorToAlpha)&&us.colorToAlphaThreshold>0;if(lf=lf||hf,hf){let Bo=us.colorToAlpha;df.x=Bo.red,df.y=Bo.green,df.z=Bo.blue,df.w=us.colorToAlphaThreshold}else df.w=-1;if(l(bl.credits)){let Bo=bl.credits;for(let sn=0,Ee=Bo.length;sn<Ee;++sn)o.addCreditToNextFrame(Bo[sn])}++Te}ut.dayTextures.length=Te,ut.waterMask=a,oe.clone(c,ut.waterMaskTranslationAndScale),ut.minMaxHeight.x=W.minimumHeight,ut.minMaxHeight.y=W.maximumHeight,F.clone(W.matrix,ut.scaleAndBias);let yo=e._clippingPlanes,Pr=l(yo)&&yo.enabled&&t.isClipped;Pr&&(ut.clippingPlanesEdgeColor=H.clone(yo.edgeColor,ut.clippingPlanesEdgeColor),ut.clippingPlanesEdgeWidth=yo.edgeWidth);let mp=e._clippingPolygons,Kr=l(mp)&&mp.enabled&&t.isClipped;Ae.numberOfDayTextures=Te,Ae.applyBrightness=wn,Ae.applyContrast=Io,Ae.applyHue=Jn,Ae.applySaturation=ls,Ae.applyGamma=Xa,Ae.applyAlpha=Yr,Ae.applyDayNightAlpha=Fi,Ae.applySplit=ks,Ae.enableFog=Gt,Ae.enableClippingPlanes=Pr,Ae.clippingPlanes=yo,Ae.enableClippingPolygons=Kr,Ae.clippingPolygons=mp,Ae.hasImageryLayerCutout=Xr,Ae.colorCorrect=U,Ae.highlightFillTile=Ya,Ae.colorToAlpha=lf,Ae.showUndergroundColor=T,Ae.translucent=d;let uf=i.renderedMesh.indices.length;wt||(uf=i.renderedMesh.indexCountWithoutSkirts),it.shaderProgram=e._surfaceShaderSet.getShaderProgram(Ae),it.castShadows=S,it.receiveShadows=w,it.renderState=Ct,it.primitiveType=Me.TRIANGLES,it.vertexArray=i.vertexArray||i.fill.vertexArray,it.count=uf,it.uniformMap=Wi,it.pass=ve.GLOBE,e._debug.wireframe&&(Xlt(tn,e,t),l(i.wireframeVertexArray)&&(it.vertexArray=i.wireframeVertexArray,it.primitiveType=Me.LINES,it.count=uf*2));let Ka=it.boundingVolume,X0=it.orientedBoundingBox;n.mode!==ne.SCENE3D?(se.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,q.minimumHeight,q.maximumHeight,Ka),h.fromElements(Ka.center.z,Ka.center.x,Ka.center.y,Ka.center),n.mode===ne.MORPHING&&(Ka=se.union(q.boundingSphere,Ka,Ka))):(it.boundingVolume=se.clone(q.boundingSphere,Ka),it.orientedBoundingBox=vn.clone(q.boundingVolume,X0)),it.dirty=!0,d&&f.updateDerivedCommands(it,n),O0e(it,n),Ct=Yt,lt=Zlt}while(ze<tt)}var YF=rr;function B0e(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=re.clone(re.MAX_VALUE)}Object.defineProperties(B0e.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=Bt.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=Bt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=re.clone(re.MAX_VALUE)),re.clone(e,this._rectangle)}}});var XF=B0e;function Fs(){this._layers=[],this.layerAdded=new me,this.layerRemoved=new me,this.layerMoved=new me,this.layerShownOrHidden=new me}Object.defineProperties(Fs.prototype,{length:{get:function(){return this._layers.length}}});Fs.prototype.add=function(e,t){l(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()})};Fs.prototype.addImageryProvider=function(e,t){let n=new Ga(e);return this.add(n,t),n};Fs.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};Fs.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=[]};Fs.prototype.contains=function(e){return this.indexOf(e)!==-1};Fs.prototype.indexOf=function(e){return this._layers.indexOf(e)};Fs.prototype.get=function(e){return this._layers[e]};function _8(e,t){return e.indexOf(t)}function k0e(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)}Fs.prototype.raise=function(e){let t=_8(this._layers,e);k0e(this,t,t+1)};Fs.prototype.lower=function(e){let t=_8(this._layers,e);k0e(this,t,t-1)};Fs.prototype.raiseToTop=function(e){let t=_8(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))};Fs.prototype.lowerToBottom=function(e){let t=_8(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 tut=new re;function V0e(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];re.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],u=c.readyImagery;if(!l(u)||!u.imageryLayer.ready)continue;let f=u.imageryLayer.imageryProvider;if(n&&!l(f.pickFeatures)||!re.contains(u.rectangle,t))continue;let d=tut,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),re.contains(d,t)&&i(u)}}Fs.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[];if(V0e(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};Fs.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(V0e(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);l(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 u=s[c],f=r[c];if(l(u)&&u.length>0)for(let d=0;d<u.length;++d){let p=u[d];p.imageryLayer=f,l(p.position)||(p.position=i),a.push(p)}}return a})};Fs.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};Fs.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};Fs.prototype.isDestroyed=function(){return!1};Fs.prototype.destroy=function(){return this.removeAll(!0),ue(this)};Fs.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&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var KF=Fs;function U0e(e){this._ellipsoid=new B_(e.ellipsoid,h.ZERO)}Object.defineProperties(U0e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var ZF=U0e;function dl(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=Xn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=ea.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}dl.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 dl({tilingScheme:e,x:s,y:r,level:0});return i};dl.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(l(t)&&l(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],re.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(l(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],re.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(dl.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 l(this._southwestChild)||(this._southwestChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return l(this._southeastChild)||(this._southeastChild=new dl({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 l(this._northwestChild)||(this._northwestChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return l(this._northeastChild)||(this._northeastChild=new dl({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<ea.DONE}},eligibleForUnloading:{get:function(){let e=!0;return l(this.data)&&(e=this.data.eligibleForUnloading,l(e)||(e=!0)),e}}});dl.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]};dl.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};dl.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};dl.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};dl.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};dl.prototype.freeResources=function(){this.state=ea.START,this.renderable=!1,this.upsampledFromParent=!1,l(this.data)&&l(this.data.freeResources)&&this.data.freeResources(),g8(this._southwestChild),this._southwestChild=void 0,g8(this._southeastChild),this._southeastChild=void 0,g8(this._northwestChild),this._northwestChild=void 0,g8(this._northeastChild),this._northeastChild=void 0};function g8(e){l(e)&&e.freeResources()}var $F=dl;function y8(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}y8.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};y8.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),z0e(this,t)),t=i}};function z0e(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}y8.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&z0e(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var QF=y8;function dd(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 QF,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 ZF({ellipsoid:n}),this._tileLoadProgressEvent=new me,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(dd.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});dd.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function nut(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,G0e(e);let n=e._levelZeroTiles;if(l(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()}dd.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==ea.START&&e(t),t=t.replacementNext};dd.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};dd.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};dd.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function G0e(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}dd.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(nut(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),G0e(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};dd.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),sut(this,e),_ut(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function iut(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=me.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))}dd.prototype.endFrame=function(e){!e.passes.render||e.mode===ne.MORPHING||(dut(this,e),put(this,e),iut(this,e))};dd.prototype.isDestroyed=function(){return!1};dd.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var e2,H0e=new fe;function out(e,t){let n=re.center(e.rectangle,H0e),i=n.longitude-e2.longitude,o=n.latitude-e2.latitude;n=re.center(t.rectangle,H0e);let r=n.longitude-e2.longitude,s=n.latitude-e2.latitude;return i*i+o*o-(r*r+s*s)}var rut=new h,JF=[];function sut(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!l(e._levelZeroTiles)){let x=r.tilingScheme;if(l(x)){let b=r.tilingScheme;e._levelZeroTiles=$F.createLevelZeroTiles(b);let T=e._levelZeroTiles.length;if(JF.length<T)for(JF=new Array(T),o=0;o<T;++o)JF[o]===void 0&&(JF[o]=new t2)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;e2=t.camera.positionCartographic,a.sort(out);let u=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(u.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,u,f);u.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let m=F.getTranslation(g.transform,rut);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?Wa(e,s,r,t,c,!1,JF[o]):(lg(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function lg(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function t2(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function W0e(){this.southwest=new t2,this.southeast=new t2,this.northwest=new t2,this.northeast=new t2}W0e.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 VX=new Array(31);for(let e=0;e<VX.length;++e)VX[e]=new W0e;function aut(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=uut(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,u=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:Xn.NONE,g=e.tileProvider;if(s||i){let m=Xn.originalResult(p)===Xn.RENDERED,x=Xn.originalResult(p)===Xn.CULLED||p===Xn.NONE,b=n.state===ea.DONE,T=m||x||b;if(T||l(g.canRenderWithoutLosingDetail)&&(T=g.canRenderWithoutLosingDetail(n)),T){s&&lg(e,e._tileLoadQueueMedium,n,t),x8(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Xn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&lg(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&u.upsampledFromParent&&f.upsampledFromParent){x8(e,n),lg(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(u),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Xn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.REFINED;let x=e._tilesToRender.length,b=e._tileLoadQueueLow.length,T=e._tileLoadQueueMedium.length,C=e._tileLoadQueueHigh.length,A=e._tileToUpdateHeights.length;if(cut(e,a,c,u,f,t,i,o),x!==e._tilesToRender.length){let E=o.allAreRenderable,v=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!E&&!v){let R=e._tilesToRender;for(let N=x;N<R.length;++N){let _=R[N];for(;_!==void 0&&_._lastSelectionResult!==Xn.KICKED&&_!==n;)_._lastSelectionResult=Xn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=A,x8(e,n),n._lastSelectionResult=Xn.RENDERED;let M=p===Xn.RENDERED;!M&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=b,e._tileLoadQueueMedium.length=T,e._tileLoadQueueHigh.length=C,lg(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,O=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=M,M||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!O&&lg(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.RENDERED,x8(e,n),lg(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Xn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function cut(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,u=e._tileProvider,f=e._occluders,d=VX[t.level],p=d.southwest,g=d.southeast,m=d.northwest,x=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Wa(e,t,u,r,f,s,p),Wa(e,n,u,r,f,s,g),Wa(e,i,u,r,f,s,m),Wa(e,o,u,r,f,s,x)):(Wa(e,i,u,r,f,s,m),Wa(e,t,u,r,f,s,p),Wa(e,o,u,r,f,s,x),Wa(e,n,u,r,f,s,g)):c.latitude<t.rectangle.north?(Wa(e,n,u,r,f,s,g),Wa(e,t,u,r,f,s,p),Wa(e,o,u,r,f,s,x),Wa(e,i,u,r,f,s,m)):(Wa(e,o,u,r,f,s,x),Wa(e,i,u,r,f,s,m),Wa(e,n,u,r,f,s,g),Wa(e,t,u,r,f,s,p)),d.combine(a)}function lut(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&re.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&re.contains(n,e._cameraReferenceFrameOriginCartographic)}function Wa(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==pr.NONE)return aut(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,lut(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&lg(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Xn.NONE;c!==Xn.CULLED_BUT_NEEDED&&c!==Xn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Xn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(lg(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Xn.CULLED):t._lastSelectionResult=Xn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function uut(e,t,n){if(t.mode===ne.SCENE2D||t.camera.frustum instanceof rn||t.camera.frustum instanceof Lr)return fut(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 fut(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,u=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=u/f;return t.fog.enabled&&t.mode!==ne.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function x8(e,t){e._tilesToRender.push(t)}function dut(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=xi()+e._loadQueueTimeSlice,s=e._tileProvider,a=BX(e,t,s,r,n,!1);a=BX(e,t,s,r,i,a),BX(e,t,s,r,o,a)}function hut(e,t){return e._loadPriority-t._loadPriority}function BX(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(hut);for(let s=0,a=o.length;s<a&&(xi()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var QS=new mn,kX=new fe,A0=new h,mut=[];function put(e,t){if(!l(e.tileProvider.tilingScheme))return;let n=mut;n.length=0;let i=e._tileToUpdateHeights,o=xi(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,u=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!l(d.data)||!l(d.data.mesh)){let x=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:Xn.NONE;(x===Xn.RENDERED||x===Xn.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=l(b)&&b.wasCreatedByUpsampling();if(d.level>x.level&&!T){if(l(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,u)),a===ne.SCENE3D){let A=u.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,QS.direction),E=u.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,QS.origin);if(!l(E)){let v=0;l(d.data.tileBoundingRegion)&&(v=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(v,-11500),O=h.multiplyByScalar(A,Math.abs(D)+1,A0);h.subtract(x.positionOnEllipsoidSurface,O,QS.origin)}}else fe.clone(x.positionCartographic,kX),kX.height=-11500,c.project(kX,A0),h.fromElements(A0.z,A0.x,A0.y,A0),h.clone(A0,QS.origin),h.clone(h.UNIT_X,QS.direction);let C=d.data.pick(QS,a,c,!1,A0);l(C)&&(l(x.callback)&&x.callback(C),x.level=d.level)}if(xi()>=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 _ut(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 n2=dd;function Lh(e){e=y(e,ee.default);let t=new Km({ellipsoid:e}),n=new KF;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new RF,this._material=void 0,this._surface=new n2({tileProvider:new YF({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new me,this._undergroundColor=H.clone(H.BLACK),this._undergroundColorAlphaByDistance=new Bt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new XF,zX(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new we({url:nn("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=ee.WGS84.equals(e),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=P.PI_OVER_TWO*e.minimumRadius,this.lightingFadeInDistance=P.PI*e.minimumRadius,this.nightFadeOutDistance=P.PI_OVER_TWO*e.minimumRadius,this.nightFadeInDistance=5*P.PI_OVER_TWO*e.minimumRadius,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=yn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Lh.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 l(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}},clippingPolygons:{get:function(){return this._surface.tileProvider.clippingPolygons},set:function(e){this._surface.tileProvider.clippingPolygons=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=re.clone(re.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),l(this._material)&&zX(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,zX(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=H.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Bt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function zX(e){let t=[],n=l(e._material)&&(l(e._material.shaderSource.match(/slope/))||l(e._material.shaderSource.match("normalEC"))),i=[Zd,BS];l(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(IF),e._surfaceShaderSet.baseVertexShaderSource=new Ue({sources:[Zd,BS,PF],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new Ue({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function gut(e){return function(t,n){let i=se.distanceSquaredTo(t.pickBoundingSphere,e),o=se.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var yut=[],xut={start:0,stop:0};Lh.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=yut;s.length=0;let a=this._surface._tilesToRender,c=a.length,u,f;for(f=0;f<c;++f){u=a[f];let p=u.data;if(!l(p))continue;let g=p.pickBoundingSphere;if(o!==ne.SCENE3D)p.pickBoundingSphere=g=se.fromRectangleWithHeights2D(u.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(l(p.renderedMesh))se.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let m=$n.raySphere(e,g,xut);l(m)&&s.push(p)}s.sort(gut(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!l(d));++f);return d};var but=new fe;Lh.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==ne.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,but);n=this._ellipsoid.cartographicToCartesian(i,n)}return n};var Tut=new h,j0e=new h,Cut=new fe,Aut=new mn;function UX(e,t){return l(e)&&re.contains(e.rectangle,t)?e:void 0}Lh.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!re.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=UX(n._southwestChild,e)||UX(n._southeastChild,e)||UX(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(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,Tut),u=Aut,f=a.geodeticSurfaceNormal(c,u.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,u.origin);if(!l(d)){let g;l(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let m=Math.min(y(g,0),-11500),x=h.multiplyByScalar(f,Math.abs(m)+1,j0e);h.subtract(c,x,u.origin)}let p=n.data.pick(u,void 0,s,!1,j0e);if(l(p))return a.cartesianToCartographic(p,Cut).height};Lh.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Lh.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=l(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let u=this;a.fetchImage().then(function(f){c===u._oceanNormalMapResource.url&&(u._oceanNormalMap=u._oceanNormalMap&&u._oceanNormalMap.destroy(),u._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===ne.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.showWaterEffect=this.showWaterEffect,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))};Lh.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};Lh.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Lh.prototype.isDestroyed=function(){return!1};Lh.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(),ue(this)};var i2=Lh;function Eut(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var o2=Eut;var rxe={},Sut=32.184,vut=2451545,q0e=-.0529921,Y0e=-.1059842,X0e=13.0120009,K0e=13.3407154,Z0e=.9856003,$0e=26.4057084,Q0e=13.064993,J0e=.3287146,exe=1.7484877,txe=-.1589763,nxe=.0036096,ixe=.1643573,oxe=12.9590088,HX=new Z;rxe.ComputeMoon=function(e,t){l(e)||(e=Z.now()),HX=Z.addSeconds(e,Sut,HX);let n=Z.totalDays(HX)-vut,i=n/Yn.DAYS_PER_JULIAN_CENTURY,o=(125.045+q0e*n)*P.RADIANS_PER_DEGREE,r=(250.089+Y0e*n)*P.RADIANS_PER_DEGREE,s=(260.008+X0e*n)*P.RADIANS_PER_DEGREE,a=(176.625+K0e*n)*P.RADIANS_PER_DEGREE,c=(357.529+Z0e*n)*P.RADIANS_PER_DEGREE,u=(311.589+$0e*n)*P.RADIANS_PER_DEGREE,f=(134.963+Q0e*n)*P.RADIANS_PER_DEGREE,d=(276.617+J0e*n)*P.RADIANS_PER_DEGREE,p=(34.226+exe*n)*P.RADIANS_PER_DEGREE,g=(15.134+txe*n)*P.RADIANS_PER_DEGREE,m=(119.743+nxe*n)*P.RADIANS_PER_DEGREE,x=(239.961+ixe*n)*P.RADIANS_PER_DEGREE,b=(25.053+oxe*n)*P.RADIANS_PER_DEGREE,T=Math.sin(o),C=Math.sin(r),A=Math.sin(s),E=Math.sin(a),v=Math.sin(c),D=Math.sin(u),O=Math.sin(f),R=Math.sin(d),M=Math.sin(p),N=Math.sin(g),_=Math.sin(m),S=Math.sin(x),w=Math.sin(b),I=Math.cos(o),L=Math.cos(r),B=Math.cos(s),U=Math.cos(a),V=Math.cos(c),G=Math.cos(u),k=Math.cos(f),W=Math.cos(d),q=Math.cos(p),J=Math.cos(g),j=Math.cos(m),K=Math.cos(x),Q=Math.cos(b),de=(269.9949+.0031*i-3.8787*T-.1204*C+.07*A-.0172*E+.0072*D-.0052*N+.0043*w)*P.RADIANS_PER_DEGREE,ye=(66.5392+.013*i+1.5419*I+.0239*L-.0278*B+.0068*U-.0029*G+9e-4*k+8e-4*J-9e-4*Q)*P.RADIANS_PER_DEGREE,ae=(38.3213+13.17635815*n-14e-13*n*n+3.561*T+.1208*C-.0642*A+.0158*E+.0252*v-.0066*D-.0047*O-.0046*R+.0028*M+.0052*N+.004*_+.0019*S-.0044*w)*P.RADIANS_PER_DEGREE,_e=(13.17635815-14e-13*(2*n)+3.561*I*q0e+.1208*L*Y0e-.0642*B*X0e+.0158*U*K0e+.0252*V*Z0e-.0066*G*$0e-.0047*k*Q0e-.0046*W*J0e+.0028*q*exe+.0052*J*txe+.004*j*nxe+.0019*K*ixe-.0044*Q*oxe)/86400*P.RADIANS_PER_DEGREE;return l(t)||(t=new o2),t.rightAscension=de,t.declination=ye,t.rotation=ae,t.rotationRate=_e,t};var r2=rxe;function sxe(e){(!l(e)||typeof e!="function")&&(e=r2.ComputeMoon),this._computeFunction=e}var wut=new h,Dut=new h,Iut=new h;function Put(e,t,n){let i=wut;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=Iut;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,Dut);return l(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 Rut=new $,Out=new Oe;sxe.prototype.evaluate=function(e,t){l(e)||(e=Z.now());let n=this._computeFunction(e),i=Put(n.rightAscension,n.declination,t),o=P.zeroToTwoPi(n.rotation),r=Oe.fromAxisAngle(h.UNIT_Z,o,Out),s=$.fromQuaternion(Oe.conjugate(r,r),Rut);return $.multiply(s,i,i)};var s2=sxe;var JS=`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;              // normalized surface normal (always facing the viewer) in model coordinates
    vec3 normalEC = normalize(czm_normal * normalMC);   // normalized surface normal in eye coordinates

    vec2 st = czm_ellipsoidTextureCoordinates(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()
{
    // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii
    // in the vertex shader. Only when it is larger than some constant, march along the ray.
    // Otherwise perform one intersection test which will be the common case.

    // Test if the ray intersects a sphere with the ellipsoid's maximum radius.
    // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test
    // may cause false negatives. This will discard fragments before marching the ray forward.
    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;
    }

    // March ray forward to intersection with larger sphere and find
    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;
    }

    // If the viewer is outside, compute outsideFaceColor, with normals facing outward.
    vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0);

    // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward.
    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 ev=`in vec3 position;

uniform vec3 u_radii;

out vec3 v_positionEC;

void main()
{
    // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates.
    // Scale to consider the radii.  We could also do this once on the CPU when using the BoxGeometry,
    // but doing it here allows us to change the radii without rewriting the vertex data, and
    // allows all ellipsoids to reuse the same vertex data.
    vec4 p = vec4(u_radii * position, 1.0);

    v_positionEC = (czm_modelView * p).xyz;     // position in eye coordinates
    gl_Position = czm_modelViewProjection * p;  // position in clip coordinates

    // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums
    // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the
    // ellipsoid (does not write depth) that was rendered in the farther frustum.
    //
    // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates
    // artifacts since some fragments can be alpha blended twice.  This is solved by only rendering
    // the ellipsoid in the closest frustum to the viewer.
    gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far);

    czm_vertexLogDepth();
}
`;var GX={position:0};function b8(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=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this._computedModelMatrix=new F,this.show=y(e.show,!0),this.material=y(e.material,qi.fromType(qi.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 Ze({owner:y(e._owner,this)}),this._pickCommand=new Ze({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 Mut(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY}));return t=ti.fromGeometry({context:e,geometry:n,attributeLocations:GX,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}b8.prototype.update=function(e){if(!this.show||e.mode!==ne.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(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})),l(this._va)||(this._va=Mut(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}(!F.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(F.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),F.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,u=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||u)&&(d=new Ue({sources:[ev]}),p=new Ue({sources:[this.material.shaderSource,JS]}),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=Qt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:GX}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=yt(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?ve.TRANSLUCENT:ve.OPAQUE,g.push(f)),m.pick){let x=this._pickCommand;(!l(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||!l(this._pickSP)||u)&&(d=new Ue({sources:[ev]}),p=new Ue({sources:[this.material.shaderSource,JS],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=Qt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:GX}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=yt(yt(this._uniforms,this._pickUniforms),this.material._uniforms),x.executeInClosestFrustum=n),x.boundingVolume=this._boundingSphere,x.modelMatrix=this._computedModelMatrix,x.pass=n?ve.TRANSLUCENT:ve.OPAQUE,g.push(x)}};b8.prototype.isDestroyed=function(){return!1};b8.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(),ue(this)};var a2=b8;function c2(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;l(t)||(t=nn("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,ee.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new a2({radii:this.ellipsoid.radii,material:qi.fromType(qi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new s2}Object.defineProperties(c2.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var T8=new $,Lut=new $,Nut=new h,C8=[];c2.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;l(Mt.computeIcrfToFixedMatrix(n,T8))||Mt.computeTemeToPseudoFixedMatrix(n,T8);let i=this._axes.evaluate(n,Lut);$.transpose(i,i),$.multiply(T8,i,i);let o=Vg.computeMoonPositionInEarthInertialFrame(n,Nut);$.multiplyByVector(T8,o,o),F.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=C8,C8.length=0,t.update(e),e.commandList=r,C8.length===1?C8[0]:void 0};c2.prototype.isDestroyed=function(){return!1};c2.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var l2=c2;var WX=[],jX=[];function Fut(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=WX,u=jX,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)u[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],m=u[d];f<s&&(d>=a||t(g,m,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=m,++d)}}function qX(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);qX(e,t,n,i,r),qX(e,t,n,r+1,o),Fut(e,t,n,i,r,o)}function But(e,t,n){let i=e.length,o=Math.ceil(i*.5);WX.length=o,jX.length=o,qX(e,t,n,0,i-1),WX.length=0,jX.length=0}var ug=But;function vc(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 A8=new h;Object.defineProperties(vc.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,A8),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,A8);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,A8),A8)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});vc.fromBoundingSphere=function(e,t,n){return l(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new vc(e,t)};var cxe=new h;vc.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,cxe),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 kut=new h;vc.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,kut),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,cxe),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 Vut=new h;vc.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return pr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Vut),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?pr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?pr.FULL:pr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?pr.PARTIAL:pr.FULL))}}return pr.NONE};var E8=new h;vc.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,E8),E8),c=-h.dot(a,o),u=vc._anyRotationVector(o,a,c),f=vc._horizonToPlaneNormalDotProduct(e,a,c,u,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=vc._horizonToPlaneNormalDotProduct(e,a,c,u,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return h.add(o,h.multiplyByScalar(a,p,E8),E8)};var Uut=[];vc.computeOccludeePointFromRectangle=function(e,t){t=y(t,ee.default);let n=re.subsample(e,t,0,Uut),i=se.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return vc.computeOccludeePoint(new se(o,t.minimumRadius),i.center,n)};var zut=new h;vc._anyRotationVector=function(e,t,n){let i=h.abs(t,zut),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 Hut=new h;vc._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,Hut);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 YX=new h,Gut=new h,S8=new h,axe=new h;vc._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,YX),s=h.clone(e.center,Gut),a=e.radius,c=h.subtract(s,r,S8),u=h.magnitudeSquared(c),f=a*a;if(u<f)return!1;let d=u-f,p=Math.sqrt(d),m=1/Math.sqrt(u),b=p*m*p;c=h.normalize(c,c);let T=h.add(r,h.multiplyByScalar(c,b,axe),axe),C=Math.sqrt(d-b*b),A=this._rotationVector(s,t,n,r,i),E=h.fromElements(A.x*A.x*c.x+(A.x*A.y-A.z)*c.y+(A.x*A.z+A.y)*c.z,(A.x*A.y+A.z)*c.x+A.y*A.y*c.y+(A.y*A.z-A.x)*c.z,(A.x*A.z-A.y)*c.x+(A.y*A.z+A.x)*c.y+A.z*A.z*c.z,YX);E=h.normalize(E,E);let v=h.multiplyByScalar(E,C,YX);A=h.normalize(h.subtract(h.add(T,v,S8),s,S8),S8);let D=h.dot(t,A);A=h.normalize(h.subtract(h.subtract(T,v,A),s,A),A);let O=h.dot(t,A);return D<O?D:O};var u2=vc;function Qm(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 ps,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function XX(e){let{top:t,bottom:n,right:i,left:o,near:r,far:s}=e;(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=F.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=F.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(Qm.prototype,{projectionMatrix:{get:function(){return XX(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return XX(this),this._infinitePerspective}}});var Wut=new h,jut=new h,qut=new h,Yut=new h;Qm.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,u=this.far,f=h.cross(t,n,Wut),d=jut;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=qut;h.multiplyByScalar(t,u,p),h.add(e,p,p);let g=Yut;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 l(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],l(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],l(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],l(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],l(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],l(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};Qm.prototype.getPixelDimensions=function(e,t,n,i,o){XX(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};Qm.prototype.clone=function(e){return l(e)||(e=new Qm),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};Qm.prototype.equals=function(e){return l(e)&&e instanceof Qm&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Qm.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof Qm&&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 hl=Qm;function eu(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new hl,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}eu.packedLength=6;eu.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};eu.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new eu),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 Nh(e){if(!(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset))return;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;let n=e._offCenterFrustum;n.top=e.near*Math.tan(.5*e._fovy),n.bottom=-n.top,n.right=e.aspectRatio*n.top,n.left=-n.right,n.near=e.near,n.far=e.far,n.right+=e.xOffset,n.left+=e.xOffset,n.top+=e.yOffset,n.bottom+=e.yOffset}Object.defineProperties(eu.prototype,{projectionMatrix:{get:function(){return Nh(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return Nh(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return Nh(this),this._fovy}},sseDenominator:{get:function(){return Nh(this),this._sseDenominator}},offCenterFrustum:{get:function(){return Nh(this),this._offCenterFrustum}}});eu.prototype.computeCullingVolume=function(e,t,n){return Nh(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};eu.prototype.getPixelDimensions=function(e,t,n,i,o){return Nh(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};eu.prototype.clone=function(e){return l(e)||(e=new eu),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};eu.prototype.equals=function(e){return!l(e)||!(e instanceof eu)?!1:(Nh(this),Nh(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};eu.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof eu)?!1:(Nh(this),Nh(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 Si=eu;var f2=`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 alphaRoughness, vec3 N)
{
    float alphaRoughnessSquared = alphaRoughness * alphaRoughness;
    float phi = 2.0 * M_PI * xi.x;
    float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 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;
}

/**
 * Estimate the geometric self-shadowing of the microfacets in a surface,
 * using the Smith Joint GGX visibility function.
 * Note: Vis = G / (4 * NdotL * NdotV)
 * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3
 * see Real-Time Rendering. Page 331 to 336.
 * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg)
 *
 * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness.
 * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source.
 * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera.
 */
float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV)
{
    float alphaRoughnessSq = alphaRoughness * alphaRoughness;

    float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq);
    float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq);

    float GGX = GGXV + GGXL; // 2.0 if NdotL = NdotV = 1.0
    if (GGX > 0.0)
    {
        return 0.5 / GGX; // 1/4 if NdotL = NdotV = 1.0
    }
    return 0.0;
}

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;
    float alphaRoughness = roughness * roughness;
    for (int i = 0; i < NumSamples; i++)
    {
        vec2 xi = hammersley2D(i, NumSamples);
        vec3 H = importanceSampleGGX(xi, alphaRoughness, 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 = smithVisibilityGGX(alphaRoughness, NdotL, NdotV);
            float G_Vis = 4.0 * G * VdotH * NdotL / NdotH;
            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 d2(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(d2.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Xut(e,t,n){let i=t.createViewportQuadCommand(f2,{framebuffer:n,renderState:Ve.fromCache({viewport:new je(0,0,256,256)})});e._drawCommand=i}d2.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Pt({context:t,width:256,height:256,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.NEAREST});this._colorTexture=n;let i=new Mr({context:t,colorTextures:[n],destroyAttachments:!1});Xut(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};d2.prototype.isDestroyed=function(){return!1};d2.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var h2=d2;var dxe={};function Kut(e,t,n){let i,o,r;if(e instanceof Si){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 hl)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var Zut=new h,lxe=new h;function hxe(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(u){let f=n(u);if(u<=.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 ZX(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,u=e.up,f=e.right,d=e.frustum,p=h.subtract(a,c,Zut),g=h.magnitude(h.multiplyByScalar(u,h.dot(p,u),lxe)),m=h.magnitude(h.multiplyByScalar(f,h.dot(p,f),lxe));r=Math.min(Kut(d,g,m)*.2,1e9)}if(s<r){let u=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-u)+u;return-Math.pow(p,8)/1e6+r}}return function(a){return P.lerp(n,i,a)}}function m2(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 mxe=new h;function $ut(e,t,n,i,o,r,s,a){let c=e.camera,u=h.clone(c.position,mxe),f=c.pitch,d=m2(c.heading,i),p=m2(c.roll,r),g=ZX(c,n,u.z,n.z,s),m=hxe(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)}}),z.lerp(u,n,T,c.position),c.position.z=g(T)}return x}function Qut(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function Jut(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 eft=new fe,tft=new fe;function nft(e,t,n,i,o,r,s,a,c,u){let f=e.camera,p=e.mapProjection.ellipsoid,g=fe.clone(f.positionCartographic,eft),m=f.pitch,x=m2(f.heading,i),b=m2(f.roll,r),T=p.cartesianToCartographic(n,tft);g.longitude=P.zeroToTwoPi(g.longitude),T.longitude=P.zeroToTwoPi(T.longitude);let C=!1;if(l(a)){let D=P.zeroToTwoPi(a),O=Math.min(g.longitude,T.longitude),R=Math.max(g.longitude,T.longitude),M=D>=O&&D<=R;if(l(c)){let N=Math.abs(g.longitude-T.longitude),_=P.TWO_PI-N;(M?N:_)<(M?_:N)*c&&!M&&(C=!0)}else M||(C=!0)}C?Qut(g,T):Jut(g,T);let A=ZX(f,n,g.height,T.height,s),E=hxe(m,o,A,u);function v(){let D=g.longitude,O=T.longitude,R=g.latitude,M=T.latitude;return function(_){let S=_.time/t,w=h.fromRadians(P.lerp(D,O,S),P.lerp(R,M,S),A(S),p);f.setView({destination:w,orientation:{heading:P.lerp(x,i,S),pitch:E(S),roll:P.lerp(b,r,S)}})}}return v()}function ift(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,mxe),u=m2(a.heading,i),f=a.frustum.right-a.frustum.left,d=ZX(a,n,f,n.z,s);function p(g){let m=g.time/t;a.setView({orientation:{heading:P.lerp(u,i,m)}}),z.lerp(c,n,m,a.position);let x=d(m),b=a.frustum,T=b.top/b.right,C=(x-(b.right-b.left))*.5;b.right+=C,b.left-=C,b.top=T*b.right,b.bottom=-b.top}return p}var uxe=new fe,oft=new h;function KX(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function fxe(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}dxe.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ne.MORPHING)return KX();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,u=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==ne.SCENE3D&&(s.cartesianToCartographic(n,uxe),n=r.project(uxe,oft));let p=e.camera,g=t.endTransform;l(g)&&p._setTransform(g);let m=t.duration;l(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),C=e.screenSpaceCameraController;C.enableInputs=!1;let A=fxe(C,t.complete),E=fxe(C,t.cancel),v=p.frustum,D=e.mode===ne.SCENE2D;if(D=D&&z.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(v.right-v.left,v.top-v.bottom),n.z,P.EPSILON6),D=D||e.mode!==ne.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 KX(A,E);let O=new Array(4);if(O[ne.SCENE2D]=ift,O[ne.SCENE3D]=nft,O[ne.COLUMBUS_VIEW]=$ut,m<=0)return KX(function(){O[i](e,1,n,x,b,T,a,c,u,f)({time:1}),typeof A=="function"&&A()},E);let R=O[i](e,m,n,x,b,T,a,c,u,f);if(!l(d)){let M=p.positionCartographic.height,N=i===ne.SCENE3D?s.cartesianToCartographic(n).height:n.z;M>N&&M>11500?d=qr.CUBIC_OUT:d=qr.QUINTIC_IN_OUT}return{duration:m,easingFunction:d,startObject:{time:0},stopObject:{time:m},update:R,complete:A,cancel:E}};var p2=dxe;var rft={ROTATE:0,INFINITE_SCROLL:1},tu=Object.freeze(rft);function en(e){this._scene=e,this._transform=F.clone(F.IDENTITY),this._invTransform=F.clone(F.IDENTITY),this._actualTransform=F.clone(F.IDENTITY),this._actualInvTransform=F.clone(F.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 Si,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 me,this._moveEnd=new me,this._changed=new me,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this._changedRoll=void 0,this.percentageChanged=.5,this._viewMatrix=new F,this._invViewMatrix=new F,Cxe(this),this._mode=ne.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,Lxe(this,en.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*en.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}en.TRANSFORM_2D=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);en.TRANSFORM_2D_INVERSE=F.inverseTransformation(en.TRANSFORM_2D,new F);en.DEFAULT_VIEW_RECTANGLE=re.fromDegrees(-95,-20,-70,90);en.DEFAULT_VIEW_FACTOR=.5;en.DEFAULT_OFFSET=new od(0,-P.PI_OVER_FOUR,0);function Cxe(e){F.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),F.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),F.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function sft(e){if(!l(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=xi()):e.timeSinceMoved=Math.max(xi()-e._lastMovedTimestamp,0)/1e3}}en.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==ne.SCENE2D};en.prototype._updateCameraChanged=function(){let e=this;if(sft(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(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;o>t&&(e._changedHeading=n);let r=e.roll;l(e._changedRoll)||(e._changedRoll=r);let s=Math.abs(e._changedRoll-r)%P.TWO_PI;s=s>P.PI?P.TWO_PI-s:s;let a=s/Math.PI;if(a>t&&(e._changedRoll=r),(a>t||o>t)&&e._changed.raiseEvent(Math.max(a,o)),e._mode===ne.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let p=e.position,g=e._changedPosition,m=e.frustum,x=e._changedFrustum,b=p.x+m.left,T=p.x+m.right,C=g.x+x.left,A=g.x+x.right,E=p.y+m.bottom,v=p.y+m.top,D=g.y+x.bottom,O=g.y+x.top,R=Math.max(b,C),M=Math.min(T,A),N=Math.max(E,D),_=Math.min(v,O),S;if(R>=M||N>=v)S=1;else{let w=x;b<C&&T>A&&E<D&&v>O&&(w=m),S=1-(M-R)*(_-N)/((w.right-w.left)*(w.top-w.bottom))}S>t&&(e._changed.raiseEvent(S),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let c=P.acosClamped(h.dot(e.directionWC,e._changedDirection)),u;l(e.frustum.fovy)?u=c/(e.frustum.fovy*.5):u=c;let d=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(u>t||d>t)&&(e._changed.raiseEvent(Math.max(u,d)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function aft(e){Mt.basisTo2D(e._projection,e._transform,e._actualTransform)}var cft=new fe,lft=new h,v8=new h,uft=new oe,fft=new oe,dft=new oe,hft=new oe,mft=new oe;function pft(e){let t=e._projection,n=t.ellipsoid,i=F.getColumn(e._transform,3,uft),o=n.cartesianToCartographic(i,cft),r=t.project(o,lft),s=fft;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=oe.clone(oe.UNIT_X,mft),c=oe.add(F.getColumn(e._transform,0,v8),i,v8);n.cartesianToCartographic(c,o),t.project(o,r);let u=dft;u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,h.subtract(u,s,u),u.x=0;let f=hft;if(h.magnitudeSquared(u)>P.EPSILON10)h.cross(a,u,f);else{let d=oe.add(F.getColumn(e._transform,1,v8),i,v8);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,u),oe.clone(oe.UNIT_Z,f))}h.cross(f,a,u),h.normalize(u,u),h.cross(a,u,f),h.normalize(f,f),F.setColumn(e._actualTransform,0,u,e._actualTransform),F.setColumn(e._actualTransform,1,f,e._actualTransform),F.setColumn(e._actualTransform,2,a,e._actualTransform),F.setColumn(e._actualTransform,3,s,e._actualTransform)}var $X=new h;function Dc(e){let t=e._mode,n=!1,i=0;t===ne.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,u=!h.equals(c,e.up);u&&(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&&(F.inverseTransformation(e._transform,e._invTransform),e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D?F.equals(F.IDENTITY,e._transform)?F.clone(en.TRANSFORM_2D,e._actualTransform):e._mode===ne.COLUMBUS_VIEW?aft(e):pft(e):F.clone(e._transform,e._actualTransform),F.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=F.multiplyByPoint(g,o,e._positionWC),t===ne.SCENE3D||t===ne.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let m=$X;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===ne.SCENE2D&&(m.z=i),e._projection.unproject(m,e._positionCartographic)}if(a||u||d){let m=h.dot(s,h.cross(c,f,$X));if(Math.abs(1-m)>P.EPSILON2){let x=1/h.magnitudeSquared(c),b=h.dot(c,s)*x,T=h.multiplyByScalar(s,b,$X);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=F.multiplyByPointAsVector(g,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(u||p)&&(e._upWC=F.multiplyByPointAsVector(g,c,e._upWC),h.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=F.multiplyByPointAsVector(g,f,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||u||d||p)&&Cxe(e)}function Axe(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 Exe(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function Sxe(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 I8=new F,P8=new F;Object.defineProperties(en.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return Dc(this),this._invTransform}},viewMatrix:{get:function(){return Dc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return Dc(this),this._invViewMatrix}},positionCartographic:{get:function(){return Dc(this),this._positionCartographic}},positionWC:{get:function(){return Dc(this),this._positionWC}},directionWC:{get:function(){return Dc(this),this._directionWC}},upWC:{get:function(){return Dc(this),this._upWC}},rightWC:{get:function(){return Dc(this),this._rightWC}},heading:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,I8),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,P8);this._setTransform(n);let i=Axe(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,I8),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,P8);this._setTransform(n);let i=Exe(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,I8),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,P8);this._setTransform(n);let i=Sxe(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}}});en.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ne.MORPHING,t=this._mode===ne.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===ne.SCENE2D&&Ixe(this,this.position)};var _ft=new h,gft=new h,yft=new h;en.prototype._setTransform=function(e){let t=h.clone(this.positionWC,_ft),n=h.clone(this.upWC,gft),i=h.clone(this.directionWC,yft);F.clone(e,this._transform),this._transformChanged=!0,Dc(this);let o=this._actualInvTransform;F.multiplyByPoint(o,t,this.position),F.multiplyByPointAsVector(o,i,this.direction),F.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),Dc(this)};var xft=new z,bft=new mn,Tft=new h,Cft=new h;function vxe(e){if(!F.equals(F.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=xft;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(l(n)){let a=e.getPickRay(i,bft);o=n.pickWorldCoordinates(a,t,!0,Tft)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,Cft));let s;if(l(o)||l(r)){let a=l(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}en.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof rn&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=vxe(this)))};var R8=new h,nK=new F,Aft=new F,iK=new Oe,oK=new $,wxe=new fe;function Eft(e,t,n){let i=F.clone(e.transform,nK),o=Mt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,Aft);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let r=Oe.fromHeadingPitchRoll(n,iK),s=$.fromQuaternion(r,oK);$.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 Sft(e,t,n,i){let o=F.clone(e.transform,nK);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,wxe);t=a.project(c,R8)}h.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let r=Oe.fromHeadingPitchRoll(n,iK),s=$.fromQuaternion(r,oK);$.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 vft(e,t,n,i){let o=F.clone(e.transform,nK);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,u=c.ellipsoid.cartesianToCartographic(t,wxe);t=c.project(u,R8)}z.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===tu.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let r=Oe.fromHeadingPitchRoll(n,iK),s=$.fromQuaternion(r,oK);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var wft=new h,Dft=new h,Ift=new h;function Dxe(e,t,n,i){let o=h.clone(n.direction,wft),r=h.clone(n.up,Dft);if(e._scene.mode===ne.SCENE3D){let a=e._projection.ellipsoid,c=Mt.eastNorthUpToFixedFrame(t,a,I8),u=F.inverseTransformation(c,P8);F.multiplyByPointAsVector(u,o,o),F.multiplyByPointAsVector(u,r,r)}let s=h.cross(o,r,Ift);return i.heading=Axe(o,r),i.pitch=Exe(o),i.roll=Sxe(o,r,s),i}var tK={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},tv=new Sa;en.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===ne.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,h.clone(this.positionWC,R8));l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,R8),i=!1),l(t.direction)&&(t=Dxe(this,o,t,tK.orientation)),tv.heading=y(t.heading,0),tv.pitch=y(t.pitch,-P.PI_OVER_TWO),tv.roll=y(t.roll,0),n===ne.SCENE3D?Eft(this,o,tv):n===ne.SCENE2D?vft(this,o,tv,i):Sft(this,o,tv,i)};var Pft=new h;en.prototype.flyHome=function(e){let t=this._mode;if(t===ne.MORPHING&&this._scene.completeMorph(),t===ne.SCENE2D)this.flyTo({destination:en.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:F.IDENTITY});else if(t===ne.SCENE3D){let n=this.getRectangleCameraCoordinates(en.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*en.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:F.IDENTITY})}else if(t===ne.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,Pft).z),roll:0},endTransform:F.IDENTITY,convert:!1})}};en.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new oe),Dc(this),F.multiplyByVector(this._actualInvTransform,e,t)};en.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPoint(this._actualInvTransform,e,t)};en.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPointAsVector(this._actualInvTransform,e,t)};en.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new oe),Dc(this),F.multiplyByVector(this._actualTransform,e,t)};en.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPoint(this._actualTransform,e,t)};en.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPointAsVector(this._actualTransform,e,t)};function Ixe(e,t){let n=e._scene.mapMode2D===tu.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 pxe=new h;en.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,pxe),h.add(n,pxe,n),this._mode===ne.SCENE2D&&Ixe(this,n),this._adjustOrthographicFrustum(!0)};en.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?O8(this,e):this.move(this.direction,e)};en.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?O8(this,-e):this.move(this.direction,-e)};en.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};en.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};en.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};en.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};en.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,-e)};en.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,e)};en.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,-e)};en.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,e)};var Rft=new Oe,Oft=new $;en.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Oe.fromAxisAngle(e,-n,Rft),o=$.fromQuaternion(i,Oft),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};en.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};en.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var Mft=new Oe,Lft=new $;en.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Oe.fromAxisAngle(e,-n,Mft),o=$.fromQuaternion(i,Lft);$.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)};en.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),Pxe(this,e)};en.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),Pxe(this,-e)};var Nft=new h,Fft=new h,Bft=new h,_xe=new h;function Pxe(e,t){let n=e.position;if(l(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,P.EPSILON2)){let i=h.normalize(n,Nft),o=h.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,_xe),P.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,Fft),a=h.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=h.dot(i,h.negate(s,_xe)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let u=h.cross(s,i,Bft);e.rotate(u,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}en.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),Rxe(this,-e)};en.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),Rxe(this,e)};function Rxe(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function O8(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===tu.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===tu.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 Oxe(e,t){e.move(e.direction,t)}en.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?O8(this,e):Oxe(this,e)};en.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?O8(this,-e):Oxe(this,-e)};en.prototype.getMagnitude=function(){if(this._mode===ne.SCENE3D)return h.magnitude(this.position);if(this._mode===ne.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ne.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var kft=new F;en.prototype.lookAt=function(e,t){let n=this._scene,i=y(n.ellipsoid,ee.default),o=Mt.eastNorthUpToFixedFrame(e,i,kft);this.lookAtTransform(o,t)};var Vft=new h,Uft=new Oe,zft=new Oe,Hft=new $;function Mxe(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=Oe.fromAxisAngle(h.UNIT_Y,-t,Uft),o=Oe.fromAxisAngle(h.UNIT_Z,-e,zft),r=Oe.multiply(o,i,o),s=$.fromQuaternion(r,Hft),a=h.clone(h.UNIT_X,Vft);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}en.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=Mxe(t.heading,t.pitch,t.range):n=t,this._mode===ne.SCENE2D){z.clone(z.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(F.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 _2=new fe,Gft=new fe,Wft=new h,jft=new h,qft=new h,Yft=new h,Xft=new h,Kft=new h,Zft=new h,QX=new h,$ft={direction:new h,right:new h,up:new h},gxe;function wc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function Lxe(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:$ft,{north:s,south:a,west:c}=t,{east:u}=t;c>u&&(u+=P.TWO_PI);let f=(c+u)*.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 M=_2;M.longitude=f,M.latitude=s,M.height=0;let N=Gft;N.longitude=f,N.latitude=a,N.height=0;let _=gxe;(!l(_)||_.ellipsoid!==o)&&(gxe=_=new Op(void 0,void 0,o)),_.setEndPoints(M,N),d=_.interpolateUsingFraction(.5,_2).latitude}let p=_2;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,Zft),m=_2;m.longitude=u,m.latitude=s;let x=o.cartographicToCartesian(m,Wft);m.longitude=c;let b=o.cartographicToCartesian(m,qft);m.longitude=f;let T=o.cartographicToCartesian(m,Xft);m.latitude=a;let C=o.cartographicToCartesian(m,Kft);m.longitude=u;let A=o.cartographicToCartesian(m,Yft);m.longitude=c;let E=o.cartographicToCartesian(m,jft);h.subtract(b,g,b),h.subtract(A,g,A),h.subtract(x,g,x),h.subtract(E,g,E),h.subtract(T,g,T),h.subtract(C,g,C);let v=o.geodeticSurfaceNormal(g,r.direction);h.negate(v,v);let D=h.cross(v,h.UNIT_Z,r.right);h.normalize(D,D);let O=h.cross(D,v,r.up),R;if(e.frustum instanceof rn){let M=Math.max(h.distance(x,b),h.distance(A,E)),N=Math.max(h.distance(x,A),h.distance(b,E)),_,S,w=e.frustum._offCenterFrustum,I=w.right/w.top,L=N*I;M>L?(_=M,S=_/I):(S=N,_=L),R=Math.max(_,S)}else{let M=Math.tan(e.frustum.fovy*.5),N=e.frustum.aspectRatio*M;if(R=Math.max(wc(v,O,b,M),wc(v,O,A,M),wc(v,O,x,M),wc(v,O,E,M),wc(v,O,T,M),wc(v,O,C,M),wc(v,D,b,N),wc(v,D,A,N),wc(v,D,x,N),wc(v,D,E,N),wc(v,D,T,N),wc(v,D,C,N)),a<0&&s>0){let _=_2;_.longitude=c,_.latitude=0,_.height=0;let S=o.cartographicToCartesian(_,QX);h.subtract(S,g,S),R=Math.max(R,wc(v,O,S,M),wc(v,D,S,N)),_.longitude=u,S=o.cartographicToCartesian(_,QX),h.subtract(S,g,S),R=Math.max(R,wc(v,O,S,M),wc(v,D,S,N))}}return h.add(g,h.multiplyByScalar(v,-R,QX),n)}var Qft=new fe,Jft=new h,edt=new h;function tdt(e,t,n){let i=e._projection;t.west>t.east&&(t=re.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Qft;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,Jft);F.multiplyByPoint(o,a,a),F.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,edt);if(F.multiplyByPoint(o,c,c),F.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let u=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*u;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/u)*.5}else{let u=a.x-c.x,f=a.y-c.y;n.z=Math.max(u,f)}return n}var ndt=new fe,idt=new h,odt=new h;function rdt(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===tu.INFINITE_SCROLL?o+=P.TWO_PI:(t=re.MAX_VALUE,o=t.east));let r=ndt;r.longitude=o,r.latitude=t.north;let s=i.project(r,idt);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,odt),c=Math.abs(s.x-a.x)*.5,u=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=u*p;return c>g?(f=c,d=f/p):(d=u,f=g),u=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=u,n=i.project(r,n),n}en.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new h),n===ne.SCENE3D)return Lxe(this,e,t);if(n===ne.COLUMBUS_VIEW)return tdt(this,e,t);if(n===ne.SCENE2D)return rdt(this,e,t)};var sdt=new mn;function adt(e,t,n,i){n=y(n,ee.default);let o=e.getPickRay(t,sdt),r=$n.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return mn.getPoint(o,s,i)}var cdt=new mn;function ldt(e,t,n,i){let r=e.getPickRay(t,cdt).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 udt=new mn;function fdt(e,t,n,i){let o=e.getPickRay(t,udt),r=-o.origin.x/o.direction.x;mn.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)}en.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new h),t=y(t,ee.default),this._mode===ne.SCENE3D)n=adt(this,e,t,n);else if(this._mode===ne.SCENE2D)n=ldt(this,e,this._projection,n);else if(this._mode===ne.COLUMBUS_VIEW)n=fdt(this,e,this._projection,n);else return;return n}};var ddt=new h,hdt=new h,mdt=new h;function pdt(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,u=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,ddt);h.add(d,p,p);let g=h.multiplyByScalar(e.rightWC,u*c*a,hdt),m=h.multiplyByScalar(e.upWC,f*c*s,mdt),x=h.add(p,g,n.direction);return h.add(x,m,x),h.subtract(x,d,x),h.normalize(x,x),n}var w8=new h;function _dt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let u=2/r*(r-t.y)-1;u*=(s.top-s.bottom)*.5;let f=n.origin;return h.clone(e.position,f),h.multiplyByScalar(e.right,c,w8),h.add(w8,f,f),h.multiplyByScalar(e.up,u,w8),h.add(w8,f,f),h.clone(e.directionWC,n.direction),(e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}en.prototype.getPickRay=function(e,t){l(t)||(t=new mn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?pdt(this,e,t):_dt(this,e,t)};var gdt=new h,ydt=new h;en.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,gdt),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),ydt);return Math.max(0,h.magnitude(n)-e.radius)};var xdt=new z;en.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,xdt);return Math.max(o.x,o.y)};function bdt(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 u=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(u,e.position)}return{easingFunction:qr.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var Tdt=new h,yxe=new h,Cdt=new h,Adt=new h;function Edt(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,Tdt),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,yxe),yxe);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,Cdt);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,u=h.magnitude(h.subtract(n,s,Adt)),f=c*u,d=a*u,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 bdt(e,n,s,m,x,t)}}en.prototype.createCorrectPositionTween=function(e){if(this._mode===ne.COLUMBUS_VIEW)return Edt(this,e)};var Sdt=new h,ta={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};en.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};en.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=ta.destination,e.orientation.heading=ta.heading,e.orientation.pitch=ta.pitch,e.orientation.roll=ta.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};en.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===ne.MORPHING)return;this.cancelFlight();let i=t instanceof re;i&&(t=this.getRectangleCameraCoordinates(t,Sdt));let o=y(e.orientation,y.EMPTY_OBJECT);if(l(o.direction)&&(o=Dxe(this,t,o,tK.orientation)),l(e.duration)&&e.duration<=0){let f=tK;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;ta.destination=t,ta.heading=o.heading,ta.pitch=o.pitch,ta.roll=o.roll,ta.duration=e.duration,ta.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},ta.cancel=e.cancel,ta.endTransform=e.endTransform,ta.convert=i?!1:e.convert,ta.maximumHeight=e.maximumHeight,ta.pitchAdjustHeight=e.pitchAdjustHeight,ta.flyOverLongitude=e.flyOverLongitude,ta.flyOverLongitudeWeight=e.flyOverLongitudeWeight,ta.easingFunction=e.easingFunction;let a=this._scene,c=p2.createTween(a,ta);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let u=this._scene.preloadFlightCamera;this._mode!==ne.SCENE2D&&(l(u)||(u=en.clone(this)),u.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=u.frustum.computeCullingVolume(u.positionWC,u.directionWC,u.upWC))};function vdt(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function wdt(e,t){let n=e.frustum,i=n.offCenterFrustum;l(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 Ddt=100;function Nxe(e,t,n){n=od.clone(l(n)?n:en.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=Ddt:e.frustum instanceof rn||e._mode===ne.SCENE2D?n.range=wdt(e,s):n.range=vdt(e,s),n.range=P.clamp(n.range,i,o)}return n}en.prototype.viewBoundingSphere=function(e,t){t=Nxe(this,e,t),this.lookAt(e.center,t)};var Idt=new F,Pdt=new h,Rdt=new h,Odt=new h,Mdt=new h,Ldt=new oe,Ndt=new Oe,Fdt=new $;en.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===ne.SCENE2D||this._mode===ne.COLUMBUS_VIEW;this._setTransform(F.IDENTITY);let i=Nxe(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,Pdt):o=Mxe(i.heading,i.pitch,i.range);let r=this._scene,s=y(r.ellipsoid,ee.default),a=Mt.eastNorthUpToFixedFrame(e.center,s,Idt);F.multiplyByPoint(a,o,o);let c,u;if(!n){if(c=h.subtract(e.center,o,Rdt),h.normalize(c,c),u=F.multiplyByPointAsVector(a,h.UNIT_Z,Odt),1-Math.abs(h.dot(c,u))<P.EPSILON6){let d=Oe.fromAxisAngle(c,i.heading,Ndt),p=$.fromQuaternion(d,Fdt);h.fromCartesian4(F.getColumn(a,1,Ldt),u),$.multiplyByVector(p,u,u)}let f=h.cross(c,u,Mdt);h.cross(f,c,u),h.normalize(u,u)}this.flyTo({destination:o,orientation:{direction:c,up:u},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 xxe=new h,bxe=new h,JX=new h,Txe=new h,g2=[new h,new h,new h,new h];function Bdt(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,xxe),r=h.magnitude(o),s=h.normalize(o,bxe),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,JX),JX),c=h.normalize(h.cross(s,a,Txe),Txe));let u=Math.sqrt(h.magnitudeSquared(o)-1),f=h.multiplyByScalar(s,1/r,xxe),d=u/r,p=h.multiplyByScalar(a,d,bxe),g=h.multiplyByScalar(c,d,JX),m=h.add(f,g,g2[0]);h.subtract(m,p,m),h.multiplyComponents(n,m,m);let x=h.subtract(f,g,g2[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let b=h.subtract(f,g,g2[2]);h.add(b,p,b),h.multiplyComponents(n,b,b);let T=h.add(f,g,g2[3]);return h.add(T,p,T),h.multiplyComponents(n,T,T),g2}var eK=new z,kdt=new h,E0=[new fe,new fe,new fe,new fe];function D8(e,t,n,i,o,r){eK.x=e,eK.y=t;let s=i.pickEllipsoid(eK,o,kdt);return l(s)?(E0[n]=o.cartesianToCartographic(s,E0[n]),1):(E0[n]=o.cartesianToCartographic(r[n],E0[n]),0)}en.prototype.computeViewRectangle=function(e,t){e=y(e,ee.default);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new se(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===jt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,u=Bdt(this,e);if(c+=D8(0,0,0,this,e,u),c+=D8(0,a,1,this,e,u),c+=D8(s,a,2,this,e,u),c+=D8(s,0,3,this,e,u),c<2)return re.MAX_VALUE;t=re.fromCartographicArray(E0,t);let f=0,d=E0[3].longitude;for(let p=0;p<4;++p){let g=E0[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,E0[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};en.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof Si)return;let e=this._scene;this.frustum=new Si,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};en.prototype.switchToOrthographicFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof rn)return;let e=vxe(this),t=this._scene;this.frustum=new rn,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};en.clone=function(e,t){return l(t)||(t=new en(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),F.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var ro=en;function Vdt(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var hd=Vdt;var Uxe=Vo(au(),1),Fxe=576,Udt=100,y2="#ffffff",M8="#48b";function zxe(e,t){this.credit=e,this.count=y(t,1)}function zdt(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(vt.equals(o,t))return!0}return!1}function Hdt(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;vt.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var Hxe="cesium-credit-delimiter";function Bxe(e){let t=document.createElement("span");return t.textContent=e,t.className=Hxe,t}function kxe(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function Vxe(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(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let u=r-1;if(o.length<=u)e.appendChild(Bxe(n));else{let f=o[u];f.className!==Hxe&&e.replaceChild(Bxe(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(kxe(c,i));else{let u=o[r];u._creditId!==a._id&&e.replaceChild(kxe(c,i),u)}}}for(++r;r<o.length;)e.removeChild(o[r])}function Gdt(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<Fxe?(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>=Fxe&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function Wdt(e){let t=`
.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);
}

.cesium-credit-lightbox {
  background-color: #303336;
  color: ${y2};
  position: relative;
  min-height: ${Udt}px;
  margin: auto;
}
.cesium-credit-lightbox > ul > li a,
.cesium-credit-lightbox > ul > li a:visited,
.cesium-credit-wrapper a,
.cesium-credit-wrapper a:visited {
  color: ${y2};
}
.cesium-credit-lightbox > ul > li a:hover {
  color: ${M8};
}
.cesium-credit-lightbox.cesium-credit-lightbox-expanded {
  border: 1px solid #444;
  border-radius: 5px;
  max-width: 370px;
}
.cesium-credit-lightbox.cesium-credit-lightbox-mobile {
  height: 100%;
  width: 100%;
}
.cesium-credit-lightbox-title {
  padding: 20px 20px 0 20px;
}
.cesium-credit-lightbox-close {
  font-size: 18pt;
  cursor: pointer;
  position: absolute;
  top: 0;
  right: 6px;
  color: ${y2};
}
.cesium-credit-lightbox-close:hover {
  color: ${M8};
}
.cesium-credit-lightbox > ul {
  margin: 0;
  padding: 12px 20px 12px 40px;
  font-size: 13px;
}
.cesium-credit-lightbox > ul > li {
  padding-bottom: 6px;
}
.cesium-credit-lightbox > ul > li * {
  padding: 0;
  margin: 0;
}

.cesium-credit-expand-link {
  padding-left: 5px;
  cursor: pointer;
  text-decoration: underline;
  color: ${y2};
}
.cesium-credit-expand-link:hover {
  color: ${M8};
}

.cesium-credit-text {
  color: ${y2};
}

.cesium-credit-delimiter {
  padding: 0 5px;
}

.cesium-credit-textContainer *,
.cesium-credit-logoContainer * {
  display: inline;
}

.cesium-credit-textContainer a:hover {
  color: ${M8}
}

.cesium-credit-textContainer .cesium-credit-wrapper:first-of-type {
  padding-left: 5px;
}
`;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 _r(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="&times;",c.className="cesium-credit-lightbox-close",r.appendChild(c);let u=document.createElement("ul");r.appendChild(u);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),Wdt(e);let g=vt.clone(_r.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=u,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 Et,lightboxCredits:new Et},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Gxe(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(l(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 zxe(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}_r.prototype.addCreditToNextFrame=function(e){if(e.isIon()){l(this._defaultCredit)||(this._defaultCredit=vt.clone(Wxe())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Gxe(this,t,e)};_r.prototype.addStaticCredit=function(e){let t=this._staticCredits;zdt(t,e)||t.push(e)};_r.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};_r.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};_r.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};_r.prototype.update=function(){this._expanded&&Gdt(this)};_r.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()&&vt.equals(_r.cesiumCredit,this._cesiumCredit)||Gxe(this,s,r,Number.MAX_VALUE)}vt.equals(_r.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=vt.clone(_r.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};_r.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;Vxe(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",Vxe(this._creditList,t,void 0,"li"),Hdt(this)};_r.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),ue(this)};_r.prototype.isDestroyed=function(){return!1};_r._cesiumCredit=void 0;_r._cesiumCreditInitialized=!1;var L8;function Wxe(){if(!l(L8)){let e=nn("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new Uxe.default(e).path()),L8=new vt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" style="vertical-align: -7px" title="Cesium ion"/></a>`,!0)}return _r._cesiumCreditInitialized||(_r._cesiumCredit=L8,_r._cesiumCreditInitialized=!0),L8}Object.defineProperties(_r,{cesiumCredit:{get:function(){return Wxe(),_r._cesiumCredit},set:function(e){_r._cesiumCredit=e,_r._cesiumCreditInitialized=!0}}});_r.CreditDisplayElement=zxe;var x2=_r;var N8=0,jdt=1;function FT(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof Si?(s=N8,a=Si.packedLength):t instanceof rn&&(s=jdt,a=rn.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Oe.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Oe.packedLength+Ie.packedLength}FT.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===N8?(Si.pack(o,t,n),n+=Si.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Oe.pack(e._orientation,t,n),n+=Oe.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n]=e._drawNearPlane?1:0,t};var qdt=new Si,Ydt=new rn,Xdt=new Oe,Kdt=new h,Zdt=new Ie;FT.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===N8?(o=Si.unpack(e,t,qdt),t+=Si.packedLength):(o=rn.unpack(e,t,Ydt),t+=rn.packedLength);let r=h.unpack(e,t,Kdt);t+=h.packedLength;let s=Oe.unpack(e,t,Xdt);t+=Oe.packedLength;let a=Ie.unpack(e,t,Zdt);t+=Ie.packedLength;let c=e[t]===1;if(!l(n))return new FT({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let u=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(u),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Oe.clone(s,n._orientation),n._vertexFormat=Ie.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function nv(e,t,n,i,o,r,s,a){let c=e/3*2;for(let u=0;u<4;++u)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(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 $dt=new $,Qdt=new F,rK=new F,jxe=new h,qxe=new h,Yxe=new h,Jdt=new h,eht=new h,tht=new h,S0=new Array(3),b2=new Array(4);b2[0]=new oe(-1,-1,1,1);b2[1]=new oe(1,-1,1,1);b2[2]=new oe(1,1,1,1);b2[3]=new oe(-1,1,1,1);var Xxe=new Array(4);for(let e=0;e<4;++e)Xxe[e]=new oe;FT._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,$dt),u=y(r,jxe),f=y(s,qxe),d=y(a,Yxe);u=$.getColumn(c,0,u),f=$.getColumn(c,1,f),d=$.getColumn(c,2,d),h.normalize(u,u),h.normalize(f,f),h.normalize(d,d),h.negate(u,u);let p=F.computeView(e,d,f,u,Qdt),g,m,x=i.projectionMatrix;if(n===N8){let b=F.multiply(x,p,rK);m=F.inverse(b,rK)}else g=F.inverseTransformation(p,rK);l(m)?(S0[0]=i.near,S0[1]=i.far):(S0[0]=0,S0[1]=i.near,S0[2]=i.far);for(let b=0;b<2;++b)for(let T=0;T<4;++T){let C=oe.clone(b2[T],Xxe[T]);if(l(m)){C=F.multiplyByVector(m,C,C);let A=1/C.w;h.multiplyByScalar(C,A,C),h.subtract(C,e,C),h.normalize(C,C);let E=h.dot(d,C);h.multiplyByScalar(C,S0[b]/E,C),h.add(C,e,C)}else{let A=i.offCenterFrustum;l(A)&&(i=A);let E=S0[b],v=S0[b+1];C.x=(C.x*(i.right-i.left)+i.left+i.right)*.5,C.y=(C.y*(i.top-i.bottom)+i.bottom+i.top)*.5,C.z=(C.z*(E-v)-E-v)*.5,C.w=1,F.multiplyByVector(g,C,C)}o[12*b+T*3]=C.x,o[12*b+T*3+1]=C.y,o[12*b+T*3+2]=C.z}};FT.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);FT._computeNearFarPlanes(i,o,t,n,c);let u=3*4*2;c[u]=c[3*4],c[u+1]=c[3*4+1],c[u+2]=c[3*4+2],c[u+3]=c[0],c[u+4]=c[1],c[u+5]=c[2],c[u+6]=c[3*3],c[u+7]=c[3*3+1],c[u+8]=c[3*3+2],c[u+9]=c[3*7],c[u+10]=c[3*7+1],c[u+11]=c[3*7+2],u+=3*4,c[u]=c[3*5],c[u+1]=c[3*5+1],c[u+2]=c[3*5+2],c[u+3]=c[3],c[u+4]=c[4],c[u+5]=c[5],c[u+6]=c[0],c[u+7]=c[1],c[u+8]=c[2],c[u+9]=c[3*4],c[u+10]=c[3*4+1],c[u+11]=c[3*4+2],u+=3*4,c[u]=c[3],c[u+1]=c[4],c[u+2]=c[5],c[u+3]=c[3*5],c[u+4]=c[3*5+1],c[u+5]=c[3*5+2],c[u+6]=c[3*6],c[u+7]=c[3*6+1],c[u+8]=c[3*6+2],c[u+9]=c[3*2],c[u+10]=c[3*2+1],c[u+11]=c[3*2+2],u+=3*4,c[u]=c[3*2],c[u+1]=c[3*2+1],c[u+2]=c[3*2+2],c[u+3]=c[3*6],c[u+4]=c[3*6+1],c[u+5]=c[3*6+2],c[u+6]=c[3*7],c[u+7]=c[3*7+1],c[u+8]=c[3*7+2],c[u+9]=c[3*3],c[u+10]=c[3*3+1],c[u+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,g=l(s.tangent)?new Float32Array(3*4*a):void 0,m=l(s.bitangent)?new Float32Array(3*4*a):void 0,x=l(s.st)?new Float32Array(2*4*a):void 0,b=jxe,T=qxe,C=Yxe,A=h.negate(b,Jdt),E=h.negate(T,eht),v=h.negate(C,tht);u=0,r&&(nv(u,p,g,m,x,v,b,T),u+=3*4),nv(u,p,g,m,x,C,A,T),u+=3*4,nv(u,p,g,m,x,A,v,T),u+=3*4,nv(u,p,g,m,x,E,v,A),u+=3*4,nv(u,p,g,m,x,b,C,T),u+=3*4,nv(u,p,g,m,x,T,C,A),l(p)&&(f.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),l(g)&&(f.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),l(m)&&(f.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),l(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 at({attributes:f,indices:d,primitiveType:Me.TRIANGLES,boundingSphere:se.fromVertices(c)})};var BT=FT;var sK=0,nht=1;function T2(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof Si?(r=sK,s=Si.packedLength):t instanceof rn&&(r=nht,s=rn.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Oe.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Oe.packedLength}T2.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===sK?(Si.pack(o,t,n),n+=Si.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Oe.pack(e._orientation,t,n),n+=Oe.packedLength,t[n]=e._drawNearPlane?1:0,t};var iht=new Si,oht=new rn,rht=new Oe,sht=new h;T2.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===sK?(o=Si.unpack(e,t,iht),t+=Si.packedLength):(o=rn.unpack(e,t,oht),t+=rn.packedLength);let r=h.unpack(e,t,sht);t+=h.packedLength;let s=Oe.unpack(e,t,rht);t+=Oe.packedLength;let a=e[t]===1;if(!l(n))return new T2({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=Oe.clone(s,n._orientation),n._drawNearPlane=a,n};T2.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);BT._computeNearFarPlanes(i,o,t,n,s);let a=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,u,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,u=p*4,d[c]=u,d[c+1]=u+1,d[c+2]=u+1,d[c+3]=u+2,d[c+4]=u+2,d[c+5]=u+3,d[c+6]=u+3,d[c+7]=u;for(p=0;p<2;++p)c=(f+p)*8,u=p*4,d[c]=u,d[c+1]=u+4,d[c+2]=u+1,d[c+3]=u+5,d[c+4]=u+2,d[c+5]=u+6,d[c+6]=u+3,d[c+7]=u+7;return new at({attributes:a,indices:d,primitiveType:Me.LINES,boundingSphere:se.fromVertices(s)})};var C2=T2;function F8(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,H.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 aht=new h,cht=new $,lht=new Oe,uht=new Si,fht=new hl,dht=new rn,hht=new Lr,mht=new H,pht=[1,1e5];F8.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 Si?a=uht:s instanceof hl?a=fht:s instanceof rn?a=dht:a=hht,a=s.clone(a);let c,u=this._frustumSplits;!l(u)||u.length<=1?(u=pht,u[0]=this._camera.frustum.near,u[1]=this._camera.frustum.far,c=1):c=u.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=h.negate(g,aht);let m=cht;$.setColumn(m,0,g,m),$.setColumn(m,1,p,m),$.setColumn(m,2,d,m);let x=Oe.fromRotationMatrix(m,lht);for(t.length=n.length=c,i=0;i<c;++i)a.near=u[i],a.far=u[i+1],t[i]=new Dn({geometryInstances:new St({geometry:new BT({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Wt.fromColor(H.fromAlpha(this._color,.1,mht))},id:this.id,pickPrimitive:this}),appearance:new ln({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new Dn({geometryInstances:new St({geometry:new C2({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Wt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};F8.prototype.isDestroyed=function(){return!1};F8.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 ue(this)};var Jm=F8;var A2=`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); // left, bottom
        vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top
        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 E2=`in vec4 position;

out vec4 positionEC;

void main()
{
    positionEC = czm_modelView * position;
    gl_Position = czm_modelViewProjection * position;

    czm_vertexLogDepth();
}
`;function v2(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 S2=Ht.supportsTypedArrays()?new Float32Array(12):[],Kxe=new h,Zxe=new h,aK=new h,$xe=new h,B8=new h;function _ht(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof rn)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,d,Kxe),g=h.normalize(p,Zxe),m=h.normalize(h.cross(h.UNIT_Z,p,aK),aK),x=h.normalize(h.cross(g,m,$xe),$xe),b=h.magnitude(p),T=Math.sqrt(b*b-1);o=h.multiplyByScalar(g,1/b,Kxe);let C=T/b;r=h.multiplyByScalar(m,C,Zxe),s=h.multiplyByScalar(x,C,aK)}let a=h.add(o,s,B8);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,S2,0);let c=h.subtract(o,s,B8);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,S2,3);let u=h.add(o,s,B8);h.add(u,r,u),h.multiplyComponents(n,u,u),h.pack(u,S2,6);let f=h.subtract(o,s,B8);return h.add(f,r,f),h.multiplyComponents(n,f,f),h.pack(f,S2,9),S2}v2.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ne.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new ee(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new Ze({renderState:this._rs,boundingVolume:new se(h.ZERO,i.maximumRadius),pass:ve.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new Ue({sources:[E2]}),a=new Ue({sources:[A2]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Qt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=_ht(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new at({attributes:{position:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Me.TRIANGLES});this._va=ti.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};v2.prototype.execute=function(e,t){this._mode===ne.SCENE3D&&this._command.execute(e,t)};v2.prototype.isDestroyed=function(){return!1};v2.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var w2=v2;function ov(){}var ght=/\bgl_FragDepth\b/,yht=/\bdiscard\b/;function xht(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(l(n))return n;let i=t.fragmentShaderSource,o=!1,r=i.sources;for(let a=0;a<r.length;++a)if(ght.test(r[a])||yht.test(r[a])){o=!0;break}let s=i.defines.indexOf("LOG_DEPTH")>=0;if(!o&&!s){let a=`void main()
{
    out_FragColor = vec4(1.0);
}
`;i=new Ue({sources:[a]})}else if(!o&&s){let a=`void main()
{
    out_FragColor = vec4(1.0);
    czm_writeLogDepth();
}
`;i=new Ue({defines:["LOG_DEPTH"],sources:[a]})}return e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}function bht(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ve.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1};let r=Ve.fromCache(o);return n[t.id]=r,r}ov.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.depthOnlyCommand?.shaderProgram,r=i.depthOnlyCommand?.renderState;return i.depthOnlyCommand=Ze.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=xht(n,t.shaderProgram),i.depthOnlyCommand.renderState=bht(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var Tht=/\s+czm_writeLogDepth\(/,Cht=/\s+czm_vertexLogDepth\(/;function Aht(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(l(i))return i;let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a=!1,c=r.sources;for(let f=0;f<c.length;++f)if(Cht.test(c[f])){a=!0;break}if(!a){for(let d=0;d<c.length;++d)c[d]=Ue.replaceMain(c[d],"czm_log_depth_main");c.push(`

void main()
{
    czm_log_depth_main();
    czm_vertexLogDepth();
}
`)}c=s.sources,a=!1;for(let f=0;f<c.length;++f)Tht.test(c[f])&&(a=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(a=!0);let u="";if(!a){for(let f=0;f<c.length;f++)c[f]=Ue.replaceMain(c[f],"czm_log_depth_main");u=`
void main()
{
    czm_log_depth_main();
    czm_writeLogDepth();
}
`}return c.push(u),e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}ov.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=Ze.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Aht(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function Eht(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(l(i))return i;let o=t._attributeLocations,{sources:r,defines:s}=t.fragmentShaderSource,c=r.some(g=>g.includes("out_FragData"))?"out_FragData_0":"out_FragColor",u=`void main () 
{ 
    czm_non_pick_main(); 
    if (${c}.a == 0.0) { 
        discard; 
    } 
    ${c} = ${n}; 
} `,f=r.length,d=new Array(f+1);for(let g=0;g<f;++g)d[g]=Ue.replaceMain(r[g],"czm_non_pick_main");d[f]=u;let p=new Ue({sources:d,defines:s});return e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:p,attributeLocations:o})}function Qxe(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ve.getState(t);o.blending.enabled=!1,o.depthMask=!0;let r=Ve.fromCache(o);return n[t.id]=r,r}ov.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.pickCommand?.shaderProgram,r=i.pickCommand?.renderState;return i.pickCommand=Ze.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=Eht(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=Qxe(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function iv(e,t,n){let i=e.length;for(let o=0;o<i;o++)e[o].trimStart().split(/\s+/)[0]===t&&(e[o]=`${t} ${n}`)}function Jxe(e){return e.isArray?e.arrayLength:At.getComponentCount(e.type)}function Sht(e){let t=Jxe(e);return e.normalized?t===1?"float":`vec${t}`:t===1?"int":`ivec${t}`}function vht(e,t,n){let i=n.schemaId,o=n.className,r=n.propertyName,s=`pickMetadata-${i}-${o}-${r}`,a=e.shaderCache.getDerivedShaderProgram(t,s);if(l(a))return a;let c=n.classProperty,u=Sht(c),f=["0.0","0.0","0.0","0.0"],d=Jxe(c);if(d===1)f[0]="float(value)";else{let x=["x","y","z","w"];for(let b=0;b<d;b++){let C=`value.${x[b]}`;f[b]=`float(${C})`}}if(!c.normalized)for(let x=0;x<d;x++)f[x]+=" / 255.0";let p=t.fragmentShaderSource.defines.slice();p.push(Su.METADATA_PICKING_ENABLED),iv(p,Su.METADATA_PICKING_VALUE_TYPE,u),iv(p,Su.METADATA_PICKING_VALUE_STRING,`metadata.${r}`),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_X,f[0]),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_Y,f[1]),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_Z,f[2]),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_W,f[3]);let g=new Ue({sources:t.fragmentShaderSource.sources,defines:p});return e.shaderCache.createDerivedShaderProgram(t,s,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:g,attributeLocations:t._attributeLocations})}ov.createPickMetadataDerivedCommand=function(e,t,n,i){return l(i)||(i={}),i.pickMetadataCommand=Ze.shallowClone(t,i.pickMetadataCommand),i.pickMetadataCommand.shaderProgram=vht(n,t.shaderProgram,t.pickedMetadataInfo),i.pickMetadataCommand.renderState=Qxe(e,t.renderState),i.shaderProgramId=t.shaderProgram.id,i};function wht(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(l(n))return n;let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();return o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}ov.createHdrCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=Ze.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=wht(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var ep=ov;function k8(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(!l(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 Dht=new Oe,ebe=new Oe,Iht=new $;function Pht(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Oe.fromAxisAngle(o,n,ebe),c=Oe.fromAxisAngle(r,i,Dht),u=Oe.multiply(c,a,c),f=Oe.fromAxisAngle(s,t,ebe);Oe.multiply(f,u,u);let d=$.fromQuaternion(u,Iht);$.multiplyByVector(d,r,r),$.multiplyByVector(d,s,s),$.multiplyByVector(d,o,o)}k8.prototype.update=function(){if(!l(this._alpha))return;l(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;Pht(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};k8.prototype.isDestroyed=function(){return!1};k8.prototype.destroy=function(){return this._removeListener(),ue(this)};var D2=k8;function cK(){this.enabled=!0,this.renderable=!0,this.density=6e-4,this.heightScalar=.001,this._heightFalloff=.59,this.maxHeight=8e5,this.visualDensityScalar=.15,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}Object.defineProperties(cK.prototype,{heightFalloff:{get:function(){return this._heightFalloff},set:function(e){this._heightFalloff=e}}});var Rht=new h;cK.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>this.maxHeight||e.mode!==ne.SCENE3D){e.fog.enabled=!1,e.fog.density=0;return}let o=i.height,r=this.density*this.heightScalar*Math.pow(Math.max(o/this.maxHeight,P.EPSILON4),-Math.max(this._heightFalloff,0)),s=h.normalize(n.positionWC,Rht),a=Math.abs(h.dot(n.directionWC,s));r*=1-a,e.fog.density=r,e.fog.visualDensityScalar=this.visualDensityScalar,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var I2=cK;function Oht(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=ne.SCENE3D,this.morphTime=ne.getMorphTime(ne.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,pickVoxel:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,renderable:!1,density:void 0,visualDensityScalar:void 0,sse:void 0,minimumBrightness:void 0},this.atmosphere=void 0,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=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,this.pickingMetadata=!1,this.pickedMetadataInfo=void 0}var P2=Oht;var ba={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},kT=ba.DERIVED_COMMANDS_MAXIMUM_LENGTH,ube=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function VT(){this._frontFaceAlphaByDistance=new Bt(0,1,0,1),this._backFaceAlphaByDistance=new Bt(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=re.clone(re.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(kT),this._derivedBlendCommandTypes=new Array(kT),this._derivedPickCommandTypes=new Array(kT),this._derivedCommandTypesToUpdate=new Array(kT),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(VT.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}}});VT.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=tbe(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=tbe(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=nbe(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=nbe(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=Fht(this,e,t),this._sunVisibleThroughGlobe=Mht(this,e),this._environmentVisible=Lht(this,e),this._useDepthPlane=Nht(this,e),this._numberOfTextureUniforms=Bht(this),this._rectangle=re.clone(t.translucency.rectangle,this._rectangle),kht(this,e)};function tbe(e,t,n,i){return e?l(n)?(Bt.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 nbe(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function Mht(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function Lht(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function Nht(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function Fht(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ne.SCENE2D&&t.context.depthTexture}function Bht(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function kht(e,t){e._derivedCommandsLength=lK(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=lK(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=lK(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<kT;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=Jht())}function lK(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,u=e._requiresManualDepthTest,f=i?ba.PICK_FRONT_FACE:u?ba.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:ba.TRANSLUCENT_FRONT_FACE,d=i?ba.PICK_BACK_FACE:u?ba.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:ba.TRANSLUCENT_BACK_FACE;return t.mode===ne.SCENE2D?(o[r++]=ba.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=ba.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=ba.DEPTH_ONLY_BACK_FACE),o[r++]=ba.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=ba.DEPTH_ONLY_FRONT_FACE),o[r++]=ba.OPAQUE_BACK_FACE,o[r++]=f),r)}function md(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function ibe(e,t){return e.indexOf(t)>-1}function Vht(e,t){md(e.defines,"TRANSLUCENT"),md(t.defines,"TRANSLUCENT")}function Uht(e,t){md(e.defines,"GROUND_ATMOSPHERE"),md(t.defines,"GROUND_ATMOSPHERE"),md(e.defines,"FOG"),md(t.defines,"FOG"),md(e.defines,"TRANSLUCENT"),md(t.defines,"TRANSLUCENT")}function uK(e,t){if(ibe(t.defines,"TILE_LIMIT_RECTANGLE")||ibe(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() 
{ 
    out_FragColor = vec4(1.0); 
} 
`;t.sources=[n]}function fK(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=Ue.replaceMain(n[r],"czm_globe_translucency_main");n.push(`

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) 
    { 
        // Reverse premultiplication process to get the correct composited result of the classification primitives 
        classificationColor.rgb /= classificationColor.a; 
    } 
    out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); 
} 
`)}function fbe(e,t){fK(e,t),md(e.defines,"GROUND_ATMOSPHERE"),md(t.defines,"GROUND_ATMOSPHERE"),md(e.defines,"FOG"),md(t.defines,"FOG")}function zht(e,t){fK(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Hht(e,t){fbe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function obe(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 Ght(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),u=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],u.defines=l(u.defines)?u.defines.slice(0):[],o(c,u),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:a})}return s}function Wht(e){e.cull.face=gi.BACK,e.cull.enabled=!0}function jht(e){e.cull.face=gi.FRONT,e.cull.enabled=!0}function qht(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Yht(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Xht(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function rbe(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function sbe(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Kht(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function Zht(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function $ht(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=Ve.getState(e);i(s),r=Ve.fromCache(s),o[e.id]=r}return r}function rv(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Qht(e,t,n,i,o){return l(o)?!i&&l(n)?n:yt(t,o(e),!1):t}function Fh(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function Jht(){return[new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:Vht,getRenderStateFunction:Wht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:Uht,getRenderStateFunction:jht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:uK,getRenderStateFunction:qht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:uK,getRenderStateFunction:Yht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:uK,getRenderStateFunction:Xht,getUniformMapFunction:void 0}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:fK,getRenderStateFunction:rbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:fbe,getRenderStateFunction:sbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:zht,getRenderStateFunction:rbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Hht,getRenderStateFunction:sbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:obe,getRenderStateFunction:Kht,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:obe,getRenderStateFunction:Zht,getUniformMapFunction:rv})]}var abe=new Array(kT),cbe=new Array(kT);VT.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)cbe[o]=this._derivedCommandPacks[n[o]],abe[o]=ube[n[o]];emt(this,e,i,n,abe,cbe,t)}};function emt(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let u=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=u),m&&(a.shaderProgramDirtyFrame=u),x&&(a.renderStateDirtyFrame=u),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],C=i[b],A=o[b],E=a[A],v,D,O;l(E)?(v=E.uniformMap,D=E.shaderProgram,O=E.renderState):(v=void 0,D=void 0,O=void 0),E=Ze.shallowClone(t,E),a[A]=E;let R=y(E.derivedCommands.uniformMapDirtyFrame,0),M=y(E.derivedCommands.shaderProgramDirtyFrame,0),N=y(E.derivedCommands.renderStateDirtyFrame,0),_=g||R<f,S=m||M<d,w=x||N<p;_&&(E.derivedCommands.uniformMapDirtyFrame=u),S&&(E.derivedCommands.shaderProgramDirtyFrame=u),w&&(E.derivedCommands.renderStateDirtyFrame=u),E.derivedCommands.type=C,E.pass=T.pass,E.pickOnly=T.pickOnly,E.uniformMap=Qht(e,t.uniformMap,v,_,T.getUniformMapFunction),E.shaderProgram=Ght(s.context,t.shaderProgram,D,S,T.getShaderProgramFunction,A),E.renderState=$ht(t.renderState,O,w,T.getRenderStateFunction,T.renderStateCache)}}}VT.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick||n.passes.pickVoxel;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=ube[o[a]];n.commandList.push(s[c])}};function dbe(e,t,n,i,o,r){for(let s=0;s<t;++s){let a=e[s],c=a.derivedCommands.type;(!l(r)||r.indexOf(c)>-1)&&n(a,i,o)}}function lbe(e,t,n,i,o){for(let r=0;r<t;++r)n(e[r],i,o)}var tmt=[ba.OPAQUE_FRONT_FACE,ba.OPAQUE_BACK_FACE],nmt=[ba.DEPTH_ONLY_FRONT_FACE,ba.DEPTH_ONLY_BACK_FACE,ba.DEPTH_ONLY_FRONT_AND_BACK_FACE];VT.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[ve.GLOBE],a=e.indices[ve.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),dbe(s,a,t,i,o,tmt))};VT.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let{context:r}=i,{uniformState:s}=r,a=e.commands[ve.GLOBE],c=e.indices[ve.GLOBE],u=e.commands[ve.TERRAIN_CLASSIFICATION],f=e.indices[ve.TERRAIN_CLASSIFICATION];if(c===0||f===0)return;let d=this._frontFaceTranslucent,p=this._backFaceTranslucent;if((!d||!p)&&lbe(u,f,t,i,o),!d&&!p)return;this._globeTranslucencyFramebuffer=n;let g=s.globeDepthTexture,m=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,dbe(a,c,t,i,o,nmt),r.depthTexture){let x=n.packDepth(r,o);s.globeDepthTexture=x}lbe(u,f,t,i,o),s.globeDepthTexture=g,o.framebuffer=m};var R2=VT;var nu=`uniform sampler2D colorTexture;

in vec2 v_textureCoordinates;

void main()
{
    out_FragColor = texture(colorTexture, v_textureCoordinates);
}
`;function tp(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new hi({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new hi({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 H(0,0,0,0),owner:this}),this._clearCommand=new ei({color:new H(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(tp.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});tp.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var imt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.NEVER,reference:0,mask:Vt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},omt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.NEVER,reference:0,mask:Vt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},rmt={depthMask:!0,depthTest:{enabled:!0},stencilTest:Vt.setCesium3DTileBit(),stencilMask:Vt.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},smt=`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;
}
`,amt=`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
}
`;tp.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=!l(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(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Pt({context:e,width:s,height:a,pixelFormat:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new du({context:e,width:s,height:a,format:kc.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let u,f;l(this._previousFramebuffer)?(u=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(u=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(u),l(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(u),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=Ve.fromCache(imt),this._rsClassified=Ve.fromCache(omt),this._rsDefault=Ve.fromCache(rmt)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let u=l(this._previousFramebuffer)?amt:smt,f=new Ue({defines:["UNCLASSIFIED"],sources:[u]}),d=new Ue({sources:[u]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(nu,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};tp.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};tp.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};tp.prototype.executeClassified=function(e,t){if(!l(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)};tp.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};tp.prototype.isDestroyed=function(){return!1};tp.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var sv=tp;function V8(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(V8.prototype,{total:{get:function(){return this._total}}});function v0(e){let t=new Array(La.NUMBER_OF_JOB_TYPES);t[La.TEXTURE]=new V8(l(e)?e[La.TEXTURE]:10),t[La.PROGRAM]=new V8(l(e)?e[La.PROGRAM]:10),t[La.BUFFER]=new V8(l(e)?e[La.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}v0.getTimestamp=xi;Object.defineProperties(v0.prototype,{totalBudget:{get:function(){return this._totalBudget}}});v0.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};v0.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};v0.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,u;for(u=0;u<c&&(r=n[u],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++u);if(u===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=v0.getTimestamp();e.execute();let a=v0.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var O2=v0;function U8(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=xi(),this._lastMsSampleTime=xi(),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(U8.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});U8.prototype.update=function(e){let t=xi(),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}};U8.prototype.destroy=function(){return ue(this)};var fg=U8;var ml={};ml.decodeRawMetadataValue=function(e,t,n){switch(e){case zt.INT8:return t.getInt8(n);case zt.UINT8:return t.getUint8(n);case zt.INT16:return t.getInt16(n);case zt.UINT16:return t.getUint16(n);case zt.INT32:return t.getInt32(n);case zt.UINT32:return t.getUint32(n);case zt.INT64:return t.getBigInt64(n);case zt.UINT64:return t.getBigUint64(n);case zt.FLOAT32:return t.getFloat32(n);case zt.FLOAT64:return t.getFloat64(n)}throw new ce(`Invalid component type: ${e}`)};ml.decodeRawMetadataValueComponent=function(e,t,n){let i=e.componentType,o=ml.decodeRawMetadataValue(i,t,n);return e.normalized?zt.normalize(o,i):o};ml.decodeRawMetadataValueElement=function(e,t,n){let i=e.componentType,o=zt.getSizeInBytes(i),r=e.type,s=At.getComponentCount(r),a=o*s;if(s>1){let f=Array(s);for(let d=0;d<s;d++){let p=n*a+d*o,g=ml.decodeRawMetadataValueComponent(e,t,p);f[d]=g}return f}let c=n*a;return ml.decodeRawMetadataValueComponent(e,t,c)};ml.decodeRawMetadataValues=function(e,t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=ml.decodeRawMetadataValueElement(e,n,s);r[s]=a}return r}return ml.decodeRawMetadataValueElement(e,n,0)};ml.convertToObjectType=function(e,t){if(!l(t)||e===At.SCALAR||e===At.STRING||e===At.BOOLEAN||e===At.ENUM)return t;let n=t.map(i=>Number(i));switch(e){case At.VEC2:return z.unpack(n,0,new z);case At.VEC3:return h.unpack(n,0,new h);case At.VEC4:return oe.unpack(n,0,new h);case At.MAT2:return Bi.unpack(n,0,new Bi);case At.MAT3:return $.unpack(n,0,new $);case At.MAT4:return F.unpack(n,0,new F)}return t};ml.decodeMetadataValues=function(e,t){let n=ml.decodeRawMetadataValues(e,t);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=n[s],c=ml.convertToObjectType(e.type,a);r[s]=c}return r}return ml.convertToObjectType(e.type,n)};var M2=Object.freeze(ml);function UT(){this._framebuffer=new hi,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(UT.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function cmt(e,t,n){let{width:i,height:o}=n;e._framebuffer.update(t,i,o)}function lmt(e,t,n){l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(`uniform highp sampler2D colorTexture;

in vec2 v_textureCoordinates;

void main()
{
  vec4 globeDepthPacked = texture(czm_globeDepthTexture, v_textureCoordinates);
  float globeDepth = czm_unpackDepth(globeDepthPacked);
  float depth = texture(colorTexture, v_textureCoordinates).r;
  out_FragColor = czm_branchFreeTernary(globeDepth <= 0.0 || globeDepth >= 1.0 || depth < globeDepth && depth > 0.0 && depth < 1.0,
    czm_packDepth(depth), globeDepthPacked);
}
`,{renderState:Ve.fromCache(),uniformMap:{colorTexture:function(){return e._textureToCopy}},owner:e})),e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}UT.prototype.update=function(e,t){cmt(this,e,t),lmt(this,e,t)};var umt=new oe,fmt=new oe(1,1/255,1/65025,1/16581375);UT.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=oe.unpack(i,0,umt);return oe.divideByScalar(o,255,o),oe.dot(o,fmt)};UT.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};UT.prototype.isDestroyed=function(){return!1};UT.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var L2=UT;function dmt(e,t){this.near=y(e,0),this.far=y(t,0);let n=ve.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 N2=dmt;var w0=`uniform highp sampler2D u_depthTexture;

in vec2 v_textureCoordinates;

void main()
{
    out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r);
}
`;function np(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new hi,this._tempCopyDepthFramebuffer=new hi,this._updateDepthFramebuffer=new hi({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 je,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(np.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 hbe(e,t,n,i,o){let r=e._viewport;r.width=n,r.height=i;let s=!je.equals(r,o.viewport),a=s!==e._useScissorTest;e._useScissorTest=s,je.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=je.clone(o.viewport,e._scissorRectangle),a=!0),(!l(e._rs)||!je.equals(r,e._rs.viewport)||a)&&(e._rs=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.NEVER,reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(w0,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(w0,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ei({color:new H(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}np.prototype.update=function(e,t,n,i,o,r){let{width:s,height:a}=n,c=o?e.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.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),hbe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._clearGlobeDepth=r};np.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};np.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};np.prototype.executeUpdateDepth=function(e,t,n){let i=l(n)?n:t.framebuffer.depthStencilTexture;if(!this._clearGlobeDepth&&i===this.colorFramebufferManager.getDepthStencilTexture()){l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t);return}if(!l(this._updateDepthCommand))return;let o=this._updateDepthFramebuffer;if(!l(o.framebuffer)||o.getDepthStencilTexture()!==i||o.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture(),{width:s,height:a}=r;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,s,a),o.setColorTexture(r,0),o.setDepthStencilTexture(i),o.update(e,s,a),hbe(this,e,s,a,t)}this._tempCopyDepthTexture=i,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)};np.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};np.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(H.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};np.prototype.isDestroyed=function(){return!1};np.prototype.destroy=function(){return this._pickColorFramebuffer.destroy(),this._outputFramebuffer.destroy(),this._copyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.destroy(),this._updateDepthFramebuffer.destroy(),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var F2=np;function zT(){this._framebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new hi,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new je,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(zT.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 hmt(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function mmt(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function pmt(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!je.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,je.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=je.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!je.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(w0,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new ei({color:new H(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}zT.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;mmt(this,n,o,r,e),pmt(this,n,o,r,i),this._useHdr=e};zT.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};zT.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};zT.prototype.isDestroyed=function(){return!1};zT.prototype.destroy=function(){return hmt(this),ue(this)};var B2=zT;var av=`#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 k2=`/**
 * Compositing for Weighted Blended Order-Independent Transparency. See:
 * - http://jcgt.org/published/0002/02/09/
 * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html
 */

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 dg(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 hi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new hi({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new hi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new hi({createColorAttachments:!1}),this._opaqueClearCommand=new ei({color:new H(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ei({color:new H(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ei({color:new H(0,0,0,0),owner:this}),this._alphaClearCommand=new ei({color:new H(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 je,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function mbe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function dK(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function pbe(e){mbe(e),dK(e)}function _mt(e,t,n,i){mbe(e),e._accumulationTexture=new Pt({context:t,width:n,height:i,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT}),e._revealageTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT,width:n,height:i,flipY:!1})}function gmt(e,t){dK(e);let n=te.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)&&(dK(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,u=e._adjustAlphaFBO.status===n;(!s||!a||!c||!u)&&(pbe(e),e._translucentMultipassSupport=!1,i=!1)}return i}dg.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=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,u=this._numSamples!==o;if((c||u)&&(this._numSamples=o,_mt(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||u)&&!gmt(this,e))return;this._useHDR=i;let f=this,d,p;l(this._compositeCommand)||(d=new Ue({sources:[k2]}),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})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new Ue({defines:["MRT"],sources:[av]}),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 Ue({sources:[av]}),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=!je.equals(this._viewport,t.viewport),m=g!==this._useScissorTest;this._useScissorTest=g,je.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=je.clone(t.viewport,this._scissorRectangle),m=!0),(!l(this._rs)||!je.equals(this._viewport,this._rs.viewport)||m)&&(this._rs=Ve.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var ymt={enabled:!0,color:new H(0,0,0,0),equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA},xmt={enabled:!0,color:new H(0,0,0,0),equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ONE,functionDestinationAlpha:Co.ONE},bmt={enabled:!0,color:new H(0,0,0,0),equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ZERO,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA};function hK(e,t,n,i){let o=n[i.id];if(!l(o)){let r=Ve.getState(i);r.depthMask=!1,r.blending=t,o=Ve.fromCache(r),n[i.id]=o}return o}function Tmt(e,t,n){return hK(t,ymt,e._translucentRenderStateCache,n)}function Cmt(e,t,n){return hK(t,xmt,e._translucentRenderStateCache,n)}function Amt(e,t,n){return hK(t,bmt,e._alphaRenderStateCache,n)}var Emt=`    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);
`,Smt=`    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;
`,vmt=`    float ai = czm_out_FragColor.a;
    out_FragColor = vec4(ai);
`;function mK(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return Ue.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)],u="";for(let f=0;f<c.length;f++){let d=c[f];u=`layout (location = ${d[1]}) out vec4 ${d[0]};
${u}`}return a.sources.push(u),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 wmt(e,t){return mK(e,t,"translucentMRT",Emt)}function Dmt(e,t){return mK(e,t,"translucentMultipass",Smt)}function Imt(e,t){return mK(e,t,"alphaMultipass",vmt)}dg.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=Ze.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=wmt(t,e.shaderProgram),n.translucentCommand.renderState=Tmt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=Ze.shallowClone(e,n.translucentCommand),n.alphaCommand=Ze.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=Dmt(t,e.shaderProgram),n.translucentCommand.renderState=Cmt(this,t,e.renderState),n.alphaCommand.shaderProgram=Imt(t,e.shaderProgram),n.alphaCommand.renderState=Amt(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 Pmt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=e._alphaFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.alphaCommand:x.derivedCommands.oit.alphaCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.alphaCommand:m.derivedCommands.oit.alphaCommand;n(x,t,i,g)}i.framebuffer=d}function Rmt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=d}dg.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){Rmt(this,e,t,n,i,o);return}Pmt(this,e,t,n,i,o)};dg.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};dg.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,H.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};dg.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};dg.prototype.isDestroyed=function(){return!1};dg.prototype.destroy=function(){return pbe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var V2=dg;function U2(){this._framebuffer=new hi({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(U2.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Omt(e){e._framebuffer.destroy()}function Mmt(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new ic(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new je},o.viewport=new je,e._passState=o}U2.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&Mmt(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};U2.prototype.isDestroyed=function(){return!1};U2.prototype.destroy=function(){return Omt(this),ue(this)};var z2=U2;function cv(e){let t=new ic(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new je},t.viewport=new je,this._context=e,this._fb=new hi({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}cv.prototype.begin=function(e,t){let n=this._context,{width:i,height:o}=t;return je.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 H2=new H;cv.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),u=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=u&&u<=a&&-c<=f&&f<=c){let m=4*((c-f)*t+u+a);H2.red=H.byteToFloat(o[m]),H2.green=H.byteToFloat(o[m+1]),H2.blue=H.byteToFloat(o[m+2]),H2.alpha=H.byteToFloat(o[m+3]);let x=i.getObjectByPickColor(H2);if(l(x))return x}if(u===f||u<0&&-u===f||u>0&&u===1-f){let m=d;d=-p,p=m}u+=d,f+=p}};cv.prototype.readCenterPixel=function(e){let t=y(e.width,1),n=y(e.height,1),o=this._context.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.floor(t*.5),a=4*(Math.floor(n*.5)*t+r);return o.slice(a,a+4)};cv.prototype.isDestroyed=function(){return!1};cv.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var G2=cv;function hg(){this._numSamples=1,this._colorFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new H(0,0,0,0),this._clearCommand=new ei({color:new H(0,0,0,0),depth:1,owner:this})}function Lmt(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(hg.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});hg.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};hg.prototype.clear=function(e,t,n){H.clone(n,this._clearCommand.color),H.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};hg.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};hg.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};hg.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};hg.prototype.isDestroyed=function(){return!1};hg.prototype.destroy=function(){return Lmt(this),ue(this)};var HT=hg;function GT(){}GT.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};GT.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=Ue.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let u=0;u<a;++u)o[u]=Ue.replaceMain(o[u],"czm_shadow_cast_main");o.push(`out vec3 v_positionEC; 
void main() 
{ 
    czm_shadow_cast_main(); 
    v_positionEC = (czm_inverseProjection * gl_Position).xyz; 
}`)}return new Ue({defines:i,sources:o})};GT.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=Ue.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=Ue.replaceMain(r[f],"czm_shadow_cast_main");let u="";return t&&(a||(u+=`in vec3 v_positionEC; 
`),u+=`uniform vec4 shadowMap_lightPositionEC; 
`),i?u+=`void main() 
{ 
`:u+=`void main() 
{ 
    czm_shadow_cast_main(); 
    if (out_FragColor.a == 0.0) 
    { 
       discard; 
    } 
`,t?u+=`    float distance = length(${s}); 
    if (distance >= shadowMap_lightPositionEC.w) 
    { 
        discard; 
    } 
    distance /= shadowMap_lightPositionEC.w; // radius 
    out_FragColor = czm_packDepth(distance); 
`:n?u+=`    out_FragColor = vec4(1.0); 
`:u+=`    out_FragColor = czm_packDepth(gl_FragCoord.z); 
`,u+=`} 
`,r.push(u),new Ue({defines:o,sources:r})};GT.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,u=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${u}${f}${t}${n}${i}`};GT.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 Ue({defines:i,sources:o})};GT.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=Ue.findNormalVarying(e),s=!i&&l(r)||i&&o,a=Ue.findPositionVarying(e),c=l(a),u=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),C=e.sources.slice(0),A=C.length;for(let D=0;D<A;++D)C[D]=Ue.replaceMain(C[D],"czm_shadow_receive_main");d?T.push("USE_CUBE_MAP_SHADOW"):u&&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 E="";d?E+=`uniform samplerCube shadowMap_textureCube; 
`:E+=`uniform sampler2D shadowMap_texture; 
`;let v;return c?v=`    return vec4(${a}, 1.0); 
`:v=`#ifndef LOG_DEPTH 
    return czm_windowToEyeCoordinates(gl_FragCoord); 
#else 
    return vec4(v_logPositionEC, 1.0); 
#endif 
`,E+=`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() 
{ 
${v}} 
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; 
`:""}} 
`,E+=`void main() 
{ 
    czm_shadow_receive_main(); 
    vec4 positionEC = getPositionEC(); 
    vec3 normalEC = getNormalEC(); 
    float depth = -positionEC.z; 
`,E+=`    czm_shadowParameters shadowParameters; 
    shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; 
    shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; 
    shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; 
    shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; 
`,i?E+=`    shadowParameters.depthBias *= max(depth * 0.01, 1.0); 
`:f||(E+=`    shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); 
`),d?E+=`    vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; 
    float distance = length(directionEC); 
    directionEC = normalize(directionEC); 
    float radius = shadowMap_lightPositionEC.w; 
    // Stop early if the fragment is beyond the point light radius 
    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?E+=`    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; 
    // Spot light uses a perspective projection, so perform the perspective divide 
    shadowPosition /= shadowPosition.w; 
    // Stop early if the fragment is not in the shadow bounds 
    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?E+=`    float maxDepth = shadowMap_cascadeSplits[1].w; 
    // Stop early if the eye depth exceeds the last cascade 
    if (depth > maxDepth) 
    { 
        return; 
    } 
    // Get the cascade based on the eye-space depth 
    vec4 weights = czm_cascadeWeights(depth); 
    // Apply normal offset 
    float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); 
    applyNormalOffset(positionEC, normalEC, nDotL); 
    // Transform position into the cascade 
    vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; 
    // Get visibility 
    shadowParameters.texCoords = shadowPosition.xy; 
    shadowParameters.depth = shadowPosition.z; 
    shadowParameters.nDotL = nDotL; 
    float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); 
    // Fade out shadows that are far away 
    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); 
`:""}`:E+=`    float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); 
    applyNormalOffset(positionEC, normalEC, nDotL); 
    vec4 shadowPosition = shadowMap_matrix * positionEC; 
    // Stop early if the fragment is not in the shadow bounds 
    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); 
`,E+=`    out_FragColor.rgb *= visibility; 
} 
`,C.push(E),new Ue({defines:T,sources:C})};var ip=GT;function op(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;(Ht.isInternetExplorer()||Ht.isEdge()||(Ht.isChrome()||Ht.isFirefox())&&Ht.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 F,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new oe,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new z8,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 z,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new Lr:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new oe,new oe],this._cascadeMatrices=[new F,new F,new F,new F],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 Nmt(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,_K(this),this._clearCommand=new ei({depth:1,color:new H}),this._clearPassState=new ic(t),this._size=y(e.size,2048),this.size=this._size}op.MAXIMUM_DISTANCE=2e4;function Nmt(e){this.camera=new z8,this.passState=new ic(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function pK(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 _K(e){let t=!e._usesDepthTexture;e._primitiveRenderState=pK(t,e._primitiveBias),e._terrainRenderState=pK(t,e._terrainBias),e._pointRenderState=pK(t,e._pointBias)}op.prototype.debugCreateRenderStates=function(){_K(this)};Object.defineProperties(op.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){zmt(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 gK(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function Fmt(e,t){let n=new du({context:t,width:e._textureSize.x,height:e._textureSize.y,format:kc.DEPTH_COMPONENT16}),i=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.NEAREST}),o=new Mr({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 Bmt(e,t){let n=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:$t.NEAREST}),i=new Mr({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 kmt(e,t){let n=new du({context:t,width:e._textureSize.x,height:e._textureSize.y,format:kc.DEPTH_COMPONENT16}),i=new br({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new Mr({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 ybe(e,t){e._isPointLight?kmt(e,t):e._usesDepthTexture?Bmt(e,t):Fmt(e,t)}function Vmt(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==te.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,_K(e),gK(e),ybe(e,t))}function Umt(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(gK(e),ybe(e,t),Vmt(e,t),xbe(e,t))}function xbe(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 zmt(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=kt.maximumCubeMapSize>=t?t:kt.maximumCubeMapSize,o.x=t,o.y=t;let r=new je(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=kt.maximumTextureSize>=t?t:kt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new je(0,0,t,t)):i===4&&(t=kt.maximumTextureSize>=t*2?t:kt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new je(0,0,t,t),n[1].passState.viewport=new je(t,0,t,t),n[2].passState.viewport=new je(0,t,t,t),n[3].passState.viewport=new je(t,t,t,t));e._clearPassState.viewport=new je(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,u=a.y/o.y,f=a.width/o.x,d=a.height/o.y;s.textureOffsets=new F(f,0,0,c,0,d,0,u,0,0,1,0,0,0,0,1)}}var Hmt=new je;function Gmt(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=ve.OVERLAY,i}function Wmt(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=Hmt;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=Gmt(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!je.equals(a.renderState.viewport,s))&&(a.renderState=Ve.fromCache({viewport:je.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var rp=new Array(8);rp[0]=new oe(-1,-1,-1,1);rp[1]=new oe(1,-1,-1,1);rp[2]=new oe(1,1,-1,1);rp[3]=new oe(-1,1,-1,1);rp[4]=new oe(-1,-1,1,1);rp[5]=new oe(1,-1,1,1);rp[6]=new oe(1,1,1,1);rp[7]=new oe(-1,1,1,1);var D0=new F,yK=new Array(8);for(let e=0;e<8;++e)yK[e]=new oe;function jmt(e,t){let n=new St({geometry:new Md({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:Wt.fromColor(t)}}),i=new St({geometry:new w_({radius:.5}),attributes:{color:Wt.fromColor(t)}});return new Dn({geometryInstances:[n,i],appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var qmt=[H.RED,H.GREEN,H.BLUE,H.MAGENTA],Ymt=new h;function Xmt(e,t){Wmt(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 Jm({camera:e._sceneCamera,color:H.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Jm({camera:e._shadowMapCamera,color:H.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 Jm({camera:e._passes[i].camera,color:qmt[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Oe.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,Ymt),a=F.fromTranslationQuaternionRotationScale(i,o,s,D0);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=jmt(a,H.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Jm({camera:e._shadowMapCamera,color:H.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function z8(){this.viewMatrix=new F,this.inverseViewMatrix=new F,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 F}z8.prototype.clone=function(e){F.clone(e.viewMatrix,this.viewMatrix),F.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 Kmt=new F(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);z8.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return F.multiply(t,e,this.viewProjectionMatrix),F.multiply(Kmt,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Zmt=new Array(5),$mt=new Si,Qmt=new Array(4),bbe=new h,Tbe=new h;function Jmt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,u=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=Qmt,g=Zmt;for(g[0]=o,g[s]=r,a=0;a<s;++a){let N=(a+1)/s,_=o*Math.pow(u,N),S=o+c*N,w=P.lerp(S,_,f);g[a+1]=w,p[a]=w-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let N=g[0];for(a=0;a<s-1;++a)N+=p[a],g[a+1]=N}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,C=m.top,A=m.near,E=m.far,v=n.positionWC,D=n.directionWC,O=n.upWC,R=i.frustum.clone($mt),M=n.getViewProjection();for(a=0;a<s;++a){R.near=g[a],R.far=g[a+1];let N=F.multiply(R.projectionMatrix,i.viewMatrix,D0),_=F.inverse(N,D0),S=F.multiply(M,_,D0),w=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,bbe),I=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Tbe);for(let G=0;G<8;++G){let k=oe.clone(rp[G],yK[G]);F.multiplyByVector(S,k,k),h.divideByScalar(k,k.w,k),h.minimumByComponent(k,w,w),h.maximumByComponent(k,I,I)}w.x=Math.max(w.x,0),w.y=Math.max(w.y,0),w.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let L=e._passes[a],B=L.camera;B.clone(n);let U=B.frustum;U.left=x+w.x*(b-x),U.right=x+I.x*(b-x),U.bottom=T+w.y*(C-T),U.top=T+I.y*(C-T),U.near=A+w.z*(E-A),U.far=A+I.z*(E-A),L.cullingVolume=B.frustum.computeCullingVolume(v,D,O);let V=e._cascadeMatrices[a];F.multiply(B.getViewProjection(),i.inverseViewMatrix,V),F.multiply(L.textureOffsets,V,V)}}var ept=new F,tpt=new h,npt=new h,_be=new h;function ipt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=F.multiply(i.frustum.projectionMatrix,i.viewMatrix,D0),r=F.inverse(o,D0),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,tpt);a=h.cross(c,s,npt),h.normalize(a,a),h.normalize(c,c);let u=h.fromElements(0,0,0,_be),f=F.computeView(u,s,a,c,ept),d=F.multiply(f,r,D0),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,bbe),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Tbe);for(let E=0;E<8;++E){let v=oe.clone(rp[E],yK[E]);F.multiplyByVector(d,v,v),h.divideByScalar(v,v.w,v),h.minimumByComponent(v,p,p),h.maximumByComponent(v,g,g)}g.z+=1e3,p.z-=10;let m=_be;m.x=-(.5*(p.x+g.x)),m.y=-(.5*(p.y+g.y)),m.z=-g.z;let x=F.fromTranslation(m,D0);f=F.multiply(x,f,f);let b=.5*(g.x-p.x),T=.5*(g.y-p.y),C=g.z-p.z,A=n.frustum;A.left=-b,A.right=b,A.bottom=-T,A.top=T,A.near=.01,A.far=C,F.clone(f,n.viewMatrix),F.inverse(f,n.inverseViewMatrix),F.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 opt=[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)],rpt=[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)],spt=[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 apt(e,t){let n=new Si;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=opt[i],o.upWC=rpt[i],o.rightWC=spt[i],F.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),F.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var cpt=new h,lpt=new h,Cbe=new se,gbe=Cbe.center;function upt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=Cbe;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,cpt),s=h.negate(i.directionWC,lpt),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)===jt.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,gbe),gbe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===jt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere)}}function fpt(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;F.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),F.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=ro.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,upt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}op.prototype.update=function(e){if(fpt(this,e),this._needsUpdate)if(Umt(this,e.context),this._isPointLight&&apt(this,e),this._cascadesEnabled&&(ipt(this,e),this._numberOfCascades>1&&Jmt(this,e)),this._isPointLight)this._shadowMapCullingVolume=ps.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;F.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Xmt(this,e)};op.prototype.updatePass=function(e,t){xbe(this,e,t)};var dpt=new z;function Abe(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=dpt;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 yt(t,o,!1)}function hpt(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=Ze.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let u=n.shaderProgram,f=n.pass===ve.GLOBE,d=n.pass!==ve.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,m=ip.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(u,m),!l(s)){let b=u.vertexShaderSource,T=u.fragmentShaderSource,C=ip.createShadowCastVertexShader(b,p,f),A=ip.createShadowCastFragmentShader(T,p,g,d);s=i.shaderCache.createDerivedShaderProgram(u,m,{vertexShaderSource:C,fragmentShaderSource:A,attributeLocations:u._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=Abe(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}op.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,u=t.pass===ve.GLOBE,f=!1;if(u&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;l(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=Ze.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,m=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(d)||m||n||g){let x=ip.getShadowReceiveShaderKeyword(e[0],t.castShadows,u,f);if(d=i.shaderCache.getDerivedShaderProgram(s,x),!l(d)){let b=ip.createShadowReceiveVertexShader(a,u,f),T=ip.createShadowReceiveFragmentShader(c,e[0],t.castShadows,u,f);d=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:b,fragmentShaderSource:T,attributeLocations:s._attributeLocations})}p=Abe(e[0],t.uniformMap,u)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};op.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=hpt(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};op.prototype.isDestroyed=function(){return!1};op.prototype.destroy=function(){gK(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 ue(this)};var mg=op;var W2=`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 WT=`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
    // Reverse premultiplication process to get the correct composited result of the classification primitives
    color.rgb /= color.a;
#endif
    out_FragColor = color;
#endif
}
`;var mpt=!1;function I0(e){this._drawClassificationFBO=new hi({createDepthAttachments:!1}),this._accumulationFBO=new hi({createDepthAttachments:!1}),this._packFBO=new hi,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 H(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ei({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new je,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(I0.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function Ebe(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function Sbe(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function ppt(e,t,n,i){Ebe(e),e._translucentDepthStencilTexture=new Pt({context:t,width:n,height:i,pixelFormat:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:$t.NEAREST})}function _pt(e,t,n,i){Sbe(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 gpt(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)&&(ppt(e,t,o,r),_pt(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new Ue({sources:[W2]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new Ue({sources:[WT]}),a={colorTexture:function(){return e._textureToComposite}},mpt&&(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 Ue({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=Ze.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}l(e._copyCommand)||(s=new Ue({sources:[WT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new Ue({sources:[WT]}),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=!je.equals(e._viewport,n.viewport),u=c!==e._useScissorTest;e._useScissorTest=c,je.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=je.clone(n.viewport,e._scissorRectangle),u=!0),(!l(e._rsDepth)||!je.equals(e._viewport,e._rsDepth.viewport)||u)&&(e._rsDepth=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!je.equals(e._viewport,e._rsAccumulate.viewport)||u)&&(e._rsAccumulate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,reference:Vt.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!je.equals(e._viewport,e._rsComp.viewport)||u)&&(e._rsComp=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}I0.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=e.frameState.useLogDepth,s=e.context,a=n.framebuffer;for(let c=0;c<i.length;++c){let u=i[c];if(u=r?u.derivedCommands.logDepth.command:u,u.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}}if(this._hasTranslucentDepth){gpt(this,s,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(s,n);for(let c=0;c<i.length;++c){let u=i[c];if(u=r?u.derivedCommands.logDepth.command:u,!u.depthForTranslucentClassification)continue;let f=u.derivedCommands.depth.depthOnlyCommand;t(f,e,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(s,n)),n.framebuffer=a}};I0.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(ve.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[ve.CESIUM_3D_TILE_CLASSIFICATION],u=i.indices[ve.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<u;++f)t(c[f],e,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};I0.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),ypt(this,e,t)};function ypt(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}I0.prototype.isSupported=function(){return this._supported};I0.prototype.isDestroyed=function(){return!1};I0.prototype.destroy=function(){return Ebe(this),Sbe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var j2=I0;function xpt(){this.command=void 0,this.near=void 0,this.far=void 0}function H8(e,t,n){let i=e.context,o;i.depthTexture&&(o=new F2);let r;e._useOIT&&i.depthTexture&&(r=new V2(i));let s=new ic(i);s.viewport=je.clone(n),this.camera=t,this._cameraClone=ro.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new G2(i),this.pickDepthFramebuffer=new z2,this.sceneFramebuffer=new HT,this.globeDepth=o,this.globeTranslucencyFramebuffer=new B2,this.oit=r,this.translucentTileClassification=new j2(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var xK=new h,bK=new h;function bpt(e,t,n){let i=Math.max(h.maximumComponent(h.abs(e.position,xK)),h.maximumComponent(h.abs(t.position,bK))),o=1/Math.max(1,i);return h.multiplyByScalar(e.position,o,xK),h.multiplyByScalar(t.position,o,bK),h.equalsEpsilon(xK,bK,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&F.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}H8.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return bpt(t,n,P.EPSILON15)?(this._cameraStartFired&&xi()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=xi(),ro.clone(t,n),!0)};function Tpt(e,t,n,i){let{frameState:o}=t,{camera:r,useLogDepth:s}=o,a=s?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,c=t.mode===ne.SCENE2D,u=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 f;c?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),f=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):f=Math.ceil(Math.log(i/n)/Math.log(a));let{frustumCommandsList:d}=e;d.length=f;for(let p=0;p<f;++p){let g,m;c?(g=Math.min(i-u,n+p*u),m=Math.min(i,g+u)):(g=Math.max(n,Math.pow(a,p)*n),m=Math.min(i,a*g));let x=d[p];l(x)?(x.near=g,x.far=m):x=d[p]=new N2(g,m)}}function Cpt(e,t,n){let{command:i,near:o,far:r}=n;t.debugShowFrustums&&(i.debugOverlappingFrustums=0);let{frustumCommandsList:s}=e;for(let a=0;a<s.length;++a){let c=s[a];if(o>c.far)continue;if(r<c.near)break;let u=i.pass,f=c.indices[u]++;if(c.commands[u][f]=i,t.debugShowFrustums&&(i.debugOverlappingFrustums|=1<<a),i.executeInClosestFrustum)break}if(t.debugShowFrustums){let{debugFrustumStatistics:a}=e,{debugOverlappingFrustums:c}=i,u=a.commandsInFrustums;u[c]=l(u[c])?u[c]+1:1,++a.totalCommands}t.updateDerivedCommands(i)}var vbe=new ps,Apt=new wa;H8.prototype.createPotentiallyVisibleSet=function(e){let{frameState:t}=e,{camera:n,commandList:i,shadowState:o}=t,{positionWC:r,directionWC:s,frustum:a}=n,c=e._computeCommandList,u=e._overlayCommandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let f=this.frustumCommandsList;for(let M=0;M<f.length;++M)for(let N=0;N<ve.NUMBER_OF_PASSES;++N)f[M].indices[N]=0;c.length=0,u.length=0;let d=this._commandExtents,p=d.length,g=0,m=+Number.MAX_VALUE,x=-Number.MAX_VALUE,{shadowsEnabled:b}=o,T=+Number.MAX_VALUE,C=-Number.MAX_VALUE,A=Number.MAX_VALUE,E=t.mode===ne.SCENE3D?t.occluder:void 0,{cullingVolume:v}=t,D=vbe.planes;for(let M=0;M<5;++M)D[M]=v.planes[M];v=vbe;for(let M=0;M<i.length;++M){let N=i[M],{pass:_,boundingVolume:S}=N;if(_===ve.COMPUTE)c.push(N);else if(_===ve.OVERLAY)u.push(N);else{let w,I;if(l(S)){if(!e.isVisible(v,N,E))continue;let B=S.computePlaneDistances(r,s,Apt);if(w=B.start,I=B.stop,m=Math.min(m,w),x=Math.max(x,I),b&&N.receiveShadows&&w<mg.MAXIMUM_DISTANCE&&!(_===ve.GLOBE&&w<-100&&I>100)){let U=I-w;_!==ve.GLOBE&&w<100&&(A=Math.min(A,U)),T=Math.min(T,w),C=Math.max(C,I)}}else N instanceof ei?(w=a.near,I=a.far):(w=a.near,I=a.far,m=Math.min(m,w),x=Math.max(x,I));let L=d[g];l(L)||(L=d[g]=new xpt),L.command=N,L.near=w,L.far=I,g++}}b&&(T=Math.min(Math.max(T,a.near),a.far),C=Math.max(Math.min(C,a.far),T),o.nearPlane=T,o.farPlane=C,o.closestObjectSize=A),Tpt(this,e,m,x);for(let M=0;M<g;M++)Cpt(this,e,d[M]);if(g<p)for(let M=g;M<p;M++){let N=d[M];if(!l(N.command))break;N.command=void 0}let O=f.length,{frustumSplits:R}=t;R.length=O+1;for(let M=0;M<O;++M)R[M]=f[M].near,M===O-1&&(R[M+1]=f[M].far)};H8.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=this.pickDepths;for(let t=0;t<e.length;++t)e[t].destroy()};var jT=H8;var Dbe=.1,Ept=new hd({pass:Fo.MOST_DETAILED_PRELOAD}),Spt=new hd({pass:Fo.MOST_DETAILED_PICK}),q2=new hd({pass:Fo.PICK});function na(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new je(0,0,1,1),n=new ro(e);n.frustum=new rn({width:Dbe,aspectRatio:1,near:.1}),this._pickOffscreenView=new jT(e,n,t)}na.prototype.update=function(){this._pickPositionCacheDirty=!0};na.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new L2,n[t]=i),i};var vpt=new Lr,wpt=new h,G8=new h,Dpt=new z,Ipt=new F;function Ppt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let u=2*(o.height-t.y-o.y)/o.height-1;u*=(s.top-s.bottom)*.5;let f=F.clone(r.transform,Ipt);r._setTransform(F.IDENTITY);let d=h.clone(r.position,wpt);h.multiplyByScalar(r.right,c,G8),h.add(G8,d,d),h.multiplyByScalar(r.up,u,G8),h.add(G8,d,d),r._setTransform(f),e.mode===ne.SCENE2D&&h.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,Dpt),g=vpt;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 Rpt=new hl,Opt=new z;function Mpt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),u=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*u,g=d*a*c,m=s.getPixelDimensions(o.width,o.height,1,1,Opt),x=m.x*n*.5,b=m.y*i*.5,T=Rpt;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 W8(e,t,n,i,o){let r=e.camera.frustum;return r instanceof rn||r instanceof Lr?Ppt(e,t,n,i,o):Mpt(e,t,n,i,o)}var j8=new je(0,0,3,3),q8=new z,Y2=new H(0,0,0,0);function TK(e,t,n,i,o){return o.width=y(n,3),o.height=y(i,o.width),o.x=t.x-(o.width-1)*.5,o.y=e-t.y-(o.height-1)*.5,o}na.prototype.pick=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=je.clone(a,u.viewport);let f=Ui.transformWindowToDrawingBuffer(e,t,q8),d=TK(o.drawingBufferHeight,f,n,i,j8);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=W8(e,f,d.width,d.height,a),r.invertClassification=!1,r.passes.pick=!0,r.tilesetPassState=q2,o.uniformState.update(r),e.updateEnvironment(),u=c.begin(d,a),e.updateAndExecuteCommands(u,Y2),e.resolveFramebuffers(u);let p=c.end(d);return o.endFrame(),p};na.prototype.pickVoxelCoordinate=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=je.clone(a,u.viewport);let f=Ui.transformWindowToDrawingBuffer(e,t,q8),d=TK(o.drawingBufferHeight,f,n,i,j8);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=W8(e,f,d.width,d.height,a),r.invertClassification=!1,r.passes.pickVoxel=!0,r.tilesetPassState=q2,o.uniformState.update(r),e.updateEnvironment(),u=c.begin(d,a),e.updateAndExecuteCommands(u,Y2),e.resolveFramebuffers(u);let p=c.readCenterPixel(d);return o.endFrame(),p};na.prototype.pickMetadata=function(e,t,n){let{context:i,frameState:o,defaultView:r}=e,{viewport:s,pickFramebuffer:a}=r;e.view=r,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=r.passState;c.viewport=je.clone(s,c.viewport);let u=Ui.transformWindowToDrawingBuffer(e,t,q8),f=TK(i.drawingBufferHeight,u,1,1,j8);e.jobScheduler.disableThisFrame(),e.updateFrameState(),o.cullingVolume=W8(e,u,f.width,f.height,s),o.invertClassification=!1,o.passes.pick=!0,o.tilesetPassState=q2,o.pickingMetadata=!0,o.pickedMetadataInfo=n,i.uniformState.update(o),e.updateEnvironment(),c=a.begin(f,s),e.updateAndExecuteCommands(c,Y2);let d=e._environmentState.useOIT;e._environmentState.useOIT=!1,e.resolveFramebuffers(c),e._environmentState.useOIT=d;let p=a.readCenterPixel(f);return i.endFrame(),o.pickingMetadata=!1,M2.decodeMetadataValues(n.classProperty,p)};function Lpt(e,t){let{defaultView:n,context:i,frameState:o,environmentState:r}=e,{viewport:s,pickDepthFramebuffer:a}=n;e.view=n,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=n.passState;c.viewport=je.clone(s,c.viewport),e.clearPasses(o.passes),o.passes.pick=!0,o.passes.depth=!0,o.cullingVolume=W8(e,t,1,1,s),o.tilesetPassState=q2,e.updateEnvironment(),r.renderTranslucentDepthForPick=!0,c=a.update(i,t,s),e.updateAndExecuteCommands(c,Y2),e.resolveFramebuffers(c),i.endFrame()}var Npt=new Si,Fpt=new hl,Bpt=new rn,kpt=new Lr;na.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{context:o,frameState:r,camera:s,defaultView:a}=e,{uniformState:c}=o;e.view=a;let u=Ui.transformWindowToDrawingBuffer(e,t,q8);e.pickTranslucentDepth?Lpt(e,u):(e.updateFrameState(),c.update(r),e.updateEnvironment()),u.y=e.drawingBufferHeight-u.y;let f;l(s.frustum.fov)?f=s.frustum.clone(Npt):l(s.frustum.infiniteProjectionMatrix)?f=s.frustum.clone(Fpt):l(s.frustum.width)?f=s.frustum.clone(Bpt):f=s.frustum.clone(kpt);let{frustumCommandsList:d}=a,p=d.length;for(let g=0;g<p;++g){let x=this.getPickDepth(e,g).getDepth(o,u.x,u.y);if(l(x)&&x>0&&x<1){let b=d[g],T;return e.mode===ne.SCENE2D?(T=s.position.z,s.position.z=T-b.near+1,f.far=Math.max(1,b.far-b.near),f.near=1,c.update(r),c.updateFrustum(f)):(f.near=b.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=b.far,c.updateFrustum(f)),n=Ui.drawingBufferToWorldCoordinates(e,u,x,n),e.mode===ne.SCENE2D&&(s.position.z=T,c.update(r)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var Vpt=new fe;na.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==ne.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,Vpt);o.cartographicToCartesian(r,n)}return n};function Ibe(e,t){let n,i,o=[],r=[],s=[],a=[];l(e)||(e=Number.MAX_VALUE);let c=t();for(;l(c);){let u=c.object,f=c.position,d=c.exclude;if(l(f)&&!l(u)){o.push(c);break}if(!l(u)||!l(u.primitive)||!d&&(o.push(c),0>=--e))break;let p=u.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&l(u.id)&&(i=p.getGeometryInstanceAttributes(u.id),l(i)&&l(i.show)&&(g=!0,i.show=gn.toValue(!1,i.show),s.push(i))),u instanceof Ws&&(g=!0,u.show=!1,a.push(u)),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=gn.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}na.prototype.drillPick=function(e,t,n,i,o){let r=this;return Ibe(n,function(){let c=r.pick(e,t,i,o);if(l(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var wbe=new h,Upt=new h;function zpt(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 Pbe(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,wbe),s=h.cross(o,r,wbe),a=h.cross(o,s,Upt);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,Dbe),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function Hpt(e,t,n){let i=t.frameState,{ray:o,width:r,tilesets:s}=n,a=e._pickOffscreenView.camera,c=Pbe(e,o,r,a),u=Ept;u.camera=a,u.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,u),f=f&&u.ready)}return f&&n._completePick(),f}na.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)Hpt(this,e,t[n])&&t.splice(n--,1)};function Rbe(e,t,n){for(let i=0;i<e.length;++i){let o=e.get(i);o.show&&(l(o.isCesium3DTileset)?(!l(t)||t.indexOf(o)===-1)&&n.push(o):o instanceof jl&&Rbe(o,t,n))}}function Y8(e,t,n,i,o,r){let s=[];if(Rbe(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new zpt(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function Gpt(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Wpt(e,t,n,i,o,r,s){let{context:a,frameState:c}=t,u=a.uniformState,f=e._pickOffscreenView;t.view=f,Pbe(e,n,o,f.camera);let d=je.clone(f.viewport,j8),p=f.pickFramebuffer.begin(d,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),c.invertClassification=!1,c.passes.pick=!0,c.passes.offscreen=!0,s?c.tilesetPassState=Spt:c.tilesetPassState=q2,u.update(c),t.updateEnvironment(),t.updateAndExecuteCommands(p,Y2),t.resolveFramebuffers(p);let g,m=f.pickFramebuffer.end(d);if(t.context.depthTexture){let{frustumCommandsList:x}=f,b=x.length;for(let T=0;T<b;++T){let A=e.getPickDepth(t,T).getDepth(a,0,0);if(l(A)&&A>0&&A<1){let E=x[T],v=E.near*(T!==0?t.opaqueFrustumNearOffset:1),D=E.far,O=v+A*(D-v);g=mn.getPoint(n,O);break}}}if(t.view=t.defaultView,a.endFrame(),l(m)||l(g))return{object:m,position:g,exclude:!l(g)&&r||Gpt(m,i)}}function Obe(e,t,n,i,o,r,s,a){return Ibe(i,function(){return Wpt(e,t,n,o,r,s,a)})}function lv(e,t,n,i,o,r,s){let a=Obe(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function Mbe(e,t,n,i,o,r,s,a){return Obe(e,t,n,i,o,r,s,a)}function X8(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)})})}na.prototype.pickFromRay=function(e,t,n,i){return lv(this,e,t,n,i,!1,!1)};na.prototype.drillPickFromRay=function(e,t,n,i,o){return Mbe(this,e,t,n,i,o,!1,!1)};na.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=mn.clone(t),n=l(n)?n.slice():n,X8(e,Y8(o,e,t,n,i,function(){return lv(o,e,t,n,i,!1,!0)}))};na.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=mn.clone(t),i=l(i)?i.slice():i,X8(e,Y8(r,e,t,i,o,function(){return Mbe(r,e,t,n,i,o,!1,!0)}))};var jpt=new h,qpt=new h,Ypt=new mn,Lbe=new fe;function CK(e,t){let n=e.ellipsoid,i=li._defaultMaxTerrainHeight,o=n.geodeticSurfaceNormalCartographic(t,qpt),r=fe.toCartesian(t,n,jpt),s=Ypt;s.origin=r,s.direction=o;let a=new mn;return mn.getPoint(s,i,a.origin),h.negate(o,a.direction),a}function Nbe(e,t){let n=e.ellipsoid,i=fe.fromCartesian(t,n,Lbe);return CK(e,i)}function Fbe(e,t){let n=e.ellipsoid;return fe.fromCartesian(t,n,Lbe).height}function Xpt(e,t,n,i,o){let r=CK(t,n);return Y8(e,t,r,i,o,function(){let s=lv(e,t,r,i,o,!0,!0);if(l(s))return Fbe(t,s.position)})}function Kpt(e,t,n,i,o,r){let s=Nbe(t,n);return Y8(e,t,s,i,o,function(){let a=lv(e,t,s,i,o,!0,!0);if(l(a))return h.clone(a.position,r)})}na.prototype.sampleHeight=function(e,t,n,i){let o=CK(e,t),r=lv(this,e,o,n,i,!0,!1);if(l(r))return Fbe(e,r.position)};na.prototype.clampToHeight=function(e,t,n,i,o){let r=Nbe(e,t),s=lv(this,e,r,n,i,!0,!1);if(l(s))return h.clone(s.position,o)};na.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Xpt(this,e,t[s],n,i);return X8(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}))};na.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Kpt(this,e,t[s],n,i,t[s]);return X8(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};na.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var X2=na;var K2=`uniform sampler2D colorTexture;

in vec2 v_textureCoordinates;

#ifdef AUTO_EXPOSURE
uniform sampler2D autoExposure;
#else
uniform float exposure;
#endif

void main()
{
    vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
    vec3 color = fragmentColor.rgb;

#ifdef AUTO_EXPOSURE
    color /= texture(autoExposure, vec2(0.5)).r;
#else
    color *= vec3(exposure);
#endif
    color = czm_acesTonemapping(color);
    color = czm_inverseGamma(color);

    out_FragColor = vec4(color, fragmentColor.a);
}
`;var Z2=`precision highp float;

uniform sampler2D randomTexture;
uniform sampler2D depthTexture;
uniform float intensity;
uniform float bias;
uniform float lengthCap;
uniform float stepSize;
uniform float frustumLength;

vec3 pixelToEye(vec2 screenCoordinate)
{
    vec2 uv = screenCoordinate / czm_viewport.zw;
    float depth = czm_readDepth(depthTexture, uv);
    vec2 xy = 2.0 * uv - vec2(1.0);
    vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0);
    return posEC.xyz / posEC.w;
}

// Reconstruct surface normal in eye coordinates, avoiding edges
vec3 getNormalXEdge(vec3 positionEC)
{
    // Find the 3D surface positions at adjacent screen pixels
    vec2 centerCoord = gl_FragCoord.xy;
    vec3 positionLeft = pixelToEye(centerCoord + vec2(-1.0, 0.0));
    vec3 positionRight = pixelToEye(centerCoord + vec2(1.0, 0.0));
    vec3 positionUp = pixelToEye(centerCoord + vec2(0.0, 1.0));
    vec3 positionDown = pixelToEye(centerCoord + vec2(0.0, -1.0));

    // Compute potential tangent vectors
    vec3 dx0 = positionEC - positionLeft;
    vec3 dx1 = positionRight - positionEC;
    vec3 dy0 = positionEC - positionDown;
    vec3 dy1 = positionUp - positionEC;

    // The shorter tangent is more likely to be on the same surface
    vec3 dx = length(dx0) < length(dx1) ? dx0 : dx1;
    vec3 dy = length(dy0) < length(dy1) ? dy0 : dy1;

    return normalize(cross(dx, dy));
}

void main(void)
{
    vec3 positionEC = pixelToEye(gl_FragCoord.xy);

    if (positionEC.z > frustumLength)
    {
        out_FragColor = vec4(1.0);
        return;
    }

    vec3 normalEC = getNormalXEdge(positionEC);

    float ao = 0.0;

    const int ANGLE_STEPS = 4;
    float angleStepScale = 1.0 / float(ANGLE_STEPS);
    float angleStep = angleStepScale * czm_twoPi;
    float cosStep = cos(angleStep);
    float sinStep = sin(angleStep);
    mat2 rotateStep = mat2(cosStep, sinStep, -sinStep, cosStep);

    // Initial sampling direction (different for each pixel)
    const float randomTextureSize = 255.0;
    vec2 randomTexCoord = fract(gl_FragCoord.xy / randomTextureSize);
    float randomVal = texture(randomTexture, randomTexCoord).x;
    vec2 sampleDirection = vec2(cos(angleStep * randomVal), sin(angleStep * randomVal));

    // Loop over sampling directions
    for (int i = 0; i < ANGLE_STEPS; i++)
    {
        sampleDirection = rotateStep * sampleDirection;

        float localAO = 0.0;
        vec2 radialStep = stepSize * sampleDirection;

        for (int j = 0; j < 6; j++)
        {
            // Step along sampling direction, away from output pixel
            vec2 newCoords = floor(gl_FragCoord.xy + float(j + 1) * radialStep) + vec2(0.5);

            // Exit if we stepped off the screen
            if (clamp(newCoords, vec2(0.0), czm_viewport.zw) != newCoords)
            {
                break;
            }

            vec3 stepPositionEC = pixelToEye(newCoords);
            vec3 stepVector = stepPositionEC - positionEC;
            float stepLength = length(stepVector);

            if (stepLength > lengthCap)
            {
                break;
            }

            float dotVal = clamp(dot(normalEC, normalize(stepVector)), 0.0, 1.0);
            if (dotVal < bias)
            {
                dotVal = 0.0;
            }

            float weight = stepLength / lengthCap;
            weight = 1.0 - weight * weight;
            localAO = max(localAO, dotVal * weight);
        }
        ao += localAO;
    }

    ao *= angleStepScale;
    ao = 1.0 - clamp(ao, 0.0, 1.0);
    ao = pow(ao, intensity);
    out_FragColor = vec4(vec3(ao), 1.0);
}
`;var $2=`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 Q2=`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 J2=`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 eB=`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 tB=`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 nB=`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 iB=`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 oB=`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 rB=`uniform sampler2D colorTexture;

in vec2 v_textureCoordinates;

#ifdef AUTO_EXPOSURE
uniform sampler2D autoExposure;
#else
uniform float exposure;
#endif

// See slides 142 and 143:
//     http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting

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;
#else
    color *= vec3(exposure);
#endif

	const float A = 0.22; // shoulder strength
	const float B = 0.30; // linear strength
	const float C = 0.10; // linear angle
	const float D = 0.20; // toe strength
	const float E = 0.01; // toe numerator
	const float F = 0.30; // toe denominator

	const float white = 11.2; // linear white point value

	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 sB=`uniform sampler2D colorTexture;

in vec2 v_textureCoordinates;

#ifdef AUTO_EXPOSURE
uniform sampler2D autoExposure;
#else
uniform float exposure;
#endif

void main()
{
    vec4 fragmentColor = texture(colorTexture, v_textureCoordinates);
    vec3 color = fragmentColor.rgb;

#ifdef AUTO_EXPOSURE
    color /= texture(autoExposure, vec2(0.5)).r;
#else
    color *= vec3(exposure);
#endif
    color = czm_pbrNeutralTonemapping(color);
    color = czm_inverseGamma(color);

    out_FragColor = vec4(color, fragmentColor.a);
}
`;var aB=`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 P0=`#define SAMPLES 8

uniform float delta;
uniform float sigma;
uniform float direction; // 0.0 for x direction, 1.0 for y direction

uniform sampler2D colorTexture;

#ifdef USE_STEP_SIZE
uniform float stepSize;
#else
uniform vec2 step;
#endif

in vec2 v_textureCoordinates;

//  Incremental Computation of the Gaussian:
//  https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html

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 cB=`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;

// whether it is in space or not
// 6500000.0 is empirical value
#define DISTANCE_TO_SPACE 6500000.0

// return ndc from world coordinate biased earthRadius
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);
}

// Check if current pixel is included Earth
// if then mask it gradually
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));
}

// For Chromatic effect
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;

    // Sun position
    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 sun is not in the screen space, use original color.
    if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1)))
    {
        // Lens flare is disabled when not in space until #5932 is fixed.
        //    https://github.com/CesiumGS/cesium/issues/5932
        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);

    // ghost vector to image centre:
    vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal;
    vec3 direction = normalize(vec3(ghostVec, 0.0));

    // sample ghosts:
    vec4 result = vec4(0.0);
    vec4 ghost = vec4(0.0);
    for (int i = 0; i < 4; ++i)
    {
        vec2 offset = fract(texcoord + ghostVec * float(i));
        // Only bright spots from the centre of the source image
        ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace);
    }
    result += ghost;

    // sample halo
    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;

    // dirt on lens
    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);

    // Rotating starburst texture's coordinate
    // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0))
    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 lB=`uniform sampler2D colorTexture;
uniform vec3 white;

in vec2 v_textureCoordinates;

#ifdef AUTO_EXPOSURE
uniform sampler2D autoExposure;
#else
uniform float exposure;
#endif

// See equation 4:
//    http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf

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;
#else
    color *= vec3(exposure);
#endif
    color = (color * (1.0 + color / white)) / (1.0 + color);
    color = czm_inverseGamma(color);
    out_FragColor = vec4(color, fragmentColor.a);
}
`;var uB=`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 fB=`uniform sampler2D colorTexture;

in vec2 v_textureCoordinates;

#ifdef AUTO_EXPOSURE
uniform sampler2D autoExposure;
#else
uniform float exposure;
#endif

// See equation 3:
//    http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf

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;
#else
    color *= vec3(exposure);
#endif
    color = color / (1.0 + color);
    color = czm_inverseGamma(color);
    out_FragColor = vec4(color, fragmentColor.a);
}
`;var dB=`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 hB=`/**
 * @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.
 */

// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples
// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h

// Steps used to integrate into Cesium:
// * The following defines are set:
//       #define FXAA_PC 1
//       #define FXAA_WEBGL_1 1
//       #define FXAA_GREEN_AS_LUMA 1
//       #define FXAA_EARLY_EXIT 1
//       #define FXAA_GLSL_120 1
// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed.
// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace
//   /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/.
// * There are no implicit conversions from ivec* to vec* so replace:
//       #define FxaaInt2 ivec2
//           with
//       #define FxaaInt2 vec2
// * The texture2DLod function is only available in vertex shaders so replace:
//       #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0)
//       #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0)
//           with
//       #define FxaaTexTop(t, p) texture(t, p)
//       #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r))
// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future.
// * The following parameters to FxaaPixelShader are unused and can be removed:
//       fxaaConsolePosPos
//       fxaaConsoleRcpFrameOpt
//       fxaaConsoleRcpFrameOpt2
//       fxaaConsole360RcpFrameOpt2
//       fxaaConsoleEdgeSharpness
//       fxaaConsoleEdgeThreshold
//       fxaaConsoleEdgeThresholdMi
//       fxaaConsole360ConstDir

//
// Choose the quality preset.
// This needs to be compiled into the shader as it effects code.
// Best option to include multiple presets is to
// in each shader define the preset, then include this file.
//
// OPTIONS
// -----------------------------------------------------------------------
// 10 to 15 - default medium dither (10=fastest, 15=highest quality)
// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality)
// 39       - no dither, very expensive
//
// NOTES
// -----------------------------------------------------------------------
// 12 = slightly faster then FXAA 3.9 and higher edge quality (default)
// 13 = about same speed as FXAA 3.9 and better than 12
// 23 = closest to FXAA 3.9 visually and performance wise
//  _ = the lowest digit is directly related to performance
// _  = the highest digit is directly related to style
//
//#define FXAA_QUALITY_PRESET 12


#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(
    //
    // Use noperspective interpolation here (turn off perspective interpolation).
    // {xy} = center of pixel
    FxaaFloat2 pos,
    //
    // Input color texture.
    // {rgb_} = color in linear or perceptual color space
    // if (FXAA_GREEN_AS_LUMA == 0)
    //     {___a} = luma in perceptual color space (not linear)
    FxaaTex tex,
    //
    // Only used on FXAA Quality.
    // This must be from a constant/uniform.
    // {x_} = 1.0/screenWidthInPixels
    // {_y} = 1.0/screenHeightInPixels
    FxaaFloat2 fxaaQualityRcpFrame,
    //
    // Only used on FXAA Quality.
    // This used to be the FXAA_QUALITY_SUBPIX define.
    // It is here now to allow easier tuning.
    // Choose the amount of sub-pixel aliasing removal.
    // This can effect sharpness.
    //   1.00 - upper limit (softer)
    //   0.75 - default amount of filtering
    //   0.50 - lower limit (sharper, less sub-pixel aliasing removal)
    //   0.25 - almost off
    //   0.00 - completely off
    FxaaFloat fxaaQualitySubpix,
    //
    // Only used on FXAA Quality.
    // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define.
    // It is here now to allow easier tuning.
    // The minimum amount of local contrast required to apply algorithm.
    //   0.333 - too little (faster)
    //   0.250 - low quality
    //   0.166 - default
    //   0.125 - high quality
    //   0.063 - overkill (slower)
    FxaaFloat fxaaQualityEdgeThreshold,
    //
    // Only used on FXAA Quality.
    // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define.
    // It is here now to allow easier tuning.
    // Trims the algorithm from processing darks.
    //   0.0833 - upper limit (default, the start of visible unfiltered edges)
    //   0.0625 - high quality (faster)
    //   0.0312 - visible limit (slower)
    // Special notes when using FXAA_GREEN_AS_LUMA,
    //   Likely want to set this to zero.
    //   As colors that are mostly not-green
    //   will appear very dark in the green channel!
    //   Tune by looking at mostly non-green content,
    //   then start at zero and increase until aliasing is a problem.
    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 qT(){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 hi,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new z,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(qT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function Bbe(e){let t=e._framebuffers;if(!l(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 Zpt(e,t){Bbe(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.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 hi,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 kbe(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function $pt(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 Qpt(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 Jpt(e,t){kbe(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(Qpt(r,i),{framebuffer:n[r].framebuffer,uniformMap:$pt(e,r)});e._commands=o}qT.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new ei({color:new H(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};qT.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,Zpt(this,e),Jpt(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};qT.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};qT.prototype.isDestroyed=function(){return!1};qT.prototype.destroy=function(){return Bbe(this),kbe(this),ue(this)};var mB=qT;var e_t={NEAREST:0,LINEAR:1},Zu=e_t;function YT(e){e=y(e,y.EMPTY_OBJECT);let{fragmentShader:t,textureScale:n=1,pixelFormat:i=Je.RGBA}=e;this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,Zu.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Ke.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,H.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 ic;o.scissorTest={enabled:!0,rectangle:l(e.scissorRectangle)?je.clone(e.scissorRectangle):new je},this._passState=o,this._ready=!1;let r=e.name;l(r)||(r=Hn()),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(YT.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(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(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 t_t=/uniform\s+sampler2D\s+depthTexture/g;YT.prototype._isSupported=function(e){return!t_t.test(this._fragmentShader)||e.depthTexture};function n_t(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];l(a)&&a!==r&&a instanceof Pt&&!l(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 i_t(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function o_t(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function r_t(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i){if(!i.hasOwnProperty(r))continue;typeof i[r]!="function"?(t[r]=i_t(e,r),n[r]=n_t(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`]=o_t(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=yt(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 s_t(e,t){return e=e.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),`#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 < ${t}; ++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));
}

${e}`}function a_t(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=s_t(n,o)}let i=new Ue({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function c_t(e){let t=e._sampleMode,n,i;t===Zu.LINEAR?(n=Zt.LINEAR,i=di.LINEAR):(n=Zt.NEAREST,i=di.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function l_t(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function u_t(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function f_t(e,t){let n=e._texturesToRelease;for(let a=0;a<n.length;++a){let c=n[a];c=c&&c.destroy()}n.length=0;let i=e._texturesToCreate;for(let a=0;a<i.length;++a){let{name:c,source:u}=i[a];e._actualUniforms[c]=new Pt({context:t,source:u})}i.length=0;let o=e._dirtyUniforms;if(o.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(o.length===0||l(e._texturePromise))return;let r=e._uniforms,s=[];for(let a=0;a<o.length;++a){let c=o[a],u=r[c],f=e._textureCache.getStageByName(u);if(l(f))e._actualUniforms[c]=u_t(e,u);else if(typeof u=="string"){let d=new we({url:u});s.push(d.fetchImage().then(l_t(e,c)))}else e._texturesToCreate.push({name:c,source:u})}o.length=0,s.length>0?(e._ready=!1,e._texturePromise=Promise.all(s).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function Vbe(e){l(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(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i){if(!i.hasOwnProperty(o))continue;let r=i[o];r instanceof Pt&&(l(t.getStageByName(n[o]))||r.destroy(),e._dirtyUniforms.push(o))}}function d_t(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength;if(l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;for(let o=0;o<e._combinedSelected.length;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function h_t(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i=0;for(let s=0;s<n.length;++s){let a=n[s];l(a.pickIds)?i+=a.pickIds.length:l(a.pickId)&&++i}if(n.length===0||i===0){let s=new Uint8Array([255,255,255,255]);e._selectedIdTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:s,width:1,height:1},sampler:$t.NEAREST});return}let o=0,r=new Uint8Array(i*4);for(let s=0;s<n.length;++s){let a=n[s];if(l(a.pickIds)){let c=a.pickIds,u=c.length;for(let f=0;f<u;++f){let d=c[f].color;r[o]=H.floatToByte(d.red),r[o+1]=H.floatToByte(d.green),r[o+2]=H.floatToByte(d.blue),r[o+3]=H.floatToByte(d.alpha),o+=4}}else if(l(a.pickId)){let c=a.pickId.color;r[o]=H.floatToByte(c.red),r[o+1]=H.floatToByte(c.green),r[o+2]=H.floatToByte(c.blue),r[o+3]=H.floatToByte(c.alpha),o+=4}}e._selectedIdTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:r,width:i,height:1},sampler:$t.NEAREST})}YT.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&Vbe(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=d_t(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,h_t(this,e),r_t(this),f_t(this,e),a_t(this,e),c_t(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=Ve.fromCache({viewport:new je(0,0,i.width,i.height)}))),this._command.renderState=o};YT.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,$t.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;l(o)&&(o.context=e),this._command.execute(e,o)};YT.prototype.isDestroyed=function(){return!1};YT.prototype.destroy=function(){return Vbe(this),ue(this)};var fo=YT;function XT(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;l(t)||(t=Hn()),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(XT.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}}});XT.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};XT.prototype.get=function(e){return this._stages[e]};function m_t(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(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}XT.prototype.update=function(e,t){this._selectedDirty=m_t(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(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)}};XT.prototype.isDestroyed=function(){return!1};XT.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var pl=XT;var Dr={};function K8(e){let o=`#define USE_STEP_SIZE
${P0}`,r=new fo({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:Zu.LINEAR}),s=new fo({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:Zu.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let u=r.uniforms,f=s.uniforms;u.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let u=r.uniforms,f=s.uniforms;u.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let u=r.uniforms,f=s.uniforms;u.stepSize=f.stepSize=c}}}),new pl({name:e,stages:[r,s],uniforms:a})}Dr.createBlurStage=function(){return K8("czm_blur")};Dr.createDepthOfFieldStage=function(){let e=K8("czm_depth_of_field_blur"),t=new fo({name:"czm_depth_of_field_composite",fragmentShader:nB,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 pl({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Dr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Dr.createEdgeDetectionStage=function(){let e=Hn();return new fo({name:`czm_edge_detection_${e}`,fragmentShader:oB,uniforms:{length:.25,color:H.clone(H.BLACK)}})};Dr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function p_t(e){if(!l(e))return Dr.createEdgeDetectionStage();let t=new pl({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 fo({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new pl({name:"czm_edge_detection_composite",stages:[t,s]})}Dr.createSilhouetteStage=function(e){let t=p_t(e),n=new fo({name:"czm_silhouette_color_edges",fragmentShader:dB,uniforms:{silhouetteTexture:t.name}});return new pl({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Dr.isSilhouetteSupported=function(e){return e.context.depthTexture};Dr.createBloomStage=function(){let e=new fo({name:"czm_bloom_contrast_bias",fragmentShader:tB,uniforms:{contrast:128,brightness:-.3}}),t=K8("czm_bloom_blur"),n=new pl({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new fo({name:"czm_bloom_generate_composite",fragmentShader:J2,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 pl({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Dr.createAmbientOcclusionStage=function(){let e=new fo({name:"czm_ambient_occlusion_generate",fragmentShader:Z2,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=K8("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new pl({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new fo({name:"czm_ambient_occlusion_composite",fragmentShader:$2,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 pl({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Dr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var __t=`#define FXAA_QUALITY_PRESET 39 
${hB}
${aB}`;Dr.createFXAAStage=function(){return new fo({name:"czm_FXAA",fragmentShader:__t,sampleMode:Zu.LINEAR})};Dr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
`:"";return t+=K2,new fo({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
`:"";return t+=rB,new fo({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createPbrNeutralTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
`:"";return t+=sB,new fo({name:"czm_pbr_neutral",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
`:"";return t+=fB,new fo({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE
`:"";return t+=lB,new fo({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:H.WHITE,autoExposure:void 0,exposure:1}})};Dr.createAutoExposureStage=function(){return new mB};Dr.createBlackAndWhiteStage=function(){return new fo({name:"czm_black_and_white",fragmentShader:Q2,uniforms:{gradations:5}})};Dr.createBrightnessStage=function(){return new fo({name:"czm_brightness",fragmentShader:eB,uniforms:{brightness:.5}})};Dr.createNightVisionStage=function(){return new fo({name:"czm_night_vision",fragmentShader:uB})};Dr.createDepthViewStage=function(){return new fo({name:"czm_depth_view",fragmentShader:iB})};Dr.createLensFlareStage=function(){return new fo({name:"czm_lens_flare",fragmentShader:cB,uniforms:{dirtTexture:nn("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:nn("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:ee.WGS84.maximumRadius}})};var $u=Dr;function pg(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function _B(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function AK(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[_B(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let u=0;u<c;++u){let f=s[a[u]];if(typeof f=="string"){let d=e.getStageByName(f);l(d)&&(r[_B(d)]=!0)}}}return i.name}function pB(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);l(p.length)?a=pB(e,t,n,p,o):a=AK(e,t,n,p,o),s&&(o=a)}let u,f;if(s)for(u=1;u<c;++u)f=_B(i.get(u)),l(n[f])||(n[f]={}),n[f][r]=!0;else for(u=1;u<c;++u){f=_B(i.get(u));let d=n[f];for(let p=0;p<u;++p)d[_B(i.get(p))]=!0}return a}function g_t(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=pB(e,t,n,i,void 0);a=pB(e,t,n,o,a),a=AK(e,t,n,r,a),a=pB(e,t,n,e,a),AK(e,t,n,s,a)}else pB(e,t,n,e,void 0);return n}function y_t(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,u=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||!H.equals(u,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 l(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:u,stages:[t],buffer:new hi({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function x_t(e,t){let n=g_t(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=y_t(e,i,n[i]))}function EK(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function b_t(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,u=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(u,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),u=d,f=d),a.buffer.update(t,u,f),a.clear=new ei({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}pg.prototype.updateDependencies=function(){this._updateDependencies=!0};pg.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(EK(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&x_t(this,e);let c=e.drawingBufferWidth,u=e.drawingBufferHeight,f=this._width!==c||this._height!==u;!n&&!f||(this._width=c,this._height=u,this._updateDependencies=!1,EK(this),b_t(this,e))};pg.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};pg.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};pg.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};pg.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};pg.prototype.isDestroyed=function(){return!1};pg.prototype.destroy=function(){return EK(this),ue(this)};var KT=pg;var T_t={REINHARD:"REINHARD",MODIFIED_REINHARD:"MODIFIED_REINHARD",FILMIC:"FILMIC",ACES:"ACES",PBR_NEUTRAL:"PBR_NEUTRAL"};var _g=Object.freeze(T_t);var SK=[];function _l(){let e=$u.createFXAAStage(),t=$u.createAmbientOcclusionStage(),n=$u.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=$u.createAutoExposureStage(),this._exposure=1,this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=_g.PBR_NEUTRAL;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new KT(this),r={},s=SK;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let u=c.length;if(l(u))for(let f=0;f<u;++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(_l.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 vK(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(l(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(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(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;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case _g.REINHARD:n=$u.createReinhardTonemappingStage(t);break;case _g.MODIFIED_REINHARD:n=$u.createModifiedReinhardTonemappingStage(t);break;case _g.FILMIC:n=$u.createFilmicTonemappingStage(t);break;case _g.PBR_NEUTRAL:n=$u.createPbrNeutralTonemappingStage(t);break;default:n=$u.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}else n.uniforms.exposure=this._exposure;this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}},exposure:{get:function(){return this._exposure},set:function(e){this._tonemapping.uniforms.exposure=e,this._exposure=e}}});function vK(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages;for(let i=0,o=0;i<n.length;++i){let r=n[i];r&&(r._index=o++,t.push(r))}e._stages=t}_l.prototype.add=function(e){let t=this._stageNames,n=SK;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(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};_l.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=SK;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(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};_l.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};_l.prototype.get=function(e){return vK(this),this._stages[e]};_l.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};_l.prototype.getStageByName=function(e){return this._stageNames[e]};_l.prototype.update=function(e,t,n){vK(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages;o.length=r.length;let s=0;for(let T=0;T<r.length;++T){let C=r[T];C.ready&&C.enabled&&C._isSupported(e)&&(o[s++]=C)}o.length=s;let a=s!==i.length;if(!a){for(let T=0;T<s;++T)if(o[T]!==i[T]){a=!0;break}}let c=this._ao,u=this._bloom,f=this._autoExposure,d=this._tonemapping,p=this._fxaa;d.enabled=n;let g=c.enabled&&c._isSupported(e),m=u.enabled&&u._isSupported(e),x=d.enabled&&d._isSupported(e),b=p.enabled&&p._isSupported(e);if((a||this._textureCacheDirty||g!==this._aoEnabled||m!==this._bloomEnabled||x!==this._tonemappingEnabled||b!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=g,this._bloomEnabled=m,this._tonemappingEnabled=x,this._fxaaEnabled=b,this._textureCacheDirty=!1),l(this._randomTexture)&&!g&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&g){let C=new Uint8Array(196608);for(let A=0;A<196608;A+=3)C[A]=Math.floor(Math.random()*255);this._randomTexture=new Pt({context:e,pixelFormat:Je.RGB,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:C,width:256,height:256},sampler:new $t({wrapS:Tn.REPEAT,wrapT:Tn.REPEAT,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})})}this._textureCache.update(e),p.update(e,t),c.update(e,t),u.update(e,t),d.update(e,t),this._autoExposureEnabled&&f.update(e,t);for(let T=0;T<r.length;++T)r[T].update(e,t);s=0;for(let T=0;T<r.length;++T){let C=r[T];C.ready&&C.enabled&&C._isSupported(e)&&s++}a=s!==o.length,a&&this.update(e,t,n)};_l.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function ZT(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}_l.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return ZT(t)};function sp(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}if(e.inputPreviousStageTexture){sp(e.get(0),t,n,i,o);for(let r=1;r<e.length;++r)sp(e.get(r),t,ZT(e.get(r-1)),i,o)}else for(let r=0;r<e.length;++r)sp(e.get(r),t,n,i,o)}_l.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,u=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&&(sp(a,e,b,n,i),b=ZT(a)),p&&c.ready&&(sp(c,e,b,n,i),b=ZT(c)),g&&u.ready&&sp(u,e,b,n,i),m&&f.ready&&(sp(f,e,b,n,i),b=ZT(f));let T=b;if(r>0){sp(o[0],e,b,n,i);for(let C=1;C<r;++C)sp(o[C],e,ZT(o[C-1]),n,i);T=ZT(o[r-1])}x&&s.ready&&sp(s,e,T,n,i)};_l.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};_l.prototype.isDestroyed=function(){return!1};_l.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(),ue(this)};var gB=_l;var C_t={SHIFT:0,CTRL:1,ALT:2},ia=Object.freeze(C_t);var A_t={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},bn=Object.freeze(A_t);function R0(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 OK(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function $T(e){if(e.shiftKey)return ia.SHIFT;if(e.ctrlKey)return ia.CTRL;if(e.altKey)return ia.ALT}var Bs={LEFT:0,MIDDLE:1,RIGHT:2};function Qu(e,t,n,i){function o(r){i(e,r)}Ht.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function E_t(e){let t=e._element,n=l(t.disableRootEvents)?t:document;Ht.supportsPointerEvents()?(Qu(e,"pointerdown",t,P_t),Qu(e,"pointerup",t,Kbe),Qu(e,"pointermove",t,R_t),Qu(e,"pointercancel",t,Kbe)):(Qu(e,"mousedown",t,Zbe),Qu(e,"mouseup",n,$be),Qu(e,"mousemove",n,Qbe),Qu(e,"touchstart",t,D_t),Qu(e,"touchend",n,Wbe),Qu(e,"touchmove",n,I_t),Qu(e,"touchcancel",n,Wbe)),Qu(e,"dblclick",t,v_t);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",Qu(e,i,t,w_t)}function S_t(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var Ube={position:new z};function MK(e){e._lastSeenTouchEvent=xi()}function LK(e){return xi()-e._lastSeenTouchEvent>Bh.mouseEmulationIgnoreMilliseconds}function RK(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function Zbe(e,t){if(!LK(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===Bs.LEFT)i=bn.LEFT_DOWN;else if(n===Bs.MIDDLE)i=bn.MIDDLE_DOWN;else if(n===Bs.RIGHT)i=bn.RIGHT_DOWN;else return;let o=R0(e,t,e._primaryPosition);z.clone(o,e._primaryStartPosition),z.clone(o,e._primaryPreviousPosition);let r=$T(t),s=e.getInputAction(i,r);l(s)&&(z.clone(o,Ube.position),s(Ube),t.preventDefault())}var zbe={position:new z},Hbe={position:new z};function wK(e,t,n,i){let o=$T(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=R0(e,i,e._primaryPosition);if(l(r)&&(z.clone(a,zbe.position),r(zbe)),l(s)){let c=e._primaryStartPosition;RK(c,a,e._clickPixelTolerance)&&(z.clone(a,Hbe.position),s(Hbe))}}}function $be(e,t){if(!LK(e))return;let n=t.button;n!==Bs.LEFT&&n!==Bs.MIDDLE&&n!==Bs.RIGHT||(e._buttonDown[Bs.LEFT]&&(wK(e,bn.LEFT_UP,bn.LEFT_CLICK,t),e._buttonDown[Bs.LEFT]=!1),e._buttonDown[Bs.MIDDLE]&&(wK(e,bn.MIDDLE_UP,bn.MIDDLE_CLICK,t),e._buttonDown[Bs.MIDDLE]=!1),e._buttonDown[Bs.RIGHT]&&(wK(e,bn.RIGHT_UP,bn.RIGHT_CLICK,t),e._buttonDown[Bs.RIGHT]=!1))}var DK={startPosition:new z,endPosition:new z};function Qbe(e,t){if(!LK(e))return;let n=$T(t),i=R0(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(bn.MOUSE_MOVE,n);l(r)&&(z.clone(o,DK.startPosition),z.clone(i,DK.endPosition),r(DK)),z.clone(i,o),(e._buttonDown[Bs.LEFT]||e._buttonDown[Bs.MIDDLE]||e._buttonDown[Bs.RIGHT])&&t.preventDefault()}var Gbe={position:new z};function v_t(e,t){let n=t.button,i;if(n===Bs.LEFT)i=bn.LEFT_DOUBLE_CLICK;else return;let o=$T(t),r=e.getInputAction(i,o);l(r)&&(R0(e,t,Gbe.position),r(Gbe))}function w_t(e,t){let n;if(l(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(!l(n))return;let i=$T(t),o=e.getInputAction(bn.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function D_t(e,t){MK(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,R0(e,r,new z));Z8(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,z.clone(a.get(s)))}function Wbe(e,t){MK(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);Z8(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var jbe={position:new z},IK={position1:new z,position2:new z},qbe={position:new z},Ybe={position:new z},Xbe={position:new z};function Z8(e,t){let n=$T(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[Bs.LEFT]){if(e._buttonDown[Bs.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(bn.LEFT_UP,n),l(r)&&(z.clone(e._primaryPosition,qbe.position),r(qbe)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(bn.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,u=e._previousPositions.values[0];RK(c,u,e._clickPixelTolerance)&&(z.clone(e._primaryPosition,Ybe.position),s(Ybe))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(bn.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];z.clone(c,e._primaryPosition),z.clone(c,e._primaryStartPosition),z.clone(c,e._primaryPreviousPosition),e._buttonDown[Bs.LEFT]=!0,r=e.getInputAction(bn.LEFT_DOWN,n),l(r)&&(z.clone(c,jbe.position),r(jbe)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(bn.RIGHT_CLICK,n),l(s))){let u=e._primaryStartPosition,f=e._previousPositions.values[0];RK(u,f,e._holdPixelTolerance)&&(z.clone(e._primaryPosition,Xbe.position),s(Xbe))}},Bh.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(bn.PINCH_START,n),l(r)&&(z.clone(i.values[0],IK.position1),z.clone(i.values[1],IK.position2),r(IK),t.preventDefault()))}function I_t(e,t){MK(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 u=a.get(s);l(u)&&R0(e,r,u)}Jbe(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,z.clone(a.get(s),c.get(s))}var PK={startPosition:new z,endPosition:new z},yB={distance:{startPosition:new z,endPosition:new z},angleAndHeight:{startPosition:new z,endPosition:new z}};function Jbe(e,t){let n=$T(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[Bs.LEFT]){let a=i.values[0];z.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(bn.MOUSE_MOVE,n),l(s)&&(z.clone(c,PK.startPosition),z.clone(a,PK.endPosition),s(PK)),z.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(bn.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],u=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-u.x,x=f.y-u.y,b=Math.sqrt(m*m+x*x)*.25,T=(c.y+a.y)*.125,C=(f.y+u.y)*.125,A=Math.atan2(p,d),E=Math.atan2(x,m);z.fromElements(0,b,yB.distance.startPosition),z.fromElements(0,g,yB.distance.endPosition),z.fromElements(E,C,yB.angleAndHeight.startPosition),z.fromElements(A,T,yB.angleAndHeight.endPosition),s(yB)}}function P_t(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,R0(e,t,new z)),Z8(e,t),e._previousPositions.set(i,z.clone(n.get(i)))}else Zbe(e,t)}function Kbe(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),Z8(e,t),e._previousPositions.remove(i)}else $be(e,t)}function R_t(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;R0(e,t,o),Jbe(e,t);let r=e._previousPositions;z.clone(n.get(i),r.get(i))}else Qbe(e,t)}function Bh(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Bh.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new z,this._primaryPosition=new z,this._primaryPreviousPosition=new z,this._positions=new Et,this._previousPositions=new Et,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),E_t(this)}Bh.prototype.setInputAction=function(e,t,n){let i=OK(t,n);this._inputEvents[i]=e};Bh.prototype.getInputAction=function(e,t){let n=OK(e,t);return this._inputEvents[n]};Bh.prototype.removeInputAction=function(e,t){let n=OK(e,t);delete this._inputEvents[n]};Bh.prototype.isDestroyed=function(){return!1};Bh.prototype.destroy=function(){return S_t(this),ue(this)};Bh.mouseEmulationIgnoreMilliseconds=800;Bh.touchHoldDelayMilliseconds=1500;var Ju=Bh;function QT(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}QT.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};QT.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof rn,!(this._previousMode===ne.SCENE2D||this._previousMode===ne.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE2D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.COLUMBUS_VIEW?ugt(this,e):ggt(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var O_t=new h,M_t=new h,L_t=new h,N_t=new h,F_t=new h,B_t=new h,k_t=new h,V_t=new fe,U_t=new F,z_t=new Si,H_t=new rn,G_t={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};QT.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ne.COLUMBUS_VIEW||this._previousMode===ne.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ne.COLUMBUS_VIEW,!0),n.camera._setTransform(F.IDENTITY);let i=O_t,o=M_t,r=L_t;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 u=n.camera;if(this._previousMode===ne.SCENE2D)h.clone(u.position,i),i.z=u.frustum.right-u.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(u.positionWC,i),h.clone(u.directionWC,o),h.clone(u.upWC,r);let f=t.scaleToGeodeticSurface(i,k_t),d=Mt.eastNorthUpToFixedFrame(f,t,U_t);F.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,V_t),i),F.multiplyByPointAsVector(d,o,o),F.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=H_t,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=z_t,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=G_t;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=xgt(a);xB(this,c),this._previousMode===ne.SCENE2D?ygt(this,e,a,c):(a.position2D=F.multiplyByPoint(ro.TRANSFORM_2D,i,N_t),a.direction2D=F.multiplyByPointAsVector(ro.TRANSFORM_2D,o,F_t),a.up2D=F.multiplyByPointAsVector(ro.TRANSFORM_2D,r,B_t),n._mode=ne.MORPHING,uTe(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var BK={position:new h,direction:new h,up:new h,frustum:void 0},tTe=new Si;QT.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ne.SCENE3D||this._previousMode===ne.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE3D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.SCENE2D)egt(this,e,t);else{let i;e>0?(i=BK,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=nTe(this,t);let o,r=n.camera;r.frustum instanceof rn?o=r.frustum.clone():(o=tTe,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=P.toRadians(60)),i.frustum=o;let s=dTe(i);xB(this,s),FK(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};QT.prototype.isDestroyed=function(){return!1};QT.prototype.destroy=function(){return $8(this),ue(this)};function xB(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Ju(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,bn.LEFT_DOWN),e._morphHandler.setInputAction(n,bn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,bn.RIGHT_DOWN),e._morphHandler.setInputAction(n,bn.WHEEL)}}function $8(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 W_t=new fe,j_t=new h,q_t=new F;function nTe(e,t){let n=e._scene,i=n.camera,o=BK,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,W_t);t.cartographicToCartesian(c,r);let u=t.scaleToGeodeticSurface(r,j_t),f=Mt.eastNorthUpToFixedFrame(u,t,q_t);return F.multiplyByPointAsVector(f,i.direction,s),F.multiplyByPointAsVector(f,i.up,a),o}var Y_t=new h,X_t=new h,K_t=new h,Z_t=new h,$_t=new h,Q_t=new h;function FK(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,Y_t),a=h.clone(r.direction,X_t),c=h.clone(r.up,K_t),u=F.multiplyByPoint(ro.TRANSFORM_2D_INVERSE,n.position,Z_t),f=F.multiplyByPointAsVector(ro.TRANSFORM_2D_INVERSE,n.direction,$_t),d=F.multiplyByPointAsVector(ro.TRANSFORM_2D_INVERSE,n.up,Q_t);function p(m){pd(s,u,m.time,r.position),pd(a,f,m.time,r.direction),pd(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:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){fTe(e,o,0,1,t,i)}});e._currentTweens.push(g)}var J_t=new rn,iTe=new h,oTe=new h,rTe=new h,kK=new h,sTe=new h,aTe=new h;function egt(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=BK,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=nTe(e,n));let s;e._morphToOrthographic?(s=J_t,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=tTe,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),r.frustum=s;let a=dTe(r);xB(e,a);let c;e._morphToOrthographic?c=function(){FK(e,t,r,a)}:c=function(){lTe(e,t,r,function(){FK(e,t,r,a)})},t>0?(i._mode=ne.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,kK),complete:function(){i._mode=ne.MORPHING,c()}})):c()}function pd(e,t,n,i){return h.lerp(e,t,n,i)}function cTe(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof rn)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=n.position.z*Math.tan(a*.5);s.frustum.far=u/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=u/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var tgt=new h,ngt=new h,igt=new h,NK=new h,ogt=new h,rgt=new h,sgt=new Lr,agt=new mn,cgt=new h,lgt={position:void 0,direction:void 0,up:void 0,frustum:void 0};function ugt(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,tgt),r=h.clone(i.direction,ngt),s=h.clone(i.up,igt),a=h.negate(h.UNIT_Z,ogt),c=h.clone(h.UNIT_Y,rgt),u=NK;if(t>0)h.clone(h.ZERO,NK),u.z=5*n.ellipsoid.maximumRadius;else{h.clone(o,NK);let b=agt;F.multiplyByPoint(ro.TRANSFORM_2D,o,b.origin),F.multiplyByPointAsVector(ro.TRANSFORM_2D,r,b.direction);let T=n.globe;if(l(T)){let C=T.pickWorldCoordinates(b,n,!0,cgt);l(C)&&(F.multiplyByPoint(ro.TRANSFORM_2D_INVERSE,C,u),u.z+=h.distance(o,u))}}let f=sgt;f.right=u.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=lgt;d.position=u,d.direction=a,d.up=c,d.frustum=f;let p=hTe(d);xB(e,p);function g(b){pd(o,u,b.time,i.position),pd(r,a,b.time,i.direction),pd(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:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){cTe(e,t,d,m,p)}});e._currentTweens.push(x)}var eTe=new fe,fgt={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new Lr},dgt={position:new h,direction:new h,up:new h,frustum:void 0},hgt=new h,mgt=new mn,pgt=new F,_gt=new h;function ggt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=fgt;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,eTe),i.mapProjection.project(eTe,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let d=mgt;h.clone(r.position2D,d.origin);let p=h.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,_gt),m=Mt.eastNorthUpToFixedFrame(g,n,pgt);F.inverseTransformation(m,m),F.multiplyByPointAsVector(m,p,p),F.multiplyByPointAsVector(ro.TRANSFORM_2D,p,p);let x=i.globe;if(l(x)){let b=x.pickWorldCoordinates(d,i,!0,hgt);if(l(b)){let T=h.distance(r.position2D,b);b.x+=T,h.clone(b,r.position2D)}}}function s(d,p){d.position.x=p}F.multiplyByPoint(ro.TRANSFORM_2D,r.position,r.position2D),F.multiplyByPointAsVector(ro.TRANSFORM_2D,r.direction,r.direction2D),F.multiplyByPointAsVector(ro.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=dgt;F.multiplyByPoint(ro.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let u=hTe(c);xB(e,u);function f(){cTe(e,t,r,s,u)}uTe(e,t,r,f)}function lTe(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,u=s*Math.tan(a*.5);r.frustum.far=u/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=P.lerp(c,a,p.time),r.position.z=u/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function ygt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,kK),a=h.clone(n.direction,sTe),c=h.clone(n.up,aTe);o._mode=ne.MORPHING;function u(){r.frustum=n.frustum.clone();let f=h.clone(r.position,iTe),d=h.clone(r.direction,oTe),p=h.clone(r.up,rTe);f.z=s.z;function g(x){pd(f,s,x.time,r.position),pd(d,a,x.time,r.direction),pd(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:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(m)}e._morphToOrthographic?u():lTe(e,0,n,u)}function uTe(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,iTe),a=h.clone(r.direction,oTe),c=h.clone(r.up,rTe),u=h.clone(n.position2D,kK),f=h.clone(n.direction2D,sTe),d=h.clone(n.up2D,aTe);function p(m){pd(s,u,m.time,r.position),pd(a,f,m.time,r.direction),pd(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:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){fTe(e,o,1,0,t,i)}});e._currentTweens.push(g)}function fTe(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:qr.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function dTe(e){return function(t){let n=t._scene;n._mode=ne.SCENE3D,n.morphTime=ne.getMorphTime(ne.SCENE3D),$8(t);let i=n.camera;(t._previousMode!==ne.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=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE3D,r)}}function hTe(e){return function(t){let n=t._scene;n._mode=ne.SCENE2D,n.morphTime=ne.getMorphTime(ne.SCENE2D),$8(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.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=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE2D,o)}}function xgt(e){return function(t){let n=t._scene;n._mode=ne.COLUMBUS_VIEW,n.morphTime=ne.getMorphTime(ne.COLUMBUS_VIEW),$8(t);let i=n.camera;(t._previousModeMode!==ne.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=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.COLUMBUS_VIEW,r)}}var bB=QT;var bgt={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Li=Object.freeze(bgt);function oa(e,t){let n=`${e}`;return l(t)&&(n+=`+${t}`),n}function Tgt(e,t){z.clone(e.distance.startPosition,t.distance.startPosition),z.clone(e.distance.endPosition,t.distance.endPosition),z.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),z.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function mTe(e,t,n){let i=oa(Li.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 z;let u=e._movement[i];l(u)||(u=e._movement[i]={}),u.distance={startPosition:new z,endPosition:new z},u.angleAndHeight={startPosition:new z,endPosition:new z},u.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,r[i]=!0,a[i]=new Date,z.lerp(f.position1,f.position2,.5,s[i])},bn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},bn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(Tgt(f,u),o[i]=!1,u.prevAngle=u.angleAndHeight.startPosition.x):(z.clone(f.distance.endPosition,u.distance.endPosition),z.clone(f.angleAndHeight.endPosition,u.angleAndHeight.endPosition));let d=u.angleAndHeight.endPosition.x,p=u.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;u.angleAndHeight.endPosition.x=-d*n.clientWidth/12,u.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},bn.PINCH_MOVE,t)}function pTe(e,t){let n=oa(Li.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new z,endPosition:new z,valid:!1}),s.startPosition=new z,z.clone(z.ZERO,s.startPosition),s.endPosition=new z,e._eventHandler.setInputAction(function(c){let u=7.5*P.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=u,z.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},bn.WHEEL,t)}function uv(e,t,n){let i=oa(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime;o[i]=!1,r[i]=new z;let a=e._lastMovement[i];l(a)||(a=e._lastMovement[i]={startPosition:new z,endPosition:new z,valid:!1});let c,u;n===Li.LEFT_DRAG?(c=bn.LEFT_DOWN,u=bn.LEFT_UP):n===Li.RIGHT_DRAG?(c=bn.RIGHT_DOWN,u=bn.RIGHT_UP):n===Li.MIDDLE_DRAG&&(c=bn.MIDDLE_DOWN,u=bn.MIDDLE_UP),e._eventHandler.setInputAction(function(f){e._buttonsDown++,a.valid=!1,o[i]=!0,s[i]=new Date,z.clone(f.position,r[i])},c,t),e._eventHandler.setInputAction(function(){VK(oa(n,void 0),e);for(let f of Object.values(ia)){let d=oa(n,f);VK(d,e)}},u,t)}function VK(e,t){let n=t._releaseTime,i=t._isDown;i[e]&&(t._buttonsDown=Math.max(t._buttonsDown-1,0)),i[e]=!1,n[e]=new Date}function _Te(e,t){z.clone(e.startPosition,t.startPosition),z.clone(e.endPosition,t.endPosition)}function Cgt(e,t,n){let i=n._isDown,o=!1,r=oa(e,t);for(let[c,u]of Object.entries(i))c.startsWith(e)&&u&&c!==r&&(o=!0,VK(c,n));if(!o)return;let s=n._pressTime,a=n._lastMovement[r];l(a)||(a=n._lastMovement[r]={startPosition:new z,endPosition:new z,valid:!1}),n._buttonsDown++,a.valid=!1,i[r]=!0,s[r]=new Date}function gTe(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Li)if(Li.hasOwnProperty(s)){let a=Li[s];if(l(a)){let c=oa(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new z,endPosition:new z,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new z,endPosition:new z})}}e._eventHandler.setInputAction(function(s){for(let a in Li)if(Li.hasOwnProperty(a)){let c=Li[a];if(l(c)){let u=oa(c,t);Cgt(c,t,e),r[u]&&(n[u]?(_Te(i[u],o[u]),o[u].valid=!0,_Te(s,i[u]),n[u]=!1):z.clone(s.endPosition,i[u].endPosition))}}z.clone(s.endPosition,e._currentMousePosition)},bn.MOUSE_MOVE,t)}function _d(e){this._eventHandler=new Ju(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new z,pTe(this,void 0),mTe(this,void 0,e),uv(this,void 0,Li.LEFT_DRAG),uv(this,void 0,Li.RIGHT_DRAG),uv(this,void 0,Li.MIDDLE_DRAG),gTe(this,void 0);for(let t in ia)if(ia.hasOwnProperty(t)){let n=ia[t];l(n)&&(pTe(this,n),mTe(this,n,e),uv(this,n,Li.LEFT_DRAG),uv(this,n,Li.RIGHT_DRAG),uv(this,n,Li.MIDDLE_DRAG),gTe(this,n))}}Object.defineProperties(_d.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[oa(Li.WHEEL)]||!this._update[oa(Li.WHEEL,ia.SHIFT)]||!this._update[oa(Li.WHEEL,ia.CTRL)]||!this._update[oa(Li.WHEEL,ia.ALT)];return this._buttonsDown>0||e}}});_d.prototype.isMoving=function(e,t){let n=oa(e,t);return!this._update[n]};_d.prototype.getMovement=function(e,t){let n=oa(e,t);return this._movement[n]};_d.prototype.getLastMovement=function(e,t){let n=oa(e,t),i=this._lastMovement[n];if(i.valid)return i};_d.prototype.isButtonDown=function(e,t){let n=oa(e,t);return this._isDown[n]};_d.prototype.getStartMousePosition=function(e,t){if(e===Li.WHEEL)return this._currentMousePosition;let n=oa(e,t);return this._eventStartPosition[n]};_d.prototype.getButtonPressTime=function(e,t){let n=oa(e,t);return this._pressTime[n]};_d.prototype.getButtonReleaseTime=function(e,t){let n=oa(e,t);return this._releaseTime[n]};_d.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};_d.prototype.isDestroyed=function(){return!1};_d.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var TB=_d;function Q8(e,t,n,i,o,r,s,a,c,u){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=u,this.needsStart=!0}Object.defineProperties(Q8.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}}});Q8.prototype.cancelTween=function(){this._tweens.remove(this)};function kh(){this._tweens=[]}Object.defineProperties(kh.prototype,{length:{get:function(){return this._tweens.length}}});kh.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return l(e.complete)&&e.complete(),new Q8(this);let t=e.duration/Yn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Yn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,qr.LINEAR_NONE),r=e.startObject,s=new oye(r);s.to(Ge(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new Q8(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};kh.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})};kh.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)&&l(t.uniforms[o])&&l(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})};kh.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})};kh.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};kh.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};kh.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};kh.prototype.get=function(e){return this._tweens[e]};kh.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/Yn.SECONDS_PER_MILLISECOND:xi();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 JT=kh;function AB(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.zoomFactor=5,this.translateEventTypes=Li.LEFT_DRAG,this.zoomEventTypes=[Li.RIGHT_DRAG,Li.WHEEL,Li.PINCH],this.rotateEventTypes=Li.LEFT_DRAG,this.tiltEventTypes=[Li.MIDDLE_DRAG,Li.PINCH,{eventType:Li.LEFT_DRAG,modifier:ia.CTRL},{eventType:Li.RIGHT_DRAG,modifier:ia.CTRL}],this.lookEventTypes={eventType:Li.LEFT_DRAG,modifier:ia.SHIFT};let t=y(e.ellipsoid,ee.default);this.minimumPickingTerrainHeight=ee.WGS84.equals(t)?15e4:t.minimumRadius*.025,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=ee.WGS84.equals(t)?4e3:t.minimumRadius*63e-5,this.minimumCollisionTerrainHeight=ee.WGS84.equals(t)?15e3:t.minimumRadius*.0025,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=ee.WGS84.equals(t)?75e5:t.minimumRadius*1.175,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this.maximumTiltAngle=void 0,this._scene=e,this._globe=void 0,this._ellipsoid=t,this._lastGlobeHeight=0,this._aggregator=new TB(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 JT,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new z(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new z(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new z,this._strafeEndMousePosition=new z,this._zoomMouseStart=new z(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new z,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 n=e.mapProjection;this._maxCoord=n.project(new fe(Math.PI,P.PI_OVER_TWO)),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 Agt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function Egt(e){return z.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var Sgt=.4;function vgt(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new z,endPosition:new z,motion:new z,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),u=e.getButtonReleaseTime(t,n),f=c&&u&&(u.getTime()-c.getTime())/1e3,p=u&&(new Date().getTime()-u.getTime())/1e3;if(c&&u&&f<Sgt){let g=Agt(p,i),m=e.getLastMovement(t,n);if(!l(m)||Egt(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=z.clone(m.startPosition,a.startPosition),a.endPosition=z.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=z.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||z.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let x=e.getStartMousePosition(t,n);o(r,x,a)}}}function wgt(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var yTe=[];function gl(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(yTe[0]=n,n=yTe);let a=n.length;for(let c=0;c<a;++c){let u=n[c],f=l(u.eventType)?u.eventType:u,d=u.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),wgt(e,r)):o<1&&vgt(s,f,d,o,i,e,r))}}var J8=new mn,Dgt=new h,Igt=new z,Pgt=new h,Rgt=new z,Ogt=new h,Mgt=new h,Lgt=new h,Ngt=new h,PTe=new h,Fgt=new h,Bgt=new h,kgt=new h,Vgt=new h,Ugt=new h,zgt=new h,Hgt=new h,Ggt=new h,Wgt=new h,jgt=new h,eC=new h,xTe=new h,bTe=new h,UK={orientation:new Sa};function XK(e,t,n,i,o,r){let s=1;l(r)&&(s=P.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,u=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-u,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||!l(e._globe)){if(m>0&&Math.abs(o-u)<1||m<0&&Math.abs(o-f)<1)return;o-m<u?m=o-u-1:o-m>f&&(m=o-f)}let x=e._scene,b=x.camera,T=x.mode,C=UK.orientation;if(C.heading=b.heading,C.pitch=b.pitch,C.roll=b.roll,b.frustum instanceof rn){Math.abs(m)>0&&(b.zoomIn(m),b._adjustOrthographicFrustum(!0));return}let A=y(n.inertiaEnabled,z.equals(t,e._zoomMouseStart)),E=e._zoomingOnVector,v=e._rotatingZoom,D;if(A||(e._zoomMouseStart=z.clone(t,e._zoomMouseStart),l(e._globe)&&T===ne.SCENE2D?(D=b.getPickRay(t,J8).origin,D=h.fromElements(D.y,D.z,D.x)):l(e._globe)&&(D=gg(e,t,Dgt)),l(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,E=e._zoomingOnVector=!1,v=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){b.zoomIn(m);return}let O=T===ne.COLUMBUS_VIEW;if(b.positionCartographic.height<2e6&&(v=!0),!A||v){if(T===ne.SCENE2D){let R=e._zoomWorldPosition,M=b.position;if(!h.equals(R,M)&&b.positionCartographic.height<e._maxCoord.x*2){let N=b.position.x,_=h.subtract(R,M,Pgt);h.normalize(_,_);let S=h.distance(R,M)*m/(b.getMagnitude()*.5);b.move(_,S*.5),(b.position.x<0&&N>0||b.position.x>0&&N<0)&&(D=b.getPickRay(t,J8).origin,D=h.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition))}}else if(T===ne.SCENE3D){let R=h.normalize(b.position,PTe);if(e._cameraUnderground||e._zoomingUnderground||b.positionCartographic.height<3e3&&Math.abs(h.dot(b.direction,R))<.6)O=!0;else{let M=x.canvas,N=Rgt;N.x=M.clientWidth/2,N.y=M.clientHeight/2;let _=gg(e,N,Ogt);if(!l(_))O=!0;else if(b.positionCartographic.height<1e6)if(h.dot(b.direction,R)>=-.5)O=!0;else{let S=Bgt;h.clone(b.position,S);let w=e._zoomWorldPosition,I=Fgt;if(I=h.normalize(w,I),h.dot(I,R)<0)return;let L=jgt,B=Ugt;h.clone(b.direction,B),h.add(S,h.multiplyByScalar(B,1e3,eC),L);let U=zgt,V=Hgt;h.subtract(w,S,U),h.normalize(U,V);let G=h.dot(R,V);if(G>=0){e._zoomMouseStart.x=-1;return}let k=Math.acos(-G),W=h.magnitude(S),q=h.magnitude(w),J=W-m,j=h.magnitude(U),K=Math.asin(P.clamp(j/q*Math.sin(k),-1,1)),Q=Math.asin(P.clamp(J/q*Math.sin(k),-1,1)),de=K-Q+k,ye=kgt;h.normalize(S,ye);let ae=Vgt;ae=h.cross(V,ye,ae),ae=h.normalize(ae,ae),h.normalize(h.cross(ye,ae,eC),B),h.multiplyByScalar(h.normalize(L,eC),h.magnitude(L)-m,L),h.normalize(S,S),h.multiplyByScalar(S,J,S);let _e=Ggt;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,xTe),h.multiplyByScalar(B,Math.sin(de),bTe),eC),J,_e),h.add(S,_e,S),h.normalize(L,ye),h.normalize(h.cross(ye,ae,eC),B);let xe=Wgt;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,xTe),h.multiplyByScalar(B,Math.sin(de),bTe),eC),h.magnitude(L),xe),h.add(L,xe,L),h.clone(S,b.position),h.normalize(h.subtract(L,S,eC),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(UK);return}else{let S=h.normalize(_,Mgt),w=h.normalize(e._zoomWorldPosition,Lgt),I=h.dot(w,S);if(I>0&&I<1){let L=P.acosClamped(I),B=h.cross(w,S,Ngt),U=Math.abs(L)>P.toRadians(20)?b.positionCartographic.height*.75:b.positionCartographic.height-m,V=m/U;b.rotate(B,L*V)}}}}e._rotatingZoom=!O}if(!A&&O||E){let R,M=Ui.worldToWindowCoordinates(x,e._zoomWorldPosition,Igt);T!==ne.COLUMBUS_VIEW&&z.equals(t,e._zoomMouseStart)&&l(M)?R=b.getPickRay(M,J8):R=b.getPickRay(t,J8);let N=R.direction;(T===ne.COLUMBUS_VIEW||T===ne.SCENE2D)&&h.fromElements(N.y,N.z,N.x,N),b.move(N,m),e._zoomingOnVector=!0}else b.zoomIn(m);e._cameraUnderground||b.setView(UK)}var qgt=new mn,Ygt=new mn,Xgt=new h;function Kgt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,qgt).origin,s=o.getPickRay(n.endPosition,Ygt).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,Xgt),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function TTe(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;XK(e,t,n,e.zoomFactor,o.getMagnitude())}var Zgt=new z,$gt=new z;function CTe(e,t,n){if(l(n.angleAndHeight)){Qgt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=Zgt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=z.normalize(c,c);let u=$gt;u.x=2/s*n.endPosition.x-1,u.y=2/a*(a-n.endPosition.y)-1,u=z.normalize(u,u);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(u.x);u.y<0&&(d=P.TWO_PI-d);let p=d-f;o.twistRight(p)}function Qgt(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 Jgt(e){let t=e._scene.mapMode2D===tu.ROTATE;F.equals(F.IDENTITY,e._scene.camera.transform)?(gl(e,e.enableTranslate,e.translateEventTypes,Kgt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),gl(e,e.enableZoom,e.zoomEventTypes,TTe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&gl(e,e.enableRotate,e.tiltEventTypes,CTe,e.inertiaSpin,"_lastInertiaTiltMovement")):(gl(e,e.enableZoom,e.zoomEventTypes,TTe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&gl(e,e.enableRotate,e.translateEventTypes,CTe,e.inertiaSpin,"_lastInertiaSpinMovement"))}var RTe=new mn,eyt=new h,tyt=new h;function gg(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,eyt)),!l(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,RTe),u=o.pickWorldCoordinates(c,i,a,tyt),f=l(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,d=l(u)?h.distance(u,r.positionWC):Number.POSITIVE_INFINITY;return f<d?h.clone(s,n):h.clone(u,n)}var nyt=new fe;function sG(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===ne.SCENE3D){let c=t.cartesianToCartographic(i.position,nyt);l(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var iyt=new h;function OTe(e,t){let n=t.origin,i=t.direction,o=sG(e),r=h.normalize(n,iyt),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function MTe(e,t,n,i){let o=h.distance(t.origin,n),r=sG(e),s=P.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),mn.getPoint(t,o,i)}function LTe(e,t,n,i){let o;return l(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=sG(e))):o=sG(e),mn.getPoint(t,o,i)}var oyt=new z;function NTe(e,t){let n=t.endPosition,i=z.subtract(t.endPosition,t.startPosition,oyt),o=e._strafeEndMousePosition;z.add(o,i,o),t.endPosition=o,KK(e,t,e._strafeStartPosition),t.endPosition=n}var ATe=new mn,ryt=new mn,zK=new h,syt=new h,ayt=new h,cyt=new h,lyt=new cn(h.UNIT_X,0),uyt=new z,fyt=new z;function dyt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){tf(e,t,n);return}if(e._strafing){NTe(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=z.clone(n.startPosition,uyt),a=z.clone(n.endPosition,fyt),c=o.getPickRay(s,ATe),u=h.clone(h.ZERO,cyt),f=h.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=gg(e,s,zK),l(d)&&(u.x=d.x)),r||u.x>o.position.z&&l(d)){let A=d;r&&(A=LTe(e,c,d,zK)),z.clone(t,e._strafeMousePosition),z.clone(t,e._strafeEndMousePosition),h.clone(A,e._strafeStartPosition),e._strafing=!0,KK(e,n,e._strafeStartPosition);return}let p=cn.fromPointNormal(u,f,lyt);c=o.getPickRay(s,ATe);let g=$n.rayPlane(c,p,zK),m=o.getPickRay(a,ryt),x=$n.rayPlane(m,p,syt);if(!l(g)||!l(x)){e._looking=!0,tf(e,t,n),z.clone(t,e._translateMousePosition);return}let b=h.subtract(g,x,ayt),T=b.x;b.x=b.y,b.y=b.z,b.z=T;let C=h.magnitude(b);C>P.EPSILON6&&(h.normalize(b,b),o.move(b,C))}var FTe=new z,nG=new mn,iG=new h,hyt=new h,BTe=new F,myt=new F,pyt=new h,_yt=new cn(h.UNIT_X,0),HK=new h,jK=new fe,kTe=new F,gyt=new Oe,yyt=new $,oG=new h;function xyt(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),z.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){tf(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,byt(e,t,n)):Tyt(e,t,n)}function byt(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=FTe;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,nG),c=h.UNIT_X,u=a.origin,f=a.direction,d,p=h.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-h.dot(c,u)/p),!l(d)||d<=0){e._looking=!0,tf(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(f,d,iG);h.add(u,g,g);let m=i.mapProjection,x=m.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let b=m.unproject(g,jK);x.cartographicToCartesian(b,g);let T=Mt.eastNorthUpToFixedFrame(g,x,BTe),C=e._globe,A=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let E=F.clone(o.transform,kTe);o._setTransform(T),ef(e,t,n,h.UNIT_Z),o._setTransform(E),e._globe=C,e._ellipsoid=A;let v=A.maximumRadius;e._rotateFactor=1/v,e._rotateRateRangeAdjustment=v}function Tyt(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(z.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,iG);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=gg(e,t,iG)),!l(s)){a=o.getPickRay(t,nG);let _=a.origin,S=a.direction,w,I=h.dot(c,S);if(Math.abs(I)>P.EPSILON6&&(w=-h.dot(c,_)/I),!l(w)||w<=0){e._looking=!0,tf(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(S,w,iG),h.add(_,s,s)}r&&(l(a)||(a=o.getPickRay(t,nG)),MTe(e,a,s,s)),z.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let u=i.canvas,f=FTe;f.x=u.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,nG);let d=h.clone(h.ZERO,pyt);d.x=s.x;let p=cn.fromPointNormal(d,c,_yt),g=$n.rayPlane(a,p,hyt),m=o._projection,x=m.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let b=m.unproject(s,jK);x.cartographicToCartesian(b,s);let T=Mt.eastNorthUpToFixedFrame(s,x,BTe),C;l(g)?(h.fromElements(g.y,g.z,g.x,g),b=m.unproject(g,jK),x.cartographicToCartesian(b,g),C=Mt.eastNorthUpToFixedFrame(g,x,myt)):C=T;let A=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(o.transform,kTe);o._setTransform(T);let O=h.cross(h.UNIT_Z,h.normalize(o.position,HK),HK),R=h.dot(o.right,O);if(ef(e,t,n,v,!1,!0),o._setTransform(C),R<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(v=void 0);let S=o.constrainedAxis;o.constrainedAxis=void 0,ef(e,t,n,v,!0,!1),o.constrainedAxis=S}else ef(e,t,n,v,!0,!1);if(l(o.constrainedAxis)){let _=h.cross(o.direction,o.constrainedAxis,oG);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=A,e._ellipsoid=E;let M=E.maximumRadius;e._rotateFactor=1/M,e._rotateRateRangeAdjustment=M;let N=h.clone(o.positionWC,HK);if(e.enableCollisionDetection&&QK(e,!0),!h.equals(o.positionWC,N)){o._setTransform(C),o.worldToCameraCoordinatesPoint(N,N);let _=h.magnitudeSquared(N);h.magnitudeSquared(o.position)>_&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(_),o.position));let S=h.angleBetween(N,o.position),w=h.cross(N,o.position,N);h.normalize(w,w);let I=Oe.fromAxisAngle(w,S,gyt),L=$.fromQuaternion(I,yyt);$.multiplyByVector(L,o.direction,o.direction),$.multiplyByVector(L,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(D)}}var VTe=new z,UTe=new mn,zTe=new h;function Cyt(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=VTe,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,UTe),u=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=gg(e,a,zTe));let g;if(l(p)&&(g=h.distance(u,p)),s){let m=OTe(e,c,d);l(g)?g=Math.min(g,m):g=m}if(!l(g)){let m=h.UNIT_X;g=-h.dot(m,u)/h.dot(m,f)}XK(e,t,n,e.zoomFactor,g)}function Ayt(e){let n=e._scene.camera;if(!F.equals(F.IDENTITY,n.transform))gl(e,e.enableRotate,e.rotateEventTypes,ef,e.inertiaSpin,"_lastInertiaSpinMovement"),gl(e,e.enableZoom,e.zoomEventTypes,GTe,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),gl(e,e.enableTilt,e.tiltEventTypes,xyt,e.inertiaSpin,"_lastInertiaTiltMovement"),gl(e,e.enableTranslate,e.translateEventTypes,dyt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),gl(e,e.enableZoom,e.zoomEventTypes,Cyt,e.inertiaZoom,"_lastInertiaZoomMovement"),gl(e,e.enableLook,e.lookEventTypes,tf),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var Eyt=new mn,Syt=new cn(h.UNIT_X,0),vyt=new h,wyt=new h;function KK(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,Eyt),s=h.clone(o.direction,wyt);i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=cn.fromPointNormal(n,s,Syt),c=$n.rayPlane(r,a,vyt);l(c)&&(s=h.subtract(n,c,s),i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var ETe=new h,HTe=new fe,qK=new h,YK=new ee,Dyt=new h,Iyt=new h,Pyt=new h;function Ryt(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!F.equals(o.transform,F.IDENTITY)){ef(e,t,n);return}let a,c,u=s.geodeticSurfaceNormal(o.position,Dyt);if(z.equals(t,e._rotateMousePosition)){if(e._looking)tf(e,t,n,u);else if(e._rotating)ef(e,t,n);else if(e._strafing)NTe(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=qK,c.x=c.y=c.z=a,s=ee.fromCartesian3(c,YK),WK(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,HTe).height,d=e._globe;if(l(d)&&f<e._minimumPickingTerrainHeight){let p=gg(e,n.startPosition,Pyt);if(l(p)){let g=!1,m=o.getPickRay(n.startPosition,RTe);if(r)g=!0,LTe(e,m,p,p);else{let x=s.geodeticSurfaceNormal(p,Iyt);Math.abs(h.dot(m.direction,x))<.05?g=!0:g=h.magnitude(o.position)<h.magnitude(p)}g?(z.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,KK(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=qK,c.x=c.y=c.z=a,s=ee.fromCartesian3(c,YK),WK(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,tf(e,t,n,u)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,ETe))?(WK(e,t,n,e._ellipsoid),h.clone(ETe,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,ef(e,t,n)):(e._looking=!0,tf(e,t,n,u));z.clone(t,e._rotateMousePosition)}function ef(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,u=a.constrainedAxis;l(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;if(l(i)&&l(e.maximumTiltAngle)){let b=e.maximumTiltAngle,T=h.dot(a.direction,i),C=Math.PI-Math.acos(T)+x;C>b&&(x-=C-b)}o||a.rotateRight(m),r||a.rotateUp(x),a.constrainedAxis=u}var GK=oe.clone(oe.UNIT_W),STe=oe.clone(oe.UNIT_W),eG=new h,fv=new h,tG=new h,vTe=new h,Oyt=new z,Myt=new z,Lyt=new z,Nyt=new z,Fyt=new mn;function WK(e,t,n,i){let o=e._scene,r=o.camera,s=z.clone(n.startPosition,Oyt),a=z.clone(n.endPosition,Myt),c=i.cartesianToCartographic(r.positionWC,HTe).height,u,f;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(u=h.clone(e._panLastWorldPosition,GK),!l(e._globe)&&!z.equalsEpsilon(s,e._panLastMousePosition)&&(u=gg(e,s,GK)),!l(e._globe)&&l(u))){let d=h.subtract(u,r.positionWC,fv),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,d),fv),g=h.magnitude(p),m=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,g,o.pixelRatio,Nyt),x=z.subtract(a,s,Lyt),b=h.multiplyByScalar(r.rightWC,x.x*m.x,fv),T=h.normalize(r.positionWC,PTe),C=r.getPickRay(a,Fyt).direction,A=h.subtract(C,h.projectVector(C,r.rightWC,tG),tG),E=h.angleBetween(A,r.directionWC),v=1;l(r.frustum.fov)&&(v=Math.max(Math.tan(E),.1));let D=Math.abs(h.dot(r.directionWC,T)),O=-x.y*m.y*2/Math.sqrt(v)*(1-D),R=h.multiplyByScalar(C,O,tG);D=Math.abs(h.dot(r.upWC,T));let M=h.multiplyByScalar(r.upWC,-x.y*(1-D)*m.y,vTe);f=h.add(u,b,STe),f=h.add(f,R,f),f=h.add(f,M,f),h.clone(f,e._panLastWorldPosition),z.clone(a,e._panLastMousePosition)}if((!l(u)||!l(f))&&(u=r.pickEllipsoid(s,i,GK),f=r.pickEllipsoid(a,i,STe)),!l(u)||!l(f)){e._rotating=!0,ef(e,t,n);return}if(u=r.worldToCameraCoordinates(u,u),f=r.worldToCameraCoordinates(f,f),l(r.constrainedAxis)){let d=r.constrainedAxis,p=h.mostOrthogonalAxis(d,eG);h.cross(p,d,p),h.normalize(p,p);let g=h.cross(d,p,fv),m=h.magnitude(u),x=h.dot(d,u),b=Math.acos(x/m),T=h.multiplyByScalar(d,x,tG);h.subtract(u,T,T),h.normalize(T,T);let C=h.magnitude(f),A=h.dot(d,f),E=Math.acos(A/C),v=h.multiplyByScalar(d,A,vTe);h.subtract(f,v,v),h.normalize(v,v);let D=Math.acos(h.dot(T,p));h.dot(T,g)<0&&(D=P.TWO_PI-D);let O=Math.acos(h.dot(v,p));h.dot(v,g)<0&&(O=P.TWO_PI-O);let R=D-O,M;h.equalsEpsilon(d,r.position,P.EPSILON2)?M=r.right:M=h.cross(d,r.position,eG);let N=h.cross(d,M,eG),_=h.dot(N,h.subtract(u,d,fv)),S=h.dot(N,h.subtract(f,d,fv)),w;_>0&&S>0?w=E-b:_>0&&S<=0?h.dot(r.position,d)>0?w=-b-E:w=b+E:w=b-E,r.rotateRight(R),r.rotateUp(w)}else{h.normalize(u,u),h.normalize(f,f);let d=h.dot(u,f),p=h.cross(u,f,eG);if(d<1&&!h.equalsEpsilon(p,h.ZERO,P.EPSILON14)){let g=Math.acos(d);r.rotate(p,g)}}}var Byt=new h,kyt=new fe,wTe=0;function GTe(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,u;c?u=t:(u=VTe,u.x=a.clientWidth/2,u.y=a.clientHeight/2);let f=s.getPickRay(u,UTe),d,p=o.cartesianToCartographic(s.position,kyt).height,g=Math.abs(wTe)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=gg(e,u,zTe));let x;if(l(d)&&(x=h.distance(f.origin,d),wTe=x),c){let T=OTe(e,f,p);l(x)?x=Math.min(x,T):x=T}l(x)||(x=p);let b=h.normalize(s.position,Byt);XK(e,t,n,e.zoomFactor,x,h.dot(b,s.direction))}var WTe=new z,rG=new mn,CB=new h,Vyt=new h,jTe=new F,Uyt=new F,qTe=new F,zyt=new Oe,Hyt=new $,ZK=new fe,$K=new h;function Gyt(e,t,n){let o=e._scene.camera;if(!F.equals(o.transform,F.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),z.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,$K);tf(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,ZK);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,jyt(e,t,n)):qyt(e,t,n)}var Wyt=new fe;function jyt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,Wyt).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,u=WTe;u.x=c.clientWidth/2,u.y=c.clientHeight/2;let f=r.getPickRay(u,rG),d,p=$n.rayEllipsoid(f,i);if(l(p))d=mn.getPoint(f,p.start,CB);else if(a>e._minimumTrackBallHeight){let C=$n.grazingAltitudeLocation(f,i);if(!l(C))return;let A=i.cartesianToCartographic(C,ZK);A.height=0,d=i.cartographicToCartesian(A,CB)}else{e._looking=!0;let C=e._ellipsoid.geodeticSurfaceNormal(r.position,$K);tf(e,t,n,C),z.clone(t,e._tiltCenterMousePosition);return}let g=Mt.eastNorthUpToFixedFrame(d,i,jTe),m=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let b=F.clone(r.transform,qTe);r._setTransform(g),ef(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 qyt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,u;if(z.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,CB);else{if(a=gg(e,t,CB),!l(a)){if(c=r.getPickRay(t,rG),u=$n.rayEllipsoid(c,i),!l(u)){if(i.cartesianToCartographic(r.position,ZK).height<=e._minimumTrackBallHeight){e._looking=!0;let S=e._ellipsoid.geodeticSurfaceNormal(r.position,$K);tf(e,t,n,S),z.clone(t,e._tiltCenterMousePosition)}return}a=mn.getPoint(c,u.start,CB)}s&&(l(c)||(c=r.getPickRay(t,rG)),MTe(e,c,a,a)),z.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let f=o.canvas,d=WTe;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,rG);let p=h.magnitude(a),g=h.fromElements(p,p,p,qK),m=ee.fromCartesian3(g,YK);if(u=$n.rayEllipsoid(c,m),!l(u))return;let x=h.magnitude(c.origin)>p?u.start:u.stop,b=mn.getPoint(c,x,Vyt),T=Mt.eastNorthUpToFixedFrame(a,i,jTe),C=Mt.eastNorthUpToFixedFrame(b,m,Uyt),A=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(r.transform,qTe);r._setTransform(C);let O=h.cross(b,r.positionWC,oG);if(h.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(v=void 0);let S=r.constrainedAxis;r.constrainedAxis=void 0,ef(e,t,n,v,!0,!1),r.constrainedAxis=S}else ef(e,t,n,v,!0,!1);if(r._setTransform(T),ef(e,t,n,v,!1,!0),l(r.constrainedAxis)){let _=h.cross(r.direction,r.constrainedAxis,oG);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=A,e._ellipsoid=E;let M=E.maximumRadius;e._rotateFactor=1/M,e._rotateRateRangeAdjustment=M;let N=h.clone(r.positionWC,oG);if(e.enableCollisionDetection&&QK(e,!0),!h.equals(r.positionWC,N)){r._setTransform(C),r.worldToCameraCoordinatesPoint(N,N);let _=h.magnitudeSquared(N);h.magnitudeSquared(r.position)>_&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(_),r.position));let S=h.angleBetween(N,r.position),w=h.cross(N,r.position,N);h.normalize(w,w);let I=Oe.fromAxisAngle(w,S,zyt),L=$.fromQuaternion(I,Hyt);$.multiplyByVector(L,r.direction,r.direction),$.multiplyByVector(L,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(D)}}var Yyt=new z,Xyt=new z,DTe=new mn,ITe=new mn,Kyt=new h,Zyt=new h;function tf(e,t,n,i){let r=e._scene.camera,s=Yyt;s.x=n.startPosition.x,s.y=0;let a=Xyt;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,DTe),u=r.getPickRay(a,ITe),f=0,d,p;r.frustum instanceof rn?(d=c.origin,p=u.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=u.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(l(i)?r.look(i,-f):l(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,DTe),u=r.getPickRay(a,ITe),f=0,r.frustum instanceof rn?(d=c.origin,p=u.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=u.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),l(i)){let x=r.direction,b=h.negate(i,Kyt),T=h.equalsEpsilon(x,i,P.EPSILON2),C=h.equalsEpsilon(x,b,P.EPSILON2);if(!T&&!C){g=h.dot(x,i);let A=P.acosClamped(g);f>0&&f>A&&(f=A-P.EPSILON4),g=h.dot(x,b),A=P.acosClamped(g),f<0&&-f>A&&(f=-A+P.EPSILON4);let E=h.cross(i,x,Zyt);r.look(E,f)}else(T&&f<0||C&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function $yt(e){gl(e,e.enableRotate,e.rotateEventTypes,Ryt,e.inertiaSpin,"_lastInertiaSpinMovement"),gl(e,e.enableZoom,e.zoomEventTypes,GTe,e.inertiaZoom,"_lastInertiaZoomMovement"),gl(e,e.enableTilt,e.tiltEventTypes,Gyt,e.inertiaSpin,"_lastInertiaTiltMovement"),gl(e,e.enableLook,e.lookEventTypes,tf)}var Qyt=new F,Jyt=new fe;function QK(e,t){e._adjustedHeightForTerrain=!0;let n=e._scene,i=n.mode;if(i===ne.SCENE2D||i===ne.MORPHING)return;let o=n.camera,r=y(n.ellipsoid,ee.WGS84),s=n.mapProjection,a,c;F.equals(o.transform,F.IDENTITY)||(a=F.clone(o.transform,Qyt),c=h.magnitude(o.position),o._setTransform(F.IDENTITY));let u=Jyt;i===ne.SCENE3D?r.cartesianToCartographic(o.position,u):s.unproject(o.position,u);let f=!1;if(u.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(l(d)){let p=d+e.minimumZoomDistance,g=d-e._lastGlobeHeight,m=g/e._lastGlobeHeight;u.height<p&&(t||Math.abs(m)<=.1)&&(u.height=p,i===ne.SCENE3D?r.cartographicToCartesian(u,o.position):s.project(u,o.position),f=!0),t||Math.abs(m)<=.1?e._lastGlobeHeight=d:e._lastGlobeHeight+=g*.1}}l(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)))}AB.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ne.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var e0t=new h,t0t=new h;AB.prototype.update=function(){let e=this._scene,{camera:t,globe:n,mode:i}=e;F.equals(t.transform,F.IDENTITY)?(this._globe=n,this._ellipsoid=y(e.ellipsoid,ee.default)):(this._globe=void 0,this._ellipsoid=ee.UNIT_SPHERE);let{verticalExaggeration:o,verticalExaggerationRelativeHeight:r}=e;this._minimumCollisionTerrainHeight=Cr.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=Cr.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=Cr.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,e0t),c=h.clone(t.directionWC,t0t);if(i===ne.SCENE2D?Jgt(this):i===ne.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,Ayt(this)):i===ne.SCENE3D&&(this._horizontalRotationAxis=void 0,$yt(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain){let u=!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC);QK(this,u)}this._aggregator.reset()};AB.prototype.isDestroyed=function(){return!1};AB.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var EB=AB;var SB=`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 vB=`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;
}

// See section 9. "The bright-pass filter" of Realtime HDR Rendering
// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf

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 yg(){this._sceneFramebuffer=new HT;let e=.125,t=new Array(6);t[0]=new fo({fragmentShader:nu,textureScale:e,forcePowerOfTwo:!0,sampleMode:Zu.LINEAR});let n=t[1]=new fo({fragmentShader:vB,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new z,t[2]=new fo({fragmentShader:P0,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 fo({fragmentShader:P0,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 fo({fragmentShader:nu,sampleMode:Zu.LINEAR}),this._uCenter=new z,this._uRadius=void 0,t[5]=new fo({fragmentShader:SB,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new pl({stages:t});let o=new KT(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}yg.prototype.get=function(e){return this._stages.get(e)};yg.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 n0t=new oe,YTe=new z,i0t=new z,XTe=new F;function o0t(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=F.computeViewportTransformation(n,0,1,XTe),u=F.multiplyByPoint(r,o,n0t),f=Mt.pointToGLWindowCoordinates(s,c,o,YTe);u.x+=P.SOLAR_RADIUS;let d=Mt.pointToGLWindowCoordinates(a,c,u,u),p=z.magnitude(z.subtract(d,f,d))*30*2,g=i0t;g.x=p,g.y=p,e._uCenter=z.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),C=T.outputTexture.width,A=T.outputTexture.height,E=new je;E.width=C,E.height=A,c=F.computeViewportTransformation(E,0,1,XTe),f=Mt.pointToGLWindowCoordinates(s,c,o,YTe),g.x*=C/m,g.y*=A/x;let v=T.scissorRectangle;v.x=Math.max(f.x-g.x*.5,0),v.y=Math.max(f.y-g.y*.5,0),v.width=Math.min(g.x,m),v.height=Math.min(g.y,x);for(let D=1;D<4;++D)je.clone(v,b.get(D).scissorRectangle)}yg.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};yg.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),o0t(this,t,n),o};yg.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)};yg.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};yg.prototype.isDestroyed=function(){return!1};yg.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var wB=yg;function KTe(){this._cachedShowFrustumsShaders={}}function r0t(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function s0t(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=Ue.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 u=r0t(i);return Qt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:u})}var DB=new H;function a0t(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=H.fromRandom()),t._debugColor):H.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(DB.red=t.debugOverlappingFrustums&1?1:0,DB.green=t.debugOverlappingFrustums&2?1:0,DB.blue=t.debugOverlappingFrustums&4?1:0,DB.alpha=1,DB):H.WHITE}),n}var c0t=new Ze;KTe.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=s0t(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=Ze.shallowClone(t,c0t);r.shaderProgram=o,r.uniformMap=a0t(e,t),r.execute(e.context,n)};var IB=KTe;function tC(e,t,n){this._primitive=e,this._tileIndex=t,this._sampleIndex=n,this._metadata={},this._orientedBoundingBox=new vn}tC.fromKeyframeNode=function(e,t,n,i){let o=new tC(e,t,n),{spatialNode:r,metadata:s}=i;return o._metadata=l0t(e,s,n),o._orientedBoundingBox=f0t(e,r,n,o._orientedBoundingBox),o};function l0t(e,t,n){if(!l(t))return;let{names:i,types:o}=e.provider,r={};for(let s=0;s<i.length;s++){let a=i[s],c=At.getComponentCount(o[s]),u=t[s].slice(n*c,(n+1)*c);r[a]=u}return r}var ZTe=new h,u0t=new h;function f0t(e,t,n,i){let o=t.dimensions,r=o.x*o.y,s=Math.floor(n/r),a=n-s*r,c=Math.floor(a/o.x),u=a-c*o.x,f=h.fromElements(u,c,s,ZTe),d=h.divideComponents(h.subtract(f,e._paddingBefore,ZTe),e.dimensions,u0t);return e._shape.computeOrientedBoundingBoxForSample(t,e.dimensions,d,i)}Object.defineProperties(tC.prototype,{metadata:{get:function(){return this._metadata}},primitive:{get:function(){return this._primitive}},sampleIndex:{get:function(){return this._sampleIndex}},tileIndex:{get:function(){return this._tileIndex}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox.clone()}}});tC.prototype.hasProperty=function(e){return l(this._metadata[e])};tC.prototype.getNames=function(){return Object.keys(this._metadata)};tC.prototype.getProperty=function(e){return this._metadata[e]};var PB=tC;var RB=`struct Ray {
    vec3 pos;
    vec3 dir;
    vec3 rawDir;
};

#if defined(JITTER)
/**
 * Generate a pseudo-random value for a given 2D screen coordinate.
 * Similar to https://www.shadertoy.com/view/4djSRW with a modified hashscale.
 */
float hash(vec2 p)
{
    vec3 p3 = fract(vec3(p.xyx) * 50.0);
    p3 += dot(p3, p3.yzx + 19.19);
    return fract((p3.x + p3.y) * p3.z);
}
#endif

float minComponent(in vec3 v) {
    return min(min(v.x, v.y), v.z);
}

float maxComponent(in vec3 v) {
    return max(max(v.x, v.y), v.z);
}

struct PointJacobianT {
    vec3 point;
    mat3 jacobianT;
};
`;var OB=`// See Intersection.glsl for the definition of intersectScene
// See IntersectionUtils.glsl for the definition of nextIntersection
// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl
// for the definition of convertUvToShapeUvSpace. The appropriate function is 
// selected based on the VoxelPrimitive shape type, and added to the shader in
// Scene/VoxelRenderResources.js.
// See Octree.glsl for the definitions of TraversalData, SampleData,
// traverseOctreeFromBeginning, and traverseOctreeFromExisting
// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture

#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops
#if defined(PICKING_VOXEL)
    #define ALPHA_ACCUM_MAX 0.1
#else
    #define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0
#endif

uniform mat3 u_transformDirectionViewToLocal;
uniform vec3 u_cameraPositionUv;
uniform float u_stepSize;

#if defined(PICKING)
    uniform vec4 u_pickColor;
#endif

vec3 getSampleSize(in int level) {
    vec3 sampleCount = exp2(float(level)) * vec3(u_dimensions);
    vec3 sampleSizeUv = 1.0 / sampleCount;
    return scaleShapeUvToShapeSpace(sampleSizeUv);
}

#define MINIMUM_STEP_SCALAR (0.02)
#define SHIFT_FRACTION (0.001)

/**
 * Given a coordinate within a tile, and sample spacings along a ray through
 * the coordinate, find the distance to the points where the ray entered and
 * exited the voxel cell, along with the surface normals at those points.
 * The surface normals are returned in shape space coordinates.
 */
RayShapeIntersection getVoxelIntersection(in vec3 tileUv, in vec3 sampleSizeAlongRay) {
    vec3 voxelCoord = tileUv * vec3(u_dimensions);
    vec3 directions = sign(sampleSizeAlongRay);
    vec3 positiveDirections = max(directions, 0.0);
    vec3 entryCoord = mix(ceil(voxelCoord), floor(voxelCoord), positiveDirections);
    vec3 exitCoord = entryCoord + directions;

    vec3 distanceFromEntry = -abs((entryCoord - voxelCoord) * sampleSizeAlongRay);
    float lastEntry = maxComponent(distanceFromEntry);
    bvec3 isLastEntry = equal(distanceFromEntry, vec3(lastEntry));
    vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions;
    vec4 entry = vec4(entryNormal, lastEntry);

    vec3 distanceToExit = abs((exitCoord - voxelCoord) * sampleSizeAlongRay);
    float firstExit = minComponent(distanceToExit);
    bvec3 isFirstExit = equal(distanceToExit, vec3(firstExit));
    vec3 exitNormal = vec3(isFirstExit) * directions;
    vec4 exit = vec4(exitNormal, firstExit);

    return RayShapeIntersection(entry, exit);
}

vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection, in mat3 jacobianT, in float currentT) {
    // The Jacobian is computed in a space where the shape spans [-1, 1].
    // But the ray is marched in a space where the shape fills [0, 1].
    // So we need to scale the Jacobian by 2.
    vec3 gradient = 2.0 * viewRay.rawDir * jacobianT;
    vec3 sampleSizeAlongRay = getSampleSize(sampleData.tileCoords.w) / gradient;

    RayShapeIntersection voxelIntersection = getVoxelIntersection(sampleData.tileUv, sampleSizeAlongRay);

    // Transform normal from shape space to Cartesian space
    vec3 voxelNormal = normalize(jacobianT * voxelIntersection.entry.xyz);
    // Compare with the shape intersection, to choose the appropriate normal
    vec4 voxelEntry = vec4(voxelNormal, currentT + voxelIntersection.entry.w);
    vec4 entry = intersectionMax(shapeIntersection.entry, voxelEntry);

    float fixedStep = minComponent(abs(sampleSizeAlongRay)) * u_stepSize;
    float shift = fixedStep * SHIFT_FRACTION;
    float dt = voxelIntersection.exit.w + shift;
    if ((currentT + dt) > shapeIntersection.exit.w) {
        // Stop at end of shape
        dt = shapeIntersection.exit.w - currentT + shift;
    }
    float stepSize = clamp(dt, fixedStep * MINIMUM_STEP_SCALAR, fixedStep + shift);

    return vec4(entry.xyz, stepSize);
}

vec2 packIntToVec2(int value) {
    float shifted = float(value) / 255.0;
    float lowBits = fract(shifted);
    float highBits = floor(shifted) / 255.0;
    return vec2(highBits, lowBits);
}

vec2 packFloatToVec2(float value) {
    float lowBits = fract(value);
    float highBits = floor(value) / 255.0;
    return vec2(highBits, lowBits);
}

int getSampleIndex(in vec3 tileUv) {
    ivec3 voxelDimensions = u_dimensions;
    vec3 sampleCoordinate = tileUv * vec3(voxelDimensions);
    // tileUv = 1.0 is a valid coordinate but sampleIndex = voxelDimensions is not.
    // (tileUv = 1.0 corresponds to the last sample, at index = voxelDimensions - 1).
    // Clamp to [0, voxelDimensions - 0.5) to avoid numerical error before flooring
    vec3 maxCoordinate = vec3(voxelDimensions) - vec3(0.5);
    sampleCoordinate = clamp(sampleCoordinate, vec3(0.0), maxCoordinate);
    ivec3 sampleIndex = ivec3(floor(sampleCoordinate));
    #if defined(PADDING)
        voxelDimensions += u_paddingBefore + u_paddingAfter;
        sampleIndex += u_paddingBefore;
    #endif
    // Convert to a 1D index for lookup in a 1D data array
    return sampleIndex.x + voxelDimensions.x * (sampleIndex.y + voxelDimensions.y * sampleIndex.z);
}

void main()
{
    vec4 fragCoord = gl_FragCoord;
    vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1]
    vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz);
    vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case
    vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case
    vec3 viewPosUv = u_cameraPositionUv;
    #if defined(SHAPE_ELLIPSOID)
        // viewDirUv has been scaled to a space where the ellipsoid is a sphere.
        // Undo this scaling to get the raw direction.
        vec3 rawDir = viewDirUv * u_ellipsoidRadiiUv;
        Ray viewRayUv = Ray(viewPosUv, viewDirUv, rawDir);
    #else
        Ray viewRayUv = Ray(viewPosUv, viewDirUv, viewDirUv);
    #endif

    Intersections ix;
    RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix);

    // Exit early if the scene was completely missed.
    if (shapeIntersection.entry.w == NO_HIT) {
        discard;
    }

    float currentT = shapeIntersection.entry.w;
    float endT = shapeIntersection.exit.w;
    vec3 positionUv = viewPosUv + currentT * viewDirUv;
    PointJacobianT pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv);

    // Traverse the tree from the start position
    TraversalData traversalData;
    SampleData sampleDatas[SAMPLE_COUNT];
    traverseOctreeFromBeginning(pointJacobian.point, traversalData, sampleDatas);
    vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT);

    #if defined(JITTER)
        float noise = hash(screenCoord); // [0,1]
        currentT += noise * step.w;
        positionUv += noise * step.w * viewDirUv;
    #endif

    FragmentInput fragmentInput;
    #if defined(STATISTICS)
        setStatistics(fragmentInput.metadata.statistics);
    #endif

    vec4 colorAccum = vec4(0.0);

    for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) {
        // Read properties from the megatexture based on the traversal state
        Properties properties = accumulatePropertiesFromMegatexture(sampleDatas);

        // Prepare the custom shader inputs
        copyPropertiesToMetadata(properties, fragmentInput.metadata);
        fragmentInput.voxel.positionUv = positionUv;
        fragmentInput.voxel.positionShapeUv = pointJacobian.point;
        fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv;
        fragmentInput.voxel.viewDirUv = viewDirUv;
        fragmentInput.voxel.viewDirWorld = viewDirWorld;
        fragmentInput.voxel.surfaceNormal = step.xyz;
        fragmentInput.voxel.travelDistance = step.w;
        fragmentInput.voxel.stepCount = stepCount;
        fragmentInput.voxel.tileIndex = sampleDatas[0].megatextureIndex;
        fragmentInput.voxel.sampleIndex = getSampleIndex(sampleDatas[0].tileUv);

        // Run the custom shader
        czm_modelMaterial materialOutput;
        fragmentMain(fragmentInput, materialOutput);

        // Sanitize the custom shader output
        vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha);
        color.rgb = max(color.rgb, vec3(0.0));
        color.a = clamp(color.a, 0.0, 1.0);

        // Pre-multiplied alpha blend
        colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a);

        // Stop traversing if the alpha has been fully saturated
        if (colorAccum.a > ALPHA_ACCUM_MAX) {
            colorAccum.a = ALPHA_ACCUM_MAX;
            break;
        }

        if (step.w == 0.0) {
            // Shape is infinitely thin. The ray may have hit the edge of a
            // foreground voxel. Step ahead slightly to check for more voxels
            step.w == 0.00001;
        }

        // Keep raymarching
        currentT += step.w;
        positionUv = viewPosUv + currentT * viewDirUv;

        // Check if there's more intersections.
        if (currentT > endT) {
            #if (INTERSECTION_COUNT == 1)
                break;
            #else
                shapeIntersection = nextIntersection(ix);
                if (shapeIntersection.entry.w == NO_HIT) {
                    break;
                } else {
                    // Found another intersection. Resume raymarching there
                    currentT = shapeIntersection.entry.w;
                    endT = shapeIntersection.exit.w;
                    positionUv = viewPosUv + currentT * viewDirUv;
                }
            #endif
        }

        // Traverse the tree from the current ray position.
        // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step.
        pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv);
        traverseOctreeFromExisting(pointJacobian.point, traversalData, sampleDatas);
        step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT);
    }

    // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1]
    colorAccum.a /= ALPHA_ACCUM_MAX;

    #if defined(PICKING)
        // If alpha is 0.0 there is nothing to pick
        if (colorAccum.a == 0.0) {
            discard;
        }
        out_FragColor = u_pickColor;
    #elif defined(PICKING_VOXEL)
        // If alpha is 0.0 there is nothing to pick
        if (colorAccum.a == 0.0) {
            discard;
        }
        vec2 megatextureId = packIntToVec2(sampleDatas[0].megatextureIndex);
        vec2 sampleIndex = packIntToVec2(getSampleIndex(sampleDatas[0].tileUv));
        out_FragColor = vec4(megatextureId, sampleIndex);
    #else
        out_FragColor = colorAccum;
    #endif
}
`;var MB=`in vec2 position;

uniform vec4 u_ndcSpaceAxisAlignedBoundingBox;

void main() {
    vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy;
    vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw;
    vec2 translation = 0.5 * (aabbMax + aabbMin);
    vec2 scale = 0.5 * (aabbMax - aabbMin);
    gl_Position = vec4(position * scale + translation, 0.0, 1.0);
}
`;var LB=`/* Intersection defines
#define INTERSECTION_COUNT ###
*/

#define NO_HIT (-czm_infinity)
#define INF_HIT (czm_infinity * 0.5)

struct RayShapeIntersection {
    vec4 entry;
    vec4 exit;
};

vec4 intersectionMin(in vec4 intersect0, in vec4 intersect1)
{
    if (intersect0.w == NO_HIT) {
        return intersect1;
    } else if (intersect1.w == NO_HIT) {
        return intersect0;
    }
    return (intersect0.w <= intersect1.w) ? intersect0 : intersect1;
}

vec4 intersectionMax(in vec4 intersect0, in vec4 intersect1)
{
    return (intersect0.w >= intersect1.w) ? intersect0 : intersect1;
}

RayShapeIntersection intersectIntersections(in Ray ray, in RayShapeIntersection intersect0, in RayShapeIntersection intersect1)
{
    bool missed = (intersect0.entry.w == NO_HIT) ||
        (intersect1.entry.w == NO_HIT) ||
        (intersect0.exit.w < intersect1.entry.w) ||
        (intersect0.entry.w > intersect1.exit.w);
    if (missed) {
        vec4 miss = vec4(normalize(ray.dir), NO_HIT);
        return RayShapeIntersection(miss, miss);
    }

    vec4 entry = intersectionMax(intersect0.entry, intersect1.entry);
    vec4 exit = intersectionMin(intersect0.exit, intersect1.exit);

    return RayShapeIntersection(entry, exit);
}

struct Intersections {
    // Don't access these member variables directly - call the functions instead.

    // Store an array of ray-surface intersections. Each intersection is composed of:
    //  .xyz for the surface normal at the intersection point
    //  .w for the T value
    // The scale of the normal encodes the shape intersection type:
    //  length(intersection.xyz) = 1: positive shape entry
    //  length(intersection.xyz) = 2: positive shape exit
    //  length(intersection.xyz) = 3: negative shape entry
    //  length(intersection.xyz) = 4: negative shape exit
    // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections,
    // so we need twice as many to track ray-*surface* intersections
    vec4 intersections[INTERSECTION_COUNT * 2];

    #if (INTERSECTION_COUNT > 1)
        // Maintain state for future nextIntersection calls
        int index;
        int surroundCount;
        bool surroundIsPositive;
    #endif
};

RayShapeIntersection getFirstIntersection(in Intersections ix) 
{
    return RayShapeIntersection(ix.intersections[0], ix.intersections[1]);
}

vec4 encodeIntersectionType(vec4 intersection, int index, bool entry)
{
    float scale = float(index > 0) * 2.0 + float(!entry) + 1.0;
    return vec4(intersection.xyz * scale, intersection.w);
}

// Use defines instead of real functions because WebGL1 cannot access array with non-constant index.
#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t))
#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y)
#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = encodeIntersectionType((intersection), int(!positive), (enter))
#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false)

#if (INTERSECTION_COUNT > 1)
void initializeIntersections(inout Intersections ix) {
    // Sort the intersections from min T to max T with bubble sort.
    // Note: If this sorting function changes, some of the intersection test may
    // need to be updated. Search for "bubble sort" to find those areas.
    const int sortPasses = INTERSECTION_COUNT * 2 - 1;
    for (int n = sortPasses; n > 0; --n) {
        for (int i = 0; i < sortPasses; ++i) {
            // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot
            // loop with non-constant condition, so it has to break early instead
            if (i >= n) { break; }

            vec4 intersect0 = ix.intersections[i + 0];
            vec4 intersect1 = ix.intersections[i + 1];

            bool inOrder = intersect0.w <= intersect1.w;

            ix.intersections[i + 0] = inOrder ? intersect0 : intersect1;
            ix.intersections[i + 1] = inOrder ? intersect1 : intersect0;
        }
    }

    // Prepare initial state for nextIntersection
    ix.index = 0;
    ix.surroundCount = 0;
    ix.surroundIsPositive = false;
}
#endif

#if (INTERSECTION_COUNT > 1)
RayShapeIntersection nextIntersection(inout Intersections ix) {
    vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT);
    RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection);

    const int passCount = INTERSECTION_COUNT * 2;

    if (ix.index == passCount) {
        return shapeIntersection;
    }

    for (int i = 0; i < passCount; ++i) {
        // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot
        // loop with non-constant condition, so it has to continue instead.
        if (i < ix.index) {
            continue;
        }

        ix.index = i + 1;

        surfaceIntersection = ix.intersections[i];
        int intersectionType = int(length(surfaceIntersection.xyz) - 0.5);
        bool currShapeIsPositive = intersectionType < 2;
        bool enter = intMod(intersectionType, 2) == 0;

        ix.surroundCount += enter ? +1 : -1;
        ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive;

        // entering positive or exiting negative
        if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) {
            shapeIntersection.entry = surfaceIntersection;
        }

        // exiting positive or entering negative after being inside positive
        bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0;
        bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive;
        if (exitPositive || enterNegativeFromPositive) {
            shapeIntersection.exit = surfaceIntersection;

            // entry and exit have been found, so the loop can stop
            if (exitPositive) {
                // After exiting positive shape there is nothing left to intersect, so jump to the end index.
                ix.index = passCount;
            }
            break;
        }
    }

    return shapeIntersection;
}
#endif

// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1
`;var NB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections,
// setIntersectionPair, INF_HIT, NO_HIT

/* intersectDepth defines (set in Scene/VoxelRenderResources.js)
#define DEPTH_INTERSECTION_INDEX ###
*/

uniform mat4 u_transformPositionViewToUv;

void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) {
    float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord));
    if (logDepthOrDepth != 0.0) {
        // Calculate how far the ray must travel before it hits the depth buffer.
        vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth);
        eyeCoordinateDepth /= eyeCoordinateDepth.w;
        vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth);
        float t = dot(depthPositionUv - ray.pos, ray.dir);
        setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT));
    } else {
        // There's no depth at this location.
        setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT));
    }
}
`;var FB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT,
// NO_HIT, setShapeIntersection

/* Clipping plane defines (set in Scene/VoxelRenderResources.js)
#define CLIPPING_PLANES_UNION
#define CLIPPING_PLANES_COUNT
#define CLIPPING_PLANES_INTERSECTION_INDEX
*/

uniform sampler2D u_clippingPlanesTexture;
uniform mat4 u_clippingPlanesMatrix;

// Plane is in Hessian Normal Form
vec4 intersectPlane(in Ray ray, in vec4 plane) {
    vec3 n = plane.xyz; // normal
    float w = plane.w; // -dot(pointOnPlane, normal)

    float a = dot(ray.pos, n);
    float b = dot(ray.dir, n);
    float t = -(w + a) / b;

    return vec4(n, t);
}

void intersectClippingPlanes(in Ray ray, inout Intersections ix) {
    vec4 backSide = vec4(-ray.dir, -INF_HIT);
    vec4 farSide = vec4(ray.dir, +INF_HIT);
    RayShapeIntersection clippingVolume;

    #if (CLIPPING_PLANES_COUNT == 1)
        // Union and intersection are the same when there's one clipping plane, and the code
        // is more simplified.
        vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix);
        vec4 intersection = intersectPlane(ray, planeUv);
        bool reflects = dot(ray.dir, intersection.xyz) < 0.0;
        clippingVolume.entry = reflects ? backSide : intersection;
        clippingVolume.exit = reflects ? intersection : farSide;
        setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);
    #elif defined(CLIPPING_PLANES_UNION)
        vec4 firstTransmission = vec4(ray.dir, +INF_HIT);
        vec4 lastReflection = vec4(-ray.dir, -INF_HIT);
        for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {
            vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);
            vec4 intersection = intersectPlane(ray, planeUv);
            if (dot(ray.dir, planeUv.xyz) > 0.0) {
                firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission;
            } else {
                lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection;
            }
        }
        clippingVolume.entry = backSide;
        clippingVolume.exit = lastReflection;
        setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume);
        clippingVolume.entry = firstTransmission;
        clippingVolume.exit = farSide;
        setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume);
    #else // intersection
        vec4 lastTransmission = vec4(ray.dir, -INF_HIT);
        vec4 firstReflection = vec4(-ray.dir, +INF_HIT);
        for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) {
            vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix);
            vec4 intersection = intersectPlane(ray, planeUv);
            if (dot(ray.dir, planeUv.xyz) > 0.0) {
                lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission;
            } else {
                firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection;
            }
        }
        if (lastTransmission.w < firstReflection.w) {
            clippingVolume.entry = lastTransmission;
            clippingVolume.exit = firstReflection;
        } else {
            clippingVolume.entry = vec4(-ray.dir, NO_HIT);
            clippingVolume.exit = vec4(ray.dir, NO_HIT);
        }
        setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume);
    #endif
}
`;var dv=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT,
// RayShapeIntersection

vec4 intersectLongitude(in Ray ray, in float angle, in bool positiveNormal) {
    float normalSign = positiveNormal ? 1.0 : -1.0;
    vec2 planeNormal = vec2(-sin(angle), cos(angle)) * normalSign;

    vec2 position = ray.pos.xy;
    vec2 direction = ray.dir.xy;
    float approachRate = dot(direction, planeNormal);
    float distance = -dot(position, planeNormal);

    float t = (approachRate == 0.0)
        ? NO_HIT
        : distance / approachRate;

    return vec4(planeNormal, 0.0, t);
}

RayShapeIntersection intersectHalfSpace(in Ray ray, in float angle, in bool positiveNormal)
{
    vec4 intersection = intersectLongitude(ray, angle, positiveNormal);
    vec4 farSide = vec4(normalize(ray.dir), INF_HIT);

    bool hitFront = (intersection.w > 0.0) == (dot(ray.pos.xy, intersection.xy) > 0.0);
    if (!hitFront) {
        return RayShapeIntersection(intersection, farSide);
    } else {
        return RayShapeIntersection(-1.0 * farSide, intersection);
    }
}

void intersectFlippedWedge(in Ray ray, in vec2 minMaxAngle, out RayShapeIntersection intersections[2])
{
    intersections[0] = intersectHalfSpace(ray, minMaxAngle.x, false);
    intersections[1] = intersectHalfSpace(ray, minMaxAngle.y, true);
}

bool hitPositiveHalfPlane(in Ray ray, in vec4 intersection, in bool positiveNormal) {
    float normalSign = positiveNormal ? 1.0 : -1.0;
    vec2 planeDirection = vec2(intersection.y, -intersection.x) * normalSign;
    vec2 hit = ray.pos.xy + intersection.w * ray.dir.xy;
    return dot(hit, planeDirection) > 0.0;
}

void intersectHalfPlane(in Ray ray, in float angle, out RayShapeIntersection intersections[2]) {
    vec4 intersection = intersectLongitude(ray, angle, true);
    vec4 farSide = vec4(normalize(ray.dir), INF_HIT);

    if (hitPositiveHalfPlane(ray, intersection, true)) {
        intersections[0].entry = -1.0 * farSide;
        intersections[0].exit = vec4(-1.0 * intersection.xy, 0.0, intersection.w);
        intersections[1].entry = intersection;
        intersections[1].exit = farSide;
    } else {
        vec4 miss = vec4(normalize(ray.dir), NO_HIT);
        intersections[0].entry = -1.0 * farSide;
        intersections[0].exit = farSide;
        intersections[1].entry = miss;
        intersections[1].exit = miss;
    }
}

RayShapeIntersection intersectRegularWedge(in Ray ray, in vec2 minMaxAngle)
{
    // Note: works for maxAngle > minAngle + pi, where the "regular wedge"
    // is actually a negative volume.
    // Compute intersections with the two planes.
    // Normals will point toward the "outside" (negative space)
    vec4 intersect1 = intersectLongitude(ray, minMaxAngle.x, false);
    vec4 intersect2 = intersectLongitude(ray, minMaxAngle.y, true);

    // Choose intersection with smallest T as the "first", the other as "last"
    // Note: first or last could be in the "shadow" wedge, beyond the tip
    bool inOrder = intersect1.w <= intersect2.w;
    vec4 first = inOrder ? intersect1 : intersect2;
    vec4 last = inOrder ? intersect2 : intersect1;

    bool firstIsAhead = first.w >= 0.0;
    bool startedInsideFirst = dot(ray.pos.xy, first.xy) < 0.0;
    bool exitFromInside = firstIsAhead == startedInsideFirst;
    bool lastIsAhead = last.w > 0.0;
    bool startedOutsideLast = dot(ray.pos.xy, last.xy) >= 0.0;
    bool enterFromOutside = lastIsAhead == startedOutsideLast;

    vec4 farSide = vec4(normalize(ray.dir), INF_HIT);
    vec4 miss = vec4(normalize(ray.dir), NO_HIT);

    if (exitFromInside && enterFromOutside) {
        // Ray crosses both faces of negative wedge, exiting then entering the positive shape
        return RayShapeIntersection(first, last);
    } else if (!exitFromInside && enterFromOutside) {
        // Ray starts inside wedge. last is in shadow wedge, and first is actually the entry
        return RayShapeIntersection(-1.0 * farSide, first);
    } else if (exitFromInside && !enterFromOutside) {
        // First intersection was in the shadow wedge, so last is actually the exit
        return RayShapeIntersection(last, farSide);
    } else { // !exitFromInside && !enterFromOutside
        // Both intersections were in the shadow wedge
        return RayShapeIntersection(miss, miss);
    }
}
`;var BB=`// See IntersectionUtils.glsl for the definitions of Ray, RayShapeIntersection,
// NO_HIT, Intersections

/* Box defines (set in Scene/VoxelBoxShape.js)
#define BOX_INTERSECTION_INDEX ### // always 0
*/

uniform vec3 u_renderMinBounds;
uniform vec3 u_renderMaxBounds;

RayShapeIntersection intersectBox(in Ray ray, in vec3 minBound, in vec3 maxBound)
{
    // Consider the box as the intersection of the space between 3 pairs of parallel planes
    // Compute the distance along the ray to each plane
    vec3 t0 = (minBound - ray.pos) / ray.dir;
    vec3 t1 = (maxBound - ray.pos) / ray.dir;

    // Identify candidate entries/exits based on distance from ray.pos
    vec3 entries = min(t0, t1);
    vec3 exits = max(t0, t1);

    vec3 directions = sign(ray.dir);

    // The actual intersection points are the furthest entry and the closest exit
    float lastEntry = maxComponent(entries);
    bvec3 isLastEntry = equal(entries, vec3(lastEntry));
    vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions;
    vec4 entry = vec4(entryNormal, lastEntry);

    float firstExit = minComponent(exits);
    bvec3 isFirstExit = equal(exits, vec3(firstExit));
    vec3 exitNormal = vec3(isLastEntry) * directions;
    vec4 exit = vec4(exitNormal, firstExit);

    if (entry.w > exit.w) {
        entry.w = NO_HIT;
        exit.w = NO_HIT;
    }

    return RayShapeIntersection(entry, exit);
}

void intersectShape(in Ray ray, inout Intersections ix)
{
    RayShapeIntersection intersection = intersectBox(ray, u_renderMinBounds, u_renderMaxBounds);
    setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection);
}
`;var kB=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, Intersections,
// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection,
// intersectIntersections
// See IntersectLongitude.glsl for the definitions of intersectHalfPlane,
// intersectFlippedWedge, intersectRegularWedge

/* Cylinder defines (set in Scene/VoxelCylinderShape.js)
#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN
#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT
#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE
#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF
#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF
#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO

#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX
#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN
#define CYLINDER_INTERSECTION_INDEX_ANGLE
*/

// Cylinder uniforms
uniform vec2 u_cylinderRenderRadiusMinMax;
uniform vec2 u_cylinderRenderHeightMinMax;
#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE)
    uniform vec2 u_cylinderRenderAngleMinMax;
#endif

/**
 * Find the intersection of a ray with the volume defined by two planes of constant z
 */
RayShapeIntersection intersectHeightBounds(in Ray ray, in vec2 minMaxHeight, in bool convex)
{
    float zPosition = ray.pos.z;
    float zDirection = ray.dir.z;

    float tmin = (minMaxHeight.x - zPosition) / zDirection;
    float tmax = (minMaxHeight.y - zPosition) / zDirection;

    // Normals point outside the volume
    float signFlip = convex ? 1.0 : -1.0;
    vec4 intersectMin = vec4(0.0, 0.0, -1.0 * signFlip, tmin);
    vec4 intersectMax = vec4(0.0, 0.0, 1.0 * signFlip, tmax);

    bool topEntry = zDirection < 0.0;
    vec4 entry = topEntry ? intersectMax : intersectMin;
    vec4 exit = topEntry ? intersectMin : intersectMax;

    return RayShapeIntersection(entry, exit);
}

/**
 * Find the intersection of a ray with a right cylindrical surface of a given radius
 * about the z-axis.
 */
RayShapeIntersection intersectCylinder(in Ray ray, in float radius, in bool convex)
{
    vec2 position = ray.pos.xy;
    vec2 direction = ray.dir.xy;

    float a = dot(direction, direction);
    float b = dot(position, direction);
    float c = dot(position, position) - radius * radius;
    float determinant = b * b - a * c;

    if (determinant < 0.0) {
        vec4 miss = vec4(normalize(ray.dir), NO_HIT);
        return RayShapeIntersection(miss, miss);
    }

    determinant = sqrt(determinant);
    float t1 = (-b - determinant) / a;
    float t2 = (-b + determinant) / a;
    float signFlip = convex ? 1.0 : -1.0;
    vec4 intersect1 = vec4(normalize(position + t1 * direction) * signFlip, 0.0, t1);
    vec4 intersect2 = vec4(normalize(position + t2 * direction) * signFlip, 0.0, t2);

    return RayShapeIntersection(intersect1, intersect2);
}

/**
 * Find the intersection of a ray with a right cylindrical solid of given
 * radius and height bounds. NOTE: The shape is assumed to be convex.
 */
RayShapeIntersection intersectBoundedCylinder(in Ray ray, in float radius, in vec2 minMaxHeight)
{
    RayShapeIntersection cylinderIntersection = intersectCylinder(ray, radius, true);
    RayShapeIntersection heightBoundsIntersection = intersectHeightBounds(ray, minMaxHeight, true);
    return intersectIntersections(ray, cylinderIntersection, heightBoundsIntersection);
}

void intersectShape(Ray ray, inout Intersections ix)
{
    // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1].
    // Direction is scaled as well to be in sync with position.
    ray.pos = ray.pos * 2.0 - 1.0;
    ray.dir *= 2.0;

    RayShapeIntersection outerIntersect = intersectBoundedCylinder(ray, u_cylinderRenderRadiusMinMax.y, u_cylinderRenderHeightMinMax);

    setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect);

    if (outerIntersect.entry.w == NO_HIT) {
        return;
    }

    #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT)
        // When the cylinder is perfectly thin it's necessary to sandwich the
        // inner cylinder intersection inside the outer cylinder intersection.

        // Without this special case,
        // [outerMin, outerMax, innerMin, innerMax] will bubble sort to
        // [outerMin, innerMin, outerMax, innerMax] which will cause the back
        // side of the cylinder to be invisible because it will think the ray
        // is still inside the inner (negative) cylinder after exiting the
        // outer (positive) cylinder.

        // With this special case,
        // [outerMin, innerMin, innerMax, outerMax] will bubble sort to
        // [outerMin, innerMin, innerMax, outerMax] which will work correctly.

        // Note: If initializeIntersections() changes its sorting function
        // from bubble sort to something else, this code may need to change.
        RayShapeIntersection innerIntersect = intersectCylinder(ray, 1.0, false);
        setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true);  // positive, enter
        setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter
        setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit
        setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false);  // positive, exit
    #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN)
        RayShapeIntersection innerIntersect = intersectCylinder(ray, u_cylinderRenderRadiusMinMax.x, false);
        setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect);
    #endif

    #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF)
        RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax);
        setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect);
    #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF)
        RayShapeIntersection wedgeIntersects[2];
        intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax, wedgeIntersects);
        setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]);
        setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]);
    #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO)
        RayShapeIntersection wedgeIntersects[2];
        intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x, wedgeIntersects);
        setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]);
        setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]);
    #endif
}
`;var VB=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, Intersections,
// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection
// See IntersectLongitude.glsl for the definitions of intersectHalfPlane,
// intersectFlippedWedge, intersectRegularWedge

/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js)
#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE
#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO
#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF
#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF
#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF
#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF
#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF
#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF
#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF
#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF
#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE
#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX
#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN
#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX
#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN
*/

#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE)
    uniform vec2 u_ellipsoidRenderLongitudeMinMax;
#endif
uniform float u_eccentricitySquared;
uniform vec2 u_ellipsoidRenderLatitudeSinMinMax;
uniform vec2 u_clipMinMaxHeight;

RayShapeIntersection intersectZPlane(in Ray ray, in float z) {
    float t = -ray.pos.z / ray.dir.z;

    bool startsOutside = sign(ray.pos.z) == sign(z);
    bool entry = (t >= 0.0) != startsOutside;

    vec4 intersect = vec4(0.0, 0.0, z, t);
    vec4 farSide = vec4(normalize(ray.dir), INF_HIT);

    if (entry) {
        return RayShapeIntersection(intersect, farSide);
    } else {
        return RayShapeIntersection(-1.0 * farSide, intersect);
    }
}

RayShapeIntersection intersectHeight(in Ray ray, in float relativeHeight, in bool convex)
{
    // Scale the ray by the ellipsoid axes to make it a unit sphere
    // Note: approximating ellipsoid + height as an ellipsoid
    vec3 radiiCorrection = u_ellipsoidRadiiUv / (u_ellipsoidRadiiUv + relativeHeight);
    vec3 position = ray.pos * radiiCorrection;
    vec3 direction = ray.dir * radiiCorrection;

    float a = dot(direction, direction); // ~ 1.0 (or maybe 4.0 if ray is scaled)
    float b = dot(direction, position); // roughly inside [-1.0, 1.0] when zoomed in
    float c = dot(position, position) - 1.0; // ~ 0.0 when zoomed in.
    float determinant = b * b - a * c; // ~ b * b when zoomed in

    if (determinant < 0.0) {
        vec4 miss = vec4(normalize(direction), NO_HIT);
        return RayShapeIntersection(miss, miss);
    }

    determinant = sqrt(determinant);

    // Compute larger root using standard formula
    float signB = b < 0.0 ? -1.0 : 1.0;
    // The other root may suffer from subtractive cancellation in the standard formula.
    // Compute it from the first root instead.
    float t1 = (-b - signB * determinant) / a;
    float t2 = c / (a * t1);
    float tmin = min(t1, t2);
    float tmax = max(t1, t2);

    float directionScale = convex ? 1.0 : -1.0;
    vec3 d1 = directionScale * normalize(position + tmin * direction);
    vec3 d2 = directionScale * normalize(position + tmax * direction);

    return RayShapeIntersection(vec4(d1, tmin), vec4(d2, tmax));
}

/**
 * Given a circular cone around the z-axis, with apex at the origin,
 * find the parametric distance(s) along a ray where that ray intersects
 * the cone.
 * The cone opening angle is described by the squared cosine of
 * its half-angle (the angle between the Z-axis and the surface)
 */
vec2 intersectDoubleEndedCone(in Ray ray, in float cosSqrHalfAngle)
{
    vec3 o = ray.pos;
    vec3 d = ray.dir;
    float sinSqrHalfAngle = 1.0 - cosSqrHalfAngle;

    float aSin = d.z * d.z * sinSqrHalfAngle;
    float aCos = -dot(d.xy, d.xy) * cosSqrHalfAngle;
    float a = aSin + aCos;

    float bSin = d.z * o.z * sinSqrHalfAngle;
    float bCos = -dot(o.xy, d.xy) * cosSqrHalfAngle;
    float b = bSin + bCos;

    float cSin = o.z * o.z * sinSqrHalfAngle;
    float cCos = -dot(o.xy, o.xy) * cosSqrHalfAngle;
    float c = cSin + cCos;
    // determinant = b * b - a * c. But bSin * bSin = aSin * cSin.
    // Avoid subtractive cancellation by expanding to eliminate these terms
    float determinant = 2.0 * bSin * bCos + bCos * bCos - aSin * cCos - aCos * cSin - aCos * cCos;

    if (determinant < 0.0) {
        return vec2(NO_HIT);
    } else if (a == 0.0) {
        // Ray is parallel to cone surface
        return (b == 0.0)
            ? vec2(NO_HIT) // Ray is on cone surface
            : vec2(-0.5 * c / b, NO_HIT);
    }

    determinant = sqrt(determinant);

    // Compute larger root using standard formula
    float signB = b < 0.0 ? -1.0 : 1.0;
    float t1 = (-b - signB * determinant) / a;
    // The other root may suffer from subtractive cancellation in the standard formula.
    // Compute it from the first root instead.
    float t2 = c / (a * t1);
    float tmin = min(t1, t2);
    float tmax = max(t1, t2);
    return vec2(tmin, tmax);
}

/**
 * Given a point on a conical surface, find the surface normal at that point.
 */
vec3 getConeNormal(in vec3 p, in bool convex) {
    // Start with radial component pointing toward z-axis
    vec2 radial = -abs(p.z) * normalize(p.xy);
    // Z component points toward opening of cone
    float zSign = (p.z < 0.0) ? -1.0 : 1.0;
    float z = length(p.xy) * zSign;
    // Flip normal if shape is convex
    float flip = (convex) ? -1.0 : 1.0;
    return normalize(vec3(radial, z) * flip);
}

/**
 * Compute the shift between the ellipsoid origin and the apex of a cone of latitude
 */
float getLatitudeConeShift(in float sinLatitude) {
    // Find prime vertical radius of curvature: 
    // the distance along the ellipsoid normal to the intersection with the z-axis
    float x2 = u_eccentricitySquared * sinLatitude * sinLatitude;
    float primeVerticalRadius = inversesqrt(1.0 - x2);

    // Compute a shift from the origin to the intersection of the cone with the z-axis
    return primeVerticalRadius * u_eccentricitySquared * sinLatitude;
}

void intersectFlippedCone(in Ray ray, in float cosHalfAngle, out RayShapeIntersection intersections[2]) {
    // Undo the scaling from ellipsoid to sphere
    ray.pos = ray.pos * u_ellipsoidRadiiUv;
    ray.dir = ray.dir * u_ellipsoidRadiiUv;
    // Shift the ray to account for the latitude cone not being centered at the Earth center
    ray.pos.z += getLatitudeConeShift(cosHalfAngle);

    float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle;
    vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle);

    vec4 miss = vec4(normalize(ray.dir), NO_HIT);
    vec4 farSide = vec4(normalize(ray.dir), INF_HIT);

    // Initialize output with no intersections
    intersections[0].entry = -1.0 * farSide;
    intersections[0].exit = farSide;
    intersections[1].entry = miss;
    intersections[1].exit = miss;

    if (intersect.x == NO_HIT) {
        return;
    }

    // Find the points of intersection
    float tmin = intersect.x;
    float tmax = intersect.y;
    vec3 p0 = ray.pos + tmin * ray.dir;
    vec3 p1 = ray.pos + tmax * ray.dir;

    vec4 intersect0 = vec4(getConeNormal(p0, true), tmin);
    vec4 intersect1 = vec4(getConeNormal(p1, true), tmax);

    bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle);
    bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle);

    if (p0InShadowCone && p1InShadowCone) {
        // no valid intersections
    } else if (p0InShadowCone) {
        intersections[0].exit = intersect1;
    } else if (p1InShadowCone) {
        intersections[0].entry = intersect0;
    } else {
        intersections[0].exit = intersect0;
        intersections[1].entry = intersect1;
        intersections[1].exit = farSide;
    }
}

RayShapeIntersection intersectRegularCone(in Ray ray, in float cosHalfAngle, in bool convex) {
    // Undo the scaling from ellipsoid to sphere
    ray.pos = ray.pos * u_ellipsoidRadiiUv;
    ray.dir = ray.dir * u_ellipsoidRadiiUv;
    // Shift the ray to account for the latitude cone not being centered at the Earth center
    ray.pos.z += getLatitudeConeShift(cosHalfAngle);

    float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle;
    vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle);

    vec4 miss = vec4(normalize(ray.dir), NO_HIT);
    vec4 farSide = vec4(normalize(ray.dir), INF_HIT);

    if (intersect.x == NO_HIT) {
        return RayShapeIntersection(miss, miss);
    }

    // Find the points of intersection
    float tmin = intersect.x;
    float tmax = intersect.y;
    vec3 p0 = ray.pos + tmin * ray.dir;
    vec3 p1 = ray.pos + tmax * ray.dir;

    vec4 intersect0 = vec4(getConeNormal(p0, convex), tmin);
    vec4 intersect1 = vec4(getConeNormal(p1, convex), tmax);

    bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle);
    bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle);

    if (p0InShadowCone && p1InShadowCone) {
        return RayShapeIntersection(miss, miss);
    } else if (p0InShadowCone) {
        return RayShapeIntersection(intersect1, farSide);
    } else if (p1InShadowCone) {
        return RayShapeIntersection(-1.0 * farSide, intersect0);
    } else {
        return RayShapeIntersection(intersect0, intersect1);
    }
}

void intersectShape(in Ray ray, inout Intersections ix) {
    // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1].
    // Direction is scaled as well to be in sync with position.
    ray.pos = ray.pos * 2.0 - 1.0;
    ray.dir *= 2.0;

    // Outer ellipsoid
    RayShapeIntersection outerIntersect = intersectHeight(ray, u_clipMinMaxHeight.y, true);
    setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect);

    // Exit early if the outer ellipsoid was missed.
    if (outerIntersect.entry.w == NO_HIT) {
        return;
    }

    // Inner ellipsoid
    RayShapeIntersection innerIntersect = intersectHeight(ray, u_clipMinMaxHeight.x, false);

    if (innerIntersect.entry.w == NO_HIT) {
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect);
    } else {
        // When the ellipsoid is large and thin it's possible for floating point math
        // to cause the ray to intersect the inner ellipsoid before the outer ellipsoid. 
        // To prevent this from happening, clamp innerIntersect to outerIntersect and
        // sandwich the inner ellipsoid intersection inside the outer ellipsoid intersection.

        // Without this special case,
        // [outerMin, outerMax, innerMin, innerMax] will bubble sort to
        // [outerMin, innerMin, outerMax, innerMax] which will cause the back
        // side of the ellipsoid to be invisible because it will think the ray
        // is still inside the inner (negative) ellipsoid after exiting the
        // outer (positive) ellipsoid.

        // With this special case,
        // [outerMin, innerMin, innerMax, outerMax] will bubble sort to
        // [outerMin, innerMin, innerMax, outerMax] which will work correctly.

        // Note: If initializeIntersections() changes its sorting function
        // from bubble sort to something else, this code may need to change.
        innerIntersect.entry.w = max(innerIntersect.entry.w, outerIntersect.entry.w);
        innerIntersect.exit.w = min(innerIntersect.exit.w, outerIntersect.exit.w);
        setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true);  // positive, enter
        setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter
        setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit
        setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false);  // positive, exit
    }

    // Bottom cone
    #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF)
        RayShapeIntersection bottomConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, false);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection);
    #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF)
        RayShapeIntersection bottomConeIntersection = intersectZPlane(ray, -1.0);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection);
    #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF)
        RayShapeIntersection bottomConeIntersections[2];
        intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, bottomConeIntersections);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersections[0]);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersections[1]);
    #endif

    // Top cone
    #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF)
        RayShapeIntersection topConeIntersections[2];
        intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, topConeIntersections);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersections[0]);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersections[1]);
    #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF)
        RayShapeIntersection topConeIntersection = intersectZPlane(ray, 1.0);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection);
    #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF)
        RayShapeIntersection topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, false);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection);
    #endif

    // Wedge
    #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO)
        RayShapeIntersection wedgeIntersects[2];
        intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x, wedgeIntersects);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]);
    #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF)
        RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect);
    #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF)
        RayShapeIntersection wedgeIntersects[2];
        intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax, wedgeIntersects);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]);
        setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]);
    #endif
}
`;var nC=`// Main intersection function for Voxel scenes.
// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl
// for the definition of intersectShape. The appropriate function is selected
// based on the VoxelPrimitive shape type, and added to the shader in
// Scene/VoxelRenderResources.js.
// See also IntersectClippingPlane.glsl and IntersectDepth.glsl.
// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT,
// getFirstIntersection, initializeIntersections, nextIntersection.

/* Intersection defines (set in Scene/VoxelRenderResources.js)
#define INTERSECTION_COUNT ###
*/

RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) {
    // Do a ray-shape intersection to find the exact starting and ending points.
    intersectShape(ray, ix);

    // Exit early if the positive shape was completely missed or behind the ray.
    RayShapeIntersection intersection = getFirstIntersection(ix);
    if (intersection.entry.w == NO_HIT) {
        // Positive shape was completely missed - so exit early.
        return intersection;
    }

    // Clipping planes
    #if defined(CLIPPING_PLANES)
        intersectClippingPlanes(ray, ix);
    #endif

    // Depth
    #if defined(DEPTH_TEST)
        intersectDepth(screenCoord, ray, ix);
    #endif

    // Find the first intersection that's in front of the ray
    #if (INTERSECTION_COUNT > 1)
        initializeIntersections(ix);
        for (int i = 0; i < INTERSECTION_COUNT; ++i) {
            intersection = nextIntersection(ix);
            if (intersection.exit.w > 0.0) {
                // Set start to 0.0 when ray is inside the shape.
                intersection.entry.w = max(intersection.entry.w, 0.0);
                break;
            }
        }
    #else
        // Set start to 0.0 when ray is inside the shape.
        intersection.entry.w = max(intersection.entry.w, 0.0);
    #endif

    return intersection;
}
`;var UB=`/* Box defines (set in Scene/VoxelBoxShape.js)
#define BOX_HAS_SHAPE_BOUNDS
*/

#if defined(BOX_HAS_SHAPE_BOUNDS)
    uniform vec3 u_boxUvToShapeUvScale;
    uniform vec3 u_boxUvToShapeUvTranslate;
#endif

PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) {
    // For BOX, UV space = shape space, so we can use positionUv as-is,
    // and the Jacobian is the identity matrix, except that a step of 1
    // only spans half the shape space [-1, 1], so the identity is scaled.
    return PointJacobianT(positionUv, mat3(0.5));
}

vec3 convertShapeToShapeUvSpace(in vec3 positionShape) {
#if defined(BOX_HAS_SHAPE_BOUNDS)
    return positionShape * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate;
#else
    return positionShape;
#endif
}

PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) {
    PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv);
    pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point);
    return pointJacobian;
}

vec3 convertShapeUvToUvSpace(in vec3 shapeUv) {
#if defined(BOX_HAS_SHAPE_BOUNDS)
    return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale;
#else
    return shapeUv;
#endif
}

vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) {
#if defined(BOX_HAS_SHAPE_BOUNDS)
    return shapeUv / u_boxUvToShapeUvScale;
#else
    return shapeUv;
#endif
}`;var zB=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js)
#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS
#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT
#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE
#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY
#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY
#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED
*/

#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS)
    uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset
#endif
#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT)
    uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset
#endif
#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)
    uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset
#endif
#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY)
    uniform vec2 u_cylinderShapeUvAngleMinMax;
#endif
#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED)
    uniform float u_cylinderShapeUvAngleRangeZeroMid;
#endif

PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) {
    // Convert from Cartesian UV space [0, 1] to Cartesian local space [-1, 1]
    vec3 position = positionUv * 2.0 - 1.0;

    float radius = length(position.xy); // [0, 1]
    vec3 radial = normalize(vec3(position.xy, 0.0));

    // Shape space height is defined within [0, 1]
    float height = positionUv.z; // [0, 1]
    vec3 z = vec3(0.0, 0.0, 1.0);

    float angle = atan(position.y, position.x);
    vec3 east = normalize(vec3(-position.y, position.x, 0.0));

    vec3 point = vec3(radius, height, angle);
    mat3 jacobianT = mat3(radial, z, east / length(position.xy));
    return PointJacobianT(point, jacobianT);
}

vec3 convertShapeToShapeUvSpace(in vec3 positionShape) {
    float radius = positionShape.x;
    #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS)
        radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y;
    #endif

    float height = positionShape.y;
    #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT)
        height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y;
    #endif

    float angle = (positionShape.z + czm_pi) / czm_twoPi;
    #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)
        #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED)
            // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative.
            angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid);
        #endif

        // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity.
        #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY)
            angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle;
        #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY)
            angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle;
        #endif

        angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y;
    #endif

    return vec3(radius, height, angle);
}

PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) {
    PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv);
    pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point);
    return pointJacobian;
}

vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) {
    float radius = shapeUv.x;
    #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS)
        radius /= u_cylinderUvToShapeUvRadius.x;
    #endif

    float height = shapeUv.y;
    #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT)
        height /= u_cylinderUvToShapeUvHeight.x;
    #endif

    float angle = shapeUv.z * czm_twoPi;
    #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE)
        angle /= u_cylinderUvToShapeUvAngle.x;
    #endif

    return vec3(radius, height, angle);
}
`;var HB=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js)
#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY
#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY
#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE
#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED
#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE
*/

uniform vec3 u_ellipsoidRadiiUv; // [0,1]
uniform vec2 u_evoluteScale; // (radiiUv.x ^ 2 - radiiUv.z ^ 2) * vec2(1.0, -1.0) / radiiUv;
uniform vec3 u_ellipsoidInverseRadiiSquaredUv;
#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED)
    uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid;
#endif
#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)
    uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset
#endif
#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)
    uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset
#endif
uniform float u_ellipsoidInverseHeightDifferenceUv;

// robust iterative solution without trig functions
// https://github.com/0xfaded/ellipse_demo/issues/1
// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse
// Extended to return radius of curvature along with the point
vec3 nearestPointAndRadiusOnEllipse(vec2 pos, vec2 radii) {
    vec2 p = abs(pos);
    vec2 inverseRadii = 1.0 / radii;

    // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t))
    // but store the cos and sin of t in a vec2 for efficiency.
    // Initial guess: t = pi/4
    vec2 tTrigs = vec2(0.7071067811865476);
    // Initial guess of point on ellipsoid
    vec2 v = radii * tTrigs;
    // Center of curvature of the ellipse at v
    vec2 evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs;

    const int iterations = 3;
    for (int i = 0; i < iterations; ++i) {
        // Find the (approximate) intersection of p - evolute with the ellipsoid.
        vec2 q = normalize(p - evolute) * length(v - evolute);
        // Update the estimate of t.
        tTrigs = (q + evolute) * inverseRadii;
        tTrigs = normalize(clamp(tTrigs, 0.0, 1.0));
        v = radii * tTrigs;
        evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs;
    }

    return vec3(v * sign(pos), length(v - evolute));
}

PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) {
    // Convert from UV space [0, 1] to local space [-1, 1]
    vec3 position = positionUv * 2.0 - 1.0;
    // Undo the scaling from ellipsoid to sphere
    position = position * u_ellipsoidRadiiUv;

    float longitude = atan(position.y, position.x);
    vec3 east = normalize(vec3(-position.y, position.x, 0.0));

    // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z)
    // (assume radii.y == radii.x) and find the nearest point on the ellipse and its normal
    float distanceFromZAxis = length(position.xy);
    vec2 posEllipse = vec2(distanceFromZAxis, position.z);
    vec3 surfacePointAndRadius = nearestPointAndRadiusOnEllipse(posEllipse, u_ellipsoidRadiiUv.xz);
    vec2 surfacePoint = surfacePointAndRadius.xy;

    vec2 normal2d = normalize(surfacePoint * u_ellipsoidInverseRadiiSquaredUv.xz);
    float latitude = atan(normal2d.y, normal2d.x);
    vec3 north = vec3(-normal2d.y * normalize(position.xy), abs(normal2d.x));

    float heightSign = length(posEllipse) < length(surfacePoint) ? -1.0 : 1.0;
    float height = heightSign * length(posEllipse - surfacePoint);
    vec3 up = normalize(cross(east, north));

    vec3 point = vec3(longitude, latitude, height);
    mat3 jacobianT = mat3(east / distanceFromZAxis, north / (surfacePointAndRadius.z + height), up);
    return PointJacobianT(point, jacobianT);
}

vec3 convertShapeToShapeUvSpace(in vec3 positionShape) {
    // Longitude: shift & scale to [0, 1]
    float longitude = (positionShape.x + czm_pi) / czm_twoPi;

    // Correct the angle when max < min
    // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space.
    #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED)
        longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z);
    #endif

    // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity.
    #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY)
        longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude;
    #endif
    #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY)
        longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude;
    #endif

    #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)
        longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y;
    #endif

    // Latitude: shift and scale to [0, 1]
    float latitude = (positionShape.y + czm_piOverTwo) / czm_pi;
    #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)
        latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y;
    #endif

    // Height: scale to the range [0, 1]
    float height = 1.0 + positionShape.z * u_ellipsoidInverseHeightDifferenceUv;

    return vec3(longitude, latitude, height);
}

PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) {
    PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv);
    pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point);
    return pointJacobian;
}

vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) {
    // Convert from [0, 1] to radians [-pi, pi]
    float longitude = shapeUv.x * czm_twoPi;
    #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE)
        longitude /= u_ellipsoidUvToShapeUvLongitude.x;
    #endif

    // Convert from [0, 1] to radians [-pi/2, pi/2]
    float latitude = shapeUv.y * czm_pi;
    #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE)
        latitude /= u_ellipsoidUvToShapeUvLatitude.x;
    #endif
    
    float height = shapeUv.z / u_ellipsoidInverseHeightDifferenceUv;

    return vec3(longitude, latitude, height);
}
`;var GB=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js
#define OCTREE_FLAG_INTERNAL 0
#define OCTREE_FLAG_LEAF 1
#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2

#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops

uniform sampler2D u_octreeInternalNodeTexture;
uniform vec2 u_octreeInternalNodeTexelSizeUv;
uniform int u_octreeInternalNodeTilesPerRow;
#if (SAMPLE_COUNT > 1)
uniform sampler2D u_octreeLeafNodeTexture;
uniform vec2 u_octreeLeafNodeTexelSizeUv;
uniform int u_octreeLeafNodeTilesPerRow;
#endif

struct OctreeNodeData {
    int data;
    int flag;
};

struct TraversalData {
    ivec4 octreeCoords;
    int parentOctreeIndex;
};

struct SampleData {
    int megatextureIndex;
    ivec4 tileCoords;
    vec3 tileUv;
    #if (SAMPLE_COUNT > 1)
        float weight;
    #endif
};

// Integer mod: For WebGL1 only
int intMod(in int a, in int b) {
    return a - (b * (a / b));
}
int normU8_toInt(in float value) {
    return int(value * 255.0);
}
int normU8x2_toInt(in vec2 value) {
    return int(value.x * 255.0) + 256 * int(value.y * 255.0);
}
float normU8x2_toFloat(in vec2 value) {
    return float(normU8x2_toInt(value)) / 65535.0;
}

OctreeNodeData getOctreeNodeData(in vec2 octreeUv) {
    vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv);

    OctreeNodeData data;
    data.data = normU8x2_toInt(texData.xy);
    data.flag = normU8x2_toInt(texData.zw);
    return data;
}

OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) {
    int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x;
    int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex;
    int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow;
    vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5);
    return getOctreeNodeData(octreeUv);
}

int getOctreeParentIndex(in int octreeIndex) {
    int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9;
    int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow;
    vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5);
    vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv);
    int parentOctreeIndex = normU8x2_toInt(parentData.xy);
    return parentOctreeIndex;
}

/**
* Convert a position in the uv-space of the tileset bounding shape
* into the uv-space of a tile within the tileset
*/
vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {
	// PERFORMANCE_IDEA: use bit-shifting (only in WebGL2)
    float dimAtLevel = exp2(float(octreeCoords.w));
    return shapePosition * dimAtLevel - vec3(octreeCoords.xyz);
}

vec3 getClampedTileUv(in vec3 shapePosition, in ivec4 octreeCoords) {
    vec3 tileUv = getTileUv(shapePosition, octreeCoords);
    return clamp(tileUv, vec3(0.0), vec3(1.0));
}

void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) {
    sampleData.megatextureIndex = data.data;
    sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT)
        ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
        : octreeCoords;
}

#if (SAMPLE_COUNT > 1)
void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) {
    int leafIndex = data.data;
    int leafNodeTexelCount = 2;
    // Adding 0.5 moves to the center of the texel
    float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5;
    float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5;

    // Get an interpolation weight and a flag to determine whether to read the parent texture
    vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY);
    vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0);
    float lerp = normU8x2_toFloat(leafData0.xy);
    sampleDatas[0].weight = 1.0 - lerp;
    sampleDatas[1].weight = lerp;
    // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT
    sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1)
        ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
        : octreeCoords;
    sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1)
        ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1)
        : octreeCoords;

    // Get megatexture indices for both samples
    vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY);
    vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1);
    sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy);
    sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw);
}
#endif

OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) {
    float sizeAtLevel = exp2(-1.0 * float(traversalData.octreeCoords.w));
    vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel;
    vec3 end = start + vec3(sizeAtLevel);
    OctreeNodeData childData;

    for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
        // Find out which octree child contains the position
        // 0 if before center, 1 if after
        vec3 center = 0.5 * (start + end);
        vec3 childCoord = step(center, shapePosition);

        // Get octree coords for the next level down
        ivec4 octreeCoords = traversalData.octreeCoords;
        traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1);

        childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord));

        if (childData.flag != OCTREE_FLAG_INTERNAL) {
            // leaf tile - stop traversing
            break;
        }

        // interior tile - keep going deeper
        start = mix(start, center, childCoord);
        end = mix(center, end, childCoord);
        traversalData.parentOctreeIndex = childData.data;
    }

    return childData;
}

/**
* Transform a given position to an octree tile coordinate and a position within that tile,
* and find the corresponding megatexture index and texture coordinates
*/
void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) {
    traversalData.octreeCoords = ivec4(0);
    traversalData.parentOctreeIndex = 0;

    OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0));
    if (nodeData.flag != OCTREE_FLAG_LEAF) {
        nodeData = traverseOctreeDownwards(shapePosition, traversalData);
    }

    #if (SAMPLE_COUNT == 1)
        getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
        sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
    #else
        getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
        sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
        sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords);
    #endif
}

bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) {
    return clamp(v, minVal, maxVal) == v;
}

bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) {
    vec3 tileUv = getTileUv(shapePosition, octreeCoords);
	bool inside = inRange(tileUv, vec3(0.0), vec3(1.0));
	// Assume (!) the position is always inside the root tile.
	return inside || octreeCoords.w == 0;
}

void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) {
    if (insideTile(shapePosition, traversalData.octreeCoords)) {
        for (int i = 0; i < SAMPLE_COUNT; i++) {
            sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
        }
        return;
    }

    // Go up tree until we find a parent tile containing shapePosition
    for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) {
        traversalData.octreeCoords.xyz /= 2;
        traversalData.octreeCoords.w -= 1;

        if (insideTile(shapePosition, traversalData.octreeCoords)) {
            break;
        }

        traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex);
    }

    // Go down tree
    OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData);

    #if (SAMPLE_COUNT == 1)
        getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]);
        sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
    #else
        getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas);
        sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords);
        sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords);
    #endif
}
`;var WB=`// See Octree.glsl for the definitions of SampleData and intMod

/* Megatexture defines (set in Scene/VoxelRenderResources.js)
#define SAMPLE_COUNT ###
#define NEAREST_SAMPLING
#define PADDING
*/

uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions
uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions
uniform vec2 u_megatextureVoxelSizeUv;
uniform vec2 u_megatextureSliceSizeUv;
uniform vec2 u_megatextureTileSizeUv;

uniform ivec3 u_dimensions; // does not include padding
#if defined(PADDING)
    uniform ivec3 u_paddingBefore;
    uniform ivec3 u_paddingAfter;
#endif

// Integer min, max, clamp: For WebGL1 only
int intMin(int a, int b) {
    return a <= b ? a : b;
}
int intMax(int a, int b) {
    return a >= b ? a : b;
}
int intClamp(int v, int minVal, int maxVal) {
    return intMin(intMax(v, minVal), maxVal);
}

vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale)
{
    int indexX = intMod(index, dimensions.x);
    int indexY = index / dimensions.x;
    return vec2(indexX, indexY) * uvScale;
}

/*
    How is 3D data stored in a 2D megatexture?

    In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total).
    The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and
    the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1).
    Note that there could be empty space in the megatexture because it's a power of two.

      0   1   2   3
    +---+---+---+---+
    |   |   |   |   | 3
    +---+---+---+---+
    |   |   |   |   | 2
    +-------+-------+
    |010|110|011|111| 1
    |--- ---|--- ---|
    |000|100|001|101| 0
    +-------+-------+

    When doing linear interpolation the megatexture needs to be sampled twice: once for
    the Z slice above the voxel coordinate and once for the slice below. The two slices
    are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is
    halfway between two Z slices so the interpolation factor is 0.5. Below is a side view
    of the 3D voxel grid with voxel coordinates on the left side.

    2 +---+
      |001|
    1 +-z-+
      |000|
    0 +---+

    When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice.
*/

Properties getPropertiesFromMegatexture(in SampleData sampleData) {
    int tileIndex = sampleData.megatextureIndex;
    vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions);
    ivec3 voxelDimensions = u_dimensions;

    #if defined(PADDING)
        voxelDimensions += u_paddingBefore + u_paddingAfter;
        voxelCoord += vec3(u_paddingBefore);
    #endif

    #if defined(NEAREST_SAMPLING)
        // Round to the center of the nearest voxel
        voxelCoord = floor(voxelCoord) + vec3(0.5);
    #endif

    // Tile location
    vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv);

    // Slice location
    float slice = voxelCoord.z - 0.5;
    int sliceIndex = int(floor(slice));
    int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1);
    vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);

    // Voxel location
    vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv;

    // Final location in the megatexture
    vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset;

    #if defined(NEAREST_SAMPLING)
        return getPropertiesFromMegatextureAtUv(uv0);
    #else
        float sliceLerp = fract(slice);
        int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1);
        vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv);
        vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset;
        Properties properties0 = getPropertiesFromMegatextureAtUv(uv0);
        Properties properties1 = getPropertiesFromMegatextureAtUv(uv1);
        return mixProperties(properties0, properties1, sliceLerp);
    #endif
}

// Convert an array of sample datas to a final weighted properties.
Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) {
    #if (SAMPLE_COUNT == 1)
        return getPropertiesFromMegatexture(sampleDatas[0]);
    #else
        // When more than one sample is taken the accumulator needs to start at 0
        Properties properties = clearProperties();
        for (int i = 0; i < SAMPLE_COUNT; ++i) {
            float weight = sampleDatas[i].weight;

            // Avoid reading the megatexture when the weight is 0 as it can be costly.
            if (weight > 0.0) {
                Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]);
                tempProperties = scaleProperties(tempProperties, weight);
                properties = sumProperties(properties, tempProperties);
            }
        }
        return properties;
    #endif
}
`;function d0t(e){let t=new xx;this.shaderBuilder=t;let n=e._customShader,i=yt(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let g=o[p];t.addUniform(g.type,p,pe.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",pe.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([MB]),t.addFragmentLines([n.fragmentShaderText,"#line 0",GB,RB,LB,WB]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,pe.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,pe.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,pe.FRAGMENT),t.addFragmentLines([FB])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,pe.FRAGMENT),t.addFragmentLines([NB]));let a=e._provider.shape;a==="BOX"?t.addFragmentLines([UB,BB,nC]):a==="CYLINDER"?t.addFragmentLines([zB,dv,kB,nC]):a==="ELLIPSOID"&&(t.addDefine("SHAPE_ELLIPSOID",void 0,pe.FRAGMENT),t.addFragmentLines([HB,dv,VB,nC])),t.addFragmentLines([OB]);let c=e._shape,u=c.shaderDefines;for(let p in u)if(u.hasOwnProperty(p)){let g=u[p];l(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,pe.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,pe.FRAGMENT),s===1?f+=1:r.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,pe.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,pe.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,pe.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,pe.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,pe.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,pe.FRAGMENT)}var jB=d0t;function h0t(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,u=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,pe.FRAGMENT),u&&n.addDefine("STATISTICS",void 0,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=o[R],_=`PropertyStatistics_${M}`,S=`PropertyStatistics_${M}`;n.addStruct(_,S,pe.FRAGMENT);let w=aG(N);n.addStructField(_,w,"min"),n.addStructField(_,w,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=`PropertyStatistics_${M}`,_=M;n.addStructField(f,N,_)}let g="Metadata",m="Metadata",x="metadata";n.addStruct(g,m,pe.FRAGMENT),n.addStructField(g,d,p);for(let R=0;R<c;R++){let M=i[R],N=o[R],_=aG(N);n.addStructField(g,_,M)}for(let R=0;R<c;R++){let M=i[R],N=o[R],_=p0t(N),S=`VoxelProperty_${M}`,w=`VoxelProperty_${M}`;n.addStruct(S,w,pe.FRAGMENT),n.addStructField(S,_,"partialDerivativeLocal"),n.addStructField(S,_,"partialDerivativeWorld"),n.addStructField(S,_,"partialDerivativeView"),n.addStructField(S,_,"partialDerivativeValid")}let b="Voxel",T="Voxel",C="voxel";n.addStruct(b,T,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=`VoxelProperty_${M}`;n.addStructField(b,N,M)}n.addStructField(b,"vec3","positionEC"),n.addStructField(b,"vec3","positionUv"),n.addStructField(b,"vec3","positionShapeUv"),n.addStructField(b,"vec3","positionUvLocal"),n.addStructField(b,"vec3","viewDirUv"),n.addStructField(b,"vec3","viewDirWorld"),n.addStructField(b,"vec3","surfaceNormal"),n.addStructField(b,"float","travelDistance"),n.addStructField(b,"int","stepCount"),n.addStructField(b,"int","tileIndex"),n.addStructField(b,"int","sampleIndex");let A="FragmentInput";n.addStruct(A,"FragmentInput",pe.FRAGMENT),n.addStructField(A,m,x),n.addStructField(A,T,C);let v="Properties",D="Properties",O="properties";n.addStruct(v,D,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=o[R],_=aG(N);n.addStructField(v,_,M)}{let R="clearProperties";n.addFunction(R,`${D} clearProperties()`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M],_=o[M],S=r[M],w=aG(_,S);n.addFunctionLines(R,[`${O}.${N} = ${w}(0.0);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="sumProperties";n.addFunction(R,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`${O}.${N} = propertiesA.${N} + propertiesB.${N};`])}n.addFunctionLines(R,[`return ${O};`])}{let R="scaleProperties";n.addFunction(R,`${D} scaleProperties(${D} ${O}, float scale)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} scaledProperties = ${O};`]);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`scaledProperties.${N} *= scale;`])}n.addFunctionLines(R,["return scaledProperties;"])}{let R="mixProperties";n.addFunction(R,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`${O}.${N} = mix(propertiesA.${N}, propertiesB.${N}, mixFactor);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="copyPropertiesToMetadata";n.addFunction(R,`void copyPropertiesToMetadata(in ${D} ${O}, inout ${m} ${x})`,pe.FRAGMENT);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`${x}.${N} = ${O}.${N};`])}}if(u){let R="setStatistics";n.addFunction(R,`void setStatistics(inout ${d} ${p})`,pe.FRAGMENT);for(let M=0;M<c;M++){let N=i[M],_=o[M],S=At.getComponentCount(_);for(let w=0;w<S;w++){let I=_0t(_,w),L=s[M][w],B=a[M][w];n.addFunctionLines(R,[`${p}.${N}.min${I} = ${$Te(L)};`,`${p}.${N}.max${I} = ${$Te(B)};`])}}}{let R="getPropertiesFromMegatextureAtUv";n.addFunction(R,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M],_=o[M],S=r[M],w=m0t(_,S);n.addFunctionLines(R,[`properties.${N} = texture(u_megatextureTextures[${M}], texcoord)${w};`])}n.addFunctionLines(R,[`return ${O};`])}}function aG(e){if(e===At.SCALAR)return"float";if(e===At.VEC2)return"vec2";if(e===At.VEC3)return"vec3";if(e===At.VEC4)return"vec4"}function m0t(e){if(e===At.SCALAR)return".r";if(e===At.VEC2)return".ra";if(e===At.VEC3)return".rgb";if(e===At.VEC4)return""}function p0t(e){if(e===At.SCALAR)return"vec3";if(e===At.VEC2)return"mat2";if(e===At.VEC3)return"mat3";if(e===At.VEC4)return"mat4"}function $Te(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function _0t(e,t){return e===At.SCALAR?"":`[${t}]`}var qB=h0t;function g0t(e,t){let n=new jB(e);qB(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let T="getClippingPlane",C=og(o,t),A=0,E=C.indexOf(")")+1,v=C.indexOf("{",E)+1,D=C.indexOf("}",v),O=C.slice(A,E),R=C.slice(v,D);i.addFunction(T,O,pe.FRAGMENT),i.addFunctionLines(T,[R])}let s=i.clone();s.addDefine("PICKING",void 0,pe.FRAGMENT);let a=i.clone();a.addDefine("PICKING_VOXEL",void 0,pe.FRAGMENT);let c=i.buildShaderProgram(t),u=s.buildShaderProgram(t),f=a.buildShaderProgram(t),d=Ve.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}),p=t.getViewportQuadVertexArray(),g=e._depthTest,m=new Ze({vertexArray:p,primitiveType:Me.TRIANGLES,renderState:d,shaderProgram:c,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:ve.VOXELS,executeInClosestFrustum:!0,owner:this,cull:g,occlude:g}),x=Ze.shallowClone(m,new Ze);x.shaderProgram=u,x.pickOnly=!0;let b=Ze.shallowClone(m,new Ze);if(b.shaderProgram=f,b.pickOnly=!0,l(e._drawCommand)){let T=e._drawCommand;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPick)){let T=e._drawCommandPick;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPickVoxel)){let T=e._drawCommandPickVoxel;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}e._drawCommand=m,e._drawCommandPick=x,e._drawCommandPickVoxel=b}var YB=g0t;function iu(){this.orientedBoundingBox=new vn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minBounds=h.clone(iu.DefaultMinBounds,new h),this._maxBounds=h.clone(iu.DefaultMaxBounds,new h),this.shaderUniforms={renderMinBounds:new h,renderMaxBounds:new h,boxUvToShapeUvScale:new h,boxUvToShapeUvTranslate:new h},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var y0t=new h,JK=new h,x0t=new $,b0t=new h,T0t=new h,C0t=new h,A0t=new h,QTe=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F);iu.prototype.update=function(e,t,n,i,o){i=y(i,iu.DefaultMinBounds),o=y(o,iu.DefaultMaxBounds);let r=iu.DefaultMinBounds,s=iu.DefaultMaxBounds;t=this._minBounds=h.clamp(t,r,s,this._minBounds),n=this._maxBounds=h.clamp(n,r,s,this._maxBounds),i=h.clamp(i,r,s,b0t),o=h.clamp(o,r,s,T0t);let a=h.clamp(t,i,o,C0t),c=h.clamp(n,i,o,A0t),u=F.getScale(e,JK);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||u.x===0||u.y===0||u.z===0)return!1;this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=tZ(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:f,shaderDefines:d}=this;for(let m in d)d.hasOwnProperty(m)&&(d[m]=void 0);let p=!h.equals(t,r)||!h.equals(n,s),g=0;if(d.BOX_INTERSECTION_INDEX=g,g+=1,f.renderMinBounds=F.multiplyByPoint(QTe,a,f.renderMinBounds),f.renderMaxBounds=F.multiplyByPoint(QTe,c,f.renderMaxBounds),p){d.BOX_HAS_SHAPE_BOUNDS=!0;let m=t,x=n;f.boxUvToShapeUvScale=h.fromElements(2/(m.x===x.x?1:x.x-m.x),2/(m.y===x.y?1:x.y-m.y),2/(m.z===x.z?1:x.z-m.z),f.boxUvToShapeUvScale),f.boxUvToShapeUvTranslate=h.fromElements(-f.boxUvToShapeUvScale.x*(m.x*.5+.5),-f.boxUvToShapeUvScale.y*(m.y*.5+.5),-f.boxUvToShapeUvScale.z*(m.z*.5+.5),f.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var cG=new h,eZ=new h;iu.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(P.lerp(r.x,s.x,a*t),P.lerp(r.y,s.y,a*n),P.lerp(r.z,s.z,a*i),cG),u=h.fromElements(P.lerp(r.x,s.x,a*(t+1)),P.lerp(r.y,s.y,a*(n+1)),P.lerp(r.z,s.z,a*(i+1)),eZ);return tZ(c,u,this.shapeTransform,o)};var JTe=new h;iu.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,JTe),s=h.multiplyByScalar(r,o,JTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,cG),o,cG),c=h.add(a,s,eZ),u=this._minBounds,f=this._maxBounds,d=h.fromElements(P.lerp(u.x,f.x,a.x),P.lerp(u.y,f.y,a.y),P.lerp(u.z,f.z,a.z),cG),p=h.fromElements(P.lerp(u.x,f.x,c.x),P.lerp(u.y,f.y,c.y),P.lerp(u.z,f.z,c.z),eZ);return tZ(d,p,this.shapeTransform,i)};iu.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));iu.DefaultMaxBounds=Object.freeze(new h(1,1,1));function tZ(e,t,n,i){let o=iu.DefaultMinBounds,r=iu.DefaultMaxBounds;if(h.equals(e,o)&&h.equals(t,r))i.center=F.getTranslation(n,i.center),i.halfAxes=F.getMatrix3(n,i.halfAxes);else{let a=F.getScale(n,JK),c=h.midpoint(e,t,y0t);i.center=F.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),JK);let u=F.getRotation(n,x0t);i.halfAxes=$.setScale(u,a,i.halfAxes)}return i}var ap=iu;function ss(){this.orientedBoundingBox=new vn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minimumRadius=ss.DefaultMinBounds.x,this._maximumRadius=ss.DefaultMaxBounds.x,this._minimumHeight=ss.DefaultMinBounds.y,this._maximumHeight=ss.DefaultMaxBounds.y,this._minimumAngle=ss.DefaultMinBounds.z,this._maximumAngle=ss.DefaultMaxBounds.z,this.shaderUniforms={cylinderRenderHeightMinMax:new z,cylinderRenderRadiusMinMax:new z,cylinderRenderAngleMinMax:new z,cylinderUvToShapeUvRadius:new z,cylinderUvToShapeUvHeight:new z,cylinderUvToShapeUvAngle:new z,cylinderShapeUvAngleMinMax:new z,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var iCe=new h;ss.prototype.update=function(e,t,n,i,o){i=y(i,ss.DefaultMinBounds),o=y(o,ss.DefaultMaxBounds);let r=ss.DefaultMinBounds.x,s=ss.DefaultMaxBounds.x,a=ss.DefaultMinBounds.y,c=ss.DefaultMaxBounds.y,u=ss.DefaultMinBounds.z,f=ss.DefaultMaxBounds.z,d=f-u,p=.5*d,g=P.EPSILON10,m=P.EPSILON3,x=P.EPSILON10,b=P.clamp(t.x,r,s),T=P.clamp(n.x,r,s),C=P.clamp(i.x,r,s),A=P.clamp(o.x,r,s),E=Math.max(b,C),v=Math.min(T,A),D=P.clamp(t.y,a,c),O=P.clamp(n.y,a,c),R=P.clamp(i.y,a,c),M=P.clamp(o.y,a,c),N=Math.max(D,R),_=Math.min(O,M),S=P.negativePiToPi(t.z),w=P.negativePiToPi(n.z),I=P.negativePiToPi(i.z),L=P.negativePiToPi(o.z),B=Math.max(S,I),U=Math.min(w,L),V=F.getScale(e,iCe);if(v===0||E>v||N>_||P.equalsEpsilon(V.x,0,void 0,g)||P.equalsEpsilon(V.y,0,void 0,g)||P.equalsEpsilon(V.z,0,void 0,g))return!1;this._minimumRadius=b,this._maximumRadius=T,this._minimumHeight=D,this._maximumHeight=O,this._minimumAngle=S,this._maximumAngle=w,this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=iZ(E,v,N,_,B,U,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let W=b===r&&T===s,q=D===a&&O===c,J=w<S,j=w-S+J*d,K=j>p+x&&j<d-x,Q=j<p-x,de=j>=p-x&&j<=p+x,ye=K||Q||de,ae=P.equalsEpsilon(S,u,void 0,m),_e=P.equalsEpsilon(w,f,void 0,m),xe=E===r,De=U<B,Ae=U-B+De*d,ke=Ae>=p-x&&Ae<d-x,ze=Ae>x&&Ae<p-x,tt=Ae<=x,wt=ke||ze||tt,{shaderUniforms:pt,shaderDefines:Be}=this;for(let Ct in Be)Be.hasOwnProperty(Ct)&&(Be[Ct]=void 0);let Yt=0;if(Be.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=Yt,Yt+=1,xe||(Be.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Be.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=Yt,Yt+=1),pt.cylinderRenderRadiusMinMax=z.fromElements(E,v,pt.cylinderRenderRadiusMinMax),E===v&&(Be.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),!W){Be.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let Ct=T-b,lt=0,tn=1;Ct!==0&&(lt=1/Ct,tn=-b/Ct),pt.cylinderUvToShapeUvRadius=z.fromElements(lt,tn,pt.cylinderUvToShapeUvRadius)}if(!q){Be.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let Ct=O-D,lt=0,tn=1;Ct!==0&&(lt=2/Ct,tn=-(D+1)/Ct),pt.cylinderUvToShapeUvHeight=z.fromElements(lt,tn,pt.cylinderUvToShapeUvHeight)}if(pt.cylinderRenderHeightMinMax=z.fromElements(N,_,pt.cylinderRenderHeightMinMax),J&&(Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),wt&&(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Be.CYLINDER_INTERSECTION_INDEX_ANGLE=Yt,ke?(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,Yt+=1):ze?(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,Yt+=2):tt&&(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,Yt+=2),pt.cylinderRenderAngleMinMax=z.fromElements(B,U,pt.cylinderRenderAngleMinMax)),ye){Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,ae&&(Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),_e&&(Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let Ct=(S-u)/d,lt=(w-u)/d,tn=1-j/d;if(pt.cylinderShapeUvAngleMinMax=z.fromElements(Ct,lt,pt.cylinderShapeUvAngleMinMax),pt.cylinderShapeUvAngleRangeZeroMid=(lt+.5*tn)%1,j<=x)pt.cylinderUvToShapeUvAngle=z.fromElements(0,1,pt.cylinderUvToShapeUvAngle);else{let Ce=d/j,Te=-(S-u)/j;pt.cylinderUvToShapeUvAngle=z.fromElements(Ce,Te,pt.cylinderUvToShapeUvAngle)}}return this.shaderMaximumIntersectionsLength=Yt,!0};ss.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,u=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=P.lerp(r,s,t*d),g=P.lerp(r,s,(t+1)*d),m=P.lerp(a,c,n*d),x=P.lerp(a,c,(n+1)*d),b=P.lerp(u,f,i*d),T=P.lerp(u,f,(i+1)*d);return iZ(p,g,m,x,b,T,this.shapeTransform,o)};var eCe=new h,tCe=new h,E0t=new h;ss.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,eCe),s=h.multiplyByScalar(r,o,eCe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,tCe),o,tCe),c=h.add(a,s,E0t),u=this._minimumRadius,f=this._maximumRadius,d=this._minimumHeight,p=this._maximumHeight,g=this._minimumAngle,m=this._maximumAngle,x=P.lerp(u,f,a.x),b=P.lerp(u,f,c.x),T=P.lerp(d,p,a.y),C=P.lerp(d,p,c.y),A=P.lerp(g,m,a.z),E=P.lerp(g,m,c.z);return iZ(x,b,T,C,A,E,this.shapeTransform,i)};ss.DefaultMinBounds=Object.freeze(new h(0,-1,-P.PI));ss.DefaultMaxBounds=Object.freeze(new h(1,1,+P.PI));var S0t=5,v0t=new Array(S0t),w0t=new h,D0t=new $,I0t=new F,P0t=new F,R0t=new F,nZ=new F,O0t=new h,M0t=new h,L0t=new h,oCe=new Array(8);for(let e=0;e<8;e++)oCe[e]=new h;function nCe(e,t,n){return Math.abs(oe.dot(e,t))<n}function N0t(e){let t=F.getColumn(e,0,O0t),n=F.getColumn(e,1,M0t),i=F.getColumn(e,2,L0t),o=P.EPSILON4;return nCe(t,n,o)&&nCe(n,i,o)}function F0t(e,t){let n=oCe;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)F.multiplyByPoint(e,n[i],n[i]);return vn.fromPoints(n,t)}function iZ(e,t,n,i,o,r,s,a){let c=ss.DefaultMinBounds,u=ss.DefaultMaxBounds,f=c.x,d=u.x,p=c.y,g=u.y,m=c.z,x=u.z;if(e===f&&t===d&&n===p&&i===g&&o===m&&r===x)return a.center=F.getTranslation(s,a.center),a.halfAxes=F.getMatrix3(s,a.halfAxes),a;r<o&&(r+=P.TWO_PI);let T=r-o,C=o+T*.5,A=v0t,E=0;A[E++]=o,A[E++]=r,A[E++]=C,T>P.PI&&(A[E++]=C-P.PI_OVER_TWO,A[E++]=C+P.PI_OVER_TWO);let v=1,D=1,O=-1,R=-1;for(let J=0;J<E;++J){let j=A[J]-C,K=Math.cos(j),Q=Math.sin(j),de=K*e,ye=Q*e,ae=K*t,_e=Q*t;v=Math.min(v,de),D=Math.min(D,ye),v=Math.min(v,ae),D=Math.min(D,_e),O=Math.max(O,de),R=Math.max(R,ye),O=Math.max(O,ae),R=Math.max(R,_e)}let M=O-v,N=R-D,_=i-n,S=(v+O)*.5,w=(D+R)*.5,I=(n+i)*.5,L=h.fromElements(S,w,I,w0t),B=$.fromRotationZ(C,D0t),U=h.fromElements(M,N,_,iCe),V=F.fromScale(U,R0t),G=F.fromRotation(B,P0t),k=F.fromTranslation(L,I0t),W=F.multiplyTransformation(G,F.multiplyTransformation(k,V,nZ),nZ),q=F.multiplyTransformation(s,W,nZ);return N0t(q)?vn.fromTransformation(q,a):F0t(q,a)}var cp=ss;function xg(){this.orientedBoundingBox=new vn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._rectangle=new re,this._minimumHeight=xg.DefaultMinBounds.z,this._maximumHeight=xg.DefaultMaxBounds.z,this._ellipsoid=new ee,this._translation=new h,this._rotation=new $,this.shaderUniforms={ellipsoidRadiiUv:new h,eccentricitySquared:0,evoluteScale:new z,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new z,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new z,ellipsoidUvToShapeUvLatitude:new z,ellipsoidRenderLatitudeSinMinMax:new z,ellipsoidInverseHeightDifferenceUv:0,clipMinMaxHeight:new z},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var B0t=new h,k0t=new h,V0t=new h,U0t=new h,z0t=new h,H0t=new h,G0t=new h,W0t=new h,j0t=new $,rCe=new h,sCe=new h,q0t=new re;xg.prototype.update=function(e,t,n,i,o){let{DefaultMinBounds:r,DefaultMaxBounds:s}=xg;i=y(i,r),o=y(o,s);let a=P.EPSILON10,c=P.EPSILON3,u=P.EPSILON10,f=P.EPSILON10,d=P.EPSILON3,p=F.getScale(e,W0t),g=h.clone(r,B0t);g.z=-h.minimumComponent(p);let m=h.clamp(t,g,s,k0t),x=h.clamp(n,g,s,V0t),b=h.clamp(i,g,s,U0t),T=h.clamp(o,g,s,z0t),C=h.maximumByComponent(m,b,H0t),A=h.minimumByComponent(x,T,G0t),E=h.add(p,h.fromElements(x.z,x.z,x.z,rCe),rCe),v=h.maximumComponent(E),D=h.add(p,h.fromElements(A.z,A.z,A.z,sCe),sCe);if(C.y>A.y||C.y===s.y||A.y===r.y||C.z>A.z||P.equalsEpsilon(D,h.ZERO,void 0,a))return!1;this._rectangle=re.fromRadians(m.x,m.y,x.x,x.y),this._translation=F.getTranslation(e,this._translation),this._rotation=F.getRotation(e,this._rotation),this._ellipsoid=ee.fromCartesian3(p,this._ellipsoid),this._minimumHeight=m.z,this._maximumHeight=x.z;let O=re.fromRadians(C.x,C.y,A.x,A.y,q0t);this.orientedBoundingBox=oZ(O,C.z,A.z,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=F.fromRotationTranslation($.setScale(this._rotation,E,j0t),this._translation,this.shapeTransform),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let R=s.x-r.x,M=.5*R,N=A.x<C.x,_=A.x-C.x+N*R,S=_<=u,w=_>=M-u&&_<R-u,I=_>u&&_<M-u,L=S||w||I,B=x.x<m.x,U=x.x-m.x+B*R,V=U>M+u&&U<R-u,G=U>=M-u&&U<=M+u,k=U<M-u,W=V||G||k,q=A.y<-d,J=A.y>=-d&&A.y<=+d,j=A.y>+d&&A.y<s.y-f,K=q||J||j,Q=C.y>r.y+f&&C.y<-d,de=C.y>=-d&&C.y<=+d,ye=C.y>+d,ae=Q||de||ye,_e=K||ae,xe=x.y-m.y,De=x.y<-d,Ae=x.y>=-d&&x.y<=+d,ke=x.y>+d&&x.y<s.y-f,ze=De||Ae||ke,tt=m.y>r.y+f&&m.y<-d,wt=m.y>=-d&&m.y<=+d,pt=m.y>+d,Yt=ze||(tt||wt||pt),{shaderUniforms:Ct,shaderDefines:lt}=this;for(let ut in lt)lt.hasOwnProperty(ut)&&(lt[ut]=void 0);Ct.ellipsoidRadiiUv=h.divideByScalar(E,v,Ct.ellipsoidRadiiUv);let{x:tn,z:Ce}=Ct.ellipsoidRadiiUv,Te=Ce/tn;Ct.eccentricitySquared=1-Te*Te,Ct.evoluteScale=z.fromElements((tn*tn-Ce*Ce)/tn,(Ce*Ce-tn*tn)/Ce,Ct.evoluteScale),Ct.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(Ct.ellipsoidRadiiUv,Ct.ellipsoidRadiiUv,Ct.ellipsoidInverseRadiiSquaredUv),Ct.ellipsoidInverseRadiiSquaredUv);let it=0;lt.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=it,it+=1,lt.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=it,it+=1,Ct.clipMinMaxHeight=z.fromElements((C.z-x.z)/v,(A.z-x.z)/v,Ct.clipMinMaxHeight);let Wi=(x.z-m.z)/v;if(Ct.ellipsoidInverseHeightDifferenceUv=1/Wi,m.z===x.z&&(Ct.ellipsoidInverseHeightDifferenceUv=0),L&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,lt.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=it,w?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,it+=1):I?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,it+=2):S&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,it+=2),Ct.ellipsoidRenderLongitudeMinMax=z.fromElements(C.x,A.x,Ct.ellipsoidRenderLongitudeMinMax)),W)if(lt.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,x.x<m.x&&(lt.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0),U<=u)Ct.ellipsoidUvToShapeUvLongitude=z.fromElements(0,1,Ct.ellipsoidUvToShapeUvLongitude);else{let go=R/U,Yo=-(m.x-r.x)/U;Ct.ellipsoidUvToShapeUvLongitude=z.fromElements(go,Yo,Ct.ellipsoidUvToShapeUvLongitude)}if(L){let ut=P.equalsEpsilon(C.x,r.x,void 0,c),go=P.equalsEpsilon(A.x,s.x,void 0,c);ut&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),go&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let Yo=(m.x-r.x)/R,Ya=(x.x-r.x)/R,Ir=(A.x-r.x)/R,Cs=1-_/R,Le=(Ir+.5*Cs)%1;Ct.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(Yo,Ya,Le,Ct.ellipsoidShapeUvLongitudeMinMaxMid)}if(_e&&(ae&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,lt.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=it,Q?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,it+=1):de?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,it+=1):ye&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,it+=2)),K&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,lt.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=it,q?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,it+=2):J?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,it+=1):j&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,it+=1)),Ct.ellipsoidRenderLatitudeSinMinMax=z.fromElements(Math.sin(C.y),Math.sin(A.y),Ct.ellipsoidRenderLatitudeSinMinMax)),Yt)if(lt.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,xe<f)Ct.ellipsoidUvToShapeUvLatitude=z.fromElements(0,1,Ct.ellipsoidUvToShapeUvLatitude);else{let go=(s.y-r.y)/xe,Yo=(r.y-m.y)/xe;Ct.ellipsoidUvToShapeUvLatitude=z.fromElements(go,Yo,Ct.ellipsoidUvToShapeUvLatitude)}return this.shaderMaximumIntersectionsLength=it,!0};var lCe=new re;xg.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,u=(n+1)*r,f=i*r,d=(i+1)*r,p=re.subsection(this._rectangle,s,c,a,u,lCe),g=P.lerp(this._minimumHeight,this._maximumHeight,f),m=P.lerp(this._minimumHeight,this._maximumHeight,d);return oZ(p,g,m,this._ellipsoid,this._translation,this._rotation,o)};var aCe=new h,cCe=new h,Y0t=new h;xg.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,aCe),s=h.multiplyByScalar(r,o,aCe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,cCe),o,cCe),c=h.add(a,s,Y0t),u=re.subsection(this._rectangle,a.x,a.y,c.x,c.y,lCe),f=P.lerp(this._minimumHeight,this._maximumHeight,a.z),d=P.lerp(this._minimumHeight,this._maximumHeight,c.z);return oZ(u,f,d,this._ellipsoid,this._translation,this._rotation,i)};function oZ(e,t,n,i,o,r,s){return s=vn.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=$.multiply(s.halfAxes,r,s.halfAxes),s}xg.DefaultMinBounds=Object.freeze(new h(-P.PI,-P.PI_OVER_TWO,-ee.WGS84.minimumRadius));xg.DefaultMaxBounds=Object.freeze(new h(P.PI,P.PI_OVER_TWO,10*ee.WGS84.maximumRadius));var iC=xg;var nf={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};nf.getMinBounds=function(e){switch(e){case nf.BOX:return ap.DefaultMinBounds;case nf.ELLIPSOID:return iC.DefaultMinBounds;case nf.CYLINDER:return cp.DefaultMinBounds}};nf.getMaxBounds=function(e){switch(e){case nf.BOX:return ap.DefaultMaxBounds;case nf.ELLIPSOID:return iC.DefaultMaxBounds;case nf.CYLINDER:return cp.DefaultMaxBounds}};nf.getShapeConstructor=function(e){switch(e){case nf.BOX:return ap;case nf.ELLIPSOID:return iC;case nf.CYLINDER:return cp}};var Ni=Object.freeze(nf);function Vh(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(Vh.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});Vh.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new Vh({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};Vh.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};Vh.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)uCe(this,t)};Vh.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,uCe(this,i),t};Vh.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],fCe(this,0)),this._array[e-1]=void 0,t};Vh.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=rZ(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&fCe(this,n)}return this._array[e-1]=void 0,t};Vh.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};Vh.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[rZ(this,1,2)?1:2]};function lG(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function XB(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function rZ(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function uCe(e,t){if(t===0)return;let n=Math.floor(P.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=XB(e,t,i);for(o!==n&&(lG(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(XB(e,t,r)!==o)break;lG(e,t,r),t=r}}function fCe(e,t){let n=e._length,i=Math.floor(P.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){XB(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let u=0;u<c;u++){let f=a+u;XB(e,f,r)===i&&(r=f)}}if(XB(e,r,t)===i&&(lG(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);rZ(e,r,a)===i&&lG(e,r,a)}t=r}}var oC=Vh;var dCe=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function uG(e,t){this.spatialNode=e,this.keyframe=t,this.state=dCe.UNLOADED,this.metadata=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}uG.priorityComparator=function(e,t){return e.priority-t.priority};uG.searchComparator=function(e,t){return e.keyframe-t.keyframe};uG.LoadState=dCe;var Ji=uG;function O0(e,t,n,i,o){i===zt.UNSIGNED_SHORT&&(i=zt.FLOAT32);let r=e.floatingPointTexture;if(i===zt.FLOAT32&&!r)throw new ce("Floating point texture not supported");let s;i===zt.FLOAT32||i===zt.FLOAT64?s=Ke.FLOAT:i===zt.UINT8&&(s=Ke.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?Je.RED:Je.LUMINANCE:n===2?a=e.webgl2?Je.RG:Je.LUMINANCE_ALPHA:n===3?a=Je.RGB:n===4&&(a=Je.RGBA);let c=512*1024*1024,u=128*1024*1024;o=Math.min(y(o,u),c);let f=kt.maximumTextureSize,d=zt.getSizeInBytes(i),p=Math.floor(o/(n*d)),g=Math.min(f,P.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),m=Math.ceil(Math.sqrt(t.x)),x=Math.ceil(t.z/m),b=m*t.x,T=x*t.y,C=Math.floor(g/b),A=Math.floor(g/T);if(C===0||A===0)throw new ce("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=C*A,this.regionCountPerMegatexture=new z(C,A),this.voxelCountPerRegion=new z(b,T),this.sliceCountPerRegion=new z(m,x),this.voxelSizeUv=new z(1/g,1/g),this.sliceSizeUv=new z(t.x/g,t.y/g),this.regionSizeUv=new z(b/g,T/g),this.texture=new Pt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR})});let E=zt.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(E,b*T*n),this.nodes=new Array(this.maximumTileCount);for(let v=0;v<this.maximumTileCount;v++)this.nodes[v]=new X0t(v);for(let v=0;v<this.maximumTileCount;v++){let D=this.nodes[v];D.previousNode=v>0?this.nodes[v-1]:void 0,D.nextNode=v<this.maximumTileCount-1?this.nodes[v+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function X0t(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}O0.prototype.add=function(e){if(this.isFull())throw new he("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};O0.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new he("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};O0.prototype.isFull=function(){return this.emptyList===void 0};O0.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===zt.UNSIGNED_SHORT&&(i=zt.FLOAT32);let o=zt.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.x)),a=Math.ceil(t.z/s),c=s*t.x,u=a*t.y,f=P.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/u);if(p*g>=e)break;f*=2}return f*f*n*o};O0.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let x=0;x<i.z;x++){let b=x%o.x*i.x,T=Math.floor(x/o.x)*i.y;for(let C=0;C<i.y;C++)for(let A=0;A<i.x;A++){let E=x*i.y*i.x+C*i.x+A,v=(T+C)*r.x+(b+A);for(let D=0;D<s;D++)a[v*s+D]=n[E*s+D]}}let c=this.regionCountPerMegatexture,u=r.x,f=r.y,d=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,m={source:{arrayBufferView:a,width:u,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(m)};O0.prototype.isDestroyed=function(){return!1};O0.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var hv=O0;function gd(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.dimensions=h.clone(s),this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new vn,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r)}var K0t=new h;gd.prototype.computeBoundingVolumes=function(e){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let t=$.getScale(this.orientedBoundingBox.halfAxes,K0t),n=2*h.maximumComponent(t);this.approximateVoxelSize=n/h.minimumComponent(this.dimensions)};gd.prototype.constructChildNodes=function(e){let{level:t,x:n,y:i,z:o}=this,r=n*2,s=i*2,a=o*2,c=s+1,u=r+1,f=a+1,d=t+1,p=[[d,r,s,a],[d,u,s,a],[d,r,c,a],[d,u,c,a],[d,r,s,f],[d,u,s,f],[d,r,c,f],[d,u,c,f]];this.children=p.map(([g,m,x,b])=>new gd(g,m,x,b,this,e,this.dimensions))};gd.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};gd.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,P.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var hCe={keyframe:0};function KB(e,t){return hCe.keyframe=e,Po(t,hCe,Ji.searchComparator)}gd.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=Z0t(i,d),g=d[p],m=o===i||i<g.keyframe?p:Math.min(p+1,d.length-1),x=d[m],b=i-g.keyframe,T=mCe(n-t.level,b);T<a&&(a=T,r=g);let C=x.keyframe-o,A=mCe(n-t.level,C);if(A<c&&(c=A,s=x),b===0&&C===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let u=r.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=u===f?0:P.clamp((e-u)/(f-u),0,1)};function Z0t(e,t){let n=KB(e,t);return n<0?P.clamp(~n-1,0,t.length-1):n}function mCe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}gd.prototype.isVisited=function(e){return this.visitedFrameNumber===e};gd.prototype.createKeyframeNode=function(e){let t=KB(e,this.keyframeNodes);if(t<0){t=~t;let n=new Ji(this,e);this.keyframeNodes.splice(t,0,n)}};gd.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=KB(n,this.keyframeNodes);if(i<0)throw new he("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=KB(n,this.renderableKeyframeNodes);if(o<0)throw new he("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=Ji.LoadState.UNLOADED,e.metadata={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};gd.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Ji.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadata.length!==t.length)throw new he("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadata[o])}e.state=Ji.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=KB(e.keyframe,n);if(i>=0)throw new he("Keyframe already renderable");i=~i,n.splice(i,0,e)};gd.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var ZB=gd;function bg(e,t,n,i,o,r,s){this._primitive=e,this.megatextures=new Array(i.length);for(let m=0;m<i.length;m++){let x=i[m],b=At.getComponentCount(x),T=o[m];this.megatextures[m]=new hv(t,n,b,T,s)}let a=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let c=e._shape;this.rootNode=new ZB(0,0,0,0,void 0,c,n),this._priorityQueue=new oC({maximumLength:a,comparator:Ji.priorityComparator}),this._highPriorityKeyframeNodes=new Array(a),this._keyframeNodesInMegatexture=new Array(a),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let u=this._binaryTreeKeyframeWeighting;u[0]=0,u[r-1]=0,sZ(u,1,r-2,0);let f=9,d=2048,p=Math.floor(d/f),g=Math.ceil(a/p);this.internalNodeTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,flipY:!1,width:d,height:g,sampler:new $t({minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})}),this.internalNodeTilesPerRow=p,this.internalNodeTexelSizeUv=new z(1/d,1/g),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new z}bg.prototype.findKeyframeNode=function(e){return this._keyframeNodesInMegatexture.find(function(t){return t.megatextureIndex===e})};function sZ(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,sZ(e,t,o-1,i+1),sZ(e,o+1,n,i+1)}bg.simultaneousRequestCountMaximum=50;bg.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,u=c>0,f=a>1,d=(u?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!l(this.leafNodeTexture)){let C=Math.floor(512),A=Math.ceil(s/C);this.leafNodeTexture=new Pt({context:r,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,flipY:!1,width:1024,height:A,sampler:new $t({minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})}),this.leafNodeTexelSizeUv=z.fromElements(1/1024,1/A,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=C}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=P.clamp(t,0,a-1),n&&pCe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=xi();J0t(this,e);let m=xi();nxt(this,d,c);let x=xi();if(this._debugPrint){let b=m-g,T=x-m,C=x-g;txt(this,b,T,C)}};bg.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};bg.prototype.isDestroyed=function(){return!1};bg.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function pCe(e,t){if(t.computeBoundingVolumes(e._primitive._shape),l(t.children))for(let n=0;n<8;n++){let i=t.children[n];pCe(e,i)}}function $0t(e,t){if(e._simultaneousRequestCount>=bg.simultaneousRequestCountMaximum)return;let n=e._primitive._provider;function i(c){e._simultaneousRequestCount--;let u=n.types.length;if(!l(c))t.state=Ji.LoadState.UNAVAILABLE;else if(c===Ji.LoadState.FAILED)t.state=Ji.LoadState.FAILED;else if(!Array.isArray(c)||c.length!==u)t.state=Ji.LoadState.FAILED;else{let f=e.megatextures;for(let d=0;d<u;d++){let{voxelCountPerTile:p,channelCount:g}=f[d],{x:m,y:x,z:b}=p,T=m*x*b,C=c[d],A=T*g;if(C.length===A)t.metadata[d]=C,t.state=Ji.LoadState.RECEIVED;else{t.state=Ji.LoadState.FAILED;break}}}}function o(){e._simultaneousRequestCount--,t.state=Ji.LoadState.FAILED}let{keyframe:r,spatialNode:s}=t,a=n.requestData({tileLevel:s.level,tileX:s.x,tileY:s.y,tileZ:s.z,keyframe:r});l(a)?(e._simultaneousRequestCount++,t.state=Ji.LoadState.RECEIVING,a.then(i).catch(o)):t.state=Ji.LoadState.FAILED}function Q0t(e){return e/(1+e)}function J0t(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,r=i.screenSpaceError,s=e._priorityQueue,a=e._keyframeCount,c=P.clamp(Math.floor(e._keyframeLocation),0,a-2),u=c+1,{camera:f,context:d,pixelRatio:p}=t,{positionWC:g,frustum:m}=f,b=d.drawingBufferHeight/p/m.sseDenominator;function T(N,_){if(N.computeScreenSpaceError(g,b),_=N.visibility(t,_),_===ps.MASK_OUTSIDE)return;if(N.visitedFrameNumber=n,a===1)N.createKeyframeNode(0);else if(N.keyframeNodes.length!==a)for(let B=0;B<a;B++)N.createKeyframeNode(B);let{screenSpaceError:S,keyframeNodes:w}=N,I=Q0t(S),L=!1;for(let B=0;B<w.length;B++){let U=w[B];U.priority=10*I+ext(c,U.keyframe,u,e),U.state!==Ji.LoadState.UNAVAILABLE&&U.state!==Ji.LoadState.FAILED&&U.priority!==-Number.MAX_VALUE&&s.insert(U),U.state===Ji.LoadState.LOADED&&(L=!0)}if(S<r||!L){N.children=void 0;return}l(N.children)||N.constructChildNodes(o);for(let B=0;B<8;B++){let U=N.children[B];T(U,_)}}s.reset(),T(e.rootNode,ps.MASK_INDETERMINATE);let C=e._highPriorityKeyframeNodes,A=0,E;for(;s.length>0;)E=s.removeMaximum(),E.highPriorityFrameNumber=n,C[A]=E,A++;let v=e._keyframeNodesInMegatexture,D=e.megatextures[0],O=D.occupiedCount;v.length=O,v.sort(function(N,_){return N.highPriorityFrameNumber===_.highPriorityFrameNumber?_.priority-N.priority:_.highPriorityFrameNumber-N.highPriorityFrameNumber});let R=0,M=0;for(let N=0;N<A;N++)if(E=C[N],!(E.state===Ji.LoadState.LOADED||E.spatialNode===void 0)&&(E.state===Ji.LoadState.UNLOADED&&$0t(e,E),E.state===Ji.LoadState.RECEIVED)){let _=0;if(D.isFull()){_=O-1-R,R++;let S=v[_];S.spatialNode.destroyKeyframeNode(S,e.megatextures)}else _=O+M,M++;E.spatialNode.addKeyframeNodeToMegatextures(E,e.megatextures),v[_]=E}}function ext(e,t,n,i){let o=Math.min(Math.abs(t-e),Math.abs(t-n)),r=Math.max(e,i._keyframeCount-n-1,1),s=Math.pow(1-o/r,4),a=Math.exp(-i._binaryTreeKeyframeWeighting[t]);return P.lerp(a,s,.15+.85*s)}function txt(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys(Ji.LoadState).length,a=new Array(s),c=new Array(s),u=0;for(let T=0;T<s;T++){let C=new Array(o);a[T]=C;for(let A=0;A<o;A++)C[A]=0;c[T]=0}function f(T){let C=T.keyframeNodes;for(let A=0;A<C.length;A++){let E=C[A],v=E.keyframe,D=E.state;a[D][v]+=1,c[D]+=1,u++}if(l(T.children))for(let A=0;A<8;A++){let E=T.children[A];f(E)}}f(r);let d=`KEYFRAMES: ${a[Ji.LoadState.LOADED]}`,p=`UNLOADED: ${c[Ji.LoadState.UNLOADED]} | RECEIVING: ${c[Ji.LoadState.RECEIVING]} | RECEIVED: ${c[Ji.LoadState.RECEIVED]} | LOADED: ${c[Ji.LoadState.LOADED]} | FAILED: ${c[Ji.LoadState.FAILED]} | UNAVAILABLE: ${c[Ji.LoadState.UNAVAILABLE]} | TOTAL: ${u}`,g=Math.round(t*100)/100,m=Math.round(n*100)/100,x=Math.round(i*100)/100,b=`LOAD: ${g} | OCT: ${m} | ALL: ${x}`;console.log(`${d} || ${p} || ${b}`)}var fG={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function nxt(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,u=[],f=[];function d(g,m,x,b,T){let C=!1;if(l(g.children))for(let A=0;A<8;A++){let E=g.children[A];E.computeSurroundingRenderableKeyframeNodes(o),E.isRenderable(r)&&(C=!0)}if(C){u[T]=fG.INTERNAL<<16|m,u[x]=b,a++,b=m,T=b*9+1;for(let A=0;A<8;A++){let E=g.children[A];m=a,x=m*9+0,d(E,m,x,b,T+A)}}else{if(s){let A=c*5,E=g.renderableKeyframeNodePrevious,v=g.level-E.spatialNode.level,D=E.spatialNode.parent,O=l(D)?D.renderableKeyframeNodePrevious:E,R=ixt(g,i,n),M=v,N=1,_=E.megatextureIndex,S=O.megatextureIndex;f[A+0]=R,f[A+1]=M,f[A+2]=N,f[A+3]=_,f[A+4]=S,u[T]=fG.LEAF<<16|c}else{let A=g.renderableKeyframeNodePrevious,v=g.level-A.spatialNode.level===0?fG.LEAF:fG.PACKED_LEAF_FROM_PARENT;u[T]=v<<16|A.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&d(p,0,0,0,0),oxt(u,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&rxt(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function ixt(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return P.clamp(s,0,1)}function oxt(e,t,n,i){let o=Je.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let d=0;d<e.length;d++){let p=e[d],g=d*o;for(let m=0;m<o;m++)c[g+m]=p>>>m*8&255}let f={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(f)}function rxt(e,t,n,i){let o=Je.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),u=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let g=e[p*r+0],m=e[p*r+1],x=e[p*r+2],b=e[p*r+3],T=e[p*r+4],C=P.clamp(Math.floor(65536*g),0,65535);u[p*8+0]=C>>>0&255,u[p*8+1]=C>>>8&255,u[p*8+2]=m&255,u[p*8+3]=x&255,u[p*8+4]=b>>>0&255,u[p*8+5]=b>>>8&255,u[p*8+6]=T>>>0&255,u[p*8+7]=T>>>8&255}let d={source:{arrayBufferView:u,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}bg.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],u=At.getComponentCount(a);o+=hv.getApproximateTextureMemoryByteLength(e,t,u,c)}return o};var mv=bg;var sxt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},pv=Object.freeze(sxt);function axt(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var $B=axt;function _v(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}_v.prototype.getTexture=function(e){return this._textures[e]};function cxt(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}_v.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):cxt(this,e,t)};function lxt(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?dG(o,r,n):uxt(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function dG(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?gCe(e,n):new Pt({context:n,source:t,sampler:o});return _Ce(o)&&r.generateMipmap(),r}function uxt(e,t,n){let{typedArray:i,sampler:o}=e,r=_Ce(o),s=o.wrapS===Tn.REPEAT||o.wrapS===Tn.MIRRORED_REPEAT||o.wrapT===Tn.REPEAT||o.wrapT===Tn.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,u=[a,c].every(P.isPowerOfTwo);if((r||s)&&!u)if(l(i)){if(e.pixelDatatype===Ke.UNSIGNED_BYTE){let d=$B(i,a,c),p=ly(d);return dG({sampler:o},p,n)}}else{let d=ly(t);return dG(e,d,n)}else return dG(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),gCe(e,n)}function _Ce(e){return[Zt.NEAREST_MIPMAP_NEAREST,Zt.NEAREST_MIPMAP_LINEAR,Zt.LINEAR_MIPMAP_NEAREST,Zt.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function gCe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Pt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}_v.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];lxt(this,o,t)}n.length=0};_v.prototype.isDestroyed=function(){return!1};_v.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var QB=_v;function JB(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,m_.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,vy.INHERIT),this._textureManager=new QB,this._defaultTexture=void 0,this.uniformMap=fxt(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},mxt(this),pxt(this)}function fxt(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===pv.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=dxt(e,i)):n[i]=hxt(e,i)}return n}function dxt(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function hxt(e,t){return function(){return e.uniforms[t].value}}function rC(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function mxt(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,rC(r,t,o),o=e.usedVariablesVertex.featureIdSet,rC(r,n,o),o=e.usedVariablesVertex.metadataSet,rC(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,rC(s,t,o),o=e.usedVariablesFragment.featureIdSet,rC(s,n,o),o=e.usedVariablesFragment.metadataSet,rC(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;rC(s,a,c)}}function yCe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function Ic(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${yCe(t)} is not available in the ${i} shader. Did you mean ${yCe(n)} instead?`;throw new he(o)}}function pxt(e){let t=e.usedVariablesVertex.attributeSet;Ic(t,"position","positionMC","vertex"),Ic(t,"normal","normalMC","vertex"),Ic(t,"tangent","tangentMC","vertex"),Ic(t,"bitangent","bitangentMC","vertex"),Ic(t,"positionWC","positionMC","vertex"),Ic(t,"positionEC","positionMC","vertex"),Ic(t,"normalEC","normalMC","vertex"),Ic(t,"tangentEC","tangentMC","vertex"),Ic(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;Ic(n,"position","positionEC","fragment"),Ic(n,"normal","normalEC","fragment"),Ic(n,"tangent","tangentEC","fragment"),Ic(n,"bitangent","bitangentEC","fragment"),Ic(n,"normalMC","normalEC","fragment"),Ic(n,"tangentMC","tangentEC","fragment"),Ic(n,"bitangentMC","bitangentEC","fragment")}JB.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===pv.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};JB.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};JB.prototype.isDestroyed=function(){return!1};JB.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var sC=JB;function lp(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,lp.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new h,this._paddingAfter=new h,this._minBounds=new h,this._minBoundsOld=new h,this._maxBounds=new h,this._maxBoundsOld=new h,this._exaggeratedMinBounds=new h,this._exaggeratedMinBoundsOld=new h,this._exaggeratedMaxBounds=new h,this._exaggeratedMaxBoundsOld=new h,this._minClippingBounds=new h,this._minClippingBoundsOld=new h,this._maxClippingBounds=new h,this._maxClippingBoundsOld=new h,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._exaggeratedModelMatrix=F.clone(this._modelMatrix),this._compoundModelMatrix=new F,this._compoundModelMatrixOld=new F,this._customShader=y(e.customShader,lp.DefaultCustomShader),this._customShaderCompilationEvent=new me,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new F,this._transformPositionUvToWorld=new F,this._transformDirectionWorldToLocal=new $,this._transformNormalLocalToWorld=new $,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new oh,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new z,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new z,megatextureTextures:[],megatextureSliceDimensions:new z,megatextureTileDimensions:new z,megatextureVoxelSizeUv:new z,megatextureSliceSizeUv:new z,megatextureTileSizeUv:new z,dimensions:new h,paddingBefore:new h,paddingAfter:new h,transformPositionViewToUv:new F,transformPositionUvToView:new F,transformDirectionViewToLocal:new $,transformNormalLocalToWorld:new $,cameraPositionUv:new h,ndcSpaceAxisAlignedBoundingBox:new oe,clippingPlanesTexture:void 0,clippingPlanesMatrix:new F,stepSize:0,pickColor:new H},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;_xt(this,i)}function _xt(e,t){let{shape:n,minBounds:i=Ni.getMinBounds(n),maxBounds:o=Ni.getMaxBounds(n)}=t;e.minBounds=i,e.maxBounds=o,e.minClippingBounds=Ni.getMinBounds(n),e.maxClippingBounds=Ni.getMaxBounds(n),e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e._exaggeratedModelMatrix=F.clone(e._modelMatrix,e._exaggeratedModelMatrix),bCe(e,t);let r=Ni.getShapeConstructor(n);e._shape=new r,e._shapeVisible=TCe(e,e._shape,t)}Object.defineProperties(lp.prototype,{ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this._shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=P.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){_s.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];l(e)?this._customShader=e:this._customShader=lp.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var gxt=new h,yxt=new oe,xxt=new oe,bxt=new h,Txt=new h,Cxt=new $,Axt=new $,Ext=new F,Sxt=new F,vxt=new F,wxt=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F),Dxt=F.fromRotationTranslation($.fromUniformScale(2,new $),new h(-1,-1,-1),new F);lp.prototype.update=function(e){let t=this._provider;this._customShader.update(e);let n=e.context;if(!this._ready){Lxt(this,t,n),e.afterRender.push(()=>(this._ready=!0,!0));return}Oxt(this,e);let i=bCe(this,t),o=this._shape;if(i&&(this._shapeVisible=TCe(this,o,t),Bxt(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=kxt(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&qxt(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),Vxt(this,e)&&(this._shaderDirty=!0);let u=s.leafNodeTexture,f=this._uniforms;l(u)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=z.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(YB(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=Hxt(p,d,xxt);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;f.ndcSpaceAxisAlignedBoundingBox=oe.clone(g,f.ndcSpaceAxisAlignedBoundingBox);let x=n.uniformState.inverseView;f.transformPositionViewToUv=F.multiplyTransformation(this._transformPositionWorldToUv,x,f.transformPositionViewToUv);let b=n.uniformState.view;f.transformPositionUvToView=F.multiplyTransformation(b,this._transformPositionUvToWorld,f.transformPositionUvToView);let T=n.uniformState.inverseViewRotation;f.transformDirectionViewToLocal=$.multiply(this._transformDirectionWorldToLocal,T,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=$.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let C=e.camera.positionWC;f.cameraPositionUv=F.multiplyByPoint(this._transformPositionWorldToUv,C,f.cameraPositionUv),f.stepSize=this._stepSizeMultiplier;let A=e.passes.pick?this._drawCommandPick:e.passes.pickVoxel?this._drawCommandPickVoxel:this._drawCommand;A.boundingVolume=o.boundingSphere,e.commandList.push(A)};var Ixt=new h,aZ=new h,Pxt=new fe,Rxt=new h;function Oxt(e,t){if(e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e.shape===Ni.ELLIPSOID){let n=t.verticalExaggerationRelativeHeight,i=t.verticalExaggeration;e._exaggeratedMinBounds.z=(e._minBounds.z-n)*i+n,e._exaggeratedMaxBounds.z=(e._maxBounds.z-n)*i+n}else if(e.shape===Ni.BOX){let n=h.fromElements(1,1,t.verticalExaggeration,Ixt);e._exaggeratedModelMatrix=F.multiplyByScale(e._modelMatrix,n,e._exaggeratedModelMatrix),e._exaggeratedModelMatrix=F.multiplyByTranslation(e._exaggeratedModelMatrix,Mxt(e,t),e._exaggeratedModelMatrix)}}function Mxt(e,t){let{shapeTransform:n=F.IDENTITY,globalTransform:i=F.IDENTITY}=e._provider,o=F.getTranslation(n,aZ),r=F.multiplyByPoint(e._modelMatrix,o,aZ),s=F.multiplyByPoint(i,r,aZ),c=ee.WGS84.cartesianToCartographic(s,Pxt),u=0;l(c)&&(u=c.height);let f=Cr.getHeight(u,t.verticalExaggeration,t.verticalExaggerationRelativeHeight);return h.fromElements(0,0,(f-u)/t.verticalExaggeration,Rxt)}function Lxt(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=H.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=Ge(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=h.clone(t.dimensions,i.dimensions),e._paddingBefore=h.clone(y(t.paddingBefore,h.ZERO),e._paddingBefore),i.paddingBefore=h.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=h.clone(y(t.paddingAfter,h.ZERO),e._paddingBefore),i.paddingAfter=h.clone(e._paddingAfter,i.paddingAfter),e._traversal=Nxt(e,t,n),Fxt(e._traversal,i)}function bCe(e,t){let n=y(t.shapeTransform,F.IDENTITY),i=y(t.globalTransform,F.IDENTITY);return F.multiplyTransformation(i,e._exaggeratedModelMatrix,e._compoundModelMatrix),F.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),aC(e,"_compoundModelMatrix","_compoundModelMatrixOld")+aC(e,"_minBounds","_minBoundsOld")+aC(e,"_maxBounds","_maxBoundsOld")+aC(e,"_exaggeratedMinBounds","_exaggeratedMinBoundsOld")+aC(e,"_exaggeratedMaxBounds","_exaggeratedMaxBoundsOld")+aC(e,"_minClippingBounds","_minClippingBoundsOld")+aC(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function aC(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function TCe(e,t,n){if(!t.update(e._compoundModelMatrix,e._exaggeratedMinBounds,e._exaggeratedMaxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=F.inverse(o,Ext),s=F.getRotation(o,Cxt),a=F.getScale(o,bxt),c=h.maximumComponent(a),u=h.divideByScalar(a,c,Txt),f=$.multiplyByScale(s,u,Axt);return e._transformPositionWorldToUv=F.multiplyTransformation(wxt,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=F.multiplyTransformation(o,Dxt,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=F.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=$.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function Nxt(e,t,n){let i=h.clone(t.dimensions,gxt);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=l(o)?mv.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new mv(e,n,i,t.types,t.componentTypes,s,r)}function Fxt(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=z.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=z.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=z.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=z.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=z.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=z.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function Bxt(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=Ge(n,!0)),i}function kxt(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=Z.secondsDifference(i.stop,i.start),a=Z.secondsDifference(n,i.start)/r;return o+a}function Vxt(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=F.transpose(F.multiplyTransformation(F.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}lp.prototype.isDestroyed=function(){return!1};lp.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var xCe=new Array(new oe(-1,-1,-1,1),new oe(1,-1,-1,1),new oe(-1,1,-1,1),new oe(1,1,-1,1),new oe(-1,-1,1,1),new oe(1,-1,1,1),new oe(-1,1,1,1),new oe(1,1,1,1)),Uxt=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),zxt=new Array(new oe,new oe,new oe,new oe,new oe,new oe,new oe,new oe);function Hxt(e,t,n){let i=F.fromRotationTranslation(e.halfAxes,e.center,Sxt),o=F.multiply(t,i,vxt),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,u,f=zxt,d=xCe.length;for(u=0;u<d;u++)F.multiplyByVector(o,xCe[u],f[u]);for(u=0;u<d;u++){let p=f[u];if(p.z>=-p.w){let g=p.x/p.w,m=p.y/p.w;r=Math.min(r,g),s=Math.max(s,g),a=Math.min(a,m),c=Math.max(c,m)}else for(let g=0;g<3;g++){let m=Uxt[u*3+g],x=f[m];if(x.z>=-x.w){let b=p.z+p.w,T=x.z+x.w,C=b/(b-T),A=oe.lerp(p,x,C,yxt),E=A.x/A.w,v=A.y/A.w;r=Math.min(r,E),s=Math.max(s,E),a=Math.min(a,v),c=Math.max(c,v)}}}return r=P.clamp(r,-1,1),a=P.clamp(a,-1,1),s=P.clamp(s,-1,1),c=P.clamp(c,-1,1),n=oe.fromElements(r,a,s,c,n),n}var cZ=3e7,Gxt=new h(cZ,0,0),Wxt=new h(0,cZ,0),jxt=new h(0,0,cZ);function qxt(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,u,f,d){i.add({positions:[c,u],width:d,material:qi.fromType("Color",{color:f})})}function r(c,u,f){let d=c.computeCorners();o(d[0],d[1],u,f),o(d[2],d[3],u,f),o(d[4],d[5],u,f),o(d[6],d[7],u,f),o(d[0],d[2],u,f),o(d[4],d[6],u,f),o(d[1],d[3],u,f),o(d[5],d[7],u,f),o(d[0],d[4],u,f),o(d[2],d[6],u,f),o(d[1],d[5],u,f),o(d[3],d[7],u,f)}function s(c){if(!n.isRenderable(c))return;let u=c.level,d=Math.max(1,5/Math.pow(2,u)),g=[H.RED,H.LIME,H.BLUE][u%3];if(r(c.orientedBoundingBox,g,d),l(c.children))for(let m=0;m<8;m++)s(c.children[m])}r(e._shape.orientedBoundingBox,H.WHITE,5),s(n.rootNode);let a=10;o(h.ZERO,Gxt,H.RED,a),o(h.ZERO,Wxt,H.LIME,a),o(h.ZERO,jxt,H.BLUE,a),i.update(t)}lp.DefaultCustomShader=new sC({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material)
{
    material.diffuse = vec3(1.0);
    material.alpha = 1.0;
}`});function CCe(){this.ready=!0,this.shape=Ni.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[At.SCALAR],this.componentTypes=[zt.FLOAT32],this.maximumTileCount=1}CCe.prototype.requestData=function(e){if(!((l(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};lp.DefaultProvider=new CCe;var M0=lp;function Yxt(e,t,n,i){if(!l(e)||l(t)&&e.id!==t)return;let r=(e.classes||{})[n];if(!l(r))return;let a=(r.properties||{})[i];if(l(a))return a}var e3=Yxt;function Xxt(e,t,n,i){this.schemaId=e,this.className=t,this.propertyName=n,this.classProperty=i}var t3=Xxt;var mG=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function ci(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Ge(e.contextOptions),r=l(n),s=new aP(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)),l(i)||(i=t.parentNode),this._id=Hn(),this._jobScheduler=new O2,this._frameState=new P2(s,new x2(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 mw(s),this._ellipsoid=y(e.ellipsoid,ee.default),this._globe=void 0,this._globeTranslucencyState=new R2,this._primitives=new jl,this._groundPrimitives=new jl,this._globeHeight=void 0,this._globeHeightDirty=!0,this._cameraUnderground=!1,this._removeUpdateHeightCallback=void 0,this._logDepthBuffer=ci.defaultLogDepthBuffer&&s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new JT,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new w2(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ei({color:new H,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:Vt.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new bB(this),this._preUpdate=new me,this._postUpdate=new me,this._renderError=new me,this._preRender=new me,this._postRender=new me,this._minimumDisableDepthTestDistance=0,this._debugInspector=new IB,this._msaaSamples=y(e.msaaSamples,4),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new me,this.morphComplete=new me,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=H.clone(H.BLACK),this._mode=ne.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new vi(this._ellipsoid),this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,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.atmosphere=new _b,this.fog=new I2,this.fog.enabled=ee.WGS84.equals(this._ellipsoid),ee.WGS84.equals(this._ellipsoid)||(ro.DEFAULT_VIEW_RECTANGLE=re.fromDegrees(-45,-45,45,45)),this._shadowMapCamera=new ro(this),this.shadowMap=new mg({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=H.clone(H.WHITE),this._actualInvertClassificationColor=H.clone(this._invertClassificationColor),this._invertClassification=new sv,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new gB,this._brdfLutGenerator=new h2,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new EB(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,tu.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=ec.requestCompletedEvent.addEventListener(mG(this)),this._removeTaskProcessorListenerCallback=pi.taskCompletedEvent.addEventListener(mG(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new je(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new ro(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new ro(this),this.preloadFlightCullingVolume=void 0,this._picking=new X2(this),this._defaultView=new jT(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._specularEnvironmentCubeMap=void 0,this.light=new wp,wCe(this,0,Z.now()),this.updateFrameState(),this.initializeFrame()}ci.defaultLogDepthBuffer=!0;function Kxt(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(mG(e))),n.push(t.terrainProviderChanged.addEventListener(mG(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(ci.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 kt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return kt.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 zd.isSupported(this._context)}},ellipsoid:{get:function(){return this._ellipsoid}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Kxt(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(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(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===ne.SCENE2D?this.morphTo2D(0):e===ne.SCENE3D?this.morphTo3D(0):e===ne.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 ro(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new D2(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,kt.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}}});ci.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 Zxt(e,t){let n=e.pickedMetadataInfo,i=t.pickedMetadataInfo;return n?.schemaId!==i?.schemaId||n?.className!==i?.className||n?.propertyName!==i?.propertyName}function ACe(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,{lightShadowMaps:s,lightShadowsEnabled:a}=i.shadowState,c=t.derivedCommands;l(t.pickId)&&(c.picking=ep.createPickDerivedCommand(e,t,o,c.picking)),i.pickingMetadata&&t.pickMetadataAllowed&&(t.pickedMetadataInfo=i.pickedMetadataInfo,l(t.pickedMetadataInfo)&&(c.pickingMetadata=ep.createPickMetadataDerivedCommand(e,t,o,c.pickingMetadata))),t.pickOnly||(c.depth=ep.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=ep.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=mg.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===ve.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}ci.prototype.updateDerivedCommands=function(e){let{derivedCommands:t}=e;if(!l(t))return;let n=this._frameState,{shadowState:i,useLogDepth:o}=this._frameState,r=this._context,s=!1,a=i.lastDirtyTime;e.lastDirtyTime!==a&&(e.lastDirtyTime=a,e.dirty=!0,s=!0);let c=this._hdr,u=l(t.logDepth),f=l(t.hdr),d=l(t.originalCommand),p=o&&!u,g=c&&!f,m=(!o||!c)&&!d,x=n.pickingMetadata&&Zxt(e,n);if(e.dirty=e.dirty||p||g||m||x,!e.dirty)return;e.dirty=!1;let{shadowsEnabled:b,shadowMaps:T}=i;b&&e.castShadows&&(t.shadows=mg.createCastDerivedCommand(T,e,s,r,t.shadows)),(u||p)&&(t.logDepth=ep.createLogDepthCommand(e,r,t.logDepth),ACe(this,t.logDepth.command,s)),(d||m)&&ACe(this,e,s)};var $xt=new hd({pass:Fo.RENDER}),lZ=new hd({pass:Fo.PRELOAD}),uZ=new hd({pass:Fo.PRELOAD_FLIGHT}),Qxt=new hd({pass:Fo.REQUEST_RENDER_MODE_DEFER_CHECK}),ECe=new se,fZ;function Jxt(e){if(!(e._mode!==ne.SCENE3D||!e.globe?.show||e._cameraUnderground||e._globeTranslucencyState.translucent))return ECe.radius=e.ellipsoid.minimumRadius+e.frameState.minimumTerrainHeight,fZ=u2.fromBoundingSphere(ECe,e.camera.positionWC,fZ),fZ}ci.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.pickVoxel=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function wCe(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=Z.clone(n,i.time)}ci.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=Jxt(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof rn||this.camera.frustum instanceof Lr),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState;let{globe:n}=this;l(n)&&n._terrainExaggerationChanged&&(this.verticalExaggeration=n._terrainExaggeration,this.verticalExaggerationRelativeHeight=n._terrainExaggerationRelativeHeight,n._terrainExaggerationChanged=!1),t.verticalExaggeration=this.verticalExaggeration,t.verticalExaggerationRelativeHeight=this.verticalExaggerationRelativeHeight,l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready?(t.specularEnvironmentMaps=this._specularEnvironmentCubeMap.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentCubeMap.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=H.clone(this.invertClassificationColor,this._actualInvertClassificationColor),sv.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};ci.prototype.isVisible=function(e,t,n){if(!l(t))return!1;let{boundingVolume:i}=t;return!l(i)||!t.cull?!0:e.computeVisibility(i)===jt.OUTSIDE?!1:!l(n)||!t.occlude||!i.isOccluded(n)};var hG=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);hG=F.inverseTransformation(hG,hG);function ebt(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a=h.clone(s.center);if(o.mode!==ne.SCENE3D){a=F.multiplyByPoint(hG,a,a);let m=o.mapProjection,x=m.unproject(a);a=m.ellipsoid.cartographicToCartesian(x)}let c,u,{radius:f}=s;l(f)?(c=Qs.createGeometry(new Qs({radii:new h(f,f,f),vertexFormat:ln.FLAT_VERTEX_FORMAT})),u=F.fromTranslation(a)):(c=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:ln.FLAT_VERTEX_FORMAT})),u=F.fromRotationTranslation(s.halfAxes,a,new F)),t._debugVolume=new Dn({geometryInstances:new St({geometry:Ln.toWireframe(c),modelMatrix:u,attributes:{color:new Wt(1,0,0,1)}}),appearance:new ln({flat:!0,translucent:!1}),asynchronous:!1});let d=o.commandList,p=o.commandList=[];t._debugVolume.update(o),e=p[0],o.useLogDepth&&(e=ep.createLogDepthCommand(e,r).command);let g;l(i)&&(g=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(g)&&(n.framebuffer=g),o.commandList=d}function up(e,t,n,i){let o=t._frameState,r=t._context;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ei){e.execute(r,n);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&ebt(e,t,n,i),o.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=o.passes;if(!s.pick&&!s.pickVoxel&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth){if(o.pickingMetadata&&l(e.derivedCommands.pickingMetadata)){e=e.derivedCommands.pickingMetadata.pickMetadataCommand,e.execute(r,n);return}if(!o.pickingMetadata&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(r,n);return}}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(r,n);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,n);return}o.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(r,n):e.execute(r,n)}function SCe(e,t,n){let{derivedCommands:i}=e;if(!l(i))return;let o=t._frameState,r=t._context;o.useLogDepth&&l(i.logDepth)&&(e=i.logDepth.command);let{picking:s,pickingMetadata:a,depth:c}=e.derivedCommands;l(a)&&(e=i.pickingMetadata.pickMetadataCommand,e.execute(r,n)),l(s)?(e=s.pickCommand,e.execute(r,n)):l(c)&&(e=c.depthOnlyCommand,e.execute(r,n))}function DCe(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function tbt(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function nbt(e,t,n,i,o){ug(i,DCe,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function ibt(e,t,n,i,o){ug(i,tbt,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function obt(e,t,n){e.context.uniformState.updatePass(ve.VOXELS);let i=n.commands[ve.VOXELS];i.length=n.indices[ve.VOXELS],ug(i,DCe,e.camera.positionWC);for(let o=0;o<i.length;++o)up(i[o],e,t)}var rbt=new Si,sbt=new hl,abt=new rn,cbt=new Lr;function lbt(e){let{frustum:t}=e;return l(t.fov)?t.clone(rbt):l(t.infiniteProjectionMatrix)?t.clone(sbt):l(t.width)?t.clone(abt):t.clone(cbt)}function ubt(e){if(e._environmentState.useOIT){if(!l(e._executeOITFunction)){let{view:t,context:n}=e;e._executeOITFunction=function(i,o,r,s,a){t.globeDepth.prepareColorTextures(n),t.oit.executeCommands(i,o,r,s,a)}}return e._executeOITFunction}return e.frameState.passes.render?nbt:ibt}function fbt(e,t,n){let{frameState:i,context:o}=e,{pick:r,pickVoxel:s}=i.passes,a=r||s,c;!a&&e._environmentState.useInvertClassification&&i.invertClassificationColor.alpha<1&&(c=e._invertClassification);let u=ubt(e);o.uniformState.updatePass(ve.TRANSLUCENT);let f=n.commands[ve.TRANSLUCENT];f.length=n.indices[ve.TRANSLUCENT],u(e,up,t,f,c)}function dbt(e,t,n){let{translucentTileClassification:i,globeDepth:o}=e._view;if(!(n.indices[ve.CESIUM_3D_TILE_CLASSIFICATION]>0)||!i.isSupported())return;let s=n.commands[ve.TRANSLUCENT];i.executeTranslucentCommands(e,up,t,s,o.depthStencilTexture),i.executeClassificationCommands(e,up,t,n)}function hZ(e,t){let{camera:n,context:i,frameState:o}=e,{uniformState:r}=i;r.updateCamera(n);let s=lbt(n);s.near=n.frustum.near,s.far=n.frustum.far;let a=o.passes,c=a.pick||a.pickVoxel;c||hbt(e,t);let{clearGlobeDepth:u,renderTranslucentDepthForPick:f,useDepthPlane:d,useGlobeDepthFramebuffer:p,useInvertClassification:g,usePostProcessSelected:m}=e._environmentState,{globeDepth:x,globeTranslucencyFramebuffer:b,sceneFramebuffer:T,frustumCommandsList:C}=e._view,A=C.length,E=e._globeTranslucencyState,v=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,R=e._depthPlane,M=n.position.z;function N(S,w){r.updatePass(w);let I=S.commands[w],L=S.indices[w];for(let B=0;B<L;++B)up(I[B],e,t);return L}function _(S,w){r.updatePass(w);let I=S.commands[w],L=S.indices[w];for(let B=0;B<L;++B)SCe(I[B],e,t)}for(let S=0;S<A;++S){let w=A-S-1,I=C[w];e.mode===ne.SCENE2D?(n.position.z=M-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),v.execute(i,t),i.stencilBuffer&&D.execute(i,t),E.translucent?(r.updatePass(ve.GLOBE),E.executeGlobeCommands(I,up,b,e,t)):N(I,ve.GLOBE),p&&x.executeCopyDepth(i,t),f||(E.translucent?(r.updatePass(ve.TERRAIN_CLASSIFICATION),E.executeGlobeClassificationCommands(I,up,b,e,t)):N(I,ve.TERRAIN_CLASSIFICATION)),u&&(v.execute(i,t),d&&R.execute(i,t));let L;if(!g||c||f)L=N(I,ve.CESIUM_3D_TILE),L>0&&(p&&(x.prepareColorTextures(i,u),x.executeUpdateDepth(i,t,x.depthStencilTexture)),f||(L=N(I,ve.CESIUM_3D_TILE_CLASSIFICATION)));else{e._invertClassification.clear(i,t);let U=t.framebuffer;t.framebuffer=e._invertClassification._fbo.framebuffer,L=N(I,ve.CESIUM_3D_TILE),p&&(e._invertClassification.prepareTextures(i),x.executeUpdateDepth(i,t,e._invertClassification._fbo.getDepthStencilTexture())),L=N(I,ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),t.framebuffer=U,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),L>0&&i.stencilBuffer&&O.execute(i,t),L=N(I,ve.CESIUM_3D_TILE_CLASSIFICATION)}if(L>0&&i.stencilBuffer&&D.execute(i,t),obt(e,t,I),N(I,ve.OPAQUE),w!==0&&e.mode!==ne.SCENE2D&&(s.near=I.near,r.updateFrustum(s)),fbt(e,t,I),dbt(e,t,I),i.depthTexture&&e.useDepthPicking&&(p||f)){let U=e._picking.getPickDepth(e,w);U.update(i,x.depthStencilTexture),U.executeCopyDepth(i,t)}if(c||!m)continue;let B=t.framebuffer;t.framebuffer=T.getIdFramebuffer(),s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),E.translucent?(r.updatePass(ve.GLOBE),E.executeGlobeCommands(I,SCe,b,e,t)):_(I,ve.GLOBE),u&&(v.framebuffer=t.framebuffer,v.execute(i,t),v.framebuffer=void 0),u&&d&&R.execute(i,t),_(I,ve.CESIUM_3D_TILE),_(I,ve.OPAQUE),_(I,ve.TRANSLUCENT),t.framebuffer=B}}function hbt(e,t){let{context:n,environmentState:i,view:o}=e;if(n.uniformState.updatePass(ve.ENVIRONMENT),l(i.skyBoxCommand)&&up(i.skyBoxCommand,e,t),i.isSkyAtmosphereVisible&&up(i.skyAtmosphereCommand,e,t),i.isSunVisible&&(i.sunDrawCommand.execute(n,t),e.sunBloom&&!i.useWebVR)){let r;i.useGlobeDepthFramebuffer?r=o.globeDepth.framebuffer:i.usePostProcess?r=o.sceneFramebuffer.framebuffer:r=i.originalFramebuffer,e._sunPostProcess.execute(n),e._sunPostProcess.copy(n,r),t.framebuffer=r}i.isMoonVisible&&i.moonCommand.execute(n,t)}function ICe(e){e.context.uniformState.updatePass(ve.COMPUTE);let t=e._environmentState.sunComputeCommand;l(t)&&t.execute(e._computeEngine);let n=e._computeCommandList;for(let i=0;i<n.length;++i)n[i].execute(e._computeEngine)}function mbt(e,t){e.context.uniformState.updatePass(ve.OVERLAY);let n=e.context,i=e._overlayCommandList;for(let o=0;o<i.length;++o)i[o].execute(n,t)}function pbt(e,t,n){let{shadowMapCullingVolume:i,isPointLight:o,passes:r}=n,s=r.length,a=[ve.GLOBE,ve.CESIUM_3D_TILE,ve.OPAQUE,ve.TRANSLUCENT];for(let c=0;c<t.length;++c){let u=t[c];if(e.updateDerivedCommands(u),!(!u.castShadows||a.indexOf(u.pass)<0||!e.isVisible(i,u)))if(o)for(let f=0;f<s;++f)r[f].commandList.push(u);else if(s===1)r[0].commandList.push(u);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(p,u))r[d].commandList.push(u),f=!0;else if(f)break}}}}function PCe(e){let{shadowState:t,commandList:n}=e.frameState,{shadowsEnabled:i,shadowMaps:o}=t;if(!i)return;let{context:r}=e,{uniformState:s}=r;for(let a=0;a<o.length;++a){let c=o[a];if(c.outOfView)continue;let{passes:u}=c;for(let f=0;f<u.length;++f)u[f].commandList.length=0;pbt(e,n,c);for(let f=0;f<u.length;++f){let d=c.passes[f],{camera:p,commandList:g}=d;s.updateCamera(p),c.updatePass(r,f);for(let m=0;m<g.length;++m){let x=g[m];s.updatePass(x.pass);let b=x.derivedCommands.shadows.castCommands[a];up(b,e,d.passState)}}}}var _bt=new h;ci.prototype.updateAndExecuteCommands=function(e,t){Ibt(this,e,t),this._environmentState.useWebVR?gbt(this,e,t):this._frameState.mode!==ne.SCENE2D||this._mapMode2D===tu.ROTATE?L0(!0,this,e):vbt(this,e)};function gbt(e,t){let n=e._view,i=n.camera,r=e._environmentState.renderTranslucentDepthForPick;RCe(e),n.createPotentiallyVisibleSet(e),ICe(e),r||PCe(e);let s=t.viewport;s.x=0,s.y=0,s.width=s.width*.5;let a=ro.clone(i,e._cameraVR);a.frustum=i.frustum;let c=i.frustum.near,u=c*y(e.focalLength,5),f=y(e.eyeSeparation,u/30),d=h.multiplyByScalar(a.right,f*.5,_bt);i.frustum.aspectRatio=s.width/s.height;let p=.5*f*c/u;h.add(a.position,d,i.position),i.frustum.xOffset=p,hZ(e,t),s.x=s.width,h.subtract(a.position,d,i.position),i.frustum.xOffset=-p,hZ(e,t),ro.clone(a,i)}var ybt=new fe(Math.PI,P.PI_OVER_TWO),xbt=new h,bbt=new h,Tbt=new F,Cbt=new F,Abt=new h,Ebt=new h,Sbt=new je;function vbt(e,t){let{frameState:n,camera:i}=e,{uniformState:o}=e.context,r=t.viewport,s=je.clone(r,Sbt);t.viewport=s;let a=ybt,c=xbt;e.mapProjection.project(a,c);let f=h.clone(i.position,bbt),d=F.clone(i.transform,Cbt),p=i.frustum.clone();i._setTransform(F.IDENTITY);let g=F.computeViewportTransformation(s,0,1,Tbt),m=i.frustum.projectionMatrix,x=i.positionWC.y,b=h.fromElements(P.sign(x)*c.x-x,0,-i.positionWC.x,Abt),T=Mt.pointToGLWindowCoordinates(m,g,b,Ebt);T.x=Math.floor(T.x);let C=s.x,A=s.width;if(x===0||T.x<=C||T.x>=C+A)L0(!0,e,t);else if(Math.abs(C+A*.5-T.x)<1)s.width=T.x-s.x,i.position.x*=P.sign(i.position.x),i.frustum.right=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!0,e,t),s.x=T.x,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!1,e,t);else if(T.x>C+A*.5){s.width=T.x-C;let E=i.frustum.right;i.frustum.right=c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!0,e,t),s.x=T.x,s.width=C+A-T.x,i.position.x=-i.position.x,i.frustum.left=-i.frustum.right,i.frustum.right=E-i.frustum.right*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!1,e,t)}else{s.x=T.x,s.width=C+A-T.x;let E=i.frustum.left;i.frustum.left=-c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!0,e,t),s.x=C,s.width=T.x-C,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=E-i.frustum.left*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!1,e,t)}i._setTransform(d),h.clone(f,i.position),i.frustum=p.clone(),t.viewport=r}function L0(e,t,n){let i=t._view,{renderTranslucentDepthForPick:o}=t._environmentState;e||(t.frameState.commandList.length=0),RCe(t),i.createPotentiallyVisibleSet(t),e&&(ICe(t),o||PCe(t)),hZ(t,n)}var vCe=new ps;ci.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.atmosphere,s=this.skyAtmosphere,a=this.globe,c=this._globeTranslucencyState;if(!i||this._mode!==ne.SCENE2D&&t.camera.frustum instanceof rn||!c.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{if(l(s)){if(l(a))s.setDynamicLighting(t_.fromGlobeFlags(a)),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!a.show||a._surface._tilesToRender.length>0;else{let T=r.dynamicLighting;s.setDynamicLighting(T),n.isReadyForAtmosphere=!0}n.skyAtmosphereCommand=s.update(e,a),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)}else n.skyAtmosphereCommand=void 0;n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let b=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(b)?b.drawCommand:void 0,n.sunComputeCommand=l(b)?b.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let u=n.clearGlobeDepth=l(a)&&a.show&&(!a.depthTestAgainstTerrain||this.mode===ne.SCENE2D);(n.useDepthPlane=u&&this.mode===ne.SCENE3D&&c.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ne.SCENE2D&&!o;let d=e.mode===ne.SCENE3D&&!c.sunVisibleThroughGlobe?e.occluder:void 0,p=e.cullingVolume,g=vCe.planes;for(let b=0;b<5;++b)g[b]=p.planes[b];p=vCe,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(p,n.sunDrawCommand,d),n.isMoonVisible=this.isVisible(p,n.moonCommand,d);let m=this.specularEnvironmentMaps,x=this._specularEnvironmentCubeMap;l(m)&&x?.url!==m?(x=x&&x.destroy(),this._specularEnvironmentCubeMap=new zd(m)):!l(m)&&l(x)&&(x.destroy(),this._specularEnvironmentCubeMap=void 0),l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.update(e)};function wbt(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Jm({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function Dbt(e){let t=e._frameState,{passes:n,shadowState:i,shadowMaps:o}=t,r=o.length,s=r>0&&!n.pick&&!n.pickVoxel&&e.mode===ne.SCENE3D;if(s!==i.shadowsEnabled&&(++i.lastDirtyTime,i.shadowsEnabled=s),i.lightShadowsEnabled=!1,!!s){for(let a=0;a<r;++a)if(o[a]!==i.shadowMaps[a]){++i.lastDirtyTime;break}i.shadowMaps.length=0,i.lightShadowMaps.length=0;for(let a=0;a<r;++a){let c=o[a];c.update(t),i.shadowMaps.push(c),c.fromLightSource&&(i.lightShadowMaps.push(c),i.lightShadowsEnabled=!0),c.dirty&&(++i.lastDirtyTime,c.dirty=!1)}}}function RCe(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),wbt(e),Dbt(e),e._globe&&e._globe.render(t)}function Ibt(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,a=o.passes,c=a.pick||a.pickVoxel;l(s.globeDepth)&&(s.globeDepth.picking=c);let u=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!u?e._sunPostProcess=new wB:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;H.clone(n,f.color),f.execute(i,t);let d=r.useGlobeDepthFramebuffer=l(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&&l(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&&!u?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification){let T;if(o.invertClassificationColor.alpha===1&&d&&(T=s.globeDepth.framebuffer),l(T)||i.depthTexture){if(e._invertClassification.previousFramebuffer=T,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),o.invertClassificationColor.alpha<1&&g){let C=e._invertClassification.unclassifiedCommand,A=C.derivedCommands;A.oit=p.createDerivedCommands(C,i,A.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}ci.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,{globeDepth:o,translucentTileClassification:r}=i;l(o)&&o.prepareColorTextures(t);let{useOIT:s,useGlobeDepthFramebuffer:a,usePostProcess:c,originalFramebuffer:u}=n,f=a?o.colorFramebufferManager:void 0,d=i.sceneFramebuffer._colorFramebuffer,p=i.sceneFramebuffer.idFramebuffer;if(s&&(e.framebuffer=c?d.framebuffer:u,i.oit.execute(t,e)),r.hasTranslucentDepth&&r.isSupported()&&r.execute(this,e),c){i.sceneFramebuffer.prepareColorTextures(t);let g=d;a&&!s&&(g=f);let m=this.postProcessStages,x=g.getColorTexture(0),b=p.getColorTexture(0),T=y(f,d).getDepthStencilTexture();m.execute(t,x,T,b),m.copy(t,u)}!s&&!c&&a&&(e.framebuffer=u,o.executeCopyColor(t,e))};function Pbt(e){let t=e._frameState.afterRender;for(let n=0;n<t.length;++n)t[n]()&&e.requestRender();t.length=0}function Rbt(e){if(e.mode===ne.MORPHING)return;let t=e.camera.positionCartographic;return e.getHeight(t)}ci.prototype.getHeight=function(e,t){if(!l(e))return;let n=t===Ye.CLAMP_TO_TERRAIN||t===Ye.RELATIVE_TO_TERRAIN,i=t===Ye.CLAMP_TO_3D_TILE||t===Ye.RELATIVE_TO_3D_TILE;if(!l(e))return;let o=Number.NEGATIVE_INFINITY;if(!n){let s=this.primitives.length;for(let a=0;a<s;++a){let c=this.primitives.get(a);if(!c.isCesium3DTileset||!c.show||!c.enableCollision)continue;let u=c.getHeight(e,this);l(u)&&u>o&&(o=u)}}let r=this._globe;if(!i&&l(r)&&r.show){let s=r.getHeight(e);s>o&&(o=s)}if(o>Number.NEGATIVE_INFINITY)return o};var dZ=new fe;ci.prototype.updateHeight=function(e,t,n){let i=()=>{fe.clone(e,dZ);let g=this.getHeight(e,n);l(g)&&(dZ.height=g,t(dZ))},o=n===Ye.CLAMP_TO_TERRAIN||n===Ye.RELATIVE_TO_TERRAIN,r=n===Ye.CLAMP_TO_3D_TILE||n===Ye.RELATIVE_TO_3D_TILE,s;!r&&l(this.globe)&&(s=this.globe._surface.updateHeight(e,i));let a={},c=this._ellipsoid,u=g=>{if(o||g.isDestroyed()||!g.isCesium3DTileset)return;let m=g.updateHeight(e,i,c);a[g.id]=m};if(!o){let g=this.primitives.length;for(let m=0;m<g;++m){let x=this.primitives.get(m);u(x)}}let f=this.primitives.primitiveAdded.addEventListener(u),d=this.primitives.primitiveRemoved.addEventListener(g=>{g.isDestroyed()||!g.isCesium3DTileset||(l(a[g.id])&&a[g.id](),delete a[g.id])});return()=>{s=s&&s(),Object.values(a).forEach(g=>g()),a={},f(),d()}};function Obt(e){let t=e.camera,n=e._mode,i=e._screenSpaceCameraController,o=t.positionCartographic;if(!l(o))return!1;if(!i.onMap()&&o.height<0)return!0;if(n===ne.SCENE2D||n===ne.MORPHING)return!1;let r=e._globeHeight;return l(r)&&o.height<r}ci.prototype.initializeFrame=function(){if(this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeightDirty){l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),this._globeHeight=Rbt(this),this._globeHeightDirty=!1;let e=this.camera.positionCartographic;this._removeUpdateHeightCallback=this.updateHeight(e,t=>{this.isDestroyed()||(this._globeHeight=t.height)})}this._cameraUnderground=Obt(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function Mbt(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new fg({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function Lbt(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function Nbt(e){e.primitives.postPassesUpdate(e._frameState),ec.update()}var Fbt=new H;function Bbt(e){let t=e._frameState,n=e.context,{uniformState:i}=n,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=$xt;let r=y(e.backgroundColor,H.BLACK);e._hdr&&(r=H.clone(r,Fbt),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,t.atmosphere=e.atmosphere,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof wp?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=je.clone(a,c.viewport),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,mbt(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function cC(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function kbt(e){return e._picking.updateMostDetailedRayPicks(e)}ci.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=Z.now());let n=this._view.checkForCameraUpdates(this);n&&(this._globeHeightDirty=!0);let i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ne.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(Z.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=Z.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=P.incrementWrap(t.frameNumber,15e6,1);wCe(this,o,e),t.newFrame=!0}cC(this,Lbt),this.primitives.show&&(cC(this,kbt),cC(this,Vbt),cC(this,Ubt),i||cC(this,zbt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),cC(this,Bbt)),Mbt(this,i),cC(this,Nbt),Pbt(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};ci.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};ci.prototype.requestRender=function(){this._renderRequested=!0};ci.prototype.clampLineWidth=function(e){return Math.max(kt.minimumAliasedLineWidth,Math.min(e,kt.maximumAliasedLineWidth))};ci.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};ci.prototype.pickVoxel=function(e,t,n){let i=this.pick(e,t,n);if(!l(i))return;let o=i.primitive;if(!(o instanceof M0))return;let r=this._picking.pickVoxelCoordinate(this,e,t,n),s=255*r[0]+r[1],a=o._traversal.findKeyframeNode(s);if(!l(a))return;let c=255*r[2]+r[3];return PB.fromKeyframeNode(o,s,c,a)};ci.prototype.pickMetadata=function(e,t,n,i){let o=this.pick(e);if(!l(o))return;let r=o.detail?.model?.structuralMetadata?.schema,s=e3(r,t,n,i);if(!l(s))return;let a=new t3(t,n,i,s);return this._picking.pickMetadata(this,e,a)};ci.prototype.pickMetadataSchema=function(e){let t=this.pick(e);return l(t)?t.detail?.model?.structuralMetadata?.schema:void 0};ci.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};ci.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};ci.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function Vbt(e){let t=e._frameState;lZ.camera=t.camera,lZ.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,lZ)}function Ubt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;uZ.camera=e.preloadFlightCamera,uZ.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,uZ)}function zbt(e){e.primitives.updateForPass(e._frameState,Qxt)}ci.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};ci.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};ci.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};ci.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};ci.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};ci.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};ci.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};ci.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};ci.prototype.cartesianToCanvasCoordinates=function(e,t){return Ui.worldToWindowCoordinates(this,e,t)};ci.prototype.completeMorph=function(){this._transitioner.completeMorph()};ci.prototype.morphTo2D=function(e){e=y(e,2),this._transitioner.morphTo2D(e,this._ellipsoid)};ci.prototype.morphToColumbusView=function(e){e=y(e,2),this._transitioner.morphToColumbusView(e,this._ellipsoid)};ci.prototype.morphTo3D=function(e){e=y(e,2),this._transitioner.morphTo3D(e,this._ellipsoid)};function Hbt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}ci.prototype.setTerrain=function(e){return Hbt(this,e),e};ci.prototype.isDestroyed=function(){return!1};ci.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(),l(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,l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),ue(this)};var n3=ci;var gv=`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);
}

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;

    // Adjustment to the atmosphere radius applied based on the camera height.
    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);

    // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit
    // for the position on the ellipsoid.
    float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust;
    float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust;

    // Setup the primary ray: from the camera position to the vertex position.
    vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC;
    vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC);
    czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection);

    underTranslucentGlobe = 0.0;

    // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled.
    #if defined(GLOBE_TRANSLUCENT)

        // Check for intersection with the inner radius of the atmopshere.
        czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust);
        if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) {

            // Compute position on globe.
            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);

            // Control the color using the camera angle.
            float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth));

            // Control the opacity using the distance from Earth.
            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);

            // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton.
            underTranslucentGlobe = 1.0;
            return;
        }
    #endif

    computeScattering(
        primaryRay,
        length(cameraToPositionWC),
        lightDirection,
        atmosphereInnerRadius,
        rayleighColor,
        mieColor,
        opacity
    );

    // Alter the opacity based on how close the viewer is to the ground.
    // (0.0 = At edge of atmosphere, 1.0 = On ground)
    float cameraHeight = czm_eyeHeight + atmosphereInnerRadius;
    float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS;
    opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0);

    // Alter alpha based on time of day (0.0 = night , 1.0 = day)
    float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0;
    opacity *= pow(nightAlpha, 0.5);
}
`;var i3=`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)
{
    float lightEnum = u_radiiAndDynamicAtmosphereColor.z;
    vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_outerPositionWC, lightEnum);

    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_pbrNeutralTonemapping(color.rgb);
        color.rgb = czm_inverseGamma(color.rgb);
    #endif

    #ifdef COLOR_CORRECT
        const bool ignoreBlackPixels = true;
        color.rgb = czm_applyHSBShift(color.rgb, u_hsbShift, ignoreBlackPixels);
    #endif

    // For the parts of the sky atmosphere that are not behind a translucent globe,
    // we mix in the default opacity so that the sky atmosphere still appears at distance.
    // This is needed because the opacity in the sky atmosphere is initially adjusted based
    // on the camera height.
    if (translucent == 0.0) {
        color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime);
    }

    out_FragColor = color;
}
`;var o3=`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;
    float lightEnum = u_radiiAndDynamicAtmosphereColor.z;
    vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC.xyz, lightEnum);

    #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 yv(e){e=y(e,ee.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=F.fromScale(n),this._modelMatrix=new F,this._command=new Ze({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(yv.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});yv.prototype.setDynamicLighting=function(e){this._radiiAndDynamicAtmosphereColor.z=e};var mZ=new F;yv.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ne.SCENE3D&&n!==ne.MORPHING||!e.passes.render)return;let i=F.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,mZ),o=F.multiplyTransformation(i,Oo.Y_UP_TO_Z_UP,mZ),r=F.multiply(this._scaleMatrix,o,mZ);F.clone(r,this._modelMatrix);let s=e.context,a=Gbt(this),c=e.globeTranslucencyState.translucent,u=this.perFragmentAtmosphere||c||!l(t)||!t.show,f=this._command;if(!l(f.vertexArray)){let p=Qs.createGeometry(new Qs({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Ie.POSITION_ONLY}));f.vertexArray=ti.fromGeometry({context:s,geometry:p,attributeLocations:Ln.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),f.renderState=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let d=a|u<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),u&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new Ue({defines:p,sources:[Zd,gv,o3]}),m=new Ue({defines:p,sources:[Zd,gv,i3]});this._spSkyAtmosphere=Qt.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:m}),f.shaderProgram=this._spSkyAtmosphere}return f};function Gbt(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}yv.prototype.isDestroyed=function(){return!1};yv.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var r3=yv;var s3=`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 a3=`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 bv(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new Ze({modelMatrix:F.clone(F.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}bv.prototype.update=function(e,t){let n=this,{mode:i,passes:o,context:r}=e;if(!this.show||i!==ne.SCENE3D&&i!==ne.MORPHING||!o.render)return;if(this._sources!==this.sources){this._sources=this.sources;let a=this.sources;typeof a.positiveX=="string"?dP(r,this._sources).then(function(c){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=c}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new br({context:r,source:a}))}let s=this._command;if(!l(s.vertexArray)){s.uniformMap={u_cubeMap:function(){return n._cubeMap}};let a=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY})),c=this._attributeLocations=Ln.createAttributeLocations(a);s.vertexArray=ti.fromGeometry({context:r,geometry:a,attributeLocations:c,bufferUsage:Fe.STATIC_DRAW}),s.renderState=Ve.fromCache({blending:un.ALPHA_BLEND})}if(!l(s.shaderProgram)||this._useHdr!==t){let a=new Ue({defines:[t?"HDR":""],sources:[s3]});s.shaderProgram=Qt.fromCache({context:r,vertexShaderSource:a3,fragmentShaderSource:a,attributeLocations:this._attributeLocations}),this._useHdr=t}if(l(this._cubeMap))return s};bv.prototype.isDestroyed=function(){return!1};bv.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(),ue(this)};function xv(e){return nn(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}bv.createEarthSkyBox=function(){return new bv({sources:{positiveX:xv("px"),negativeX:xv("mx"),positiveY:xv("py"),negativeY:xv("my"),positiveZ:xv("pz"),negativeZ:xv("mz")}})};var c3=bv;var l3=`uniform sampler2D u_texture;

in vec2 v_textureCoordinates;

void main()
{
    vec4 color = texture(u_texture, v_textureCoordinates);
    out_FragColor = czm_gammaCorrect(color);
}
`;var u3=`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);

    // The following loop has been manually unrolled for speed, to
    // avoid sin() and cos().
    //
    //for (float i = 0.4; i < 3.2; i += 1.047) {
    //    vec2 direction = vec2(sin(i), cos(i));
    //    burst += 0.4 * addBurst(position, direction, lengthScalar);
    //
    //    direction = vec2(sin(i - 0.08), cos(i - 0.08));
    //    burst += 0.3 * addBurst(position, direction, lengthScalar);
    //}

    burst += 0.4 * addBurst(position, vec2(0.38942,  0.92106), lengthScalar);  // angle == 0.4
    burst += 0.4 * addBurst(position, vec2(0.99235,  0.12348), lengthScalar);  // angle == 0.4 + 1.047
    burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar);  // angle == 0.4 + 1.047 * 2.0

    burst += 0.3 * addBurst(position, vec2(0.31457,  0.94924), lengthScalar);  // angle == 0.4 - 0.08
    burst += 0.3 * addBurst(position, vec2(0.97931,  0.20239), lengthScalar);  // angle == 0.4 + 1.047 - 0.08
    burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar);  // angle == 0.4 + 1.047 * 2.0 - 0.08

    // End of manual loop unrolling.

    color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15;

    out_FragColor = clamp(color, vec4(0.0), vec4(1.0));
}
`;var f3=`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 h3(){this.show=!0,this._drawCommand=new Ze({primitiveType:Me.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(h3.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var Wbt=new z,jbt=new z,qbt=new oe,d3=new oe;h3.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ne.SCENE2D||i===ne.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(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 E=Math.max(r,s);E=Math.pow(2,Math.ceil(Math.log(E)/Math.log(2))-2),E=Math.max(1,E);let v=n?o.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._texture=new Pt({context:o,width:E,height:E,pixelFormat:Je.RGBA,pixelDatatype:v}),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 Nc({fragmentShaderSource:u3,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let E={direction:0},v=new Uint8Array(4*2);v[0]=0,v[1]=0,v[2]=255,v[3]=0,v[4]=255,v[5]=255,v[6]=0,v[7]=255;let D=_t.createVertexBuffer({context:o,typedArray:v,usage:Fe.STATIC_DRAW}),O=[{index:E.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],R=_t.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});a.vertexArray=new ti({context:o,attributes:O,indexBuffer:R}),a.shaderProgram=Qt.fromCache({context:o,vertexShaderSource:f3,fragmentShaderSource:l3,attributeLocations:E}),a.renderState=Ve.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,u=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;h.clone(c,f.center),d.center.x=u.z,d.center.y=u.x,d.center.z=u.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===ne.SCENE3D?se.clone(f,a.boundingVolume):i===ne.COLUMBUS_VIEW&&se.clone(d,a.boundingVolume);let p=Ui.computeActualEllipsoidPosition(e,c,d3),g=h.magnitude(h.subtract(p,e.camera.position,d3)),m=o.uniformState.projection,x=qbt;x.x=0,x.y=0,x.z=-g,x.w=1;let b=F.multiplyByVector(m,x,d3),T=Ui.clipToGLWindowCoordinates(t.viewport,b,Wbt);x.x=P.SOLAR_RADIUS;let C=F.multiplyByVector(m,x,d3),A=Ui.clipToGLWindowCoordinates(t.viewport,C,jbt);return this._size=z.magnitude(z.subtract(A,T,d3)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};h3.prototype.isDestroyed=function(){return!1};h3.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(),ue(this)};var m3=h3;var LCe=Vo(tV(),1);function Ybt(e,t,n){return`    float clipDistance = clip(gl_FragCoord, ${e}, ${t}); 
    vec4 clippingPlanesEdgeColor = vec4(1.0); 
    clippingPlanesEdgeColor.rgb = ${n}.rgb; 
    float clippingPlanesEdgeWidth = ${n}.a; 
    if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) 
    { 
        out_FragColor = clippingPlanesEdgeColor;
    } 
`}var p3=Ybt;var Xbt={modifyFragmentShader:function(t){return t=Ue.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; 
void main() 
{ 
#ifndef SHADOW_MAP
    if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; 
    if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; 
#endif
    czm_splitter_main(); 
} 
`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},Tv=Xbt;var lC={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function _3(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=H.clone(H.DARKGRAY),this._highlightColor=H.clone(H.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=lC.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,ve.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=F.clone(F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.time=0,this.shadows=yn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,Nr.NONE),this._splittingEnabled=!1,this._error=void 0,Kbt(this,e)}Object.defineProperties(_3.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return H.clone(this._highlightColor)},set:function(e){this._highlightColor=H.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=se.clone(e,this._boundingSphere)}}});function Kbt(e,t){let n=Eb.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=Gp.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=lC.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=H.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var Zbt=new h,$bt=new h,Qbt=new h,OCe,pG;function Jbt(e){if(!l(pG)){OCe=new LCe.default(0),pG=new Array(e);for(let t=0;t<e;++t)pG[t]=OCe.random()}return pG}function eTt(e){let n=e.length/3,i=Math.min(n,20),o=Jbt(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,Zbt),c=h.fromElements(s,s,s,$bt);for(let f=0;f<i;++f){let d=Math.floor(o[f]*n),p=h.unpack(e,d*3,Qbt);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let u=se.fromCornerPoints(a,c);return u.radius+=P.EPSILON2,u}function MCe(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(xt("Cast pnts property to floats",`Point cloud property "${t}" 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.`),new Float32Array(e)):e}var tTt=new oe,nTt=new oe,iTt=new H,NCe=0,_G=1,xZ=2,FCe=3,oTt=4,pZ=new F,rTt=new F;function sTt(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,u=i.styleableProperties,f=l(u),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,m=e._isOctEncodedDraco,x=e._quantizedRange,b=e._octEncodedRange,T=e._isRGB565,C=e._isTranslucent,A=e._hasColors,E=e._hasNormals,v=e._hasBatchIds,D,O,R=[],M={};if(e._styleableShaderAttributes=M,f){let V=oTt;for(let G in u)if(u.hasOwnProperty(G)){let k=u[G],W=MCe(k.typedArray,G);D=k.componentCount,O=X.fromTypedArray(W);let q=_t.createVertexBuffer({context:n,typedArray:W,usage:Fe.STATIC_DRAW});e._geometryByteLength+=q.sizeInBytes;let J={index:V,vertexBuffer:q,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0};R.push(J),M[G]={location:V,componentCount:D},++V}}let N=_t.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=N.sizeInBytes;let _;A&&(_=_t.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let S;E&&(S=_t.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=S.sizeInBytes);let w;v&&(c.typedArray=MCe(c.typedArray,"batchIds"),w=_t.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=w.sizeInBytes);let I=[];if(d?O=X.UNSIGNED_SHORT:p?O=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:O=X.FLOAT,I.push({index:NCe,vertexBuffer:N,componentsPerAttribute:3,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=se.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=eTt(r.typedArray)),A)if(T)I.push({index:_G,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let V=C?4:3;I.push({index:_G,vertexBuffer:_,componentsPerAttribute:V,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}E&&(g?(D=2,O=X.UNSIGNED_BYTE):m?(D=2,O=b<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,O=X.FLOAT),I.push({index:xZ,vertexBuffer:S,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0})),v&&I.push({index:FCe,vertexBuffer:w,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(I=I.concat(R));let L=new ti({context:n,attributes:I}),B={depthTest:{enabled:!0}},U={depthTest:{enabled:!0},depthMask:!1,blending:un.ALPHA_BLEND};e._opaquePass===ve.CESIUM_3D_TILE&&(B.stencilTest=Vt.setCesium3DTileBit(),B.stencilMask=Vt.CESIUM_3D_TILE_MASK,U.stencilTest=Vt.setCesium3DTileBit(),U.stencilMask=Vt.CESIUM_3D_TILE_MASK),e._opaqueRenderState=Ve.fromCache(B),e._translucentRenderState=Ve.fromCache(U),e._drawCommand=new Ze({boundingVolume:new se,cull:e._cull,modelMatrix:new F,primitiveType:Me.POINTS,vertexArray:L,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:C?e._translucentRenderState:e._opaqueRenderState,pass:C?ve.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function aTt(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=tTt;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,u;t.mode===ne.SCENE2D||c instanceof rn?u=Number.POSITIVE_INFINITY:u=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=u}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return H.TRANSPARENT;let c=H.clone(a.edgeColor,iTt);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return F.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);F.multiply(n.uniformState.view3D,c,pZ);let u=F.multiply(pZ,a.modelMatrix,pZ);return F.inverseTranspose(u,rTt)}};Tv.addUniforms(e,s),(i||o||r)&&(s=yt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=nTt;if(l(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function _Z(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function gZ(e,t){e=e.slice(e.indexOf(`
`));let n=/czm_3dtiles_builtin_property_(\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 yZ(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var cTt={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function lTt(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,u=e._isQuantizedDraco,f=e._isOctEncoded16P,d=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,m=e._hasColors,x=e._hasNormals,b=e._hasBatchIds,T=e._backFaceCulling,C=e._normalShading,A=e._drawCommand.vertexArray,E=e.clippingPlanes,v=e._attenuation,D,O,R,M=g,N=Ge(cTt),_={},S=e._styleableShaderAttributes;for(o in S)S.hasOwnProperty(o)&&(r=S[o],N[o]=`czm_3dtiles_property_${r.location}`,_[r.location]=r);if(a){let ae={translucent:!1},_e="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";D=n.getColorShaderFunction(`getColorFromStyle${_e}`,N,ae),O=n.getShowShaderFunction(`getShowFromStyle${_e}`,N,ae),R=n.getPointSizeShaderFunction(`getPointSizeFromStyle${_e}`,N,ae),l(D)&&ae.translucent&&(M=!0)}e._styleTranslucent=M;let w=l(D),I=l(O),L=l(R),B=e.isClipped,U=[],V=[];w&&(_Z(D,U),gZ(D,V)),I&&(_Z(O,U),gZ(O,V)),L&&(_Z(R,U),gZ(R,V));let G=V.indexOf("COLOR")>=0,k=V.indexOf("NORMAL")>=0;if(k&&!x)throw new ce("Style references the NORMAL semantic but the point cloud does not have normals");for(o in S)if(S.hasOwnProperty(o)){r=S[o];let ae=U.indexOf(r.location)>=0,_e=yZ(A,r.location);_e.enabled=ae}let W=m&&(!w||G);if(m){let ae=yZ(A,_G);ae.enabled=W}let q=x&&(C||T||k);if(x){let ae=yZ(A,xZ);ae.enabled=q}let J={a_position:NCe};W&&(J.a_color=_G),q&&(J.a_normal=xZ),b&&(J.a_batchId=FCe);let j="",K=U.length;for(i=0;i<K;++i){let ae=U[i];r=_[ae];let _e=r.componentCount,xe=`czm_3dtiles_property_${ae}`,De;_e===1?De="float":De=`vec${_e}`,j+=`in ${De} ${xe}; 
`,J[xe]=r.location}aTt(e,t);let Q=`in vec3 a_position; 
out vec4 v_color; 
uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; 
uniform vec4 u_constantColor; 
uniform vec4 u_highlightColor; 
`;Q+=`float u_pointSize; 
float tiles3d_tileset_time; 
`,v&&(Q+=`float u_geometricError; 
float u_depthMultiplier; 
`),Q+=j,W&&(g?Q+=`in vec4 a_color; 
`:p?Q+=`in float a_color; 
const float SHIFT_RIGHT_11 = 1.0 / 2048.0; 
const float SHIFT_RIGHT_5 = 1.0 / 32.0; 
const float SHIFT_LEFT_11 = 2048.0; 
const float SHIFT_LEFT_5 = 32.0; 
const float NORMALIZE_6 = 1.0 / 64.0; 
const float NORMALIZE_5 = 1.0 / 32.0; 
`:Q+=`in vec3 a_color; 
`),q&&(f||d?Q+=`in vec2 a_normal; 
`:Q+=`in vec3 a_normal; 
`),b&&(Q+=`in float a_batchId; 
`),(c||u||d)&&(Q+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; 
`),w&&(Q+=D),I&&(Q+=O),L&&(Q+=R),Q+=`void main() 
{ 
    u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; 
    tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; 
`,v&&(Q+=`    u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; 
    u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; 
`),W?g?Q+=`    vec4 color = a_color; 
`:p?Q+=`    float compressed = a_color; 
    float r = floor(compressed * SHIFT_RIGHT_11); 
    compressed -= r * SHIFT_LEFT_11; 
    float g = floor(compressed * SHIFT_RIGHT_5); 
    compressed -= g * SHIFT_LEFT_5; 
    float b = compressed; 
    vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); 
    vec4 color = vec4(rgb, 1.0); 
`:Q+=`    vec4 color = vec4(a_color, 1.0); 
`:Q+=`    vec4 color = u_constantColor; 
`,c||u?Q+=`    vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; 
`:Q+=`    vec3 position = a_position; 
`,Q+=`    vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); 
`,q?(f?Q+=`    vec3 normal = czm_octDecode(a_normal); 
`:d?Q+=`    vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; 
`:Q+=`    vec3 normal = a_normal; 
`,Q+=`    vec3 normalEC = czm_normal * normal; 
`):Q+=`    vec3 normal = vec3(1.0); 
`,w&&(Q+=`    color = getColorFromStyle(position, position_absolute, color, normal); 
`),I&&(Q+=`    float show = float(getShowFromStyle(position, position_absolute, color, normal)); 
`),L?Q+=`    gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; 
`:v?Q+=`    vec4 positionEC = czm_modelView * vec4(position, 1.0); 
    float depth = -positionEC.z; 
    gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); 
`:Q+=`    gl_PointSize = u_pointSize; 
`,Q+=`    color = color * u_highlightColor; 
`,q&&C&&(Q+=`    float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); 
    diffuseStrength = max(diffuseStrength, 0.4); 
    color.xyz *= diffuseStrength * czm_lightColor; 
`),Q+=`    v_color = color; 
    gl_Position = czm_modelViewProjection * vec4(position, 1.0); 
`,q&&T&&(Q+=`    float visible = step(-normalEC.z, 0.0); 
    gl_Position *= visible; 
    gl_PointSize *= visible; 
`),I&&(Q+=`    gl_Position.w *= float(show); 
    gl_PointSize *= float(show); 
`),Q+=`} 
`;let de=`in vec4 v_color; 
`;B&&(de+=`uniform highp sampler2D u_clippingPlanes; 
uniform mat4 u_clippingPlanesMatrix; 
uniform vec4 u_clippingPlanesEdgeStyle; 
`,de+=`
`,de+=og(E,s),de+=`
`),de+=`void main() 
{ 
    out_FragColor = czm_gammaCorrect(v_color); 
`,B&&(de+=p3("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),de+=`} 
`,e.splitDirection!==Nr.NONE&&(de=Tv.modifyFragmentShader(de)),l(e._vertexShaderLoaded)&&(Q=e._vertexShaderLoaded(Q)),l(e._fragmentShaderLoaded)&&(de=e._fragmentShaderLoaded(de));let ye=e._drawCommand;l(ye.shaderProgram)&&ye.shaderProgram.destroy(),ye.shaderProgram=Qt.fromCache({context:s,vertexShaderSource:Q,fragmentShaderSource:de,attributeLocations:J});try{ye.shaderProgram._bind()}catch{throw new ce("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function uTt(e,t){if(e._decodingState===lC.READY)return!1;if(e._decodingState===lC.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=Zp.decodePointCloud(i,t);l(o)&&(e._decodingState=lC.DECODING,o.then(function(r){e._decodingState=lC.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,u=l(r.NORMAL)?r.NORMAL.array:void 0,f=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,d=l(s)&&l(r.POSITION.data.quantization),p=l(u)&&l(r.NORMAL.data.quantization);if(d){let b=r.POSITION.data.quantization,T=b.range;e._quantizedVolumeScale=h.fromElements(T,T,T),e._quantizedVolumeOffset=h.unpack(b.minValues),e._quantizedRange=(1<<b.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,m=i.batchTableProperties;for(let b in m)if(m.hasOwnProperty(b)){let T=r[b];l(g)||(g={}),g[b]={typedArray:T.array,componentCount:T.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let x=y(c,a);l(x)&&(n.colors={typedArray:x}),l(u)&&(n.normals={typedArray:u}),l(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(r){e._decodingState=lC.FAILED,e._error=r}))}return!0}var fTt=new oe,dTt=new h;_3.prototype.update=function(e){let t=e.context;if(l(this._error)){let u=this._error;throw this._error=void 0,u}if(uTt(this,t))return;let i=!1,o=!F.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(sTt(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){F.clone(this.modelMatrix,this._modelMatrix);let u=this._drawCommand.modelMatrix;if(F.clone(this._modelMatrix,u),l(this._rtcCenter)&&F.multiplyByTranslation(u,this._rtcCenter,u),l(this._quantizedVolumeOffset)&&F.multiplyByTranslation(u,this._quantizedVolumeOffset,u),e.mode!==ne.SCENE3D){let d=e.mapProjection,p=F.getColumn(u,3,fTt);oe.equals(p,oe.UNIT_W)||Mt.basisTo2D(d,u,u)}let f=this._drawCommand.boundingVolume;if(se.clone(this._boundingSphere,f),this._cull){let d=f.center;F.multiplyByPoint(u,d,d);let p=F.getScale(u,dTt);f.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==Nr.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&lTt(this,e,this._style),this._drawCommand.castShadows=yn.castShadows(this.shadows),this._drawCommand.receiveShadows=yn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?ve.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};_3.prototype.isDestroyed=function(){return!1};_3.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var g3=_3;function fC(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.shadows=y(e.shadows,yn.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new gm(e.shading),this.style=e.style,this.frameFailed=new me,this.frameChanged=new me,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new a_,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(fC.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){_s.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function hTt(e){return`uniform vec4 czm_pickColor;
${e}`}function mTt(e){return function(t){return yt(t,{czm_pickColor:function(){return e._pickId.color}})}}function pTt(){return"czm_pickColor"}fC.prototype.makeStyleDirty=function(){this._styleDirty=!0};fC.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var _Tt=new Z;function TZ(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function uC(e,t){return e._intervals.indexOf(t.start)}function gTt(e,t){let n=e._intervals,i=e._clock,o=TZ(e);if(o===0)return;let r=e._getAverageLoadTime(),s=Z.addSeconds(i.currentTime,r*o,_Tt),a=n.indexOf(s),c=uC(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function yTt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function xTt(e,t,n){let i=TZ(e),o=uC(e,t),r=uC(e,n);return i>=0?o>=r:o<=r}function kCe(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function bTt(e,t,n){let i=uC(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?F.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:xi(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,we.fetchArrayBuffer({url:c}).then(function(u){r.pointCloud=new g3({arrayBuffer:u,cull:!0,fragmentShaderLoaded:hTt,uniformMapLoaded:mTt(e),pickIdLoaded:pTt})}).catch(kCe(e,c))}return r}function TTt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function CTt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(VCe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(xi()-t.timestamp)/1e3;TTt(e,a)}}t.touchedFrameNumber=i.frameNumber}var ATt=new F;function ETt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?P.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function STt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var vTt=new gm;function VCe(e,t,n,i){let o=y(e.shading,vTt),r=t.pointCloud,s=y(t.transform,F.IDENTITY);r.modelMatrix=F.multiplyTransformation(e.modelMatrix,s,ATt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=ETt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=STt(e);try{r.update(i)}catch(a){kCe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function bZ(e,t,n,i){let o=bTt(e,t,i);CTt(e,o,n,i)}function wTt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function UCe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function DTt(e,t){let n=uC(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function BCe(e,t,n,i,o){return l(n)?n.ready?!0:(bZ(e,t,i,o),n.ready):!1}function ITt(e,t,n,i,o){let r,s,a,c=e._intervals,u=e._frames,f=uC(e,n),d=uC(e,t);if(f>=d){for(r=f;r>=d;--r)if(s=c.get(r),a=u[r],BCe(e,s,a,i,o))return s}else for(r=f;r<=d;++r)if(s=c.get(r),a=u[r],BCe(e,s,a,i,o))return s;return t}function PTt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var Cv={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};fC.prototype.update=function(e){if(e.mode===ne.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=Z.clone(e.time));let t=Math.max(Z.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&PTt(this,o,s),Cv.timeSinceLoad=t,Cv.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,u=e.commandList,f=u.length,d=this._previousInterval,p=this._nextInterval,g=yTt(this);if(!l(g))return;let m=!1,x=TZ(this),b=x===0;x!==this._clockMultiplier&&(m=!0,this._clockMultiplier=x),(!l(d)||b)&&(d=g),(!l(p)||m||xTt(this,g,p))&&(p=gTt(this,g)),d=ITt(this,d,g,Cv,e);let T=DTt(this,d);l(T)||(bZ(this,d,Cv,e),T=this._lastRenderedFrame),l(T)&&VCe(this,T,Cv,e),l(p)&&bZ(this,p,Cv,e);let C=this;l(T)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),l(T)&&T!==this._lastRenderedFrame&&C.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return C.frameChanged.raiseEvent(C),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=T;let A=this._totalMemoryUsageInBytes,E=this.maximumMemoryUsage*1024*1024;A>E&&UCe(this,wTt(e));let D=u.length-f;l(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};fC.prototype.isDestroyed=function(){return!1};fC.prototype.destroy=function(){return UCe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var Av=fC;function zCe(e,t){if(l(t)){let n=t.clock;l(n)&&n.getValue(e)}}function RTt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(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){e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors&&e.showErrorPanel("An error occurred while rendering.  Rendering has stopped.",void 0,o)}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function HCe(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function GCe(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=HCe(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 WCe(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function Do(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=Ht.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Ht.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=l(t.creditContainer)?In(t.creditContainer):n;c.appendChild(a);let u=l(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=u,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._entityView=void 0,this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._trackedEntityChanged=new me,this._allowDataSourcesToSuspendAnimation=!0,this._clock=l(t.clock)?t.clock:new hh,l(t.shouldAnimate)&&(this._clock.shouldAnimate=t.shouldAnimate),GCe(this);try{let p=y(t.ellipsoid,ee.default),g=new n3({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:u,ellipsoid:p,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=g,g.camera.constrainedAxis=h.UNIT_Z,HCe(this),WCe(this);let m=t.globe;l(m)||(m=new i2(p)),m!==!1&&(g.globe=m,g.globe.shadows=y(t.terrainShadows,yn.RECEIVE_ONLY));let x=t.skyBox;!l(x)&&ee.WGS84.equals(p)&&(x=c3.createEarthSkyBox()),x!==!1&&(g.skyBox=x,g.sun=new m3,ee.WGS84.equals(p)&&(g.moon=new l2));let b=t.skyAtmosphere;!l(b)&&ee.WGS84.equals(p)&&(b=new r3(p),b.show=t.globe!==!1&&m.show),b!==!1&&(g.skyAtmosphere=b);let T=t.baseLayer;t.globe!==!1&&T!==!1&&(l(T)||(T=Ga.fromWorldImagery()),g.imageryLayers.add(T)),l(t.terrainProvider)&&t.globe!==!1&&(g.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&g.setTerrain(t.terrain),this._screenSpaceEventHandler=new Ju(i),l(t.sceneMode)&&(t.sceneMode===ne.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ne.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 C=this;this._onRenderError=function(R,M){C._useDefaultRenderLoop=!1,C._renderLoopRunning=!1,C._showRenderLoopErrors&&C.showErrorPanel("An error occurred while rendering.  Rendering has stopped.",void 0,M)},g.renderError.addEventListener(this._onRenderError);let A=t.dataSources,E=!1;l(A)||(A=new sN,E=!0);let v=new WN({scene:g,dataSourceCollection:A}),D=new fr;this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=t.automaticallyTrackDataSourceClocks??!0,this._dataSourceCollection=A,this._destroyDataSourceCollection=E,this._dataSourceDisplay=v,this._eventHelper=D,this._canAnimateUpdateCallback=this._updateCanAnimate,D.add(this._clock.onTick,Do.prototype._onTick,this),D.add(g.morphStart,Do.prototype._clearTrackedObject,this),D.add(A.dataSourceAdded,Do.prototype._onDataSourceAdded,this),D.add(A.dataSourceRemoved,Do.prototype._onDataSourceRemoved,this),D.add(g.postRender,Do.prototype._postRender,this);let O=A.length;for(let R=0;R<O;R++)this._dataSourceAdded(A,A.get(R));this._dataSourceAdded(void 0,v.defaultDataSource),D.add(A.dataSourceAdded,Do.prototype._dataSourceAdded,this),D.add(A.dataSourceRemoved,Do.prototype._dataSourceRemoved,this)}catch(p){throw f&&this.showErrorPanel("Error constructing CesiumWidget.",'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:',p),p}}Object.defineProperties(Do.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}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},camera:{get:function(){return this._scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},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&&RTt(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)}},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,CZ(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===ne.COLUMBUS_VIEW||n===ne.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ne.COLUMBUS_VIEW||n===ne.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(F.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,zCe(this.clock,e))}}});Do.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(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let u=l(t),f=l(n);if(u||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let m=Ym(n);u||(typeof n=="string"&&(n=new Error(n)),t=Ym({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(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};Do.prototype.isDestroyed=function(){return!1};Do.prototype.destroy=function(){let e=this.dataSources,t=e.length;for(let n=0;n<t;n++)this._dataSourceRemoved(e,e.get(n));this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),this._eventHelper.removeAll(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};Do.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,GCe(this),WCe(this),this._scene.requestRender())};Do.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};Do.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Do.prototype._onEntityCollectionChanged,this)};Do.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Do.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0)};Do.prototype._updateCanAnimate=function(e){this._clock.canAnimate=e};var Ev=new se;Do.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&this._canAnimateUpdateCallback(n);let i=this._entityView;if(l(i)){let o=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(o,!0,Ev)===ct.DONE&&i.update(t,Ev)}};Do.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)}};Do.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Do.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&zCe(this.clock,e)};Do.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Do.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Do.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}};Do.prototype.zoomTo=function(e,t){return jCe(this,e,{offset:t},!1)};Do.prototype.flyTo=function(e,t){return jCe(this,e,t,!0)};function jCe(e,t,n,i){CZ(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 Ga){let s;l(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 PT(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof ha||r instanceof Av||r instanceof M0){e._zoomTarget=r;return}if(r.isLoading&&l(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=r.values??r,l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function y3(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function CZ(e){let t=e._zoomPromise;l(t)&&(y3(e),e._completeZoom(!1))}Do.prototype._postRender=function(){OTt(this),MTt(this)};function OTt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===ne.MORPHING)return;let n=e.scene,i=n.camera,o=e._zoomOptions??{},r;function s(f){l(o.offset)||(o.offset=new od(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(F.IDENTITY),e._completeZoom(!0)),y3(e)}if(t instanceof Av){if(l(t.boundingSphere)){s(t.boundingSphere);return}let f=t.frameChanged.addEventListener(function(d){s(d.boundingSphere),f()});return}if(t instanceof ha||t instanceof M0){s(t.boundingSphere);return}if(t instanceof fe){r={destination:n.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)),y3(e);return}let a=t,c=[];for(let f=0,d=a.length;f<d;f++){let p=e._dataSourceDisplay.getBoundingSphere(a[f],!1,Ev);if(p===ct.PENDING)return;p!==ct.FAILED&&c.push(se.clone(Ev))}if(c.length===0){CZ(e);return}e.trackedEntity=void 0;let u=se.fromBoundingSpheres(c);e._zoomIsFlight?(y3(e),i.flyToBoundingSphere(u,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(F.IDENTITY),y3(e),e._completeZoom(!0))}function MTt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=Y.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,Ev);if(r===ct.PENDING)return;let s=o.mode;(s===ne.COLUMBUS_VIEW||s===ne.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===ne.COLUMBUS_VIEW||s===ne.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==ct.FAILED?Ev:void 0;e._entityView=new qN(t,o,o.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var x3=Do;var b3=`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;
}

// Interpolate a voxel with its neighbor (along the positive X-axis)
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);
}

// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0).
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;
}

// Transforms the ray origin and direction into unit sphere space,
// then transforms the result back into the ellipsoid's space.
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;
}

// Assume that if phase shift is being called for octave i,
// the frequency is of i - 1. This saves us from doing extra
// division / multiplication operations.
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));
}

// The cloud texture function derived from Gardner's 1985 paper,
// "Visual Simulation of Clouds."
// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf
const float T0    = 0.6;  // contrast of the texture pattern
const float k     = 0.1;  // computed to produce a maximum value of 1
const float C0    = 0.8;  // coefficient
const float FX0   = 0.6;  // frequency X
const float FY0   = 0.6;  // frequency Y
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;  // fraction of surface reflection due to ambient or scattered light,
const float t = 0.4;  // fraction of texture shading
const float s = 0.25; // fraction of specular reflection

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);  // diffuse reflection
    float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0);   // specular reflection
    float It = T(cloudPoint);                                 // texture function
    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;

    // The dot product between the cloud's normal and the ray's direction is greatest
    // in the center of the ellipsoid's surface. It decreases towards the edge.
    // Thus, it is used to blur the areas leading to the edges of the ellipsoid,
    // so that no harsh lines appear.

    // The first (and biggest) layer of worley noise is then subtracted from this.
    // The final result is scaled up so that the base cloud is not too translucent.
    float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0);
    float TR = pow(ndDot, 3.0) - W; // translucency
    TR *= 1.3;

    // Subtracting the second and third layers of worley noise is more complicated.
    // If these layers of noise were simply subtracted from the current translucency,
    // the shape derived from the first layer of noise would be completely deleted.
    // The erosion of this noise should thus be constricted to the edges of the cloud.
    // However, because the edges of the ellipsoid were already blurred away, mapping
    // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance.
    // The value of (0.5 - ndDot) provides the best compromise.
    float minusDot = 0.5 - ndDot;

    // Even with the previous calculation, subtracting the second layer of wnoise
    // erode too much of the cloud. The addition of it, however, will detailed
    // volume to the cloud. As long as the noise is only added and not subtracted,
    // the results are aesthetically pleasing.

    // The minusDot product is mapped in a way that it is larger at the edges of
    // the ellipsoid, so a subtraction and min operation are used instead of
    // an addition and max one.
    TR -= min(minusDot * W2, 0.0);

    // The third level of worley noise is subtracted from the result, with some
    // modifications. First, a scalar is added to minusDot so that the noise
    // starts affecting the shape farther away from the center of the ellipsoid's
    // surface. Then, it is scaled down so its impact is not too intense.
    TR -= 0.8 * (minusDot + 0.25) * W3;

    // The texture function's shading does not correlate with the shape of the cloud
    // produced by the layers of noise, so an extra shading scalar is calculated.
    // The darkest areas of the cloud are assigned to be where the noise erodes
    // the cloud the most. This is then interpolated based on the translucency
    // and the diffuse shading term of that point in the cloud.
    float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR);

    // To avoid values that are too dark, this scalar is increased by a small amount
    // and clamped so it never goes to zero.
    shading = clamp(shading + 0.2, 0.3, 1.0);

    // Finally, the contrast of the cloud's color is increased.
    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
    // To avoid calculations with high values,
    // we raycast from an arbitrarily smaller space.
    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 T3=`#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() {
    // Unpack attributes.
    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 C3=`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));
}

// Frequency corresponds to cell size.
// The higher the frequency, the smaller the cell size.
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 A3=`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 E3=`
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 wv(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var dC=new re;function LTt(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}wv.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)LTt(e,g,p,s)||s.push(new Sv(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,dC);let a=dC.west,c=dC.north;r.tileXYToRectangle(i,o,e,dC);let u=dC.east,f=dC.south,d=new VTt(e,a,f,u,c);for(let p=0;p<s.length;++p){let g=s[p];AZ(g.extent,d)&&UTt(this._maximumLevel,g,d)}};wv.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(vv(i.extent,e)){t=i;break}}return l(t)?S3(void 0,t,e):-1};var NTt=[],FTt=[],BTt=new re,kTt=new re;wv.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=NTt;t.length=0,e.east<e.west?(t.push(re.fromRadians(-Math.PI,e.south,e.east,e.north,BTt)),t.push(re.fromRadians(e.west,e.south,Math.PI,e.north,kTt))):t.push(e);let n=FTt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)v3(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var qCe=new fe;wv.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,dC);return re.center(i,qCe),this.computeMaximumLevelAtPosition(qCe)>=e};wv.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 Sv(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(Sv.prototype,{nw:{get:function(){return this._nw||(this._nw=new Sv(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new Sv(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new Sv(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new Sv(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function VTt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function AZ(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 UTt(e,t,n){for(;t.level<e;)if(gG(t.nw.extent,n))t=t.nw;else if(gG(t.ne.extent,n))t=t.ne;else if(gG(t.sw.extent,n))t=t.sw;else if(gG(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=Po(t.rectangles,n.level,zTt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function zTt(e,t){return e.level-t}function gG(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function vv(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function S3(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&vv(t._nw.extent,n),s=t._ne&&vv(t._ne.extent,n),a=t._sw&&vv(t._sw.extent,n),c=t._se&&vv(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,S3(t,t._nw,n))),s&&(i=Math.max(i,S3(t,t._ne,n))),a&&(i=Math.max(i,S3(t,t._sw,n))),c&&(i=Math.max(i,S3(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];vv(a,n)&&(i=a.level)}t=t.parent}return i}function v3(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||AZ(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]=HTt(e[s.level],s)}v3(e,t._nw,n),v3(e,t._ne,n),v3(e,t._sw,n),v3(e,t._se,n)}function HTt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];AZ(o,t)?(o.west<t.west&&n.push(new re(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new re(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new re(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new re(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var Uh=wv;var GTt=15;function YCe(e){this.ellipsoid=y(e.ellipsoid,ee.default),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}YCe.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 WTt(e,t){let n=t.copyrightText;l(n)&&(e.credit=new vt(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=re.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Yi(s);else if(o===3857){let u=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>u&&(t.extent.xmax=u),t.extent.ymax>u&&(t.extent.ymax=u),t.extent.xmin<-u&&(t.extent.xmin=-u),t.extent.ymin<-u&&(t.extent.ymin=-u),s.rectangleSouthwestInMeters=new z(r.xmin,r.ymin),s.rectangleNortheastInMeters=new z(r.xmax,r.ymax),e.tilingScheme=new rs(s)}else throw new ce("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new ce("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?ad.LERC:ad.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new Uh(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new Uh(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=os.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."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function jTt(e,t,n){try{let i=await t.fetchJson();WTt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function N0(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 me}Object.defineProperties(N0.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}}});N0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new YCe(t);await jTt(o,i);let r=new N0(t);return o.build(r),r._resource=n,r};N0.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&&!l(EZ(this,n+1,e*2,t*2))){let d=XCe(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let u=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new za({buffer:d[0],width:u._width,height:u._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):GTt,structure:u._terrainDataStructure,encoding:u._encoding})}).catch(async function(d){if(l(a)&&a.state===Zn.CANCELLED){i.cancel();try{await i.deferred?.promise}catch{}return i.state=Zn.CANCELLED,Promise.reject(d)}return Promise.reject(d)})};function EZ(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}N0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};N0.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=EZ(this,n,e,t);if(l(i))return i;XCe(this,n,e,t)};N0.prototype.loadTileDataAvailability=function(e,t,n){};function qTt(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},u=new z(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=u.x,g=d?u.y+1:u.y;if(!f){for(let m=e.y;m<g;++m)if(i[m*t+u.x]!==s){f=!0;break}f?(a.push(new z(u.x,e.y)),--u.x,--p,c.endX=u.x):u.x===o?(c.endX=u.x,f=!0):++u.x}if(!d){let m=u.y*t;for(let x=e.x;x<=p;++x)if(i[m+x]!==s){d=!0;break}d?(a.push(new z(e.x,u.y)),--u.y,c.endY=u.y):u.y===r?(c.endY=u.y,d=!0):++u.y}}return{endingIndices:a,range:c,value:s}}function YTt(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 z(0,0)];for(;a.length>0;){let c=a.pop(),u=qTt(c,n,i,o);if(u.value===1){let d=u.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=u.endingIndices;f.length>0&&(a=a.concat(f))}return r}function XCe(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(l(c[a]))return c[a];let u=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:u}).fetchJson();return l(d)?(d=d.then(function(p){let g=YTt(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 EZ(e,t,n,i)}),c[a]={promise:d,request:u},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:u}):{}}var SZ=N0;var KCe="https://dev.virtualearth.net/REST/v1/Locations";function vZ(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new we({url:KCe,queryParameters:n}),this._credit=new vt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(vZ.prototype,{url:{get:function(){return KCe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});vZ.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],u=r[3];return{displayName:o.name,destination:re.fromDegrees(a,s,u,c)}})})};var wZ=vZ;function DZ(){}Object.defineProperties(DZ.prototype,{credit:{get:function(){}}});DZ.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 IZ=DZ;var XTt=new oe,ZCe=new h,Dv=new h;function KTt(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){l(c)||(c=new h);let u=(a-i)*o;return h.lerp(r,s,u,c)}}return function(i,o){l(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=XTt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,u,f,d,p;return r===0?(c=t[0],u=t[1],f=e.firstTangent,d=h.subtract(t[2],c,ZCe),h.multiplyByScalar(d,.5,d),p=F.multiplyByVector(Cy.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],u=t[r+1],d=e.lastTangent,f=h.subtract(u,t[r-1],ZCe),h.multiplyByScalar(f,.5,f),p=F.multiplyByVector(Cy.hermiteCoefficientMatrix,a,a)):(c=t[r-1],u=t[r],f=t[r+1],d=t[r+2],p=F.multiplyByVector(F0.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(u,p.y,Dv),h.add(o,Dv,o),h.multiplyByScalar(f,p.z,Dv),h.add(o,Dv,o),h.multiplyByScalar(d,p.w,Dv),h.add(o,Dv,o)}}var ZTt=new h,$Tt=new h;function F0(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=ZTt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=$Tt,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=KTt(this),this._lastTimeIndex=0}Object.defineProperties(F0.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}}});F0.catmullRomCoefficientMatrix=new F(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);F0.prototype.findTimeInterval=io.prototype.findTimeInterval;F0.prototype.wrapTime=io.prototype.wrapTime;F0.prototype.clampTime=io.prototype.clampTime;F0.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var PZ=F0;var yG={};yG.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(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 u=s+a+c,f,d,p,g,m,x;return u===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))):u===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)):u!==3&&(r.push(0),r.push(1),r.push(2)),r};yG.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let u=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*u+f*p),m=t-a,x=e-s,b=(d*x+f*m)*g,T=(-p*x+u*m)*g,C=1-b-T;return l(c)?(c.x=b,c.y=T,c.z=C,c):new h(b,T,C)};yG.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let u=(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=u/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return l(c)||(c=new z),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var Tg=yG;function B0(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=bG(e.westIndices,o,t),this._southIndices=bG(e.southIndices,r,t),this._eastIndices=bG(e.eastIndices,o,t),this._northIndices=bG(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(B0.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var xG=[];function bG(e,t,n){xG.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)xG[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(xG.sort(t),Ne.createTypedArray(n,xG)):e}var $Ce="createVerticesFromQuantizedTerrainMesh",QTt=new pi($Ce),JTt=new pi($Ce,Ph.maximumAsynchronousTasks);B0.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,u=t.tileXYToRectangle(n,i,o),d=(a?JTt:QTt).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:u,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(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=Ne.createTypedArray(x,g.indices),T=new Float32Array(g.vertices),C=g.center,A=g.minimumHeight,E=g.maximumHeight,v=p._boundingSphere,D=p._orientedBoundingBox,O=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),R=g.vertexStride,M=Sc.clone(g.encoding);return p._mesh=new ld(C,T,b,g.indexCountWithoutSkirts,m,A,E,v,O,R,D,M,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 eCt=new pi("upsampleQuantizedTerrainMesh",Ph.maximumAsynchronousTasks);B0.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=eCt.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:u,childRectangle:d,ellipsoid:f});if(!l(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=u?g*.5:this._southSkirtHeight,b=c?this._eastSkirtHeight:g*.5,T=u?this._northSkirtHeight:g*.5,C=this._credits;return Promise.resolve(p).then(function(A){let E=new Uint16Array(A.vertices),v=Ne.createTypedArray(E.length/3,A.indices),D;return l(A.encodedNormals)&&(D=new Uint8Array(A.encodedNormals)),new B0({quantizedVertices:E,indices:v,encodedNormals:D,minimumHeight:A.minimumHeight,maximumHeight:A.maximumHeight,boundingSphere:se.clone(A.boundingSphere),orientedBoundingBox:vn.clone(A.orientedBoundingBox),horizonOcclusionPoint:h.clone(A.horizonOcclusionPoint),westIndices:A.westIndices,southIndices:A.southIndices,eastIndices:A.eastIndices,northIndices:A.northIndices,westSkirtHeight:m,southSkirtHeight:x,eastSkirtHeight:b,northSkirtHeight:T,childTileMask:0,credits:C,createdByUpsampling:!0})})};var RZ=32767,QCe=new h;B0.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=RZ;let o=P.clamp((n-e.south)/e.height,0,1);return o*=RZ,l(this._mesh)?oCt(this,i,o):rCt(this,i,o)};function JCe(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),u=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=u&&t>=f&&t<=d}var tCt=new z,nCt=new z,iCt=new z;function oCt(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 u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,tCt),g=r.decodeTextureCoordinates(o,f,nCt),m=r.decodeTextureCoordinates(o,d,iCt);if(JCe(t,n,p.x,p.y,g.x,g.y,m.x,m.y)){let x=Tg.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,QCe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),C=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*C}}}}function rCt(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 u=s[a],f=s[a+1],d=s[a+2],p=i[u],g=i[f],m=i[d],x=o[u],b=o[f],T=o[d];if(JCe(t,n,p,x,g,b,m,T)){let C=Tg.computeBarycentricCoordinates(t,n,p,x,g,b,m,T,QCe);if(C.x>=-1e-15&&C.y>=-1e-15&&C.z>=-1e-15){let A=C.x*r[u]+C.y*r[f]+C.z*r[d];return P.lerp(e._minimumHeight,e._maximumHeight,A/RZ)}}}}B0.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};B0.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var hC=B0;function sCt(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 tAe(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=y(e.ellipsoid,ee.default),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=[]}tAe.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(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 nAe(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(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=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let c=t.tiles,u=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,u),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new rs({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}if(e.levelZeroMaximumGeometricError=os.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=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let f;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(l(p)&&!l(d)){g=new Uh(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let b=p[x],T=e.tilingScheme.getNumberOfYTilesAtLevel(x);l(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let C=0;C<b.length;++C){let A=b[C],E=T-A.endY-1,v=T-A.startY-1;e.overallAvailability[x].push([A.startX,E,A.endX,v]),g.addAvailableTileRange(x,A.startX,E,A.endX,v)}}}else l(d)&&(f=new Uh(e.tilingScheme,u),g=new Uh(e.tilingScheme,u),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,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new sCt({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 l(m)?l(g)?(e.lastResource=e.lastResource.getDerivedResource({url:m}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await LZ(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function aCt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=`
${t.message}`),e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return LZ(e,n);throw new ce(i)}async function cCt(e,t,n){await nAe(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new Uh(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 vt(e.attribution);e.tileCredits.push(o)}return!0}async function LZ(e,t){try{let n=await e.layerJsonResource.fetchJson();return cCt(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await nAe(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):aCt(e,n,t)}}function zh(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 me;let t=e.credit;typeof t=="string"&&(t=new vt(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 OZ={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function eAe(e){return!l(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,*/*;q=0.01`}}function lCt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new za({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function uCt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,u=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*u,g=Uint16Array.BYTES_PER_ELEMENT*3,m=3,x=Uint16Array.BYTES_PER_ELEMENT,b=x*m,T=new DataView(t),C=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let A=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let E=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let v=new se(new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0)),T.getFloat64(a+f,!0));a+=d;let D=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let O=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let R=new Uint16Array(t,a,O*3);a+=O*g,O>64*1024&&(x=Uint32Array.BYTES_PER_ELEMENT,b=x*m);let M=R.subarray(0,O),N=R.subarray(O,2*O),_=R.subarray(O*2,3*O);Mn.zigZagDeltaDecode(M,N,_),a%x!==0&&(a+=x-a%x);let S=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let w=Ne.createTypedArrayFromArrayBuffer(O,t,a,S*m);a+=S*b;let I=0,L=w.length;for(let ae=0;ae<L;++ae){let _e=w[ae];w[ae]=I-_e,_e===0&&++I}let B=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let U=Ne.createTypedArrayFromArrayBuffer(O,t,a,B);a+=B*x;let V=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Ne.createTypedArrayFromArrayBuffer(O,t,a,V);a+=V*x;let k=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let W=Ne.createTypedArrayFromArrayBuffer(O,t,a,k);a+=k*x;let q=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let J=Ne.createTypedArrayFromArrayBuffer(O,t,a,q);a+=q*x;let j,K;for(;a<T.byteLength;){let ae=T.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let _e=T.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,ae===OZ.OCT_VERTEX_NORMALS&&e._requestVertexNormals)j=new Uint8Array(t,a,O*2);else if(ae===OZ.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,a,_e);else if(ae===OZ.METADATA&&e._requestMetadata){let xe=T.getUint32(a,!0);if(xe>0){let Ae=Mo(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,xe).available;if(l(Ae))for(let ke=0;ke<Ae.length;++ke){let ze=n+ke+1,tt=Ae[ke],wt=e._tilingScheme.getNumberOfYTilesAtLevel(ze);for(let pt=0;pt<tt.length;++pt){let Be=tt[pt],Yt=wt-Be.endY-1,Ct=wt-Be.startY-1;e.availability.addAvailableTileRange(ze,Be.startX,Yt,Be.endX,Ct),r.availability.addAvailableTileRange(ze,Be.startX,Yt,Be.endX,Ct)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=_e}let Q=e.getLevelMaximumGeometricError(n)*5,de=e._tilingScheme.tileXYToRectangle(i,o,n),ye=vn.fromRectangle(de,A,E,e._tilingScheme.ellipsoid);return new hC({center:C,minimumHeight:A,maximumHeight:E,boundingSphere:v,orientedBoundingBox:ye,horizonOcclusionPoint:D,quantizedVertices:R,encodedNormals:j,indices:w,westIndices:U,southIndices:G,eastIndices:W,northIndices:J,westSkirtHeight:Q,southSkirtHeight:Q,eastSkirtHeight:Q,northSkirtHeight:Q,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:K,credits:e._tileCredits})}zh.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length,a=!1,c=Promise.resolve();if(s===1)r=o[0];else for(let u=0;u<s;++u){let f=o[u];if(!l(f.availability)||f.availability.isTileAvailable(n,e,t)){r=f;break}let d=NZ(this,e,t,n,f,u===0);d.result&&(a=!0,c=c.then(()=>d.promise))}return!l(r)&&a?c.then(()=>new Promise(u=>{setTimeout(()=>{let f=this.requestTileGeometry(e,t,n,i);u(f)},0)})):iAe(this,e,t,n,r,i)};function iAe(e,t,n,i,o,r){if(!l(o))return Promise.reject(new ce("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let u,f,d=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),u=eAe(void 0)):u=eAe(c);let g=p.getDerivedResource({url:d,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:f,headers:u,request:r}).fetchArrayBuffer();if(l(g))return g.then(function(m){return l(m)?l(e._heightmapStructure)?lCt(e,m,i,t,n):uCt(e,m,i,t,n,o):Promise.reject(new ce("Mesh buffer doesn't exist."))})}Object.defineProperties(zh.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});zh.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};zh.fromIonAssetId=async function(e,t){let n=await xu.fromAssetId(e);return zh.fromUrl(n,t)};zh.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash();let i=new tAe(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await LZ(i);let o=new zh(t);return i.build(o),o};zh.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(NZ(this,e,t,n,i[r],r===0).result)return;return!1};zh.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=NZ(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function MZ(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function NZ(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,u=o.availability,f=MZ(o,t,n,i);for(;l(f);){if(u.isTileAvailable(f.level,f.x,f.y)&&!c.isTileAvailable(f.level,f.x,f.y)){let d;if(!r&&(s=`${f.level}-${f.x}-${f.y}`,d=o.availabilityPromiseCache[s],!l(d))){let p=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN});d=iAe(e,f.x,f.y,f.level,o,p),l(d)&&(o.availabilityPromiseCache[s]=d,d.then(a))}return{result:!0,promise:d}}f=MZ(o,f.x,f.y,f.level)}return{result:!1}}zh._getAvailabilityTile=MZ;var mC=zh;function Cg(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new rl(n),this._workerName="createCircleGeometry"}Cg.packedLength=rl.packedLength;Cg.pack=function(e,t,n){return rl.pack(e._ellipseGeometry,t,n)};var oAe=new rl({center:new h,semiMajorAxis:1,semiMinorAxis:1}),ja={center:new h,radius:void 0,ellipsoid:ee.clone(ee.default),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Ie,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};Cg.unpack=function(e,t,n){let i=rl.unpack(e,t,oAe);return ja.center=h.clone(i._center,ja.center),ja.ellipsoid=ee.clone(i._ellipsoid,ja.ellipsoid),ja.ellipsoid=ee.clone(i._ellipsoid,oAe._ellipsoid),ja.height=i._height,ja.extrudedHeight=i._extrudedHeight,ja.granularity=i._granularity,ja.vertexFormat=Ie.clone(i._vertexFormat,ja.vertexFormat),ja.stRotation=i._stRotation,ja.shadowVolume=i._shadowVolume,l(n)?(ja.semiMajorAxis=i._semiMajorAxis,ja.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new rl(ja),n):(ja.radius=i._semiMajorAxis,new Cg(ja))};Cg.createGeometry=function(e){return rl.createGeometry(e._ellipseGeometry)};Cg.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new Cg({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(Cg.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var FZ=Cg;function Iv(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new ku(n),this._workerName="createCircleOutlineGeometry"}Iv.packedLength=ku.packedLength;Iv.pack=function(e,t,n){return ku.pack(e._ellipseGeometry,t,n)};var fCt=new ku({center:new h,semiMajorAxis:1,semiMinorAxis:1}),of={center:new h,radius:void 0,ellipsoid:ee.clone(ee.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};Iv.unpack=function(e,t,n){let i=ku.unpack(e,t,fCt);return of.center=h.clone(i._center,of.center),of.ellipsoid=ee.clone(i._ellipsoid,of.ellipsoid),of.height=i._height,of.extrudedHeight=i._extrudedHeight,of.granularity=i._granularity,of.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(of.semiMajorAxis=i._semiMajorAxis,of.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new ku(of),n):(of.radius=i._semiMajorAxis,new Iv(of))};Iv.createGeometry=function(e){return ku.createGeometry(e._ellipseGeometry)};var BZ=Iv;function Pv(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Yi({ellipsoid:y(e.ellipsoid,ee.default)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new me;let n=e.credit;typeof n=="string"&&(n=new vt(n)),this._credit=n}Object.defineProperties(Pv.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(){}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});Pv.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new za({buffer:c,width:r,height:s})})};Pv.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Pv.prototype.getTileDataAvailable=function(e,t,n){};Pv.prototype.loadTileDataAvailability=function(e,t,n){};var kZ=Pv;function rAe(e){this.proxy=e}rAe.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var VZ=rAe;var dCt={SEARCH:0,AUTOCOMPLETE:1},k0=Object.freeze(dCt);function TG(){he.throwInstantiationError()}Object.defineProperties(TG.prototype,{credit:{get:he.throwInstantiationError}});TG.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(vt.getIonCredit)};TG.prototype.geocode=he.throwInstantiationError;var Rv=TG;function sAe(){he.throwInstantiationError()}sAe.createGeometry=function(e){he.throwInstantiationError()};var UZ=sAe;var yCt=Vo(zZ(),1);function hCt(e,t){return(e&t)!==0}var Pc=hCt;var mCt=[1,2,4,8],aAe=15,pCt=16,_Ct=64,gCt=128;function fp(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}fp.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new fp(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};fp.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};fp.prototype.hasSubtree=function(){return Pc(this._bits,pCt)};fp.prototype.hasImagery=function(){return Pc(this._bits,_Ct)};fp.prototype.hasTerrain=function(){return Pc(this._bits,gCt)};fp.prototype.hasChildren=function(){return Pc(this._bits,aAe)};fp.prototype.hasChild=function(e){return Pc(this._bits,mCt[e])};fp.prototype.getChildBitmask=function(){return this._bits&aAe};var w3=fp;function xCt(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var bCt=xCt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y
wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB
\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA#	\xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2
\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1
ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS
>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88
\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function rf(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=P.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(rf.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});rf.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof we)&&(t=e.url);let n=we.createIfNeeded(t);n.appendForwardSlash();let i=new rf;i._resource=n;try{await TCt(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${lAe(i,"",1).url}: ${o}`;throw new ce(r)}return i};rf.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;Pc(t,r)?Pc(e,r)&&(s|=1):(s|=2,Pc(e,r)||(s|=1)),i+=s}return i};rf.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];Pc(s,2)?Pc(s,1)||(t|=r):(n|=r,Pc(s,1)&&(t|=r))}return{x:t,y:n,level:i}};rf.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var cAe=new pi("decodeGoogleEarthEnterprisePacket");rf.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=lAe(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return cAe.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(u){let f,d=-1;if(e!==""){d=e.length+1;let m=u[e];f=r[e],f._bits|=m._bits,delete u[e]}let p=Object.keys(u);p.sort(function(m,x){return m.length-x.length});let g=p.length;for(let m=0;m<g;++m){let x=p[m];if(u[x]!==null){let T=w3.clone(u[x]),C=x.length;if(C===d)T.setParent(f);else if(C>1){let A=r[x.substring(0,x.length-1)];T.setParent(A)}r[x]=T}else r[x]=null}})})};rf.prototype.populateSubtree=function(e,t,n,i){let o=rf.tileXYToQuadKey(e,t,n);return WZ(this,o,i)};function WZ(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new Ko({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),WZ(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new ce(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new Ko({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),WZ(e,t,s)}).finally(function(){delete a[o]})}rf.prototype.getTileInformation=function(e,t,n){let i=rf.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};rf.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function lAe(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var HZ,GZ;function TCt(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(GZ)){let n=nn("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;GZ=ex(n).then(function(){HZ=window.cesiumGoogleEarthDbRootParser(yCt),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return GZ.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=HZ.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return cAe.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=HZ.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}l(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=y(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.copyrightString;l(u)&&(o[c.providerId]=new vt(u.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=bCt})}var Ag=rf;function pC(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(pC.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var dAe="createVerticesFromGoogleEarthEnterpriseBuffer",CCt=new pi(dAe),ACt=new pi(dAe,Ph.maximumAsynchronousTasks),uAe=new re,jZ=new re;pC.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;t.tileXYToNativeRectangle(n,i,o,uAe),t.tileXYToRectangle(n,i,o,jZ);let u=c.cartographicToCartesian(re.center(jZ)),d=40075.16/(1<<o);this._skirtHeight=Math.min(d*8,1e3);let g=(a?ACt:CCt).scheduleTask({buffer:this._buffer,nativeRectangle:uAe,rectangle:jZ,relativeToCenter:u,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(g))return;let m=this;return g.then(function(x){return m._mesh=new ld(u,new Float32Array(x.vertices),new Uint16Array(x.indices),x.indexCountWithoutSkirts,x.vertexCountWithoutSkirts,x.minimumHeight,x.maximumHeight,se.clone(x.boundingSphere3D),h.clone(x.occludeePointInScaledSpace),x.numberOfAttributes,vn.clone(x.orientedBoundingBox),Sc.clone(x.encoding),x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),m._minimumHeight=x.minimumHeight,m._maximumHeight=x.maximumHeight,m._buffer=void 0,m._mesh})};pC.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1),o=P.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?DCt(this,i,o):RCt(this,i,o,e)};var ECt=new pi("upsampleQuantizedTerrainMesh",Ph.maximumAsynchronousTasks);pC.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=ECt.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=this;return p.then(function(m){let x=new Uint16Array(m.vertices),b=Ne.createTypedArray(x.length/3,m.indices),T=g._skirtHeight;return new hC({quantizedVertices:x,indices:b,minimumHeight:m.minimumHeight,maximumHeight:m.maximumHeight,boundingSphere:se.clone(m.boundingSphere),orientedBoundingBox:vn.clone(m.orientedBoundingBox),horizonOcclusionPoint:h.clone(m.horizonOcclusionPoint),westIndices:m.westIndices,southIndices:m.southIndices,eastIndices:m.eastIndices,northIndices:m.northIndices,westSkirtHeight:T,southSkirtHeight:T,eastSkirtHeight:T,northSkirtHeight:T,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};pC.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};pC.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var SCt=new z,vCt=new z,wCt=new z,hAe=new h;function DCt(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 u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,SCt),g=r.decodeTextureCoordinates(o,f,vCt),m=r.decodeTextureCoordinates(o,d,wCt),x=Tg.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,hAe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),C=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*C}}}var ICt=Uint16Array.BYTES_PER_ELEMENT,fAe=Uint32Array.BYTES_PER_ELEMENT,qZ=Int32Array.BYTES_PER_ELEMENT,PCt=Float32Array.BYTES_PER_ELEMENT,YZ=Float64Array.BYTES_PER_ELEMENT;function RCt(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),u=0;for(let v=0;v<r;++v)u+=c.getUint32(u,!0),u+=fAe;u+=fAe,u+=2*YZ;let f=P.toRadians(c.getFloat64(u,!0)*180);u+=YZ;let d=P.toRadians(c.getFloat64(u,!0)*180);u+=YZ;let p=i.width/f/2,g=i.height/d/2,m=c.getInt32(u,!0);u+=qZ;let x=c.getInt32(u,!0)*3;u+=qZ,u+=qZ;let b=new Array(m),T=new Array(m),C=new Array(m),A;for(A=0;A<m;++A)b[A]=s+c.getUint8(u++)*p,T[A]=a+c.getUint8(u++)*g,C[A]=c.getFloat32(u,!0)*6371010,u+=PCt;let E=new Array(x);for(A=0;A<x;++A)E[A]=c.getUint16(u,!0),u+=ICt;for(A=0;A<x;A+=3){let v=E[A],D=E[A+1],O=E[A+2],R=b[v],M=b[D],N=b[O],_=T[v],S=T[D],w=T[O],I=Tg.computeBarycentricCoordinates(t,n,R,_,M,S,N,w,hAe);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*C[v]+I.y*C[D]+I.z*C[O]}}var Ov=pC;var yd={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},CG=new Z;function AG(){this._terrainCache={},this._lastTidy=Z.now()}AG.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:Z.now()}};AG.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};AG.prototype.tidy=function(){if(Z.now(CG),Z.secondsDifference(CG,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];Z.secondsDifference(CG,r.timestamp)>10&&delete e[o]}Z.clone(CG,this._lastTidy)}};function V0(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new vt(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new AG,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new me}Object.defineProperties(V0.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});V0.fromMetadata=function(e,t){if(!e.terrainPresent)throw new ce(`The server ${e.url} doesn't have terrain`);let n=new V0(t);return n._metadata=e,n};var OCt=new pi("decodeGoogleEarthEnterprisePacket");function mAe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===yd.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}V0.prototype.requestTileGeometry=function(e,t,n,i){let o=Ag.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new ce("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=yd.UNKNOWN);let u=r.get(o);if(l(u)){let T=s.providers[a.terrainProvider];return Promise.resolve(new Ov({buffer:u,childTileMask:mAe(o,a,s),credits:l(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===yd.NONE)return Promise.reject(new ce("Terrain tile doesn't exist"))}else return Promise.resolve(new za({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=o,p=-1;switch(c){case yd.SELF:p=a.terrainVersion;break;case yd.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case yd.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),l(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new ce("Terrain tile doesn't exist"));let g=this._terrainPromises,m=this._terrainRequests,x,b;if(l(g[d]))x=g[d],b=m[d];else{b=i;let T=MCt(this,d,p,b).fetchArrayBuffer();if(!l(T))return;x=T.then(function(C){return l(C)?OCt.scheduleTask({buffer:C,type:"Terrain",key:s.key},[C]).then(function(A){let E=s.getTileInformationFromQuadKey(d);E.terrainState=yd.SELF,r.add(d,A[0]);let v=E.terrainProvider,D=A.length-1;for(let O=0;O<D;++O){let R=d+O.toString(),M=s.getTileInformationFromQuadKey(R);l(M)&&(r.add(R,A[O+1]),M.terrainState=yd.PARENT,M.terrainProvider===0&&(M.terrainProvider=v))}}):Promise.reject(new ce("Failed to load terrain."))}),g[d]=x,m[d]=b,x=x.finally(function(){delete g[d],delete m[d]})}return x.then(function(){let T=r.get(o);if(l(T)){let C=s.providers[a.terrainProvider];return new Ov({buffer:T,childTileMask:mAe(o,a,s),credits:l(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new ce("Failed to load terrain."))}).catch(function(T){return b.state===Zn.CANCELLED?(i.state=b.state,Promise.reject(T)):(a.terrainState=yd.NONE,Promise.reject(T))})};V0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};V0.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=Ag.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===yd.NONE)return!1;if((!l(s)||s===yd.UNKNOWN)&&(r.terrainState=yd.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};V0.prototype.loadTileDataAvailability=function(e,t,n){};function MCt(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var XZ=V0;var EG={};EG.defaultApiKey=void 0;EG.mapTilesApiEndpoint=new we({url:"https://tile.googleapis.com/v1/"});EG.getDefaultCredit=function(){return new vt('<img src="https://assets.ion.cesium.com/google-credit.png" style="vertical-align: -5px" alt="Google">',!0)};var _C=EG;var D3={};D3.type=void 0;D3.getRequiredDataPoints=he.throwInstantiationError;D3.interpolateOrderZero=he.throwInstantiationError;D3.interpolate=he.throwInstantiationError;var KZ=D3;function ZZ(e){this._url=we.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(ZZ.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});ZZ.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===k0.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=re.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=h.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var I3=ZZ;function $Z(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,Hd.defaultAccessToken),n=we.createIfNeeded(y(e.server,Hd.defaultServer));n.appendForwardSlash();let i=Hd.getDefaultTokenCredit(t);l(i)&&e.scene.frameState.creditDisplay.addStaticCredit(vt.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});l(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new I3(o)}Object.defineProperties($Z.prototype,{credit:{get:function(){}}});$Z.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var P3=$Z;function SG(){he.throwInstantiationError()}Object.defineProperties(SG.prototype,{ellipsoid:{get:he.throwInstantiationError}});SG.prototype.project=he.throwInstantiationError;SG.prototype.unproject=he.throwInstantiationError;var QZ=SG;function Mv(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(Mv.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});Mv.prototype.findTimeInterval=io.prototype.findTimeInterval;Mv.prototype.wrapTime=io.prototype.wrapTime;Mv.prototype.clampTime=io.prototype.clampTime;Mv.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var JZ=Mv;function e$(e,t,n){e=we.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new vt('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(e$.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});e$.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:yt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=re.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var t$=e$;var LCt={packedLength:void 0,pack:he.throwInstantiationError,unpack:he.throwInstantiationError},n$=LCt;var NCt={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:he.throwInstantiationError,unpackInterpolationResult:he.throwInstantiationError},i$=NCt;function pAe(){he.throwInstantiationError()}pAe.prototype.getURL=he.throwInstantiationError;var o$=pAe;function FCt(e,t,n,i,o,r,s){let a=Ii.numberOfPoints(e,t,o),c,u=n.red,f=n.green,d=n.blue,p=n.alpha,g=i.red,m=i.green,x=i.blue,b=i.alpha;if(H.equals(n,i)){for(c=0;c<a;c++)r[s++]=H.floatToByte(u),r[s++]=H.floatToByte(f),r[s++]=H.floatToByte(d),r[s++]=H.floatToByte(p);return s}let T=(g-u)/a,C=(m-f)/a,A=(x-d)/a,E=(b-p)/a,v=s;for(c=0;c<a;c++)r[v++]=H.floatToByte(u+c*T),r[v++]=H.floatToByte(f+c*C),r[v++]=H.floatToByte(d+c*A),r[v++]=H.floatToByte(p+c*E);return v}function R3(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,Jt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,ee.default),this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=l(n)?1+n.length*H.packedLength:1,this.packedLength=o+ee.packedLength+3}R3.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=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};R3.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+=H.packedLength)s[i]=H.unpack(e,t);let a=ee.unpack(e,t);t+=ee.packedLength;let c=e[t++]===1,u=e[t++],f=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=u,n._granularity=f,n):new R3({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:u,granularity:f})};var vG=new Array(2),wG=new Array(2),BCt={positions:vG,height:wG,ellipsoid:void 0,minDistance:void 0,granularity:void 0};R3.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=P.chordLength(r,s.maximumRadius),c=l(n)&&!i,u,f=t.length,d,p,g,m,x=0;if(o===Jt.GEODESIC||o===Jt.RHUMB){let E,v,D;o===Jt.GEODESIC?(E=P.chordLength(r,s.maximumRadius),v=Ii.numberOfPoints,D=Ii.generateArc):(E=r,v=Ii.numberOfPointsRhumbLine,D=Ii.generateRhumbArc);let O=Ii.extractHeights(t,s),R=BCt;if(o===Jt.GEODESIC?R.minDistance=a:R.granularity=r,R.ellipsoid=s,c){let M=0;for(u=0;u<f-1;u++)M+=v(t[u],t[u+1],E)+1;d=new Float64Array(M*3),g=new Uint8Array(M*4),R.positions=vG,R.height=wG;let N=0;for(u=0;u<f-1;++u){vG[0]=t[u],vG[1]=t[u+1],wG[0]=O[u],wG[1]=O[u+1];let _=D(R);if(l(n)){let S=_.length/3;m=n[u];for(let w=0;w<S;++w)g[N++]=H.floatToByte(m.red),g[N++]=H.floatToByte(m.green),g[N++]=H.floatToByte(m.blue),g[N++]=H.floatToByte(m.alpha)}d.set(_,x),x+=_.length}}else if(R.positions=t,R.height=O,d=new Float64Array(D(R)),l(n)){for(g=new Uint8Array(d.length/3*4),u=0;u<f-1;++u){let N=t[u],_=t[u+1],S=n[u],w=n[u+1];x=FCt(N,_,S,w,a,g,x)}let M=n[f-1];g[x++]=H.floatToByte(M.red),g[x++]=H.floatToByte(M.green),g[x++]=H.floatToByte(M.blue),g[x++]=H.floatToByte(M.alpha)}}else{p=c?f*2-2:f,d=new Float64Array(p*3),g=l(n)?new Uint8Array(p*4):void 0;let E=0,v=0;for(u=0;u<f;++u){let D=t[u];if(c&&u>0&&(h.pack(D,d,E),E+=3,m=n[u-1],g[v++]=H.floatToByte(m.red),g[v++]=H.floatToByte(m.green),g[v++]=H.floatToByte(m.blue),g[v++]=H.floatToByte(m.alpha)),c&&u===f-1)break;h.pack(D,d,E),E+=3,l(n)&&(m=n[u],g[v++]=H.floatToByte(m.red),g[v++]=H.floatToByte(m.green),g[v++]=H.floatToByte(m.blue),g[v++]=H.floatToByte(m.alpha))}}let b=new fn;b.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),l(n)&&(b.color=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let T=(p-1)*2,C=Ne.createTypedArray(p,T),A=0;for(u=0;u<p-1;++u)C[A++]=u,C[A++]=u+1;return new at({attributes:b,indices:C,primitiveType:Me.LINES,boundingSphere:se.fromPoints(t)})};var r$=R3;function Lv(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new Qs(i),this._workerName="createSphereGeometry"}Lv.packedLength=Qs.packedLength;Lv.pack=function(e,t,n){return Qs.pack(e._ellipsoidGeometry,t,n)};var kCt=new Qs,U0={radius:void 0,radii:new h,vertexFormat:new Ie,stackPartitions:void 0,slicePartitions:void 0};Lv.unpack=function(e,t,n){let i=Qs.unpack(e,t,kCt);return U0.vertexFormat=Ie.clone(i._vertexFormat,U0.vertexFormat),U0.stackPartitions=i._stackPartitions,U0.slicePartitions=i._slicePartitions,l(n)?(h.clone(i._radii,U0.radii),n._ellipsoidGeometry=new Qs(U0),n):(U0.radius=i._radii.x,new Lv(U0))};Lv.createGeometry=function(e){return Qs.createGeometry(e._ellipsoidGeometry)};var s$=Lv;function z0(e){}Object.defineProperties(z0.prototype,{ellipsoid:{get:he.throwInstantiationError},rectangle:{get:he.throwInstantiationError},projection:{get:he.throwInstantiationError}});z0.prototype.getNumberOfXTilesAtLevel=he.throwInstantiationError;z0.prototype.getNumberOfYTilesAtLevel=he.throwInstantiationError;z0.prototype.rectangleToNativeRectangle=he.throwInstantiationError;z0.prototype.tileXYToNativeRectangle=he.throwInstantiationError;z0.prototype.tileXYToRectangle=he.throwInstantiationError;z0.prototype.positionToTileXY=he.throwInstantiationError;var a$=z0;function VCt(e,t){this.rectangle=e,this.maxLevel=t}function _Ae(e){this.ellipsoid=y(e.ellipsoid,ee.default),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}_Ae.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles};function UCt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Yi({ellipsoid:e.ellipsoid});else throw new ce(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=P.toRadians(parseFloat(s.getAttribute("minx"))),c=P.toRadians(parseFloat(s.getAttribute("miny"))),u=P.toRadians(parseFloat(s.getAttribute("maxx"))),f=P.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new VCt(new re(a,c,u,f),d))}}function zCt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new ce(i)}async function HCt(e,t,n){try{let i=await t.fetchXML();UCt(e,i)}catch(i){zCt(t,i,n)}}function H0(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new me,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;typeof t=="string"&&(t=new vt(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(H0.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(){}}});H0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new _Ae(t),i=we.createIfNeeded(e);await HCt(n,i);let o=new H0(t);return n.build(o),o._resource=i,o};H0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new za({buffer:Ed(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:GCt(a,e,t,n),structure:a._terrainDataStructure})})};H0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var gAe=new re;function GCt(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let u=r[c];if(u.maxLevel<=i)continue;let f=u.rectangle,d=re.intersection(f,s,gAe);l(d)&&(DG(o,f,t*2,n*2,i+1)&&(a|=4),DG(o,f,t*2+1,n*2,i+1)&&(a|=8),DG(o,f,t*2,n*2+1,i+1)&&(a|=1),DG(o,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function DG(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(re.intersection(r,t,gAe))}H0.prototype.getTileDataAvailable=function(e,t,n){};H0.prototype.loadTileDataAvailability=function(e,t,n){};var c$=H0;function gC(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,He.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(gC.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(gC.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=WCt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});gC.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};gC.prototype.isDestroyed=function(){return!1};gC.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};gC.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=y(this.epoch,He.MINIMUM_VALUE),s=Z.secondsDifference(o,r),a=t.duration,c,u=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let f=i?y(this.tolerance,1):.001;Math.abs(c-u)>f&&(this._seeking=!0,t.currentTime=c)};function WCt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var l$=gC;var jCt={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},u$=Object.freeze(jCt);function qCt(e){return e=y(e,y.EMPTY_OBJECT),mC.fromIonAssetId(2426648,{requestVertexNormals:y(e.requestVertexNormals,!1)})}var O3=qCt;function YCt(e){return e=y(e,y.EMPTY_OBJECT),mC.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1),ellipsoid:ee.WGS84})}var yC=YCt;var XCt=1953029805,KCt=2917034100;function f$(e,t){if(f$.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new ce("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===XCt||o===KCt)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,u=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<u;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(f,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(f+4,!0),!0),s+=8,f+=24;if(s<a)for(f>=u&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(f)),s++,f++}f$.passThroughDataForTesting=!1;var M3=f$;var ZCt=new h;function $Ct(e,t,n,i){let o=lx(e,t,n,i,ZCt);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var d$=$Ct;function QCt(e){return e<=.04045?e*.07739938080495357:Math.pow((e+.055)*.9478672985781991,2.4)}var xC=QCt;function JCt(e){switch(e){case te.FLOAT:return"float";case te.FLOAT_VEC2:return"vec2";case te.FLOAT_VEC3:return"vec3";case te.FLOAT_VEC4:return"vec4";case te.FLOAT_MAT2:return"mat2";case te.FLOAT_MAT3:return"mat3";case te.FLOAT_MAT4:return"mat4";case te.SAMPLER_2D:return"sampler2D";case te.BOOL:return"bool"}}var h$=JCt;function eAt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var L3=eAt;var tAt=new h(1,1,1);function m$(e){e=y(e,tAt),this._dimensions=h.clone(e)}Object.defineProperties(m$.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var nAt=new h;m$.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,nAt),i=P.randomBetween(-n.x,n.x),o=P.randomBetween(-n.y,n.y),r=P.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var p$=m$;function dp(){this.featurePropertiesDirty=!1}Object.defineProperties(dp.prototype,{featuresLength:{get:function(){he.throwInstantiationError()}},pointsLength:{get:function(){he.throwInstantiationError()}},trianglesLength:{get:function(){he.throwInstantiationError()}},geometryByteLength:{get:function(){he.throwInstantiationError()}},texturesByteLength:{get:function(){he.throwInstantiationError()}},batchTableByteLength:{get:function(){he.throwInstantiationError()}},innerContents:{get:function(){he.throwInstantiationError()}},ready:{get:function(){he.throwInstantiationError()}},tileset:{get:function(){he.throwInstantiationError()}},tile:{get:function(){he.throwInstantiationError()}},url:{get:function(){he.throwInstantiationError()}},batchTable:{get:function(){he.throwInstantiationError()}},metadata:{get:function(){he.throwInstantiationError()},set:function(e){he.throwInstantiationError()}},group:{get:function(){he.throwInstantiationError()},set:function(e){he.throwInstantiationError()}}});dp.prototype.hasProperty=function(e,t){he.throwInstantiationError()};dp.prototype.getFeature=function(e){he.throwInstantiationError()};dp.prototype.applyDebugSettings=function(e,t){he.throwInstantiationError()};dp.prototype.applyStyle=function(e){he.throwInstantiationError()};dp.prototype.update=function(e,t){he.throwInstantiationError()};dp.prototype.pick=function(e,t,n){he.throwInstantiationError()};dp.prototype.isDestroyed=function(){he.throwInstantiationError()};dp.prototype.destroy=function(){he.throwInstantiationError()};var _$=dp;function Nv(e,t){this._conditionsExpression=Ge(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,oAt(this,t)}Object.defineProperties(Nv.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function iAt(e,t){this.condition=e,this.expression=t}function oAt(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new iAt(new If(a,t),new If(c,t)))}e._runtimeConditions=n}Nv.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};Nv.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};Nv.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],u=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);r+=`    ${a===0?"if":"else if"} (${u})
    {
        return ${f};
    }
`}return r=`${i} ${e}
{
${r}    return ${i}(1.0);
}
`,r};Nv.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var N3=Nv;function G0(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,rAt(this,e)}function rAt(e,t){t=y(Ge(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(l(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new If(o[r],i))}e._meta=n,e._ready=!0}function sr(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new If(String(t));if(typeof t=="string")return new If(t,n);if(l(t.conditions))return new N3(t,n)}else return;return t}function ar(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return Ge(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(G0.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=sr(this,e),this._style.show=ar(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=sr(this,e),this._style.color=ar(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=sr(this,e),this._style.pointSize=ar(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=sr(this,e),this._style.pointOutlineColor=ar(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=sr(this,e),this._style.pointOutlineWidth=ar(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=sr(this,e),this._style.labelColor=ar(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=sr(this,e),this._style.labelOutlineColor=ar(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=sr(this,e),this._style.labelOutlineWidth=ar(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=sr(this,e),this._style.font=ar(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=sr(this,e),this._style.labelStyle=ar(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=sr(this,e),this._style.labelText=ar(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=sr(this,e),this._style.backgroundColor=ar(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=sr(this,e),this._style.backgroundPadding=ar(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=sr(this,e),this._style.backgroundEnabled=ar(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=sr(this,e),this._style.scaleByDistance=ar(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=sr(this,e),this._style.translucencyByDistance=ar(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=sr(this,e),this._style.distanceDisplayCondition=ar(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=sr(this,e),this._style.heightOffset=ar(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=sr(this,e),this._style.anchorLineEnabled=ar(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=sr(this,e),this._style.anchorLineColor=ar(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=sr(this,e),this._style.image=ar(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=sr(this,e),this._style.disableDepthTestDistance=ar(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=sr(this,e),this._style.horizontalOrigin=ar(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=sr(this,e),this._style.verticalOrigin=ar(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=sr(this,e),this._style.labelHorizontalOrigin=ar(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=sr(this,e),this._style.labelVerticalOrigin=ar(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});G0.fromUrl=function(e){return we.createIfNeeded(e).fetchJson(e).then(function(n){return new G0(n)})};G0.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};G0.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};G0.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};G0.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var bC=G0;function F3(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new oC({comparator:F3.comparator})}F3.prototype.addSubtree=function(e){let t=new sAt(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};F3.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};F3.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function sAt(e,t){this.subtree=e,this.stamp=t}var B3=F3;function IG(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(IG.prototype,{metadataTable:{get:function(){return this._metadataTable}}});IG.fromJson=async function(e,t,n,i){let o;l(t)?o={json:t,binary:void 0}:o=cAt(n);let r=await aAt(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let d=0;d<a;++d){let p=o.json.bufferViews[d],g=p.byteOffset,m=g+p.byteLength,b=r[p.buffer].subarray(g,m);s[d]=b}let c=o.json.voxelTable,u=o.json.propertyTables[c],f=new IG(e);return f._metadataTable=new Nl({count:u.count,properties:u.properties,class:i.classes[u.class],bufferViews:s}),f};function aAt(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(l(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(u){return new Uint8Array(u)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function cAt(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=Mo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var k3=IG;function PG(e){e=y(e,y.EMPTY_OBJECT),this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new B3}PG.fromUrl=async function(e){let t=we.createIfNeeded(e),n=await t.fetchJson();uAt(n);let i=pAt(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=oi(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,u=new Ub({metadataJson:a,schema:c}),f=new PG;_At(f,u,s);let d=new Hb(t,o,c),{shape:p,minBounds:g,maxBounds:m,shapeTransform:x,globalTransform:b}=fAt(o);f.shape=p,f.minBounds=g,f.maxBounds=m,f.dimensions=h.unpack(r.dimensions),f.shapeTransform=x,f.globalTransform=b,f.maximumTileCount=lAt(u);let T,C;return l(r.padding)&&(T=h.unpack(r.padding.before),C=h.unpack(r.padding.after)),f.paddingBefore=T,f.paddingAfter=C,f._implicitTileset=d,Ci.unload(i),f};function lAt(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(ub.TILESET_TILE_COUNT)}function uAt(e){let t=e.root;if(!l(t.content))throw new ce("Root must have content");if(!oi(t.content,"3DTILES_content_voxels"))throw new ce("Root tile content must have 3DTILES_content_voxels extension");if(!oi(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new ce("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!oi(e,"3DTILES_metadata"))throw new ce("Tileset must have a metadata schema")}function fAt(e){let t=e.boundingVolume,n;if(l(e.transform)?n=F.unpack(e.transform):n=F.clone(F.IDENTITY),l(t.box))return hAt(t.box,n);if(l(t.region))return dAt(t.region);if(oi(t,"3DTILES_bounding_volume_cylinder"))return mAt(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new ce("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function dAt(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=F.fromScale(ee.WGS84.radii),c=new h(t,n,r),u=new h(i,o,s);return{shape:Ni.ELLIPSOID,minBounds:c,maxBounds:u,shapeTransform:a,globalTransform:F.clone(F.IDENTITY)}}function hAt(e,t){let n=vn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Ni.BOX,minBounds:h.clone(ap.DefaultMinBounds),maxBounds:h.clone(ap.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function mAt(e,t){let n=vn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Ni.CYLINDER,minBounds:h.clone(cp.DefaultMinBounds),maxBounds:h.clone(cp.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function pAt(e,t){let{schemaUri:n,schema:i}=e;return l(n)?Ci.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Ci.getSchemaLoader({schema:i})}function _At(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([d,p])=>{let{type:g,componentType:m}=p,x=r?.properties[d].min,b=r?.properties[d].max,T=At.getComponentCount(g),C=yAe(x,T),A=yAe(b,T);return{id:d,type:g,componentType:m,minValue:C,maxValue:A}});e.names=a.map(d=>d.id),e.types=a.map(d=>d.type),e.componentTypes=a.map(d=>d.componentType);let c=a.map(d=>d.minValue),u=a.map(d=>d.maxValue),f=c.some(l);e.minimumValues=f?c:void 0,e.maximumValues=f?u:void 0}function yAe(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function gAt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=Sm(o);return await k3.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function yAt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=Sm(a);return o=await lb.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}PG.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),o=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new Gb({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),u=c.isSubtreeRoot()&&c.level>0,f=u?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return yAt(this,f).then(function(p){return(u?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?gAt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var g$=PG;function y$(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(y$.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});y$.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=h.fromElements(i,o,r,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var V3=y$;var x$={CUMULUS:0};x$.validate=function(e){return e===x$.CUMULUS};var Fv=Object.freeze(x$);function Hh(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),!l(e.scale)&&l(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new z(this._maximumSize.x,this._maximumSize.y);else{this._scale=z.clone(y(e.scale,new z(20,12)));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=H.clone(y(e.color,H.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var xAt=Hh.SHOW_INDEX=0,bAt=Hh.POSITION_INDEX=1,TAt=Hh.SCALE_INDEX=2,CAt=Hh.MAXIMUM_SIZE_INDEX=3,AAt=Hh.SLICE_INDEX=4,EAt=Hh.BRIGHTNESS_INDEX=5,SAt=Hh.COLOR_INDEX=6;Hh.NUMBER_OF_PROPERTIES=7;function TC(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(Hh.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,TC(this,xAt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),TC(this,bAt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;z.equals(t,e)||(z.clone(e,t),TC(this,TAt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),TC(this,CAt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),TC(this,SAt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,TC(this,AAt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,TC(this,EAt))}}});Hh.prototype._destroy=function(){this._cloudCollection=void 0};var sf=Hh;var af,RG=new h,vAt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},wAt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},DAt=sf.SHOW_INDEX,IAt=sf.POSITION_INDEX,PAt=sf.SCALE_INDEX,RAt=sf.MAXIMUM_SIZE_INDEX,OAt=sf.SLICE_INDEX,MAt=sf.BRIGHTNESS_INDEX,LAt=sf.NUMBER_OF_PROPERTIES,NAt=sf.COLOR_INDEX;function Gh(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(LAt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=h.clone(y(e.noiseOffset,h.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:xAe(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function xAe(e){return function(){return RG.x=e._textureSliceWidth,RG.y=e._noiseTextureRows,RG.z=1/e._noiseTextureRows,RG}}Object.defineProperties(Gh.prototype,{length:{get:function(){return T$(this),this._clouds.length}}});function bAe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Gh.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,Fv.CUMULUS),n;return t===Fv.CUMULUS&&(n=new sf(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};Gh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Gh.prototype.removeAll=function(){bAe(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function T$(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}Gh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};Gh.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};Gh.prototype.get=function(e){return T$(this),this._clouds[e]};var FAt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),BAt=new Uint16Array([0,1,2,0,2,3]);function kAt(e){let t=_t.createVertexBuffer({context:e,typedArray:FAt,usage:Fe.STATIC_DRAW}),n=_t.createIndexBuffer({context:e,typedArray:BAt,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new ti({context:e,attributes:i,indexBuffer:n})}var C$;function VAt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(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,o[r+4]=s+2,o[r+5]=s+3;return n=_t.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function UAt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=_t.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function zAt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=_t.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function HAt(e,t,n){let i=[{index:af.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:af.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:zAt(e)});let o=n?t:4*t;return new Dp(e,i,o,n)}var b$=new Gn;function TAe(e,t,n,i){let o,r=n[af.positionHighAndScaleX],s=n[af.positionLowAndScaleY],a=i.position;Gn.fromCartesian(a,b$);let c=i.scale,u=b$.high,f=b$.low;e._instanced?(o=i._index,r(o,u.x,u.y,u.z,c.x),s(o,f.x,f.y,f.z,c.y)):(o=i._index*4,r(o+0,u.x,u.y,u.z,c.x),r(o+1,u.x,u.y,u.z,c.x),r(o+2,u.x,u.y,u.z,c.x),r(o+3,u.x,u.y,u.z,c.x),s(o+0,f.x,f.y,f.z,c.y),s(o+1,f.x,f.y,f.z,c.y),s(o+2,f.x,f.y,f.z,c.y),s(o+3,f.x,f.y,f.z,c.y))}function CAe(e,t,n,i){let o,r=n[af.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function AAe(e,t,n,i){let o,r=n[af.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function EAe(e,t,n,i){let o,r=n[af.color],s=i.color,a=H.floatToByte(s.red),c=H.floatToByte(s.green),u=H.floatToByte(s.blue),f=H.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,u,f)):(o=i._index*4,r(o+0,a,c,u,f),r(o+1,a,c,u,f),r(o+2,a,c,u,f),r(o+3,a,c,u,f))}function GAt(e,t,n,i){TAe(e,t,n,i),CAe(e,t,n,i),AAe(e,t,n,i),EAe(e,t,n,i)}function WAt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=kAt(a),o._spNoise=Qt.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,u=o.noiseOffset;o._noiseTexture=new Pt({context:a,width:r*r/s,height:r*s,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA,sampler:new $t({wrapS:Tn.REPEAT,wrapT:Tn.REPEAT,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})});let f=new Nc({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:xAe(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return u}},persists:!1,owner:e,postExecute:function(d){o._ready=!0,o._loading=!1}});t.commandList.push(f),o._loading=!0}function jAt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=HAt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];GAt(e,t,s,c)}n._vaf.commit(C$(i))}}var qAt=[];function YAt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,u=qAt;u.length=0,(c[IAt]||c[PAt])&&u.push(TAe),(c[DAt]||c[MAt])&&u.push(CAe),(c[RAt]||c[OAt])&&u.push(AAe),c[NAt]&&u.push(EAe);let f=u.length,d=i._vaf.writers,p,g,m;if(a/r>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._vaf.commit(C$(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function XAt(e,t,n,i){let o=t.context,r=e,s=new Ue({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new Ue({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=Qt.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:af}),r._rs=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!1,blending:un.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function KAt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let u=0;u<c;u++){let f=s[u];l(f)||(f=s[u]=new Ze),f.pass=ve.TRANSLUCENT,f.owner=e,f.uniformMap=o,f.count=a[u].indicesCount,f.vertexArray=a[u].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),r.push(f)}}}Gh.prototype.update=function(e){if(T$(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&&WAt(this,e,A3,C3),this._instanced=e.context.instancedArrays,af=this._instanced?wAt:vAt,C$=this._instanced?UAt:VAt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?jAt(this,e):r>0&&YAt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&XAt(this,e,T3,b3),KAt(this,e))};Gh.prototype.isDestroyed=function(){return!1};Gh.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),bAe(this._clouds),ue(this)};var A$=Gh;var ZAt=P.toRadians(30);function E$(e){this._angle=y(e,ZAt)}Object.defineProperties(E$.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});E$.prototype.emit=function(e){let t=Math.tan(this._angle),n=P.randomBetween(0,P.TWO_PI),i=P.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=h.fromElements(o,r,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var S$=E$;function U3(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); }
`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); }
`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); }
`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); }
`;break;case"vec4":r=`vec4 getColor() { return ${o}; }
`;break}let s=`in vec3 position3DHigh;
in vec3 position3DLow;
in float batchId;
${n?"":`in ${i} ${t};
`}out ${i} ${o};
void main()
{
vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow);
${n?`${o} = czm_batchTable_${t}(batchId);
`:`${o} = ${t};
`}gl_Position = czm_modelViewProjectionRelativeToEye * p;
}`,a=`in ${i} ${o};
${r}
void main()
{
out_FragColor = getColor();
}`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=no.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(U3.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}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});U3.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;U3.prototype.isTranslucent=no.prototype.isTranslucent;U3.prototype.getRenderState=no.prototype.getRenderState;var v$=U3;function OG(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this.id=e.id,this._id=void 0,this._primitive=void 0}OG.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!F.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=F.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new St({geometry:new Z_({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:Qr.VERTEX_FORMAT,colors:[H.RED,H.RED],arcType:Jt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),n=new St({geometry:new Z_({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:Qr.VERTEX_FORMAT,colors:[H.GREEN,H.GREEN],arcType:Jt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),i=new St({geometry:new Z_({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:Qr.VERTEX_FORMAT,colors:[H.BLUE,H.BLUE],arcType:Jt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this});this._primitive=new Dn({geometryInstances:[t,n,i],appearance:new Qr,asynchronous:!1})}this._primitive.update(e)}};OG.prototype.isDestroyed=function(){return!1};OG.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var z3=OG;function $At(e){this.direction=h.clone(e.direction),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,1)}var w$=$At;var H3=`in vec3 v_positionMC;
in vec3 v_positionEC;
in vec2 v_st;

void main()
{
    czm_materialInput materialInput;

    vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)));
#ifdef FACE_FORWARD
    normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);
#endif

    materialInput.s = v_st.s;
    materialInput.st = v_st;
    materialInput.str = vec3(v_st, 0.0);

    // Convert tangent space material normal to eye space
    materialInput.normalEC = normalEC;
    materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC);

    // Convert view vector to world space
    vec3 positionToEyeEC = -v_positionEC;
    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 G3=`in vec3 position3DHigh;
in vec3 position3DLow;
in vec2 st;
in float batchId;

out vec3 v_positionMC;
out vec3 v_positionEC;
out vec2 v_st;

void main()
{
    vec4 p = czm_computePosition();

    v_positionMC = position3DHigh + position3DLow;           // position in model coordinates
    v_positionEC = (czm_modelViewRelativeToEye * p).xyz;     // position in eye coordinates
    v_st = st;

    gl_Position = czm_modelViewProjectionRelativeToEye * p;
}
`;function CC(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=l(e.material)?e.material:qi.fromType(qi.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,G3),this._fragmentShaderSource=y(e.fragmentShaderSource,H3),this._renderState=no.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(CC.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 CC.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});CC.VERTEX_FORMAT=Ie.POSITION_AND_ST;CC.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;CC.prototype.isTranslucent=no.prototype.isTranslucent;CC.prototype.getRenderState=no.prototype.getRenderState;var D$=CC;function ou(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,ou.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,ou.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,ou.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,ou.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,ou.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new me,this._nominalFrameRate=new me,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){QAt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){JAt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}ou.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};ou.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new ou({scene:e})),e._frameRateMonitor};Object.defineProperties(ou.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});ou.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};ou.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};ou.prototype.isDestroyed=function(){return!1};ou.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function QAt(e,t){if(e._pauseCount>0)return;let n=xi();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Yn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Yn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Yn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function JAt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var W3=ou;var SAe=Vo(zZ(),1);function I$(){this._image=new Image}I$.prototype.isReady=function(){return!0};I$.prototype.shouldDiscardImage=function(e){return e===this._image};function AC(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._tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new vt(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new I$),this._errorEvent=new me}Object.defineProperties(AC.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.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._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}}});AC.fromMetadata=function(e,t){if(!e.imageryPresent)throw new ce(`The server ${e.url} doesn't have imagery`);let n=new AC(t);return n._metadata=e,n};AC.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};AC.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=Ag.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let u=new Ko({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,u);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=eEt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(u){M3(r.key,u);let f=new Uint8Array(u),d,p=r.protoImagery;if((!l(p)||!p)&&(d=tEt(f)),!l(d)&&(!l(p)||p)){let g=nEt(f);d=g.imageType,f=g.imageData}return!l(d)||!l(f)?o:nb({uint8Array:f,format:d,flipY:!0})})};AC.prototype.pickFeatures=function(e,t,n,i,o){};function eEt(e,t,n,i,o,r){let s=Ag.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function tEt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function nEt(e){let t=SAe.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new ce("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var P$=AC;var iEt=new H(1,1,1,.4),oEt=new H(0,1,0,.05),rEt=new H(0,.5,0,.2);function EC(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._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Yi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,iEt),this._glowColor=y(e.glowColor,oEt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,rEt),this._errorEvent=new me,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas()}Object.defineProperties(EC.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},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(){}},hasAlphaChannel:{get:function(){return!0}}});EC.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};EC.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};EC.prototype.getTileCredits=function(e,t,n){};EC.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};EC.prototype.pickFeatures=function(e,t,n,i,o){};var R$=EC;function Wh(){}Wh._maxDecodingConcurrency=Math.max(Ht.hardwareConcurrency-1,1);Wh._decodeTaskProcessor=new pi("decodeI3S",Wh._maxDecodingConcurrency);Wh._promise=void 0;async function sEt(){if(await Wh._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return Wh._decodeTaskProcessor;throw new ce("I3S decoder could not be initialized.")}Wh.decode=async function(e,t,n,i,o){return l(Wh._promise)||(Wh._promise=sEt()),Wh._promise.then(function(r){let s=n._parent._data,a=n._parent._inverseRotationMatrix,c=0,u=0,f=0;l(s.obb)?(c=s.obb.center[0],u=s.obb.center[1],f=s.obb.center[2]):l(s.mbs)&&(c=s.mbs[0],u=s.mbs[1],f=s.mbs[2]);let d=$.fromRotationX(-P.PI_OVER_TWO),p=new $;$.multiply(d,a,p);let g=fe.fromDegrees(c,u,f),m=ee.WGS84.cartographicToCartesian(g),x={binaryData:n._data,featureData:l(i)&&l(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:ee.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:g,cartesianCenter:m,parentRotation:p,enableFeatures:n._dataProvider.showFeatures,splitGeometryByColorTransparency:n._dataProvider.adjustMaterialAlphaMode,symbologyData:o,calculateNormals:n._dataProvider.calculateNormals};return r.scheduleTask(x)})};var j3=Wh;function O$(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(O$.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});O$.prototype.load=async function(){return this._data=await jh.loadJson(this._resource),this._data};var q3=O$;function Eg(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider,this._loadPromise=void 0;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(Eg.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){if(l(this._values)){if(l(this._values.attributeValues))return this._values.attributeValues;if(l(this._values.objectIds))return this._values.objectIds}return[]}},name:{get:function(){return this._storageInfo.name}}});function MG(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}function aEt(e){return e==="String"?1:MG(e)}async function cEt(e){let t=await e._dataProvider._loadBinary(e._resource),n=new DataView(t);e._data=t,e._validateHeader(n);let i=e._parseHeader(n),o=e._getBodyOffset(i);e._validateBody(n,o),e._parseBody(n,o)}Eg.prototype.load=function(){return l(this._loadPromise)?this._loadPromise:(this._loadPromise=cEt(this).catch(function(e){console.error(e)}),this._loadPromise)};Eg.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};Eg.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};Eg.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=i==="ObjectIds"?"objectIds":i,r=this._storageInfo[o];if(l(r)){this._values[o]=[];for(let s=0;s<this._header.count;++s)if(r.valueType!=="String"){let a=this._parseValue(e,r.valueType,t);this._values[o].push(a.value),t=a.offset}else{let a=this._values.attributeByteCounts[s],c="";for(let u=0;u<a;++u){let f=this._parseValue(e,r.valueType,t);f.value.charCodeAt(0)!==0&&(c+=f.value),t=f.offset}this._values[o].push(c)}}}};Eg.prototype._getBodyOffset=function(e){let t=0;return l(this._storageInfo.attributeValues)?t=MG(this._storageInfo.attributeValues.valueType):l(this._storageInfo.objectIds)&&(t=MG(this._storageInfo.objectIds.valueType)),t>0?Math.ceil(e/t)*t:e};Eg.prototype._validateHeader=function(e){let t=0;for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n];t+=aEt(i.valueType)}if(e.byteLength<t)throw new ce(`Invalid attribute buffer size (field: ${this.name}, header: ${t}, actual: ${e.byteLength})`)};Eg.prototype._validateBody=function(e,t){if(!l(this._header.count))throw new ce(`Invalid attribute buffer (field: ${this.name}, count is missing)`);let n;for(let i=0;i<this._storageInfo.ordering.length&&t<e.byteLength;i++){let o=this._storageInfo.ordering[i],r=o==="ObjectIds"?"objectIds":o,s=this._storageInfo[r];if(l(s))if(s.valueType!=="String"){r==="attributeByteCounts"&&(n=t);let a=MG(s.valueType);t+=a*this._header.count}else{if(!l(n))throw new ce(`Invalid attribute buffer (field: ${this.name}, attributeByteCounts is missing)`);for(let a=0;a<this._header.count&&t<e.byteLength;++a){let c=this._parseValue(e,this._storageInfo.attributeByteCounts.valueType,n);t+=c.value,n=c.offset}}else throw new ce(`Invalid attribute buffer (field: ${this.name}, ${r} is missing)`)}if(e.byteLength<t)throw new ce(`Invalid attribute buffer size (field: ${this.name}, expected: ${t}, actual: ${e.byteLength})`)};var Y3=Eg;function X3(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(X3.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});X3.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var lEt=new h,uEt=new h,fEt=new h,dEt=new h,hEt=new h;function M$(e,t,n,i){let o=h.subtract(i,n,lEt),r=h.cross(o,h.subtract(e,n,uEt),dEt),s=h.cross(o,h.subtract(t,n,fEt),hEt);return h.dot(r,s)>=0}var mEt=new h,pEt=new h,_Et=new h,gEt=new h,yEt=new h,xEt=new h,bEt=new h,TEt=new h,CEt=new h,AEt=new h;X3.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,$.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,u=this._customAttributes.positions,f=this._customAttributes.indices,d;l(f)?d=f.length:d=u.length/3;for(let p=0;p<d;p++){let g,m,x;l(f)?(g=f[p],m=f[p+1],x=f[p+2]):(g=p*3,m=p*3+1,x=p*3+2);let b=h.fromElements(u[g*3],u[g*3+1],u[g*3+2],mEt),T=h.fromElements(u[m*3],u[m*3+1],u[m*3+2],pEt),C=new h(u[x*3],u[x*3+1],u[x*3+2],_Et);if(!M$(i,b,T,C)||!M$(i,T,b,C)||!M$(i,C,b,T))continue;let A=h.subtract(T,b,gEt),E=h.subtract(C,b,yEt),v=h.cross(A,E,xEt);if(h.magnitude(v)===0)continue;let D=h.normalize(v,bEt),O=h.subtract(i,b,TEt),R=Math.abs(h.dot(O,D));if(R<o){o=R,r=p;let M=h.magnitudeSquared(h.subtract(i,b,O)),N=h.magnitudeSquared(h.subtract(i,T,CEt)),_=h.magnitudeSquared(h.subtract(i,C,AEt));M<N&&M<_?(a=g,c=b,s=M):N<_?(a=m,c=T,s=N):(a=x,c=C,s=_)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};function vAe(e){let t=[],n=e.length;for(let i=0;i<n;i++)i<3?t.push(xC(e[i])):t.push(e[i]);return t}X3.prototype._generateGltf=function(e,t,n,i,o,r,s,a){let c={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},u=!1,f,d="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let A=this._parent._data.mesh.material.definition;if(A>=0&&A<this._layer._data.materialDefinitions.length){if(f=this._layer._data.materialDefinitions[A],c=f,l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorTexture)){u=!0,c.pbrMetallicRoughness.baseColorTexture.index=0;let E="0";if(l(this._layer._data.textureSetDefinitions))for(let v=0;v<this._layer._data.textureSetDefinitions.length;v++){let D=this._layer._data.textureSetDefinitions[v];for(let O=0;O<D.formats.length;O++){let R=D.formats[O];if(R.format==="jpg"){E=R.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(d=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${E}`}).url)}l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorFactor)&&(c.pbrMetallicRoughness.baseColorFactor=vAe(c.pbrMetallicRoughness.baseColorFactor)),l(c.emissiveFactor)&&(c.emissiveFactor=vAe(c.emissiveFactor))}}else l(this._parent._data.textureData)&&(u=!0,d=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,c.pbrMetallicRoughness.baseColorTexture={index:0});l(c.alphaMode)&&(c.alphaMode=c.alphaMode.toUpperCase());let p=[],g=[],m=[];u&&(p=[{sampler:0,source:0}],g=[{uri:d}],m=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]);let x=[],b=n.length;for(let C=0;C<b;C++){let A=n[C].primitives,E=A.length;for(let v=0;v<E;v++){let D=A[v];if(l(D.material)){for(;D.material>=x.length;){let R=Ge(c,!0);x.push(R)}let O=x[D.material];l(D.extra)&&D.extra.isTransparent?l(O.alphaMode)||(O.alphaMode="BLEND"):O.alphaMode==="BLEND"&&(O.alphaMode="OPAQUE")}}}return{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:x,textures:p,images:g,samplers:m,asset:{version:"2.0"},extensions:s,extensionsUsed:a}};var Bv=X3;function Rc(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0,this._symbologyData=void 0}Object.defineProperties(Rc.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Rc.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new Xf(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await jh.loadJson(this._resource);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&l(e._parent.resource)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};function wAe(e,t){let n=new Y3(e,t);return e._fields[t.name]=n,n.load()}Rc.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=[];if(l(e))for(let n=0;n<e.length;n++){let i=e[n],o=this._fields[i.name];l(o)?t.push(o.load()):t.push(wAe(this,i))}return Promise.all(t)};Rc.prototype.loadField=function(e){let t=this._fields[e];if(l(t))return t.load();let n=this._layer._data.attributeStorageInfo;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];if(o.name===e)return wAe(this,o)}return Promise.resolve()};Rc.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Rc.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Rc.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Rc(e,y(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Rc.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new Bv(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new Bv(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Rc.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new q3(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Rc.prototype._clearGeometryData=function(){this._geometryData=[]};Rc.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=fe.fromDegrees(e.center[0],e.center[1],e.center[2]):n=fe.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let T=0;T<this._dataProvider._geoidDataList.length;T++){let C=this._dataProvider._geoidDataList[T],A=C.projection.project(n);if(A.x>C.nativeExtent.west&&A.x<C.nativeExtent.east&&A.y>C.nativeExtent.south&&A.y<C.nativeExtent.north){n.height+=wEt(A.x,A.y,C);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=ee.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=ee.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let T=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/T}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let T=this._data.lodThreshold;s=r/T}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let T=0;T<this._data.lodSelection.length;T++)this._data.lodSelection[T].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[T].maxError);s===1/0&&(s=1e5);let a=s*16,c=new Sa(0,0,0),u=Mt.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(u=new Oe(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=$.fromQuaternion(u),d=$.inverse(f,new $),p=new F(f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,o.x,o.y,o.z,1),g=F.inverse(p,new F),m=F.clone(p);l(this._parent._globalTransform)&&F.multiply(p,this._parent._inverseGlobalTransform,m),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=d;let x=[];for(let T=0;T<this._children.length;T++)x.push(this._children[T]._create3DTileDefinition());return{children:x,refine:"REPLACE",boundingVolume:i,transform:[m[0],m[4],m[8],m[12],m[1],m[5],m[9],m[13],m[2],m[6],m[10],m[14],m[3],m[7],m[11],m[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};Rc.prototype._loadSymbology=async function(){!l(this._symbologyData)&&l(this._layer._symbology)&&(this._symbologyData=await this._layer._symbology._getSymbology(this))};Rc.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=[this._loadGeometryData()];if(this._dataProvider.legacyVersion16&&t.push(this._loadFeatureData()),await Promise.all(t),l(this._geometryData)&&this._geometryData.length>0){this._dataProvider._applySymbology&&await this._loadSymbology();let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await j3.decode(o,r,s,this._featureData[0],this._symbologyData);if(!l(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors,a.meshData.rootExtensions,a.meshData.extensionsUsed),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};async function EEt(e){let t=e._layer._filters,n=[];for(let i=0;i<t.length;i++){let o=e.loadField(t[i].name);n.push(o)}return await Promise.all(n),t}function SEt(e,t,n){if(!l(n.values)||n.values.length===0)return!1;let i=l(t)?t.values:[],o;e<i.length&&(o=i[e]);let r=!1;for(let s=0;s<n.values.length;s++)if(n.values[s]===o){r=!0;break}return r}async function DAe(e,t){let n=e._tile.content.batchTable;if(l(n)&&n.featuresLength>0){n.setAllShow(!0);let i=await EEt(e);if(i.length>0)for(let o=0;o<n.featuresLength;o++)for(let r=0;r<i.length;r++){let s=i[r];if(!SEt(o,e._fields[s.name],s)){n.setShow(o,!1);break}}}t.show=!0}Rc.prototype._filterFeatures=function(){let e=[];for(let n=0;n<this._children.length;n++){let i=this._children[n]._filterFeatures();e.push(i)}let t=this._tile?.content?._model;if(l(this._geometryData)&&this._geometryData.length>0&&l(t)&&t.ready){t.show=!1;let n=DAe(this,t);e.push(n)}return Promise.all(e)};Xf.prototype._hookedRequestContent=Xf.prototype.requestContent;Xf.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading){this._isLoading=!0;let e=this;return this._i3sNode._createContentURL().then(t=>{if(!l(t)){e._isLoading=!1;return}return e._contentResource=new we({url:t}),e._hookedRequestContent()}).then(t=>{let n=t?._model;return l(e._i3sNode._geometryData)&&e._i3sNode._geometryData.length>0&&l(n)&&(n.show=!1,n.readyEvent.addEventListener(()=>{DAe(e._i3sNode,n)})),e._isLoading=!1,t})}};function vEt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function LG(e,t,n,i){let o=e+t*n;return i[o]}function wEt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,u=a<n.height?a+1:a;a=n.height-1-a,u=n.height-1-u;let f=LG(s,a,n.width,n.buffer),d=LG(c,a,n.width,n.buffer),p=LG(s,u,n.width,n.buffer),g=LG(c,u,n.width,n.buffer),m=vEt(o,r,f,d,p,g);return m=m*n.scale+n.offset,m}Object.defineProperties(Xf.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var kv=Rc;function NG(e){this._layer=e,this._defaultSymbology=void 0,this._valueFields=[],this._uniqueValueHash=void 0,this._classBreaksHash=void 0,this._parseLayerSymbology()}Object.defineProperties(NG.prototype,{defaultSymbology:{get:function(){return this._defaultSymbology}}});function L$(e,t){let n=[];for(let i=0;i<e.length;i++){let o=H.byteToFloat(e[i]);i<3?n.push(xC(o)):n.push(o)}return n.length===3&&(l(t)?n.push(1-t/100):n.push(1)),n}function Vv(e,t){let n={edges:void 0,material:void 0};if(l(e)&&l(e.symbolLayers))for(let i=0;i<e.symbolLayers.length;i++){let o=e.symbolLayers[i];if(o.type==="Fill"){let r=o.edges,s=o.outline;if(l(r)?(n.edges={},l(r.color)&&(n.edges.color=L$(r.color,r.transparency))):l(s)&&(n.edges={},l(s.color)&&(n.edges.color=L$(s.color,s.transparency))),!t){let a=o.material;l(a)&&(n.material={colorMixMode:a.colorMixMode},l(a.color)&&(n.material.color=L$(a.color,a.transparency)))}break}}return n}function DEt(e,t){if(l(e.uniqueValueGroups)){let n={};for(let i=0;i<e.uniqueValueGroups.length;i++){let o=e.uniqueValueGroups[i].classes;if(l(o))for(let r=0;r<o.length;r++){let s=Vv(o[r].symbol,t),a=o[r].values;for(let c=0;c<a.length;c++){let u=a[c],f=n;for(let d=0;d<u.length;d++){let p=u[d];d===u.length-1?f[p]=s:(l(f[p])||(f[p]={}),f=f[p])}}}}return n}if(l(e.uniqueValueInfos)){let n={};for(let i=0;i<e.uniqueValueInfos.length;i++){let o=e.uniqueValueInfos[i];n[o.value]=Vv(o.symbol,t)}return n}}function IEt(e,t){if(l(e.classBreakInfos)){let n=[...e.classBreakInfos];n.sort(function(o,r){let s=y(o.classMaxValue,o.classMinValue),a=y(r.classMaxValue,r.classMinValue);return s-a});let i={ranges:[],symbols:[]};l(e.minValue)&&(i.ranges.push(e.minValue),i.symbols.push(void 0));for(let o=0;o<n.length;o++){let r=n[o];l(r.classMinValue)&&(i.ranges.length===0||r.classMinValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMinValue),i.symbols.push(void 0)),l(r.classMaxValue)&&(i.ranges.length===0||r.classMaxValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMaxValue),i.symbols.push(Vv(r.symbol,t)))}return i.symbols.push(void 0),i}}NG.prototype._parseLayerSymbology=function(){let e=this._layer.data.drawingInfo;if(l(e)&&l(e.renderer)){let t=this._layer.data.cachedDrawingInfo,n=l(t)&&t.color===!0,i=e.renderer;i.type==="simple"?this._defaultSymbology=Vv(i.symbol,n):i.type==="uniqueValue"?(this._defaultSymbology=Vv(i.defaultSymbol,n),this._valueFields.push(i.field1),l(i.field2)&&this._valueFields.push(i.field2),l(i.field3)&&this._valueFields.push(i.field3),this._uniqueValueHash=DEt(i,n)):i.type==="classBreaks"&&(this._defaultSymbology=Vv(i.defaultSymbol,n),this._valueFields.push(i.field),this._classBreaksHash=IEt(i,n))}};function IAe(e,t,n,i){let o=t[n];if(i<o.length){let r=o[i],s=e[r];return l(s)&&++n<t.length?IAe(s,t,n,i):s}}function PEt(e,t){let n=0,i=e.length;if(n<i)do{let o=n+i>>>1;e[o]<t?n=o+1:i=o}while(n<i);return n}function REt(e,t,n){let i=t[n],o=PEt(e.ranges,i);return e.symbols[o]}NG.prototype._getSymbology=async function(e){let t={default:this._defaultSymbology};if(this._valueFields.length>0){let n=[];for(let r=0;r<this._valueFields.length;r++)n.push(e.loadField(this._valueFields[r]));await Promise.all(n);let i=[];for(let r=0;r<this._valueFields.length;r++)i.push(e.fields[this._valueFields[r]].values);let o;if(l(this._uniqueValueHash)?o=r=>IAe(this._uniqueValueHash,i,0,r):l(this._classBreaksHash)&&(o=r=>REt(this._classBreaksHash,i[0],r)),l(o)){let r=i[0];for(let s=0;s<r.length;s++){let a=o(s);l(a)&&(t[s]=a)}}}return t};var K3=NG;function ru(e,t,n){this._dataProvider=e,this._parent=n,!l(t.href)&&l(t.id)&&(t.href=`layers/${t.id}`);let i=this._parent.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new we({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._filters=[],this._symbology=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(ru.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});ru.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new ce(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(this._dataProvider.applySymbology&&(this._symbology=new K3(this)),await this._dataProvider.loadGeoidData(),await this._loadRootNode(e),await this._create3DTileset(e),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};ru.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let u=0;u<c.length;u++)s.push(c[u])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};ru.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n)){for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}if(l(n[0]))return{bufferIndex:0,definition:n,geometryBufferInfo:n[0]}}};ru.prototype._loadRootNode=function(e){if(l(this._data.nodePages)){let t=0;l(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new kv(this,t,!0)}else this._rootNode=new kv(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};ru.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage;return this._loadNodePage(t).then(function(i){return i.nodes[n]})};ru._fetchJson=function(e){return e.fetchJson()};ru.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=ru._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};ru.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=re.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=re.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};ru.prototype._create3DTileset=async function(e){let t={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n),o=this._symbology?.defaultSymbology?.edges?.color;l(o)&&!l(e?.outlineColor)&&(e=l(e)?Ge(e):{},e.outlineColor=H.fromCartesian4(oe.fromArray(o))),this._tileset=await ha.fromUrl(i,e),this._tileset.show=this._parent.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(r){r._i3sNode._clearGeometryData(),URL.revokeObjectURL(r._contentResource._url),r._contentResource=r._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(r){l(r._i3sNode)&&r._i3sNode._loadChildren()})};ru.prototype._updateVisibility=function(){l(this._tileset)&&(this._tileset.show=this._parent.show)};ru.prototype.filterByAttributes=function(e){this._filters=l(e)?Ge(e,!0):[];let t=this._rootNode;return l(t)?t._filterFeatures():Promise.resolve()};var SC=ru;function FG(e,t){this._dataProvider=e,this._resource=new we({url:t}),this._resource.setQueryParameters(e.resource.queryParameters),this._resource.appendForwardSlash()}Object.defineProperties(FG.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},names:{get:function(){let e=[],t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n)e.push(t[n].fieldName);return e}}});FG.prototype.load=async function(){return this._data=await jh.loadJson(this._resource),this._data};FG.prototype._getValues=function(e){let t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n){let i=t[n];if(i.fieldName===e)return l(i.mostFrequentValues)?[...i.mostFrequentValues]:[]}};var Z3=FG;function $3(e,t,n){this._dataProvider=e,this._parent=t,this._data=n,this._name=n.name,this._modelName=n.modelName,this._visibility=y(n.visibility,!0),this._resource=void 0,this._sublayers=[],this._i3sLayers=[]}Object.defineProperties($3.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},name:{get:function(){return this._name}},modelName:{get:function(){return this._modelName}},sublayers:{get:function(){return this._sublayers}},visibility:{get:function(){return this._visibility},set:function(e){if(this._visibility!==e){this._visibility=e;for(let t=0;t<this._i3sLayers.length;t++)this._i3sLayers[t]._updateVisibility()}}},show:{get:function(){return this._visibility&&this._parent.show}}});$3._fromData=async function(e,t,n,i){let o=new $3(e,i,n);if(o._data.layerType==="group"){let r=o._data.sublayers;if(l(r)){let s=[];for(let c=0;c<r.length;c++){let u=$3._fromData(e,t,r[c],o);s.push(u)}let a=await Promise.all(s);for(let c=0;c<a.length;c++){let u=a[c];o._sublayers.push(u),o._i3sLayers.push(...u._i3sLayers)}}}else if(o._data.layerType==="3DObject"){let r=t.concat(`/sublayers/${o._data.id}`),s=new we({url:r});s.setQueryParameters(e.resource.queryParameters),s.appendForwardSlash(),o._resource=s;let a=await jh.loadJson(o._resource),c=new SC(e,a,o);o._i3sLayers.push(c)}else console.log(`${o._data.layerType} layer ${o._data.name} is skipped as not supported.`);return o};var Q3=$3;var OAe=Vo(PAe(),1);function Ts(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._showFeatures=y(e.showFeatures,!1),this._adjustMaterialAlphaMode=y(e.adjustMaterialAlphaMode,!1),this._applySymbology=y(e.applySymbology,!1),this._calculateNormals=y(e.calculateNormals,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._sublayers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,this._attributeStatistics=[],this._layersExtent=[]}Object.defineProperties(Ts.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;for(let t=0;t<this._layers.length;t++)this._layers[t]._updateVisibility()}}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},sublayers:{get:function(){return this._sublayers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}},showFeatures:{get:function(){return this._showFeatures}},adjustMaterialAlphaMode:{get:function(){return this._adjustMaterialAlphaMode}},applySymbology:{get:function(){return this._applySymbology}},calculateNormals:{get:function(){return this._calculateNormals}}});Ts.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};Ts.prototype.isDestroyed=function(){return!1};Ts.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};Ts.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};Ts.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};Ts.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};function OEt(e,t){let n=e.resource.getUrlComponent(),i="";return n.match(/layers\/\d/)?i=`${n}`.replace(/\/+$/,""):i=`${n}`.replace(/\/?$/,"/").concat(`layers/${t}`),i}async function RAe(e,t,n){if(t.layerType==="Building"){l(n.showFeatures)||(e._showFeatures=!0),l(n.adjustMaterialAlphaMode)||(e._adjustMaterialAlphaMode=!0),l(n.applySymbology)||(e._applySymbology=!0),l(n.calculateNormals)||(e._calculateNormals=!0);let i=OEt(e,t.id);if(l(t.sublayers)){let o=[];for(let s=0;s<t.sublayers.length;s++){let a=Q3._fromData(e,i,t.sublayers[s],e);o.push(a)}let r=await Promise.all(o);for(let s=0;s<r.length;s++){let a=r[s];e._sublayers.push(a),e._layers.push(...a._i3sLayers)}}if(l(t.statisticsHRef)){let o=i.concat(`/${t.statisticsHRef}`),r=new Z3(e,o);await r.load(),e._attributeStatistics.push(r)}if(l(t.fullExtent)){let o=re.fromDegrees(t.fullExtent.xmin,t.fullExtent.ymin,t.fullExtent.xmax,t.fullExtent.ymax);e._layersExtent.push(o)}}else if(t.layerType==="3DObject"||t.layerType==="IntegratedMesh"){!l(n.calculateNormals)&&!l(t.textureSetDefinitions)&&(e._calculateNormals=!0);let i=new SC(e,t,e);e._layers.push(i),l(i._extent)&&e._layersExtent.push(i._extent)}else console.log(`${t.layerType} layer ${t.name} is skipped as not supported.`)}Ts.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e);n.setQueryParameters({f:"pjson"},!0);let i=await Ts.loadJson(n),o=new Ts(t);if(o._resource=n,o._data=i,l(i.layers)){let s=[];for(let a=0;a<i.layers.length;a++){let c=RAe(o,i.layers[a],t);s.push(c)}await Promise.all(s)}else await RAe(o,i,t);o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load(t.cesium3dTilesetOptions));return await Promise.all(r),o};Ts._fetchJson=function(e){return e.fetchJson()};Ts.loadJson=async function(e){let t=await Ts._fetchJson(e);if(l(t.error)){if(console.error("Failed to fetch I3S ",e.url),l(t.error.message)&&console.error(t.error.message),l(t.error.details))for(let n=0;n<t.error.details.length;n++)console.log(t.error.details[n]);throw new ce(t.error)}return t};Ts.prototype._loadBinary=async function(e){let t=await e.fetchArrayBuffer();if(t.byteLength>0&&new Uint8Array(t)[0]===123&&new TextDecoder().decode(t).includes("404"))throw new ce(`Failed to load binary: ${e.url}`);return t};Ts.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]=103,o.magic[1]=108,o.magic[2]=84,o.magic[3]=70,o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var MEt=new z;function LEt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=fe.fromRadians(t.west,t.north),a=fe.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),u=n.positionToTileXY(a,r);for(let d=c.x;d<=u.x;d++)for(let p=c.y;p<=u.y;p++){let g=z.fromElements(d,p,MEt),m=g.toString();if(!o.hasOwnProperty(m)){let x={x:g.x,y:g.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[m]=x,i.push(x)}}let f=[];for(let d=0;d<i.length;++d){let p=i[d],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);f.push(g)}return Promise.all(f).then(function(d){let p=[];for(let g=0;g<d.length;g++){let m={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},x=d[g],b="Geographic";n._projection instanceof wi&&(b="WebMercator");let T={projectionType:b,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(m.x,m.y,m.level),height:x._height,width:x._width,scale:x._structure.heightScale,offset:x._structure.heightOffset};if(x._encoding===ad.LERC){let C=OAe.default.decode(x._buffer);T.buffer=C.pixels[0]}else T.buffer=x._buffer;p.push(T)}return p})}async function NEt(e){let t=e._geoidTiledTerrainProvider;if(l(t))try{let n=await LEt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}Ts.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=NEt(this),this._geoidDataPromise)};Ts.prototype._computeExtent=function(){let e;for(let t=0;t<this._layersExtent.length;t++){let n=this._layersExtent[t];l(e)?re.union(e,n,e):e=re.clone(n)}this._extent=e};Ts.prototype.getAttributeNames=function(){let e=[];for(let t=0;t<this._attributeStatistics.length;++t)e.push(...this._attributeStatistics[t].names);return e};Ts.prototype.getAttributeValues=function(e){for(let t=0;t<this._attributeStatistics.length;++t){let n=this._attributeStatistics[t]._getValues(e);if(l(n))return n}return[]};Ts.prototype.filterByAttributes=function(e){let t=[];for(let n=0;n<this._layers.length;n++){let i=this._layers[n].filterByAttributes(e);t.push(i)}return Promise.all(t)};var jh=Ts;function MAe(){}Object.defineProperties(MAe.prototype,{color:{get:he.throwInstantiationError},intensity:{get:he.throwInstantiationError}});var N$=MAe;var FEt=/\/$/,LAe=new vt('&copy; <a href="https://www.mapbox.com/about/maps/">Mapbox</a> &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function Uv(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,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=we.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=y(e.tilesize,512);this._tilesize=o;let r=y(e.username,"mapbox");this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();FEt.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new vt(c))):c=LAe,this._resource=i,this._imageryProvider=new Ha({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(Uv.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}}});Uv.prototype.getTileCredits=function(e,t,n){};Uv.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Uv.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Uv._defaultCredit=LAe;var F$=Uv;function B$(e){}B$.prototype.isReady=function(){return!0};B$.prototype.shouldDiscardImage=function(e){return!1};var k$=B$;var BEt=new vt("MapQuest, Open Street Map and contributors, CC-BY-SA");function kG(e){e=y(e,y.EMPTY_OBJECT);let t=we.createIfNeeded(y(e.url,"https://tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}${e.retinaTiles?"@2x":""}.${y(e.fileExtension,"png")}`;let n=new rs({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(re.southwest(a),r),u=n.positionToTileXY(re.northeast(a),r),f=(Math.abs(u.x-c.x)+1)*(Math.abs(u.y-c.y)+1),d=y(e.credit,BEt);typeof d=="string"&&(d=new vt(d)),Ha.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(kG.prototype=Object.create(Ha.prototype),kG.prototype.constructor=kG);var Sg=kG;var kEt=new z(1,1);function V$(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=h.clone(y(e.position,h.ZERO)),this.velocity=h.clone(y(e.velocity,h.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=H.clone(y(e.startColor,H.WHITE)),this.endColor=H.clone(y(e.endColor,H.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=z.clone(y(e.imageSize,kEt)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(V$.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var NAe=new h;V$.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,NAe),h.add(this.position,NAe,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var zv=V$;function FAe(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(FAe.prototype,{complete:{get:function(){return this._complete}}});var U$=FAe;function BAe(e){}BAe.prototype.emit=function(e){he.throwInstantiationError()};var z$=BAe;var kAe=new z(1,1);function J3(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;l(t)||(t=new V3(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._emitterModelMatrix=F.clone(y(e.emitterModelMatrix,F.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new F,this._startColor=H.clone(y(e.color,y(e.startColor,H.WHITE))),this._endColor=H.clone(y(e.color,y(e.endColor,H.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=z.clone(y(e.imageSize,y(e.minimumImageSize,kAe))),this._maximumImageSize=z.clone(y(e.imageSize,y(e.maximumImageSize,kAe))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new me,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(J3.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._modelMatrix,e),F.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._emitterModelMatrix,e),F.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){H.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){H.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function VEt(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let d=o.length;for(let p=0;p<d;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,u=e._particlePool,f=Math.max(a-c.length-u.length,0);for(let d=0;d<f;++d){let p=new zv;p._billboard=r.add({image:s,show:!1}),u.push(p)}e._particleEstimate=a}function UEt(e){let t=e._particlePool.pop();return l(t)||(t=new zv),t}function zEt(e,t){e._particlePool.push(t)}function HEt(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let u=n[c];i.remove(u._billboard)}n.length=a}function GEt(e){l(e._billboard)&&(e._billboard.show=!1)}function VAe(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=P.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=P.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=P.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=P.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new H(i,o,r,s),n.scale=P.lerp(t.startScale,t.endScale,t.normalizedAge)}function WEt(e,t){t.startColor=H.clone(e._startColor,t.startColor),t.endColor=H.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=P.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=P.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=P.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=P.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=P.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function jEt(e,t){if(e._isComplete)return 0;t=P.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=P.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var VG=new h;J3.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new wu),this._updateParticlePool&&(VEt(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=Z.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?VAe(this,s):(GEt(s),zEt(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=jEt(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=F.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let u=this._combinedMatrix;for(r=0;r<c;r++)s=UEt(this),this._emitter.emit(s),h.add(s.position,s.velocity,VG),F.multiplyByPoint(u,VG,VG),s.position=F.multiplyByPoint(u,s.position,s.position),h.subtract(VG,s.position,s.velocity),h.normalize(s.velocity,s.velocity),WEt(this,s),VAe(this,s)}if(this._billboardCollection.update(e),this._previousTime=Z.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=P.mod(this._currentTime,this._lifetime),this.bursts){let u=this.bursts.length;for(r=0;r<u;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&HEt(this)};J3.prototype.isDestroyed=function(){return!1};J3.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var H$=J3;function cf(){he.throwInstantiationError()}cf.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(cf.prototype,{quadtree:{get:he.throwInstantiationError,set:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError}});cf.prototype.update=he.throwInstantiationError;cf.prototype.beginUpdate=he.throwInstantiationError;cf.prototype.endUpdate=he.throwInstantiationError;cf.prototype.getLevelMaximumGeometricError=he.throwInstantiationError;cf.prototype.loadTile=he.throwInstantiationError;cf.prototype.computeTileVisibility=he.throwInstantiationError;cf.prototype.showTileThisFrame=he.throwInstantiationError;cf.prototype.computeDistanceToTile=he.throwInstantiationError;cf.prototype.isDestroyed=he.throwInstantiationError;cf.prototype.destroy=he.throwInstantiationError;var G$=cf;function W$(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(W$.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});W$.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,P.PI),i=P.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(o,r,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var j$=W$;function ek(){}ek.prototype.evaluate=function(e,t){he.throwInstantiationError()};ek.prototype.evaluateColor=function(e,t){he.throwInstantiationError()};ek.prototype.getShaderFunction=function(e,t,n,i){he.throwInstantiationError()};ek.prototype.getVariables=function(){he.throwInstantiationError()};var q$=ek;function Hv(e){this._ready=!1,this._provider=void 0,this._errorEvent=new me,this._readyEvent=new me,YEt(this,e)}Object.defineProperties(Hv.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});Hv.fromWorldTerrain=function(e){return new Hv(yC(e))};Hv.fromWorldBathymetry=function(e){return new Hv(O3(e))};function qEt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function YEt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){qEt(e._errorEvent,i)}}var tk=Hv;function Gv(){}Gv.prototype.boundingVolume=void 0;Gv.prototype.boundingSphere=void 0;Gv.prototype.distanceToCamera=function(e){he.throwInstantiationError()};Gv.prototype.intersectPlane=function(e){he.throwInstantiationError()};Gv.prototype.createDebugVolume=function(e){he.throwInstantiationError()};var Y$=Gv;function nk(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Yi({ellipsoid:e.ellipsoid}),this._color=y(e.color,H.YELLOW),this._errorEvent=new me,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),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}Object.defineProperties(nk.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},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(){}},hasAlphaChannel:{get:function(){return!0}}});nk.prototype.getTileCredits=function(e,t,n){};nk.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};nk.prototype.pickFeatures=function(e,t,n,i,o){};var ik=nk;function X$(e){he.throwInstantiationError()}X$.prototype.isReady=he.throwInstantiationError;X$.prototype.shouldDiscardImage=he.throwInstantiationError;var K$=X$;var XEt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},Z$=Object.freeze(XEt);function UG(e,t){this.show=!0,l(e)||(e=new je),this.rectangle=je.clone(e),l(t)||(t=qi.fromType(qi.ColorType,{color:new H(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}UG.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!je.equals(t.viewport,this.rectangle))&&(this._rs=Ve.fromCache({blending:un.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new Ue({sources:[this._material.shaderSource,E3]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=ve.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};UG.prototype.isDestroyed=function(){return!1};UG.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var $$=UG;function Q$(){he.throwInstantiationError()}Object.defineProperties(Q$.prototype,{globalTransform:{get:he.throwInstantiationError},shapeTransform:{get:he.throwInstantiationError},shape:{get:he.throwInstantiationError},minBounds:{get:he.throwInstantiationError},maxBounds:{get:he.throwInstantiationError},dimensions:{get:he.throwInstantiationError},paddingBefore:{get:he.throwInstantiationError},paddingAfter:{get:he.throwInstantiationError},names:{get:he.throwInstantiationError},types:{get:he.throwInstantiationError},componentTypes:{get:he.throwInstantiationError},minimumValues:{get:he.throwInstantiationError},maximumValues:{get:he.throwInstantiationError},maximumTileCount:{get:he.throwInstantiationError},keyframeCount:{get:he.throwInstantiationError},timeIntervalCollection:{get:he.throwInstantiationError}});Q$.prototype.requestData=he.throwInstantiationError;var J$=Q$;function vC(){he.throwInstantiationError()}Object.defineProperties(vC.prototype,{orientedBoundingBox:{get:he.throwInstantiationError},boundingSphere:{get:he.throwInstantiationError},boundTransform:{get:he.throwInstantiationError},shapeTransform:{get:he.throwInstantiationError},shaderUniforms:{get:he.throwInstantiationError},shaderDefines:{get:he.throwInstantiationError},shaderMaximumIntersectionsLength:{get:he.throwInstantiationError}});vC.prototype.update=he.throwInstantiationError;vC.prototype.computeOrientedBoundingBoxForTile=he.throwInstantiationError;vC.prototype.computeOrientedBoundingBoxForSample=he.throwInstantiationError;vC.DefaultMinBounds=he.throwInstantiationError;vC.DefaultMaxBounds=he.throwInstantiationError;var eQ=vC;var KEt=new H,ZEt=new H,$Et=new H,QEt=new H,UAe=new oe,ok=new Uint8Array(4);function zAe(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return H.lerp(t.color,n.color,o,i)}function zG(e,t){return{height:e,color:H.clone(t)}}function HAe(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?H.equals(t.color,i[n-1].color):!1,a=r?H.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?H.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function JEt(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],m=P.clamp(g.height,su._minimumHeight,su._maximumHeight),x=H.clone(g.color,KEt);x.red*=x.alpha,x.green*=x.alpha,x.blue*=x.alpha,c.push(zG(m,x))}let u=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],m=c[n+1];u=u&&g.height<=m.height,f=f&&g.height>=m.height}f?c=c.reverse():u||ug(c,function(g,m){return P.sign(g.height-m.height)});let d=y(r.extendDownwards,!1),p=y(r.extendUpwards,!1);c.length===1&&!d&&!p&&(d=!0,p=!0),d&&c.splice(0,0,zG(su._minimumHeight,c[0].color)),p&&c.splice(c.length,0,zG(su._maximumHeight,c[c.length-1].color)),c=HAe(c),i.push(c)}return i}function eSt(e){let t=JEt(e),n=[],i=[],o;function r(u,f){n.push(zG(u,f))}function s(u,f,d){let p=H.multiplyByScalar(d,1-f.alpha,QEt);p=H.add(p,f,p),r(u,p)}let a=t.length;for(o=0;o<a;o++){let u=t[o],f=0,d=0;i=n,n=[];let p=u.length,g=i.length;for(;f<p||d<g;){let m=f<p?u[f]:void 0,x=f>0?u[f-1]:void 0,b=f<p-1?u[f+1]:void 0,T=d<g?i[d]:void 0,C=d>0?i[d-1]:void 0,A=d<g-1?i[d+1]:void 0;if(l(m)&&l(T)&&m.height===T.height){let E=l(A)&&T.height===A.height,v=!l(C),D=!l(A),O=l(b)&&m.height===b.height,R=!l(x),M=!l(b);E?O?(s(m.height,m.color,T.color),s(m.height,b.color,A.color)):R?(r(m.height,T.color),s(m.height,m.color,A.color)):M?(s(m.height,m.color,T.color),r(m.height,A.color)):(s(m.height,m.color,T.color),s(m.height,m.color,A.color)):v?O?(r(m.height,m.color),s(m.height,b.color,T.color)):M?(r(m.height,m.color),r(m.height,T.color)):(R||r(m.height,m.color),s(m.height,m.color,T.color)):D?O?(s(m.height,m.color,T.color),r(m.height,b.color)):R?(r(m.height,T.color),r(m.height,m.color)):M?s(m.height,m.color,T.color):(s(m.height,m.color,T.color),r(m.height,m.color)):O?(s(m.height,m.color,T.color),s(m.height,b.color,T.color)):R?(r(m.height,T.color),s(m.height,m.color,T.color)):M?(s(m.height,m.color,T.color),r(m.height,T.color)):s(m.height,m.color,T.color),f+=O?2:1,d+=E?2:1}else if(l(m)&&l(T)&&l(C)&&m.height<T.height){let E=zAe(m.height,C,T,$Et);l(x)?l(b)?s(m.height,m.color,E):(s(m.height,m.color,E),r(m.height,E)):(r(m.height,E),s(m.height,m.color,E)),f++}else if(l(T)&&l(m)&&l(x)&&T.height<m.height){let E=zAe(T.height,x,m,ZEt);l(C)?l(A)?s(T.height,E,T.color):(s(T.height,E,T.color),r(T.height,E)):(r(T.height,E),s(T.height,E,T.color)),d++}else l(m)&&(!l(T)||m.height<T.height)?(l(T)&&!l(C)&&!l(b)?(r(m.height,m.color),r(m.height,su._emptyColor),r(T.height,su._emptyColor)):(!l(T)&&l(C)&&!l(x)&&(r(C.height,su._emptyColor),r(m.height,su._emptyColor)),r(m.height,m.color)),f++):l(T)&&(!l(m)||T.height<m.height)&&(r(T.height,T.color),d++)}}return HAe(n)}function su(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=eSt(n),r=o.length,s,a,c;if(!su._useFloatTexture(i)){a=Ke.UNSIGNED_BYTE,c=Je.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)oe.packFloat(o[g].height,UAe),oe.pack(UAe,s,g*4)}else{a=Ke.FLOAT,c=i.webgl2?Je.RED:Je.LUMINANCE,s=new Float32Array(r);for(let g=0;g<r;g++)s[g]=o[g].height}let f=Pt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})}),d=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(ok),d[g*4+0]=ok[0],d[g*4+1]=ok[1],d[g*4+2]=ok[2],d[g*4+3]=ok[3];let p=Pt.create({context:i,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:d,width:r,height:1},sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR})});return qi.fromType("ElevationBand",{heights:f,colors:p})}su._useFloatTexture=function(e){return e.floatingPointTexture};su._maximumHeight=5906376425472;su._minimumHeight=-5906376425472;su._emptyColor=new H(0,0,0,0);var tQ=su;async function tSt(e,t){if(t=y(t,{}),t.cacheBytes=y(t.cacheBytes,1536*1024*1024),t.maximumCacheOverflowBytes=y(t.maximumCacheOverflowBytes,1024*1024*1024),t.enableCollision=y(t.enableCollision,!0),e=y(e,_C.defaultApiKey),!l(e))return nSt(t);let n,i=_C.getDefaultCredit();l(i)&&(n=[i]);let o=new we({url:`${_C.mapTilesApiEndpoint}3dtiles/root.json`,queryParameters:{key:e},credits:n});return ha.fromUrl(o,t)}var GAe={};async function nSt(e){let i=GAe[2275207];l(i)||(i=xu.fromAssetId(2275207),GAe[2275207]=i);let o=await i;return ha.fromUrl(o,e)}var nQ=tSt;async function iSt(e){let t=await ha.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!l(n)){let i=y(e.defaultColor,H.WHITE).toCssColorString();n=new bC({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var iQ=iSt;function oSt(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=F.clone(y(e.modelMatrix,F.IDENTITY)),r=y(e.length,1e4);if(l(i.normal)&&t.push(new St({geometry:Ln.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new Wt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new St({geometry:Ln.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new Wt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new St({geometry:Ln.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new Wt(0,0,1,1)},modelMatrix:o})),t.length>0)return new Dn({asynchronous:!1,geometryInstances:t,appearance:new ln({flat:!0,translucent:!1})})}var oQ=oSt;var rQ=`uniform sampler2D u_depthTexture;

in vec2 v_textureCoordinates;

void main()
{
    float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates));
    z_window = czm_reverseLogDepth(z_window);
    float n_range = czm_depthRange.near;
    float f_range = czm_depthRange.far;
    float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range);
    float scale = pow(z_ndc * 0.5 + 0.5, 8.0);
    out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0);
}
`;function rSt(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,Je.RGBA),this.pixelDatatype=y(e.pixelDatatype,Ke.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=we.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?Tn.REPEAT:Tn.CLAMP_TO_EDGE;this.sampler=new $t({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var sQ=rSt;var sSt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},aQ=Object.freeze(sSt);var aSt={SIGX:"SIGX",SIGY:"SIGY",SIGZ:"SIGZ",VARX:"VARX",VARY:"VARY",VARZ:"VARZ",SIGR:"VARZ"},cQ=Object.freeze(aSt);function cSt(e){async function t({data:i}){let o=[],r={id:i.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=i.baseUrl;try{let s=await e(i.parameters,o);r.result=s}catch(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}i.canTransferArrayBuffer||(o.length=0);try{postMessage(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${Ym(s)}
  with responseMessage: ${JSON.stringify(r)}`,postMessage(r)}}function n(i){postMessage({id:i.data?.id,error:`postMessage failed with error: ${JSON.stringify(i)}`})}return self.onmessage=t,self.onmessageerror=n,self}var lQ=cSt;globalThis.CESIUM_VERSION="1.123";var rk;typeof ko<"u"&&(rk=ko);(function(){/*!
 * Knockout JavaScript library v3.5.1
 * (c) The Knockout.js team - http://knockoutjs.com/
 * License: MIT (http://www.opensource.org/licenses/mit-license.php)
 */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(_,S){return _===null||typeof _ in x?_===S:!1}function u(_,S){var w;return function(){w||(w=m.a.setTimeout(function(){w=e,_()},S))}}function f(_,S){var w;return function(){clearTimeout(w),w=m.a.setTimeout(_,S)}}function d(_,S){S&&S!=="change"?S==="beforeChange"?this.pc(_):this.gb(_,S):this.qc(_)}function p(_,S){S!==null&&S.s&&S.s()}function g(_,S){var w=this.qd,I=w[E];I.ra||(this.Qb&&this.mb[S]?(w.uc(S,_,this.mb[S]),this.mb[S]=null,--this.Qb):I.I[S]||w.uc(S,_,I.J?{da:_}:w.$c(_)),_.Ja&&_.gd())}var m=typeof s<"u"?s:{};m.b=function(_,S){for(var w=_.split("."),I=m,L=0;L<w.length-1;L++)I=I[w[L]];I[w[w.length-1]]=S},m.L=function(_,S,w){_[S]=w},m.version="3.5.1",m.b("version",m.version),m.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},m.a=function(){function _(j,K){for(var Q in j)L.call(j,Q)&&K(Q,j[Q])}function S(j,K){if(K)for(var Q in K)L.call(K,Q)&&(j[Q]=K[Q]);return j}function w(j,K){return j.__proto__=K,j}function I(j,K,Q,de){var ye=j[K].match(q)||[];m.a.D(Q.match(q),function(ae){m.a.Na(ye,ae,de)}),j[K]=ye.join(" ")}var L=Object.prototype.hasOwnProperty,B={__proto__:[]}instanceof Array,U=typeof Symbol=="function",V={},G={};V[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],V.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(V,function(j,K){if(K.length)for(var Q=0,de=K.length;Q<de;Q++)G[K[Q]]=j});var k={propertychange:!0},W=n&&function(){for(var j=3,K=n.createElement("div"),Q=K.getElementsByTagName("i");K.innerHTML="<!--[if gt IE "+ ++j+"]><i></i><![endif]-->",Q[0];);return 4<j?j:e}(),q=/\S+/g,J;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(j,K,Q){for(var de=0,ye=j.length;de<ye;de++)K.call(Q,j[de],de,j)},A:typeof Array.prototype.indexOf=="function"?function(j,K){return Array.prototype.indexOf.call(j,K)}:function(j,K){for(var Q=0,de=j.length;Q<de;Q++)if(j[Q]===K)return Q;return-1},Lb:function(j,K,Q){for(var de=0,ye=j.length;de<ye;de++)if(K.call(Q,j[de],de,j))return j[de];return e},Pa:function(j,K){var Q=m.a.A(j,K);0<Q?j.splice(Q,1):Q===0&&j.shift()},wc:function(j){var K=[];return j&&m.a.D(j,function(Q){0>m.a.A(K,Q)&&K.push(Q)}),K},Mb:function(j,K,Q){var de=[];if(j)for(var ye=0,ae=j.length;ye<ae;ye++)de.push(K.call(Q,j[ye],ye));return de},jb:function(j,K,Q){var de=[];if(j)for(var ye=0,ae=j.length;ye<ae;ye++)K.call(Q,j[ye],ye)&&de.push(j[ye]);return de},Nb:function(j,K){if(K instanceof Array)j.push.apply(j,K);else for(var Q=0,de=K.length;Q<de;Q++)j.push(K[Q]);return j},Na:function(j,K,Q){var de=m.a.A(m.a.bc(j),K);0>de?Q&&j.push(K):Q||j.splice(de,1)},Ba:B,extend:S,setPrototypeOf:w,Ab:B?w:S,P:_,Ga:function(j,K,Q){if(!j)return j;var de={},ye;for(ye in j)L.call(j,ye)&&(de[ye]=K.call(Q,j[ye],ye,j));return de},Tb:function(j){for(;j.firstChild;)m.removeNode(j.firstChild)},Yb:function(j){j=m.a.la(j);for(var K=(j[0]&&j[0].ownerDocument||n).createElement("div"),Q=0,de=j.length;Q<de;Q++)K.appendChild(m.oa(j[Q]));return K},Ca:function(j,K){for(var Q=0,de=j.length,ye=[];Q<de;Q++){var ae=j[Q].cloneNode(!0);ye.push(K?m.oa(ae):ae)}return ye},va:function(j,K){if(m.a.Tb(j),K)for(var Q=0,de=K.length;Q<de;Q++)j.appendChild(K[Q])},Xc:function(j,K){var Q=j.nodeType?[j]:j;if(0<Q.length){for(var de=Q[0],ye=de.parentNode,ae=0,_e=K.length;ae<_e;ae++)ye.insertBefore(K[ae],de);for(ae=0,_e=Q.length;ae<_e;ae++)m.removeNode(Q[ae])}},Ua:function(j,K){if(j.length){for(K=K.nodeType===8&&K.parentNode||K;j.length&&j[0].parentNode!==K;)j.splice(0,1);for(;1<j.length&&j[j.length-1].parentNode!==K;)j.length--;if(1<j.length){var Q=j[0],de=j[j.length-1];for(j.length=0;Q!==de;)j.push(Q),Q=Q.nextSibling;j.push(de)}}return j},Zc:function(j,K){7>W?j.setAttribute("selected",K):j.selected=K},Db:function(j){return j===null||j===e?"":j.trim?j.trim():j.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(j,K){return j=j||"",K.length>j.length?!1:j.substring(0,K.length)===K},vd:function(j,K){if(j===K)return!0;if(j.nodeType===11)return!1;if(K.contains)return K.contains(j.nodeType!==1?j.parentNode:j);if(K.compareDocumentPosition)return(K.compareDocumentPosition(j)&16)==16;for(;j&&j!=K;)j=j.parentNode;return!!j},Sb:function(j){return m.a.vd(j,j.ownerDocument.documentElement)},kd:function(j){return!!m.a.Lb(j,m.a.Sb)},R:function(j){return j&&j.tagName&&j.tagName.toLowerCase()},Ac:function(j){return m.onError?function(){try{return j.apply(this,arguments)}catch(K){throw m.onError&&m.onError(K),K}}:j},setTimeout:function(j,K){return setTimeout(m.a.Ac(j),K)},Gc:function(j){setTimeout(function(){throw m.onError&&m.onError(j),j},0)},B:function(j,K,Q){var de=m.a.Ac(Q);if(Q=k[K],m.options.useOnlyNativeEvents||Q||!o)if(Q||typeof j.addEventListener!="function")if(typeof j.attachEvent<"u"){var ye=function(_e){de.call(j,_e)},ae="on"+K;j.attachEvent(ae,ye),m.a.K.za(j,function(){j.detachEvent(ae,ye)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else j.addEventListener(K,de,!1);else J||(J=typeof o(j).on=="function"?"on":"bind"),o(j)[J](K,de)},Fb:function(j,K){if(!j||!j.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var Q;if(m.a.R(j)==="input"&&j.type&&K.toLowerCase()=="click"?(Q=j.type,Q=Q=="checkbox"||Q=="radio"):Q=!1,m.options.useOnlyNativeEvents||!o||Q)if(typeof n.createEvent=="function")if(typeof j.dispatchEvent=="function")Q=n.createEvent(G[K]||"HTMLEvents"),Q.initEvent(K,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,j),j.dispatchEvent(Q);else throw Error("The supplied element doesn't support dispatchEvent");else if(Q&&j.click)j.click();else if(typeof j.fireEvent<"u")j.fireEvent("on"+K);else throw Error("Browser doesn't support triggering events");else o(j).trigger(K)},f:function(j){return m.O(j)?j():j},bc:function(j){return m.O(j)?j.v():j},Eb:function(j,K,Q){var de;K&&(typeof j.classList=="object"?(de=j.classList[Q?"add":"remove"],m.a.D(K.match(q),function(ye){de.call(j.classList,ye)})):typeof j.className.baseVal=="string"?I(j.className,"baseVal",K,Q):I(j,"className",K,Q))},Bb:function(j,K){var Q=m.a.f(K);(Q===null||Q===e)&&(Q="");var de=m.h.firstChild(j);!de||de.nodeType!=3||m.h.nextSibling(de)?m.h.va(j,[j.ownerDocument.createTextNode(Q)]):de.data=Q,m.a.Ad(j)},Yc:function(j,K){if(j.name=K,7>=W)try{var Q=j.name.replace(/[&<>'"]/g,function(de){return"&#"+de.charCodeAt(0)+";"});j.mergeAttributes(n.createElement("<input name='"+Q+"'/>"),!1)}catch{}},Ad:function(j){9<=W&&(j=j.nodeType==1?j:j.parentNode,j.style&&(j.style.zoom=j.style.zoom))},wd:function(j){if(W){var K=j.style.width;j.style.width=0,j.style.width=K}},Pd:function(j,K){j=m.a.f(j),K=m.a.f(K);for(var Q=[],de=j;de<=K;de++)Q.push(de);return Q},la:function(j){for(var K=[],Q=0,de=j.length;Q<de;Q++)K.push(j[Q]);return K},Da:function(j){return U?Symbol(j):j},Zd:W===6,$d:W===7,W,Lc:function(j,K){for(var Q=m.a.la(j.getElementsByTagName("input")).concat(m.a.la(j.getElementsByTagName("textarea"))),de=typeof K=="string"?function(_e){return _e.name===K}:function(_e){return K.test(_e.name)},ye=[],ae=Q.length-1;0<=ae;ae--)de(Q[ae])&&ye.push(Q[ae]);return ye},Nd:function(j){return typeof j=="string"&&(j=m.a.Db(j))?r&&r.parse?r.parse(j):new Function("return "+j)():null},hc:function(j,K,Q){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(m.a.f(j),K,Q)},Od:function(j,K,Q){Q=Q||{};var de=Q.params||{},ye=Q.includeFields||this.Jc,ae=j;if(typeof j=="object"&&m.a.R(j)==="form")for(var ae=j.action,_e=ye.length-1;0<=_e;_e--)for(var xe=m.a.Lc(j,ye[_e]),De=xe.length-1;0<=De;De--)de[xe[De].name]=xe[De].value;K=m.a.f(K);var Ae=n.createElement("form");Ae.style.display="none",Ae.action=ae,Ae.method="post";for(var ke in K)j=n.createElement("input"),j.type="hidden",j.name=ke,j.value=m.a.hc(m.a.f(K[ke])),Ae.appendChild(j);_(de,function(ze,tt){var wt=n.createElement("input");wt.type="hidden",wt.name=ze,wt.value=tt,Ae.appendChild(wt)}),n.body.appendChild(Ae),Q.submitter?Q.submitter(Ae):Ae.submit(),setTimeout(function(){Ae.parentNode.removeChild(Ae)},0)}}}(),m.b("utils",m.a),m.b("utils.arrayForEach",m.a.D),m.b("utils.arrayFirst",m.a.Lb),m.b("utils.arrayFilter",m.a.jb),m.b("utils.arrayGetDistinctValues",m.a.wc),m.b("utils.arrayIndexOf",m.a.A),m.b("utils.arrayMap",m.a.Mb),m.b("utils.arrayPushAll",m.a.Nb),m.b("utils.arrayRemoveItem",m.a.Pa),m.b("utils.cloneNodes",m.a.Ca),m.b("utils.createSymbolOrString",m.a.Da),m.b("utils.extend",m.a.extend),m.b("utils.fieldsIncludedWithJsonPost",m.a.Jc),m.b("utils.getFormFields",m.a.Lc),m.b("utils.objectMap",m.a.Ga),m.b("utils.peekObservable",m.a.bc),m.b("utils.postJson",m.a.Od),m.b("utils.parseJson",m.a.Nd),m.b("utils.registerEventHandler",m.a.B),m.b("utils.stringifyJson",m.a.hc),m.b("utils.range",m.a.Pd),m.b("utils.toggleDomNodeCssClass",m.a.Eb),m.b("utils.triggerEvent",m.a.Fb),m.b("utils.unwrapObservable",m.a.f),m.b("utils.objectForEach",m.a.P),m.b("utils.addOrRemoveItem",m.a.Na),m.b("utils.setTextContent",m.a.Bb),m.b("unwrap",m.a.f),Function.prototype.bind||(Function.prototype.bind=function(_){var S=this;if(arguments.length===1)return function(){return S.apply(_,arguments)};var w=Array.prototype.slice.call(arguments,1);return function(){var I=w.slice(0);return I.push.apply(I,arguments),S.apply(_,I)}}),m.a.g=new function(){var _=0,S="__ko__"+new Date().getTime(),w={},I,L;return m.a.W?(I=function(B,U){var V=B[S];if(!V||V==="null"||!w[V]){if(!U)return e;V=B[S]="ko"+_++,w[V]={}}return w[V]},L=function(B){var U=B[S];return U?(delete w[U],B[S]=null,!0):!1}):(I=function(B,U){var V=B[S];return!V&&U&&(V=B[S]={}),V},L=function(B){return B[S]?(delete B[S],!0):!1}),{get:function(B,U){var V=I(B,!1);return V&&V[U]},set:function(B,U,V){(B=I(B,V!==e))&&(B[U]=V)},Ub:function(B,U,V){return B=I(B,!0),B[U]||(B[U]=V)},clear:L,Z:function(){return _+++S}}},m.b("utils.domData",m.a.g),m.b("utils.domData.clear",m.a.g.clear),m.a.K=new function(){function _(U,V){var G=m.a.g.get(U,I);return G===e&&V&&(G=[],m.a.g.set(U,I,G)),G}function S(U){var V=_(U,!1);if(V)for(var V=V.slice(0),G=0;G<V.length;G++)V[G](U);m.a.g.clear(U),m.a.K.cleanExternalData(U),B[U.nodeType]&&w(U.childNodes,!0)}function w(U,V){for(var G=[],k,W=0;W<U.length;W++)if((!V||U[W].nodeType===8)&&(S(G[G.length]=k=U[W]),U[W]!==k))for(;W--&&m.a.A(G,U[W])==-1;);}var I=m.a.g.Z(),L={1:!0,8:!0,9:!0},B={1:!0,9:!0};return{za:function(U,V){if(typeof V!="function")throw Error("Callback must be a function");_(U,!0).push(V)},yb:function(U,V){var G=_(U,!1);G&&(m.a.Pa(G,V),G.length==0&&m.a.g.set(U,I,e))},oa:function(U){return m.u.G(function(){L[U.nodeType]&&(S(U),B[U.nodeType]&&w(U.getElementsByTagName("*")))}),U},removeNode:function(U){m.oa(U),U.parentNode&&U.parentNode.removeChild(U)},cleanExternalData:function(U){o&&typeof o.cleanData=="function"&&o.cleanData([U])}}},m.oa=m.a.K.oa,m.removeNode=m.a.K.removeNode,m.b("cleanNode",m.oa),m.b("removeNode",m.removeNode),m.b("utils.domNodeDisposal",m.a.K),m.b("utils.domNodeDisposal.addDisposeCallback",m.a.K.za),m.b("utils.domNodeDisposal.removeDisposeCallback",m.a.K.yb),function(){var _=[0,"",""],S=[1,"<table>","</table>"],w=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],L={thead:S,tbody:S,tfoot:S,tr:[2,"<table><tbody>","</tbody></table>"],td:w,th:w,option:I,optgroup:I},B=8>=m.a.W;m.a.ua=function(U,V){var G;if(o){if(o.parseHTML)G=o.parseHTML(U,V)||[];else if((G=o.clean([U],V))&&G[0]){for(var k=G[0];k.parentNode&&k.parentNode.nodeType!==11;)k=k.parentNode;k.parentNode&&k.parentNode.removeChild(k)}}else{(G=V)||(G=n);var k=G.parentWindow||G.defaultView||t,W=m.a.Db(U).toLowerCase(),q=G.createElement("div"),J;for(J=(W=W.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&L[W[1]]||_,W=J[0],J="ignored<div>"+J[1]+U+J[2]+"</div>",typeof k.innerShiv=="function"?q.appendChild(k.innerShiv(J)):(B&&G.body.appendChild(q),q.innerHTML=J,B&&q.parentNode.removeChild(q));W--;)q=q.lastChild;G=m.a.la(q.lastChild.childNodes)}return G},m.a.Md=function(U,V){var G=m.a.ua(U,V);return G.length&&G[0].parentElement||m.a.Yb(G)},m.a.fc=function(U,V){if(m.a.Tb(U),V=m.a.f(V),V!==null&&V!==e)if(typeof V!="string"&&(V=V.toString()),o)o(U).html(V);else for(var G=m.a.ua(V,U.ownerDocument),k=0;k<G.length;k++)U.appendChild(G[k])}}(),m.b("utils.parseHtmlFragment",m.a.ua),m.b("utils.setHtml",m.a.fc),m.aa=function(){function _(w,I){if(w){if(w.nodeType==8){var L=m.aa.Uc(w.nodeValue);L!=null&&I.push({ud:w,Kd:L})}else if(w.nodeType==1)for(var L=0,B=w.childNodes,U=B.length;L<U;L++)_(B[L],I)}}var S={};return{Xb:function(w){if(typeof w!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return S[I]=w,"<!--[ko_memo:"+I+"]-->"},bd:function(w,I){var L=S[w];if(L===e)throw Error("Couldn't find any memo with ID "+w+". Perhaps it's already been unmemoized.");try{return L.apply(null,I||[]),!0}finally{delete S[w]}},cd:function(w,I){var L=[];_(w,L);for(var B=0,U=L.length;B<U;B++){var V=L[B].ud,G=[V];I&&m.a.Nb(G,I),m.aa.bd(L[B].Kd,G),V.nodeValue="",V.parentNode&&V.parentNode.removeChild(V)}},Uc:function(w){return(w=w.match(/^\[ko_memo\:(.*?)\]$/))?w[1]:null}}}(),m.b("memoization",m.aa),m.b("memoization.memoize",m.aa.Xb),m.b("memoization.unmemoize",m.aa.bd),m.b("memoization.parseMemoText",m.aa.Uc),m.b("memoization.unmemoizeDomNodeAndDescendants",m.aa.cd),m.na=function(){function _(){if(L){for(var V=L,G=0,k;U<L;)if(k=I[U++]){if(U>V){if(5e3<=++G){U=L,m.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}V=L}try{k()}catch(W){m.a.Gc(W)}}}}function S(){_(),U=L=I.length=0}var w,I=[],L=0,B=1,U=0;return t.MutationObserver?w=function(V){var G=n.createElement("div");return new MutationObserver(V).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(S):w=n&&"onreadystatechange"in n.createElement("script")?function(V){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,V()},n.documentElement.appendChild(G)}:function(V){setTimeout(V,0)},{scheduler:w,zb:function(V){return L||m.na.scheduler(S),I[L++]=V,B++},cancel:function(V){V=V-(B-L),V>=U&&V<L&&(I[V]=null)},resetForTesting:function(){var V=L-U;return U=L=I.length=0,V},Sd:_}}(),m.b("tasks",m.na),m.b("tasks.schedule",m.na.zb),m.b("tasks.runEarly",m.na.Sd),m.Ta={throttle:function(_,S){_.throttleEvaluation=S;var w=null;return m.$({read:_,write:function(I){clearTimeout(w),w=m.a.setTimeout(function(){_(I)},S)}})},rateLimit:function(_,S){var w,I,L;typeof S=="number"?w=S:(w=S.timeout,I=S.method),_.Hb=!1,L=typeof I=="function"?I:I=="notifyWhenChangesStop"?f:u,_.ub(function(B){return L(B,w,S)})},deferred:function(_,S){if(S!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");_.Hb||(_.Hb=!0,_.ub(function(w){var I,L=!1;return function(){if(!L){m.na.cancel(I),I=m.na.zb(w);try{L=!0,_.notifySubscribers(e,"dirty")}finally{L=!1}}}}))},notify:function(_,S){_.equalityComparer=S=="always"?null:c}};var x={undefined:1,boolean:1,number:1,string:1};m.b("extenders",m.Ta),m.ic=function(_,S,w){this.da=_,this.lc=S,this.mc=w,this.Ib=!1,this.fb=this.Jb=null,m.L(this,"dispose",this.s),m.L(this,"disposeWhenNodeIsRemoved",this.l)},m.ic.prototype.s=function(){this.Ib||(this.fb&&m.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},m.ic.prototype.l=function(_){this.Jb=_,m.a.K.za(_,this.fb=this.s.bind(this))},m.T=function(){m.a.Ab(this,b),b.qb(this)};var b={qb:function(_){_.U={change:[]},_.sc=1},subscribe:function(_,S,w){var I=this;w=w||"change";var L=new m.ic(I,S?_.bind(S):_,function(){m.a.Pa(I.U[w],L),I.hb&&I.hb(w)});return I.Qa&&I.Qa(w),I.U[w]||(I.U[w]=[]),I.U[w].push(L),L},notifySubscribers:function(_,S){if(S=S||"change",S==="change"&&this.Gb(),this.Wa(S)){var w=S==="change"&&this.ed||this.U[S].slice(0);try{m.u.xc();for(var I=0,L;L=w[I];++I)L.Ib||L.lc(_)}finally{m.u.end()}}},ob:function(){return this.sc},Dd:function(_){return this.ob()!==_},Gb:function(){++this.sc},ub:function(_){var S=this,w=m.O(S),I,L,B,U,V;S.gb||(S.gb=S.notifySubscribers,S.notifySubscribers=d);var G=_(function(){S.Ja=!1,w&&U===S&&(U=S.nc?S.nc():S());var k=L||V&&S.sb(B,U);V=L=I=!1,k&&S.gb(B=U)});S.qc=function(k,W){W&&S.Ja||(V=!W),S.ed=S.U.change.slice(0),S.Ja=I=!0,U=k,G()},S.pc=function(k){I||(B=k,S.gb(k,"beforeChange"))},S.rc=function(){V=!0},S.gd=function(){S.sb(B,S.v(!0))&&(L=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var S=0;return m.a.P(this.U,function(w,I){w!=="dirty"&&(S+=I.length)}),S},sb:function(_,S){return!this.equalityComparer||!this.equalityComparer(_,S)},toString:function(){return"[object Object]"},extend:function(_){var S=this;return _&&m.a.P(_,function(w,I){var L=m.Ta[w];typeof L=="function"&&(S=L(S,I)||S)}),S}};m.L(b,"init",b.qb),m.L(b,"subscribe",b.subscribe),m.L(b,"extend",b.extend),m.L(b,"getSubscriptionsCount",b.Bd),m.a.Ba&&m.a.setPrototypeOf(b,Function.prototype),m.T.fn=b,m.Qc=function(_){return _!=null&&typeof _.subscribe=="function"&&typeof _.notifySubscribers=="function"},m.b("subscribable",m.T),m.b("isSubscribable",m.Qc),m.S=m.u=function(){function _(B){w.push(I),I=B}function S(){I=w.pop()}var w=[],I,L=0;return{xc:_,end:S,cc:function(B){if(I){if(!m.Qc(B))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,B,B.fd||(B.fd=++L))}},G:function(B,U,V){try{return _(),B.apply(U,V||[])}finally{S()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.o}}}(),m.b("computedContext",m.S),m.b("computedContext.getDependenciesCount",m.S.qa),m.b("computedContext.getDependencies",m.S.Va),m.b("computedContext.isInitial",m.S.Ya),m.b("computedContext.registerDependency",m.S.cc),m.b("ignoreDependencies",m.Yd=m.u.G);var T=m.a.Da("_latestValue");m.ta=function(_){function S(){return 0<arguments.length?(S.sb(S[T],arguments[0])&&(S.ya(),S[T]=arguments[0],S.xa()),this):(m.u.cc(S),S[T])}return S[T]=_,m.a.Ba||m.a.extend(S,m.T.fn),m.T.fn.qb(S),m.a.Ab(S,C),m.options.deferUpdates&&m.Ta.deferred(S,!0),S};var C={equalityComparer:c,v:function(){return this[T]},xa:function(){this.notifySubscribers(this[T],"spectate"),this.notifySubscribers(this[T])},ya:function(){this.notifySubscribers(this[T],"beforeChange")}};m.a.Ba&&m.a.setPrototypeOf(C,m.T.fn);var A=m.ta.Ma="__ko_proto__";C[A]=m.ta,m.O=function(_){if((_=typeof _=="function"&&_[A])&&_!==C[A]&&_!==m.o.fn[A])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},m.Za=function(_){return typeof _=="function"&&(_[A]===C[A]||_[A]===m.o.fn[A]&&_.Nc)},m.b("observable",m.ta),m.b("isObservable",m.O),m.b("isWriteableObservable",m.Za),m.b("isWritableObservable",m.Za),m.b("observable.fn",C),m.L(C,"peek",C.v),m.L(C,"valueHasMutated",C.xa),m.L(C,"valueWillMutate",C.ya),m.Ha=function(_){if(_=_||[],typeof _!="object"||!("length"in _))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return _=m.ta(_),m.a.Ab(_,m.Ha.fn),_.extend({trackArrayChanges:!0})},m.Ha.fn={remove:function(_){for(var S=this.v(),w=[],I=typeof _!="function"||m.O(_)?function(U){return U===_}:_,L=0;L<S.length;L++){var B=S[L];if(I(B)){if(w.length===0&&this.ya(),S[L]!==B)throw Error("Array modified during remove; cannot remove item");w.push(B),S.splice(L,1),L--}}return w.length&&this.xa(),w},removeAll:function(_){if(_===e){var S=this.v(),w=S.slice(0);return this.ya(),S.splice(0,S.length),this.xa(),w}return _?this.remove(function(I){return 0<=m.a.A(_,I)}):[]},destroy:function(_){var S=this.v(),w=typeof _!="function"||m.O(_)?function(B){return B===_}:_;this.ya();for(var I=S.length-1;0<=I;I--){var L=S[I];w(L)&&(L._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(S){return 0<=m.a.A(_,S)}):[]},indexOf:function(_){var S=this();return m.a.A(S,_)},replace:function(_,S){var w=this.indexOf(_);0<=w&&(this.ya(),this.v()[w]=S,this.xa())},sorted:function(_){var S=this().slice(0);return _?S.sort(_):S.sort()},reversed:function(){return this().slice(0).reverse()}},m.a.Ba&&m.a.setPrototypeOf(m.Ha.fn,m.ta.fn),m.a.D("pop push reverse shift sort splice unshift".split(" "),function(_){m.Ha.fn[_]=function(){var S=this.v();this.ya(),this.zc(S,_,arguments);var w=S[_].apply(S,arguments);return this.xa(),w===S?this:w}}),m.a.D(["slice"],function(_){m.Ha.fn[_]=function(){var S=this();return S[_].apply(S,arguments)}}),m.Pc=function(_){return m.O(_)&&typeof _.remove=="function"&&typeof _.push=="function"},m.b("observableArray",m.Ha),m.b("isObservableArray",m.Pc),m.Ta.trackArrayChanges=function(_,S){function w(){function q(){if(V){var J=[].concat(_.v()||[]),j;_.Wa("arrayChange")&&((!L||1<V)&&(L=m.a.Pb(G,J,_.Ob)),j=L),G=J,L=null,V=0,j&&j.length&&_.notifySubscribers(j,"arrayChange")}}I?q():(I=!0,U=_.subscribe(function(){++V},null,"spectate"),G=[].concat(_.v()||[]),L=null,B=_.subscribe(q))}if(_.Ob={},S&&typeof S=="object"&&m.a.extend(_.Ob,S),_.Ob.sparse=!0,!_.zc){var I=!1,L=null,B,U,V=0,G,k=_.Qa,W=_.hb;_.Qa=function(q){k&&k.call(_,q),q==="arrayChange"&&w()},_.hb=function(q){W&&W.call(_,q),q!=="arrayChange"||_.Wa("arrayChange")||(B&&B.s(),U&&U.s(),U=B=null,I=!1,G=e)},_.zc=function(q,J,j){function K(Ae,ke,ze){return Q[Q.length]={status:Ae,value:ke,index:ze}}if(I&&!V){var Q=[],de=q.length,ye=j.length,ae=0;switch(J){case"push":ae=de;case"unshift":for(J=0;J<ye;J++)K("added",j[J],ae+J);break;case"pop":ae=de-1;case"shift":de&&K("deleted",q[ae],ae);break;case"splice":J=Math.min(Math.max(0,0>j[0]?de+j[0]:j[0]),de);for(var de=ye===1?de:Math.min(J+(j[1]||0),de),ye=J+ye-2,ae=Math.max(de,ye),_e=[],xe=[],De=2;J<ae;++J,++De)J<de&&xe.push(K("deleted",q[J],J)),J<ye&&_e.push(K("added",j[De],J));m.a.Kc(xe,_e);break;default:return}L=Q}}}};var E=m.a.Da("_state");m.o=m.$=function(_,S,w){function I(){if(0<arguments.length){if(typeof L=="function")L.apply(B.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return B.ra||m.u.cc(I),(B.ka||B.J&&I.Xa())&&I.ha(),B.X}if(typeof _=="object"?w=_:(w=w||{},_&&(w.read=_)),typeof w.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var L=w.write,B={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:w.read,nb:S||w.owner,l:w.disposeWhenNodeIsRemoved||w.l||null,Sa:w.disposeWhen||w.Sa,Rb:null,I:{},V:0,Ic:null};return I[E]=B,I.Nc=typeof L=="function",m.a.Ba||m.a.extend(I,m.T.fn),m.T.fn.qb(I),m.a.Ab(I,v),w.pure?(B.wb=!0,B.J=!0,m.a.extend(I,D)):w.deferEvaluation&&m.a.extend(I,O),m.options.deferUpdates&&m.Ta.deferred(I,!0),B.l&&(B.jc=!0,B.l.nodeType||(B.l=null)),B.J||w.deferEvaluation||I.ha(),B.l&&I.ja()&&m.a.K.za(B.l,B.Rb=function(){I.s()}),I};var v={equalityComparer:c,qa:function(){return this[E].V},Va:function(){var _=[];return m.a.P(this[E].I,function(S,w){_[w.Ka]=w.da}),_},Vb:function(_){if(!this[E].V)return!1;var S=this.Va();return m.a.A(S,_)!==-1?!0:!!m.a.Lb(S,function(w){return w.Vb&&w.Vb(_)})},uc:function(_,S,w){if(this[E].wb&&S===this)throw Error("A 'pure' computed must not be called recursively");this[E].I[_]=w,w.Ka=this[E].V++,w.La=S.ob()},Xa:function(){var _,S,w=this[E].I;for(_ in w)if(Object.prototype.hasOwnProperty.call(w,_)&&(S=w[_],this.Ia&&S.da.Ja||S.da.Dd(S.La)))return!0},Jd:function(){this.Ia&&!this[E].rb&&this.Ia(!1)},ja:function(){var _=this[E];return _.ka||0<_.V},Rd:function(){this.Ja?this[E].ka&&(this[E].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var S=_.subscribe(this.Jd,this,"dirty"),w=_.subscribe(this.Rd,this);return{da:_,s:function(){S.s(),w.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,S=_.throttleEvaluation;S&&0<=S?(clearTimeout(this[E].Ic),this[E].Ic=m.a.setTimeout(function(){_.ha(!0)},S)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var S=this[E],w=S.Sa,I=!1;if(!S.rb&&!S.ra){if(S.l&&!m.a.Sb(S.l)||w&&w()){if(!S.jc){this.s();return}}else S.jc=!1;S.rb=!0;try{I=this.zd(_)}finally{S.rb=!1}return I}},zd:function(_){var S=this[E],I=!1,w=S.wb?e:!S.V,I={qd:this,mb:S.I,Qb:S.V};m.u.xc({pd:I,od:g,o:this,Ya:w}),S.I={},S.V=0;var L=this.yd(S,I);return S.V?I=this.sb(S.X,L):(this.s(),I=!0),I&&(S.J?this.Gb():this.notifySubscribers(S.X,"beforeChange"),S.X=L,this.notifySubscribers(S.X,"spectate"),!S.J&&_&&this.notifySubscribers(S.X),this.rc&&this.rc()),w&&this.notifySubscribers(S.X,"awake"),I},yd:function(_,S){try{var w=_.Wc;return _.nb?w.call(_.nb):w()}finally{m.u.end(),S.Qb&&!_.J&&m.a.P(S.mb,p),_.sa=_.ka=!1}},v:function(_){var S=this[E];return(S.ka&&(_||!S.V)||S.J&&this.Xa())&&this.ha(),S.X},ub:function(_){m.T.fn.ub.call(this,_),this.nc=function(){return this[E].J||(this[E].sa?this.ha():this[E].ka=!1),this[E].X},this.Ia=function(S){this.pc(this[E].X),this[E].ka=!0,S&&(this[E].sa=!0),this.qc(this,!S)}},s:function(){var _=this[E];!_.J&&_.I&&m.a.P(_.I,function(S,w){w.s&&w.s()}),_.l&&_.Rb&&m.a.K.yb(_.l,_.Rb),_.I=e,_.V=0,_.ra=!0,_.sa=!1,_.ka=!1,_.J=!1,_.l=e,_.Sa=e,_.Wc=e,this.Nc||(_.nb=e)}},D={Qa:function(_){var S=this,w=S[E];if(!w.ra&&w.J&&_=="change"){if(w.J=!1,w.sa||S.Xa())w.I=null,w.V=0,S.ha()&&S.Gb();else{var I=[];m.a.P(w.I,function(L,B){I[B.Ka]=L}),m.a.D(I,function(L,B){var U=w.I[L],V=S.$c(U.da);V.Ka=B,V.La=U.La,w.I[L]=V}),S.Xa()&&S.ha()&&S.Gb()}w.ra||S.notifySubscribers(w.X,"awake")}},hb:function(_){var S=this[E];S.ra||_!="change"||this.Wa("change")||(m.a.P(S.I,function(w,I){I.s&&(S.I[w]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),S.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[E];return _.J&&(_.sa||this.Xa())&&this.ha(),m.T.fn.ob.call(this)}},O={Qa:function(_){_!="change"&&_!="beforeChange"||this.v()}};m.a.Ba&&m.a.setPrototypeOf(v,m.T.fn);var R=m.ta.Ma;v[R]=m.o,m.Oc=function(_){return typeof _=="function"&&_[R]===v[R]},m.Fd=function(_){return m.Oc(_)&&_[E]&&_[E].wb},m.b("computed",m.o),m.b("dependentObservable",m.o),m.b("isComputed",m.Oc),m.b("isPureComputed",m.Fd),m.b("computed.fn",v),m.L(v,"peek",v.v),m.L(v,"dispose",v.s),m.L(v,"isActive",v.ja),m.L(v,"getDependenciesCount",v.qa),m.L(v,"getDependencies",v.Va),m.xb=function(_,S){return typeof _=="function"?m.o(_,S,{pure:!0}):(_=m.a.extend({},_),_.pure=!0,m.o(_,S))},m.b("pureComputed",m.xb),function(){function _(I,L,B){if(B=B||new w,I=L(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var U=I instanceof Array?[]:{};return B.save(I,U),S(I,function(V){var G=L(I[V]);switch(typeof G){case"boolean":case"number":case"string":case"function":U[V]=G;break;case"object":case"undefined":var k=B.get(G);U[V]=k!==e?k:_(G,L,B)}}),U}function S(I,L){if(I instanceof Array){for(var B=0;B<I.length;B++)L(B);typeof I.toJSON=="function"&&L("toJSON")}else for(B in I)L(B)}function w(){this.keys=[],this.values=[]}m.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(I,function(L){for(var B=0;m.O(L)&&10>B;B++)L=L();return L})},m.toJSON=function(I,L,B){return I=m.ad(I),m.a.hc(I,L,B)},w.prototype={constructor:w,save:function(I,L){var B=m.a.A(this.keys,I);0<=B?this.values[B]=L:(this.keys.push(I),this.values.push(L))},get:function(I){return I=m.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),m.b("toJS",m.ad),m.b("toJSON",m.toJSON),m.Wd=function(_,S,w){function I(L){var B=m.xb(_,w).extend({ma:"always"}),U=B.subscribe(function(V){V&&(U.s(),L(V))});return B.notifySubscribers(B.v()),U}return typeof Promise!="function"||S?I(S.bind(w)):new Promise(I)},m.b("when",m.Wd),function(){m.w={M:function(_){switch(m.a.R(_)){case"option":return _.__ko__hasDomDataOptionValue__===!0?m.a.g.get(_,m.c.options.$b):7>=m.a.W?_.getAttributeNode("value")&&_.getAttributeNode("value").specified?_.value:_.text:_.value;case"select":return 0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex]):e;default:return _.value}},cb:function(_,S,w){switch(m.a.R(_)){case"option":typeof S=="string"?(m.a.g.set(_,m.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=S):(m.a.g.set(_,m.c.options.$b,S),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof S=="number"?S:"");break;case"select":(S===""||S===null)&&(S=e);for(var I=-1,L=0,B=_.options.length,U;L<B;++L)if(U=m.w.M(_.options[L]),U==S||U===""&&S===e){I=L;break}(w||0<=I||S===e&&1<_.size)&&(_.selectedIndex=I,m.a.W===6&&m.a.setTimeout(function(){_.selectedIndex=I},0));break;default:(S===null||S===e)&&(S=""),_.value=S}}}}(),m.b("selectExtensions",m.w),m.b("selectExtensions.readValue",m.w.M),m.b("selectExtensions.writeValue",m.w.cb),m.m=function(){function _(V){V=m.a.Db(V),V.charCodeAt(0)===123&&(V=V.slice(1,-1)),V+=`
,`;var G=[],k=V.match(I),W,q=[],J=0;if(1<k.length){for(var j=0,K;K=k[j];++j){var Q=K.charCodeAt(0);if(Q===44){if(0>=J){G.push(W&&q.length?{key:W,value:q.join("")}:{unknown:W||q.join("")}),W=J=0,q=[];continue}}else if(Q===58){if(!J&&!W&&q.length===1){W=q.pop();continue}}else{if(Q===47&&1<K.length&&(K.charCodeAt(1)===47||K.charCodeAt(1)===42))continue;Q===47&&j&&1<K.length?(Q=k[j-1].match(L))&&!B[Q[0]]&&(V=V.substr(V.indexOf(K)+1),k=V.match(I),j=-1,K="/"):Q===40||Q===123||Q===91?++J:Q===41||Q===125||Q===93?--J:W||q.length||Q!==34&&Q!==39||(K=K.slice(1,-1))}q.push(K)}if(0<J)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var S=["true","false","null","undefined"],w=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*
|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),L=/[\])"'A-Za-z0-9_$]+$/,B={in:1,return:1,typeof:1},U={};return{Ra:[],wa:U,ac:_,vb:function(V,G){function k(Q,de){var ye;if(!j){var ae=m.getBindingHandler(Q);if(ae&&ae.preprocess&&!(de=ae.preprocess(de,Q,k)))return;(ae=U[Q])&&(ye=de,0<=m.a.A(S,ye)?ye=!1:(ae=ye.match(w),ye=ae===null?!1:ae[1]?"Object("+ae[1]+")"+ae[2]:ye),ae=ye),ae&&q.push("'"+(typeof U[Q]=="string"?U[Q]:Q)+"':function(_z){"+ye+"=_z}")}J&&(de="function(){return "+de+" }"),W.push("'"+Q+"':"+de)}G=G||{};var W=[],q=[],J=G.valueAccessors,j=G.bindingParams,K=typeof V=="string"?_(V):V;return m.a.D(K,function(Q){k(Q.key||Q.unknown,Q.value)}),q.length&&k("_ko_property_writers","{"+q.join(",")+" }"),W.join(",")},Id:function(V,G){for(var k=0;k<V.length;k++)if(V[k].key==G)return!0;return!1},eb:function(V,G,k,W,q){V&&m.O(V)?!m.Za(V)||q&&V.v()===W||V(W):(V=G.get("_ko_property_writers"))&&V[k]&&V[k](W)}}}(),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(L?k.text:k.nodeValue)}function S(k){return k.nodeType==8&&U.test(L?k.text:k.nodeValue)}function w(k,W){for(var q=k,J=1,j=[];q=q.nextSibling;){if(S(q)&&(m.a.g.set(q,G,!0),J--,J===0))return j;j.push(q),_(q)&&J++}if(!W)throw Error("Cannot find closing comment tag to match: "+k.nodeValue);return null}function I(k,W){var q=w(k,W);return q?0<q.length?q[q.length-1].nextSibling:k.nextSibling:null}var L=n&&n.createComment("test").text==="<!--test-->",B=L?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,U=L?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,V={ul:!0,ol:!0},G="__ko_matchedEndComment__";m.h={ea:{},childNodes:function(k){return _(k)?w(k):k.childNodes},Ea:function(k){if(_(k)){k=m.h.childNodes(k);for(var W=0,q=k.length;W<q;W++)m.removeNode(k[W])}else m.a.Tb(k)},va:function(k,W){if(_(k)){m.h.Ea(k);for(var q=k.nextSibling,J=0,j=W.length;J<j;J++)q.parentNode.insertBefore(W[J],q)}else m.a.va(k,W)},Vc:function(k,W){var q;_(k)?(q=k.nextSibling,k=k.parentNode):q=k.firstChild,q?W!==q&&k.insertBefore(W,q):k.appendChild(W)},Wb:function(k,W,q){q?(q=q.nextSibling,_(k)&&(k=k.parentNode),q?W!==q&&k.insertBefore(W,q):k.appendChild(W)):m.h.Vc(k,W)},firstChild:function(k){if(_(k))return!k.nextSibling||S(k.nextSibling)?null:k.nextSibling;if(k.firstChild&&S(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&&S(k.nextSibling)){var W=k.nextSibling;if(S(W)&&!m.a.g.get(W,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=(L?k.text:k.nodeValue).match(B))?k[1]:null},Sc:function(k){if(V[m.a.R(k)]){var W=k.firstChild;if(W)do if(W.nodeType===1){var q;q=W.firstChild;var J=null;if(q)do if(J)J.push(q);else if(_(q)){var j=I(q,!0);j?q=j:J=[q]}else S(q)&&(J=[q]);while(q=q.nextSibling);if(q=J)for(J=W.nextSibling,j=0;j<q.length;j++)J?k.insertBefore(q[j],J):k.appendChild(q[j])}while(W=W.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(_,S){var w=this.getBindingsString(_,S),w=w?this.parseBindingsString(w,S,_):null;return m.j.tc(w,_,S,!1)},getBindingAccessors:function(_,S){var w=this.getBindingsString(_,S),w=w?this.parseBindingsString(w,S,_,{valueAccessors:!0}):null;return m.j.tc(w,_,S,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return m.h.Vd(_);default:return null}},parseBindingsString:function(_,S,w,I){try{var L=this.nd,B=_+(I&&I.valueAccessors||""),U;if(!(U=L[B])){var V,G="with($context){with($data||{}){return{"+m.m.vb(_,I)+"}}}";V=new Function("$context","$element",G),U=L[B]=V}return U(S,w)}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 _(ae){var _e=(ae=m.a.g.get(ae,ye))&&ae.N;_e&&(ae.N=null,_e.Tc())}function S(ae,_e,xe){this.node=ae,this.yc=_e,this.kb=[],this.H=!1,_e.N||m.a.K.za(ae,_),xe&&xe.N&&(xe.N.kb.push(ae),this.Kb=xe)}function w(ae){return function(){return ae}}function I(ae){return ae()}function L(ae){return m.a.Ga(m.u.G(ae),function(_e,xe){return function(){return ae()[xe]}})}function B(ae,_e,xe){return typeof ae=="function"?L(ae.bind(null,_e,xe)):m.a.Ga(ae,w)}function U(ae,_e){return L(this.getBindings.bind(this,ae,_e))}function V(ae,_e){var xe=m.h.firstChild(_e);if(xe){var De,Ae=m.ga.instance,ke=Ae.preprocessNode;if(ke){for(;De=xe;)xe=m.h.nextSibling(De),ke.call(Ae,De);xe=m.h.firstChild(_e)}for(;De=xe;)xe=m.h.nextSibling(De),G(ae,De)}m.i.ma(_e,m.i.H)}function G(ae,_e){var xe=ae,De=_e.nodeType===1;De&&m.h.Sc(_e),(De||m.ga.instance.nodeHasBindings(_e))&&(xe=W(_e,null,ae).bindingContextForDescendants),xe&&!Q[m.a.R(_e)]&&V(xe,_e)}function k(ae){var _e=[],xe={},De=[];return m.a.P(ae,function Ae(ke){if(!xe[ke]){var ze=m.getBindingHandler(ke);ze&&(ze.after&&(De.push(ke),m.a.D(ze.after,function(tt){if(ae[tt]){if(m.a.A(De,tt)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+De.join(", "));Ae(tt)}}),De.length--),_e.push({key:ke,Mc:ze})),xe[ke]=!0}}),_e}function W(ae,_e,xe){var De=m.a.g.Ub(ae,ye,{}),Ae=De.hd;if(!_e){if(Ae)throw Error("You cannot apply bindings multiple times to the same element.");De.hd=!0}Ae||(De.context=xe),De.Zb||(De.Zb={});var ke;if(_e&&typeof _e!="function")ke=_e;else{var ze=m.ga.instance,tt=ze.getBindingAccessors||U,wt=m.$(function(){return(ke=_e?_e(xe,ae):tt.call(ze,ae,xe))&&(xe[J]&&xe[J](),xe[K]&&xe[K]()),ke},null,{l:ae});ke&&wt.ja()||(wt=null)}var pt=xe,Be;if(ke){var Yt=function(){return m.a.Ga(wt?wt():ke,I)},Ct=wt?function(lt){return function(){return I(wt()[lt])}}:function(lt){return ke[lt]};Yt.get=function(lt){return ke[lt]&&I(Ct(lt))},Yt.has=function(lt){return lt in ke},m.i.H in ke&&m.i.subscribe(ae,m.i.H,function(){var lt=(0,ke[m.i.H])();if(lt){var tn=m.h.childNodes(ae);tn.length&&lt(tn,m.Ec(tn[0]))}}),m.i.pa in ke&&(pt=m.i.Cb(ae,xe),m.i.subscribe(ae,m.i.pa,function(){var lt=(0,ke[m.i.pa])();lt&&m.h.firstChild(ae)&&lt(ae)})),De=k(ke),m.a.D(De,function(lt){var tn=lt.Mc.init,Ce=lt.Mc.update,Te=lt.key;if(ae.nodeType===8&&!m.h.ea[Te])throw Error("The binding '"+Te+"' cannot be used with virtual elements");try{typeof tn=="function"&&m.u.G(function(){var it=tn(ae,Ct(Te),Yt,pt.$data,pt);if(it&&it.controlsDescendantBindings){if(Be!==e)throw Error("Multiple bindings ("+Be+" and "+Te+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");Be=Te}}),typeof Ce=="function"&&m.$(function(){Ce(ae,Ct(Te),Yt,pt.$data,pt)},null,{l:ae})}catch(it){throw it.message='Unable to process binding "'+Te+": "+ke[Te]+`"
Message: `+it.message,it}})}return De=Be===e,{shouldBindDescendants:De,bindingContextForDescendants:De&&pt}}function q(ae,_e){return ae&&ae instanceof m.fa?ae:new m.fa(ae,e,e,_e)}var J=m.a.Da("_subscribable"),j=m.a.Da("_ancestorBindingInfo"),K=m.a.Da("_dataDependency");m.c={};var Q={script:!0,textarea:!0,template:!0};m.getBindingHandler=function(ae){return m.c[ae]};var de={};m.fa=function(ae,_e,xe,De,Ae){function ke(){var Ct=pt?wt():wt,lt=m.a.f(Ct);return _e?(m.a.extend(ze,_e),j in _e&&(ze[j]=_e[j])):(ze.$parents=[],ze.$root=lt,ze.ko=m),ze[J]=Be,tt?lt=ze.$data:(ze.$rawData=Ct,ze.$data=lt),xe&&(ze[xe]=lt),De&&De(ze,_e,lt),_e&&_e[J]&&!m.S.o().Vb(_e[J])&&_e[J](),Yt&&(ze[K]=Yt),ze.$data}var ze=this,tt=ae===de,wt=tt?e:ae,pt=typeof wt=="function"&&!m.O(wt),Be,Yt=Ae&&Ae.dataDependency;Ae&&Ae.exportDependencies?ke():(Be=m.xb(ke),Be.v(),Be.ja()?Be.equalityComparer=null:ze[J]=e)},m.fa.prototype.createChildContext=function(ae,_e,xe,De){if(!De&&_e&&typeof _e=="object"&&(De=_e,_e=De.as,xe=De.extend),_e&&De&&De.noChildContext){var Ae=typeof ae=="function"&&!m.O(ae);return new m.fa(de,this,null,function(ke){xe&&xe(ke),ke[_e]=Ae?ae():ae},De)}return new m.fa(ae,this,_e,function(ke,ze){ke.$parentContext=ze,ke.$parent=ze.$data,ke.$parents=(ze.$parents||[]).slice(0),ke.$parents.unshift(ke.$parent),xe&&xe(ke)},De)},m.fa.prototype.extend=function(ae,_e){return new m.fa(de,this,null,function(xe){m.a.extend(xe,typeof ae=="function"?ae(xe):ae)},_e)};var ye=m.a.g.Z();S.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},S.prototype.sd=function(ae){m.a.Pa(this.kb,ae),!this.kb.length&&this.H&&this.Cc()},S.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(ae,_e,xe,De,Ae){var ke=m.a.g.Ub(ae,ye,{});return ke.Fa||(ke.Fa=new m.T),Ae&&Ae.notifyImmediately&&ke.Zb[_e]&&m.u.G(xe,De,[ae]),ke.Fa.subscribe(xe,De,_e)},ma:function(ae,_e){var xe=m.a.g.get(ae,ye);if(xe&&(xe.Zb[_e]=!0,xe.Fa&&xe.Fa.notifySubscribers(ae,_e),_e==m.i.H)){if(xe.N)xe.N.Cc();else if(xe.N===e&&xe.Fa&&xe.Fa.Wa(m.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(ae,_e){var xe=m.a.g.Ub(ae,ye,{});return xe.N||(xe.N=new S(ae,xe,_e[j])),_e[j]==xe?_e:_e.extend(function(De){De[j]=xe})}},m.Td=function(ae){return(ae=m.a.g.get(ae,ye))&&ae.context},m.ib=function(ae,_e,xe){return ae.nodeType===1&&m.h.Sc(ae),W(ae,_e,q(xe))},m.ld=function(ae,_e,xe){return xe=q(xe),m.ib(ae,B(_e,xe,ae),xe)},m.Oa=function(ae,_e){_e.nodeType!==1&&_e.nodeType!==8||V(q(ae),_e)},m.vc=function(ae,_e,xe){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(_e=n.body,!_e)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!_e||_e.nodeType!==1&&_e.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(q(ae,xe),_e)},m.Dc=function(ae){return!ae||ae.nodeType!==1&&ae.nodeType!==8?e:m.Td(ae)},m.Ec=function(ae){return(ae=m.Dc(ae))?ae.$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 S(U,V){var G=Object.prototype.hasOwnProperty.call(L,U)?L[U]:_,k;G?G.subscribe(V):(G=L[U]=new m.T,G.subscribe(V),w(U,function(W,q){var J=!(!q||!q.synchronous);B[U]={definition:W,Gd:J},delete L[U],k||J?G.notifySubscribers(W):m.na.zb(function(){G.notifySubscribers(W)})}),k=!0)}function w(U,V){I("getConfig",[U],function(G){G?I("loadComponent",[U,G],function(k){V(k,G)}):V(null,null)})}function I(U,V,G,k){k||(k=m.j.loaders.slice(0));var W=k.shift();if(W){var q=W[U];if(q){var J=!1;if(q.apply(W,V.concat(function(j){J?G(null):j!==null?G(j):I(U,V,G,k)}))!==_&&(J=!0,!W.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(U,V,G,k)}else G(null)}var L={},B={};m.j={get:function(U,V){var G=Object.prototype.hasOwnProperty.call(B,U)?B[U]:_;G?G.Gd?m.u.G(function(){V(G.definition)}):m.na.zb(function(){V(G.definition)}):S(U,V)},Bc:function(U){delete B[U]},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,W,q){function J(){--K===0&&q(j)}var j={},K=2,Q=W.template;W=W.viewModel,Q?L(k,Q,function(de){m.j.oc("loadTemplate",[G,de],function(ye){j.template=ye,J()})}):J(),W?L(k,W,function(de){m.j.oc("loadViewModel",[G,de],function(ye){j[V]=ye,J()})}):J()}function S(G,k,W){if(typeof k=="function")W(function(J){return new k(J)});else if(typeof k[V]=="function")W(k[V]);else if("instance"in k){var q=k.instance;W(function(){return q})}else"viewModel"in k?S(G,k.viewModel,W):G("Unknown viewModel value: "+k)}function w(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 L(G,k,W){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),W(q)}):G("Uses require, but no AMD loader is present"):W(k)}function B(G){return function(k){throw Error("Component '"+G+"': "+k)}}var U={};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");U[G]=k},m.j.tb=function(G){return Object.prototype.hasOwnProperty.call(U,G)},m.j.unregister=function(G){delete U[G],m.j.Bc(G)},m.j.Fc={getConfig:function(G,k){k(m.j.tb(G)?U[G]:null)},loadComponent:function(G,k,W){var q=B(G);L(q,k,function(J){_(G,q,J,W)})},loadTemplate:function(G,k,W){if(G=B(G),typeof k=="string")W(m.a.ua(k));else if(k instanceof Array)W(k);else if(I(k))W(m.a.la(k.childNodes));else if(k.element)if(k=k.element,t.HTMLElement?k instanceof HTMLElement:k&&k.tagName&&k.nodeType===1)W(w(k));else if(typeof k=="string"){var q=n.getElementById(k);q?W(w(q)):G("Cannot find element with ID "+k)}else G("Unknown element type: "+k);else G("Unknown template value: "+k)},loadViewModel:function(G,k,W){S(B(G),k,W)}};var V="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=U}(),function(){function _(w,I){var L=w.getAttribute("params");if(L){var L=S.parseBindingsString(L,I,w,{valueAccessors:!0,bindingParams:!0}),L=m.a.Ga(L,function(V){return m.o(V,null,{l:w})}),B=m.a.Ga(L,function(V){var G=V.v();return V.ja()?m.o({read:function(){return m.a.f(V())},write:m.Za(G)&&function(k){V()(k)},l:w}):G});return Object.prototype.hasOwnProperty.call(B,"$raw")||(B.$raw=L),B}return{$raw:{}}}m.j.getComponentNameForNode=function(w){var I=m.a.R(w);if(m.j.tb(I)&&(I.indexOf("-")!=-1||""+w=="[object HTMLUnknownElement]"||8>=m.a.W&&w.tagName===I))return I},m.j.tc=function(w,I,L,B){if(I.nodeType===1){var U=m.j.getComponentNameForNode(I);if(U){if(w=w||{},w.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var V={name:U,params:_(I,L)};w.component=B?function(){return V}:V}}return w};var S=new m.ga;9>m.a.W&&(m.j.register=function(w){return function(I){return w.apply(this,arguments)}}(m.j.register),n.createDocumentFragment=function(w){return function(){var I=w(),L=m.j.dd,B;for(B in L);return I}}(n.createDocumentFragment))}(),function(){function _(I,L,B){if(L=L.template,!L)throw Error("Component '"+I+"' has no template");I=m.a.Ca(L),m.h.va(B,I)}function S(I,L,B){var U=I.createViewModel;return U?U.call(I,L,B):L}var w=0;m.c.component={init:function(I,L,B,U,V){function G(){var j=k&&k.dispose;typeof j=="function"&&j.call(k),q&&q.s(),W=k=q=null}var k,W,q,J=m.a.la(m.h.childNodes(I));return m.h.Ea(I),m.a.K.za(I,G),m.o(function(){var j=m.a.f(L()),K,Q;if(typeof j=="string"?K=j:(K=m.a.f(j.name),Q=m.a.f(j.params)),!K)throw Error("No component name specified");var de=m.i.Cb(I,V),ye=W=++w;m.j.get(K,function(ae){if(W===ye){if(G(),!ae)throw Error("Unknown component '"+K+"'");_(K,ae,I);var _e=S(ae,Q,{element:I,templateNodes:J});ae=de.createChildContext(_e,{extend:function(xe){xe.$component=_e,xe.$componentTemplateNodes=J}}),_e&&_e.koDescendantsComplete&&(q=m.i.subscribe(I,m.i.pa,_e.koDescendantsComplete,_e)),k=_e,m.Oa(ae,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},m.h.ea.component=!0}();var M={class:"className",for:"htmlFor"};m.c.attr={update:function(_,S){var w=m.a.f(S())||{};m.a.P(w,function(I,L){L=m.a.f(L);var B=I.indexOf(":"),B="lookupNamespaceURI"in _&&0<B&&_.lookupNamespaceURI(I.substr(0,B)),U=L===!1||L===null||L===e;U?B?_.removeAttributeNS(B,I):_.removeAttribute(I):L=L.toString(),8>=m.a.W&&I in M?(I=M[I],U?_.removeAttribute(I):_[I]=L):U||(B?_.setAttributeNS(B,I,L):_.setAttribute(I,L)),I==="name"&&m.a.Yc(_,U?"":L)})}},function(){m.c.checked={after:["value","attr"],init:function(_,S,w){function I(){var j=_.checked,K=B();if(!m.S.Ya()&&(j||!V&&!m.S.qa())){var Q=m.u.G(S);if(k){var de=W?Q.v():Q,ye=J;J=K,ye!==K?j&&(m.a.Na(de,K,!0),m.a.Na(de,ye,!1)):m.a.Na(de,K,j),W&&m.Za(Q)&&Q(de)}else U&&(K===e?K=j:j||(K=e)),m.m.eb(Q,w,"checked",K,!0)}}function L(){var j=m.a.f(S()),K=B();k?(_.checked=0<=m.a.A(j,K),J=K):_.checked=U&&K===e?!!j:B()===j}var B=m.xb(function(){if(w.has("checkedValue"))return m.a.f(w.get("checkedValue"));if(q)return w.has("value")?m.a.f(w.get("value")):_.value}),U=_.type=="checkbox",V=_.type=="radio";if(U||V){var G=S(),k=U&&m.a.f(G)instanceof Array,W=!(k&&G.push&&G.splice),q=V||k,J=k?B():e;V&&!_.name&&m.c.uniqueName.init(_,function(){return!0}),m.o(I,null,{l:_}),m.a.B(_,"click",I),m.o(L,null,{l:_}),G=e}}},m.m.wa.checked=!0,m.c.checkedValue={update:function(_,S){_.value=m.a.f(S())}}}(),m.c.class={update:function(_,S){var w=m.a.Db(m.a.f(S()));m.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=w,m.a.Eb(_,w,!0)}},m.c.css={update:function(_,S){var w=m.a.f(S());w!==null&&typeof w=="object"?m.a.P(w,function(I,L){L=m.a.f(L),m.a.Eb(_,I,L)}):m.c.class.update(_,S)}},m.c.enable={update:function(_,S){var w=m.a.f(S());w&&_.disabled?_.removeAttribute("disabled"):w||_.disabled||(_.disabled=!0)}},m.c.disable={update:function(_,S){m.c.enable.update(_,function(){return!m.a.f(S())})}},m.c.event={init:function(_,S,w,I,L){var B=S()||{};m.a.P(B,function(U){typeof U=="string"&&m.a.B(_,U,function(V){var G,k=S()[U];if(k){try{var W=m.a.la(arguments);I=L.$data,W.unshift(I),G=k.apply(I,W)}finally{G!==!0&&(V.preventDefault?V.preventDefault():V.returnValue=!1)}w.get(U+"Bubble")===!1&&(V.cancelBubble=!0,V.stopPropagation&&V.stopPropagation())}})})}},m.c.foreach={Rc:function(_){return function(){var S=_(),w=m.a.bc(S);return!w||typeof w.length=="number"?{foreach:S,templateEngine:m.ba.Ma}:(m.a.f(S),{foreach:w.data,as:w.as,noChildContext:w.noChildContext,includeDestroyed:w.includeDestroyed,afterAdd:w.afterAdd,beforeRemove:w.beforeRemove,afterRender:w.afterRender,beforeMove:w.beforeMove,afterMove:w.afterMove,templateEngine:m.ba.Ma})}},init:function(_,S){return m.c.template.init(_,m.c.foreach.Rc(S))},update:function(_,S,w,I,L){return m.c.template.update(_,m.c.foreach.Rc(S),w,I,L)}},m.m.Ra.foreach=!1,m.h.ea.foreach=!0,m.c.hasfocus={init:function(_,S,w){function I(U){_.__ko_hasfocusUpdating=!0;var V=_.ownerDocument;if("activeElement"in V){var G;try{G=V.activeElement}catch{G=V.body}U=G===_}V=S(),m.m.eb(V,w,"hasfocus",U,!0),_.__ko_hasfocusLastValue=U,_.__ko_hasfocusUpdating=!1}var L=I.bind(null,!0),B=I.bind(null,!1);m.a.B(_,"focus",L),m.a.B(_,"focusin",L),m.a.B(_,"blur",B),m.a.B(_,"focusout",B),_.__ko_hasfocusLastValue=!1},update:function(_,S){var w=!!m.a.f(S());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===w||(w?_.focus():_.blur(),!w&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),m.u.G(m.a.Fb,null,[_,w?"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(_,S){m.a.fc(_,S())}},function(){function _(S,w,I){m.c[S]={init:function(L,B,U,V,G){var k,W,q={},J,j,K;if(w){V=U.get("as");var Q=U.get("noChildContext");K=!(V&&Q),q={as:V,noChildContext:Q,exportDependencies:K}}return j=(J=U.get("completeOn")=="render")||U.has(m.i.pa),m.o(function(){var de=m.a.f(B()),ye=!I!=!de,ae=!W,_e;(K||ye!==k)&&(j&&(G=m.i.Cb(L,G)),ye&&((!w||K)&&(q.dataDependency=m.S.o()),_e=w?G.createChildContext(typeof de=="function"?de:B,q):m.S.qa()?G.extend(null,q):G),ae&&m.S.qa()&&(W=m.a.Ca(m.h.childNodes(L),!0)),ye?(ae||m.h.va(L,m.a.Ca(W)),m.Oa(_e,L)):(m.h.Ea(L),J||m.i.ma(L,m.i.H)),k=ye)},null,{l:L}),{controlsDescendantBindings:!0}}},m.m.Ra[S]=!1,m.h.ea[S]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),m.c.let={init:function(_,S,w,I,L){return S=L.extend(S),m.Oa(S,_),{controlsDescendantBindings:!0}}},m.h.ea.let=!0;var N={};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(_,S,w){function I(){return m.a.jb(_.options,function(Q){return Q.selected})}function L(Q,de,ye){var ae=typeof de;return ae=="function"?de(Q):ae=="string"?Q[de]:ye}function B(Q,de){if(j&&k)m.i.ma(_,m.i.H);else if(J.length){var ye=0<=m.a.A(J,m.w.M(de[0]));m.a.Zc(de[0],ye),j&&!ye&&m.u.G(m.a.Fb,null,[_,"change"])}}var U=_.multiple,V=_.length!=0&&U?_.scrollTop:null,G=m.a.f(S()),k=w.get("valueAllowUnset")&&w.has("value"),W=w.get("optionsIncludeDestroyed");S={};var q,J=[];k||(U?J=m.a.Mb(I(),m.w.M):0<=_.selectedIndex&&J.push(m.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),q=m.a.jb(G,function(Q){return W||Q===e||Q===null||!m.a.f(Q._destroy)}),w.has("optionsCaption")&&(G=m.a.f(w.get("optionsCaption")),G!==null&&G!==e&&q.unshift(N)));var j=!1;if(S.beforeRemove=function(Q){_.removeChild(Q)},G=B,w.has("optionsAfterRender")&&typeof w.get("optionsAfterRender")=="function"&&(G=function(Q,de){B(0,de),m.u.G(w.get("optionsAfterRender"),null,[de[0],Q!==N?Q:e])}),m.a.ec(_,q,function(Q,de,ye){return ye.length&&(J=!k&&ye[0].selected?[m.w.M(ye[0])]:[],j=!0),de=_.ownerDocument.createElement("option"),Q===N?(m.a.Bb(de,w.get("optionsCaption")),m.w.cb(de,e)):(ye=L(Q,w.get("optionsValue"),Q),m.w.cb(de,m.a.f(ye)),Q=L(Q,w.get("optionsText"),ye),m.a.Bb(de,Q)),[de]},S,G),!k){var K;U?K=J.length&&I().length<J.length:K=J.length&&0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex])!==J[0]:J.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(_),V&&20<Math.abs(V-_.scrollTop)&&(_.scrollTop=V)}},m.c.options.$b=m.a.g.Z(),m.c.selectedOptions={init:function(_,S,w){function I(){var U=S(),V=[];m.a.D(_.getElementsByTagName("option"),function(G){G.selected&&V.push(m.w.M(G))}),m.m.eb(U,w,"selectedOptions",V)}function L(){var U=m.a.f(S()),V=_.scrollTop;U&&typeof U.length=="number"&&m.a.D(_.getElementsByTagName("option"),function(G){var k=0<=m.a.A(U,m.w.M(G));G.selected!=k&&m.a.Zc(G,k)}),_.scrollTop=V}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(L,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},m.m.wa.selectedOptions=!0,m.c.style={update:function(_,S){var w=m.a.f(S()||{});m.a.P(w,function(I,L){if(L=m.a.f(L),(L===null||L===e||L===!1)&&(L=""),o)o(_).css(I,L);else if(/^--/.test(I))_.style.setProperty(I,L);else{I=I.replace(/-(\w)/g,function(U,V){return V.toUpperCase()});var B=_.style[I];_.style[I]=L,L===B||_.style[I]!=B||isNaN(L)||(_.style[I]=L+"px")}})}},m.c.submit={init:function(_,S,w,I,L){if(typeof S()!="function")throw Error("The value for a submit binding must be a function");m.a.B(_,"submit",function(B){var U,V=S();try{U=V.call(L.$data,_)}finally{U!==!0&&(B.preventDefault?B.preventDefault():B.returnValue=!1)}})}},m.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,S){m.a.Bb(_,S())}},m.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(q){if(q)return parseFloat(q[1])},S=t.navigator.userAgent,w,I,L,B,U;(w=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(U=_(S.match(/Edge\/([^ ]+)$/)))||_(S.match(/Chrome\/([^ ]+)/))||(I=_(S.match(/Version\/([^ ]+) Safari/)))||(L=_(S.match(/Firefox\/([^ ]+)/)))||(B=m.a.W||_(S.match(/MSIE ([^ ]+)/)))||(B=_(S.match(/rv:([^ )]+)/)))}if(8<=B&&10>B)var V=m.a.g.Z(),G=m.a.g.Z(),k=function(q){var J=this.activeElement;(J=J&&m.a.g.get(J,G))&&J(q)},W=function(q,J){var j=q.ownerDocument;m.a.g.get(j,V)||(m.a.g.set(j,V,!0),m.a.B(j,"selectionchange",k)),m.a.g.set(q,G,J)};m.c.textInput={init:function(q,J,j){function K(ke,ze){m.a.B(q,ke,ze)}function Q(){var ke=m.a.f(J());(ke===null||ke===e)&&(ke=""),xe!==e&&ke===xe?m.a.setTimeout(Q,4):q.value!==ke&&(Ae=!0,q.value=ke,Ae=!1,ae=q.value)}function de(){_e||(xe=q.value,_e=m.a.setTimeout(ye,4))}function ye(){clearTimeout(_e),xe=_e=e;var ke=q.value;ae!==ke&&(ae=ke,m.m.eb(J(),j,"textInput",ke))}var ae=q.value,_e,xe,De=m.a.W==9?de:ye,Ae=!1;B&&K("keypress",ye),11>B&&K("propertychange",function(ke){Ae||ke.propertyName!=="value"||De(ke)}),B==8&&(K("keyup",ye),K("keydown",ye)),W&&(W(q,De),K("dragend",de)),(!B||9<=B)&&K("input",De),5>I&&m.a.R(q)==="textarea"?(K("keydown",de),K("paste",de),K("cut",de)):11>w?K("keydown",de):4>L?(K("DOMAutoComplete",ye),K("dragdrop",ye),K("drop",ye)):U&&q.type==="number"&&K("keydown",de),K("change",ye),K("blur",ye),m.o(Q,null,{l:q})}},m.m.wa.textInput=!0,m.c.textinput={preprocess:function(q,J,j){j("textInput",q)}}}(),m.c.uniqueName={init:function(_,S){if(S()){var w="ko_unique_"+ ++m.c.uniqueName.rd;m.a.Yc(_,w)}}},m.c.uniqueName.rd=0,m.c.using={init:function(_,S,w,I,L){var B;return w.has("as")&&(B={as:w.get("as"),noChildContext:w.get("noChildContext")}),S=L.createChildContext(S,B),m.Oa(S,_),{controlsDescendantBindings:!0}}},m.h.ea.using=!0,m.c.value={init:function(_,S,w){var I=m.a.R(_),L=I=="input";if(!L||_.type!="checkbox"&&_.type!="radio"){var B=[],U=w.get("valueUpdate"),V=!1,G=null;U&&(typeof U=="string"?B=[U]:B=m.a.wc(U),m.a.Pa(B,"change"));var k=function(){G=null,V=!1;var J=S(),j=m.w.M(_);m.m.eb(J,w,"value",j)};!m.a.W||!L||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||m.a.A(B,"propertychange")!=-1||(m.a.B(_,"propertychange",function(){V=!0}),m.a.B(_,"focus",function(){V=!1}),m.a.B(_,"blur",function(){V&&k()})),m.a.D(B,function(J){var j=k;m.a.Ud(J,"after")&&(j=function(){G=m.w.M(_),m.a.setTimeout(k,0)},J=J.substring(5)),m.a.B(_,J,j)});var W;if(W=L&&_.type=="file"?function(){var J=m.a.f(S());J===null||J===e||J===""?_.value="":m.u.G(k)}:function(){var J=m.a.f(S()),j=m.w.M(_);G!==null&&J===G?m.a.setTimeout(W,0):(J!==j||j===e)&&(I==="select"?(j=w.get("valueAllowUnset"),m.w.cb(_,J,j),j||J===m.w.M(_)||m.u.G(k)):m.w.cb(_,J))},I==="select"){var q;m.i.subscribe(_,m.i.H,function(){q?w.get("valueAllowUnset")?W():k():(m.a.B(_,"change",k),q=m.o(W,null,{l:_}))},null,{notifyImmediately:!0})}else m.a.B(_,"change",k),m.o(W,null,{l:_})}else m.ib(_,{checkedValue:S})},update:function(){}},m.m.wa.value=!0,m.c.visible={update:function(_,S){var w=m.a.f(S()),I=_.style.display!="none";w&&!I?_.style.display="":!w&&I&&(_.style.display="none")}},m.c.hidden={update:function(_,S){m.c.visible.update(_,function(){return!m.a.f(S())})}},function(_){m.c[_]={init:function(S,w,I,L,B){return m.c.event.init.call(this,S,function(){var U={};return U[_]=w(),U},I,L,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(_,S){if(typeof _=="string"){S=S||n;var w=S.getElementById(_);if(!w)throw Error("Cannot find template with ID "+_);return new m.C.F(w)}if(_.nodeType==1||_.nodeType==8)return new m.C.ia(_);throw Error("Unknown template type: "+_)},m.ca.prototype.renderTemplate=function(_,S,w,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,S,w,I)},m.ca.prototype.isTemplateRewritten=function(_,S){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,S).data("isRewritten")},m.ca.prototype.rewriteTemplate=function(_,S,w){_=this.makeTemplateSource(_,w),S=S(_.text()),_.text(S),_.data("isRewritten",!0)},m.b("templateEngine",m.ca),m.kc=function(){function _(I,L,B,U){I=m.m.ac(I);for(var V=m.m.Ra,G=0;G<I.length;G++){var k=I[G].key;if(Object.prototype.hasOwnProperty.call(V,k)){var W=V[k];if(typeof W=="function"){if(k=W(I[G].value))throw Error(k)}else if(!W)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()+"')",U.createJavaScriptEvaluatorBlock(B)+L}var S=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,w=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,L,B){L.isTemplateRewritten(I,B)||L.rewriteTemplate(I,function(U){return m.kc.Ld(U,L)},B)},Ld:function(I,L){return I.replace(S,function(B,U,V,G,k){return _(k,U,V,L)}).replace(w,function(B,U){return _(U,"<!-- ko -->","#comment",L)})},md:function(I,L){return m.aa.Xb(function(B,U){var V=B.nextSibling;V&&V.nodeName.toLowerCase()===L&&m.ib(V,I,U)})}}}(),m.b("__tr_ambtns",m.kc.md),function(){m.C={},m.C.F=function(w){if(this.F=w){var I=m.a.R(w);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&w.content&&w.content.nodeType===11?3:4}},m.C.F.prototype.text=function(){var w=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[w];var I=arguments[0];w==="innerHTML"?m.a.fc(this.F,I):this.F[w]=I};var _=m.a.g.Z()+"_";m.C.F.prototype.data=function(w){if(arguments.length===1)return m.a.g.get(this.F,_+w);m.a.g.set(this.F,_+w,arguments[1])};var S=m.a.g.Z();m.C.F.prototype.nodes=function(){var w=this.F;if(arguments.length==0){var I=m.a.g.get(w,S)||{},L=I.lb||(this.ab===3?w.content:this.ab===4?w:e);if(!L||I.jd){var B=this.text();B&&B!==I.bb&&(L=m.a.Md(B,w.ownerDocument),m.a.g.set(w,S,{lb:L,bb:B,jd:!0}))}return L}I=arguments[0],this.ab!==e&&this.text(""),m.a.g.set(w,S,{lb:I})},m.C.ia=function(w){this.F=w},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 w=m.a.g.get(this.F,S)||{};return w.bb===e&&w.lb&&(w.bb=w.lb.innerHTML),w.bb}m.a.g.set(this.F,S,{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,W){var q;for(k=m.h.nextSibling(k);G&&(q=G)!==k;)G=m.h.nextSibling(q),W(q,G)}function S(G,k){if(G.length){var W=G[0],q=G[G.length-1],J=W.parentNode,j=m.ga.instance,K=j.preprocessNode;if(K){if(_(W,q,function(Q,de){var ye=Q.previousSibling,ae=K.call(j,Q);ae&&(Q===W&&(W=ae[0]||de),Q===q&&(q=ae[ae.length-1]||ye))}),G.length=0,!W)return;W===q?G.push(W):(G.push(W,q),m.a.Ua(G,J))}_(W,q,function(Q){Q.nodeType!==1&&Q.nodeType!==8||m.vc(k,Q)}),_(W,q,function(Q){Q.nodeType!==1&&Q.nodeType!==8||m.aa.cd(Q,[k])}),m.a.Ua(G,J)}}function w(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,k,W,q,J){J=J||{};var j=(G&&w(G)||W||{}).ownerDocument,K=J.templateEngine||B;if(m.kc.xd(W,K,j),W=K.renderTemplate(W,q,J,j),typeof W.length!="number"||0<W.length&&typeof W[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(j=!1,k){case"replaceChildren":m.h.va(G,W),j=!0;break;case"replaceNode":m.a.Xc(G,W),j=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k)}return j&&(S(W,q),J.afterRender&&m.u.G(J.afterRender,null,[W,q[J.as||"$data"]]),k=="replaceChildren"&&m.i.ma(G,m.i.H)),W}function L(G,k,W){return m.O(G)?G():typeof G=="function"?G(k,W):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,W,q,J){if(W=W||{},(W.templateEngine||B)==e)throw Error("Set a template engine before calling renderTemplate");if(J=J||"replaceChildren",q){var j=w(q);return m.$(function(){var Q=k&&k instanceof m.fa?k:new m.fa(k,null,null,null,{exportDependencies:!0}),K=L(G,Q.$data,Q),Q=I(q,J,K,Q,W);J=="replaceNode"&&(q=Q,j=w(q))},null,{Sa:function(){return!j||!m.a.Sb(j)},l:j&&J=="replaceNode"?j.parentNode:j})}return m.aa.Xb(function(K){m.dc(G,k,W,K,"replaceNode")})},m.Qd=function(G,k,W,q,J){function j(xe,De){m.u.G(m.a.ec,null,[q,xe,Q,W,K,De]),m.i.ma(q,m.i.H)}function K(xe,De){S(De,de),W.afterRender&&W.afterRender(De,xe),de=null}function Q(xe,De){de=J.createChildContext(xe,{as:ye,noChildContext:W.noChildContext,extend:function(ke){ke.$index=De,ye&&(ke[ye+"Index"]=De)}});var Ae=L(G,xe,de);return I(q,"ignoreTargetNode",Ae,de,W)}var de,ye=W.as,ae=W.includeDestroyed===!1||m.options.foreachHidesDestroyed&&!W.includeDestroyed;if(ae||W.beforeRemove||!m.Pc(k))return m.$(function(){var xe=m.a.f(k)||[];typeof xe.length>"u"&&(xe=[xe]),ae&&(xe=m.a.jb(xe,function(De){return De===e||De===null||!m.a.f(De._destroy)})),j(xe)},null,{l:q});j(k.v());var _e=k.subscribe(function(xe){j(k(),xe)},null,"arrayChange");return _e.l(q),_e};var U=m.a.g.Z(),V=m.a.g.Z();m.c.template={init:function(G,k){var W=m.a.f(k());if(typeof W=="string"||"name"in W)m.h.Ea(G);else if("nodes"in W){if(W=W.nodes||[],m.O(W))throw Error('The "nodes" option must be a plain, non-observable array.');var q=W[0]&&W[0].parentNode;q&&m.a.g.get(q,V)||(q=m.a.Yb(W),m.a.g.set(q,V,!0)),new m.C.ia(G).nodes(q)}else if(W=m.h.childNodes(G),0<W.length)q=m.a.Yb(W),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,W,q,J){var j=k();k=m.a.f(j),W=!0,q=null,typeof k=="string"?k={}:(j="name"in k?k.name:G,"if"in k&&(W=m.a.f(k.if)),W&&"ifnot"in k&&(W=!m.a.f(k.ifnot)),W&&!j&&(W=!1)),"foreach"in k?q=m.Qd(j,W&&k.foreach||[],k,G,J):W?(W=J,"data"in k&&(W=J.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),q=m.dc(j,W,k,G)):m.h.Ea(G),J=q,(k=m.a.g.get(G,U))&&typeof k.s=="function"&&k.s(),m.a.g.set(G,U,!J||J.ja&&!J.ja()?e:J)}},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(_,S,w){if(_.length&&S.length){var I,L,B,U,V;for(I=L=0;(!w||I<w)&&(U=_[L]);++L){for(B=0;V=S[B];++B)if(U.value===V.value){U.moved=V.index,V.moved=U.index,S.splice(B,1),I=B=0;break}I+=B}}},m.a.Pb=function(){function _(S,w,I,L,B){var U=Math.min,V=Math.max,G=[],k,W=S.length,q,J=w.length,j=J-W||1,K=W+J+1,Q,de,ye;for(k=0;k<=W;k++)for(de=Q,G.push(Q=[]),ye=U(J,k+j),q=V(0,k-1);q<=ye;q++)Q[q]=q?k?S[k-1]===w[q-1]?de[q-1]:U(de[q]||K,Q[q-1]||K)+1:q+1:k+1;for(U=[],V=[],j=[],k=W,q=J;k||q;)J=G[k][q]-1,q&&J===G[k][q-1]?V.push(U[U.length]={status:I,value:w[--q],index:q}):k&&J===G[k-1][q]?j.push(U[U.length]={status:L,value:S[--k],index:k}):(--q,--k,B.sparse||U.push({status:"retained",value:w[q]}));return m.a.Kc(j,V,!B.dontLimitMoves&&10*W),U.reverse()}return function(S,w,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},S=S||[],w=w||[],S.length<w.length?_(S,w,"added","deleted",I):_(w,S,"deleted","added",I)}}(),m.b("utils.compareArrays",m.a.Pb),function(){function _(I,L,B,U,V){var G=[],k=m.$(function(){var W=L(B,V,m.a.Ua(G,I))||[];0<G.length&&(m.a.Xc(G,W),U&&m.u.G(U,null,[B,W,V])),G.length=0,m.a.Nb(G,W)},null,{l:I,Sa:function(){return!m.a.kd(G)}});return{Y:G,$:k.ja()?k:e}}var S=m.a.g.Z(),w=m.a.g.Z();m.a.ec=function(I,L,B,U,V,G){function k(lt){Ae={Aa:lt,pb:m.ta(de++)},K.push(Ae),j||De.push(Ae)}function W(lt){Ae=J[lt],de!==Ae.pb.v()&&xe.push(Ae),Ae.pb(de++),m.a.Ua(Ae.Y,I),K.push(Ae)}function q(lt,tn){if(lt)for(var Ce=0,Te=tn.length;Ce<Te;Ce++)m.a.D(tn[Ce].Y,function(it){lt(it,Ce,tn[Ce].Aa)})}L=L||[],typeof L.length>"u"&&(L=[L]),U=U||{};var J=m.a.g.get(I,S),j=!J,K=[],Q=0,de=0,ye=[],ae=[],_e=[],xe=[],De=[],Ae,ke=0;if(j)m.a.D(L,k);else{if(!G||J&&J._countWaitingForRemove){var ze=m.a.Mb(J,function(lt){return lt.Aa});G=m.a.Pb(ze,L,{dontLimitMoves:U.dontLimitMoves,sparse:!0})}for(var ze=0,tt,wt,pt;tt=G[ze];ze++)switch(wt=tt.moved,pt=tt.index,tt.status){case"deleted":for(;Q<pt;)W(Q++);wt===e&&(Ae=J[Q],Ae.$&&(Ae.$.s(),Ae.$=e),m.a.Ua(Ae.Y,I).length&&(U.beforeRemove&&(K.push(Ae),ke++,Ae.Aa===w?Ae=null:_e.push(Ae)),Ae&&ye.push.apply(ye,Ae.Y))),Q++;break;case"added":for(;de<pt;)W(Q++);wt!==e?(ae.push(K.length),W(wt)):k(tt.value)}for(;de<L.length;)W(Q++);K._countWaitingForRemove=ke}m.a.g.set(I,S,K),q(U.beforeMove,xe),m.a.D(ye,U.beforeRemove?m.oa:m.removeNode);var Be,Yt,Ct;try{Ct=I.ownerDocument.activeElement}catch{}if(ae.length)for(;(ze=ae.shift())!=e;){for(Ae=K[ze],Be=e;ze;)if((Yt=K[--ze].Y)&&Yt.length){Be=Yt[Yt.length-1];break}for(L=0;Q=Ae.Y[L];Be=Q,L++)m.h.Wb(I,Q,Be)}for(ze=0;Ae=K[ze];ze++){for(Ae.Y||m.a.extend(Ae,_(I,B,Ae.Aa,V,Ae.pb)),L=0;Q=Ae.Y[L];Be=Q,L++)m.h.Wb(I,Q,Be);!Ae.Ed&&V&&(V(Ae.Aa,Ae.Y,Ae.pb),Ae.Ed=!0,Be=Ae.Y[Ae.Y.length-1])}for(Ct&&I.ownerDocument.activeElement!=Ct&&Ct.focus(),q(U.beforeRemove,_e),ze=0;ze<_e.length;++ze)_e[ze].Aa=w;q(U.afterMove,xe),q(U.afterAdd,De)}}(),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(_,S,w,I){return(S=!(9>m.a.W)&&_.nodes?_.nodes():null)?m.a.la(S.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 S=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(w,I,L,B){if(B=B||n,L=L||{},2>S)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var U=w.data("precompiled");return U||(U=w.text()||"",U=o.template(null,"{{ko_with $item.koBindingContext}}"+U+"{{/ko_with}}"),w.data("precompiled",U)),w=[I.$data],I=o.extend({koBindingContext:I},L.templateOptions),I=o.tmpl(U,w,I),I.appendTo(B.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(w){return"{{ko_code ((function() { return "+w+" })()) }}"},this.addTemplate=function(w,I){n.write("<script type='text/html' id='"+w+"'>"+I+"</script>")},0<S&&(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 lSt=ko;typeof window<"u"?(ko=window.ko,typeof rk<"u"?window.ko=rk:delete window.ko):(ko=global.ko,typeof rk<"u"?global.ko=rk:delete global.ko);var wC=lSt;/**
 * @license
 * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5
 * Copyright (c) Steve Sanderson
 * MIT license
 */var uQ="__knockoutObservables",fQ="__knockoutSubscribable";function WAe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=jAe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===uQ||o===fQ)&&!(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&&fSt(n,a)}}),e}function jAe(e,t){var n=e[uQ];return!n&&t&&(n={},Object.defineProperty(e,uQ,{value:n})),n}function uSt(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),WAe.call(i,e,[t]),e}function fSt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=dSt(e,t,i))})}function dSt(e,t,n){var i=hSt(e,n);return i.subscribe(t)}function hSt(e,t){var n=t[fQ];if(!n){n=new e.subscribable,Object.defineProperty(t,fQ,{value:n});var i={};mSt(t,n,i),pSt(e,t,n,i)}return n}function mSt(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 pSt(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 qAe(e,t){if(!e)return null;var n=jAe(e,!1);return n&&n[t]||null}function _St(e,t){var n=qAe(e,t);n&&n.valueHasMutated()}function gSt(e){e.track=WAe,e.getObservable=qAe,e.valueHasMutated=_St,e.defineProperty=uSt}var sk={attachToKo:gSt};var YAe="http://www.w3.org/2000/svg",XAe="cesium-svgPath-svg",ySt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(YAe,"svg:svg");i.setAttribute("class",XAe);let o=document.createElementNS(YAe,"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",`${XAe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},ak=ySt;sk.attachToKo(wC);ak.register(wC);var be=wC;function ck(e){l(e)||(e=new hh),this._clock=e,this._eventHelper=new fr,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=be.observable(Z.now()),this.systemTime.equalityComparer=Z.equals,this.startTime=be.observable(e.startTime),this.startTime.equalityComparer=Z.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=be.observable(e.stopTime),this.stopTime.equalityComparer=Z.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=be.observable(e.currentTime),this.currentTime.equalityComparer=Z.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=be.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=be.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=be.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=be.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=be.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),be.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(ck.prototype,{clock:{get:function(){return this._clock}}});ck.prototype.synchronize=function(){let e=this._clock;this.systemTime=Z.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};ck.prototype.isDestroyed=function(){return!1};ck.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var lk=ck;function xSt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,he.throwInstantiationError()}var dQ=xSt;var uk={};uk.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 l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};uk.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};uk.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 u=document.createElement("div");return u.className="cesium-cesiumInspector-slider",u.appendChild(document.createTextNode(e)),u.appendChild(s),u.appendChild(c),u};uk.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 l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var qa=uk;function KAe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),be.track(this,["toggled","tooltip"])}Object.defineProperties(KAe.prototype,{command:{get:function(){return this._command}}});var W0=KAe;function bSt(e,t){t=y(t,!0);let n=new me,i=new me;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,be.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var An=bSt;function TSt(e,t,n,i,o){return n.call(i,e[t]),be.getObservable(e,t).subscribe(n,i,o)}var Ta=TSt;var DC="http://www.w3.org/2000/svg",QAe="http://www.w3.org/1999/xlink",HG,fk=H.fromCssColorString("rgba(247,250,255,0.384)"),GG=H.fromCssColorString("rgba(143,191,255,0.216)"),hQ=H.fromCssColorString("rgba(153,197,255,0.098)"),WG=H.fromCssColorString("rgba(255,255,255,0.086)"),CSt=H.fromCssColorString("rgba(255,255,255,0.267)"),ASt=H.fromCssColorString("rgba(255,255,255,0)"),ZAe=H.fromCssColorString("rgba(66,67,68,0.3)"),$Ae=H.fromCssColorString("rgba(0,0,0,0.5)");function j0(e){return H.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var dk={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 qh(e){let t=document.createElementNS(DC,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(qh(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(QAe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function mQ(e,t,n){let i=document.createElementNS(DC,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(DC,"tspan");return o.textContent=n,i.appendChild(o),i}function ESt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var jG=new H;function as(e,t){let n=t.alpha,i=1-n;return jG.red=e.red*i+t.red*n,jG.green=e.green*i+t.green*n,jG.blue=e.blue*i+t.blue*n,jG.toCssColorString()}function pQ(e,t,n){let i=dk[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 qh(o)}function SSt(e,t,n){let i=dk[n],o=dk.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 qh(r)}function vSt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&HG!==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,u;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,u=t.touches[0].clientY):(c=t.clientX,u=t.clientY),!i&&(c>a.right||c<a.left||u<a.top||u>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=u-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&&u>f.top&&u<f.bottom?(HG=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<m?n.slower():g>m&&n.faster(),t.preventDefault()}else e===HG&&(HG=void 0),n.shuttleRingDragging=!1}function vg(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=[Ta(t,"toggled",this.setToggled,this),Ta(t,"tooltip",this.setTooltip,this),Ta(t.command,"canExecute",this.setEnabled,this)]}vg.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();ue(this)};vg.prototype.isDestroyed=function(){return!1};vg.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")}};vg.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")))};vg.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function Wv(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(DC,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",QAe);let s=document.createElementNS(DC,"g");this._topG=s,this._realtimeSVG=new vg(SSt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new vg(pQ(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new vg(pQ(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new vg(pQ(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(DC,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=qh({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let u=dk.animation_pathSwooshFX,f=dk.animation_pathPointer,d=qh({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:u.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:u.d},{tagName:u.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:u.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=qh({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=qh({tagName:"g",transform:"translate(100,100)"});this._knobOuter=qh({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,m=qh({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=mQ(0,-24,""),this._knobTime=mQ(0,-7,""),this._knobStatus=mQ(0,-41,"");let x=qh({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),b=document.createElementNS(DC,"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 C(O){vSt(T,O)}this._mouseCallback=C,c.addEventListener("mousedown",C,!0),c.addEventListener("touchstart",C,!0),d.addEventListener("mousedown",C,!0),d.addEventListener("touchstart",C,!0),n.addEventListener("mousemove",C,!0),n.addEventListener("touchmove",C,!0),n.addEventListener("mouseup",C,!0),n.addEventListener("touchend",C,!0),n.addEventListener("touchcancel",C,!0),this._shuttleRingPointer.addEventListener("mousedown",C,!0),this._shuttleRingPointer.addEventListener("touchstart",C,!0),this._knobOuter.addEventListener("mousedown",C,!0),this._knobOuter.addEventListener("touchstart",C,!0);let A=this._knobTime.childNodes[0],E=this._knobDate.childNodes[0],v=this._knobStatus.childNodes[0],D;this._subscriptions=[Ta(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),Ta(t,"shuttleRingAngle",function(O){ESt(T._shuttleRingPointer,T._knobOuter,O)}),Ta(t,"dateLabel",function(O){E.textContent!==O&&(E.textContent=O)}),Ta(t,"timeLabel",function(O){A.textContent!==O&&(A.textContent=O)}),Ta(t,"multiplierLabel",function(O){v.textContent!==O&&(v.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(Wv.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Wv.prototype.isDestroyed=function(){return!1};Wv.prototype.destroy=function(){l(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 ue(this)};Wv.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};Wv.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(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=j0(this._themeNormal),n=j0(this._themeHover),i=j0(this._themeSelect),o=j0(this._themeDisabled),r=j0(this._themeKnob),s=j0(this._themePointer),a=j0(this._themeSwoosh),c=j0(this._themeSwooshHover),u=qh({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(t,fk)},{tagName:"stop",offset:"12%","stop-color":as(t,GG)},{tagName:"stop",offset:"46%","stop-color":as(t,hQ)},{tagName:"stop",offset:"81%","stop-color":as(t,WG)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(n,fk)},{tagName:"stop",offset:"12%","stop-color":as(n,GG)},{tagName:"stop",offset:"46%","stop-color":as(n,hQ)},{tagName:"stop",offset:"81%","stop-color":as(n,WG)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(i,fk)},{tagName:"stop",offset:"12%","stop-color":as(i,GG)},{tagName:"stop",offset:"46%","stop-color":as(i,hQ)},{tagName:"stop",offset:"81%","stop-color":as(i,WG)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(o,CSt)},{tagName:"stop",offset:"75%","stop-color":as(o,ASt)}]},{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":as(s,$Ae)},{tagName:"stop",offset:"100%","stop-color":as(s,$Ae)}]},{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":as(r,fk)},{tagName:"stop",offset:"60%","stop-color":as(r,ZAe)},{tagName:"stop",offset:"85%","stop-color":as(r,GG)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":as(r,ZAe)},{tagName:"stop",offset:"60%","stop-color":as(r,fk)},{tagName:"stop",offset:"85%","stop-color":as(r,WG)}]}]});l(this._defsElement)?this._svgNode.replaceChild(u,this._defsElement):this._svgNode.appendChild(u),this._defsElement=u};var hk=Wv;var wSt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],q0=15,jv=105;function JAe(e,t){return e-t}function _Q(e,t){let n=Po(t,e,JAe);return n<0?~n:n}function DSt(e,t){if(Math.abs(e)<=q0)return e/q0;let n=q0,i=jv,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 ISt(e,t,n){if(n.clockStep===mo.SYSTEM_CLOCK)return q0;if(Math.abs(e)<=1)return e*q0;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=q0,r=jv,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 xd(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=xd.defaultDateFormatter,this._timeFormatter=xd.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,be.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(xd.defaultTicks),this.timeLabel=void 0,be.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,be.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,be.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===mo.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,be.defineProperty(this,"shuttleRingAngle",{get:function(){return ISt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,jv),-jv);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===jv){c.multiplier=s>0?a[a.length-1]:a[0];return}let u=DSt(s,a);if(t.snapToTicks)u=a[_Q(u,a)];else if(u!==0){let f=Math.abs(u);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);u=Math.round(u/p)*p|0}else f>q0?u=Math.round(u):f>1?u=+u.toFixed(1):f>0&&(u=+u.toFixed(2))}c.multiplier=u}}),this._canAnimate=void 0,be.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Wr.UNBOUNDED)return!0;let c=s.multiplier,u=s.currentTime,f=s.startTime,d=!1;if(a===Wr.LOOP_STOP)d=Z.greaterThan(u,f)||u.equals(f)&&c>0;else{let p=s.stopTime;d=Z.greaterThan(u,f)&&Z.lessThan(u,p)||u.equals(f)&&c>0||u.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,be.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Wr.UNBOUNDED)return!0;let c=s.systemTime;return Z.greaterThanOrEquals(c,s.startTime)&&Z.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,be.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=An(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new W0(n,{toggled:be.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=An(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new W0(i,{toggled:be.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=An(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new W0(o,{toggled:be.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==mo.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=An(function(){t._clockViewModel.clockStep=mo.SYSTEM_CLOCK},be.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new W0(r,{toggled:be.computed(function(){return e.clockStep===mo.SYSTEM_CLOCK}),tooltip:be.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=An(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=_Q(c,a)-1;u>=0&&(s.multiplier=a[u])}),this._faster=An(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=_Q(c,a)+1;u<a.length&&(s.multiplier=a[u])})}xd.defaultDateFormatter=function(e,t){let n=Z.toGregorianDate(e);return`${wSt[n.month-1]} ${n.day} ${n.year}`};xd.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];xd.defaultTimeFormatter=function(e,t){let n=Z.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`};xd.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};xd.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(JAe);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(xd.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}}});xd._maxShuttleRingAngle=jv;xd._realtimeShuttleRingAngle=q0;var mk=xd;function eEe(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,be.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=be.getObservable(this,"imageryProviderViewModels"),r=be.pureComputed(function(){let d=o(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(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=be.getObservable(this,"terrainProviderViewModels"),a=be.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(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,be.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=l(d)?d.name:void 0,m=l(p)?p.name:void 0;return l(g)&&l(m)?`${g}
${m}`:l(g)?g:m}),this.buttonImageUrl=void 0,be.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(l(d))return d.iconUrl}),this.selectedImagery=void 0;let c=be.observable();this._currentImageryLayers=[],be.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 C=0;C<T;C++){let A=x.get(C);if(A===g[p]){x.remove(A),b=!0;break}}}if(l(d)){let T=d.creationCommand();if(Array.isArray(T)){let C=T.length;for(this._currentImageryLayers=[],p=C-1;p>=0;p--){let A=Ga.fromProviderAsync(T[p]);x.add(A,0),this._currentImageryLayers.push(A)}}else{this._currentImageryLayers=[];let C=Ga.fromProviderAsync(T);if(C.name=d.name,b)x.add(C,0);else{let A=x.get(0);l(A)&&x.remove(A),x.add(C,0)}this._currentImageryLayers.push(C)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let u=be.observable();be.defineProperty(this,"selectedTerrain",{get:function(){return u()},set:function(d){if(u()===d){this.dropDownVisible=!1;return}let p;if(l(d)&&(p=d.creationCommand()),l(p)&&!l(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof Km),this._globe.terrainProvider=p;else if(l(p)){let g=!1,m=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,m()}),b=new tk(p).readyEvent.addEventListener(T=>{g||(this._globe.depthTestAgainstTerrain=!(T instanceof Km),this._globe.terrainProvider=T,b())})}u(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=An(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=e.selectedTerrainProviderViewModel}Object.defineProperties(eEe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var pk=eEe;function qG(e,t){e=In(e);let n=new pk(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 u=document.createElement("div");u.className="cesium-baseLayerPicker-categoryTitle",u.setAttribute("data-bind","text: name"),c.appendChild(u);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 C=document.createElement("div");C.className="cesium-baseLayerPicker-choices",C.setAttribute("data-bind","foreach: providers"),b.appendChild(C);let A=document.createElement("div");A.className="cesium-baseLayerPicker-item",A.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),C.appendChild(A);let E=document.createElement("img");E.className="cesium-baseLayerPicker-itemIcon",E.setAttribute("data-bind","attr: { src: iconUrl }"),E.setAttribute("draggable","false"),A.appendChild(E);let v=document.createElement("div");v.className="cesium-baseLayerPicker-itemLabel",v.setAttribute("data-bind","text: name"),A.appendChild(v),be.applyBindings(n,i),be.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)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(qG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});qG.prototype.isDestroyed=function(){return!1};qG.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._element),be.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var _k=qG;function tEe(e){let t=e.creationFunction;l(t.canExecute)||(t=An(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),be.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(tEe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var cs=tEe;function PSt(){let e=[],t=devicePixelRatio>=2;return e.push(new cs({name:"Bing Maps Aerial",iconUrl:nn("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return cg({style:ag.AERIAL})}})),e.push(new cs({name:"Bing Maps Aerial with Labels",iconUrl:nn("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return cg({style:ag.AERIAL_WITH_LABELS})}})),e.push(new cs({name:"Bing Maps Roads",iconUrl:nn("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return cg({style:ag.ROAD})}})),e.push(new cs({name:"ArcGIS World Imagery",iconUrl:nn("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://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return rg.fromBasemapType(Oh.SATELLITE,{enablePickFeatures:!1})}})),e.push(new cs({name:"ArcGIS World Hillshade",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at 
https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return rg.fromBasemapType(Oh.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new cs({name:"Esri World Ocean",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data.  The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at 
https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return rg.fromBasemapType(Oh.OCEANS,{enablePickFeatures:!1})}})),e.push(new cs({name:"Open\xADStreet\xADMap",iconUrl:nn("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world.
http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new Sg({url:"https://tile.openstreetmap.org/"})}})),e.push(new cs({name:"Stadia x Stamen Watercolor",iconUrl:nn("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and reminiscent of hand drawn maps, the watercolor maps from Stamen Design apply raster effect area washes and organic edges over a paper texture to add warm pop to any map.
https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new Sg({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`&copy; <a href="https://stamen.com/" target="_blank">Stamen Design</a>
           &copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
           &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
           &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Stadia x Stamen Toner",iconUrl:nn("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://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new Sg({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`&copy; <a href="https://stamen.com/" target="_blank">Stamen Design</a>
            &copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
            &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
            &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Stadia Alidade Smooth",iconUrl:nn("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 Sg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
            &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
            &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Stadia Alidade Smooth Dark",iconUrl:nn("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 Sg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`&copy; <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a>
            &copy; <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a>
            &copy; <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Sentinel-2",iconUrl:nn("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 sg.fromAssetId(3954)}})),e.push(new cs({name:"Blue Marble",iconUrl:nn("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return sg.fromAssetId(3845)}})),e.push(new cs({name:"Earth at night",iconUrl:nn("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 sg.fromAssetId(3812)}})),e.push(new cs({name:"Natural Earth\xA0II",iconUrl:nn("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast.
http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return C0.fromUrl(nn("Assets/Textures/NaturalEarthII"))}})),e}var gk=PSt;function RSt(){let e=[];return e.push(new cs({name:"WGS84 Ellipsoid",iconUrl:nn("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new Km({ellipsoid:ee.WGS84})}})),e.push(new cs({name:"Cesium World Terrain",iconUrl:nn("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 yC({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var yk=RSt;function OSt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof ha&&(e.tileset=n.primitive),e.pickActive=!1}}function iEe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof ha&&(e.tileset=i.primitive)},bn.MOUSE_MOVE):(e._eventHandler.removeInputAction(bn.MOUSE_MOVE),e.picking=e.picking)}var MSt={maximumFractionDigits:3};function xk(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,MSt):Math.round(t).toLocaleString()}function bk(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[Fo.PICK]:e._statisticsPerPass[Fo.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>${xk(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${xk(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${xk(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function oEe(){let e=Ci.statistics;return`
  <ul class="cesium-cesiumInspector-statistics">
    <li><strong>Geometry Memory (MB): </strong>${xk(e.geometryByteLength)}</li>
    <li><strong>Texture Memory (MB): </strong>${xk(e.texturesByteLength)}</li>
  </ul>
  `}var LSt=[{text:"Highlight",value:Ml.HIGHLIGHT},{text:"Replace",value:Ml.REPLACE},{text:"Mix",value:Ml.MIX}],nEe=new H(1,1,0,.4),NSt=new H,YG=new H;function Ca(e,t){let n=this,i=e.canvas;this._eventHandler=new Ju(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new fg({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,be.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=be.observable({}),this.properties=[],be.defineProperty(this,"properties",function(){let k=[],W=n._properties();for(let q in W)W.hasOwnProperty(q)&&k.push(q);return k});let o=be.observable();be.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(k){o(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=k)}}),this.dynamicScreenSpaceError=!1;let r=be.observable();be.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(k){r(k),l(n._tileset)&&(n._tileset.colorBlendMode=k,n._scene.requestRender())}}),this.colorBlendMode=Ml.HIGHLIGHT;let s=be.observable(),a=be.observable();be.defineProperty(this,"picking",{get:function(){return a()},set:function(k){a(k),k?n._eventHandler.setInputAction(function(W){let q=e.pick(W.endPosition);if(q instanceof Ws?(n.feature=q,n.tile=q.content.tile):l(q)&&l(q.content)?(n.feature=void 0,n.tile=q.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(q)&&l(q.content)){let J;e.pickPositionSupported&&(J=e.pickPosition(W.endPosition),l(J)&&(n._tileset.debugPickPosition=J)),n._tileset.debugPickedTile=q.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},bn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(bn.MOUSE_MOVE))}}),this.picking=!0;let c=be.observable();be.defineProperty(this,"colorize",{get:function(){return c()},set:function(k){c(k),l(n._tileset)&&(n._tileset.debugColorizeTiles=k,n._scene.requestRender())}}),this.colorize=!1;let u=be.observable();be.defineProperty(this,"wireframe",{get:function(){return u()},set:function(k){u(k),l(n._tileset)&&(n._tileset.debugWireframe=k,n._scene.requestRender())}}),this.wireframe=!1;let f=be.observable();be.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(k){f(k),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=k,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=be.observable();be.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(k){d(k),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=k,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=be.observable();be.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(k){p(k),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=k,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=be.observable();be.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(k){g(k),l(n._tileset)&&(n._tileset.debugFreezeFrame=k,n._scene.debugShowFrustumPlanes=k,n._scene.requestRender())}}),this.freezeFrame=!1,be.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(k){s(k),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=k,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let m=be.observable();be.defineProperty(this,"showGeometricError",{get:function(){return m()},set:function(k){m(k),l(n._tileset)&&(n._tileset.debugShowGeometricError=k,n._scene.requestRender())}}),this.showGeometricError=!1;let x=be.observable();be.defineProperty(this,"showRenderingStatistics",{get:function(){return x()},set:function(k){x(k),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=k,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let b=be.observable();be.defineProperty(this,"showMemoryUsage",{get:function(){return b()},set:function(k){b(k),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=k,n._scene.requestRender())}}),this.showMemoryUsage=!1;let T=be.observable();be.defineProperty(this,"showUrl",{get:function(){return T()},set:function(k){T(k),l(n._tileset)&&(n._tileset.debugShowUrl=k,n._scene.requestRender())}}),this.showUrl=!1;let C=be.observable();be.defineProperty(this,"maximumScreenSpaceError",{get:function(){return C()},set:function(k){k=Number(k),isNaN(k)||(C(k),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=k))}}),this.maximumScreenSpaceError=16;let A=be.observable();be.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return A()},set:function(k){k=Number(k),isNaN(k)||(A(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=k))}}),this.dynamicScreenSpaceErrorDensity=2e-4,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,be.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(A(),1/6)},set:function(k){let W=Math.pow(k,6);A(W),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=W)}});let E=be.observable();be.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return E()},set:function(k){k=Number(k),isNaN(k)||(E(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=k))}}),this.dynamicScreenSpaceErrorFactor=24;let v=OSt(this),D=be.observable();be.defineProperty(this,"pickActive",{get:function(){return D()},set:function(k){D(k),k?n._eventHandler.setInputAction(v,bn.LEFT_CLICK):n._eventHandler.removeInputAction(bn.LEFT_CLICK)}});let O=be.observable();be.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(k){O(k),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=k)}}),this.pointCloudShading=!1;let R=be.observable();be.defineProperty(this,"geometricErrorScale",{get:function(){return R()},set:function(k){k=Number(k),isNaN(k)||(R(k),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=k))}}),this.geometricErrorScale=1;let M=be.observable();be.defineProperty(this,"maximumAttenuation",{get:function(){return M()},set:function(k){k=Number(k),isNaN(k)||(M(k),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=k===0?void 0:k))}}),this.maximumAttenuation=0;let N=be.observable();be.defineProperty(this,"baseResolution",{get:function(){return N()},set:function(k){k=Number(k),isNaN(k)||(N(k),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=k===0?void 0:k))}}),this.baseResolution=0;let _=be.observable();be.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(k){_(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=k)}}),this.eyeDomeLighting=!1;let S=be.observable();be.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return S()},set:function(k){k=Number(k),isNaN(k)||(S(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=k))}}),this.eyeDomeLightingStrength=1;let w=be.observable();be.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(k){k=Number(k),isNaN(k)||(w(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=k))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=be.observable();be.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(k){I(k),l(n._tileset)&&(n._tileset.skipLevelOfDetail=k)}}),this.skipLevelOfDetail=!0;let L=be.observable();be.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return L()},set:function(k){k=Number(k),isNaN(k)||(L(k),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=k))}}),this.skipScreenSpaceErrorFactor=16;let B=be.observable();be.defineProperty(this,"baseScreenSpaceError",{get:function(){return B()},set:function(k){k=Number(k),isNaN(k)||(B(k),l(n._tileset)&&(n._tileset.baseScreenSpaceError=k))}}),this.baseScreenSpaceError=1024;let U=be.observable();be.defineProperty(this,"skipLevels",{get:function(){return U()},set:function(k){k=Number(k),isNaN(k)||(U(k),l(n._tileset)&&(n._tileset.skipLevels=k))}}),this.skipLevels=1;let V=be.observable();be.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return V()},set:function(k){V(k),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=k)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=be.observable();be.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(k){G(k),l(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()}),l(this._tileset)||iEe(this,!0)}Object.defineProperties(Ca.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 LSt}},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,l(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=bk(e,!1),this._pickStatisticsText=bk(e,!0),this._resourceCacheStatisticsText=oEe(),iEe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,NSt):H.WHITE:t.color=YG,this._scene.requestRender()),l(e)&&(H.clone(e.color,YG),e.color=nEe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!gQ(t.content)&&(t.color=YG,this._scene.requestRender()),l(e)&&!gQ(e.content)&&(H.clone(e.color,YG),e.color=nEe,this._scene.requestRender()),this._tile=e}}});function gQ(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!gQ(t[i]))return!1;return!0}return!1}Ca.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};Ca.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};Ca.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};Ca.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};Ca.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};Ca.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};Ca.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};Ca.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};Ca.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};Ca.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};Ca.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new bC(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};Ca.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,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=`  ${a[u]}`,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};Ca.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(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=bk(e,!1),this._pickStatisticsText=bk(e,!0),this._resourceCacheStatisticsText=oEe())};Ca.prototype.isDestroyed=function(){return!1};Ca.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){be.getObservable(e,t).dispose()}),ue(this)};Ca.getStatistics=bk;var Tk=Ca;function XG(e,t){e=In(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new Tk(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=qa.createSection,c=qa.createCheckbox,u=qa.createRangeInput,f=qa.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"),C=document.createElement("div");C.className="field-group";let A=document.createElement("label");A.className="field-label",A.appendChild(document.createTextNode("Properties: "));let E=document.createElement("div");E.setAttribute("data-bind","text: properties"),C.appendChild(A),C.appendChild(E),d.appendChild(C),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 v=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.",v.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(u("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(u("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(u("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(u("EDL Strength","eyeDomeLightingStrength",0,2,.1)),R.appendChild(u("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(R),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let M=document.createElement("div");M.appendChild(u("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(M);let N=document.createElement("div");N.setAttribute("data-bind","visible: dynamicScreenSpaceError"),N.appendChild(u("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),N.appendChild(u("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,32,.1)),g.appendChild(N),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 S=document.createElement("div");S.className="cesium-3dTilesInspector-statistics",S.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),m.appendChild(S),m.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let w=document.createElement("div");w.className="cesium-3dTilesInspector-statistics",w.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),m.appendChild(w);let I=document.createElement("div");b.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let L=document.createElement("select");L.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(L);let B=document.createElement("textarea");B.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(B);let U=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(U);let V=document.createElement("div");V.className="cesium-cesiumInspector-error",V.setAttribute("data-bind","text: editorError"),I.appendChild(V),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(u("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),T.appendChild(G);let k=document.createElement("div");k.appendChild(u("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),T.appendChild(k);let W=document.createElement("div");W.appendChild(u("Min. levels to skip","skipLevels",0,10,1)),T.appendChild(W),T.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),T.appendChild(c("Load siblings of visible tiles","loadSiblings")),be.applyBindings(o,n)}Object.defineProperties(XG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});XG.prototype.isDestroyed=function(){return!1};XG.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var Ck=XG;function FSt(e){let t;if(l(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>&nbsp;&nbsp;&nbsp;&nbsp;${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function yQ(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var BSt=new mn,kSt=new h;function Ak(e,t){let n=this,i=e.canvas,o=new Ju(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="",be.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=An(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=An(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=An(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=An(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=be.getObservable(this,"frustums").subscribe(function(u){n._scene.debugShowFrustums=u,n._scene.requestRender()}),this._frustumPlanesSubscription=be.getObservable(this,"frustumPlanes").subscribe(function(u){n._scene.debugShowFrustumPlanes=u,n._scene.requestRender()}),this._performanceSubscription=be.getObservable(this,"performance").subscribe(function(u){u?n._performanceDisplay=new fg({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=An(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=be.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=An(function(){if(n.primitiveReferenceFrame){let u=n._primitive.modelMatrix;n._modelMatrixPrimitive=new z3({modelMatrix:u}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=be.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=An(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(u){return l(n._modelMatrixPrimitive)&&u.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?u.owner===n._primitive||u.owner===n._primitive._billboardCollection||u.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=be.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=be.getObservable(this,"wireframe").subscribe(function(u){r._surface.tileProvider._debug.wireframe=u,n._scene.requestRender()}),this._depthFrustumSubscription=be.getObservable(this,"depthFrustum").subscribe(function(u){n._scene.debugShowDepthFrustum=u,n._scene.requestRender()}),this._incrementDepthFrustum=An(function(){let u=n.depthFrustum+1;return n.depthFrustum=yQ(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._decrementDepthFrustum=An(function(){let u=n.depthFrustum-1;return n.depthFrustum=yQ(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=be.getObservable(this,"suspendUpdates").subscribe(function(u){r._surface._debug.suspendLodUpdate=u,u||(n.filterTile=!1)});let s;this._showTileCoordinates=An(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new ik({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=be.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=be.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=An(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=An(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=be.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(u){let f=n._scene.pick({x:u.position.x,y:u.position.y});l(f)&&(n.primitive=l(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=An(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=be.getObservable(this,"pickPrimitiveActive").subscribe(function(u){u?o.setInputAction(a,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)});function c(u){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(u.position,BSt),g=r.pick(p,n._scene,kSt);if(l(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(l(T))for(let C=0;!f&&C<T.length;++C){let A=T[C];re.contains(A.rectangle,m)&&(f=A)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=An(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=be.getObservable(this,"pickTileActive").subscribe(function(u){u?o.setInputAction(c,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(Ak.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 An(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return An(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return An(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return An(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return An(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(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(l(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;l(n)&&l(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}}});Ak.prototype._update=function(){this.frustums&&(this.frustumStatisticText=FSt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=yQ(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}`};Ak.prototype.isDestroyed=function(){return!1};Ak.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(),ue(this)};var Ek=Ak;function KG(e,t){e=In(e);let n=document.createElement("div"),i=new Ek(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=qa.createSection,c=qa.createCheckbox,u=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),u.appendChild(f),u.appendChild(c("Show Frustum Planes","frustumPlanes")),u.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",u.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),u.appendChild(p);let g=document.createElement("div");u.appendChild(g);let m=document.createElement("span");m.setAttribute("data-bind",'html: "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 C=a(s,"Primitives","primitivesVisible","togglePrimitives"),A=document.createElement("div");A.className="cesium-cesiumInspector-pickSection",C.appendChild(A);let E=document.createElement("input");E.type="button",E.value="Pick a primitive",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let v=document.createElement("div");v.className="cesium-cesiumInspector-center",v.appendChild(E),A.appendChild(v),A.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),A.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),A.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'),v=document.createElement("div"),v.appendChild(R),v.className="cesium-cesiumInspector-center",O.appendChild(v);let M=document.createElement("div");O.appendChild(M);let N=document.createElement("input");N.type="button",N.value="Parent",N.className="cesium-cesiumInspector-pickButton",N.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let S=document.createElement("input");S.type="button",S.value="NE",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind","click: selectNE");let w=document.createElement("input");w.type="button",w.value="SW",w.className="cesium-cesiumInspector-pickButton",w.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 L=document.createElement("div");L.className="cesium-cesiumInspector-tileText",M.className="cesium-cesiumInspector-frustumStatistics",M.appendChild(L),M.setAttribute("data-bind","visible: hasPickedTile"),L.setAttribute("data-bind","html: tileText");let B=document.createElement("div");B.className="cesium-cesiumInspector-relativeText",B.textContent="Select relative:",M.appendChild(B);let U=document.createElement("table"),V=document.createElement("tr"),G=document.createElement("tr"),k=document.createElement("td");k.appendChild(N);let W=document.createElement("td");W.appendChild(_);let q=document.createElement("td");q.appendChild(S),V.appendChild(k),V.appendChild(W),V.appendChild(q);let J=document.createElement("td"),j=document.createElement("td");j.appendChild(w);let K=document.createElement("td");K.appendChild(I),G.appendChild(J),G.appendChild(j),G.appendChild(K),U.appendChild(V),U.appendChild(G),M.appendChild(U),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")),be.applyBindings(i,this._element)}Object.defineProperties(KG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});KG.prototype.isDestroyed=function(){return!1};KG.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var Sk=KG;function ZG(e,t){l(t)||(t=document.body),t=In(t);let n=this,i=be.observable(gr.fullscreen),o=be.observable(gr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,be.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,be.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&gr.enabled)}}),this.tooltip=void 0,be.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=An(function(){gr.fullscreen?gr.exitFullscreen():gr.requestFullscreen(n._fullscreenElement)},be.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(In(e),r.body),this._callback=function(){i(gr.fullscreen)},r.addEventListener(gr.changeEventName,this._callback)}Object.defineProperties(ZG.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});ZG.prototype.isDestroyed=function(){return!1};ZG.prototype.destroy=function(){document.removeEventListener(gr.changeEventName,this._callback),ue(this)};var vk=ZG;var VSt="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",USt="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 $G(e,t){e=In(e);let n=new vk(t,e);n._exitFullScreenPath=USt,n._enterFullScreenPath=VSt;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),be.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties($G.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});$G.prototype.isDestroyed=function(){return!1};$G.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var wk=$G;var rEe=1e3;function bd(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new P3({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 me,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=aEe,this._handleArrowUp=sEe;let t=this;this._suggestionsVisible=be.pureComputed(function(){let o=be.getObservable(t,"_suggestions")().length>0,r=be.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=An(function(i){if(i=y(i,k0.SEARCH),t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)qSt(t);else return WSt(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?sEe(t):r?aEe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;uEe(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,bd.flyToDestination),this._focusTextbox=!1,be.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=be.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){bd._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,be.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,be.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,be.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(bd.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}}});bd.prototype.destroy=function(){this._suggestionSubscription.dispose()};function sEe(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],bd._adjustSuggestionsScroll(e,n)}function aEe(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],bd._adjustSuggestionsScroll(e,i)}function zSt(e,t){let n=l(t)?t.availability:void 0;return l(n)?IT(t,[e]).then(function(i){return e=i[0],e.height+=rEe,e}):(e.height+=rEe,Promise.resolve(e))}function HSt(e,t){let n=e._scene,i=n.ellipsoid,o=n.camera,r=n.terrainProvider,s=t,a;return t instanceof re?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=re.center(t):a=PT(t,n):t=i.cartesianToCartographic(t),l(a)||(a=zSt(t,r)),a.then(function(c){s=i.cartographicToCartesian(c)}).finally(function(){o.flyTo({destination:s,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:F.IDENTITY})})}async function GSt(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 WSt(e,t,n){let i=e._searchText;if(lEe(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 GSt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,bQ(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=cEe(e,Rv.getCreditsFromResult(s[0]));l(a)||xQ(e,t[o].credit);return}e._searchText=`${i} (not found)`}function xQ(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function cEe(e,t){return l(t)&&t.forEach(n=>xQ(e,n)),t}function bQ(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function jSt(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 qSt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function lEe(e){return/^\s*$/.test(e)}function uEe(e){be.getObservable(e,"_suggestions").removeAll()}async function YSt(e){if(!e.autoComplete)return;let t=e._searchText;if(uEe(e),bQ(e),!lEe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,k0.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=Rv.getCreditsFromResult(r);o=o&&!l(s),cEe(e,s)}),o&&xQ(e,n.credit)}if(e._suggestions.length>=5)return}}bd.flyToDestination=HSt;bd._updateSearchSuggestions=YSt;bd._adjustSuggestionsScroll=jSt;bd.prototype.isDestroyed=function(){return!1};bd.prototype.destroy=function(){return bQ(this),ue(this)};var Dk=bd;var XSt="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",KSt="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 QG(e){let t=In(e.container),n=new Dk(e);n._startSearchPath=XSt,n._stopSearchPath=KSt;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),be.applyBindings(n,i),be.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(u){let f=u.target;typeof u.composedPath=="function"&&(f=u.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(u){n._focusTextbox=!0,n.showSuggestions()},Ht.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(QG.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});QG.prototype.isDestroyed=function(){return!1};QG.prototype.destroy=function(){let e=this._container;return Ht.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(),be.cleanNode(this._form),be.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var Ik=QG;function fEe(e,t){this._scene=e,this._duration=t;let n=this;this._command=An(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",be.track(this,["tooltip"])}Object.defineProperties(fEe.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 Pk=fEe;function JG(e,t,n){e=In(e);let i=new Pk(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),be.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(JG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});JG.prototype.isDestroyed=function(){return!1};JG.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var Rk=JG;function ZSt(e,t){t.currentTarget.parentElement.parentElement.querySelector(`#${e.name}-expander`).classList.toggle("active"),t.currentTarget.textContent=t.currentTarget.textContent==="+"?"-":"+"}function hEe(e,t){be.track(e);for(let n=0;n<e.sublayers.length;n++)hEe(e.sublayers[n],t)}function e5(e){return e.modelName==="FullModel"}function mEe(e){return e.modelName==="Overview"}function pEe(e){return mEe(e)||e5(e)}function dEe(e,t){if(pEe(e)){e.visibility=!1;for(let i=0;i<e.sublayers.length;i++)e.sublayers[i].visibility=!0;let n={name:e.name,modelName:e.modelName,disable:be.observable(!1),index:t.sublayers.length};return t.topLayers.push(n),t.sublayers.push(e),n}}function $St(e,t){if(pEe(e)){t.sublayers.forEach(i=>i.visibility=!1),t.sublayers[e.index].visibility=!0;let n=document.getElementById("bsl-wrapper");e5(e)?(t.currentLevel=t.selectedLevel,n.style.display="block"):(t.selectedLevel=t.currentLevel,t.currentLevel="All",n.style.display="none")}}async function QSt(e,t){try{let n=e.getAttributeNames();for(let i=0;i<n.length;i++)if(n[i]==="BldgLevel"){let o=e.getAttributeValues(n[i]);for(let r=0;r<o.length;r++)t.push(o[r])}t.sort((i,o)=>i-o),t.unshift("All")}catch(n){console.log(`There was an error getting attributes: ${n}`)}}function JSt(e){let t=this;this.levels=[],this.viewModel={sublayers:[],levels:this.levels,currentLevel:be.observable(),selectedLevel:"All",topLayers:[{name:"Select a layer to explore...",disable:be.observable(!0),index:-1}],currentLayer:be.observable(),expandClickHandler:ZSt,setOptionDisable:function(i,o){be.applyBindingsToNode(i,{disable:o.disable},o)},defaultLayer:void 0},this.viewModel.currentLayer.subscribe(function(i){$St(i,t.viewModel)});let n=e.sublayers;for(let i=0;i<n.length;i++){hEe(n[i],this.viewModel);let o=dEe(n[i],this.viewModel);l(o)&&(mEe(o)||!l(this.viewModel.defaultLayer)&&e5(o))&&(this.viewModel.defaultLayer=o)}if(this.viewModel.topLayers.length===1&&n.length>0){e.show=!1;let i={name:"Full Model",modelName:"FullModel",visibility:e.show,sublayers:e.sublayers};this.viewModel.defaultLayer=dEe(i,this.viewModel),this.viewModel.currentLayer.subscribe(function(o){e.show=e5(o)})}else this.viewModel.topLayers.length===1&&(this.viewModel.topLayers[0].name="Building layers not found");return QSt(e,this.levels),this.viewModel.currentLevel.subscribe(function(i){i!=="All"?e.filterByAttributes([{name:"BldgLevel",values:[i]}]):e.filterByAttributes()}),this.viewModel}var Ok=JSt;function evt(e,t){let n=document.getElementById(e),i=document.createElement("div");i.classList.add("cesium-viewer-i3s-explorer"),i.innerHTML=`
        <h3>Building explorer</h3>
        <select
          data-bind="options: topLayers, optionsText: 'name', optionsAfterRender: setOptionDisable, value: currentLayer"
        ></select>
        <div id="bsl-wrapper">
          <h3>Select Level</h3>
          <select data-bind="options: levels, value: currentLevel"></select>
          <h3>Disciplines & Categories</h3>
          <ul class="layersList" data-bind="foreach: sublayers">
            <ul class="layersList" data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })">
              <li>
                <div class="li-wrapper">
                  <span
                    class="expandItem"
                    data-bind="click: $root.expandClickHandler"
                    >+</span
                  >
                  <input
                    type="checkbox"
                    data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}"
                  />
                  <label data-bind="attr: { for: name}">
                    <span data-bind="text: name"></span>
                  </label>
                </div>
                <ul class="nested" data-bind="attr: { id: name + '-expander'}">
                  <li data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })">
                    <div class="li-wrapper">
                      <input
                        type="checkbox"
                        data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}"
                      />
                      <label data-bind="attr: { for: name}">
                        <span data-bind="text: name"></span>
                      </label>
                    </div>
                  </li>
                </ul>
              </li>
            </ul>
          </ul>
        </div>`,n.appendChild(i);let o=new Ok(t);be.track(o),be.applyBindings(o,n),l(o.defaultLayer)&&(o.currentLayer=o.defaultLayer)}var TQ=evt;var tvt="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",nvt="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 CQ(){this._cameraClicked=new me,this._closeClicked=new me,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",be.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,be.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?nvt:tvt}}),be.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}CQ.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(CQ.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var Mk=CQ;function t5(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="&times;",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 Mk;be.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,u=c.createElement("link");u.href=nn("Widgets/InfoBox/InfoBoxDescription.css"),u.rel="stylesheet",u.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(u),c.body.appendChild(f),a._descriptionSubscription=Ta(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=H.fromCssColorString(b);l(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(t5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});t5.prototype.isDestroyed=function(){return!1};t5.prototype.destroy=function(){let e=this._container;return be.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var Lk=t5;function _Ee(){this.showInstructions=!1;let e=this;this._command=An(function(){e.showInstructions=!e.showInstructions}),this._showClick=An(function(){e._touch=!1}),this._showTouch=An(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",be.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(_Ee.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var Nk=_Ee;function n5(e){let t=In(e.container),n=new Nk,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=nn("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 u=document.createElement("button");u.type="button",u.className="cesium-navigation-button cesium-navigation-button-right",u.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=nn("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",u.appendChild(f),u.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(u);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="${nn("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="${nn("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="${nn("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="${nn("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="${nn("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="${nn("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="${nn("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),be.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(n5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});n5.prototype.isDestroyed=function(){return!1};n5.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var Fk=n5;function AQ(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,be.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=An(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=W3.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(AQ.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});AQ.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var Bk=AQ;function i5(e){let t=In(e.container),n=new Bk(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="&times;",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),be.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(i5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});i5.prototype.isDestroyed=function(){return!1};i5.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var kk=i5;function o5(e){this._scene=e,this._orthographic=e.camera.frustum instanceof rn,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,be.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;be.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=An(function(){t.sceneMode===ne.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new fr,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===ne.SCENE2D||t._scene.camera.frustum instanceof rn}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=An(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=An(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ne}Object.defineProperties(o5.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}}});o5.prototype.isDestroyed=function(){return!1};o5.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var Vk=o5;var ivt="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",ovt="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 r5(e,t){e=In(e);let n=new Vk(t);n._perspectivePath=ivt,n._orthographicPath=ovt;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),be.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(r5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});r5.prototype.isDestroyed=function(){return!1};r5.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var Uk=r5;function s5(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new fr,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",be.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,be.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===ne.SCENE2D?n.tooltip2D:o===ne.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=An(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=An(function(){e.morphTo2D(n._duration)}),this._morphTo3D=An(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=An(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ne}Object.defineProperties(s5.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}}});s5.prototype.isDestroyed=function(){return!1};s5.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var zk=s5;var rvt="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",svt="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",avt="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 a5(e,t,n){e=In(e);let i=new zk(t,n);i._globePath=rvt,i._flatMapPath=svt,i._columbusViewPath=avt;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),be.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(u){o.contains(u.target)||(i.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(a5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});a5.prototype.isDestroyed=function(){return!1};a5.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var Hk=a5;var cvt=new z,c5="-1000px";function Gk(e,t,n){this._scene=e,this._screenPositionX=c5,this._screenPositionY=c5,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,be.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,be.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),be.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Ui.worldToWindowCoordinates(e,i,o)}}Gk.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,cvt);if(!l(e))this._screenPositionX=c5,this._screenPositionY=c5;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`}}};Gk.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:qr.EXPONENTIAL_OUT})};Gk.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:qr.EXPONENTIAL_OUT})};Object.defineProperties(Gk.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var Wk=Gk;function l5(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 Wk(t,this._element,this._container);this._viewModel=c,be.applyBindings(this._viewModel,this._element)}Object.defineProperties(l5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});l5.prototype.isDestroyed=function(){return!1};l5.prototype.destroy=function(){let e=this._container;return be.cleanNode(this._element),e.removeChild(this._element),ue(this)};var jk=l5;function IC(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}IC.prototype.getHeight=function(){return this._height};IC.prototype.getBase=function(){return this._base};IC.prototype.getStartTime=function(){return this._start};IC.prototype.getStopTime=function(){return this._stop};IC.prototype.setRange=function(e,t){this._start=e,this._stop=t};IC.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=Z.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=Z.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 qk=IC;function gEe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new H(.5,.5,.5,1),this.backgroundColor=i||new H(0,0,0,0)}gEe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=Z.addSeconds(t.startJulian,t.duration,new Z);if(Z.lessThan(n,o)&&Z.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(Z.lessThanOrEquals(n,r)&&Z.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let u=Z.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new Z);!l(a)&&Z.greaterThanOrEquals(u,n)?a=s:!l(c)&&Z.greaterThanOrEquals(u,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var Yk=gEe;var EQ=1e12,Td={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},yl={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},Y0=[.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],lvt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function xl(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=Td.none,this._touchMode=yl.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=uvt(this),this._onMouseUp=fvt(this),this._onMouseMove=dvt(this),this._onMouseWheel=hvt(this),this._onTouchStart=mvt(this),this._onTouchMove=_vt(this),this._onTouchEnd=pvt(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()}xl.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};xl.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};xl.prototype.isDestroyed=function(){return!1};xl.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),ue(this)};xl.prototype.addHighlightRange=function(e,t,n){let i=new qk(e,t,n);return this._highlightRanges.push(i),this.resize(),i};xl.prototype.addTrack=function(e,t,n,i){let o=new Yk(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};xl.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=Z.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Wr.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=Z.secondsDifference(o,i),s=Z.secondsDifference(i,this._startJulian),a=Z.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=Z.addSeconds(this._endJulian,s,new Z),this._startJulian=i,this._timeBarSecondsSpan=Z.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=Z.addSeconds(this._startJulian,a,new Z),this._endJulian=o,this._timeBarSecondsSpan=Z.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)};xl.prototype.zoomFrom=function(e){let t=Z.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(Z.addSeconds(this._startJulian,t-t*e,new Z),Z.addSeconds(this._endJulian,n*e-n,new Z))};function SQ(e){return e<10?`0${e.toString()}`:e.toString()}xl.prototype.makeLabel=function(e){let t=Z.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`${lvt[t.month-1]} ${t.day} ${t.year} ${SQ(t.hour)}:${SQ(t.minute)}:${SQ(t.second)}${i}`};xl.prototype.smallestTicInPixels=7;xl.prototype._makeTics=function(){let e=this._timeBarEle,t=Z.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,u=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=Z.addSeconds(this._startJulian,a,new Z)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=Z.addSeconds(this._startJulian,c,new Z));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,m=Math.min(d/p*1e-5,.4),x,b=Z.toGregorianDate(g);d>31536e4?x=Z.fromDate(new Date(Date.UTC(Math.floor(b.year/100)*100,0))):d>31536e3?x=Z.fromDate(new Date(Date.UTC(Math.floor(b.year/10)*10,0))):d>86400?x=Z.fromDate(new Date(Date.UTC(b.year,0))):x=Z.fromDate(new Date(Date.UTC(b.year,b.month,b.day)));let T=Z.secondsDifference(this._startJulian,Z.addSeconds(x,m,new Z)),C=T+d;this._epochJulian=x;function A(k){return Math.floor(T/k)*k}function E(k,W){return Math.ceil(k/W+.5)*W}function v(k){return(k-T)/d}function D(k,W){return k-W*Math.round(k/W)}this._rulerEle.innerHTML=this.makeLabel(Z.addSeconds(this._endJulian,-a,new Z));let O=this._rulerEle.offsetWidth+20;O<30&&(O=180);let R=f;f-=u;let M={startTime:T,startJulian:g,epochJulian:x,duration:d,timeBarWidth:p,getAlpha:v};this._highlightRanges.forEach(function(k){s+=k.render(M)});let N=0,_=0,S=0,w=O/p;w>1&&(w=1),w*=this._timeBarSecondsSpan;let I=-1,L=-1,B=Y0.length,U;for(U=0;U<B;++U){let k=Y0[U];if(++I,N=k,k>w&&k>f)break;L<0&&p*(k/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(L=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(N,Y0[I]))<1e-5){Y0[I]>=f&&(_=Y0[I]);break}if(L>=0)for(;L<I;){if(Math.abs(D(_,Y0[L]))<1e-5&&Y0[L]>=f){S=Y0[L];break}++L}}f=R,f>u&&S<1e-5&&Math.abs(f-N)>u&&(S=f,f<=N+u&&(_=0));let V=-999999,G;if(p*(S/this._timeBarSecondsSpan)>=3)for(o=A(S);o<=C;o=E(o,S))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=A(_);o<=C;o=E(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(N/this._timeBarSecondsSpan)>=2){this._mainTicSpan=N,C+=N,o=A(N);let k=Z.computeTaiMinusUtc(x);for(;o<=C;){let W=Z.addSeconds(g,o-T,new Z);if(N>2.1){let K=Z.computeTaiMinusUtc(W);Math.abs(K-k)>.1&&(o+=K-k,W=Z.addSeconds(g,o-T,new Z))}let q=Math.round(p*v(o)),J=this.makeLabel(W);this._rulerEle.innerHTML=J,G=this._rulerEle.offsetWidth,G<10&&(G=O);let j=q-(G/2-1);j>V?(V=j+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${q.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${j.toString()}px;">${J}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${q.toString()}px;"></span>`,o=E(o,N)}}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),M.y=0,this._trackList.forEach(function(k){k.render(r._context,M),M.y+=k.height})};xl.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=Z.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`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(Z.addSeconds(this._startJulian,this._timelineDrag,new Z),Z.addSeconds(this._endJulian,this._timelineDrag,new Z)))};xl.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=Z.addSeconds(this._startJulian,t,new Z),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 uvt(e){return function(t){e._mouseMode!==Td.touchOnly&&(t.button===0?(e._mouseMode=Td.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=Td.zoom:e._mouseMode=Td.slide)),t.preventDefault()}}function fvt(e){return function(t){e._mouseMode=Td.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function dvt(e){return function(t){let n;if(e._mouseMode===Td.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===Td.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(Z.addSeconds(e._startJulian,i,new Z),Z.addSeconds(e._endJulian,i,new Z))}}else e._mouseMode===Td.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function hvt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;EQ=Math.max(Math.min(Math.abs(n),EQ),1),n/=EQ,e.zoomFrom(Math.pow(1.05,-n))}}function mvt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=Td.touchOnly,n===1?(i=Z.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=yl.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=yl.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=yl.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=yl.ignore}}function pvt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===yl.singleTap?(e._touchMode=yl.scrub,e._onTouchMove(t)):e._touchMode===yl.scrub&&e._onTouchMove(t),e._mouseMode=Td.touchOnly,n!==1?e._touchMode=n>0?yl.ignore:yl.none:e._touchMode===yl.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function _vt(e){return function(t){let n,i,o,r,s,a,c=1,u=e._topDiv.getBoundingClientRect().left;e._touchMode===yl.singleTap&&(e._touchMode=yl.slideZoom),e._mouseMode=Td.touchOnly,e._touchMode===yl.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-u,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===yl.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-u,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-u,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=Z.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new Z)):(n=e._touchState.centerX-r,a=Z.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new Z)),e.zoomTo(a,Z.addSeconds(a,e._timeBarSecondsSpan*c,new Z)),e._touchState.centerX=r,e._touchState.spanX=s))}}xl.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 Xk=xl;var xEe=Vo(yEe(),1);function gvt(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function bEe(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function yvt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(bEe(),e._locked=!1),e._noSleep.disable(),gr.exitFullscreen(),n(!1)):(gr.fullscreen||gr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=gvt("landscape")),t.useWebVR=!0,n(!0)))}function u5(e,t){let n=this,i=be.observable(gr.enabled),o=be.observable(!1);this.isVRMode=void 0,be.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,be.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&gr.enabled)}}),this.tooltip=void 0,be.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=be.observable(!1);this._isOrthographic=void 0,be.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new fr,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof rn)}),this._locked=!1,this._noSleep=new xEe.default,this._command=An(function(){yvt(n,e,o,r)},be.getObservable(this,"isVREnabled")),this._vrElement=y(In(t),document.body),this._callback=function(){!gr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(bEe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(gr.changeEventName,this._callback)}Object.defineProperties(u5.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});u5.prototype.isDestroyed=function(){return!1};u5.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(gr.changeEventName,this._callback),ue(this)};var Zk=u5;var xvt="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",bvt="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 f5(e,t,n){e=In(e);let i=new Zk(t,n);i._exitVRPath=bvt,i._enterVRPath=xvt;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),be.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(f5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});f5.prototype.isDestroyed=function(){return!1};f5.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var $k=f5;var TEe=new se;function EEe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function Tvt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(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 Cvt(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(l(r)&&r!=="")return r}return"Unnamed Feature"}function CEe(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=y(n.id,n.primitive.id);if(i instanceof er)return i;if(n instanceof Ws)return new er({name:Cvt(n),description:Tvt(n),feature:n})}if(l(e.scene.globe))return Svt(e,t.position)}var Avt=new Z;function wQ(e,t){if(l(t)){let n=t.clock;if(l(n)&&l(e)){let i=n.startTime,o=n.stopTime;Z.equals(i,o)&&(o=Z.addSeconds(i,P.EPSILON2,Avt)),e.updateFromClock(),e.zoomTo(i,o)}}}var Evt=new h;function Svt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new er({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=AEe();return}let a=s[0],c=new er({id:a.name,description:a.description});if(l(a.position)){let u=e.scene.ellipsoid.cartographicToCartesian(a.position,Evt);c.position=new Gc(u)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=AEe())}),r}function AEe(){return new er({id:"None",description:"No features found."})}function vvt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,u=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(u)&&u.viewModel.isFullscreenEnabled&&(u.container.style.visibility=p),l(f)&&(f.container.style.visibility=p),l(d)&&(d.container.style.visibility=p),e._container){let g=t||!l(u)?0:u.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function $i(e,t){e=In(e),t=y(t,y.EMPTY_OBJECT);let n=(!l(t.globe)||t.globe!==!1)&&(!l(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,u,f=!1;l(t.clockViewModel)?(u=t.clockViewModel,c=u.clock):(c=new hh,u=new lk(c),f=!0);let d=new x3(r,{baseLayer:n&&l(t.selectedImageryProviderViewModel)||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,shouldAnimate:t.shouldAnimate,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,ellipsoid:t.ellipsoid,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,automaticallyTrackDataSourceClocks:t.automaticallyTrackDataSourceClocks,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,dataSources:t.dataSources,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=d.scene,g=new fr;g.add(c.onTick,$i.prototype._onTick,this);let m;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let W=document.createElement("div");W.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(W),m=new jk(W,p)}let x;if(!l(t.infoBox)||t.infoBox!==!1){let W=document.createElement("div");W.className="cesium-viewer-infoBoxContainer",o.appendChild(W),x=new Lk(W);let q=x.viewModel;g.add(q.cameraClicked,$i.prototype._onInfoBoxCameraClicked,this),g.add(q.closeClicked,$i.prototype._onInfoBoxClockClicked,this)}let b=document.createElement("div");b.className="cesium-viewer-toolbar",o.appendChild(b);let T;if(!l(t.geocoder)||t.geocoder!==!1){let W=document.createElement("div");W.className="cesium-viewer-geocoderContainer",b.appendChild(W);let q;l(t.geocoder)&&typeof t.geocoder!="boolean"&&(q=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),T=new Ik({container:W,geocoderServices:q,scene:p}),g.add(T.viewModel.search.beforeExecute,$i.prototype._clearObjects,this)}let C;(!l(t.homeButton)||t.homeButton!==!1)&&(C=new Rk(b,p),l(T)&&g.add(C.viewModel.command.afterExecute,function(){let W=T.viewModel;W.searchText="",W.isSearchInProgress&&W.search()}),g.add(C.viewModel.command.beforeExecute,$i.prototype._clearTrackedObject,this));let A;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(A=new Hk(b,p));let E;t.projectionPicker&&(E=new Uk(b,p));let v,D;if(n){let W=y(t.imageryProviderViewModels,gk()),q=y(t.terrainProviderViewModels,yk());v=new _k(b,{globe:p.globe,imageryProviderViewModels:W,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:q,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),D=b.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(v.viewModel.selectedImagery=void 0),p.imageryLayers.removeAll(),p.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(v.viewModel.selectedTerrain=void 0),p.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(p.globe.depthTestAgainstTerrain=!0),p.setTerrain(t.terrain));let O;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let W=!0;try{if(l(window.localStorage)){let q=window.localStorage.getItem("cesium-hasSeenNavHelp");l(q)&&q?W=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}O=new Fk({container:b,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,W)})}let R;if(!l(t.animation)||t.animation!==!1){let W=document.createElement("div");W.className="cesium-viewer-animationContainer",o.appendChild(W),R=new hk(W,new mk(u))}let M;if(!l(t.timeline)||t.timeline!==!1){let W=document.createElement("div");W.className="cesium-viewer-timelineContainer",o.appendChild(W),M=new Xk(W,c),M.addEventListener("settime",EEe,!1),M.zoomTo(c.startTime,c.stopTime)}let N,_,S;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(S=document.createElement("div"),S.className="cesium-viewer-fullscreenContainer",o.appendChild(S),N=new wk(S,t.fullscreenElement),_=Ta(N.viewModel,"isFullscreenEnabled",function(W){S.style.display=W?"block":"none",l(M)&&(M.container.style.right=`${S.clientWidth}px`,M.resize())}));let w,I,L;if(t.vrButton){let W=document.createElement("div");W.className="cesium-viewer-vrContainer",o.appendChild(W),w=new $k(W,p,t.fullScreenElement),I=Ta(w.viewModel,"isVREnabled",function(q){W.style.display=q?"block":"none",l(N)&&(W.style.right=`${S.clientWidth}px`),l(M)&&(M.container.style.right=`${W.clientWidth}px`,M.resize())}),L=Ta(w.viewModel,"isVRMode",function(q){vvt(i,q)})}this._baseLayerPickerDropDown=D,this._fullscreenSubscription=_,this._vrSubscription=I,this._vrModeSubscription=L,this._dataSourceChangedListeners={},this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=d,this._selectionIndicator=m,this._infoBox=x,this._clockViewModel=u,this._destroyClockViewModel=f,this._toolbar=b,this._homeButton=C,this._sceneModePicker=A,this._projectionPicker=E,this._baseLayerPicker=v,this._navigationHelpButton=O,this._animation=R,this._timeline=M,this._fullscreenButton=N,this._vrButton=w,this._geocoder=T,this._eventHelper=g,this._lastWidth=0,this._lastHeight=0,this._enableInfoOrSelection=l(x)||l(m),this._selectedEntity=void 0,this._selectedEntityChanged=new me;let B=this._cesiumWidget.dataSources,U=this._cesiumWidget.dataSourceDisplay;g.add(B.dataSourceAdded,$i.prototype._onDataSourceAdded,this),g.add(B.dataSourceRemoved,$i.prototype._onDataSourceRemoved,this),g.add(p.postUpdate,$i.prototype.resize,this);let V=B.length;for(let W=0;W<V;W++)this._dataSourceAdded(B,B.get(W));this._dataSourceAdded(void 0,U.defaultDataSource),g.add(B.dataSourceAdded,$i.prototype._dataSourceAdded,this),g.add(B.dataSourceRemoved,$i.prototype._dataSourceRemoved,this);function G(W){let q=CEe(i,W);l(q)?Y.getValueOrUndefined(q.position,i.clock.currentTime)?i.trackedEntity=q:i.zoomTo(q):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function k(W){i.selectedEntity=CEe(i,W)}d.screenSpaceEventHandler.setInputAction(k,bn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(G,bn.LEFT_DOUBLE_CLICK),d._canAnimateUpdateCallback=this._updateCanAnimate(this)}Object.defineProperties($i.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._cesiumWidget.dataSourceDisplay}},entities:{get:function(){return this._cesiumWidget.entities}},dataSources:{get:function(){return this._cesiumWidget.dataSources}},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}},ellipsoid:{get:function(){return this._scene.ellipsoid}},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._cesiumWidget.allowDataSourcesToSuspendAnimation},set:function(e){this._cesiumWidget.allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._cesiumWidget.trackedEntity},set:function(e){this._cesiumWidget.trackedEntity=e}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._cesiumWidget.trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._cesiumWidget.clockTrackedDataSource},set:function(e){this._cesiumWidget.clockTrackedDataSource!==e&&(this._cesiumWidget.clockTrackedDataSource=e,wQ(this._timeline,e))}}});$i.prototype.extend=function(e,t){e(this,t)};$i.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let m=this._geocoder.searchSuggestionsContainer;m.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,u,f=0,d=5,p=3,g=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let m=this._lastWidth;u=this._animation.container,n>900?(f=169,m<=900&&(u.style.width="169px",u.style.height="112px",this._animation.resize())):n>=600?(f=136,(m<600||m>900)&&(u.style.width="136px",u.style.height="90px",this._animation.resize())):(f=106,(m>600||m===0)&&(u.style.width="106px",u.style.height="70px",this._animation.resize())),d=f+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let m=this._fullscreenButton,x=this._vrButton,b=c.container,T=b.style;p=b.clientHeight+3,T.left=`${f}px`;let C=0;l(m)&&(C+=m.container.clientWidth),l(x)&&(C+=x.container.clientWidth),T.right=`${C}px`,c.resize()}!r&&l(this._fullscreenButton)&&(g=this._fullscreenButton.container.clientWidth),this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._bottomContainer.style.right=`${g}px`,this._lastWidth=n,this._lastHeight=i};$i.prototype.forceResize=function(){this._lastWidth=0,this.resize()};$i.prototype.render=function(){this._cesiumWidget.render()};$i.prototype.isDestroyed=function(){return!1};$i.prototype.destroy=function(){return l(this.screenSpaceEventHandler)&&!this.screenSpaceEventHandler.isDestroyed()&&(this.screenSpaceEventHandler.removeInputAction(bn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(bn.LEFT_DOUBLE_CLICK)),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",EEe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._cesiumWidget=this._cesiumWidget.destroy(),ue(this)};$i.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener($i.prototype._onEntityCollectionChanged,this)};$i.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener($i.prototype._onEntityCollectionChanged,this),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};$i.prototype._updateCanAnimate=function(e){return function(t){e._clockViewModel.canAnimate=t}};$i.prototype._onTick=function(e){let t=e.currentTime,n,i=!1,o=this.selectedEntity,r=l(o)&&this._enableInfoOrSelection;r&&o.isShowing&&o.isAvailable(t)&&(this._cesiumWidget.dataSourceDisplay.getBoundingSphere(o,!0,TEe)!==ct.FAILED?n=TEe.center:l(o.position)&&(n=o.position.getValue(t,n)),i=l(n));let s=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(s)&&(s.position=h.clone(n,s.position),s.showSelection=r&&i,s.update());let a=l(this._infoBox)?this._infoBox.viewModel:void 0;l(a)&&(a.showInfo=r,a.enableCamera=i,a.isCameraTracking=this.trackedEntity===this.selectedEntity,r?(a.titleText=y(o.name,o.id),a.description=Y.getValueOrDefault(o.description,t,"")):(a.titleText="",a.description=""))};$i.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.selectedEntity===r&&(this.selectedEntity=void 0)}};$i.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};$i.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};$i.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};$i.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};$i.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&wQ(this.timeline,e)};$i.prototype._onDataSourceAdded=function(e,t){this._cesiumWidget._automaticallyTrackDataSourceClocks&&t===this.clockTrackedDataSource&&wQ(this._timeline,t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,$i.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};$i.prototype._onDataSourceRemoved=function(e,t){let n=t.entities.id;this._dataSourceChangedListeners[n](),this._dataSourceChangedListeners[n]=void 0};$i.prototype.zoomTo=function(e,t){return this._cesiumWidget.zoomTo(e,t)};$i.prototype.flyTo=function(e,t){return this._cesiumWidget.flyTo(e,t)};var DQ=$i;function wvt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new Ck(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var IQ=wvt;function Dvt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new Sk(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var PQ=Dvt;function Ivt(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new me,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){SEe(s,u),s=f,RQ(s,u)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?RQ(s,u):SEe(s,u),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 u(f){PC(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=Pvt(e,m,c,a),x.onerror=Rvt(e,m),x.readAsText(m)}}RQ(s,u),e.destroy=L3(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=u}function PC(e){e.stopPropagation(),e.preventDefault()}function SEe(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",PC,!1),n.removeEventListener("dragover",PC,!1),n.removeEventListener("dragexit",PC,!1))}function RQ(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",PC,!1),e.addEventListener("dragover",PC,!1),e.addEventListener("dragexit",PC,!1)}function Pvt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=rN.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=KN.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=vF.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=JN.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(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 Rvt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var OQ=Ivt;function Ovt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new kk({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var MQ=Ovt;function vEe(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 Cd(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]}),l(c)&&t._getPrimitiveFunctions.push(c);let u=be.observable();return be.defineProperty(t,r,{get:function(){return u()},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),u(f),l(a)&&l(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,u}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=vEe(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===Ni.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===Ni.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===Ni.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&&hp(t)},getPrimitiveFunction:function(){t.translationX=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.translationY=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.translationZ=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.scaleX=F.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.scaleY=F.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.scaleZ=F.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)}})}var Mvt=new h,Lvt=new h,Nvt=new Sa,Fvt=new $;function hp(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,Mvt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,Lvt),i=Nvt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,Fvt),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=F.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(Cd.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),l(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=vEe(i),l(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,hp(t)}}}});Cd.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};Cd.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};Cd.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};Cd.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};Cd.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};Cd.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};Cd.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new sC({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};Cd.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,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=`  ${a[u]}`,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};Cd.prototype.isDestroyed=function(){return!1};Cd.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){be.getObservable(e,t).dispose()}),ue(this)};var Qk=Cd;function d5(e,t){e=In(e);let n=document.createElement("div"),i=new Qk(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=qa.createSection,a=qa.createCheckbox,c=qa.createRangeInput,u=qa.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 C=Ni.getMinBounds(Ni.BOX),A=Ni.getMaxBounds(Ni.BOX),E=h.fromElements(Ni.getMinBounds(Ni.ELLIPSOID).x,Ni.getMinBounds(Ni.ELLIPSOID).y,-ee.WGS84.maximumRadius,new h),v=h.fromElements(Ni.getMaxBounds(Ni.ELLIPSOID).x,Ni.getMaxBounds(Ni.ELLIPSOID).y,1e7,new h),D=Ni.getMinBounds(Ni.CYLINDER),O=Ni.getMaxBounds(Ni.CYLINDER);qv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",C,A,"shapeIsBox",p),qv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",E,v,"shapeIsEllipsoid",p),qv("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),qv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",C,A,"shapeIsBox",g),qv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",E,v,"shapeIsEllipsoid",g),qv("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 M=document.createElement("textarea");M.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),R.className="cesium-cesiumInspector-styleEditor",R.appendChild(M);let N=u("Compile (Ctrl+Enter)","compileShader");R.appendChild(N);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),R.appendChild(_),be.applyBindings(i,n)}Object.defineProperties(d5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});d5.prototype.isDestroyed=function(){return!1};d5.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function qv(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){let b=qa.createRangeInput,T=p,C=g,A=x.appendChild(document.createElement("div"));A.setAttribute("data-bind",`if: ${m}`),A.appendChild(b(e,s,T.x,C.x)),A.appendChild(b(t,a,T.x,C.x)),A.appendChild(b(n,c,T.y,C.y)),A.appendChild(b(i,u,T.y,C.y)),A.appendChild(b(o,f,T.z,C.z)),A.appendChild(b(r,d,T.z,C.z))}var Jk=d5;function Bvt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new Jk(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var LQ=Bvt;globalThis.CESIUM_VERSION="1.123";var kvt="1.123";0&&(module.exports={AlphaMode,AlphaPipelineStage,AnchorPointDirect,AnchorPointIndirect,Animation,AnimationViewModel,Appearance,ApproximateTerrainHeights,ArcGISTiledElevationTerrainProvider,ArcGisBaseMapType,ArcGisMapServerImageryProvider,ArcGisMapService,ArcType,ArticulationStageType,AssociativeArray,Atmosphere,AtmospherePipelineStage,AttributeCompression,AttributeType,AutoExposure,AutomaticUniforms,Axis,AxisAlignedBoundingBox,B3dmLoader,B3dmParser,BaseLayerPicker,BaseLayerPickerViewModel,BatchTable,BatchTableHierarchy,BatchTexture,BatchTexturePipelineStage,Billboard,BillboardCollection,BillboardGraphics,BillboardVisualizer,BingMapsGeocoderService,BingMapsImageryProvider,BingMapsStyle,BlendEquation,BlendFunction,BlendOption,BlendingState,BoundingRectangle,BoundingSphere,BoundingSphereState,BoundingVolumeSemantics,BoxEmitter,BoxGeometry,BoxGeometryUpdater,BoxGraphics,BoxOutlineGeometry,BrdfLutGenerator,Buffer,BufferLoader,BufferUsage,CPUStylingPipelineStage,CallbackPositionProperty,CallbackProperty,Camera,CameraEventAggregator,CameraEventType,CameraFlightPath,Cartesian2,Cartesian3,Cartesian4,Cartographic,CartographicGeocoderService,CatmullRomSpline,Cesium3DContentGroup,Cesium3DTile,Cesium3DTileBatchTable,Cesium3DTileColorBlendMode,Cesium3DTileContent,Cesium3DTileContentFactory,Cesium3DTileContentState,Cesium3DTileContentType,Cesium3DTileFeature,Cesium3DTileFeatureTable,Cesium3DTileOptimizationHint,Cesium3DTileOptimizations,Cesium3DTilePass,Cesium3DTilePassState,Cesium3DTilePointFeature,Cesium3DTileRefine,Cesium3DTileStyle,Cesium3DTileStyleEngine,Cesium3DTilesInspector,Cesium3DTilesInspectorViewModel,Cesium3DTilesVoxelProvider,Cesium3DTileset,Cesium3DTilesetBaseTraversal,Cesium3DTilesetCache,Cesium3DTilesetGraphics,Cesium3DTilesetHeatmap,Cesium3DTilesetMetadata,Cesium3DTilesetMostDetailedTraversal,Cesium3DTilesetSkipTraversal,Cesium3DTilesetStatistics,Cesium3DTilesetTraversal,Cesium3DTilesetVisualizer,CesiumInspector,CesiumInspectorViewModel,CesiumTerrainProvider,CesiumWidget,Check,CheckerboardMaterialProperty,CircleEmitter,CircleGeometry,CircleOutlineGeometry,ClassificationModelDrawCommand,ClassificationPipelineStage,ClassificationPrimitive,ClassificationType,ClearCommand,ClippingPlane,ClippingPlaneCollection,ClippingPolygon,ClippingPolygonCollection,Clock,ClockRange,ClockStep,ClockViewModel,CloudCollection,CloudType,Color,ColorBlendMode,ColorGeometryInstanceAttribute,ColorMaterialProperty,Command,ComponentDatatype,Composite3DTileContent,CompositeEntityCollection,CompositeMaterialProperty,CompositePositionProperty,CompositeProperty,CompressedTextureBuffer,ComputeCommand,ComputeEngine,ConditionsExpression,ConeEmitter,ConstantPositionProperty,ConstantProperty,ConstantSpline,ContentMetadata,Context,ContextLimits,CoplanarPolygonGeometry,CoplanarPolygonGeometryLibrary,CoplanarPolygonOutlineGeometry,CornerType,CorrelationGroup,CorridorGeometry,CorridorGeometryLibrary,CorridorGeometryUpdater,CorridorGraphics,CorridorOutlineGeometry,Credit,CreditDisplay,CubeMap,CubeMapFace,CubicRealPolynomial,CullFace,CullingVolume,CumulusCloud,CustomDataSource,CustomHeightmapTerrainProvider,CustomShader,CustomShaderMode,CustomShaderPipelineStage,CustomShaderTranslucencyMode,CylinderGeometry,CylinderGeometryLibrary,CylinderGeometryUpdater,CylinderGraphics,CylinderOutlineGeometry,CzmlDataSource,DataSource,DataSourceClock,DataSourceCollection,DataSourceDisplay,DebugAppearance,DebugCameraPrimitive,DebugInspector,DebugModelMatrixPrimitive,DefaultProxy,DepthFunction,DepthPlane,DequantizationPipelineStage,DerivedCommand,DeveloperError,DeviceOrientationCameraController,DirectionalLight,DiscardEmptyTileImagePolicy,DiscardMissingTileImagePolicy,DistanceDisplayCondition,DistanceDisplayConditionGeometryInstanceAttribute,DoubleEndedPriorityQueue,DoublyLinkedList,DracoLoader,DrawCommand,DynamicAtmosphereLightingType,DynamicEnvironmentMapManager,DynamicGeometryBatch,DynamicGeometryUpdater,EarthOrientationParameters,EarthOrientationParametersSample,EasingFunction,EllipseGeometry,EllipseGeometryLibrary,EllipseGeometryUpdater,EllipseGraphics,EllipseOutlineGeometry,Ellipsoid,EllipsoidGeodesic,EllipsoidGeometry,EllipsoidGeometryUpdater,EllipsoidGraphics,EllipsoidOutlineGeometry,EllipsoidPrimitive,EllipsoidRhumbLine,EllipsoidSurfaceAppearance,EllipsoidTangentPlane,EllipsoidTerrainProvider,EllipsoidalOccluder,Empty3DTileContent,EncodedCartesian3,Entity,EntityCluster,EntityCollection,EntityView,Event,EventHelper,Expression,ExpressionNodeType,ExtrapolationType,FeatureDetection,FeatureIdPipelineStage,Fog,ForEach,FrameRateMonitor,FrameState,Framebuffer,FramebufferManager,FrustumCommands,FrustumGeometry,FrustumOutlineGeometry,Fullscreen,FullscreenButton,FullscreenButtonViewModel,GeoJsonDataSource,GeoJsonLoader,GeocodeType,Geocoder,GeocoderService,GeocoderViewModel,GeographicProjection,GeographicTilingScheme,Geometry,Geometry3DTileContent,GeometryAttribute,GeometryAttributes,GeometryFactory,GeometryInstance,GeometryInstanceAttribute,GeometryOffsetAttribute,GeometryPipeline,GeometryPipelineStage,GeometryType,GeometryUpdater,GeometryUpdaterSet,GeometryVisualizer,GetFeatureInfoFormat,Globe,GlobeDepth,GlobeSurfaceShaderSet,GlobeSurfaceTile,GlobeSurfaceTileProvider,GlobeTranslucency,GlobeTranslucencyFramebuffer,GlobeTranslucencyState,GltfBufferViewLoader,GltfDracoLoader,GltfGpmLoader,GltfGpmLocal,GltfImageLoader,GltfIndexBufferLoader,GltfJsonLoader,GltfLoader,GltfLoaderUtil,GltfMeshPrimitiveGpmLoader,GltfStructuralMetadataLoader,GltfTextureLoader,GltfVertexBufferLoader,GoogleEarthEnterpriseImageryProvider,GoogleEarthEnterpriseMapsProvider,GoogleEarthEnterpriseMetadata,GoogleEarthEnterpriseTerrainData,GoogleEarthEnterpriseTerrainProvider,GoogleEarthEnterpriseTileInformation,GoogleMaps,GpxDataSource,GregorianDate,GridImageryProvider,GridMaterialProperty,GroundGeometryUpdater,GroundPolylineGeometry,GroundPolylinePrimitive,GroundPrimitive,GroupMetadata,HeadingPitchRange,HeadingPitchRoll,Heap,HeightReference,HeightmapEncoding,HeightmapTerrainData,HeightmapTessellator,HermitePolynomialApproximation,HermiteSpline,HilbertOrder,HomeButton,HomeButtonViewModel,HorizontalOrigin,I3SBuildingSceneLayerExplorer,I3SBuildingSceneLayerExplorerViewModel,I3SDataProvider,I3SDecoder,I3SFeature,I3SField,I3SGeometry,I3SLayer,I3SNode,I3SStatistics,I3SSublayer,I3SSymbology,I3dmLoader,I3dmParser,Iau2000Orientation,Iau2006XysData,Iau2006XysSample,IauOrientationAxes,IauOrientationParameters,ImageBasedLighting,ImageBasedLightingPipelineStage,ImageMaterialProperty,Imagery,ImageryLayer,ImageryLayerCollection,ImageryLayerFeatureInfo,ImageryProvider,ImageryState,Implicit3DTileContent,ImplicitAvailabilityBitstream,ImplicitMetadataView,ImplicitSubdivisionScheme,ImplicitSubtree,ImplicitSubtreeCache,ImplicitSubtreeMetadata,ImplicitTileCoordinates,ImplicitTileset,IndexDatatype,InfoBox,InfoBoxViewModel,InspectorShared,InstanceAttributeSemantic,InstancingPipelineStage,InterpolationAlgorithm,InterpolationType,Intersect,IntersectionTests,Intersections2D,Interval,InvertClassification,Ion,IonGeocoderService,IonImageryProvider,IonResource,IonWorldImageryStyle,Iso8601,JobScheduler,JobType,JsonMetadataTable,JulianDate,KTX2Transcoder,KeyboardEventModifier,KeyframeNode,KmlCamera,KmlDataSource,KmlLookAt,KmlTour,KmlTourFlyTo,KmlTourWait,Label,LabelCollection,LabelGraphics,LabelStyle,LabelVisualizer,LagrangePolynomialApproximation,LeapSecond,Light,LightingModel,LightingPipelineStage,LinearApproximation,LinearSpline,ManagedArray,MapMode2D,MapProjection,MapboxImageryProvider,MapboxStyleImageryProvider,Material,MaterialAppearance,MaterialPipelineStage,MaterialProperty,Math,Matrix2,Matrix3,Matrix4,Megatexture,MeshPrimitiveGpmLocal,MetadataClass,MetadataClassProperty,MetadataComponentType,MetadataEntity,MetadataEnum,MetadataEnumValue,MetadataPicking,MetadataPickingPipelineStage,MetadataPipelineStage,MetadataSchema,MetadataSchemaLoader,MetadataSemantic,MetadataTable,MetadataTableProperty,MetadataType,MipmapHint,Model,Model3DTileContent,ModelAlphaOptions,ModelAnimation,ModelAnimationChannel,ModelAnimationCollection,ModelAnimationLoop,ModelAnimationState,ModelArticulation,ModelArticulationStage,ModelClippingPlanesPipelineStage,ModelClippingPolygonsPipelineStage,ModelColorPipelineStage,ModelComponents,ModelDrawCommand,ModelDrawCommands,ModelFeature,ModelFeatureTable,ModelGraphics,ModelLightingOptions,ModelMatrixUpdateStage,ModelNode,ModelRenderResources,ModelRuntimeNode,ModelRuntimePrimitive,ModelSceneGraph,ModelSilhouettePipelineStage,ModelSkin,ModelSplitterPipelineStage,ModelStatistics,ModelType,ModelUtility,ModelVisualizer,Moon,MorphTargetsPipelineStage,MorphWeightSpline,MortonOrder,Multiple3DTileContent,MultisampleFramebuffer,NavigationHelpButton,NavigationHelpButtonViewModel,NearFarScalar,NeverTileDiscardPolicy,NodeRenderResources,NodeStatisticsPipelineStage,NodeTransformationProperty,OIT,Occluder,OffsetGeometryInstanceAttribute,OpenCageGeocoderService,OpenStreetMapImageryProvider,OrderedGroundPrimitiveCollection,OrientedBoundingBox,OrthographicFrustum,OrthographicOffCenterFrustum,Packable,PackableForInterpolation,Particle,ParticleBurst,ParticleEmitter,ParticleSystem,Pass,PassState,PathGraphics,PathVisualizer,PeliasGeocoderService,PerInstanceColorAppearance,PerformanceDisplay,PerformanceWatchdog,PerformanceWatchdogViewModel,PerspectiveFrustum,PerspectiveOffCenterFrustum,PickDepth,PickDepthFramebuffer,PickFramebuffer,PickedMetadataInfo,Picking,PickingPipelineStage,PinBuilder,PixelDatatype,PixelFormat,Plane,PlaneGeometry,PlaneGeometryUpdater,PlaneGraphics,PlaneOutlineGeometry,PntsLoader,PntsParser,PointCloud,PointCloudEyeDomeLighting,PointCloudShading,PointCloudStylingPipelineStage,PointGraphics,PointPrimitive,PointPrimitiveCollection,PointVisualizer,PolygonGeometry,PolygonGeometryLibrary,PolygonGeometryUpdater,PolygonGraphics,PolygonHierarchy,PolygonOutlineGeometry,PolygonPipeline,Polyline,PolylineArrowMaterialProperty,PolylineCollection,PolylineColorAppearance,PolylineDashMaterialProperty,PolylineGeometry,PolylineGeometryUpdater,PolylineGlowMaterialProperty,PolylineGraphics,PolylineMaterialAppearance,PolylineOutlineMaterialProperty,PolylinePipeline,PolylineVisualizer,PolylineVolumeGeometry,PolylineVolumeGeometryLibrary,PolylineVolumeGeometryUpdater,PolylineVolumeGraphics,PolylineVolumeOutlineGeometry,PositionProperty,PositionPropertyArray,PostProcessStage,PostProcessStageCollection,PostProcessStageComposite,PostProcessStageLibrary,PostProcessStageSampleMode,PostProcessStageTextureCache,PpeMetadata,PpeSource,PpeTexture,Primitive,PrimitiveCollection,PrimitiveLoadPlan,PrimitiveOutlineGenerator,PrimitiveOutlinePipelineStage,PrimitivePipeline,PrimitiveRenderResources,PrimitiveState,PrimitiveStatisticsPipelineStage,PrimitiveType,ProjectionPicker,ProjectionPickerViewModel,Property,PropertyArray,PropertyAttribute,PropertyAttributeProperty,PropertyBag,PropertyTable,PropertyTexture,PropertyTextureProperty,ProviderViewModel,Proxy,QuadraticRealPolynomial,QuadtreeOccluders,QuadtreePrimitive,QuadtreeTile,QuadtreeTileLoadState,QuadtreeTileProvider,QuantizedMeshTerrainData,QuarticRealPolynomial,Quaternion,QuaternionSpline,Queue,Ray,Rectangle,RectangleCollisionChecker,RectangleGeometry,RectangleGeometryLibrary,RectangleGeometryUpdater,RectangleGraphics,RectangleOutlineGeometry,ReferenceFrame,ReferenceProperty,RenderState,Renderbuffer,RenderbufferFormat,Request,RequestErrorEvent,RequestScheduler,RequestState,RequestType,Resource,ResourceCache,ResourceCacheKey,ResourceCacheStatistics,ResourceLoader,ResourceLoaderState,Rotation,RuntimeError,S2Cell,SDFSettings,SampledPositionProperty,SampledProperty,Sampler,ScaledPositionProperty,Scene,SceneFramebuffer,SceneMode,SceneMode2DPipelineStage,SceneModePicker,SceneModePickerViewModel,SceneTransforms,SceneTransitioner,ScreenSpaceCameraController,ScreenSpaceEventHandler,ScreenSpaceEventType,SelectedFeatureIdPipelineStage,SelectionIndicator,SelectionIndicatorViewModel,SensorVolumePortionToDisplay,ShaderBuilder,ShaderCache,ShaderDestination,ShaderFunction,ShaderProgram,ShaderSource,ShaderStruct,ShadowMap,ShadowMapShader,ShadowMode,ShadowVolumeAppearance,ShowGeometryInstanceAttribute,Simon1994PlanetaryPositions,SimplePolylineGeometry,SingleTileImageryProvider,SkinningPipelineStage,SkyAtmosphere,SkyBox,SpatialNode,Spdcf,SpecularEnvironmentCubeMap,SphereEmitter,SphereGeometry,SphereOutlineGeometry,Spherical,Spline,SplitDirection,Splitter,StaticGeometryColorBatch,StaticGeometryPerMaterialBatch,StaticGroundGeometryColorBatch,StaticGroundGeometryPerMaterialBatch,StaticGroundPolylinePerMaterialBatch,StaticOutlineGeometryBatch,StencilConstants,StencilFunction,StencilOperation,SteppedSpline,Stereographic,StorageType,StripeMaterialProperty,StripeOrientation,StructuralMetadata,StyleCommandsNeeded,StyleExpression,Sun,SunLight,SunPostProcess,SupportedImageFormats,SvgPathBindingHandler,TaskProcessor,Terrain,TerrainData,TerrainEncoding,TerrainFillMesh,TerrainMesh,TerrainOffsetProperty,TerrainProvider,TerrainQuantization,TerrainState,Texture,TextureAtlas,TextureCache,TextureMagnificationFilter,TextureManager,TextureMinificationFilter,TextureUniform,TextureWrap,TileAvailability,TileBoundingRegion,TileBoundingS2Cell,TileBoundingSphere,TileBoundingVolume,TileCoordinatesImageryProvider,TileDiscardPolicy,TileEdge,TileImagery,TileMapServiceImageryProvider,TileMetadata,TileOrientedBoundingBox,TileProviderError,TileReplacementQueue,TileSelectionResult,TileState,Tileset3DTileContent,TilesetMetadata,TilesetPipelineStage,TilingScheme,TimeConstants,TimeDynamicImagery,TimeDynamicPointCloud,TimeInterval,TimeIntervalCollection,TimeIntervalCollectionPositionProperty,TimeIntervalCollectionProperty,TimeStandard,Timeline,TimelineHighlightRange,TimelineTrack,Tipsify,ToggleButtonViewModel,Tonemapper,Transforms,TranslationRotationScale,TranslucentTileClassification,TridiagonalSystemSolver,TrustedServers,TweenCollection,UniformState,UniformType,UrlTemplateImageryProvider,VERSION,VRButton,VRButtonViewModel,VRTheWorldTerrainProvider,VaryingType,Vector3DTileBatch,Vector3DTileClampedPolylines,Vector3DTileContent,Vector3DTileGeometry,Vector3DTilePoints,Vector3DTilePolygons,Vector3DTilePolylines,Vector3DTilePrimitive,VelocityOrientationProperty,VelocityVectorProperty,VertexArray,VertexArrayFacade,VertexAttributeSemantic,VertexFormat,VerticalExaggeration,VerticalExaggerationPipelineStage,VerticalOrigin,VideoSynchronizer,View,Viewer,ViewportQuad,Visibility,Visualizer,VoxelBoxShape,VoxelCell,VoxelContent,VoxelCylinderShape,VoxelEllipsoidShape,VoxelInspector,VoxelInspectorViewModel,VoxelPrimitive,VoxelProvider,VoxelRenderResources,VoxelShape,VoxelShapeType,VoxelTraversal,VulkanConstants,WallGeometry,WallGeometryLibrary,WallGeometryUpdater,WallGraphics,WallOutlineGeometry,WebGLConstants,WebMapServiceImageryProvider,WebMapTileServiceImageryProvider,WebMercatorProjection,WebMercatorTilingScheme,WindingOrder,WireframeIndexGenerator,WireframePipelineStage,_shadersAcesTonemappingStage,_shadersAdditiveBlend,_shadersAdjustTranslucentFS,_shadersAllMaterialAppearanceFS,_shadersAllMaterialAppearanceVS,_shadersAmbientOcclusionGenerate,_shadersAmbientOcclusionModulate,_shadersAspectRampMaterial,_shadersAtmosphereCommon,_shadersAtmosphereStageFS,_shadersAtmosphereStageVS,_shadersBasicMaterialAppearanceFS,_shadersBasicMaterialAppearanceVS,_shadersBillboardCollectionFS,_shadersBillboardCollectionVS,_shadersBlackAndWhite,_shadersBloomComposite,_shadersBrdfLutGeneratorFS,_shadersBrightPass,_shadersBrightness,_shadersBumpMapMaterial,_shadersCPUStylingStageFS,_shadersCPUStylingStageVS,_shadersCheckerboardMaterial,_shadersCloudCollectionFS,_shadersCloudCollectionVS,_shadersCloudNoiseFS,_shadersCloudNoiseVS,_shadersCompareAndPackTranslucentDepth,_shadersCompositeOITFS,_shadersCompositeTranslucentClassification,_shadersComputeIrradianceFS,_shadersComputeRadianceMapFS,_shadersContrastBias,_shadersConvolveSpecularMapFS,_shadersConvolveSpecularMapVS,_shadersCustomShaderStageFS,_shadersCustomShaderStageVS,_shadersCzmBuiltins,_shadersDepthOfField,_shadersDepthPlaneFS,_shadersDepthPlaneVS,_shadersDepthView,_shadersDepthViewPacked,_shadersDotMaterial,_shadersEdgeDetection,_shadersElevationBandMaterial,_shadersElevationContourMaterial,_shadersElevationRampMaterial,_shadersEllipsoidFS,_shadersEllipsoidSurfaceAppearanceFS,_shadersEllipsoidSurfaceAppearanceVS,_shadersEllipsoidVS,_shadersFXAA,_shadersFXAA3_11,_shadersFadeMaterial,_shadersFeatureIdStageFS,_shadersFeatureIdStageVS,_shadersFilmicTonemapping,_shadersGaussianBlur1D,_shadersGeometryStageFS,_shadersGeometryStageVS,_shadersGlobeFS,_shadersGlobeVS,_shadersGridMaterial,_shadersGroundAtmosphere,_shadersHSBToRGB,_shadersHSLToRGB,_shadersImageBasedLightingStageFS,_shadersInstancingStageCommon,_shadersInstancingStageVS,_shadersIntersectBox,_shadersIntersectClippingPlanes,_shadersIntersectCylinder,_shadersIntersectDepth,_shadersIntersectEllipsoid,_shadersIntersectLongitude,_shadersIntersection,_shadersIntersectionUtils,_shadersLegacyInstancingStageVS,_shadersLensFlare,_shadersLightingStageFS,_shadersMaterialStageFS,_shadersMegatexture,_shadersMetadataStageFS,_shadersMetadataStageVS,_shadersModelClippingPlanesStageFS,_shadersModelClippingPolygonsStageFS,_shadersModelClippingPolygonsStageVS,_shadersModelColorStageFS,_shadersModelFS,_shadersModelSilhouetteStageFS,_shadersModelSilhouetteStageVS,_shadersModelSplitterStageFS,_shadersModelVS,_shadersModifiedReinhardTonemapping,_shadersMorphTargetsStageVS,_shadersNightVision,_shadersNormalMapMaterial,_shadersOctree,_shadersPassThrough,_shadersPassThroughDepth,_shadersPbrNeutralTonemapping,_shadersPerInstanceColorAppearanceFS,_shadersPerInstanceColorAppearanceVS,_shadersPerInstanceFlatColorAppearanceFS,_shadersPerInstanceFlatColorAppearanceVS,_shadersPointCloudEyeDomeLighting,_shadersPointCloudStylingStageVS,_shadersPointPrimitiveCollectionFS,_shadersPointPrimitiveCollectionVS,_shadersPolygonSignedDistanceFS,_shadersPolylineArrowMaterial,_shadersPolylineColorAppearanceVS,_shadersPolylineCommon,_shadersPolylineDashMaterial,_shadersPolylineFS,_shadersPolylineGlowMaterial,_shadersPolylineMaterialAppearanceVS,_shadersPolylineOutlineMaterial,_shadersPolylineShadowVolumeFS,_shadersPolylineShadowVolumeMorphFS,_shadersPolylineShadowVolumeMorphVS,_shadersPolylineShadowVolumeVS,_shadersPolylineVS,_shadersPrimitiveOutlineStageFS,_shadersPrimitiveOutlineStageVS,_shadersRGBToHSB,_shadersRGBToHSL,_shadersRGBToXYZ,_shadersReinhardTonemapping,_shadersReprojectWebMercatorFS,_shadersReprojectWebMercatorVS,_shadersRimLightingMaterial,_shadersSelectedFeatureIdStageCommon,_shadersShadowVolumeAppearanceFS,_shadersShadowVolumeAppearanceVS,_shadersShadowVolumeFS,_shadersSilhouette,_shadersSkinningStageVS,_shadersSkyAtmosphereCommon,_shadersSkyAtmosphereFS,_shadersSkyAtmosphereVS,_shadersSkyBoxFS,_shadersSkyBoxVS,_shadersSlopeRampMaterial,_shadersStripeMaterial,_shadersSunFS,_shadersSunTextureFS,_shadersSunVS,_shadersTexturedMaterialAppearanceFS,_shadersTexturedMaterialAppearanceVS,_shadersVector3DTileClampedPolylinesFS,_shadersVector3DTileClampedPolylinesVS,_shadersVector3DTilePolylinesVS,_shadersVectorTileVS,_shadersVerticalExaggerationStageVS,_shadersViewportQuadFS,_shadersViewportQuadVS,_shadersVoxelFS,_shadersVoxelUtils,_shadersVoxelVS,_shadersWater,_shadersWaterMaskMaterial,_shadersXYZToRGB,_shadersacesTonemapping,_shadersalphaWeight,_shadersantialias,_shadersapplyHSBShift,_shadersapproximateSphericalCoordinates,_shadersapproximateTanh,_shadersbackFacing,_shadersbranchFreeTernary,_shaderscascadeColor,_shaderscascadeDistance,_shaderscascadeMatrix,_shaderscascadeWeights,_shadersclipPolygons,_shaderscolumbusViewMorph,_shaderscomputeAtmosphereColor,_shaderscomputeGroundAtmosphereScattering,_shaderscomputePosition,_shaderscomputeScattering,_shadersconvertUvToBox,_shadersconvertUvToCylinder,_shadersconvertUvToEllipsoid,_shaderscosineAndSine,_shadersdecompressTextureCoordinates,_shadersdegreesPerRadian,_shadersdepthClamp,_shadersdepthRange,_shadersdepthRangeStruct,_shaderseastNorthUpToEyeCoordinates,_shadersellipsoidContainsPoint,_shadersellipsoidTextureCoordinates,_shadersepsilon1,_shadersepsilon2,_shadersepsilon3,_shadersepsilon4,_shadersepsilon5,_shadersepsilon6,_shadersepsilon7,_shadersequalsEpsilon,_shaderseyeOffset,_shaderseyeToWindowCoordinates,_shadersfastApproximateAtan,_shadersfog,_shadersgammaCorrect,_shadersgeodeticSurfaceNormal,_shadersgetDefaultMaterial,_shadersgetDynamicAtmosphereLightDirection,_shadersgetLambertDiffuse,_shadersgetSpecular,_shadersgetWaterNoise,_shadershue,_shadersinfinity,_shadersinverseGamma,_shadersisEmpty,_shadersisFull,_shaderslatitudeToWebMercatorFraction,_shaderslineDistance,_shaderslinearToSrgb,_shadersluminance,_shadersmaterial,_shadersmaterialInput,_shadersmaximumComponent,_shadersmetersPerPixel,_shadersmodelMaterial,_shadersmodelToWindowCoordinates,_shadersmodelVertexOutput,_shadersmultiplyWithColorBalance,_shadersnearFarScalar,_shadersoctDecode,_shadersoneOverPi,_shadersoneOverTwoPi,_shaderspackDepth,_shaderspassCesium3DTile,_shaderspassCesium3DTileClassification,_shaderspassCesium3DTileClassificationIgnoreShow,_shaderspassClassification,_shaderspassCompute,_shaderspassEnvironment,_shaderspassGlobe,_shaderspassOpaque,_shaderspassOverlay,_shaderspassTerrainClassification,_shaderspassTranslucent,_shaderspassVoxels,_shaderspbrLighting,_shaderspbrNeutralTonemapping,_shadersphong,_shaderspi,_shaderspiOverFour,_shaderspiOverSix,_shaderspiOverThree,_shaderspiOverTwo,_shadersplaneDistance,_shaderspointAlongRay,_shadersradiansPerDegree,_shadersray,_shadersrayEllipsoidIntersectionInterval,_shadersraySegment,_shadersraySphereIntersectionInterval,_shadersreadDepth,_shadersreadNonPerspective,_shadersreverseLogDepth,_shadersround,_shaderssaturation,_shaderssceneMode2D,_shaderssceneMode3D,_shaderssceneModeColumbusView,_shaderssceneModeMorphing,_shadersshadowDepthCompare,_shadersshadowParameters,_shadersshadowVisibility,_shaderssignNotZero,_shaderssolarRadius,_shaderssphericalHarmonics,_shaderssrgbToLinear,_shaderstangentToEyeSpaceMatrix,_shaderstextureCube,_shadersthreePiOver2,_shaderstransformPlane,_shaderstranslateRelativeToEye,_shaderstranslucentPhong,_shaderstranspose,_shaderstwoPi,_shadersunpackClippingExtents,_shadersunpackDepth,_shadersunpackFloat,_shadersunpackUint,_shadersvalueTransform,_shadersvertexLogDepth,_shaderswebMercatorMaxLatitude,_shaderswindowToEyeCoordinates,_shaderswriteDepthClamp,_shaderswriteLogDepth,_shaderswriteNonPerspective,addBuffer,addDefaults,addExtensionsRequired,addExtensionsUsed,addPipelineExtras,addToArray,appendForwardSlash,arrayRemoveDuplicates,barycentricCoordinates,binarySearch,buildModuleUrl,buildVoxelDrawCommands,clone,combine,computeFlyToLocationForRectangle,createBillboardPointCallback,createCommand,createDefaultImageryProviderViewModels,createDefaultTerrainProviderViewModels,createElevationBandMaterial,createGooglePhotorealistic3DTileset,createGuid,createMaterialPropertyDescriptor,createOsmBuildingsAsync,createPropertyDescriptor,createRawPropertyDescriptor,createTangentSpaceDebugPrimitive,createTaskProcessorWorker,createUniform,createUniformArray,createWorldBathymetryAsync,createWorldImageryAsync,createWorldTerrainAsync,decodeGoogleEarthEnterpriseData,decodeVectorPolylinePositions,defaultValue,defer,defined,demodernizeShader,deprecationWarning,destroyObject,exportKml,findAccessorMinMax,findContentMetadata,findGroupMetadata,findTileMetadata,forEachTextureInMaterial,formatError,freezeRenderState,getAbsoluteUri,getAccessorByteStride,getBaseUri,getBinaryAccessor,getClipAndStyleCode,getClippingFunction,getComponentReader,getElement,getExtensionFromUri,getFilenameFromUri,getImageFromTypedArray,getImagePixels,getJsonFromTypedArray,getMagic,getMetadataClassProperty,getStringFromTypedArray,getTimestamp,hasExtension,heightReferenceOnEntityPropertyChanged,isBitSet,isBlobUri,isCrossOriginUrl,isDataUri,isLeapYear,knockout,knockout_3_5_1,knockout_es5,loadAndExecuteScript,loadCubeMap,loadImageFromTypedArray,loadKTX2,mergeSort,moveTechniqueRenderStates,moveTechniquesToExtension,numberOfComponentsForType,objectToQuery,oneTimeWarning,parseBatchTable,parseFeatureMetadataLegacy,parseGlb,parseResponseHeaders,parseStructuralMetadata,pickModel,pointInsideTriangle,preprocess3DTileContent,processVoxelProperties,queryToObject,readAccessorPacked,removeExtension,removeExtensionsRequired,removeExtensionsUsed,removePipelineExtras,removeUnusedElements,resizeImageToNextPowerOfTwo,sampleTerrain,sampleTerrainMostDetailed,scaleToGeodeticSurface,srgbToLinear,subdivideArray,subscribeAndEvaluate,updateAccessorComponentTypes,updateVersion,usesExtension,viewerCesium3DTilesInspectorMixin,viewerCesiumInspectorMixin,viewerDragDropMixin,viewerPerformanceWatchdogMixin,viewerVoxelInspectorMixin,webGLConstantToGlslType,wrapFunction,writeTextToCanvas});
