@deck.gl/geo-layers 9.0.0-beta.3 → 9.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/dist.dev.js +20 -14
  2. package/dist/geohash-layer/geohash-layer.d.ts +1 -1
  3. package/dist/geohash-layer/geohash-layer.d.ts.map +1 -1
  4. package/dist/h3-layers/h3-cluster-layer.d.ts +1 -1
  5. package/dist/h3-layers/h3-cluster-layer.d.ts.map +1 -1
  6. package/dist/index.cjs +3 -0
  7. package/dist/index.cjs.map +2 -2
  8. package/dist/index.d.ts +30 -30
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/mvt-layer/coordinate-transform.d.ts +1 -1
  11. package/dist/mvt-layer/coordinate-transform.d.ts.map +1 -1
  12. package/dist/mvt-layer/mvt-layer.d.ts +4 -3
  13. package/dist/mvt-layer/mvt-layer.d.ts.map +1 -1
  14. package/dist/mvt-layer/mvt-layer.js +5 -0
  15. package/dist/quadkey-layer/quadkey-layer.d.ts +1 -1
  16. package/dist/quadkey-layer/quadkey-layer.d.ts.map +1 -1
  17. package/dist/s2-layer/s2-layer.d.ts +1 -1
  18. package/dist/s2-layer/s2-layer.d.ts.map +1 -1
  19. package/dist/terrain-layer/terrain-layer.d.ts +3 -3
  20. package/dist/terrain-layer/terrain-layer.d.ts.map +1 -1
  21. package/dist/tile-layer/tile-layer.d.ts +3 -3
  22. package/dist/tile-layer/tile-layer.d.ts.map +1 -1
  23. package/dist/tileset-2d/index.d.ts +6 -6
  24. package/dist/tileset-2d/index.d.ts.map +1 -1
  25. package/dist/tileset-2d/tile-2d-header.d.ts +1 -1
  26. package/dist/tileset-2d/tile-2d-header.d.ts.map +1 -1
  27. package/dist/tileset-2d/tile-2d-traversal.d.ts +1 -1
  28. package/dist/tileset-2d/tile-2d-traversal.d.ts.map +1 -1
  29. package/dist/tileset-2d/tileset-2d.d.ts +3 -3
  30. package/dist/tileset-2d/tileset-2d.d.ts.map +1 -1
  31. package/dist/tileset-2d/utils.d.ts +1 -1
  32. package/dist/tileset-2d/utils.d.ts.map +1 -1
  33. package/dist.min.js +2 -2
  34. package/package.json +2 -2
  35. package/src/mvt-layer/mvt-layer.ts +6 -0
package/dist.min.js CHANGED
@@ -10,7 +10,7 @@
10
10
  `);let e=new Yr("!xml"),r=e,n="",s="";for(let i=0;i<t.length;i++)if(t[i]==="<")if(t[i+1]==="/"){let a=Pe(t,">",i,"Closing Tag is not closed."),c=t.substring(i+2,a).trim();if(this.options.removeNSPrefix){let f=c.indexOf(":");f!==-1&&(c=c.substr(f+1))}this.options.transformTagName&&(c=this.options.transformTagName(c)),r&&(n=this.saveTextToParentTag(n,r,s));let l=s.substring(s.lastIndexOf(".")+1);if(c&&this.options.unpairedTags.indexOf(c)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${c}>`);let h=0;l&&this.options.unpairedTags.indexOf(l)!==-1?(h=s.lastIndexOf(".",s.lastIndexOf(".")-1),this.tagsNodeStack.pop()):h=s.lastIndexOf("."),s=s.substring(0,h),r=this.tagsNodeStack.pop(),n="",i=a}else if(t[i+1]==="?"){let a=go(t,i,!1,"?>");if(!a)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,s),!(this.options.ignoreDeclaration&&a.tagName==="?xml"||this.options.ignorePiTags)){let c=new Yr(a.tagName);c.add(this.options.textNodeName,""),a.tagName!==a.tagExp&&a.attrExpPresent&&(c[":@"]=this.buildAttributesMap(a.tagExp,s,a.tagName)),this.addChild(r,c,s)}i=a.closeIndex+1}else if(t.substr(i+1,3)==="!--"){let a=Pe(t,"-->",i+4,"Comment is not closed.");if(this.options.commentPropName){let c=t.substring(i+4,a-2);n=this.saveTextToParentTag(n,r,s),r.add(this.options.commentPropName,[{[this.options.textNodeName]:c}])}i=a}else if(t.substr(i+1,2)==="!D"){let a=z0(t,i);this.docTypeEntities=a.entities,i=a.i}else if(t.substr(i+1,2)==="!["){let a=Pe(t,"]]>",i,"CDATA is not closed.")-2,c=t.substring(i+9,a);if(n=this.saveTextToParentTag(n,r,s),this.options.cdataPropName)r.add(this.options.cdataPropName,[{[this.options.textNodeName]:c}]);else{let l=this.parseTextData(c,r.tagname,s,!0,!1,!0);l==null&&(l=""),r.add(this.options.textNodeName,l)}i=a+2}else{let a=go(t,i,this.options.removeNSPrefix),c=a.tagName,l=a.tagExp,h=a.attrExpPresent,f=a.closeIndex;this.options.transformTagName&&(c=this.options.transformTagName(c)),r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,s,!1));let u=r;if(u&&this.options.unpairedTags.indexOf(u.tagname)!==-1&&(r=this.tagsNodeStack.pop(),s=s.substring(0,s.lastIndexOf("."))),c!==e.tagname&&(s+=s?"."+c:c),this.isItStopNode(this.options.stopNodes,s,c)){let d="";if(l.length>0&&l.lastIndexOf("/")===l.length-1)i=a.closeIndex;else if(this.options.unpairedTags.indexOf(c)!==-1)i=a.closeIndex;else{let _=this.readStopNodeData(t,c,f+1);if(!_)throw new Error(`Unexpected end of ${c}`);i=_.i,d=_.tagContent}let p=new Yr(c);c!==l&&h&&(p[":@"]=this.buildAttributesMap(l,s,c)),d&&(d=this.parseTextData(d,c,s,!0,h,!0,!0)),s=s.substr(0,s.lastIndexOf(".")),p.add(this.options.textNodeName,d),this.addChild(r,p,s)}else{if(l.length>0&&l.lastIndexOf("/")===l.length-1){c[c.length-1]==="/"?(c=c.substr(0,c.length-1),s=s.substr(0,s.length-1),l=c):l=l.substr(0,l.length-1),this.options.transformTagName&&(c=this.options.transformTagName(c));let d=new Yr(c);c!==l&&h&&(d[":@"]=this.buildAttributesMap(l,s,c)),this.addChild(r,d,s),s=s.substr(0,s.lastIndexOf("."))}else{let d=new Yr(c);this.tagsNodeStack.push(r),c!==l&&h&&(d[":@"]=this.buildAttributesMap(l,s,c)),this.addChild(r,d,s),r=d}n="",i=f}}else n+=t[i];return e.child};function Z0(t,e,r){let n=this.options.updateTag(e.tagname,r,e[":@"]);n===!1||(typeof n=="string"&&(e.tagname=n),t.addChild(e))}var Q0=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){let r=this.docTypeEntities[e];t=t.replace(r.regx,r.val)}for(let e in this.lastEntities){let r=this.lastEntities[e];t=t.replace(r.regex,r.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){let r=this.htmlEntities[e];t=t.replace(r.regex,r.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function $0(t,e,r,n){return t&&(n===void 0&&(n=Object.keys(e.child).length===0),t=this.parseTextData(t,e.tagname,r,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,n),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function tA(t,e,r){let n="*."+r;for(let s in t){let i=t[s];if(n===i||e===i)return!0}return!1}function eA(t,e,r=">"){let n,s="";for(let i=e;i<t.length;i++){let o=t[i];if(n)o===n&&(n="");else if(o==='"'||o==="'")n=o;else if(o===r[0])if(r[1]){if(t[i+1]===r[1])return{data:s,index:i}}else return{data:s,index:i};else o===" "&&(o=" ");s+=o}}function Pe(t,e,r,n){let s=t.indexOf(e,r);if(s===-1)throw new Error(n);return s+e.length-1}function go(t,e,r,n=">"){let s=eA(t,e+1,n);if(!s)return;let i=s.data,o=s.index,a=i.search(/\s/),c=i,l=!0;if(a!==-1&&(c=i.substr(0,a).replace(/\s\s*$/,""),i=i.substr(a+1)),r){let h=c.indexOf(":");h!==-1&&(c=c.substr(h+1),l=c!==s.data.substr(h+1))}return{tagName:c,tagExp:i,closeIndex:o,attrExpPresent:l}}function rA(t,e,r){let n=r,s=1;for(;r<t.length;r++)if(t[r]==="<")if(t[r+1]==="/"){let i=Pe(t,">",r,`${e} is not closed`);if(t.substring(r+2,i).trim()===e&&(s--,s===0))return{tagContent:t.substring(n,r),i};r=i}else if(t[r+1]==="?")r=Pe(t,"?>",r+1,"StopNode is not closed.");else if(t.substr(r+1,3)==="!--")r=Pe(t,"-->",r+3,"StopNode is not closed.");else if(t.substr(r+1,2)==="![")r=Pe(t,"]]>",r,"StopNode is not closed.")-2;else{let i=go(t,r,">");i&&((i&&i.tagName)===e&&i.tagExp[i.tagExp.length-1]!=="/"&&s++,r=i.closeIndex)}}function Ao(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:k0(t,r)}else return _o.isExist(t)?t:""}Gl.exports=po});var ql=et(Yl=>{"use strict";function nA(t,e){return Jl(t,e)}function Jl(t,e,r){let n,s={};for(let i=0;i<t.length;i++){let o=t[i],a=sA(o),c="";if(r===void 0?c=a:c=r+"."+a,a===e.textNodeName)n===void 0?n=o[a]:n+=""+o[a];else{if(a===void 0)continue;if(o[a]){let l=Jl(o[a],e,c),h=oA(l,e);o[":@"]?iA(l,o[":@"],c,e):Object.keys(l).length===1&&l[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?l=l[e.textNodeName]:Object.keys(l).length===0&&(e.alwaysCreateTextNode?l[e.textNodeName]="":l=""),s[a]!==void 0&&s.hasOwnProperty(a)?(Array.isArray(s[a])||(s[a]=[s[a]]),s[a].push(l)):e.isArray(a,c,h)?s[a]=[l]:s[a]=l}}}return typeof n=="string"?n.length>0&&(s[e.textNodeName]=n):n!==void 0&&(s[e.textNodeName]=n),s}function sA(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function iA(t,e,r,n){if(e){let s=Object.keys(e),i=s.length;for(let o=0;o<i;o++){let a=s[o];n.isArray(a,r+"."+a,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function oA(t,e){let{textNodeName:r}=e,n=Object.keys(t).length;return!!(n===0||n===1&&(t[r]||typeof t[r]=="boolean"||t[r]===0))}Yl.prettify=nA});var Zl=et((TM,jl)=>{var{buildOptions:aA}=Ll(),cA=Kl(),{prettify:lA}=ql(),hA=ho(),mo=class{constructor(e){this.externalEntities={},this.options=aA(e)}parse(e,r){if(typeof e!="string")if(e.toString)e=e.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let i=hA.validate(e,r);if(i!==!0)throw Error(`${i.err.msg}:${i.err.line}:${i.err.col}`)}let n=new cA(this.options);n.addExternalEntities(this.externalEntities);let s=n.parseXml(e);return this.options.preserveOrder||s===void 0?s:lA(s,this.options)}addEntity(e,r){if(r.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if(r==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=r}};jl.exports=mo});var rh=et((EM,eh)=>{var fA=`
11
11
  `;function uA(t,e){let r="";return e.format&&e.indentBy.length>0&&(r=fA),$l(t,e,"",r)}function $l(t,e,r,n){let s="",i=!1;for(let o=0;o<t.length;o++){let a=t[o],c=dA(a),l="";if(r.length===0?l=c:l=`${r}.${c}`,c===e.textNodeName){let p=a[c];pA(l,e)||(p=e.tagValueProcessor(c,p),p=th(p,e)),i&&(s+=n),s+=p,i=!1;continue}else if(c===e.cdataPropName){i&&(s+=n),s+=`<![CDATA[${a[c][0][e.textNodeName]}]]>`,i=!1;continue}else if(c===e.commentPropName){s+=n+`<!--${a[c][0][e.textNodeName]}-->`,i=!0;continue}else if(c[0]==="?"){let p=Ql(a[":@"],e),_=c==="?xml"?"":n,A=a[c][0][e.textNodeName];A=A.length!==0?" "+A:"",s+=_+`<${c}${A}${p}?>`,i=!0;continue}let h=n;h!==""&&(h+=e.indentBy);let f=Ql(a[":@"],e),u=n+`<${c}${f}`,d=$l(a[c],e,l,h);e.unpairedTags.indexOf(c)!==-1?e.suppressUnpairedNode?s+=u+">":s+=u+"/>":(!d||d.length===0)&&e.suppressEmptyNode?s+=u+"/>":d&&d.endsWith(">")?s+=u+`>${d}${n}</${c}>`:(s+=u+">",d&&n!==""&&(d.includes("/>")||d.includes("</"))?s+=n+e.indentBy+d+n:s+=d,s+=`</${c}>`),i=!0}return s}function dA(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function Ql(t,e){let r="";if(t&&!e.ignoreAttributes)for(let n in t){let s=e.attributeValueProcessor(n,t[n]);s=th(s,e),s===!0&&e.suppressBooleanAttributes?r+=` ${n.substr(e.attributeNamePrefix.length)}`:r+=` ${n.substr(e.attributeNamePrefix.length)}="${s}"`}return r}function pA(t,e){t=t.substr(0,t.length-e.textNodeName.length-1);let r=t.substr(t.lastIndexOf(".")+1);for(let n in e.stopNodes)if(e.stopNodes[n]===t||e.stopNodes[n]==="*."+r)return!0;return!1}function th(t,e){if(t&&t.length>0&&e.processEntities)for(let r=0;r<e.entities.length;r++){let n=e.entities[r];t=t.replace(n.regex,n.val)}return t}eh.exports=uA});var sh=et((RM,nh)=>{"use strict";var gA=rh(),AA={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function ge(t){this.options=Object.assign({},AA,t),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=TA),this.processTextOrObjNode=_A,this.options.format?(this.indentate=mA,this.tagEndChar=`>
12
12
  `,this.newLine=`
13
- `):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}ge.prototype.build=function(t){return this.options.preserveOrder?gA(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0).val)};ge.prototype.j2x=function(t,e){let r="",n="";for(let s in t)if(typeof t[s]>"u")this.isAttribute(s)&&(n+="");else if(t[s]===null)this.isAttribute(s)?n+="":s[0]==="?"?n+=this.indentate(e)+"<"+s+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+s+"/"+this.tagEndChar;else if(t[s]instanceof Date)n+=this.buildTextValNode(t[s],s,"",e);else if(typeof t[s]!="object"){let i=this.isAttribute(s);if(i)r+=this.buildAttrPairStr(i,""+t[s]);else if(s===this.options.textNodeName){let o=this.options.tagValueProcessor(s,""+t[s]);n+=this.replaceEntitiesValue(o)}else n+=this.buildTextValNode(t[s],s,"",e)}else if(Array.isArray(t[s])){let i=t[s].length,o="";for(let a=0;a<i;a++){let c=t[s][a];typeof c>"u"||(c===null?s[0]==="?"?n+=this.indentate(e)+"<"+s+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+s+"/"+this.tagEndChar:typeof c=="object"?this.options.oneListGroup?o+=this.j2x(c,e+1).val:o+=this.processTextOrObjNode(c,s,e):o+=this.buildTextValNode(c,s,"",e))}this.options.oneListGroup&&(o=this.buildObjectNode(o,s,"",e)),n+=o}else if(this.options.attributesGroupName&&s===this.options.attributesGroupName){let i=Object.keys(t[s]),o=i.length;for(let a=0;a<o;a++)r+=this.buildAttrPairStr(i[a],""+t[s][i[a]])}else n+=this.processTextOrObjNode(t[s],s,e);return{attrStr:r,val:n}};ge.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&e==="true"?" "+t:" "+t+'="'+e+'"'};function _A(t,e,r){let n=this.j2x(t,r+1);return t[this.options.textNodeName]!==void 0&&Object.keys(t).length===1?this.buildTextValNode(t[this.options.textNodeName],e,n.attrStr,r):this.buildObjectNode(n.val,e,n.attrStr,r)}ge.prototype.buildObjectNode=function(t,e,r,n){if(t==="")return e[0]==="?"?this.indentate(n)+"<"+e+r+"?"+this.tagEndChar:this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar;{let s="</"+e+this.tagEndChar,i="";return e[0]==="?"&&(i="?",s=""),(r||r==="")&&t.indexOf("<")===-1?this.indentate(n)+"<"+e+r+i+">"+t+s:this.options.commentPropName!==!1&&e===this.options.commentPropName&&i.length===0?this.indentate(n)+`<!--${t}-->`+this.newLine:this.indentate(n)+"<"+e+r+i+this.tagEndChar+t+this.indentate(n)+s}};ge.prototype.closeTag=function(t){let e="";return this.options.unpairedTags.indexOf(t)!==-1?this.options.suppressUnpairedNode||(e="/"):this.options.suppressEmptyNode?e="/":e=`></${t}`,e};ge.prototype.buildTextValNode=function(t,e,r,n){if(this.options.cdataPropName!==!1&&e===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${t}]]>`+this.newLine;if(this.options.commentPropName!==!1&&e===this.options.commentPropName)return this.indentate(n)+`<!--${t}-->`+this.newLine;if(e[0]==="?")return this.indentate(n)+"<"+e+r+"?"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),s===""?this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+r+">"+s+"</"+e+this.tagEndChar}};ge.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){let r=this.options.entities[e];t=t.replace(r.regex,r.val)}return t};function mA(t){return this.options.indentBy.repeat(t)}function TA(t){return t.startsWith(this.options.attributeNamePrefix)&&t!==this.options.textNodeName?t.substr(this.attrPrefixLen):!1}nh.exports=ge});var oh=et((xM,ih)=>{"use strict";var EA=ho(),RA=Zl(),xA=sh();ih.exports={XMLParser:RA,XMLValidator:EA,XMLBuilder:xA}});var Ra=et((Wf,un)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Ml=="function"&&typeof un=="object"&&un&&un.exports?un.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(Wf,function(){"use strict";function t(E,g,y){this.low=E|0,this.high=g|0,this.unsigned=!!y}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(E){return(E&&E.__isLong__)===!0}t.isLong=e;var r={},n={};function s(E,g){var y,O,b;return g?(E>>>=0,(b=0<=E&&E<256)&&(O=n[E],O)?O:(y=o(E,(E|0)<0?-1:0,!0),b&&(n[E]=y),y)):(E|=0,(b=-128<=E&&E<128)&&(O=r[E],O)?O:(y=o(E,E<0?-1:0,!1),b&&(r[E]=y),y))}t.fromInt=s;function i(E,g){if(isNaN(E)||!isFinite(E))return g?T:A;if(g){if(E<0)return T;if(E>=d)return M}else{if(E<=-p)return F;if(E+1>=p)return B}return E<0?i(-E,g).neg():o(E%u|0,E/u|0,g)}t.fromNumber=i;function o(E,g,y){return new t(E,g,y)}t.fromBits=o;var a=Math.pow;function c(E,g,y){if(E.length===0)throw Error("empty string");if(E==="NaN"||E==="Infinity"||E==="+Infinity"||E==="-Infinity")return A;if(typeof g=="number"?(y=g,g=!1):g=!!g,y=y||10,y<2||36<y)throw RangeError("radix");var O;if((O=E.indexOf("-"))>0)throw Error("interior hyphen");if(O===0)return c(E.substring(1),g,y).neg();for(var b=i(a(y,8)),N=A,U=0;U<E.length;U+=8){var Y=Math.min(8,E.length-U),W=parseInt(E.substring(U,U+Y),y);if(Y<8){var Q=i(a(y,Y));N=N.mul(Q).add(i(W))}else N=N.mul(b),N=N.add(i(W))}return N.unsigned=g,N}t.fromString=c;function l(E){return E instanceof t?E:typeof E=="number"?i(E):typeof E=="string"?c(E):o(E.low,E.high,E.unsigned)}t.fromValue=l;var h=1<<16,f=1<<24,u=h*h,d=u*u,p=d/2,_=s(f),A=s(0);t.ZERO=A;var T=s(0,!0);t.UZERO=T;var x=s(1);t.ONE=x;var R=s(1,!0);t.UONE=R;var S=s(-1);t.NEG_ONE=S;var B=o(-1,2147483647,!1);t.MAX_VALUE=B;var M=o(-1,-1,!0);t.MAX_UNSIGNED_VALUE=M;var F=o(0,-2147483648,!1);t.MIN_VALUE=F;var C=t.prototype;return C.toInt=function(){return this.unsigned?this.low>>>0:this.low},C.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},C.toString=function(g){if(g=g||10,g<2||36<g)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(F)){var y=i(g),O=this.div(y),b=O.mul(y).sub(this);return O.toString(g)+b.toInt().toString(g)}else return"-"+this.neg().toString(g);for(var N=i(a(g,6),this.unsigned),U=this,Y="";;){var W=U.div(N),Q=U.sub(W.mul(N)).toInt()>>>0,J=Q.toString(g);if(U=W,U.isZero())return J+Y;for(;J.length<6;)J="0"+J;Y=""+J+Y}},C.getHighBits=function(){return this.high},C.getHighBitsUnsigned=function(){return this.high>>>0},C.getLowBits=function(){return this.low},C.getLowBitsUnsigned=function(){return this.low>>>0},C.getNumBitsAbs=function(){if(this.isNegative())return this.eq(F)?64:this.neg().getNumBitsAbs();for(var g=this.high!=0?this.high:this.low,y=31;y>0&&!(g&1<<y);y--);return this.high!=0?y+33:y+1},C.isZero=function(){return this.high===0&&this.low===0},C.isNegative=function(){return!this.unsigned&&this.high<0},C.isPositive=function(){return this.unsigned||this.high>=0},C.isOdd=function(){return(this.low&1)===1},C.isEven=function(){return(this.low&1)===0},C.equals=function(g){return e(g)||(g=l(g)),this.unsigned!==g.unsigned&&this.high>>>31===1&&g.high>>>31===1?!1:this.high===g.high&&this.low===g.low},C.eq=C.equals,C.notEquals=function(g){return!this.eq(g)},C.neq=C.notEquals,C.lessThan=function(g){return this.comp(g)<0},C.lt=C.lessThan,C.lessThanOrEqual=function(g){return this.comp(g)<=0},C.lte=C.lessThanOrEqual,C.greaterThan=function(g){return this.comp(g)>0},C.gt=C.greaterThan,C.greaterThanOrEqual=function(g){return this.comp(g)>=0},C.gte=C.greaterThanOrEqual,C.compare=function(g){if(e(g)||(g=l(g)),this.eq(g))return 0;var y=this.isNegative(),O=g.isNegative();return y&&!O?-1:!y&&O?1:this.unsigned?g.high>>>0>this.high>>>0||g.high===this.high&&g.low>>>0>this.low>>>0?-1:1:this.sub(g).isNegative()?-1:1},C.comp=C.compare,C.negate=function(){return!this.unsigned&&this.eq(F)?F:this.not().add(x)},C.neg=C.negate,C.add=function(g){e(g)||(g=l(g));var y=this.high>>>16,O=this.high&65535,b=this.low>>>16,N=this.low&65535,U=g.high>>>16,Y=g.high&65535,W=g.low>>>16,Q=g.low&65535,J=0,q=0,tt=0,mt=0;return mt+=N+Q,tt+=mt>>>16,mt&=65535,tt+=b+W,q+=tt>>>16,tt&=65535,q+=O+Y,J+=q>>>16,q&=65535,J+=y+U,J&=65535,o(tt<<16|mt,J<<16|q,this.unsigned)},C.subtract=function(g){return e(g)||(g=l(g)),this.add(g.neg())},C.sub=C.subtract,C.multiply=function(g){if(this.isZero()||(e(g)||(g=l(g)),g.isZero()))return A;if(this.eq(F))return g.isOdd()?F:A;if(g.eq(F))return this.isOdd()?F:A;if(this.isNegative())return g.isNegative()?this.neg().mul(g.neg()):this.neg().mul(g).neg();if(g.isNegative())return this.mul(g.neg()).neg();if(this.lt(_)&&g.lt(_))return i(this.toNumber()*g.toNumber(),this.unsigned);var y=this.high>>>16,O=this.high&65535,b=this.low>>>16,N=this.low&65535,U=g.high>>>16,Y=g.high&65535,W=g.low>>>16,Q=g.low&65535,J=0,q=0,tt=0,mt=0;return mt+=N*Q,tt+=mt>>>16,mt&=65535,tt+=b*Q,q+=tt>>>16,tt&=65535,tt+=N*W,q+=tt>>>16,tt&=65535,q+=O*Q,J+=q>>>16,q&=65535,q+=b*W,J+=q>>>16,q&=65535,q+=N*Y,J+=q>>>16,q&=65535,J+=y*Q+O*W+b*Y+N*U,J&=65535,o(tt<<16|mt,J<<16|q,this.unsigned)},C.mul=C.multiply,C.divide=function(g){if(e(g)||(g=l(g)),g.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?T:A;var y,O,b;if(this.unsigned){if(g.unsigned||(g=g.toUnsigned()),g.gt(this))return T;if(g.gt(this.shru(1)))return R;b=T}else{if(this.eq(F)){if(g.eq(x)||g.eq(S))return F;if(g.eq(F))return x;var N=this.shr(1);return y=N.div(g).shl(1),y.eq(A)?g.isNegative()?x:S:(O=this.sub(g.mul(y)),b=y.add(O.div(g)),b)}else if(g.eq(F))return this.unsigned?T:A;if(this.isNegative())return g.isNegative()?this.neg().div(g.neg()):this.neg().div(g).neg();if(g.isNegative())return this.div(g.neg()).neg();b=A}for(O=this;O.gte(g);){y=Math.max(1,Math.floor(O.toNumber()/g.toNumber()));for(var U=Math.ceil(Math.log(y)/Math.LN2),Y=U<=48?1:a(2,U-48),W=i(y),Q=W.mul(g);Q.isNegative()||Q.gt(O);)y-=Y,W=i(y,this.unsigned),Q=W.mul(g);W.isZero()&&(W=x),b=b.add(W),O=O.sub(Q)}return b},C.div=C.divide,C.modulo=function(g){return e(g)||(g=l(g)),this.sub(this.div(g).mul(g))},C.mod=C.modulo,C.not=function(){return o(~this.low,~this.high,this.unsigned)},C.and=function(g){return e(g)||(g=l(g)),o(this.low&g.low,this.high&g.high,this.unsigned)},C.or=function(g){return e(g)||(g=l(g)),o(this.low|g.low,this.high|g.high,this.unsigned)},C.xor=function(g){return e(g)||(g=l(g)),o(this.low^g.low,this.high^g.high,this.unsigned)},C.shiftLeft=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?o(this.low<<g,this.high<<g|this.low>>>32-g,this.unsigned):o(0,this.low<<g-32,this.unsigned)},C.shl=C.shiftLeft,C.shiftRight=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?o(this.low>>>g|this.high<<32-g,this.high>>g,this.unsigned):o(this.high>>g-32,this.high>=0?0:-1,this.unsigned)},C.shr=C.shiftRight,C.shiftRightUnsigned=function(g){if(e(g)&&(g=g.toInt()),g&=63,g===0)return this;var y=this.high;if(g<32){var O=this.low;return o(O>>>g|y<<32-g,y>>>g,this.unsigned)}else return g===32?o(y,0,this.unsigned):o(y>>>g-32,0,this.unsigned)},C.shru=C.shiftRightUnsigned,C.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},C.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)},C.toBytes=function(E){return E?this.toBytesLE():this.toBytesBE()},C.toBytesLE=function(){var E=this.high,g=this.low;return[g&255,g>>>8&255,g>>>16&255,g>>>24&255,E&255,E>>>8&255,E>>>16&255,E>>>24&255]},C.toBytesBE=function(){var E=this.high,g=this.low;return[E>>>24&255,E>>>16&255,E>>>8&255,E&255,g>>>24&255,g>>>16&255,g>>>8&255,g&255]},t})});var Gs=et((yO,Tu)=>{Tu.exports=globalThis.h3||{}});var Da=et((vO,Cu)=>{Cu.exports=globalThis.luma});var qs=et((UO,Bu)=>{Bu.exports=globalThis.deck});var yu=et((LO,Mu)=>{Mu.exports=globalThis.luma});var Cr=et((qb,Qu)=>{Qu.exports=globalThis.loaders});var Cg=et((A4,Sg)=>{Sg.exports=globalThis.deck});var Dg=et(pl=>{pl.read=function(t,e,r,n,s){var i,o,a=s*8-n-1,c=(1<<a)-1,l=c>>1,h=-7,f=r?s-1:0,u=r?-1:1,d=t[e+f];for(f+=u,i=d&(1<<-h)-1,d>>=-h,h+=a;h>0;i=i*256+t[e+f],f+=u,h-=8);for(o=i&(1<<-h)-1,i>>=-h,h+=n;h>0;o=o*256+t[e+f],f+=u,h-=8);if(i===0)i=1-l;else{if(i===c)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-l}return(d?-1:1)*o*Math.pow(2,i-n)};pl.write=function(t,e,r,n,s,i){var o,a,c,l=i*8-s-1,h=(1<<l)-1,f=h>>1,u=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,p=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+f>=1?e+=u/c:e+=u*Math.pow(2,1-f),e*c>=2&&(o++,c/=2),o+f>=h?(a=0,o=h):o+f>=1?(a=(e*c-1)*Math.pow(2,s),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[r+d]=a&255,d+=p,a/=256,s-=8);for(o=o<<s|a,l+=s;l>0;t[r+d]=o&255,d+=p,o/=256,l-=8);t[r+d-p]|=_*128}});var Vg=et((i6,Hg)=>{"use strict";Hg.exports=k;var eo=Dg();function k(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}k.Varint=0;k.Fixed64=1;k.Bytes=2;k.Fixed32=5;var gl=(1<<16)*(1<<16),wg=1/gl,lB=12,Lg=typeof TextDecoder>"u"?null:new TextDecoder("utf8");k.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),s=n>>3,i=this.pos;this.type=n&7,t(s,e,this),this.pos===i&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=ro(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Ug(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=ro(this.buf,this.pos)+ro(this.buf,this.pos+4)*gl;return this.pos+=8,t},readSFixed64:function(){var t=ro(this.buf,this.pos)+Ug(this.buf,this.pos+4)*gl;return this.pos+=8,t},readFloat:function(){var t=eo.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=eo.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,n;return n=e[this.pos++],r=n&127,n<128||(n=e[this.pos++],r|=(n&127)<<7,n<128)||(n=e[this.pos++],r|=(n&127)<<14,n<128)||(n=e[this.pos++],r|=(n&127)<<21,n<128)?r:(n=e[this.pos],r|=(n&15)<<28,hB(r,t,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2===1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=lB&&Lg?CB(this.buf,e,t):SB(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==k.Bytes)return t.push(this.readVarint(e));var r=de(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==k.Bytes)return t.push(this.readSVarint());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==k.Bytes)return t.push(this.readBoolean());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==k.Bytes)return t.push(this.readFloat());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==k.Bytes)return t.push(this.readDouble());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==k.Bytes)return t.push(this.readFixed32());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==k.Bytes)return t.push(this.readSFixed32());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==k.Bytes)return t.push(this.readFixed64());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==k.Bytes)return t.push(this.readSFixed64());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===k.Varint)for(;this.buf[this.pos++]>127;);else if(e===k.Bytes)this.pos=this.readVarint()+this.pos;else if(e===k.Fixed32)this.pos+=4;else if(e===k.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+e)},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),Kr(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),Kr(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),Kr(this.buf,t&-1,this.pos),Kr(this.buf,Math.floor(t*wg),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),Kr(this.buf,t&-1,this.pos),Kr(this.buf,Math.floor(t*wg),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){fB(t,this);return}this.realloc(4),this.buf[this.pos++]=t&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?-t*2-1:t*2)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=BB(this.buf,t,this.pos);var r=this.pos-e;r>=128&&vg(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),eo.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),eo.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&vg(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,k.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,pB,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,gB,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,mB,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,AB,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,_B,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,TB,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,EB,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,RB,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,xB,e)},writeBytesField:function(t,e){this.writeTag(t,k.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,k.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,k.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,k.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,k.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,k.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,k.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,k.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,k.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,k.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function hB(t,e,r){var n=r.buf,s,i;if(i=n[r.pos++],s=(i&112)>>4,i<128||(i=n[r.pos++],s|=(i&127)<<3,i<128)||(i=n[r.pos++],s|=(i&127)<<10,i<128)||(i=n[r.pos++],s|=(i&127)<<17,i<128)||(i=n[r.pos++],s|=(i&127)<<24,i<128)||(i=n[r.pos++],s|=(i&1)<<31,i<128))return Gr(t,s,e);throw new Error("Expected varint not more than 10 bytes")}function de(t){return t.type===k.Bytes?t.readVarint()+t.pos:t.pos+1}function Gr(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function fB(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(r=~(-t%4294967296),n=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,n=n+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),uB(r,n,e),dB(n,e)}function uB(t,e,r){r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos]=t&127}function dB(t,e){var r=(t&7)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127)))))}function vg(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(n);for(var s=r.pos-1;s>=t;s--)r.buf[s+n]=r.buf[s]}function pB(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function gB(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function AB(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function _B(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function mB(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function TB(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function EB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function RB(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function xB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function ro(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function Kr(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function Ug(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function SB(t,e,r){for(var n="",s=e;s<r;){var i=t[s],o=null,a=i>239?4:i>223?3:i>191?2:1;if(s+a>r)break;var c,l,h;a===1?i<128&&(o=i):a===2?(c=t[s+1],(c&192)===128&&(o=(i&31)<<6|c&63,o<=127&&(o=null))):a===3?(c=t[s+1],l=t[s+2],(c&192)===128&&(l&192)===128&&(o=(i&15)<<12|(c&63)<<6|l&63,(o<=2047||o>=55296&&o<=57343)&&(o=null))):a===4&&(c=t[s+1],l=t[s+2],h=t[s+3],(c&192)===128&&(l&192)===128&&(h&192)===128&&(o=(i&15)<<18|(c&63)<<12|(l&63)<<6|h&63,(o<=65535||o>=1114112)&&(o=null))),o===null?(o=65533,a=1):o>65535&&(o-=65536,n+=String.fromCharCode(o>>>10&1023|55296),o=56320|o&1023),n+=String.fromCharCode(o),s+=a}return n}function CB(t,e,r){return Lg.decode(t.subarray(e,r))}function BB(t,e,r){for(var n=0,s,i;n<e.length;n++){if(s=e.charCodeAt(n),s>55295&&s<57344)if(i)if(s<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=s;continue}else s=i-55296<<10|s-56320|65536,i=null;else{s>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=s;continue}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);s<128?t[r++]=s:(s<2048?t[r++]=s>>6|192:(s<65536?t[r++]=s>>12|224:(t[r++]=s>>18|240,t[r++]=s>>12&63|128),t[r++]=s>>6&63|128),t[r++]=s&63|128)}return r}});var rs={};ht(rs,{GeohashLayer:()=>es,GreatCircleLayer:()=>fn,H3ClusterLayer:()=>xn,H3HexagonLayer:()=>Ke,MVTLayer:()=>ts,QuadkeyLayer:()=>pn,S2Layer:()=>dn,TerrainLayer:()=>Wn,Tile3DLayer:()=>Ln,TileLayer:()=>te,TripsLayer:()=>Tn,_GeoCellLayer:()=>It,_Tile2DHeader:()=>ke,_Tileset2D:()=>Ge,_WMSLayer:()=>Fs,_getURLFromTemplate:()=>$t});var Kt={},Il=v(Ut(),1);pe(Kt,v(Ut(),1));if(!Il.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");pe(rs,Kt);var ze=v(Lt(),1),Hf=v(Ut(),1);function p0(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function is(t){if(Array.isArray(t))return t.map(e=>is(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[p0(r)]=is(n);return e}return t}var ah=v(oh(),1);function To(t,e){if(e!=null&&e._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(s,i,o,a)=>{var c;return Boolean(e==null||(c=e.arrayPaths)===null||c===void 0?void 0:c.some(h=>i===h))},...e?._fastXML},n=SA(t,r);return e!=null&&e.uncapitalizeKeys?is(n):n}function SA(t,e){return new ah.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var CA="4.1.0",gt={name:"XML",id:"xml",module:"xml",version:CA,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:BA,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>To(new TextDecoder().decode(t),{...gt.options.xml,...e?.xml}),parseTextSync:(t,e)=>To(t,{...gt.options.xml,...e?.xml})};function BA(t){return t.startsWith("<?xml")}async function Ct(t,e,r,n){return n._parse(t,e,r,n)}function V(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var Jt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},MA=Jt.self||Jt.window||Jt.global||{},yA=Jt.window||Jt.self||Jt.global||{},IA=Jt.global||Jt.self||Jt.window||{},FA=Jt.document||{};var qr=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var ch=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),NA=ch&&parseFloat(ch[1])||0;function Eo(t,e){return lh(t||{},e)}function lh(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(r>3)return e;let n={...t};for(let[s,i]of Object.entries(e))i&&typeof i=="object"&&!Array.isArray(i)?n[s]=lh(n[s]||{},e[s],r+1):n[s]=e[s];return n}function OA(){var t;return(t=globalThis._loadersgl_)!==null&&t!==void 0&&t.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.1.0"),globalThis._loadersgl_.version}var hh=OA();function fh(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var Yt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},PM=Yt.self||Yt.window||Yt.global||{},DM=Yt.window||Yt.self||Yt.global||{},wM=Yt.global||Yt.self||Yt.window||{},vM=Yt.document||{};var ur=typeof process!="object"||String(process)!=="[object process]"||process.browser,as=typeof importScripts=="function",UM=typeof window<"u"&&typeof window.orientation<"u",uh=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),LM=uh&&parseFloat(uh[1])||0;var Ro={};async function qt(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return e&&(t=dh(t,e,r,n)),Ro[t]=Ro[t]||bA(t),await Ro[t]}function dh(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let s=r.modules||{};return s[n]?s[n]:ur?r.CDN?(fh(r.CDN.startsWith("http")),`${r.CDN}/${e}@${hh}/dist/libs/${n}`):as?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function bA(t){if(t.endsWith("wasm"))return await DA(t);if(!ur)try{return Bt&&Bt.requireFromFile&&await Bt.requireFromFile(t)}catch(r){return console.error(r),null}if(as)return importScripts(t);let e=await wA(t);return PA(e,t)}function PA(t,e){if(!ur)return Bt.requireFromString&&Bt.requireFromString(t,e);if(as)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function DA(t){return ur||!Bt.readFileAsArrayBuffer||t.startsWith("http")?await(await fetch(t)).arrayBuffer():await Bt.readFileAsArrayBuffer(t)}async function wA(t){return ur||!Bt.readFileAsText||t.startsWith("http")?await(await fetch(t)).text():await Bt.readFileAsText(t)}function gh(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5;return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?ph(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?ph(t,0,e):""}function ph(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),s="";for(let i=0;i<r;i++)s+=String.fromCharCode(n.getUint8(e+i));return s}function xo(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${gh(t)}"`)}}function jr(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];let n=e,s=n&&n.length>1&&n[0].constructor||null;if(!s)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let i=n.reduce((c,l)=>c+l.length,0),o=new s(i),a=0;for(let c of n)o.set(c,a),a+=c.length;return o}function De(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function Ae(t,e){return V(t>=0),V(e>0),t+(e-1)&~(e-1)}function So(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let s=t.byteOffset,i=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,s,i)}return e.set(n,r),r+Ae(n.byteLength,4)}function Zr(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var we=class{constructor(e,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Zr(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Zr()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var _e=class{constructor(e){this.id=void 0,this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:e,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let r of Object.values(this.stats))e(r)}getTable(){let e={};return this.forEach(r=>{e[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),e}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,s=this.stats[r];return s||(e instanceof we?s=e:s=new we(r,n),this.stats[r]=s),s}};var vA="Queued Requests",UA="Active Requests",LA="Cancelled Requests",HA="Queued Requests Ever",VA="Active Requests Ever",XA={id:"request-scheduler",throttleRequests:!0,maxRequests:6},me=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.props=void 0,this.stats=void 0,this.activeRequestCount=0,this.requestQueue=[],this.requestMap=new Map,this.deferredUpdate=null,this.props={...XA,...e},this.stats=new _e({id:this.props.id}),this.stats.get(vA),this.stats.get(UA),this.stats.get(LA),this.stats.get(HA),this.stats.get(VA)}scheduleRequest(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:()=>0;if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},s=new Promise(i=>(n.resolve=i,n));return this.requestQueue.push(n),this.requestMap.set(e,s),this._issueNewRequests(),s}_issueRequest(e){let{handle:r,resolve:n}=e,s=!1,i=()=>{s||(s=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:i}):Promise.resolve({done:i})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var Te={};ht(Te,{dirname:()=>zA,filename:()=>WA,join:()=>kA,resolve:()=>GA});function Ah(){var t;if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=(t=window.location)===null||t===void 0?void 0:t.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function WA(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):""}function zA(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function kA(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];let n="/";return e=e.map((s,i)=>(i&&(s=s.replace(new RegExp(`^${n}`),"")),i!==e.length-1&&(s=s.replace(new RegExp(`${n}$`),"")),s)),e.join(n)}function GA(){let t=[];for(let s=0;s<arguments.length;s++)t[s]=s<0||arguments.length<=s?void 0:arguments[s];let e="",r=!1,n;for(let s=t.length-1;s>=-1&&!r;s--){let i;s>=0?i=t[s]:(n===void 0&&(n=Ah()),i=n),i.length!==0&&(e=`${i}/${e}`,r=i.charCodeAt(0)===Qr)}return e=KA(e,!r),r?`/${e}`:e.length>0?e:"."}var Qr=47,Co=46;function KA(t,e){let r="",n=-1,s=0,i,o=!1;for(let a=0;a<=t.length;++a){if(a<t.length)i=t.charCodeAt(a);else{if(i===Qr)break;i=Qr}if(i===Qr){if(!(n===a-1||s===1))if(n!==a-1&&s===2){if(r.length<2||!o||r.charCodeAt(r.length-1)!==Co||r.charCodeAt(r.length-2)!==Co){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==Qr;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,s=0,o=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,s=0,o=!1;continue}}e&&(r.length>0?r+="/..":r="..",o=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,o=!1}n=a,s=0}else i===Co&&s!==-1?++s:s=-1}return r}var cs=class{constructor(e){this.data=void 0,this.fetch=void 0,this.loadOptions=void 0,this._needsRefresh=!0,this.props=void 0,this.props={...e},this.loadOptions={...e.loadOptions},this.fetch=JA(this.loadOptions)}setProps(e){this.props=Object.assign(this.props,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}};function JA(t){let e=t?.fetch;if(e&&typeof e=="function")return(n,s)=>e(n,s);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}var Nt=class extends cs{};Nt.type="template";Nt.testURL=t=>!1;function _h(t,e){var r,n,s;let i=(r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e),o=(i==null||(n=i.ServiceExceptionReport)===null||n===void 0?void 0:n.ServiceException)||(i==null||(s=i["ogc:ServiceExceptionReport"])===null||s===void 0?void 0:s["ogc:ServiceException"]);return typeof o=="string"?o:o.value||o.code||"Unknown error"}var YA="4.1.0",ve={id:"wms-error",name:"WMS Error",module:"wms",version:YA,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:qA,options:{wms:{throwOnError:!1}},parse:async(t,e)=>Bo(new TextDecoder().decode(t),e),parseSync:(t,e)=>Bo(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Bo(t,e)};function qA(t){return t.startsWith("<?xml")}function Bo(t,e){let r={...ve.options.wms,...e?.wms},n=_h(t,r),s=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(s);return s}function Ue(t){return Array.isArray(t)?t:t?[t]:[]}function $r(t){let e=Ue(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function tn(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function ls(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function Le(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function Mo(t,e){var r;let n=(r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e),s=n.WMT_MS_Capabilities||n.WMS_Capabilities||n,i=jA(s);if(e!=null&&e.inheritedLayerProps)for(let o of i.layers)Th(o,null);return e!=null&&e.includeRawJSON&&(i.json=s),e!=null&&e.includeXMLText&&(i.xml=t),i}function jA(t){var e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A;let T={version:String(t.version||""),name:String(((e=t.Service)===null||e===void 0?void 0:e.Name)||"unnamed"),title:(r=t.Service)!==null&&r!==void 0&&r.Title?String((n=t.Service)===null||n===void 0?void 0:n.Title):void 0,abstract:(s=t.Service)!==null&&s!==void 0&&s.Abstract?String((i=t.Service)===null||i===void 0?void 0:i.Abstract):void 0,keywords:$r((o=t.Service)===null||o===void 0||(a=o.KeywordList)===null||a===void 0?void 0:a.Keyword),fees:(c=t.Service)!==null&&c!==void 0&&c.Fees?JSON.stringify((l=t.Service)===null||l===void 0?void 0:l.Fees):void 0,accessConstraints:(h=t.Service)!==null&&h!==void 0&&h.AccessConstraints?JSON.stringify((f=t.Service)===null||f===void 0?void 0:f.AccessConstraints):void 0,layerLimit:ls((u=t.Service)===null||u===void 0?void 0:u.LayerLimit),maxWidth:ls((d=t.Service)===null||d===void 0?void 0:d.maxWidth),maxHeight:ls((p=t.Service)===null||p===void 0?void 0:p.maxHeight),layers:[],requests:ZA((_=t.Capability)===null||_===void 0?void 0:_.Request),exceptions:QA(t.Exception)},x=Ue((A=t.Capability)===null||A===void 0?void 0:A.Layer);for(let R of x)T.layers.push(mh(R));for(let[R,S]of Object.entries(T))S===void 0&&delete T[R];return T}function ZA(t){let e={};for(let[r,n]of Object.entries(t||{})){let s=$r(n?.Format);e[r]={mimeTypes:s}}return e}function QA(t){if(Ue(t?.Format).length>0)return{mimeTypes:$r(t)}}function mh(t){var e;let r={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:$r((e=t.KeywordList)===null||e===void 0?void 0:e.Keyword)},n=t?.CRS||t?.SRS;n&&Array.isArray(n)&&n.every(h=>typeof h=="string")&&(r.crs=n);let s=t?.EX_GeographicBoundingBox&&$A(t?.EX_GeographicBoundingBox);s&&(r.geographicBoundingBox=s),s=t?.LatLonBoundingBox&&t_(t?.LatLonBoundingBox),s&&(r.geographicBoundingBox=s);let i=t?.BoundingBox&&e_(t?.BoundingBox);i&&i.length>0&&(r.boundingBoxes=i);let a=Ue(t?.Dimension).map(h=>n_(h));a.length&&(r.dimensions=a),t!=null&&t.opaque&&(r.opaque=Le(t?.opaque)),t!=null&&t.cascaded&&(r.cascaded=Le(t?.cascaded)),t!=null&&t.queryable&&(r.queryable=Le(t?.queryable));let c=Ue(t?.Layer),l=[];for(let h of c)l.push(mh(h));l.length>0&&(r.layers=l);for(let[h,f]of Object.entries(r))f===void 0&&delete r[h];return r}function $A(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:s}=t;return[[e,s],[n,r]]}function t_(t){let{minx:e,miny:r,maxx:n,maxy:s}=t;return[[e,r],[n,s]]}function e_(t){return Ue(t).map(r=>r_(r))}function r_(t){let{CRS:e,SRS:r,minx:n,miny:s,maxx:i,maxy:o,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[tn(n),tn(s)],[tn(i),tn(o)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function n_(t){let{name:e,units:r,value:n}=t,s={name:e,units:r,extent:n};return t.unitSymbol&&(s.unitSymbol=t.unitSymbol),t.default&&(s.defaultValue=t.default),t.multipleValues&&(s.multipleValues=Le(t.multipleValues)),t.nearestValue&&(s.nearestValue=Le(t.nearestValue)),t.current&&(s.current=Le(t.current)),s}function Th(t,e){e!=null&&e.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e!=null&&e.crs&&!t.crs&&(t.crs=[...e.crs]),e!=null&&e.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e!=null&&e.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Th(r,t)}var s_="4.1.0",dr={id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:s_,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:i_,options:{wms:{}},parse:async(t,e)=>Mo(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>Mo(t,e?.wms)};function i_(t){return t.startsWith("<?xml")}function yo(t,e){var r,n;let i=((n=((r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e)).FeatureInfoResponse)===null||n===void 0?void 0:n.FIELDS)||[];return{features:(Array.isArray(i)?i:[i]).map(a=>o_(a))}}function o_(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var Eh={...dr,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>yo(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>yo(t,e)};function Io(t,e){var r;return(r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e)}var Rh={...dr,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>Io(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Io(t,e)};function xh(t,e){let{type:r="auto"}=t,n=r==="auto"?c_(t.url,e):a_(r,e);if(!n)throw new Error("Not a valid image source type");return n.create(t)}function a_(t,e){for(let r of e)if(r.type===t)return r;return null}function c_(t,e){for(let r of e)if(r.testURL&&r.testURL(t))return r;return null}var Sh="4.1.0";var Fo,l_=(Fo=globalThis.loaders)===null||Fo===void 0?void 0:Fo.parseImageNode,No=typeof Image<"u",Oo=typeof ImageBitmap<"u",h_=Boolean(l_),bo=qr?!0:h_;function Ch(t){switch(t){case"auto":return Oo||No||bo;case"imagebitmap":return Oo;case"image":return No;case"data":return bo;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Bh(){if(Oo)return"imagebitmap";if(No)return"image";if(bo)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function Mh(t){let e=f_(t);if(!e)throw new Error("Not an image");return e}function en(t){switch(Mh(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function f_(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var u_=/^data:image\/svg\+xml/,d_=/\.svg((\?|#).*)?$/;function hs(t){return t&&(u_.test(t)||d_.test(t))}function yh(t,e){if(hs(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(i){throw new Error(i.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Po(t,e)}function Po(t,e){if(hs(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function fs(t,e,r){let n=yh(t,r),s=self.URL||self.webkitURL,i=typeof n!="string"&&s.createObjectURL(n);try{return await p_(i||n,e)}finally{i&&s.revokeObjectURL(i)}}async function p_(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,s)=>{try{r.onload=()=>n(r),r.onerror=i=>{let o=i instanceof Error?i.message:"error";s(new Error(o))}}catch(i){s(i)}})}var g_={},Ih=!0;async function Fh(t,e,r){let n;hs(r)?n=await fs(t,e,r):n=Po(t,r);let s=e&&e.imagebitmap;return await A_(n,s)}async function A_(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((__(e)||!Ih)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),Ih=!1}return await createImageBitmap(t)}function __(t){for(let e in t||g_)return!1;return!0}function Nh(t){return!R_(t,"ftyp",4)||!(t[8]&96)?null:m_(t)}function m_(t){switch(T_(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function T_(t,e,r){return String.fromCharCode(...t.slice(e,r))}function E_(t){return[...t].map(e=>e.charCodeAt(0))}function R_(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=E_(e);for(let s=0;s<n.length;++s)if(n[s]!==t[s+r])return!1;return!0}var jt=!1,rn=!0;function He(t){let e=nn(t);return S_(e)||M_(e)||C_(e)||B_(e)||x_(e)}function x_(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Nh(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function S_(t){let e=nn(t);return e.byteLength>=24&&e.getUint32(0,jt)===2303741511?{mimeType:"image/png",width:e.getUint32(16,jt),height:e.getUint32(20,jt)}:null}function C_(t){let e=nn(t);return e.byteLength>=10&&e.getUint32(0,jt)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,rn),height:e.getUint16(8,rn)}:null}function B_(t){let e=nn(t);return e.byteLength>=14&&e.getUint16(0,jt)===16973&&e.getUint32(2,rn)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,rn),height:e.getUint32(22,rn)}:null}function M_(t){let e=nn(t);if(!(e.byteLength>=3&&e.getUint16(0,jt)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:s}=y_(),i=2;for(;i+9<e.byteLength;){let o=e.getUint16(i,jt);if(s.has(o))return{mimeType:"image/jpeg",height:e.getUint16(i+5,jt),width:e.getUint16(i+7,jt)};if(!n.has(o))return null;i+=2,i+=e.getUint16(i,jt)}return null}function y_(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function nn(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function Oh(t,e){var r;let{mimeType:n}=He(t)||{},s=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return V(s),await s(t,n)}async function bh(t,e,r){e=e||{};let s=(e.image||{}).type||"auto",{url:i}=r||{},o=I_(s),a;switch(o){case"imagebitmap":a=await Fh(t,e,i);break;case"image":a=await fs(t,e,i);break;case"data":a=await Oh(t,e);break;default:V(!1)}return s==="data"&&(a=en(a)),a}function I_(t){switch(t){case"auto":case"data":return Bh();default:return Ch(t),t}}var F_=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],N_=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],O_={image:{type:"auto",decode:!0}},Ee={id:"image",module:"images",name:"Images",version:Sh,mimeTypes:N_,extensions:F_,parse:bh,tests:[t=>Boolean(He(new DataView(t)))],options:O_};var Do={};function wo(t){if(Do[t]===void 0){let e=qr?P_(t):b_(t);Do[t]=e}return Do[t]}function b_(t){var e,r;let n=["image/png","image/jpeg","image/gif"],s=((e=globalThis.loaders)===null||e===void 0?void 0:e.imageFormatsNode)||n,i=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return Boolean(i)&&s.includes(t)}function P_(t){switch(t){case"image/avif":case"image/webp":return D_(t);default:return!0}}function D_(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Ph={type:"wms",testURL:t=>t.toLowerCase().includes("wms"),create:t=>new vo(t)},vo=class extends Nt{constructor(e){var r;super(e),this.url=void 0,this.data=void 0,this.substituteCRS84=void 0,this.flipCRS=void 0,this.wmsParameters=void 0,this.vendorParameters=void 0,this.capabilities=null,this.url=e.url,this.data=e.url,this.substituteCRS84=(r=e.substituteCRS84)!==null&&r!==void 0?r:!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...e.wmsParameters},this.vendorParameters=e.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...s}=e,i={bbox:r?[...r[0],...r[1]]:n,...s};return await this.getMap(i)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();this._checkResponse(s,i);let o=await dr.parse(i,this.loadOptions);return this.capabilities=o,o}async getMap(e,r){let n=this.getMapURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();this._checkResponse(s,i);try{return await Ee.parse(i,this.loadOptions)}catch{throw this._parseError(i)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();return this._checkResponse(s,i),await Eh.parse(i,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();return this._checkResponse(s,i),new TextDecoder().decode(i)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();return this._checkResponse(s,i),await Rh.parse(i,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();this._checkResponse(s,i);try{return await Ee.parse(i,this.loadOptions)}catch{throw this._parseError(i)}}getCapabilitiesURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",n,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",n,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",n,r)}describeLayerURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",n,r)}getLegendGraphicURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",n,r)}_parseWMSUrl(e){let[r,n]=e.split("?"),s=n.split("&"),i={};for(let o of s){let[a,c]=o.split("=");i[a]=c}return{url:r,parameters:i}}_getWMSUrl(e,r,n){let s=this.url,i=!0,o={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(o))(!a.includes(c)||l)&&(s+=i?"?":"&",i=!1,s+=this._getURLParameter(c,l,r));return encodeURI(s)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":let s=this._flipBoundingBox(r,n);s&&(r=s);break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let n=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),s=e;return n?[s[1],s[0],s[3],s[2]]:s}async _fetchArrayBuffer(e){let r=await this.fetch(e),n=await r.arrayBuffer();return this._checkResponse(r,n),n}_checkResponse(e,r){let n=e.headers["content-type"];if(!e.ok||ve.mimeTypes.includes(n)){var s;let i=Eo(this.loadOptions,{wms:{throwOnError:!0}}),o=(s=ve.parseSync)===null||s===void 0?void 0:s.call(ve,r,i);throw new Error(o)}}_parseError(e){var r;let n=(r=ve.parseSync)===null||r===void 0?void 0:r.call(ve,e,this.loadOptions);return new Error(n)}};var pr=class extends Nt{constructor(e){super(e)}async getMetadata(){throw new Error("ImageSource.getMetadata not implemented")}async getImage(e){let r=this.getGranularParameters(e),n=this.getURLFromTemplate(r),i=await(await this.fetch(n)).arrayBuffer();return await Ee.parse(i)}getGranularParameters(e){let[[r,n],[s,i]]=e.boundingBox;return{...e,east:r,north:n,south:i,west:s}}getURLFromTemplate(e){let r=this.props.url;for(let[n,s]of Object.entries(e))r=r.replace(`\${${n}}`,String(s)),r=r.replace(`{${n}}`,String(s));return r}};pr.type="template";pr.testURL=t=>t.toLowerCase().includes("{");var Uo=class extends pr{constructor(e){super(e),this.data=void 0,this.data=e.url}async getMetadata(){return await this.metadata()}async getImage(e){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(e){throw new Error("not implemented")}metadataURL(e){return`${this.props.url}?f=pjson`}exportImageURL(e){let r=`bbox=${e.bbox[0]},${e.bbox[1]},${e.bbox[2]},${e.bbox[3]}`,n=`size=${e.width},${e.height}`,s={...e,bbox:r,size:n};return delete s.width,delete s.height,this.getUrl("exportImage",s)}getUrl(e,r,n){let s=`${this.props.url}/${e}`,i=!0;for(let[o,a]of Object.entries(r))s+=i?"?":"&",i=!1,Array.isArray(a)?s+=`${o.toUpperCase()}=${a.join(",")}`:s+=`${o.toUpperCase()}=${a?String(a):""}`;return s}async checkResponse(e){if(!e.ok)throw new Error("error")}},Dh={type:"arcgis-image-server",testURL:t=>t.toLowerCase().includes("ImageServer"),create:t=>new Uo(t)};var w_=[Ph,Dh];function Lo(t){return xh(t,w_)}function P(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var v_=1/Math.PI*180,U_=1/180*Math.PI,L_={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...L_}};var j=globalThis.mathgl.config;function Ho(t,{precision:e=j.precision}={}){return t=H_(t),"".concat(parseFloat(t.toPrecision(e)))}function Mt(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Vo(t){return wh(t)}function Xo(t){return yt(t)}function wh(t,e){return Wo(t,r=>r*U_,e)}function yt(t,e){return Wo(t,r=>r*v_,e)}function us(t,e,r){return Wo(t,n=>Math.max(e,Math.min(r,n)))}function Re(t,e,r){return Mt(t)?t.map((n,s)=>Re(n,e[s],r)):r*e+(1-r)*t}function At(t,e,r){let n=j.EPSILON;r&&(j.EPSILON=r);try{if(t===e)return!0;if(Mt(t)&&Mt(e)){if(t.length!==e.length)return!1;for(let s=0;s<t.length;++s)if(!At(t[s],e[s]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=j.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{j.EPSILON=n}}function H_(t){return Math.round(t/j.EPSILON)*j.EPSILON}function V_(t){return t.clone?t.clone():new Array(t.length)}function Wo(t,e,r){if(Mt(t)){let n=t;r=r||V_(n);for(let s=0;s<r.length&&s<n.length;++s){let i=typeof t=="number"?t:t[s];r[s]=e(i,s,r)}return r}return e(t)}function X_(t){function e(){var r=Reflect.construct(t,Array.from(arguments));return Object.setPrototypeOf(r,Object.getPrototypeOf(this)),r}return e.prototype=Object.create(t.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t,e}var xe=class extends X_(Array){clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:Mt(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(j)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+Ho(this[n],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(r,"]")}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!At(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let s=0;s<this.ELEMENTS;++s){let i=e[s],o=typeof r=="number"?r:r[s];this[s]=i+n*(o-i)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(j.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function W_(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function H(t){if(!Number.isFinite(t))throw new Error("Invalid number ".concat(JSON.stringify(t)));return t}function Se(t,e,r=""){if(j.debug&&!W_(t,e))throw new Error("math.gl: ".concat(r," some fields set to invalid numbers'"));return t}function ct(t,e){if(!t)throw new Error("math.gl assertion ".concat(e))}var Ce=class extends xe{get x(){return this[0]}set x(e){this[0]=H(e)}get y(){return this[1]}set y(e){this[1]=H(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let s=this[n]-e[n];r+=s*s}return H(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return H(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return ct(e>=0&&e<this.ELEMENTS,"index is out of range"),H(this[e])}setComponent(e,r){return ct(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var $=typeof Float32Array<"u"?Float32Array:Array,sn=Math.random;function gr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var dF=Math.PI/180;function z_(){let t=new $(2);return $!=Float32Array&&(t[0]=0,t[1]=0),t}function vh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s,t[1]=r[1]*n+r[3]*s,t}function Uh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s+r[4],t[1]=r[1]*n+r[3]*s+r[5],t}function ds(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[3]*s+r[6],t[1]=r[1]*n+r[4]*s+r[7],t}function ps(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[4]*s+r[12],t[1]=r[1]*n+r[5]*s+r[13],t}var pF=function(){let t=z_();return function(e,r,n,s,i,o){let a,c;for(r||(r=2),n||(n=0),s?c=Math.min(s*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],i(t,t,o),e[a]=t[0],e[a+1]=t[1];return e}}();function gs(t,e,r){let n=e[0],s=e[1],i=r[3]*n+r[7]*s||1;return t[0]=(r[0]*n+r[4]*s)/i,t[1]=(r[1]*n+r[5]*s)/i,t}function As(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[3]*n+r[7]*s+r[11]*i||1;return t[0]=(r[0]*n+r[4]*s+r[8]*i)/o,t[1]=(r[1]*n+r[5]*s+r[9]*i)/o,t[2]=(r[2]*n+r[6]*s+r[10]*i)/o,t}function Lh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s,t[1]=r[1]*n+r[3]*s,t[2]=e[2],t}function Hh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s,t[1]=r[1]*n+r[3]*s,t[2]=e[2],t[3]=e[3],t}function _s(t,e,r){let n=e[0],s=e[1],i=e[2];return t[0]=r[0]*n+r[3]*s+r[6]*i,t[1]=r[1]*n+r[4]*s+r[7]*i,t[2]=r[2]*n+r[5]*s+r[8]*i,t[3]=e[3],t}var Ve=class extends Ce{constructor(e=0,r=0){super(2),Mt(e)&&arguments.length===1?this.copy(e):(j.debug&&(H(e),H(r)),this[0]=e,this[1]=r)}set(e,r){return this[0]=e,this[1]=r,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return j.debug&&(H(e.x),H(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return ps(this,this,e),this.check()}transformAsVector(e){return gs(this,this,e),this.check()}transformByMatrix3(e){return ds(this,this,e),this.check()}transformByMatrix2x3(e){return Uh(this,this,e),this.check()}transformByMatrix2(e){return vh(this,this,e),this.check()}};var _r={};ht(_r,{add:()=>J_,angle:()=>Jo,bezier:()=>om,ceil:()=>Y_,clone:()=>k_,copy:()=>G_,create:()=>ms,cross:()=>Xe,dist:()=>gm,distance:()=>kh,div:()=>pm,divide:()=>zh,dot:()=>on,equals:()=>fm,exactEquals:()=>hm,floor:()=>q_,forEach:()=>mm,fromValues:()=>Ts,hermite:()=>im,inverse:()=>rm,len:()=>Yo,length:()=>Vh,lerp:()=>nm,max:()=>Z_,min:()=>j_,mul:()=>dm,multiply:()=>Wh,negate:()=>em,normalize:()=>zo,random:()=>am,rotateX:()=>ko,rotateY:()=>Go,rotateZ:()=>Ko,round:()=>Q_,scale:()=>$_,scaleAndAdd:()=>tm,set:()=>K_,slerp:()=>sm,sqrDist:()=>Am,sqrLen:()=>_m,squaredDistance:()=>Gh,squaredLength:()=>Kh,str:()=>lm,sub:()=>um,subtract:()=>Xh,transformMat3:()=>an,transformMat4:()=>We,transformQuat:()=>cn,zero:()=>cm});function ms(){let t=new $(3);return $!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function k_(t){let e=new $(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Vh(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function Ts(t,e,r){let n=new $(3);return n[0]=t,n[1]=e,n[2]=r,n}function G_(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function K_(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function J_(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function Xh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function Wh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function zh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function Y_(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function q_(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function j_(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function Z_(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function Q_(t,e){return t[0]=gr(e[0]),t[1]=gr(e[1]),t[2]=gr(e[2]),t}function $_(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function tm(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function kh(t,e){let r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2];return Math.sqrt(r*r+n*n+s*s)}function Gh(t,e){let r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2];return r*r+n*n+s*s}function Kh(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function em(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function rm(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function zo(t,e){let r=e[0],n=e[1],s=e[2],i=r*r+n*n+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t}function on(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Xe(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[0],a=r[1],c=r[2];return t[0]=s*c-i*a,t[1]=i*o-n*c,t[2]=n*a-s*o,t}function nm(t,e,r,n){let s=e[0],i=e[1],o=e[2];return t[0]=s+n*(r[0]-s),t[1]=i+n*(r[1]-i),t[2]=o+n*(r[2]-o),t}function sm(t,e,r,n){let s=Math.acos(Math.min(Math.max(on(e,r),-1),1)),i=Math.sin(s),o=Math.sin((1-n)*s)/i,a=Math.sin(n*s)/i;return t[0]=o*e[0]+a*r[0],t[1]=o*e[1]+a*r[1],t[2]=o*e[2]+a*r[2],t}function im(t,e,r,n,s,i){let o=i*i,a=o*(2*i-3)+1,c=o*(i-2)+i,l=o*(i-1),h=o*(3-2*i);return t[0]=e[0]*a+r[0]*c+n[0]*l+s[0]*h,t[1]=e[1]*a+r[1]*c+n[1]*l+s[1]*h,t[2]=e[2]*a+r[2]*c+n[2]*l+s[2]*h,t}function om(t,e,r,n,s,i){let o=1-i,a=o*o,c=i*i,l=a*o,h=3*i*a,f=3*c*o,u=c*i;return t[0]=e[0]*l+r[0]*h+n[0]*f+s[0]*u,t[1]=e[1]*l+r[1]*h+n[1]*f+s[1]*u,t[2]=e[2]*l+r[2]*h+n[2]*f+s[2]*u,t}function am(t,e){e=e===void 0?1:e;let r=sn()*2*Math.PI,n=sn()*2-1,s=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*s,t[1]=Math.sin(r)*s,t[2]=n*e,t}function We(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[3]*n+r[7]*s+r[11]*i+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*s+r[8]*i+r[12])/o,t[1]=(r[1]*n+r[5]*s+r[9]*i+r[13])/o,t[2]=(r[2]*n+r[6]*s+r[10]*i+r[14])/o,t}function an(t,e,r){let n=e[0],s=e[1],i=e[2];return t[0]=n*r[0]+s*r[3]+i*r[6],t[1]=n*r[1]+s*r[4]+i*r[7],t[2]=n*r[2]+s*r[5]+i*r[8],t}function cn(t,e,r){let n=r[0],s=r[1],i=r[2],o=r[3],a=e[0],c=e[1],l=e[2],h=s*l-i*c,f=i*a-n*l,u=n*c-s*a,d=s*u-i*f,p=i*h-n*u,_=n*f-s*h,A=o*2;return h*=A,f*=A,u*=A,d*=2,p*=2,_*=2,t[0]=a+h+d,t[1]=c+f+p,t[2]=l+u+_,t}function ko(t,e,r,n){let s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[0],i[1]=s[1]*Math.cos(n)-s[2]*Math.sin(n),i[2]=s[1]*Math.sin(n)+s[2]*Math.cos(n),t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t}function Go(t,e,r,n){let s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[2]*Math.sin(n)+s[0]*Math.cos(n),i[1]=s[1],i[2]=s[2]*Math.cos(n)-s[0]*Math.sin(n),t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t}function Ko(t,e,r,n){let s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[0]*Math.cos(n)-s[1]*Math.sin(n),i[1]=s[0]*Math.sin(n)+s[1]*Math.cos(n),i[2]=s[2],t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t}function Jo(t,e){let r=t[0],n=t[1],s=t[2],i=e[0],o=e[1],a=e[2],c=Math.sqrt((r*r+n*n+s*s)*(i*i+o*o+a*a)),l=c&&on(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function cm(t){return t[0]=0,t[1]=0,t[2]=0,t}function lm(t){return"vec3(".concat(t[0],", ").concat(t[1],", ").concat(t[2],")")}function hm(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function fm(t,e){let r=t[0],n=t[1],s=t[2],i=e[0],o=e[1],a=e[2];return Math.abs(r-i)<=1e-6*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-o)<=1e-6*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(s-a)<=1e-6*Math.max(1,Math.abs(s),Math.abs(a))}var um=Xh,dm=Wh,pm=zh,gm=kh,Am=Gh,Yo=Vh,_m=Kh,mm=function(){let t=ms();return function(e,r,n,s,i,o){let a,c;for(r||(r=3),n||(n=0),s?c=Math.min(s*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],i(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var qo=[0,0,0],Es,m=class extends Ce{static get ZERO(){return Es||(Es=new m(0,0,0),Object.freeze(Es)),Es}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&Mt(e)?this.copy(e):(j.debug&&(H(e),H(r),H(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return j.debug&&(H(e.x),H(e.y),H(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=H(e)}angle(e){return Jo(this,e)}cross(e){return Xe(this,this,e),this.check()}rotateX({radians:e,origin:r=qo}){return ko(this,this,r,e),this.check()}rotateY({radians:e,origin:r=qo}){return Go(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=qo}){return Ko(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return We(this,this,e),this.check()}transformAsVector(e){return As(this,this,e),this.check()}transformByMatrix3(e){return an(this,this,e),this.check()}transformByMatrix2(e){return Lh(this,this,e),this.check()}transformByQuaternion(e){return cn(this,this,e),this.check()}};var Rs,mr=class extends Ce{static get ZERO(){return Rs||(Rs=new mr(0,0,0,0),Object.freeze(Rs)),Rs}constructor(e=0,r=0,n=0,s=0){super(-0,-0,-0,-0),Mt(e)&&arguments.length===1?this.copy(e):(j.debug&&(H(e),H(r),H(n),H(s)),this[0]=e,this[1]=r,this[2]=n,this[3]=s)}set(e,r,n,s){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return j.debug&&(H(e.x),H(e.y),H(e.z),H(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=H(e)}get w(){return this[3]}set w(e){this[3]=H(e)}transform(e){return We(this,this,e),this.check()}transformByMatrix3(e){return _s(this,this,e),this.check()}transformByMatrix2(e){return Hh(this,this,e),this.check()}transformByQuaternion(e){return cn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var Tr=class extends xe{toString(){let e="[";if(j.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=" ".concat(this[n*this.RANK+r])}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=" ".concat(this[r])}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=H(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let s=0;s<this.RANK;++s)r[s]=this[n+s];return r}setColumn(e,r){let n=e*this.RANK;for(let s=0;s<this.RANK;++s)this[n+s]=r[s];return this}};function Jh(){let t=new $(9);return $!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function Yh(t,e){if(t===e){let r=e[1],n=e[2],s=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=s}else 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];return t}function qh(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=h*o-a*l,u=-h*i+a*c,d=l*i-o*c,p=r*f+n*u+s*d;return p?(p=1/p,t[0]=f*p,t[1]=(-h*n+s*l)*p,t[2]=(a*n-s*o)*p,t[3]=u*p,t[4]=(h*r-s*c)*p,t[5]=(-a*r+s*i)*p,t[6]=d*p,t[7]=(-l*r+n*c)*p,t[8]=(o*r-n*i)*p,t):null}function jh(t){let e=t[0],r=t[1],n=t[2],s=t[3],i=t[4],o=t[5],a=t[6],c=t[7],l=t[8];return e*(l*i-o*c)+r*(-l*s+o*a)+n*(c*s-i*a)}function jo(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=r[0],d=r[1],p=r[2],_=r[3],A=r[4],T=r[5],x=r[6],R=r[7],S=r[8];return t[0]=u*n+d*o+p*l,t[1]=u*s+d*a+p*h,t[2]=u*i+d*c+p*f,t[3]=_*n+A*o+T*l,t[4]=_*s+A*a+T*h,t[5]=_*i+A*c+T*f,t[6]=x*n+R*o+S*l,t[7]=x*s+R*a+S*h,t[8]=x*i+R*c+S*f,t}function Zh(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=r[0],d=r[1];return t[0]=n,t[1]=s,t[2]=i,t[3]=o,t[4]=a,t[5]=c,t[6]=u*n+d*o+l,t[7]=u*s+d*a+h,t[8]=u*i+d*c+f,t}function Qh(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=Math.sin(r),d=Math.cos(r);return t[0]=d*n+u*o,t[1]=d*s+u*a,t[2]=d*i+u*c,t[3]=d*o-u*n,t[4]=d*a-u*s,t[5]=d*c-u*i,t[6]=l,t[7]=h,t[8]=f,t}function Zo(t,e,r){let n=r[0],s=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=s*e[3],t[4]=s*e[4],t[5]=s*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function $h(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r+r,a=n+n,c=s+s,l=r*o,h=n*o,f=n*a,u=s*o,d=s*a,p=s*c,_=i*o,A=i*a,T=i*c;return t[0]=1-f-p,t[3]=h-T,t[6]=u+A,t[1]=h+T,t[4]=1-l-p,t[7]=d-_,t[2]=u-A,t[5]=d+_,t[8]=1-l-f,t}var Qo;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL1ROW0=3]="COL1ROW0",t[t.COL1ROW1=4]="COL1ROW1",t[t.COL1ROW2=5]="COL1ROW2",t[t.COL2ROW0=6]="COL2ROW0",t[t.COL2ROW1=7]="COL2ROW1",t[t.COL2ROW2=8]="COL2ROW2"})(Qo||(Qo={}));var Em=Object.freeze([1,0,0,0,1,0,0,0,1]),z=class extends Tr{static get IDENTITY(){return xm()}static get ZERO(){return Rm()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return Qo}constructor(e,...r){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):r.length>0?this.copy([e,...r]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy(Em)}fromObject(e){return this.check()}fromQuaternion(e){return $h(this,e),this.check()}set(e,r,n,s,i,o,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this[4]=i,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,s,i,o,a,c,l){return this[0]=e,this[1]=s,this[2]=a,this[3]=r,this[4]=i,this[5]=c,this[6]=n,this[7]=o,this[8]=l,this.check()}determinant(){return jh(this)}transpose(){return Yh(this,this),this.check()}invert(){return qh(this,this),this.check()}multiplyLeft(e){return jo(this,e,this),this.check()}multiplyRight(e){return jo(this,this,e),this.check()}rotate(e){return Qh(this,this,e),this.check()}scale(e){return Array.isArray(e)?Zo(this,this,e):Zo(this,this,[e,e]),this.check()}translate(e){return Zh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=ds(r||[-0,-0],e,this);break;case 3:n=an(r||[-0,-0,-0],e,this);break;case 4:n=_s(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Se(n,e.length),n}transformVector(e,r){return this.transform(e,r)}transformVector2(e,r){return this.transform(e,r)}transformVector3(e,r){return this.transform(e,r)}},xs,Ss=null;function Rm(){return xs||(xs=new z([0,0,0,0,0,0,0,0,0]),Object.freeze(xs)),xs}function xm(){return Ss||(Ss=new z,Object.freeze(Ss)),Ss}var Cs={};ht(Cs,{add:()=>Jm,adjoint:()=>Im,clone:()=>Cm,copy:()=>Bm,create:()=>Sm,decompose:()=>Lm,determinant:()=>ea,equals:()=>Zm,exactEquals:()=>jm,frob:()=>Km,fromQuat:()=>ca,fromQuat2:()=>wm,fromRotation:()=>Om,fromRotationTranslation:()=>ef,fromRotationTranslationScale:()=>Hm,fromRotationTranslationScaleOrigin:()=>Vm,fromScaling:()=>Nm,fromTranslation:()=>Fm,fromValues:()=>Mm,fromXRotation:()=>bm,fromYRotation:()=>Pm,fromZRotation:()=>Dm,frustum:()=>la,getRotation:()=>Um,getScaling:()=>rf,getTranslation:()=>vm,identity:()=>tf,invert:()=>ta,lookAt:()=>ua,mul:()=>Qm,multiply:()=>ln,multiplyScalar:()=>Ym,multiplyScalarAndAdd:()=>qm,ortho:()=>fa,orthoNO:()=>sf,orthoZO:()=>zm,perspective:()=>ha,perspectiveFromFieldOfView:()=>Wm,perspectiveNO:()=>nf,perspectiveZO:()=>Xm,rotate:()=>sa,rotateX:()=>ia,rotateY:()=>oa,rotateZ:()=>aa,scale:()=>na,set:()=>ym,str:()=>Gm,sub:()=>$m,subtract:()=>of,targetTo:()=>km,translate:()=>ra,transpose:()=>$o});function Sm(){let t=new $(16);return $!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function Cm(t){let e=new $(16);return 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],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Bm(t,e){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}function Mm(t,e,r,n,s,i,o,a,c,l,h,f,u,d,p,_){let A=new $(16);return A[0]=t,A[1]=e,A[2]=r,A[3]=n,A[4]=s,A[5]=i,A[6]=o,A[7]=a,A[8]=c,A[9]=l,A[10]=h,A[11]=f,A[12]=u,A[13]=d,A[14]=p,A[15]=_,A}function ym(t,e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A){return t[0]=e,t[1]=r,t[2]=n,t[3]=s,t[4]=i,t[5]=o,t[6]=a,t[7]=c,t[8]=l,t[9]=h,t[10]=f,t[11]=u,t[12]=d,t[13]=p,t[14]=_,t[15]=A,t}function tf(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function $o(t,e){if(t===e){let r=e[1],n=e[2],s=e[3],i=e[6],o=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=i,t[11]=e[14],t[12]=s,t[13]=o,t[14]=a}else 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];return t}function ta(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],u=e[10],d=e[11],p=e[12],_=e[13],A=e[14],T=e[15],x=r*a-n*o,R=r*c-s*o,S=r*l-i*o,B=n*c-s*a,M=n*l-i*a,F=s*l-i*c,C=h*_-f*p,E=h*A-u*p,g=h*T-d*p,y=f*A-u*_,O=f*T-d*_,b=u*T-d*A,N=x*b-R*O+S*y+B*g-M*E+F*C;return N?(N=1/N,t[0]=(a*b-c*O+l*y)*N,t[1]=(s*O-n*b-i*y)*N,t[2]=(_*F-A*M+T*B)*N,t[3]=(u*M-f*F-d*B)*N,t[4]=(c*g-o*b-l*E)*N,t[5]=(r*b-s*g+i*E)*N,t[6]=(A*S-p*F-T*R)*N,t[7]=(h*F-u*S+d*R)*N,t[8]=(o*O-a*g+l*C)*N,t[9]=(n*g-r*O-i*C)*N,t[10]=(p*M-_*S+T*x)*N,t[11]=(f*S-h*M-d*x)*N,t[12]=(a*E-o*y-c*C)*N,t[13]=(r*y-n*E+s*C)*N,t[14]=(_*R-p*B-A*x)*N,t[15]=(h*B-f*R+u*x)*N,t):null}function Im(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],u=e[10],d=e[11],p=e[12],_=e[13],A=e[14],T=e[15],x=r*a-n*o,R=r*c-s*o,S=r*l-i*o,B=n*c-s*a,M=n*l-i*a,F=s*l-i*c,C=h*_-f*p,E=h*A-u*p,g=h*T-d*p,y=f*A-u*_,O=f*T-d*_,b=u*T-d*A;return t[0]=a*b-c*O+l*y,t[1]=s*O-n*b-i*y,t[2]=_*F-A*M+T*B,t[3]=u*M-f*F-d*B,t[4]=c*g-o*b-l*E,t[5]=r*b-s*g+i*E,t[6]=A*S-p*F-T*R,t[7]=h*F-u*S+d*R,t[8]=o*O-a*g+l*C,t[9]=n*g-r*O-i*C,t[10]=p*M-_*S+T*x,t[11]=f*S-h*M-d*x,t[12]=a*E-o*y-c*C,t[13]=r*y-n*E+s*C,t[14]=_*R-p*B-A*x,t[15]=h*B-f*R+u*x,t}function ea(t){let e=t[0],r=t[1],n=t[2],s=t[3],i=t[4],o=t[5],a=t[6],c=t[7],l=t[8],h=t[9],f=t[10],u=t[11],d=t[12],p=t[13],_=t[14],A=t[15],T=e*o-r*i,x=e*a-n*i,R=r*a-n*o,S=l*p-h*d,B=l*_-f*d,M=h*_-f*p,F=e*M-r*B+n*S,C=i*M-o*B+a*S,E=l*R-h*x+f*T,g=d*R-p*x+_*T;return c*F-s*C+A*E-u*g}function ln(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=e[9],d=e[10],p=e[11],_=e[12],A=e[13],T=e[14],x=e[15],R=r[0],S=r[1],B=r[2],M=r[3];return t[0]=R*n+S*a+B*f+M*_,t[1]=R*s+S*c+B*u+M*A,t[2]=R*i+S*l+B*d+M*T,t[3]=R*o+S*h+B*p+M*x,R=r[4],S=r[5],B=r[6],M=r[7],t[4]=R*n+S*a+B*f+M*_,t[5]=R*s+S*c+B*u+M*A,t[6]=R*i+S*l+B*d+M*T,t[7]=R*o+S*h+B*p+M*x,R=r[8],S=r[9],B=r[10],M=r[11],t[8]=R*n+S*a+B*f+M*_,t[9]=R*s+S*c+B*u+M*A,t[10]=R*i+S*l+B*d+M*T,t[11]=R*o+S*h+B*p+M*x,R=r[12],S=r[13],B=r[14],M=r[15],t[12]=R*n+S*a+B*f+M*_,t[13]=R*s+S*c+B*u+M*A,t[14]=R*i+S*l+B*d+M*T,t[15]=R*o+S*h+B*p+M*x,t}function ra(t,e,r){let n=r[0],s=r[1],i=r[2],o,a,c,l,h,f,u,d,p,_,A,T;return e===t?(t[12]=e[0]*n+e[4]*s+e[8]*i+e[12],t[13]=e[1]*n+e[5]*s+e[9]*i+e[13],t[14]=e[2]*n+e[6]*s+e[10]*i+e[14],t[15]=e[3]*n+e[7]*s+e[11]*i+e[15]):(o=e[0],a=e[1],c=e[2],l=e[3],h=e[4],f=e[5],u=e[6],d=e[7],p=e[8],_=e[9],A=e[10],T=e[11],t[0]=o,t[1]=a,t[2]=c,t[3]=l,t[4]=h,t[5]=f,t[6]=u,t[7]=d,t[8]=p,t[9]=_,t[10]=A,t[11]=T,t[12]=o*n+h*s+p*i+e[12],t[13]=a*n+f*s+_*i+e[13],t[14]=c*n+u*s+A*i+e[14],t[15]=l*n+d*s+T*i+e[15]),t}function na(t,e,r){let n=r[0],s=r[1],i=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*s,t[5]=e[5]*s,t[6]=e[6]*s,t[7]=e[7]*s,t[8]=e[8]*i,t[9]=e[9]*i,t[10]=e[10]*i,t[11]=e[11]*i,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function sa(t,e,r,n){let s=n[0],i=n[1],o=n[2],a=Math.sqrt(s*s+i*i+o*o),c,l,h,f,u,d,p,_,A,T,x,R,S,B,M,F,C,E,g,y,O,b,N,U;return a<1e-6?null:(a=1/a,s*=a,i*=a,o*=a,l=Math.sin(r),c=Math.cos(r),h=1-c,f=e[0],u=e[1],d=e[2],p=e[3],_=e[4],A=e[5],T=e[6],x=e[7],R=e[8],S=e[9],B=e[10],M=e[11],F=s*s*h+c,C=i*s*h+o*l,E=o*s*h-i*l,g=s*i*h-o*l,y=i*i*h+c,O=o*i*h+s*l,b=s*o*h+i*l,N=i*o*h-s*l,U=o*o*h+c,t[0]=f*F+_*C+R*E,t[1]=u*F+A*C+S*E,t[2]=d*F+T*C+B*E,t[3]=p*F+x*C+M*E,t[4]=f*g+_*y+R*O,t[5]=u*g+A*y+S*O,t[6]=d*g+T*y+B*O,t[7]=p*g+x*y+M*O,t[8]=f*b+_*N+R*U,t[9]=u*b+A*N+S*U,t[10]=d*b+T*N+B*U,t[11]=p*b+x*N+M*U,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function ia(t,e,r){let n=Math.sin(r),s=Math.cos(r),i=e[4],o=e[5],a=e[6],c=e[7],l=e[8],h=e[9],f=e[10],u=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=i*s+l*n,t[5]=o*s+h*n,t[6]=a*s+f*n,t[7]=c*s+u*n,t[8]=l*s-i*n,t[9]=h*s-o*n,t[10]=f*s-a*n,t[11]=u*s-c*n,t}function oa(t,e,r){let n=Math.sin(r),s=Math.cos(r),i=e[0],o=e[1],a=e[2],c=e[3],l=e[8],h=e[9],f=e[10],u=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=i*s-l*n,t[1]=o*s-h*n,t[2]=a*s-f*n,t[3]=c*s-u*n,t[8]=i*n+l*s,t[9]=o*n+h*s,t[10]=a*n+f*s,t[11]=c*n+u*s,t}function aa(t,e,r){let n=Math.sin(r),s=Math.cos(r),i=e[0],o=e[1],a=e[2],c=e[3],l=e[4],h=e[5],f=e[6],u=e[7];return e!==t&&(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[0]=i*s+l*n,t[1]=o*s+h*n,t[2]=a*s+f*n,t[3]=c*s+u*n,t[4]=l*s-i*n,t[5]=h*s-o*n,t[6]=f*s-a*n,t[7]=u*s-c*n,t}function Fm(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function Nm(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Om(t,e,r){let n=r[0],s=r[1],i=r[2],o=Math.sqrt(n*n+s*s+i*i),a,c,l;return o<1e-6?null:(o=1/o,n*=o,s*=o,i*=o,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=s*n*l+i*c,t[2]=i*n*l-s*c,t[3]=0,t[4]=n*s*l-i*c,t[5]=s*s*l+a,t[6]=i*s*l+n*c,t[7]=0,t[8]=n*i*l+s*c,t[9]=s*i*l-n*c,t[10]=i*i*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function bm(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Pm(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Dm(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ef(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=n+n,c=s+s,l=i+i,h=n*a,f=n*c,u=n*l,d=s*c,p=s*l,_=i*l,A=o*a,T=o*c,x=o*l;return t[0]=1-(d+_),t[1]=f+x,t[2]=u-T,t[3]=0,t[4]=f-x,t[5]=1-(h+_),t[6]=p+A,t[7]=0,t[8]=u+T,t[9]=p-A,t[10]=1-(h+d),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function wm(t,e){let r=new $(3),n=-e[0],s=-e[1],i=-e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=n*n+s*s+i*i+o*o;return f>0?(r[0]=(a*o+h*n+c*i-l*s)*2/f,r[1]=(c*o+h*s+l*n-a*i)*2/f,r[2]=(l*o+h*i+a*s-c*n)*2/f):(r[0]=(a*o+h*n+c*i-l*s)*2,r[1]=(c*o+h*s+l*n-a*i)*2,r[2]=(l*o+h*i+a*s-c*n)*2),ef(t,e,r),t}function vm(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function rf(t,e){let r=e[0],n=e[1],s=e[2],i=e[4],o=e[5],a=e[6],c=e[8],l=e[9],h=e[10];return t[0]=Math.sqrt(r*r+n*n+s*s),t[1]=Math.sqrt(i*i+o*o+a*a),t[2]=Math.sqrt(c*c+l*l+h*h),t}function Um(t,e){let r=new $(3);rf(r,e);let n=1/r[0],s=1/r[1],i=1/r[2],o=e[0]*n,a=e[1]*s,c=e[2]*i,l=e[4]*n,h=e[5]*s,f=e[6]*i,u=e[8]*n,d=e[9]*s,p=e[10]*i,_=o+h+p,A=0;return _>0?(A=Math.sqrt(_+1)*2,t[3]=.25*A,t[0]=(f-d)/A,t[1]=(u-c)/A,t[2]=(a-l)/A):o>h&&o>p?(A=Math.sqrt(1+o-h-p)*2,t[3]=(f-d)/A,t[0]=.25*A,t[1]=(a+l)/A,t[2]=(u+c)/A):h>p?(A=Math.sqrt(1+h-o-p)*2,t[3]=(u-c)/A,t[0]=(a+l)/A,t[1]=.25*A,t[2]=(f+d)/A):(A=Math.sqrt(1+p-o-h)*2,t[3]=(a-l)/A,t[0]=(u+c)/A,t[1]=(f+d)/A,t[2]=.25*A),t}function Lm(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let s=n[0],i=n[1],o=n[2],a=n[4],c=n[5],l=n[6],h=n[8],f=n[9],u=n[10];r[0]=Math.sqrt(s*s+i*i+o*o),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(h*h+f*f+u*u);let d=1/r[0],p=1/r[1],_=1/r[2],A=s*d,T=i*p,x=o*_,R=a*d,S=c*p,B=l*_,M=h*d,F=f*p,C=u*_,E=A+S+C,g=0;return E>0?(g=Math.sqrt(E+1)*2,t[3]=.25*g,t[0]=(B-F)/g,t[1]=(M-x)/g,t[2]=(T-R)/g):A>S&&A>C?(g=Math.sqrt(1+A-S-C)*2,t[3]=(B-F)/g,t[0]=.25*g,t[1]=(T+R)/g,t[2]=(M+x)/g):S>C?(g=Math.sqrt(1+S-A-C)*2,t[3]=(M-x)/g,t[0]=(T+R)/g,t[1]=.25*g,t[2]=(B+F)/g):(g=Math.sqrt(1+C-A-S)*2,t[3]=(T-R)/g,t[0]=(M+x)/g,t[1]=(B+F)/g,t[2]=.25*g),t}function Hm(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=e[3],c=s+s,l=i+i,h=o+o,f=s*c,u=s*l,d=s*h,p=i*l,_=i*h,A=o*h,T=a*c,x=a*l,R=a*h,S=n[0],B=n[1],M=n[2];return t[0]=(1-(p+A))*S,t[1]=(u+R)*S,t[2]=(d-x)*S,t[3]=0,t[4]=(u-R)*B,t[5]=(1-(f+A))*B,t[6]=(_+T)*B,t[7]=0,t[8]=(d+x)*M,t[9]=(_-T)*M,t[10]=(1-(f+p))*M,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function Vm(t,e,r,n,s){let i=e[0],o=e[1],a=e[2],c=e[3],l=i+i,h=o+o,f=a+a,u=i*l,d=i*h,p=i*f,_=o*h,A=o*f,T=a*f,x=c*l,R=c*h,S=c*f,B=n[0],M=n[1],F=n[2],C=s[0],E=s[1],g=s[2],y=(1-(_+T))*B,O=(d+S)*B,b=(p-R)*B,N=(d-S)*M,U=(1-(u+T))*M,Y=(A+x)*M,W=(p+R)*F,Q=(A-x)*F,J=(1-(u+_))*F;return t[0]=y,t[1]=O,t[2]=b,t[3]=0,t[4]=N,t[5]=U,t[6]=Y,t[7]=0,t[8]=W,t[9]=Q,t[10]=J,t[11]=0,t[12]=r[0]+C-(y*C+N*E+W*g),t[13]=r[1]+E-(O*C+U*E+Q*g),t[14]=r[2]+g-(b*C+Y*E+J*g),t[15]=1,t}function ca(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r+r,a=n+n,c=s+s,l=r*o,h=n*o,f=n*a,u=s*o,d=s*a,p=s*c,_=i*o,A=i*a,T=i*c;return t[0]=1-f-p,t[1]=h+T,t[2]=u-A,t[3]=0,t[4]=h-T,t[5]=1-l-p,t[6]=d+_,t[7]=0,t[8]=u+A,t[9]=d-_,t[10]=1-l-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function la(t,e,r,n,s,i,o){let a=1/(r-e),c=1/(s-n),l=1/(i-o);return t[0]=i*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(s+n)*c,t[10]=(o+i)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*i*2*l,t[15]=0,t}function nf(t,e,r,n,s){let i=1/Math.tan(e/2);if(t[0]=i/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,s!=null&&s!==1/0){let o=1/(n-s);t[10]=(s+n)*o,t[14]=2*s*n*o}else t[10]=-1,t[14]=-2*n;return t}var ha=nf;function Xm(t,e,r,n,s){let i=1/Math.tan(e/2);if(t[0]=i/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,s!=null&&s!==1/0){let o=1/(n-s);t[10]=s*o,t[14]=s*n*o}else t[10]=-1,t[14]=-n;return t}function Wm(t,e,r,n){let s=Math.tan(e.upDegrees*Math.PI/180),i=Math.tan(e.downDegrees*Math.PI/180),o=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(o+a),l=2/(s+i);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((o-a)*c*.5),t[9]=(s-i)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function sf(t,e,r,n,s,i,o){let a=1/(e-r),c=1/(n-s),l=1/(i-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(s+n)*c,t[14]=(o+i)*l,t[15]=1,t}var fa=sf;function zm(t,e,r,n,s,i,o){let a=1/(e-r),c=1/(n-s),l=1/(i-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(s+n)*c,t[14]=i*l,t[15]=1,t}function ua(t,e,r,n){let s,i,o,a,c,l,h,f,u,d,p=e[0],_=e[1],A=e[2],T=n[0],x=n[1],R=n[2],S=r[0],B=r[1],M=r[2];return Math.abs(p-S)<1e-6&&Math.abs(_-B)<1e-6&&Math.abs(A-M)<1e-6?tf(t):(f=p-S,u=_-B,d=A-M,s=1/Math.sqrt(f*f+u*u+d*d),f*=s,u*=s,d*=s,i=x*d-R*u,o=R*f-T*d,a=T*u-x*f,s=Math.sqrt(i*i+o*o+a*a),s?(s=1/s,i*=s,o*=s,a*=s):(i=0,o=0,a=0),c=u*a-d*o,l=d*i-f*a,h=f*o-u*i,s=Math.sqrt(c*c+l*l+h*h),s?(s=1/s,c*=s,l*=s,h*=s):(c=0,l=0,h=0),t[0]=i,t[1]=c,t[2]=f,t[3]=0,t[4]=o,t[5]=l,t[6]=u,t[7]=0,t[8]=a,t[9]=h,t[10]=d,t[11]=0,t[12]=-(i*p+o*_+a*A),t[13]=-(c*p+l*_+h*A),t[14]=-(f*p+u*_+d*A),t[15]=1,t)}function km(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=n[0],c=n[1],l=n[2],h=s-r[0],f=i-r[1],u=o-r[2],d=h*h+f*f+u*u;d>0&&(d=1/Math.sqrt(d),h*=d,f*=d,u*=d);let p=c*u-l*f,_=l*h-a*u,A=a*f-c*h;return d=p*p+_*_+A*A,d>0&&(d=1/Math.sqrt(d),p*=d,_*=d,A*=d),t[0]=p,t[1]=_,t[2]=A,t[3]=0,t[4]=f*A-u*_,t[5]=u*p-h*A,t[6]=h*_-f*p,t[7]=0,t[8]=h,t[9]=f,t[10]=u,t[11]=0,t[12]=s,t[13]=i,t[14]=o,t[15]=1,t}function Gm(t){return"mat4(".concat(t[0],", ").concat(t[1],", ").concat(t[2],", ").concat(t[3],", ").concat(t[4],", ").concat(t[5],", ").concat(t[6],", ").concat(t[7],", ").concat(t[8],", ").concat(t[9],", ").concat(t[10],", ").concat(t[11],", ").concat(t[12],", ").concat(t[13],", ").concat(t[14],", ").concat(t[15],")")}function Km(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function Jm(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function of(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function Ym(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function qm(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function jm(t,e){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]}function Zm(t,e){let r=t[0],n=t[1],s=t[2],i=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=t[9],u=t[10],d=t[11],p=t[12],_=t[13],A=t[14],T=t[15],x=e[0],R=e[1],S=e[2],B=e[3],M=e[4],F=e[5],C=e[6],E=e[7],g=e[8],y=e[9],O=e[10],b=e[11],N=e[12],U=e[13],Y=e[14],W=e[15];return Math.abs(r-x)<=1e-6*Math.max(1,Math.abs(r),Math.abs(x))&&Math.abs(n-R)<=1e-6*Math.max(1,Math.abs(n),Math.abs(R))&&Math.abs(s-S)<=1e-6*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(i-B)<=1e-6*Math.max(1,Math.abs(i),Math.abs(B))&&Math.abs(o-M)<=1e-6*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(a-F)<=1e-6*Math.max(1,Math.abs(a),Math.abs(F))&&Math.abs(c-C)<=1e-6*Math.max(1,Math.abs(c),Math.abs(C))&&Math.abs(l-E)<=1e-6*Math.max(1,Math.abs(l),Math.abs(E))&&Math.abs(h-g)<=1e-6*Math.max(1,Math.abs(h),Math.abs(g))&&Math.abs(f-y)<=1e-6*Math.max(1,Math.abs(f),Math.abs(y))&&Math.abs(u-O)<=1e-6*Math.max(1,Math.abs(u),Math.abs(O))&&Math.abs(d-b)<=1e-6*Math.max(1,Math.abs(d),Math.abs(b))&&Math.abs(p-N)<=1e-6*Math.max(1,Math.abs(p),Math.abs(N))&&Math.abs(_-U)<=1e-6*Math.max(1,Math.abs(_),Math.abs(U))&&Math.abs(A-Y)<=1e-6*Math.max(1,Math.abs(A),Math.abs(Y))&&Math.abs(T-W)<=1e-6*Math.max(1,Math.abs(T),Math.abs(W))}var Qm=ln,$m=of;function tT(){let t=new $(4);return $!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function af(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function cf(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function lf(t){let e=t[0],r=t[1],n=t[2],s=t[3];return Math.sqrt(e*e+r*r+n*n+s*s)}function hf(t){let e=t[0],r=t[1],n=t[2],s=t[3];return e*e+r*r+n*n+s*s}function ff(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r*r+n*n+s*s+i*i;return o>0&&(o=1/Math.sqrt(o)),t[0]=r*o,t[1]=n*o,t[2]=s*o,t[3]=i*o,t}function uf(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function df(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=e[3];return t[0]=s+n*(r[0]-s),t[1]=i+n*(r[1]-i),t[2]=o+n*(r[2]-o),t[3]=a+n*(r[3]-a),t}function pf(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3];return t[0]=r[0]*n+r[4]*s+r[8]*i+r[12]*o,t[1]=r[1]*n+r[5]*s+r[9]*i+r[13]*o,t[2]=r[2]*n+r[6]*s+r[10]*i+r[14]*o,t[3]=r[3]*n+r[7]*s+r[11]*i+r[15]*o,t}function gf(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[0],a=r[1],c=r[2],l=r[3],h=l*n+a*i-c*s,f=l*s+c*n-o*i,u=l*i+o*s-a*n,d=-o*n-a*s-c*i;return t[0]=h*l+d*-o+f*-c-u*-a,t[1]=f*l+d*-a+u*-o-h*-c,t[2]=u*l+d*-c+h*-a-f*-o,t[3]=e[3],t}var KF=function(){let t=tT();return function(e,r,n,s,i,o){let a,c;for(r||(r=4),n||(n=0),s?c=Math.min(s*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],i(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var ga;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(ga||(ga={}));var rT=45*Math.PI/180,nT=1,da=.1,pa=500,sT=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),D=class extends Tr{static get IDENTITY(){return oT()}static get ZERO(){return iT()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return ga}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this[4]=i,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this[9]=h,this[10]=f,this[11]=u,this[12]=d,this[13]=p,this[14]=_,this[15]=A,this.check()}setRowMajor(e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A){return this[0]=e,this[1]=i,this[2]=l,this[3]=d,this[4]=r,this[5]=o,this[6]=h,this[7]=p,this[8]=n,this[9]=a,this[10]=f,this[11]=_,this[12]=s,this[13]=c,this[14]=u,this[15]=A,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(sT)}fromObject(e){return this.check()}fromQuaternion(e){return ca(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:s,top:i,near:o=da,far:a=pa}=e;return a===1/0?aT(this,r,n,s,i,o):la(this,r,n,s,i,o,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:s=[0,1,0]}=e;return ua(this,r,n,s),this.check()}ortho(e){let{left:r,right:n,bottom:s,top:i,near:o=da,far:a=pa}=e;return fa(this,r,n,s,i,o,a),this.check()}orthographic(e){let{fovy:r=rT,aspect:n=nT,focalDistance:s=1,near:i=da,far:o=pa}=e;Af(r);let a=r/2,c=s*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:i,far:o})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:s=.1,far:i=500}=e;return Af(r),ha(this,r,n,s,i),this.check()}determinant(){return ea(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),s=1/n[0],i=1/n[1],o=1/n[2];return e[0]=this[0]*s,e[1]=this[1]*i,e[2]=this[2]*o,e[3]=0,e[4]=this[4]*s,e[5]=this[5]*i,e[6]=this[6]*o,e[7]=0,e[8]=this[8]*s,e[9]=this[9]*i,e[10]=this[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),s=1/n[0],i=1/n[1],o=1/n[2];return e[0]=this[0]*s,e[1]=this[1]*i,e[2]=this[2]*o,e[3]=this[4]*s,e[4]=this[5]*i,e[5]=this[6]*o,e[6]=this[8]*s,e[7]=this[9]*i,e[8]=this[10]*o,e}transpose(){return $o(this,this),this.check()}invert(){return ta(this,this),this.check()}multiplyLeft(e){return ln(this,e,this),this.check()}multiplyRight(e){return ln(this,this,e),this.check()}rotateX(e){return ia(this,this,e),this.check()}rotateY(e){return oa(this,this,e),this.check()}rotateZ(e){return aa(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return sa(this,this,e,r),this.check()}scale(e){return na(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return ra(this,this,e),this.check()}transform(e,r){return e.length===4?(r=pf(r||[-0,-0,-0,-0],e,this),Se(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,s;switch(n){case 2:s=ps(r||[-0,-0],e,this);break;case 3:s=We(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Se(s,e.length),s}transformAsVector(e,r){let n;switch(e.length){case 2:n=gs(r||[-0,-0],e,this);break;case 3:n=As(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Se(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},Bs,Ms;function iT(){return Bs||(Bs=new D([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(Bs)),Bs}function oT(){return Ms||(Ms=new D,Object.freeze(Ms)),Ms}function Af(t){if(t>Math.PI*2)throw Error("expected radians")}function aT(t,e,r,n,s,i){let o=2*i/(r-e),a=2*i/(s-n),c=(r+e)/(r-e),l=(s+n)/(s-n),h=-1,f=-1,u=-2*i;return t[0]=o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=h,t[11]=f,t[12]=0,t[13]=0,t[14]=u,t[15]=0,t}function _f(){let t=new $(4);return $!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function mf(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Aa(t,e,r){r=r*.5;let n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function _a(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=r[0],c=r[1],l=r[2],h=r[3];return t[0]=n*h+o*a+s*l-i*c,t[1]=s*h+o*c+i*a-n*l,t[2]=i*h+o*l+n*c-s*a,t[3]=o*h-n*a-s*c-i*l,t}function Tf(t,e,r){r*=.5;let n=e[0],s=e[1],i=e[2],o=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=s*c+i*a,t[2]=i*c-s*a,t[3]=o*c-n*a,t}function Ef(t,e,r){r*=.5;let n=e[0],s=e[1],i=e[2],o=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-i*a,t[1]=s*c+o*a,t[2]=i*c+n*a,t[3]=o*c-s*a,t}function Rf(t,e,r){r*=.5;let n=e[0],s=e[1],i=e[2],o=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+s*a,t[1]=s*c-n*a,t[2]=i*c+o*a,t[3]=o*c-i*a,t}function xf(t,e){let r=e[0],n=e[1],s=e[2];return t[0]=r,t[1]=n,t[2]=s,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-s*s)),t}function hn(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=e[3],c=r[0],l=r[1],h=r[2],f=r[3],u,d,p,_,A;return u=s*c+i*l+o*h+a*f,u<0&&(u=-u,c=-c,l=-l,h=-h,f=-f),1-u>1e-6?(d=Math.acos(u),A=Math.sin(d),p=Math.sin((1-n)*d)/A,_=Math.sin(n*d)/A):(p=1-n,_=n),t[0]=p*s+_*c,t[1]=p*i+_*l,t[2]=p*o+_*h,t[3]=p*a+_*f,t}function Sf(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r*r+n*n+s*s+i*i,a=o?1/o:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-s*a,t[3]=i*a,t}function Cf(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function ma(t,e){let r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let s=0;e[4]>e[0]&&(s=1),e[8]>e[s*3+s]&&(s=2);let i=(s+1)%3,o=(s+2)%3;n=Math.sqrt(e[s*3+s]-e[i*3+i]-e[o*3+o]+1),t[s]=.5*n,n=.5/n,t[3]=(e[i*3+o]-e[o*3+i])*n,t[i]=(e[i*3+s]+e[s*3+i])*n,t[o]=(e[o*3+s]+e[s*3+o])*n}return t}var Bf=af;var Mf=cf,yf=uf,If=df,Ff=lf;var Nf=hf;var Of=ff;var bf=function(){let t=ms(),e=Ts(1,0,0),r=Ts(0,1,0);return function(n,s,i){let o=on(s,i);return o<-.999999?(Xe(t,e,s),Yo(t)<1e-6&&Xe(t,r,s),zo(t,t),Aa(n,t,Math.PI),n):o>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Xe(t,s,i),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+o,Of(n,n))}}(),oN=function(){let t=_f(),e=_f();return function(r,n,s,i,o,a){return hn(t,n,o,a),hn(e,s,i,a),hn(r,t,e,2*a*(1-a)),r}}(),aN=function(){let t=Jh();return function(e,r,n,s){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=s[0],t[4]=s[1],t[7]=s[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],Of(e,ma(e,t))}}();var cT=[0,0,0,1],Zt=class extends xe{constructor(e=0,r=0,n=0,s=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,s)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,r,n,s){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return ma(this,e),this.check()}fromAxisRotation(e,r){return Aa(this,e,r),this.check()}identity(){return mf(this),this.check()}setAxisAngle(e,r){return this.fromAxisRotation(e,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=H(e)}get y(){return this[1]}set y(e){this[1]=H(e)}get z(){return this[2]}set z(e){this[2]=H(e)}get w(){return this[3]}set w(e){this[3]=H(e)}len(){return Ff(this)}lengthSquared(){return Nf(this)}dot(e){return yf(this,e)}rotationTo(e,r){return bf(this,e,r),this.check()}add(e){return Bf(this,this,e),this.check()}calculateW(){return xf(this,this),this.check()}conjugate(){return Cf(this,this),this.check()}invert(){return Sf(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(If(this,e,r,n),this.check())}multiplyRight(e){return _a(this,this,e),this.check()}multiplyLeft(e){return _a(this,e,this),this.check()}normalize(){let e=this.len(),r=e>0?1/e:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,e===0&&(this[3]=1),this.check()}rotateX(e){return Tf(this,this,e),this.check()}rotateY(e){return Ef(this,this,e),this.check()}rotateZ(e){return Rf(this,this,e),this.check()}scale(e){return Mf(this,this,e),this.check()}slerp(e,r,n){let s,i,o;switch(arguments.length){case 1:({start:s=cT,target:i,ratio:o}=e);break;case 2:s=this,i=e,o=r;break;default:s=e,i=r,o=n}return hn(this,s,i,o),this.check()}transformVector4(e,r=new mr){return gf(r,e,this),Se(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,r){return this.setAxisAngle(e,r)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}};var Ht={};ht(Ht,{EPSILON1:()=>lT,EPSILON10:()=>mT,EPSILON11:()=>TT,EPSILON12:()=>ET,EPSILON13:()=>RT,EPSILON14:()=>xT,EPSILON15:()=>ST,EPSILON16:()=>CT,EPSILON17:()=>BT,EPSILON18:()=>MT,EPSILON19:()=>yT,EPSILON2:()=>hT,EPSILON20:()=>IT,EPSILON3:()=>fT,EPSILON4:()=>uT,EPSILON5:()=>dT,EPSILON6:()=>pT,EPSILON7:()=>gT,EPSILON8:()=>AT,EPSILON9:()=>_T,PI_OVER_FOUR:()=>NT,PI_OVER_SIX:()=>OT,PI_OVER_TWO:()=>FT,TWO_PI:()=>bT});var lT=.1,hT=.01,fT=.001,uT=1e-4,dT=1e-5,pT=1e-6,gT=1e-7,AT=1e-8,_T=1e-9,mT=1e-10,TT=1e-11,ET=1e-12,RT=1e-13,xT=1e-14,ST=1e-15,CT=1e-16,BT=1e-17,MT=1e-18,yT=1e-19,IT=1e-20,FT=Math.PI/2,NT=Math.PI/4,OT=Math.PI/6,bT=Math.PI*2;function ys(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Vt=Math.PI,vf=Vt/4,Pf=Vt/180,Df=180/Vt,Is=512;function oe(t){let[e,r]=t;ys(Number.isFinite(e)),ys(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Pf,s=r*Pf,i=Is*(n+Vt)/(2*Vt),o=Is*(Vt+Math.log(Math.tan(vf+s*.5)))/(2*Vt);return[i,o]}function ae(t){let[e,r]=t,n=e/Is*(2*Vt)-Vt,s=2*(Math.atan(Math.exp(r/Is*(2*Vt)-Vt))-vf);return[n*Df,s*Df]}var kN=Math.PI/180;var Lf=6378137*Math.PI;function Ta(t){let e=oe(t);return e[0]=(e[0]/256-1)*Lf,e[1]=(e[1]/256-1)*Lf,e}var YT={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},Ns=class extends ze.CompositeLayer{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:n}){let{viewport:s}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(s,"image source changed"),0)):(0,ze._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(s,"viewport changed")):this.debounce(()=>this.loadImage(s,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new Hf.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?ze.COORDINATE_SYSTEM.LNGLAT:ze.COORDINATE_SYSTEM.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:n}=this.state;return n?await this.state.imageSource.getFeatureInfoText?.({...n,query_layers:n.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Nt)return e.data;if(typeof e.data=="string")return Lo({url:e.data,loadOptions:e.loadOptions,type:e.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:n,serviceType:s}=this.props;if(s==="wms"&&n.length===0)return;let i=e.getBounds(),{width:o,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let h={width:o,height:a,boundingBox:[[i[0],i[1]],[i[2],i[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let f=Ta([i[0],i[1]]),u=Ta([i[2],i[3]]);h.boundingBox=[f,u]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let f=await this.state.imageSource.getImage(h);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:f,bounds:i,lastRequestParameters:h,lastRequestId:c}))}catch(f){this.raiseError(f,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,f)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}},Fs=Ns;(()=>{Ns.layerName="WMSLayer"})(),(()=>{Ns.defaultProps=YT})();var Vf=v(Ut(),1),qT={getHeight:{type:"accessor",value:0},greatCircle:!0},Os=class extends Vf.ArcLayer{},fn=Os;(()=>{Os.layerName="GreatCircleLayer"})(),(()=>{Os.defaultProps=qT})();var Xf=v(Lt(),1),Ea=v(Ut(),1),jT={...Ea.PolygonLayer.defaultProps},bs=class extends Xf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:s,stroked:i,lineWidthUnits:o,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:h,lineMiterLimit:f,lineDashJustified:u,getElevation:d,getFillColor:p,getLineColor:_,getLineWidth:A}=this.props,{updateTriggers:T,material:x,transitions:R}=this.props,S=this.getSubLayerClass("cell",Ea.PolygonLayer),{updateTriggers:B,...M}=this.indexToBounds()||{};return new S({filled:s,wireframe:n,extruded:r,elevationScale:e,stroked:i,lineWidthUnits:o,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:h,lineMiterLimit:f,lineDashJustified:u,material:x,transitions:R,getElevation:d,getFillColor:p,getLineColor:_,getLineWidth:A},this.getSubLayerProps({id:"cell",updateTriggers:T&&{...B,getElevation:T.getElevation,getFillColor:T.getFillColor,getLineColor:T.getLineColor,getLineWidth:T.getLineWidth}}),M)}},It=bs;(()=>{bs.layerName="GeoCellLayer"})(),(()=>{bs.defaultProps=jT})();var Ps=v(Ra(),1),ZT=3,QT=30,$T=2*QT+1,zf=180/Math.PI;function Gf(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function kf(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kf(t){return[kf(t[0]),kf(t[1])]}function Jf(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function Yf([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*zf,n*zf]}function qf(t){let e=Ps.default.fromString(t,!0,10).toString(2);for(;e.length<ZT+$T;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),s=e.substring(3,r),i=s.length/2,o=Ps.default.fromString(n,!0,2).toString(10),a=Ps.default.fromString(s,!0,2).toString(4);for(;a.length<i;)a="0"+a;return`${o}/${a}`}function t1(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let s=e[0];e[0]=e[1],e[1]=s}}function jf(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],s=n.length,i=[0,0],o;for(let a=s-1;a>=0;a--){o=s-a;let c=n[a],l=0,h=0;c==="1"?h=1:c==="2"?(l=1,h=1):c==="3"&&(l=1);let f=Math.pow(2,o-1);t1(f,i,l,h),i[0]+=f*l,i[1]+=f*h}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:o}}var Zf=v(Ra(),1);function e1(t){let e=t.padEnd(16,"0");return Zf.default.fromString(e,16)}var r1=100;function n1({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(r1*Math.pow(2,-r))),i=new Float64Array(4*s*2+2),o=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),h=n[c+1],f=(h[0]-l[0])/s,u=(h[1]-l[1])/s;for(let d=0;d<s;d++){l[0]+=f,l[1]+=u;let p=Gf(e,r,l),_=Kf(p),A=Jf(t,_),T=Yf(A);Math.abs(T[1])>89.999&&(T[0]=a);let x=T[0]-a;T[0]+=x>180?-360:x<-180?360:0,i[o++]=T[0],i[o++]=T[1],a=T[0]}}return i[o++]=i[0],i[o++]=i[1],i}function s1(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=e1(t)}return qf(t.toString())}function Qf(t){let e=s1(t),r=jf(e);return n1(r)}var i1={getS2Token:{type:"accessor",value:t=>t.token}},Ds=class extends It{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,s)=>Qf(r(n,s))}}},dn=Ds;(()=>{Ds.layerName="S2Layer"})(),(()=>{Ds.defaultProps=i1})();var xa=512;function o1(t,e){let r=0,n=0,s=1<<t.length,i=s/xa;for(let o=0;o<t.length;o++){s>>=1;let a=parseInt(t[o]);a%2&&(r|=s),a>1&&(n|=s)}return[[r/i,xa-n/i],[(r+e)/i,xa-(n+e)/i]]}function $f(t,e=1){let[r,n]=o1(t,e),[s,i]=ae(r),[o,a]=ae(n);return[o,i,o,a,s,a,s,i,o,i]}var a1={getQuadkey:{type:"accessor",value:t=>t.quadkey}},ws=class extends It{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,s=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(i,o)=>$f(n(i,o),s),updateTriggers:{getPolygon:s}}}},pn=ws;(()=>{ws.layerName="QuadkeyLayer"})(),(()=>{ws.defaultProps=a1})();var zs=v(Lt(),1),_u=v(Ut(),1);var ke=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:n,onError:s}){let{index:i,id:o,bbox:a,userData:c,zoom:l}=this,h=this._loaderId;this._abortController=new AbortController;let{signal:f}=this._abortController,u=await r.scheduleRequest(this,_=>_.isSelected?1:-1);if(!u){this._isCancelled=!0;return}if(this._isCancelled){u.done();return}let d=null,p;try{d=await e({index:i,id:o,bbox:a,userData:c,zoom:l,signal:f})}catch(_){p=_||!0}finally{u.done()}if(h===this._loaderId){if(this._loader=void 0,this.content=d,this._isCancelled&&!d){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,p?s(p,this):n(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var _n=v(Lt(),1);var nt={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var tu=new m,c1=new m,Be=class{constructor(e=[0,0,0],r=[0,0,0],n){P(this,"center",void 0),P(this,"halfDiagonal",void 0),P(this,"minimum",void 0),P(this,"maximum",void 0),n=n||tu.copy(e).add(r).scale(.5),this.center=new m(n),this.halfDiagonal=new m(r).subtract(this.center),this.minimum=new m(e),this.maximum=new m(r)}clone(){return new Be(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,n=c1.from(e.normal),s=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),i=this.center.dot(n)+e.distance;return i-s>0?nt.INSIDE:i+s<0?nt.OUTSIDE:nt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=tu.from(e).subtract(this.center),{halfDiagonal:n}=this,s=0,i;return i=Math.abs(r.x)-n.x,i>0&&(s+=i*i),i=Math.abs(r.y)-n.y,i>0&&(s+=i*i),i=Math.abs(r.z)-n.z,i>0&&(s+=i*i),s}};var gn=new m,eu=new m,Ot=class{constructor(e=[0,0,0],r=0){P(this,"center",void 0),P(this,"radius",void 0),this.radius=-0,this.center=new m,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=gn.from(r),this.center=new m().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new Ot(this.center,this.radius)}union(e){let r=this.center,n=this.radius,s=e.center,i=e.radius,o=gn.copy(s).subtract(r),a=o.magnitude();if(n>=a+i)return this.clone();if(i>=a+n)return e.clone();let c=(n+a+i)*.5;return eu.copy(o).scale((-n+c)/a).add(r),this.center.copy(eu),this.radius=c,this}expand(e){let n=gn.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=Cs.getScaling(gn,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let n=gn.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,i=e.normal.dot(r)+e.distance;return i<-n?nt.OUTSIDE:i<n?nt.INTERSECTING:nt.INSIDE}};var l1=new m,h1=new m,vs=new m,Us=new m,Ls=new m,f1=new m,u1=new m,ce={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Xt=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){P(this,"center",void 0),P(this,"halfAxes",void 0),this.center=new m().from(e),this.halfAxes=new z(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new m(e).len(),new m(r).len(),new m(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),s=new m(e).normalize(),i=new m(r).normalize(),o=new m(n).normalize();return new Zt().fromMatrix3(new z([...s,...i,...o]))}fromCenterHalfSizeQuaternion(e,r,n){let s=new Zt(n),i=new z().fromQuaternion(s);return i[0]=i[0]*r[0],i[1]=i[1]*r[0],i[2]=i[2]*r[0],i[3]=i[3]*r[1],i[4]=i[4]*r[1],i[5]=i[5]*r[1],i[6]=i[6]*r[2],i[7]=i[7]*r[2],i[8]=i[8]*r[2],this.center=new m().from(e),this.halfAxes=i,this}clone(){return new Xt(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new Ot){let r=this.halfAxes,n=r.getColumn(0,vs),s=r.getColumn(1,Us),i=r.getColumn(2,Ls),o=l1.copy(n).add(s).add(i);return e.center.copy(this.center),e.radius=o.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,s=this.halfAxes,i=n.x,o=n.y,a=n.z,c=Math.abs(i*s[ce.COLUMN0ROW0]+o*s[ce.COLUMN0ROW1]+a*s[ce.COLUMN0ROW2])+Math.abs(i*s[ce.COLUMN1ROW0]+o*s[ce.COLUMN1ROW1]+a*s[ce.COLUMN1ROW2])+Math.abs(i*s[ce.COLUMN2ROW0]+o*s[ce.COLUMN2ROW1]+a*s[ce.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?nt.OUTSIDE:l>=c?nt.INSIDE:nt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=h1.from(e).subtract(this.center),n=this.halfAxes,s=n.getColumn(0,vs),i=n.getColumn(1,Us),o=n.getColumn(2,Ls),a=s.magnitude(),c=i.magnitude(),l=o.magnitude();s.normalize(),i.normalize(),o.normalize();let h=0,f;return f=Math.abs(r.dot(s))-a,f>0&&(h+=f*f),f=Math.abs(r.dot(i))-c,f>0&&(h+=f*f),f=Math.abs(r.dot(o))-l,f>0&&(h+=f*f),h}computePlaneDistances(e,r,n=[-0,-0]){let s=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,o=this.center,a=this.halfAxes,c=a.getColumn(0,vs),l=a.getColumn(1,Us),h=a.getColumn(2,Ls),f=f1.copy(c).add(l).add(h).add(o),u=u1.copy(f).subtract(e),d=r.dot(u);return s=Math.min(d,s),i=Math.max(d,i),f.copy(o).add(c).add(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),f.copy(o).add(c).subtract(l).add(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),f.copy(o).add(c).subtract(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).add(l).add(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).add(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).subtract(l).add(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).subtract(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),n[0]=s,n[1]=i,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,vs);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,Us);n.transformAsPoint(e);let s=this.halfAxes.getColumn(2,Ls);return s.transformAsPoint(e),this.halfAxes=new z([...r,...n,...s]),this}getTransform(){throw new Error("not implemented")}};var ru=new m,nu=new m,lt=class{constructor(e=[0,0,1],r=0){P(this,"normal",void 0),P(this,"distance",void 0),this.normal=new m,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return ct(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=ru.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,s){return this.normal.set(e,r,n),ct(At(this.normal.len(),1)),this.distance=s,this}clone(){return new lt(this.normal,this.distance)}equals(e){return At(this.distance,e.distance)&&At(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=nu.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,r)}projectPointOntoPlane(e,r=[0,0,0]){let n=ru.from(e),s=this.getPointDistance(n),i=nu.copy(this.normal).scale(s);return n.subtract(i).to(r)}};var su=[new m([1,0,0]),new m([0,1,0]),new m([0,0,1])],iu=new m,d1=new m,ot=class{constructor(e=[]){P(this,"planes",void 0),this.planes=e}fromBoundingSphere(e){this.planes.length=2*su.length;let r=e.center,n=e.radius,s=0;for(let i of su){let o=this.planes[s],a=this.planes[s+1];o||(o=this.planes[s]=new lt),a||(a=this.planes[s+1]=new lt);let c=iu.copy(i).scale(-n).add(r);o.fromPointNormal(c,i);let l=iu.copy(i).scale(n).add(r),h=d1.copy(i).negate();a.fromPointNormal(l,h),s+=2}return this}computeVisibility(e){let r=nt.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case nt.OUTSIDE:return nt.OUTSIDE;case nt.INTERSECTING:r=nt.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(ct(Number.isFinite(r),"parentPlaneMask is required."),r===ot.MASK_OUTSIDE||r===ot.MASK_INSIDE)return r;let n=ot.MASK_INSIDE,s=this.planes;for(let i=0;i<this.planes.length;++i){let o=i<31?1<<i:0;if(i<31&&!(r&o))continue;let a=s[i],c=e.intersectPlane(a);if(c===nt.OUTSIDE)return ot.MASK_OUTSIDE;c===nt.INTERSECTING&&(n|=o)}return n}};P(ot,"MASK_OUTSIDE",4294967295);P(ot,"MASK_INSIDE",0);P(ot,"MASK_INDETERMINATE",2147483647);var p2=new m,g2=new m,A2=new m,_2=new m,m2=new m;var B2=new m,M2=new m,y2=new m,I2=new m,F2=new m,N2=new m,O2=new m,b2=new m,P2=new m,D2=new m,w2=new m,v2=new m;var Qt=new z,g1=new z,A1=new z,Hs=new z,ou=new z;function Ba(t,e={}){let r=Ht.EPSILON20,n=10,s=0,i=0,o=g1,a=A1;o.identity(),a.copy(t);let c=r*_1(a);for(;i<n&&m1(a)>c;)T1(a,Hs),ou.copy(Hs).transpose(),a.multiplyRight(Hs),a.multiplyLeft(ou),o.multiplyRight(Hs),++s>2&&(++i,s=0);return e.unitary=o.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function _1(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Sa=[1,0,0],Ca=[2,2,1];function m1(t){let e=0;for(let r=0;r<3;++r){let n=t[Qt.getElementIndex(Ca[r],Sa[r])];e+=2*n*n}return Math.sqrt(e)}function T1(t,e){let r=Ht.EPSILON15,n=0,s=1;for(let l=0;l<3;++l){let h=Math.abs(t[Qt.getElementIndex(Ca[l],Sa[l])]);h>n&&(s=l,n=h)}let i=Sa[s],o=Ca[s],a=1,c=0;if(Math.abs(t[Qt.getElementIndex(o,i)])>r){let l=t[Qt.getElementIndex(o,o)],h=t[Qt.getElementIndex(i,i)],f=t[Qt.getElementIndex(o,i)],u=(l-h)/2/f,d;u<0?d=-1/(-u+Math.sqrt(1+u*u)):d=1/(u+Math.sqrt(1+u*u)),a=1/Math.sqrt(1+d*d),c=d*a}return z.IDENTITY.to(e),e[Qt.getElementIndex(i,i)]=e[Qt.getElementIndex(o,o)]=a,e[Qt.getElementIndex(o,i)]=c,e[Qt.getElementIndex(i,o)]=-c,e}var Me=new m,E1=new m,R1=new m,x1=new m,S1=new m,C1=new z,B1={diagonal:new z,unitary:new z};function An(t,e=new Xt){if(!t||t.length===0)return e.halfAxes=new z([0,0,0,0,0,0,0,0,0]),e.center=new m,e;let r=t.length,n=new m(0,0,0);for(let E of t)n.add(E);let s=1/r;n.multiplyByScalar(s);let i=0,o=0,a=0,c=0,l=0,h=0;for(let E of t){let g=Me.copy(E).subtract(n);i+=g.x*g.x,o+=g.x*g.y,a+=g.x*g.z,c+=g.y*g.y,l+=g.y*g.z,h+=g.z*g.z}i*=s,o*=s,a*=s,c*=s,l*=s,h*=s;let f=C1;f[0]=i,f[1]=o,f[2]=a,f[3]=o,f[4]=c,f[5]=l,f[6]=a,f[7]=l,f[8]=h;let{unitary:u}=Ba(f,B1),d=e.halfAxes.copy(u),p=d.getColumn(0,R1),_=d.getColumn(1,x1),A=d.getColumn(2,S1),T=-Number.MAX_VALUE,x=-Number.MAX_VALUE,R=-Number.MAX_VALUE,S=Number.MAX_VALUE,B=Number.MAX_VALUE,M=Number.MAX_VALUE;for(let E of t)Me.copy(E),T=Math.max(Me.dot(p),T),x=Math.max(Me.dot(_),x),R=Math.max(Me.dot(A),R),S=Math.min(Me.dot(p),S),B=Math.min(Me.dot(_),B),M=Math.min(Me.dot(A),M);p=p.multiplyByScalar(.5*(S+T)),_=_.multiplyByScalar(.5*(B+x)),A=A.multiplyByScalar(.5*(M+R)),e.center.copy(p).add(_).add(A);let F=E1.set(T-S,x-B,R-M).multiplyByScalar(.5),C=new z([F[0],0,0,0,F[1],0,0,0,F[2]]);return e.halfAxes.multiplyRight(C),e}var Er=512,au=3,cu=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],lu=cu.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),M1=lu.concat([[.25,.5],[.75,.5]]),ye=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}get children(){if(!this._children){let e=this.x*2,r=this.y*2,n=this.z+1;this._children=[new ye(e,r,n),new ye(e,r+1,n),new ye(e+1,r,n),new ye(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:s,minZ:i,maxZ:o,bounds:a,offset:c,project:l}=e,h=this.getBoundingVolume(s,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(h)<0)return!1;if(!this.childVisible){let{z:u}=this;if(u<o&&u>=i){let d=h.distanceTo(r.cameraPosition)*r.scale/r.height;u+=Math.floor(Math.log2(d))}if(u>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let u of this.children)u.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,n,s]){let i=Math.pow(2,this.z),o=Er/i;return this.x*o<n&&this.y*o<s&&(this.x+1)*o>e&&(this.y+1)*o>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?M1:this.z<2?lu:cu,l=[];for(let h of c){let f=Vs(this.x+h[0],this.y+h[1],this.z);f[2]=e[0],l.push(n(f)),e[0]!==e[1]&&(f[2]=e[1],l.push(n(f)))}return An(l)}let s=Math.pow(2,this.z),i=Er/s,o=this.x*i+r*Er,a=Er-(this.y+1)*i;return new Be([o,a,e[0]],[o+i,a+i,e[1]])}};function hu(t,e,r,n){let s=t instanceof _n._GlobeViewport&&t.resolution?t.projectPosition:null,i=Object.values(t.getFrustumPlanes()).map(({normal:d,distance:p})=>new lt(d.clone().negate(),p)),o=new ot(i),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,h=t instanceof _n.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[d,p,_,A]=n,T=oe([d,A]),x=oe([_,p]);n=[T[0],Er-T[1],x[0],Er-x[1]]}let f=new ye(0,0,0),u={viewport:t,project:s,cullingVolume:o,elevationBounds:[c,l],minZ:h,maxZ:e,bounds:n,offset:0};if(f.update(u),t instanceof _n.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(u.offset=-1;f.update(u)&&!(--u.offset<-au););for(u.offset=1;f.update(u)&&!(++u.offset>au););}return f.getSelected()}var le=512,y1=[-1/0,-1/0,1/0,1/0],Ie={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}};function uu(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(s=>s[0])),Math.min(...r.map(s=>s[1])),Math.max(...r.map(s=>s[0])),Math.max(...r.map(s=>s[1]))]}function I1(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function $t(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let i=I1(n)%t.length;t=t[i]}let s=t;for(let i of Object.keys(r)){let o=new RegExp(`{${i}}`,"g");s=s.replace(o,String(r[i]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(s=s.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),s}function F1(t,e,r){let n;if(e&&e.length===2){let[s,i]=e,o=t.getBounds({z:s}),a=t.getBounds({z:i});n=[Math.min(o[0],a[0]),Math.min(o[1],a[1]),Math.max(o[2],a[2]),Math.max(o[3],a[3])]}else n=t.getBounds();return t.isGeospatial?[Math.max(n[0],r[0]),Math.max(n[1],r[1]),Math.min(n[2],r[2]),Math.min(n[3],r[3])]:[Math.max(Math.min(n[0],r[2]),r[0]),Math.max(Math.min(n[1],r[3]),r[1]),Math.min(Math.max(n[2],r[0]),r[2]),Math.min(Math.max(n[3],r[1]),r[3])]}function du({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(s=>Ma(s,e||0,r))}function Ma(t,e,r){if(!Array.isArray(e)){let i=r.x-t.x,o=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},h=t.unproject([i,o],l),f=t.unproject([i+a,o],l),u=t.unproject([i,o+c],l),d=t.unproject([i+a,o+c],l);return[Math.min(h[0],f[0],u[0],d[0]),Math.min(h[1],f[1],u[1],d[1]),Math.max(h[0],f[0],u[0],d[0]),Math.max(h[1],f[1],u[1],d[1])]}let n=Ma(t,e[0],r),s=Ma(t,e[1],r);return[Math.min(n[0],s[0]),Math.min(n[1],s[1]),Math.max(n[2],s[2]),Math.max(n[3],s[3])]}function N1(t,e,r){return r?uu(t,r).map(s=>s*e/le):t.map(n=>n*e/le)}function ya(t,e){return Math.pow(2,t)*le/e}function Vs(t,e,r){let n=ya(r,le),s=t/n*360-180,i=Math.PI-2*Math.PI*e/n,o=180/Math.PI*Math.atan(.5*(Math.exp(i)-Math.exp(-i)));return[s,o]}function fu(t,e,r,n){let s=ya(r,n);return[t/s*le,e/s*le]}function Ia(t,e,r,n,s=le){if(t.isGeospatial){let[l,h]=Vs(e,r,n),[f,u]=Vs(e+1,r+1,n);return{west:l,north:h,east:f,south:u}}let[i,o]=fu(e,r,n,s),[a,c]=fu(e+1,r+1,n,s);return{left:i,top:o,right:a,bottom:c}}function O1(t,e,r,n,s){let i=F1(t,null,n),o=ya(e,r),[a,c,l,h]=N1(i,o,s),f=[];for(let u=Math.floor(a);u<l;u++)for(let d=Math.floor(c);d<h;d++)f.push({x:u,y:d,z:e});return f}function Fa({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:s,tileSize:i=le,modelMatrix:o,modelMatrixInverse:a,zoomOffset:c=0}){let l=t.isGeospatial?Math.round(t.zoom+Math.log2(le/i))+c:Math.ceil(t.zoom)+c;if(typeof r=="number"&&Number.isFinite(r)&&l<r){if(!s)return[];l=r}typeof e=="number"&&Number.isFinite(e)&&l>e&&(l=e);let h=s;return o&&a&&s&&!t.isGeospatial&&(h=uu(s,o)),t.isGeospatial?hu(t,l,n,s):O1(t,l,i,h||y1,a)}function Na(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function Oa(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function pu(t){let e={},r;return n=>{for(let s in n)if(!b1(n[s],e[s])){r=t(n),e=n;break}return r}}function b1(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}return!1}var gu=1,Xs=2,P1="never",D1="no-overlap",mn="best-available",w1=5,v1={[mn]:L1,[D1]:H1,[P1]:()=>{}},U1={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},Ge=class{constructor(e){this._getCullBounds=pu(du),this.opts={...U1,...e},this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new me({maxRequests:e.maxRequests,throttleRequests:Boolean(e.maxRequests&&e.maxRequests>0)}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new D,this._modelMatrixInverse=new D,this.setOptions(e)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom))}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:n}={zRange:null,modelMatrix:null}){let s=n?new D(n):new D,i=!s.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!At(this._zRange,r)||i){i&&(this._modelMatrixInverse=s.clone().invert(),this._modelMatrix=s),this._viewport=e,this._zRange=r;let a=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=a.map(c=>this._getTile(c,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(a=>this._getTile(a.index,!0)));let o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(e,r){if(!e.isVisible)return!1;if(r&&this._viewport){let n=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,o,a,c]of n){let l;if("west"in s)l=s.west<a&&s.east>i&&s.south<c&&s.north>o;else{let h=Math.min(s.top,s.bottom),f=Math.max(s.top,s.bottom);l=s.left<a&&s.right>i&&h<c&&f>o}if(l)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:s,modelMatrix:i,modelMatrixInverse:o}){let{tileSize:a,extent:c,zoomOffset:l}=this.opts;return Fa({viewport:e,maxZoom:r,minZoom:n,zRange:s,tileSize:a,extent:c,modelMatrix:i,modelMatrixInverse:o,zoomOffset:l})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Ia(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),s=e.z-1;return{x:r,y:n,z:s}}updateTileStates(){let e=this.opts.refinementStrategy||mn,r=new Array(this._cache.size),n=0;for(let s of this._cache.values())r[n++]=s.isVisible,s.isSelected=!1,s.isVisible=!1;for(let s of this._selectedTiles)s.isSelected=!0,s.isVisible=!0;(typeof e=="function"?e:v1[e])(Array.from(this._cache.values())),n=0;for(let s of this._cache.values())if(r[n++]!==s.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let s of this._cache.values())s.isLoading&&(n++,!s.isSelected&&!s.isVisible&&r.push(s));for(;e>0&&n>e&&r.length>0;)r.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let n=this._getNearestAncestor(r);r.parent=n,n?.children&&n.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,n=r.maxCacheSize||(r.maxCacheByteSize?1/0:w1*this.selectedTiles.length),s=r.maxCacheByteSize||1/0;if(e.size>n||this._cacheByteSize>s){for(let[o,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize?a.byteLength:0,e.delete(o),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=s)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((o,a)=>o.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),s=this._cache.get(n),i=!1;return!s&&r?(s=new ke(e),Object.assign(s,this.getTileMetadata(s.index)),Object.assign(s,{id:n,zoom:this.getTileZoom(s.index)}),i=!0,this._cache.set(n,s),this._dirty=!0):s&&s.needsReload&&(i=!0),s&&i&&s.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),s}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let s=this._getTile(n);if(s)return s}return null}};function L1(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Au(e)&&ba(e);for(let e of t)e.isVisible=Boolean(e.state&Xs)}function H1(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Au(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&Xs),r.children&&(r.isVisible||r.state&gu))for(let n of r.children)n.state=gu;else r.isSelected&&ba(r)}function Au(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Xs,!0;e=e.parent}return!1}function ba(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Xs:ba(e)}var V1={TilesetClass:Ge,data:{type:"data",value:[]},dataComparator:Ie.equal,renderSubLayers:{type:"function",value:t=>new _u.GeoJsonLayer(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:mn,zRange:null,maxRequests:6,zoomOffset:0},Ws=class extends zs.CompositeLayer{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&e.layers&&e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,n=e.propsOrDataChanged||e.updateTriggersChanged,s=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),s?r.reloadAll():r.tiles.forEach(i=>{i.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:s,extent:i,maxZoom:o,minZoom:a,maxRequests:c,zoomOffset:l}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:o,minZoom:a,tileSize:e,refinementStrategy:s,extent:i,maxRequests:c,zoomOffset:l,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:n}=this.props,s=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:i}=e,o=this.state.isLoaded!==i,a=this.state.frameNumber!==s;i&&(o||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:s}),this.state.isLoaded=i}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:n,fetch:s}=this.props,{signal:i}=e;return e.url=typeof r=="string"||Array.isArray(r)?$t(r,e):null,n?n(e):s&&e.url?s(e.url,{propName:"data",layer:this,signal:i}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo({info:e,sourceLayer:r}){let n=r.props.tile;return e.picked&&(e.tile=n),e.sourceTile=n,e}_updateAutoHighlight(e){let r=e.sourceTile;if(r&&r.layers)for(let n of r.layers)n.updateAutoHighlight(e)}renderLayers(){return this.state.tileset.tiles.map(e=>{let r=this.getSubLayerPropsByTile(e);if(!(!e.isLoaded&&!e.content))if(e.layers)r&&e.layers[0]&&Object.keys(r).some(n=>e.layers[0].props[n]!==r[n])&&(e.layers=e.layers.map(n=>n.clone(r)));else{let n=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=(0,zs._flatten)(n,Boolean).map(s=>s.clone({tile:e,...r}))}return e.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props;return this.state.tileset.isTileVisible(n,r)}},te=Ws;(()=>{Ws.defaultProps=V1})(),(()=>{Ws.layerName="TileLayer"})();var mu=v(Ut(),1),X1={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},ks=class extends mu.PathLayer{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`uniform float trailLength;
13
+ `):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}ge.prototype.build=function(t){return this.options.preserveOrder?gA(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0).val)};ge.prototype.j2x=function(t,e){let r="",n="";for(let s in t)if(typeof t[s]>"u")this.isAttribute(s)&&(n+="");else if(t[s]===null)this.isAttribute(s)?n+="":s[0]==="?"?n+=this.indentate(e)+"<"+s+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+s+"/"+this.tagEndChar;else if(t[s]instanceof Date)n+=this.buildTextValNode(t[s],s,"",e);else if(typeof t[s]!="object"){let i=this.isAttribute(s);if(i)r+=this.buildAttrPairStr(i,""+t[s]);else if(s===this.options.textNodeName){let o=this.options.tagValueProcessor(s,""+t[s]);n+=this.replaceEntitiesValue(o)}else n+=this.buildTextValNode(t[s],s,"",e)}else if(Array.isArray(t[s])){let i=t[s].length,o="";for(let a=0;a<i;a++){let c=t[s][a];typeof c>"u"||(c===null?s[0]==="?"?n+=this.indentate(e)+"<"+s+"?"+this.tagEndChar:n+=this.indentate(e)+"<"+s+"/"+this.tagEndChar:typeof c=="object"?this.options.oneListGroup?o+=this.j2x(c,e+1).val:o+=this.processTextOrObjNode(c,s,e):o+=this.buildTextValNode(c,s,"",e))}this.options.oneListGroup&&(o=this.buildObjectNode(o,s,"",e)),n+=o}else if(this.options.attributesGroupName&&s===this.options.attributesGroupName){let i=Object.keys(t[s]),o=i.length;for(let a=0;a<o;a++)r+=this.buildAttrPairStr(i[a],""+t[s][i[a]])}else n+=this.processTextOrObjNode(t[s],s,e);return{attrStr:r,val:n}};ge.prototype.buildAttrPairStr=function(t,e){return e=this.options.attributeValueProcessor(t,""+e),e=this.replaceEntitiesValue(e),this.options.suppressBooleanAttributes&&e==="true"?" "+t:" "+t+'="'+e+'"'};function _A(t,e,r){let n=this.j2x(t,r+1);return t[this.options.textNodeName]!==void 0&&Object.keys(t).length===1?this.buildTextValNode(t[this.options.textNodeName],e,n.attrStr,r):this.buildObjectNode(n.val,e,n.attrStr,r)}ge.prototype.buildObjectNode=function(t,e,r,n){if(t==="")return e[0]==="?"?this.indentate(n)+"<"+e+r+"?"+this.tagEndChar:this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar;{let s="</"+e+this.tagEndChar,i="";return e[0]==="?"&&(i="?",s=""),(r||r==="")&&t.indexOf("<")===-1?this.indentate(n)+"<"+e+r+i+">"+t+s:this.options.commentPropName!==!1&&e===this.options.commentPropName&&i.length===0?this.indentate(n)+`<!--${t}-->`+this.newLine:this.indentate(n)+"<"+e+r+i+this.tagEndChar+t+this.indentate(n)+s}};ge.prototype.closeTag=function(t){let e="";return this.options.unpairedTags.indexOf(t)!==-1?this.options.suppressUnpairedNode||(e="/"):this.options.suppressEmptyNode?e="/":e=`></${t}`,e};ge.prototype.buildTextValNode=function(t,e,r,n){if(this.options.cdataPropName!==!1&&e===this.options.cdataPropName)return this.indentate(n)+`<![CDATA[${t}]]>`+this.newLine;if(this.options.commentPropName!==!1&&e===this.options.commentPropName)return this.indentate(n)+`<!--${t}-->`+this.newLine;if(e[0]==="?")return this.indentate(n)+"<"+e+r+"?"+this.tagEndChar;{let s=this.options.tagValueProcessor(e,t);return s=this.replaceEntitiesValue(s),s===""?this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+r+">"+s+"</"+e+this.tagEndChar}};ge.prototype.replaceEntitiesValue=function(t){if(t&&t.length>0&&this.options.processEntities)for(let e=0;e<this.options.entities.length;e++){let r=this.options.entities[e];t=t.replace(r.regex,r.val)}return t};function mA(t){return this.options.indentBy.repeat(t)}function TA(t){return t.startsWith(this.options.attributeNamePrefix)&&t!==this.options.textNodeName?t.substr(this.attrPrefixLen):!1}nh.exports=ge});var oh=et((xM,ih)=>{"use strict";var EA=ho(),RA=Zl(),xA=sh();ih.exports={XMLParser:RA,XMLValidator:EA,XMLBuilder:xA}});var Ra=et((Wf,un)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Ml=="function"&&typeof un=="object"&&un&&un.exports?un.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(Wf,function(){"use strict";function t(E,g,y){this.low=E|0,this.high=g|0,this.unsigned=!!y}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(E){return(E&&E.__isLong__)===!0}t.isLong=e;var r={},n={};function s(E,g){var y,O,b;return g?(E>>>=0,(b=0<=E&&E<256)&&(O=n[E],O)?O:(y=o(E,(E|0)<0?-1:0,!0),b&&(n[E]=y),y)):(E|=0,(b=-128<=E&&E<128)&&(O=r[E],O)?O:(y=o(E,E<0?-1:0,!1),b&&(r[E]=y),y))}t.fromInt=s;function i(E,g){if(isNaN(E)||!isFinite(E))return g?T:A;if(g){if(E<0)return T;if(E>=d)return M}else{if(E<=-p)return F;if(E+1>=p)return B}return E<0?i(-E,g).neg():o(E%u|0,E/u|0,g)}t.fromNumber=i;function o(E,g,y){return new t(E,g,y)}t.fromBits=o;var a=Math.pow;function c(E,g,y){if(E.length===0)throw Error("empty string");if(E==="NaN"||E==="Infinity"||E==="+Infinity"||E==="-Infinity")return A;if(typeof g=="number"?(y=g,g=!1):g=!!g,y=y||10,y<2||36<y)throw RangeError("radix");var O;if((O=E.indexOf("-"))>0)throw Error("interior hyphen");if(O===0)return c(E.substring(1),g,y).neg();for(var b=i(a(y,8)),N=A,U=0;U<E.length;U+=8){var Y=Math.min(8,E.length-U),W=parseInt(E.substring(U,U+Y),y);if(Y<8){var Q=i(a(y,Y));N=N.mul(Q).add(i(W))}else N=N.mul(b),N=N.add(i(W))}return N.unsigned=g,N}t.fromString=c;function l(E){return E instanceof t?E:typeof E=="number"?i(E):typeof E=="string"?c(E):o(E.low,E.high,E.unsigned)}t.fromValue=l;var h=1<<16,f=1<<24,u=h*h,d=u*u,p=d/2,_=s(f),A=s(0);t.ZERO=A;var T=s(0,!0);t.UZERO=T;var x=s(1);t.ONE=x;var R=s(1,!0);t.UONE=R;var S=s(-1);t.NEG_ONE=S;var B=o(-1,2147483647,!1);t.MAX_VALUE=B;var M=o(-1,-1,!0);t.MAX_UNSIGNED_VALUE=M;var F=o(0,-2147483648,!1);t.MIN_VALUE=F;var C=t.prototype;return C.toInt=function(){return this.unsigned?this.low>>>0:this.low},C.toNumber=function(){return this.unsigned?(this.high>>>0)*u+(this.low>>>0):this.high*u+(this.low>>>0)},C.toString=function(g){if(g=g||10,g<2||36<g)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(F)){var y=i(g),O=this.div(y),b=O.mul(y).sub(this);return O.toString(g)+b.toInt().toString(g)}else return"-"+this.neg().toString(g);for(var N=i(a(g,6),this.unsigned),U=this,Y="";;){var W=U.div(N),Q=U.sub(W.mul(N)).toInt()>>>0,J=Q.toString(g);if(U=W,U.isZero())return J+Y;for(;J.length<6;)J="0"+J;Y=""+J+Y}},C.getHighBits=function(){return this.high},C.getHighBitsUnsigned=function(){return this.high>>>0},C.getLowBits=function(){return this.low},C.getLowBitsUnsigned=function(){return this.low>>>0},C.getNumBitsAbs=function(){if(this.isNegative())return this.eq(F)?64:this.neg().getNumBitsAbs();for(var g=this.high!=0?this.high:this.low,y=31;y>0&&!(g&1<<y);y--);return this.high!=0?y+33:y+1},C.isZero=function(){return this.high===0&&this.low===0},C.isNegative=function(){return!this.unsigned&&this.high<0},C.isPositive=function(){return this.unsigned||this.high>=0},C.isOdd=function(){return(this.low&1)===1},C.isEven=function(){return(this.low&1)===0},C.equals=function(g){return e(g)||(g=l(g)),this.unsigned!==g.unsigned&&this.high>>>31===1&&g.high>>>31===1?!1:this.high===g.high&&this.low===g.low},C.eq=C.equals,C.notEquals=function(g){return!this.eq(g)},C.neq=C.notEquals,C.lessThan=function(g){return this.comp(g)<0},C.lt=C.lessThan,C.lessThanOrEqual=function(g){return this.comp(g)<=0},C.lte=C.lessThanOrEqual,C.greaterThan=function(g){return this.comp(g)>0},C.gt=C.greaterThan,C.greaterThanOrEqual=function(g){return this.comp(g)>=0},C.gte=C.greaterThanOrEqual,C.compare=function(g){if(e(g)||(g=l(g)),this.eq(g))return 0;var y=this.isNegative(),O=g.isNegative();return y&&!O?-1:!y&&O?1:this.unsigned?g.high>>>0>this.high>>>0||g.high===this.high&&g.low>>>0>this.low>>>0?-1:1:this.sub(g).isNegative()?-1:1},C.comp=C.compare,C.negate=function(){return!this.unsigned&&this.eq(F)?F:this.not().add(x)},C.neg=C.negate,C.add=function(g){e(g)||(g=l(g));var y=this.high>>>16,O=this.high&65535,b=this.low>>>16,N=this.low&65535,U=g.high>>>16,Y=g.high&65535,W=g.low>>>16,Q=g.low&65535,J=0,q=0,tt=0,mt=0;return mt+=N+Q,tt+=mt>>>16,mt&=65535,tt+=b+W,q+=tt>>>16,tt&=65535,q+=O+Y,J+=q>>>16,q&=65535,J+=y+U,J&=65535,o(tt<<16|mt,J<<16|q,this.unsigned)},C.subtract=function(g){return e(g)||(g=l(g)),this.add(g.neg())},C.sub=C.subtract,C.multiply=function(g){if(this.isZero()||(e(g)||(g=l(g)),g.isZero()))return A;if(this.eq(F))return g.isOdd()?F:A;if(g.eq(F))return this.isOdd()?F:A;if(this.isNegative())return g.isNegative()?this.neg().mul(g.neg()):this.neg().mul(g).neg();if(g.isNegative())return this.mul(g.neg()).neg();if(this.lt(_)&&g.lt(_))return i(this.toNumber()*g.toNumber(),this.unsigned);var y=this.high>>>16,O=this.high&65535,b=this.low>>>16,N=this.low&65535,U=g.high>>>16,Y=g.high&65535,W=g.low>>>16,Q=g.low&65535,J=0,q=0,tt=0,mt=0;return mt+=N*Q,tt+=mt>>>16,mt&=65535,tt+=b*Q,q+=tt>>>16,tt&=65535,tt+=N*W,q+=tt>>>16,tt&=65535,q+=O*Q,J+=q>>>16,q&=65535,q+=b*W,J+=q>>>16,q&=65535,q+=N*Y,J+=q>>>16,q&=65535,J+=y*Q+O*W+b*Y+N*U,J&=65535,o(tt<<16|mt,J<<16|q,this.unsigned)},C.mul=C.multiply,C.divide=function(g){if(e(g)||(g=l(g)),g.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?T:A;var y,O,b;if(this.unsigned){if(g.unsigned||(g=g.toUnsigned()),g.gt(this))return T;if(g.gt(this.shru(1)))return R;b=T}else{if(this.eq(F)){if(g.eq(x)||g.eq(S))return F;if(g.eq(F))return x;var N=this.shr(1);return y=N.div(g).shl(1),y.eq(A)?g.isNegative()?x:S:(O=this.sub(g.mul(y)),b=y.add(O.div(g)),b)}else if(g.eq(F))return this.unsigned?T:A;if(this.isNegative())return g.isNegative()?this.neg().div(g.neg()):this.neg().div(g).neg();if(g.isNegative())return this.div(g.neg()).neg();b=A}for(O=this;O.gte(g);){y=Math.max(1,Math.floor(O.toNumber()/g.toNumber()));for(var U=Math.ceil(Math.log(y)/Math.LN2),Y=U<=48?1:a(2,U-48),W=i(y),Q=W.mul(g);Q.isNegative()||Q.gt(O);)y-=Y,W=i(y,this.unsigned),Q=W.mul(g);W.isZero()&&(W=x),b=b.add(W),O=O.sub(Q)}return b},C.div=C.divide,C.modulo=function(g){return e(g)||(g=l(g)),this.sub(this.div(g).mul(g))},C.mod=C.modulo,C.not=function(){return o(~this.low,~this.high,this.unsigned)},C.and=function(g){return e(g)||(g=l(g)),o(this.low&g.low,this.high&g.high,this.unsigned)},C.or=function(g){return e(g)||(g=l(g)),o(this.low|g.low,this.high|g.high,this.unsigned)},C.xor=function(g){return e(g)||(g=l(g)),o(this.low^g.low,this.high^g.high,this.unsigned)},C.shiftLeft=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?o(this.low<<g,this.high<<g|this.low>>>32-g,this.unsigned):o(0,this.low<<g-32,this.unsigned)},C.shl=C.shiftLeft,C.shiftRight=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?o(this.low>>>g|this.high<<32-g,this.high>>g,this.unsigned):o(this.high>>g-32,this.high>=0?0:-1,this.unsigned)},C.shr=C.shiftRight,C.shiftRightUnsigned=function(g){if(e(g)&&(g=g.toInt()),g&=63,g===0)return this;var y=this.high;if(g<32){var O=this.low;return o(O>>>g|y<<32-g,y>>>g,this.unsigned)}else return g===32?o(y,0,this.unsigned):o(y>>>g-32,0,this.unsigned)},C.shru=C.shiftRightUnsigned,C.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},C.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)},C.toBytes=function(E){return E?this.toBytesLE():this.toBytesBE()},C.toBytesLE=function(){var E=this.high,g=this.low;return[g&255,g>>>8&255,g>>>16&255,g>>>24&255,E&255,E>>>8&255,E>>>16&255,E>>>24&255]},C.toBytesBE=function(){var E=this.high,g=this.low;return[E>>>24&255,E>>>16&255,E>>>8&255,E&255,g>>>24&255,g>>>16&255,g>>>8&255,g&255]},t})});var Gs=et((yO,Tu)=>{Tu.exports=globalThis.h3||{}});var Da=et((vO,Cu)=>{Cu.exports=globalThis.luma});var qs=et((UO,Bu)=>{Bu.exports=globalThis.deck});var yu=et((LO,Mu)=>{Mu.exports=globalThis.luma});var Cr=et((qb,Qu)=>{Qu.exports=globalThis.loaders});var Cg=et((_4,Sg)=>{Sg.exports=globalThis.deck});var Dg=et(pl=>{pl.read=function(t,e,r,n,s){var i,o,a=s*8-n-1,c=(1<<a)-1,l=c>>1,h=-7,f=r?s-1:0,u=r?-1:1,d=t[e+f];for(f+=u,i=d&(1<<-h)-1,d>>=-h,h+=a;h>0;i=i*256+t[e+f],f+=u,h-=8);for(o=i&(1<<-h)-1,i>>=-h,h+=n;h>0;o=o*256+t[e+f],f+=u,h-=8);if(i===0)i=1-l;else{if(i===c)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),i=i-l}return(d?-1:1)*o*Math.pow(2,i-n)};pl.write=function(t,e,r,n,s,i){var o,a,c,l=i*8-s-1,h=(1<<l)-1,f=h>>1,u=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:i-1,p=n?1:-1,_=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+f>=1?e+=u/c:e+=u*Math.pow(2,1-f),e*c>=2&&(o++,c/=2),o+f>=h?(a=0,o=h):o+f>=1?(a=(e*c-1)*Math.pow(2,s),o=o+f):(a=e*Math.pow(2,f-1)*Math.pow(2,s),o=0));s>=8;t[r+d]=a&255,d+=p,a/=256,s-=8);for(o=o<<s|a,l+=s;l>0;t[r+d]=o&255,d+=p,o/=256,l-=8);t[r+d-p]|=_*128}});var Vg=et((o6,Hg)=>{"use strict";Hg.exports=k;var eo=Dg();function k(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}k.Varint=0;k.Fixed64=1;k.Bytes=2;k.Fixed32=5;var gl=(1<<16)*(1<<16),wg=1/gl,lB=12,Lg=typeof TextDecoder>"u"?null:new TextDecoder("utf8");k.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),s=n>>3,i=this.pos;this.type=n&7,t(s,e,this),this.pos===i&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=ro(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Ug(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=ro(this.buf,this.pos)+ro(this.buf,this.pos+4)*gl;return this.pos+=8,t},readSFixed64:function(){var t=ro(this.buf,this.pos)+Ug(this.buf,this.pos+4)*gl;return this.pos+=8,t},readFloat:function(){var t=eo.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=eo.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,n;return n=e[this.pos++],r=n&127,n<128||(n=e[this.pos++],r|=(n&127)<<7,n<128)||(n=e[this.pos++],r|=(n&127)<<14,n<128)||(n=e[this.pos++],r|=(n&127)<<21,n<128)?r:(n=e[this.pos],r|=(n&15)<<28,hB(r,t,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2===1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=lB&&Lg?CB(this.buf,e,t):SB(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==k.Bytes)return t.push(this.readVarint(e));var r=de(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==k.Bytes)return t.push(this.readSVarint());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==k.Bytes)return t.push(this.readBoolean());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==k.Bytes)return t.push(this.readFloat());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==k.Bytes)return t.push(this.readDouble());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==k.Bytes)return t.push(this.readFixed32());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==k.Bytes)return t.push(this.readSFixed32());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==k.Bytes)return t.push(this.readFixed64());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==k.Bytes)return t.push(this.readSFixed64());var e=de(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===k.Varint)for(;this.buf[this.pos++]>127;);else if(e===k.Bytes)this.pos=this.readVarint()+this.pos;else if(e===k.Fixed32)this.pos+=4;else if(e===k.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+e)},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),Kr(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),Kr(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),Kr(this.buf,t&-1,this.pos),Kr(this.buf,Math.floor(t*wg),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),Kr(this.buf,t&-1,this.pos),Kr(this.buf,Math.floor(t*wg),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){fB(t,this);return}this.realloc(4),this.buf[this.pos++]=t&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?-t*2-1:t*2)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=BB(this.buf,t,this.pos);var r=this.pos-e;r>=128&&vg(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),eo.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),eo.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&vg(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,k.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,pB,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,gB,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,mB,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,AB,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,_B,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,TB,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,EB,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,RB,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,xB,e)},writeBytesField:function(t,e){this.writeTag(t,k.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,k.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,k.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,k.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,k.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,k.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,k.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,k.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,k.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,k.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function hB(t,e,r){var n=r.buf,s,i;if(i=n[r.pos++],s=(i&112)>>4,i<128||(i=n[r.pos++],s|=(i&127)<<3,i<128)||(i=n[r.pos++],s|=(i&127)<<10,i<128)||(i=n[r.pos++],s|=(i&127)<<17,i<128)||(i=n[r.pos++],s|=(i&127)<<24,i<128)||(i=n[r.pos++],s|=(i&1)<<31,i<128))return Gr(t,s,e);throw new Error("Expected varint not more than 10 bytes")}function de(t){return t.type===k.Bytes?t.readVarint()+t.pos:t.pos+1}function Gr(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function fB(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(r=~(-t%4294967296),n=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,n=n+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),uB(r,n,e),dB(n,e)}function uB(t,e,r){r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos]=t&127}function dB(t,e){var r=(t&7)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127)))))}function vg(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(n);for(var s=r.pos-1;s>=t;s--)r.buf[s+n]=r.buf[s]}function pB(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function gB(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function AB(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function _B(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function mB(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function TB(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function EB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function RB(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function xB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function ro(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function Kr(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function Ug(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function SB(t,e,r){for(var n="",s=e;s<r;){var i=t[s],o=null,a=i>239?4:i>223?3:i>191?2:1;if(s+a>r)break;var c,l,h;a===1?i<128&&(o=i):a===2?(c=t[s+1],(c&192)===128&&(o=(i&31)<<6|c&63,o<=127&&(o=null))):a===3?(c=t[s+1],l=t[s+2],(c&192)===128&&(l&192)===128&&(o=(i&15)<<12|(c&63)<<6|l&63,(o<=2047||o>=55296&&o<=57343)&&(o=null))):a===4&&(c=t[s+1],l=t[s+2],h=t[s+3],(c&192)===128&&(l&192)===128&&(h&192)===128&&(o=(i&15)<<18|(c&63)<<12|(l&63)<<6|h&63,(o<=65535||o>=1114112)&&(o=null))),o===null?(o=65533,a=1):o>65535&&(o-=65536,n+=String.fromCharCode(o>>>10&1023|55296),o=56320|o&1023),n+=String.fromCharCode(o),s+=a}return n}function CB(t,e,r){return Lg.decode(t.subarray(e,r))}function BB(t,e,r){for(var n=0,s,i;n<e.length;n++){if(s=e.charCodeAt(n),s>55295&&s<57344)if(i)if(s<56320){t[r++]=239,t[r++]=191,t[r++]=189,i=s;continue}else s=i-55296<<10|s-56320|65536,i=null;else{s>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):i=s;continue}else i&&(t[r++]=239,t[r++]=191,t[r++]=189,i=null);s<128?t[r++]=s:(s<2048?t[r++]=s>>6|192:(s<65536?t[r++]=s>>12|224:(t[r++]=s>>18|240,t[r++]=s>>12&63|128),t[r++]=s>>6&63|128),t[r++]=s&63|128)}return r}});var rs={};ht(rs,{GeohashLayer:()=>es,GreatCircleLayer:()=>fn,H3ClusterLayer:()=>xn,H3HexagonLayer:()=>Ke,MVTLayer:()=>ts,QuadkeyLayer:()=>pn,S2Layer:()=>dn,TerrainLayer:()=>Wn,Tile3DLayer:()=>Ln,TileLayer:()=>te,TripsLayer:()=>Tn,_GeoCellLayer:()=>It,_Tile2DHeader:()=>ke,_Tileset2D:()=>Ge,_WMSLayer:()=>Fs,_getURLFromTemplate:()=>$t});var Kt={},Il=v(Ut(),1);pe(Kt,v(Ut(),1));if(!Il.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");pe(rs,Kt);var ze=v(Lt(),1),Hf=v(Ut(),1);function p0(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function is(t){if(Array.isArray(t))return t.map(e=>is(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[p0(r)]=is(n);return e}return t}var ah=v(oh(),1);function To(t,e){if(e!=null&&e._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(s,i,o,a)=>{var c;return Boolean(e==null||(c=e.arrayPaths)===null||c===void 0?void 0:c.some(h=>i===h))},...e?._fastXML},n=SA(t,r);return e!=null&&e.uncapitalizeKeys?is(n):n}function SA(t,e){return new ah.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var CA="4.1.0",gt={name:"XML",id:"xml",module:"xml",version:CA,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:BA,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>To(new TextDecoder().decode(t),{...gt.options.xml,...e?.xml}),parseTextSync:(t,e)=>To(t,{...gt.options.xml,...e?.xml})};function BA(t){return t.startsWith("<?xml")}async function Ct(t,e,r,n){return n._parse(t,e,r,n)}function V(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var Jt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},MA=Jt.self||Jt.window||Jt.global||{},yA=Jt.window||Jt.self||Jt.global||{},IA=Jt.global||Jt.self||Jt.window||{},FA=Jt.document||{};var qr=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var ch=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),NA=ch&&parseFloat(ch[1])||0;function Eo(t,e){return lh(t||{},e)}function lh(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(r>3)return e;let n={...t};for(let[s,i]of Object.entries(e))i&&typeof i=="object"&&!Array.isArray(i)?n[s]=lh(n[s]||{},e[s],r+1):n[s]=e[s];return n}function OA(){var t;return(t=globalThis._loadersgl_)!==null&&t!==void 0&&t.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.1.0"),globalThis._loadersgl_.version}var hh=OA();function fh(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var Yt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},PM=Yt.self||Yt.window||Yt.global||{},DM=Yt.window||Yt.self||Yt.global||{},wM=Yt.global||Yt.self||Yt.window||{},vM=Yt.document||{};var ur=typeof process!="object"||String(process)!=="[object process]"||process.browser,as=typeof importScripts=="function",UM=typeof window<"u"&&typeof window.orientation<"u",uh=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),LM=uh&&parseFloat(uh[1])||0;var Ro={};async function qt(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;return e&&(t=dh(t,e,r,n)),Ro[t]=Ro[t]||bA(t),await Ro[t]}function dh(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let s=r.modules||{};return s[n]?s[n]:ur?r.CDN?(fh(r.CDN.startsWith("http")),`${r.CDN}/${e}@${hh}/dist/libs/${n}`):as?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function bA(t){if(t.endsWith("wasm"))return await DA(t);if(!ur)try{return Bt&&Bt.requireFromFile&&await Bt.requireFromFile(t)}catch(r){return console.error(r),null}if(as)return importScripts(t);let e=await wA(t);return PA(e,t)}function PA(t,e){if(!ur)return Bt.requireFromString&&Bt.requireFromString(t,e);if(as)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function DA(t){return ur||!Bt.readFileAsArrayBuffer||t.startsWith("http")?await(await fetch(t)).arrayBuffer():await Bt.readFileAsArrayBuffer(t)}async function wA(t){return ur||!Bt.readFileAsText||t.startsWith("http")?await(await fetch(t)).text():await Bt.readFileAsText(t)}function gh(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5;return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?ph(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?ph(t,0,e):""}function ph(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),s="";for(let i=0;i<r;i++)s+=String.fromCharCode(n.getUint8(e+i));return s}function xo(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${gh(t)}"`)}}function jr(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];let n=e,s=n&&n.length>1&&n[0].constructor||null;if(!s)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let i=n.reduce((c,l)=>c+l.length,0),o=new s(i),a=0;for(let c of n)o.set(c,a),a+=c.length;return o}function De(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function Ae(t,e){return V(t>=0),V(e>0),t+(e-1)&~(e-1)}function So(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let s=t.byteOffset,i=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,s,i)}return e.set(n,r),r+Ae(n.byteLength,4)}function Zr(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var we=class{constructor(e,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Zr(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Zr()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var _e=class{constructor(e){this.id=void 0,this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:e,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let r of Object.values(this.stats))e(r)}getTable(){let e={};return this.forEach(r=>{e[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),e}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,s=this.stats[r];return s||(e instanceof we?s=e:s=new we(r,n),this.stats[r]=s),s}};var vA="Queued Requests",UA="Active Requests",LA="Cancelled Requests",HA="Queued Requests Ever",VA="Active Requests Ever",XA={id:"request-scheduler",throttleRequests:!0,maxRequests:6},me=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.props=void 0,this.stats=void 0,this.activeRequestCount=0,this.requestQueue=[],this.requestMap=new Map,this.deferredUpdate=null,this.props={...XA,...e},this.stats=new _e({id:this.props.id}),this.stats.get(vA),this.stats.get(UA),this.stats.get(LA),this.stats.get(HA),this.stats.get(VA)}scheduleRequest(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:()=>0;if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},s=new Promise(i=>(n.resolve=i,n));return this.requestQueue.push(n),this.requestMap.set(e,s),this._issueNewRequests(),s}_issueRequest(e){let{handle:r,resolve:n}=e,s=!1,i=()=>{s||(s=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:i}):Promise.resolve({done:i})}_issueNewRequests(){this.deferredUpdate||(this.deferredUpdate=setTimeout(()=>this._issueNewRequestsAsync(),0))}_issueNewRequestsAsync(){this.deferredUpdate=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var Te={};ht(Te,{dirname:()=>zA,filename:()=>WA,join:()=>kA,resolve:()=>GA});function Ah(){var t;if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=(t=window.location)===null||t===void 0?void 0:t.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function WA(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):""}function zA(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function kA(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];let n="/";return e=e.map((s,i)=>(i&&(s=s.replace(new RegExp(`^${n}`),"")),i!==e.length-1&&(s=s.replace(new RegExp(`${n}$`),"")),s)),e.join(n)}function GA(){let t=[];for(let s=0;s<arguments.length;s++)t[s]=s<0||arguments.length<=s?void 0:arguments[s];let e="",r=!1,n;for(let s=t.length-1;s>=-1&&!r;s--){let i;s>=0?i=t[s]:(n===void 0&&(n=Ah()),i=n),i.length!==0&&(e=`${i}/${e}`,r=i.charCodeAt(0)===Qr)}return e=KA(e,!r),r?`/${e}`:e.length>0?e:"."}var Qr=47,Co=46;function KA(t,e){let r="",n=-1,s=0,i,o=!1;for(let a=0;a<=t.length;++a){if(a<t.length)i=t.charCodeAt(a);else{if(i===Qr)break;i=Qr}if(i===Qr){if(!(n===a-1||s===1))if(n!==a-1&&s===2){if(r.length<2||!o||r.charCodeAt(r.length-1)!==Co||r.charCodeAt(r.length-2)!==Co){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==Qr;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,s=0,o=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,s=0,o=!1;continue}}e&&(r.length>0?r+="/..":r="..",o=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,o=!1}n=a,s=0}else i===Co&&s!==-1?++s:s=-1}return r}var cs=class{constructor(e){this.data=void 0,this.fetch=void 0,this.loadOptions=void 0,this._needsRefresh=!0,this.props=void 0,this.props={...e},this.loadOptions={...e.loadOptions},this.fetch=JA(this.loadOptions)}setProps(e){this.props=Object.assign(this.props,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}};function JA(t){let e=t?.fetch;if(e&&typeof e=="function")return(n,s)=>e(n,s);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}var Nt=class extends cs{};Nt.type="template";Nt.testURL=t=>!1;function _h(t,e){var r,n,s;let i=(r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e),o=(i==null||(n=i.ServiceExceptionReport)===null||n===void 0?void 0:n.ServiceException)||(i==null||(s=i["ogc:ServiceExceptionReport"])===null||s===void 0?void 0:s["ogc:ServiceException"]);return typeof o=="string"?o:o.value||o.code||"Unknown error"}var YA="4.1.0",ve={id:"wms-error",name:"WMS Error",module:"wms",version:YA,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:qA,options:{wms:{throwOnError:!1}},parse:async(t,e)=>Bo(new TextDecoder().decode(t),e),parseSync:(t,e)=>Bo(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Bo(t,e)};function qA(t){return t.startsWith("<?xml")}function Bo(t,e){let r={...ve.options.wms,...e?.wms},n=_h(t,r),s=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(s);return s}function Ue(t){return Array.isArray(t)?t:t?[t]:[]}function $r(t){let e=Ue(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function tn(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function ls(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function Le(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function Mo(t,e){var r;let n=(r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e),s=n.WMT_MS_Capabilities||n.WMS_Capabilities||n,i=jA(s);if(e!=null&&e.inheritedLayerProps)for(let o of i.layers)Th(o,null);return e!=null&&e.includeRawJSON&&(i.json=s),e!=null&&e.includeXMLText&&(i.xml=t),i}function jA(t){var e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A;let T={version:String(t.version||""),name:String(((e=t.Service)===null||e===void 0?void 0:e.Name)||"unnamed"),title:(r=t.Service)!==null&&r!==void 0&&r.Title?String((n=t.Service)===null||n===void 0?void 0:n.Title):void 0,abstract:(s=t.Service)!==null&&s!==void 0&&s.Abstract?String((i=t.Service)===null||i===void 0?void 0:i.Abstract):void 0,keywords:$r((o=t.Service)===null||o===void 0||(a=o.KeywordList)===null||a===void 0?void 0:a.Keyword),fees:(c=t.Service)!==null&&c!==void 0&&c.Fees?JSON.stringify((l=t.Service)===null||l===void 0?void 0:l.Fees):void 0,accessConstraints:(h=t.Service)!==null&&h!==void 0&&h.AccessConstraints?JSON.stringify((f=t.Service)===null||f===void 0?void 0:f.AccessConstraints):void 0,layerLimit:ls((u=t.Service)===null||u===void 0?void 0:u.LayerLimit),maxWidth:ls((d=t.Service)===null||d===void 0?void 0:d.maxWidth),maxHeight:ls((p=t.Service)===null||p===void 0?void 0:p.maxHeight),layers:[],requests:ZA((_=t.Capability)===null||_===void 0?void 0:_.Request),exceptions:QA(t.Exception)},x=Ue((A=t.Capability)===null||A===void 0?void 0:A.Layer);for(let R of x)T.layers.push(mh(R));for(let[R,S]of Object.entries(T))S===void 0&&delete T[R];return T}function ZA(t){let e={};for(let[r,n]of Object.entries(t||{})){let s=$r(n?.Format);e[r]={mimeTypes:s}}return e}function QA(t){if(Ue(t?.Format).length>0)return{mimeTypes:$r(t)}}function mh(t){var e;let r={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:$r((e=t.KeywordList)===null||e===void 0?void 0:e.Keyword)},n=t?.CRS||t?.SRS;n&&Array.isArray(n)&&n.every(h=>typeof h=="string")&&(r.crs=n);let s=t?.EX_GeographicBoundingBox&&$A(t?.EX_GeographicBoundingBox);s&&(r.geographicBoundingBox=s),s=t?.LatLonBoundingBox&&t_(t?.LatLonBoundingBox),s&&(r.geographicBoundingBox=s);let i=t?.BoundingBox&&e_(t?.BoundingBox);i&&i.length>0&&(r.boundingBoxes=i);let a=Ue(t?.Dimension).map(h=>n_(h));a.length&&(r.dimensions=a),t!=null&&t.opaque&&(r.opaque=Le(t?.opaque)),t!=null&&t.cascaded&&(r.cascaded=Le(t?.cascaded)),t!=null&&t.queryable&&(r.queryable=Le(t?.queryable));let c=Ue(t?.Layer),l=[];for(let h of c)l.push(mh(h));l.length>0&&(r.layers=l);for(let[h,f]of Object.entries(r))f===void 0&&delete r[h];return r}function $A(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:s}=t;return[[e,s],[n,r]]}function t_(t){let{minx:e,miny:r,maxx:n,maxy:s}=t;return[[e,r],[n,s]]}function e_(t){return Ue(t).map(r=>r_(r))}function r_(t){let{CRS:e,SRS:r,minx:n,miny:s,maxx:i,maxy:o,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[tn(n),tn(s)],[tn(i),tn(o)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function n_(t){let{name:e,units:r,value:n}=t,s={name:e,units:r,extent:n};return t.unitSymbol&&(s.unitSymbol=t.unitSymbol),t.default&&(s.defaultValue=t.default),t.multipleValues&&(s.multipleValues=Le(t.multipleValues)),t.nearestValue&&(s.nearestValue=Le(t.nearestValue)),t.current&&(s.current=Le(t.current)),s}function Th(t,e){e!=null&&e.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e!=null&&e.crs&&!t.crs&&(t.crs=[...e.crs]),e!=null&&e.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e!=null&&e.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Th(r,t)}var s_="4.1.0",dr={id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:s_,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:i_,options:{wms:{}},parse:async(t,e)=>Mo(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>Mo(t,e?.wms)};function i_(t){return t.startsWith("<?xml")}function yo(t,e){var r,n;let i=((n=((r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e)).FeatureInfoResponse)===null||n===void 0?void 0:n.FIELDS)||[];return{features:(Array.isArray(i)?i:[i]).map(a=>o_(a))}}function o_(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var Eh={...dr,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>yo(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>yo(t,e)};function Io(t,e){var r;return(r=gt.parseTextSync)===null||r===void 0?void 0:r.call(gt,t,e)}var Rh={...dr,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>Io(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Io(t,e)};function xh(t,e){let{type:r="auto"}=t,n=r==="auto"?c_(t.url,e):a_(r,e);if(!n)throw new Error("Not a valid image source type");return n.create(t)}function a_(t,e){for(let r of e)if(r.type===t)return r;return null}function c_(t,e){for(let r of e)if(r.testURL&&r.testURL(t))return r;return null}var Sh="4.1.0";var Fo,l_=(Fo=globalThis.loaders)===null||Fo===void 0?void 0:Fo.parseImageNode,No=typeof Image<"u",Oo=typeof ImageBitmap<"u",h_=Boolean(l_),bo=qr?!0:h_;function Ch(t){switch(t){case"auto":return Oo||No||bo;case"imagebitmap":return Oo;case"image":return No;case"data":return bo;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Bh(){if(Oo)return"imagebitmap";if(No)return"image";if(bo)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function Mh(t){let e=f_(t);if(!e)throw new Error("Not an image");return e}function en(t){switch(Mh(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function f_(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var u_=/^data:image\/svg\+xml/,d_=/\.svg((\?|#).*)?$/;function hs(t){return t&&(u_.test(t)||d_.test(t))}function yh(t,e){if(hs(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(i){throw new Error(i.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Po(t,e)}function Po(t,e){if(hs(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function fs(t,e,r){let n=yh(t,r),s=self.URL||self.webkitURL,i=typeof n!="string"&&s.createObjectURL(n);try{return await p_(i||n,e)}finally{i&&s.revokeObjectURL(i)}}async function p_(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,s)=>{try{r.onload=()=>n(r),r.onerror=i=>{let o=i instanceof Error?i.message:"error";s(new Error(o))}}catch(i){s(i)}})}var g_={},Ih=!0;async function Fh(t,e,r){let n;hs(r)?n=await fs(t,e,r):n=Po(t,r);let s=e&&e.imagebitmap;return await A_(n,s)}async function A_(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if((__(e)||!Ih)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),Ih=!1}return await createImageBitmap(t)}function __(t){for(let e in t||g_)return!1;return!0}function Nh(t){return!R_(t,"ftyp",4)||!(t[8]&96)?null:m_(t)}function m_(t){switch(T_(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function T_(t,e,r){return String.fromCharCode(...t.slice(e,r))}function E_(t){return[...t].map(e=>e.charCodeAt(0))}function R_(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=E_(e);for(let s=0;s<n.length;++s)if(n[s]!==t[s+r])return!1;return!0}var jt=!1,rn=!0;function He(t){let e=nn(t);return S_(e)||M_(e)||C_(e)||B_(e)||x_(e)}function x_(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Nh(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function S_(t){let e=nn(t);return e.byteLength>=24&&e.getUint32(0,jt)===2303741511?{mimeType:"image/png",width:e.getUint32(16,jt),height:e.getUint32(20,jt)}:null}function C_(t){let e=nn(t);return e.byteLength>=10&&e.getUint32(0,jt)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,rn),height:e.getUint16(8,rn)}:null}function B_(t){let e=nn(t);return e.byteLength>=14&&e.getUint16(0,jt)===16973&&e.getUint32(2,rn)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,rn),height:e.getUint32(22,rn)}:null}function M_(t){let e=nn(t);if(!(e.byteLength>=3&&e.getUint16(0,jt)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:s}=y_(),i=2;for(;i+9<e.byteLength;){let o=e.getUint16(i,jt);if(s.has(o))return{mimeType:"image/jpeg",height:e.getUint16(i+5,jt),width:e.getUint16(i+7,jt)};if(!n.has(o))return null;i+=2,i+=e.getUint16(i,jt)}return null}function y_(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function nn(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function Oh(t,e){var r;let{mimeType:n}=He(t)||{},s=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return V(s),await s(t,n)}async function bh(t,e,r){e=e||{};let s=(e.image||{}).type||"auto",{url:i}=r||{},o=I_(s),a;switch(o){case"imagebitmap":a=await Fh(t,e,i);break;case"image":a=await fs(t,e,i);break;case"data":a=await Oh(t,e);break;default:V(!1)}return s==="data"&&(a=en(a)),a}function I_(t){switch(t){case"auto":case"data":return Bh();default:return Ch(t),t}}var F_=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],N_=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],O_={image:{type:"auto",decode:!0}},Ee={id:"image",module:"images",name:"Images",version:Sh,mimeTypes:N_,extensions:F_,parse:bh,tests:[t=>Boolean(He(new DataView(t)))],options:O_};var Do={};function wo(t){if(Do[t]===void 0){let e=qr?P_(t):b_(t);Do[t]=e}return Do[t]}function b_(t){var e,r;let n=["image/png","image/jpeg","image/gif"],s=((e=globalThis.loaders)===null||e===void 0?void 0:e.imageFormatsNode)||n,i=(r=globalThis.loaders)===null||r===void 0?void 0:r.parseImageNode;return Boolean(i)&&s.includes(t)}function P_(t){switch(t){case"image/avif":case"image/webp":return D_(t);default:return!0}}function D_(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Ph={type:"wms",testURL:t=>t.toLowerCase().includes("wms"),create:t=>new vo(t)},vo=class extends Nt{constructor(e){var r;super(e),this.url=void 0,this.data=void 0,this.substituteCRS84=void 0,this.flipCRS=void 0,this.wmsParameters=void 0,this.vendorParameters=void 0,this.capabilities=null,this.url=e.url,this.data=e.url,this.substituteCRS84=(r=e.substituteCRS84)!==null&&r!==void 0?r:!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...e.wmsParameters},this.vendorParameters=e.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...s}=e,i={bbox:r?[...r[0],...r[1]]:n,...s};return await this.getMap(i)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();this._checkResponse(s,i);let o=await dr.parse(i,this.loadOptions);return this.capabilities=o,o}async getMap(e,r){let n=this.getMapURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();this._checkResponse(s,i);try{return await Ee.parse(i,this.loadOptions)}catch{throw this._parseError(i)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();return this._checkResponse(s,i),await Eh.parse(i,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();return this._checkResponse(s,i),new TextDecoder().decode(i)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();return this._checkResponse(s,i),await Rh.parse(i,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),s=await this.fetch(n),i=await s.arrayBuffer();this._checkResponse(s,i);try{return await Ee.parse(i,this.loadOptions)}catch{throw this._parseError(i)}}getCapabilitiesURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",n,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",n,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",n,r)}describeLayerURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",n,r)}getLegendGraphicURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",n,r)}_parseWMSUrl(e){let[r,n]=e.split("?"),s=n.split("&"),i={};for(let o of s){let[a,c]=o.split("=");i[a]=c}return{url:r,parameters:i}}_getWMSUrl(e,r,n){let s=this.url,i=!0,o={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(o))(!a.includes(c)||l)&&(s+=i?"?":"&",i=!1,s+=this._getURLParameter(c,l,r));return encodeURI(s)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":let s=this._flipBoundingBox(r,n);s&&(r=s);break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let n=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),s=e;return n?[s[1],s[0],s[3],s[2]]:s}async _fetchArrayBuffer(e){let r=await this.fetch(e),n=await r.arrayBuffer();return this._checkResponse(r,n),n}_checkResponse(e,r){let n=e.headers["content-type"];if(!e.ok||ve.mimeTypes.includes(n)){var s;let i=Eo(this.loadOptions,{wms:{throwOnError:!0}}),o=(s=ve.parseSync)===null||s===void 0?void 0:s.call(ve,r,i);throw new Error(o)}}_parseError(e){var r;let n=(r=ve.parseSync)===null||r===void 0?void 0:r.call(ve,e,this.loadOptions);return new Error(n)}};var pr=class extends Nt{constructor(e){super(e)}async getMetadata(){throw new Error("ImageSource.getMetadata not implemented")}async getImage(e){let r=this.getGranularParameters(e),n=this.getURLFromTemplate(r),i=await(await this.fetch(n)).arrayBuffer();return await Ee.parse(i)}getGranularParameters(e){let[[r,n],[s,i]]=e.boundingBox;return{...e,east:r,north:n,south:i,west:s}}getURLFromTemplate(e){let r=this.props.url;for(let[n,s]of Object.entries(e))r=r.replace(`\${${n}}`,String(s)),r=r.replace(`{${n}}`,String(s));return r}};pr.type="template";pr.testURL=t=>t.toLowerCase().includes("{");var Uo=class extends pr{constructor(e){super(e),this.data=void 0,this.data=e.url}async getMetadata(){return await this.metadata()}async getImage(e){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(e){throw new Error("not implemented")}metadataURL(e){return`${this.props.url}?f=pjson`}exportImageURL(e){let r=`bbox=${e.bbox[0]},${e.bbox[1]},${e.bbox[2]},${e.bbox[3]}`,n=`size=${e.width},${e.height}`,s={...e,bbox:r,size:n};return delete s.width,delete s.height,this.getUrl("exportImage",s)}getUrl(e,r,n){let s=`${this.props.url}/${e}`,i=!0;for(let[o,a]of Object.entries(r))s+=i?"?":"&",i=!1,Array.isArray(a)?s+=`${o.toUpperCase()}=${a.join(",")}`:s+=`${o.toUpperCase()}=${a?String(a):""}`;return s}async checkResponse(e){if(!e.ok)throw new Error("error")}},Dh={type:"arcgis-image-server",testURL:t=>t.toLowerCase().includes("ImageServer"),create:t=>new Uo(t)};var w_=[Ph,Dh];function Lo(t){return xh(t,w_)}function P(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var v_=1/Math.PI*180,U_=1/180*Math.PI,L_={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...L_}};var j=globalThis.mathgl.config;function Ho(t,{precision:e=j.precision}={}){return t=H_(t),"".concat(parseFloat(t.toPrecision(e)))}function Mt(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Vo(t){return wh(t)}function Xo(t){return yt(t)}function wh(t,e){return Wo(t,r=>r*U_,e)}function yt(t,e){return Wo(t,r=>r*v_,e)}function us(t,e,r){return Wo(t,n=>Math.max(e,Math.min(r,n)))}function Re(t,e,r){return Mt(t)?t.map((n,s)=>Re(n,e[s],r)):r*e+(1-r)*t}function At(t,e,r){let n=j.EPSILON;r&&(j.EPSILON=r);try{if(t===e)return!0;if(Mt(t)&&Mt(e)){if(t.length!==e.length)return!1;for(let s=0;s<t.length;++s)if(!At(t[s],e[s]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=j.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{j.EPSILON=n}}function H_(t){return Math.round(t/j.EPSILON)*j.EPSILON}function V_(t){return t.clone?t.clone():new Array(t.length)}function Wo(t,e,r){if(Mt(t)){let n=t;r=r||V_(n);for(let s=0;s<r.length&&s<n.length;++s){let i=typeof t=="number"?t:t[s];r[s]=e(i,s,r)}return r}return e(t)}function X_(t){function e(){var r=Reflect.construct(t,Array.from(arguments));return Object.setPrototypeOf(r,Object.getPrototypeOf(this)),r}return e.prototype=Object.create(t.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t,e}var xe=class extends X_(Array){clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:Mt(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(j)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+Ho(this[n],e);return"".concat(e.printTypes?this.constructor.name:"","[").concat(r,"]")}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!At(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let s=0;s<this.ELEMENTS;++s){let i=e[s],o=typeof r=="number"?r:r[s];this[s]=i+n*(o-i)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(j.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function W_(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function H(t){if(!Number.isFinite(t))throw new Error("Invalid number ".concat(JSON.stringify(t)));return t}function Se(t,e,r=""){if(j.debug&&!W_(t,e))throw new Error("math.gl: ".concat(r," some fields set to invalid numbers'"));return t}function ct(t,e){if(!t)throw new Error("math.gl assertion ".concat(e))}var Ce=class extends xe{get x(){return this[0]}set x(e){this[0]=H(e)}get y(){return this[1]}set y(e){this[1]=H(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let s=this[n]-e[n];r+=s*s}return H(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return H(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return ct(e>=0&&e<this.ELEMENTS,"index is out of range"),H(this[e])}setComponent(e,r){return ct(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var $=typeof Float32Array<"u"?Float32Array:Array,sn=Math.random;function gr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var dF=Math.PI/180;function z_(){let t=new $(2);return $!=Float32Array&&(t[0]=0,t[1]=0),t}function vh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s,t[1]=r[1]*n+r[3]*s,t}function Uh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s+r[4],t[1]=r[1]*n+r[3]*s+r[5],t}function ds(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[3]*s+r[6],t[1]=r[1]*n+r[4]*s+r[7],t}function ps(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[4]*s+r[12],t[1]=r[1]*n+r[5]*s+r[13],t}var pF=function(){let t=z_();return function(e,r,n,s,i,o){let a,c;for(r||(r=2),n||(n=0),s?c=Math.min(s*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],i(t,t,o),e[a]=t[0],e[a+1]=t[1];return e}}();function gs(t,e,r){let n=e[0],s=e[1],i=r[3]*n+r[7]*s||1;return t[0]=(r[0]*n+r[4]*s)/i,t[1]=(r[1]*n+r[5]*s)/i,t}function As(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[3]*n+r[7]*s+r[11]*i||1;return t[0]=(r[0]*n+r[4]*s+r[8]*i)/o,t[1]=(r[1]*n+r[5]*s+r[9]*i)/o,t[2]=(r[2]*n+r[6]*s+r[10]*i)/o,t}function Lh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s,t[1]=r[1]*n+r[3]*s,t[2]=e[2],t}function Hh(t,e,r){let n=e[0],s=e[1];return t[0]=r[0]*n+r[2]*s,t[1]=r[1]*n+r[3]*s,t[2]=e[2],t[3]=e[3],t}function _s(t,e,r){let n=e[0],s=e[1],i=e[2];return t[0]=r[0]*n+r[3]*s+r[6]*i,t[1]=r[1]*n+r[4]*s+r[7]*i,t[2]=r[2]*n+r[5]*s+r[8]*i,t[3]=e[3],t}var Ve=class extends Ce{constructor(e=0,r=0){super(2),Mt(e)&&arguments.length===1?this.copy(e):(j.debug&&(H(e),H(r)),this[0]=e,this[1]=r)}set(e,r){return this[0]=e,this[1]=r,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return j.debug&&(H(e.x),H(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return ps(this,this,e),this.check()}transformAsVector(e){return gs(this,this,e),this.check()}transformByMatrix3(e){return ds(this,this,e),this.check()}transformByMatrix2x3(e){return Uh(this,this,e),this.check()}transformByMatrix2(e){return vh(this,this,e),this.check()}};var _r={};ht(_r,{add:()=>J_,angle:()=>Jo,bezier:()=>om,ceil:()=>Y_,clone:()=>k_,copy:()=>G_,create:()=>ms,cross:()=>Xe,dist:()=>gm,distance:()=>kh,div:()=>pm,divide:()=>zh,dot:()=>on,equals:()=>fm,exactEquals:()=>hm,floor:()=>q_,forEach:()=>mm,fromValues:()=>Ts,hermite:()=>im,inverse:()=>rm,len:()=>Yo,length:()=>Vh,lerp:()=>nm,max:()=>Z_,min:()=>j_,mul:()=>dm,multiply:()=>Wh,negate:()=>em,normalize:()=>zo,random:()=>am,rotateX:()=>ko,rotateY:()=>Go,rotateZ:()=>Ko,round:()=>Q_,scale:()=>$_,scaleAndAdd:()=>tm,set:()=>K_,slerp:()=>sm,sqrDist:()=>Am,sqrLen:()=>_m,squaredDistance:()=>Gh,squaredLength:()=>Kh,str:()=>lm,sub:()=>um,subtract:()=>Xh,transformMat3:()=>an,transformMat4:()=>We,transformQuat:()=>cn,zero:()=>cm});function ms(){let t=new $(3);return $!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function k_(t){let e=new $(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Vh(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function Ts(t,e,r){let n=new $(3);return n[0]=t,n[1]=e,n[2]=r,n}function G_(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function K_(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function J_(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function Xh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function Wh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function zh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function Y_(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function q_(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function j_(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function Z_(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function Q_(t,e){return t[0]=gr(e[0]),t[1]=gr(e[1]),t[2]=gr(e[2]),t}function $_(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function tm(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function kh(t,e){let r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2];return Math.sqrt(r*r+n*n+s*s)}function Gh(t,e){let r=e[0]-t[0],n=e[1]-t[1],s=e[2]-t[2];return r*r+n*n+s*s}function Kh(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function em(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function rm(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function zo(t,e){let r=e[0],n=e[1],s=e[2],i=r*r+n*n+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t[2]=e[2]*i,t}function on(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Xe(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[0],a=r[1],c=r[2];return t[0]=s*c-i*a,t[1]=i*o-n*c,t[2]=n*a-s*o,t}function nm(t,e,r,n){let s=e[0],i=e[1],o=e[2];return t[0]=s+n*(r[0]-s),t[1]=i+n*(r[1]-i),t[2]=o+n*(r[2]-o),t}function sm(t,e,r,n){let s=Math.acos(Math.min(Math.max(on(e,r),-1),1)),i=Math.sin(s),o=Math.sin((1-n)*s)/i,a=Math.sin(n*s)/i;return t[0]=o*e[0]+a*r[0],t[1]=o*e[1]+a*r[1],t[2]=o*e[2]+a*r[2],t}function im(t,e,r,n,s,i){let o=i*i,a=o*(2*i-3)+1,c=o*(i-2)+i,l=o*(i-1),h=o*(3-2*i);return t[0]=e[0]*a+r[0]*c+n[0]*l+s[0]*h,t[1]=e[1]*a+r[1]*c+n[1]*l+s[1]*h,t[2]=e[2]*a+r[2]*c+n[2]*l+s[2]*h,t}function om(t,e,r,n,s,i){let o=1-i,a=o*o,c=i*i,l=a*o,h=3*i*a,f=3*c*o,u=c*i;return t[0]=e[0]*l+r[0]*h+n[0]*f+s[0]*u,t[1]=e[1]*l+r[1]*h+n[1]*f+s[1]*u,t[2]=e[2]*l+r[2]*h+n[2]*f+s[2]*u,t}function am(t,e){e=e===void 0?1:e;let r=sn()*2*Math.PI,n=sn()*2-1,s=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*s,t[1]=Math.sin(r)*s,t[2]=n*e,t}function We(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[3]*n+r[7]*s+r[11]*i+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*s+r[8]*i+r[12])/o,t[1]=(r[1]*n+r[5]*s+r[9]*i+r[13])/o,t[2]=(r[2]*n+r[6]*s+r[10]*i+r[14])/o,t}function an(t,e,r){let n=e[0],s=e[1],i=e[2];return t[0]=n*r[0]+s*r[3]+i*r[6],t[1]=n*r[1]+s*r[4]+i*r[7],t[2]=n*r[2]+s*r[5]+i*r[8],t}function cn(t,e,r){let n=r[0],s=r[1],i=r[2],o=r[3],a=e[0],c=e[1],l=e[2],h=s*l-i*c,f=i*a-n*l,u=n*c-s*a,d=s*u-i*f,p=i*h-n*u,_=n*f-s*h,A=o*2;return h*=A,f*=A,u*=A,d*=2,p*=2,_*=2,t[0]=a+h+d,t[1]=c+f+p,t[2]=l+u+_,t}function ko(t,e,r,n){let s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[0],i[1]=s[1]*Math.cos(n)-s[2]*Math.sin(n),i[2]=s[1]*Math.sin(n)+s[2]*Math.cos(n),t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t}function Go(t,e,r,n){let s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[2]*Math.sin(n)+s[0]*Math.cos(n),i[1]=s[1],i[2]=s[2]*Math.cos(n)-s[0]*Math.sin(n),t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t}function Ko(t,e,r,n){let s=[],i=[];return s[0]=e[0]-r[0],s[1]=e[1]-r[1],s[2]=e[2]-r[2],i[0]=s[0]*Math.cos(n)-s[1]*Math.sin(n),i[1]=s[0]*Math.sin(n)+s[1]*Math.cos(n),i[2]=s[2],t[0]=i[0]+r[0],t[1]=i[1]+r[1],t[2]=i[2]+r[2],t}function Jo(t,e){let r=t[0],n=t[1],s=t[2],i=e[0],o=e[1],a=e[2],c=Math.sqrt((r*r+n*n+s*s)*(i*i+o*o+a*a)),l=c&&on(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function cm(t){return t[0]=0,t[1]=0,t[2]=0,t}function lm(t){return"vec3(".concat(t[0],", ").concat(t[1],", ").concat(t[2],")")}function hm(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function fm(t,e){let r=t[0],n=t[1],s=t[2],i=e[0],o=e[1],a=e[2];return Math.abs(r-i)<=1e-6*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-o)<=1e-6*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(s-a)<=1e-6*Math.max(1,Math.abs(s),Math.abs(a))}var um=Xh,dm=Wh,pm=zh,gm=kh,Am=Gh,Yo=Vh,_m=Kh,mm=function(){let t=ms();return function(e,r,n,s,i,o){let a,c;for(r||(r=3),n||(n=0),s?c=Math.min(s*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],i(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var qo=[0,0,0],Es,m=class extends Ce{static get ZERO(){return Es||(Es=new m(0,0,0),Object.freeze(Es)),Es}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&Mt(e)?this.copy(e):(j.debug&&(H(e),H(r),H(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return j.debug&&(H(e.x),H(e.y),H(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=H(e)}angle(e){return Jo(this,e)}cross(e){return Xe(this,this,e),this.check()}rotateX({radians:e,origin:r=qo}){return ko(this,this,r,e),this.check()}rotateY({radians:e,origin:r=qo}){return Go(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=qo}){return Ko(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return We(this,this,e),this.check()}transformAsVector(e){return As(this,this,e),this.check()}transformByMatrix3(e){return an(this,this,e),this.check()}transformByMatrix2(e){return Lh(this,this,e),this.check()}transformByQuaternion(e){return cn(this,this,e),this.check()}};var Rs,mr=class extends Ce{static get ZERO(){return Rs||(Rs=new mr(0,0,0,0),Object.freeze(Rs)),Rs}constructor(e=0,r=0,n=0,s=0){super(-0,-0,-0,-0),Mt(e)&&arguments.length===1?this.copy(e):(j.debug&&(H(e),H(r),H(n),H(s)),this[0]=e,this[1]=r,this[2]=n,this[3]=s)}set(e,r,n,s){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return j.debug&&(H(e.x),H(e.y),H(e.z),H(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=H(e)}get w(){return this[3]}set w(e){this[3]=H(e)}transform(e){return We(this,this,e),this.check()}transformByMatrix3(e){return _s(this,this,e),this.check()}transformByMatrix2(e){return Hh(this,this,e),this.check()}transformByQuaternion(e){return cn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var Tr=class extends xe{toString(){let e="[";if(j.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=" ".concat(this[n*this.RANK+r])}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=" ".concat(this[r])}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=H(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let s=0;s<this.RANK;++s)r[s]=this[n+s];return r}setColumn(e,r){let n=e*this.RANK;for(let s=0;s<this.RANK;++s)this[n+s]=r[s];return this}};function Jh(){let t=new $(9);return $!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function Yh(t,e){if(t===e){let r=e[1],n=e[2],s=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=s}else 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];return t}function qh(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=h*o-a*l,u=-h*i+a*c,d=l*i-o*c,p=r*f+n*u+s*d;return p?(p=1/p,t[0]=f*p,t[1]=(-h*n+s*l)*p,t[2]=(a*n-s*o)*p,t[3]=u*p,t[4]=(h*r-s*c)*p,t[5]=(-a*r+s*i)*p,t[6]=d*p,t[7]=(-l*r+n*c)*p,t[8]=(o*r-n*i)*p,t):null}function jh(t){let e=t[0],r=t[1],n=t[2],s=t[3],i=t[4],o=t[5],a=t[6],c=t[7],l=t[8];return e*(l*i-o*c)+r*(-l*s+o*a)+n*(c*s-i*a)}function jo(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=r[0],d=r[1],p=r[2],_=r[3],A=r[4],T=r[5],x=r[6],R=r[7],S=r[8];return t[0]=u*n+d*o+p*l,t[1]=u*s+d*a+p*h,t[2]=u*i+d*c+p*f,t[3]=_*n+A*o+T*l,t[4]=_*s+A*a+T*h,t[5]=_*i+A*c+T*f,t[6]=x*n+R*o+S*l,t[7]=x*s+R*a+S*h,t[8]=x*i+R*c+S*f,t}function Zh(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=r[0],d=r[1];return t[0]=n,t[1]=s,t[2]=i,t[3]=o,t[4]=a,t[5]=c,t[6]=u*n+d*o+l,t[7]=u*s+d*a+h,t[8]=u*i+d*c+f,t}function Qh(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=Math.sin(r),d=Math.cos(r);return t[0]=d*n+u*o,t[1]=d*s+u*a,t[2]=d*i+u*c,t[3]=d*o-u*n,t[4]=d*a-u*s,t[5]=d*c-u*i,t[6]=l,t[7]=h,t[8]=f,t}function Zo(t,e,r){let n=r[0],s=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=s*e[3],t[4]=s*e[4],t[5]=s*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function $h(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r+r,a=n+n,c=s+s,l=r*o,h=n*o,f=n*a,u=s*o,d=s*a,p=s*c,_=i*o,A=i*a,T=i*c;return t[0]=1-f-p,t[3]=h-T,t[6]=u+A,t[1]=h+T,t[4]=1-l-p,t[7]=d-_,t[2]=u-A,t[5]=d+_,t[8]=1-l-f,t}var Qo;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL1ROW0=3]="COL1ROW0",t[t.COL1ROW1=4]="COL1ROW1",t[t.COL1ROW2=5]="COL1ROW2",t[t.COL2ROW0=6]="COL2ROW0",t[t.COL2ROW1=7]="COL2ROW1",t[t.COL2ROW2=8]="COL2ROW2"})(Qo||(Qo={}));var Em=Object.freeze([1,0,0,0,1,0,0,0,1]),z=class extends Tr{static get IDENTITY(){return xm()}static get ZERO(){return Rm()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return Qo}constructor(e,...r){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):r.length>0?this.copy([e,...r]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy(Em)}fromObject(e){return this.check()}fromQuaternion(e){return $h(this,e),this.check()}set(e,r,n,s,i,o,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this[4]=i,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,s,i,o,a,c,l){return this[0]=e,this[1]=s,this[2]=a,this[3]=r,this[4]=i,this[5]=c,this[6]=n,this[7]=o,this[8]=l,this.check()}determinant(){return jh(this)}transpose(){return Yh(this,this),this.check()}invert(){return qh(this,this),this.check()}multiplyLeft(e){return jo(this,e,this),this.check()}multiplyRight(e){return jo(this,this,e),this.check()}rotate(e){return Qh(this,this,e),this.check()}scale(e){return Array.isArray(e)?Zo(this,this,e):Zo(this,this,[e,e]),this.check()}translate(e){return Zh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=ds(r||[-0,-0],e,this);break;case 3:n=an(r||[-0,-0,-0],e,this);break;case 4:n=_s(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Se(n,e.length),n}transformVector(e,r){return this.transform(e,r)}transformVector2(e,r){return this.transform(e,r)}transformVector3(e,r){return this.transform(e,r)}},xs,Ss=null;function Rm(){return xs||(xs=new z([0,0,0,0,0,0,0,0,0]),Object.freeze(xs)),xs}function xm(){return Ss||(Ss=new z,Object.freeze(Ss)),Ss}var Cs={};ht(Cs,{add:()=>Jm,adjoint:()=>Im,clone:()=>Cm,copy:()=>Bm,create:()=>Sm,decompose:()=>Lm,determinant:()=>ea,equals:()=>Zm,exactEquals:()=>jm,frob:()=>Km,fromQuat:()=>ca,fromQuat2:()=>wm,fromRotation:()=>Om,fromRotationTranslation:()=>ef,fromRotationTranslationScale:()=>Hm,fromRotationTranslationScaleOrigin:()=>Vm,fromScaling:()=>Nm,fromTranslation:()=>Fm,fromValues:()=>Mm,fromXRotation:()=>bm,fromYRotation:()=>Pm,fromZRotation:()=>Dm,frustum:()=>la,getRotation:()=>Um,getScaling:()=>rf,getTranslation:()=>vm,identity:()=>tf,invert:()=>ta,lookAt:()=>ua,mul:()=>Qm,multiply:()=>ln,multiplyScalar:()=>Ym,multiplyScalarAndAdd:()=>qm,ortho:()=>fa,orthoNO:()=>sf,orthoZO:()=>zm,perspective:()=>ha,perspectiveFromFieldOfView:()=>Wm,perspectiveNO:()=>nf,perspectiveZO:()=>Xm,rotate:()=>sa,rotateX:()=>ia,rotateY:()=>oa,rotateZ:()=>aa,scale:()=>na,set:()=>ym,str:()=>Gm,sub:()=>$m,subtract:()=>of,targetTo:()=>km,translate:()=>ra,transpose:()=>$o});function Sm(){let t=new $(16);return $!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function Cm(t){let e=new $(16);return 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],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Bm(t,e){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}function Mm(t,e,r,n,s,i,o,a,c,l,h,f,u,d,p,_){let A=new $(16);return A[0]=t,A[1]=e,A[2]=r,A[3]=n,A[4]=s,A[5]=i,A[6]=o,A[7]=a,A[8]=c,A[9]=l,A[10]=h,A[11]=f,A[12]=u,A[13]=d,A[14]=p,A[15]=_,A}function ym(t,e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A){return t[0]=e,t[1]=r,t[2]=n,t[3]=s,t[4]=i,t[5]=o,t[6]=a,t[7]=c,t[8]=l,t[9]=h,t[10]=f,t[11]=u,t[12]=d,t[13]=p,t[14]=_,t[15]=A,t}function tf(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function $o(t,e){if(t===e){let r=e[1],n=e[2],s=e[3],i=e[6],o=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=i,t[11]=e[14],t[12]=s,t[13]=o,t[14]=a}else 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];return t}function ta(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],u=e[10],d=e[11],p=e[12],_=e[13],A=e[14],T=e[15],x=r*a-n*o,R=r*c-s*o,S=r*l-i*o,B=n*c-s*a,M=n*l-i*a,F=s*l-i*c,C=h*_-f*p,E=h*A-u*p,g=h*T-d*p,y=f*A-u*_,O=f*T-d*_,b=u*T-d*A,N=x*b-R*O+S*y+B*g-M*E+F*C;return N?(N=1/N,t[0]=(a*b-c*O+l*y)*N,t[1]=(s*O-n*b-i*y)*N,t[2]=(_*F-A*M+T*B)*N,t[3]=(u*M-f*F-d*B)*N,t[4]=(c*g-o*b-l*E)*N,t[5]=(r*b-s*g+i*E)*N,t[6]=(A*S-p*F-T*R)*N,t[7]=(h*F-u*S+d*R)*N,t[8]=(o*O-a*g+l*C)*N,t[9]=(n*g-r*O-i*C)*N,t[10]=(p*M-_*S+T*x)*N,t[11]=(f*S-h*M-d*x)*N,t[12]=(a*E-o*y-c*C)*N,t[13]=(r*y-n*E+s*C)*N,t[14]=(_*R-p*B-A*x)*N,t[15]=(h*B-f*R+u*x)*N,t):null}function Im(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],u=e[10],d=e[11],p=e[12],_=e[13],A=e[14],T=e[15],x=r*a-n*o,R=r*c-s*o,S=r*l-i*o,B=n*c-s*a,M=n*l-i*a,F=s*l-i*c,C=h*_-f*p,E=h*A-u*p,g=h*T-d*p,y=f*A-u*_,O=f*T-d*_,b=u*T-d*A;return t[0]=a*b-c*O+l*y,t[1]=s*O-n*b-i*y,t[2]=_*F-A*M+T*B,t[3]=u*M-f*F-d*B,t[4]=c*g-o*b-l*E,t[5]=r*b-s*g+i*E,t[6]=A*S-p*F-T*R,t[7]=h*F-u*S+d*R,t[8]=o*O-a*g+l*C,t[9]=n*g-r*O-i*C,t[10]=p*M-_*S+T*x,t[11]=f*S-h*M-d*x,t[12]=a*E-o*y-c*C,t[13]=r*y-n*E+s*C,t[14]=_*R-p*B-A*x,t[15]=h*B-f*R+u*x,t}function ea(t){let e=t[0],r=t[1],n=t[2],s=t[3],i=t[4],o=t[5],a=t[6],c=t[7],l=t[8],h=t[9],f=t[10],u=t[11],d=t[12],p=t[13],_=t[14],A=t[15],T=e*o-r*i,x=e*a-n*i,R=r*a-n*o,S=l*p-h*d,B=l*_-f*d,M=h*_-f*p,F=e*M-r*B+n*S,C=i*M-o*B+a*S,E=l*R-h*x+f*T,g=d*R-p*x+_*T;return c*F-s*C+A*E-u*g}function ln(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],u=e[9],d=e[10],p=e[11],_=e[12],A=e[13],T=e[14],x=e[15],R=r[0],S=r[1],B=r[2],M=r[3];return t[0]=R*n+S*a+B*f+M*_,t[1]=R*s+S*c+B*u+M*A,t[2]=R*i+S*l+B*d+M*T,t[3]=R*o+S*h+B*p+M*x,R=r[4],S=r[5],B=r[6],M=r[7],t[4]=R*n+S*a+B*f+M*_,t[5]=R*s+S*c+B*u+M*A,t[6]=R*i+S*l+B*d+M*T,t[7]=R*o+S*h+B*p+M*x,R=r[8],S=r[9],B=r[10],M=r[11],t[8]=R*n+S*a+B*f+M*_,t[9]=R*s+S*c+B*u+M*A,t[10]=R*i+S*l+B*d+M*T,t[11]=R*o+S*h+B*p+M*x,R=r[12],S=r[13],B=r[14],M=r[15],t[12]=R*n+S*a+B*f+M*_,t[13]=R*s+S*c+B*u+M*A,t[14]=R*i+S*l+B*d+M*T,t[15]=R*o+S*h+B*p+M*x,t}function ra(t,e,r){let n=r[0],s=r[1],i=r[2],o,a,c,l,h,f,u,d,p,_,A,T;return e===t?(t[12]=e[0]*n+e[4]*s+e[8]*i+e[12],t[13]=e[1]*n+e[5]*s+e[9]*i+e[13],t[14]=e[2]*n+e[6]*s+e[10]*i+e[14],t[15]=e[3]*n+e[7]*s+e[11]*i+e[15]):(o=e[0],a=e[1],c=e[2],l=e[3],h=e[4],f=e[5],u=e[6],d=e[7],p=e[8],_=e[9],A=e[10],T=e[11],t[0]=o,t[1]=a,t[2]=c,t[3]=l,t[4]=h,t[5]=f,t[6]=u,t[7]=d,t[8]=p,t[9]=_,t[10]=A,t[11]=T,t[12]=o*n+h*s+p*i+e[12],t[13]=a*n+f*s+_*i+e[13],t[14]=c*n+u*s+A*i+e[14],t[15]=l*n+d*s+T*i+e[15]),t}function na(t,e,r){let n=r[0],s=r[1],i=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*s,t[5]=e[5]*s,t[6]=e[6]*s,t[7]=e[7]*s,t[8]=e[8]*i,t[9]=e[9]*i,t[10]=e[10]*i,t[11]=e[11]*i,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function sa(t,e,r,n){let s=n[0],i=n[1],o=n[2],a=Math.sqrt(s*s+i*i+o*o),c,l,h,f,u,d,p,_,A,T,x,R,S,B,M,F,C,E,g,y,O,b,N,U;return a<1e-6?null:(a=1/a,s*=a,i*=a,o*=a,l=Math.sin(r),c=Math.cos(r),h=1-c,f=e[0],u=e[1],d=e[2],p=e[3],_=e[4],A=e[5],T=e[6],x=e[7],R=e[8],S=e[9],B=e[10],M=e[11],F=s*s*h+c,C=i*s*h+o*l,E=o*s*h-i*l,g=s*i*h-o*l,y=i*i*h+c,O=o*i*h+s*l,b=s*o*h+i*l,N=i*o*h-s*l,U=o*o*h+c,t[0]=f*F+_*C+R*E,t[1]=u*F+A*C+S*E,t[2]=d*F+T*C+B*E,t[3]=p*F+x*C+M*E,t[4]=f*g+_*y+R*O,t[5]=u*g+A*y+S*O,t[6]=d*g+T*y+B*O,t[7]=p*g+x*y+M*O,t[8]=f*b+_*N+R*U,t[9]=u*b+A*N+S*U,t[10]=d*b+T*N+B*U,t[11]=p*b+x*N+M*U,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function ia(t,e,r){let n=Math.sin(r),s=Math.cos(r),i=e[4],o=e[5],a=e[6],c=e[7],l=e[8],h=e[9],f=e[10],u=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=i*s+l*n,t[5]=o*s+h*n,t[6]=a*s+f*n,t[7]=c*s+u*n,t[8]=l*s-i*n,t[9]=h*s-o*n,t[10]=f*s-a*n,t[11]=u*s-c*n,t}function oa(t,e,r){let n=Math.sin(r),s=Math.cos(r),i=e[0],o=e[1],a=e[2],c=e[3],l=e[8],h=e[9],f=e[10],u=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=i*s-l*n,t[1]=o*s-h*n,t[2]=a*s-f*n,t[3]=c*s-u*n,t[8]=i*n+l*s,t[9]=o*n+h*s,t[10]=a*n+f*s,t[11]=c*n+u*s,t}function aa(t,e,r){let n=Math.sin(r),s=Math.cos(r),i=e[0],o=e[1],a=e[2],c=e[3],l=e[4],h=e[5],f=e[6],u=e[7];return e!==t&&(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[0]=i*s+l*n,t[1]=o*s+h*n,t[2]=a*s+f*n,t[3]=c*s+u*n,t[4]=l*s-i*n,t[5]=h*s-o*n,t[6]=f*s-a*n,t[7]=u*s-c*n,t}function Fm(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function Nm(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Om(t,e,r){let n=r[0],s=r[1],i=r[2],o=Math.sqrt(n*n+s*s+i*i),a,c,l;return o<1e-6?null:(o=1/o,n*=o,s*=o,i*=o,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=s*n*l+i*c,t[2]=i*n*l-s*c,t[3]=0,t[4]=n*s*l-i*c,t[5]=s*s*l+a,t[6]=i*s*l+n*c,t[7]=0,t[8]=n*i*l+s*c,t[9]=s*i*l-n*c,t[10]=i*i*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function bm(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Pm(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Dm(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ef(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=n+n,c=s+s,l=i+i,h=n*a,f=n*c,u=n*l,d=s*c,p=s*l,_=i*l,A=o*a,T=o*c,x=o*l;return t[0]=1-(d+_),t[1]=f+x,t[2]=u-T,t[3]=0,t[4]=f-x,t[5]=1-(h+_),t[6]=p+A,t[7]=0,t[8]=u+T,t[9]=p-A,t[10]=1-(h+d),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function wm(t,e){let r=new $(3),n=-e[0],s=-e[1],i=-e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=n*n+s*s+i*i+o*o;return f>0?(r[0]=(a*o+h*n+c*i-l*s)*2/f,r[1]=(c*o+h*s+l*n-a*i)*2/f,r[2]=(l*o+h*i+a*s-c*n)*2/f):(r[0]=(a*o+h*n+c*i-l*s)*2,r[1]=(c*o+h*s+l*n-a*i)*2,r[2]=(l*o+h*i+a*s-c*n)*2),ef(t,e,r),t}function vm(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function rf(t,e){let r=e[0],n=e[1],s=e[2],i=e[4],o=e[5],a=e[6],c=e[8],l=e[9],h=e[10];return t[0]=Math.sqrt(r*r+n*n+s*s),t[1]=Math.sqrt(i*i+o*o+a*a),t[2]=Math.sqrt(c*c+l*l+h*h),t}function Um(t,e){let r=new $(3);rf(r,e);let n=1/r[0],s=1/r[1],i=1/r[2],o=e[0]*n,a=e[1]*s,c=e[2]*i,l=e[4]*n,h=e[5]*s,f=e[6]*i,u=e[8]*n,d=e[9]*s,p=e[10]*i,_=o+h+p,A=0;return _>0?(A=Math.sqrt(_+1)*2,t[3]=.25*A,t[0]=(f-d)/A,t[1]=(u-c)/A,t[2]=(a-l)/A):o>h&&o>p?(A=Math.sqrt(1+o-h-p)*2,t[3]=(f-d)/A,t[0]=.25*A,t[1]=(a+l)/A,t[2]=(u+c)/A):h>p?(A=Math.sqrt(1+h-o-p)*2,t[3]=(u-c)/A,t[0]=(a+l)/A,t[1]=.25*A,t[2]=(f+d)/A):(A=Math.sqrt(1+p-o-h)*2,t[3]=(a-l)/A,t[0]=(u+c)/A,t[1]=(f+d)/A,t[2]=.25*A),t}function Lm(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let s=n[0],i=n[1],o=n[2],a=n[4],c=n[5],l=n[6],h=n[8],f=n[9],u=n[10];r[0]=Math.sqrt(s*s+i*i+o*o),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(h*h+f*f+u*u);let d=1/r[0],p=1/r[1],_=1/r[2],A=s*d,T=i*p,x=o*_,R=a*d,S=c*p,B=l*_,M=h*d,F=f*p,C=u*_,E=A+S+C,g=0;return E>0?(g=Math.sqrt(E+1)*2,t[3]=.25*g,t[0]=(B-F)/g,t[1]=(M-x)/g,t[2]=(T-R)/g):A>S&&A>C?(g=Math.sqrt(1+A-S-C)*2,t[3]=(B-F)/g,t[0]=.25*g,t[1]=(T+R)/g,t[2]=(M+x)/g):S>C?(g=Math.sqrt(1+S-A-C)*2,t[3]=(M-x)/g,t[0]=(T+R)/g,t[1]=.25*g,t[2]=(B+F)/g):(g=Math.sqrt(1+C-A-S)*2,t[3]=(T-R)/g,t[0]=(M+x)/g,t[1]=(B+F)/g,t[2]=.25*g),t}function Hm(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=e[3],c=s+s,l=i+i,h=o+o,f=s*c,u=s*l,d=s*h,p=i*l,_=i*h,A=o*h,T=a*c,x=a*l,R=a*h,S=n[0],B=n[1],M=n[2];return t[0]=(1-(p+A))*S,t[1]=(u+R)*S,t[2]=(d-x)*S,t[3]=0,t[4]=(u-R)*B,t[5]=(1-(f+A))*B,t[6]=(_+T)*B,t[7]=0,t[8]=(d+x)*M,t[9]=(_-T)*M,t[10]=(1-(f+p))*M,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function Vm(t,e,r,n,s){let i=e[0],o=e[1],a=e[2],c=e[3],l=i+i,h=o+o,f=a+a,u=i*l,d=i*h,p=i*f,_=o*h,A=o*f,T=a*f,x=c*l,R=c*h,S=c*f,B=n[0],M=n[1],F=n[2],C=s[0],E=s[1],g=s[2],y=(1-(_+T))*B,O=(d+S)*B,b=(p-R)*B,N=(d-S)*M,U=(1-(u+T))*M,Y=(A+x)*M,W=(p+R)*F,Q=(A-x)*F,J=(1-(u+_))*F;return t[0]=y,t[1]=O,t[2]=b,t[3]=0,t[4]=N,t[5]=U,t[6]=Y,t[7]=0,t[8]=W,t[9]=Q,t[10]=J,t[11]=0,t[12]=r[0]+C-(y*C+N*E+W*g),t[13]=r[1]+E-(O*C+U*E+Q*g),t[14]=r[2]+g-(b*C+Y*E+J*g),t[15]=1,t}function ca(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r+r,a=n+n,c=s+s,l=r*o,h=n*o,f=n*a,u=s*o,d=s*a,p=s*c,_=i*o,A=i*a,T=i*c;return t[0]=1-f-p,t[1]=h+T,t[2]=u-A,t[3]=0,t[4]=h-T,t[5]=1-l-p,t[6]=d+_,t[7]=0,t[8]=u+A,t[9]=d-_,t[10]=1-l-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function la(t,e,r,n,s,i,o){let a=1/(r-e),c=1/(s-n),l=1/(i-o);return t[0]=i*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(s+n)*c,t[10]=(o+i)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*i*2*l,t[15]=0,t}function nf(t,e,r,n,s){let i=1/Math.tan(e/2);if(t[0]=i/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,s!=null&&s!==1/0){let o=1/(n-s);t[10]=(s+n)*o,t[14]=2*s*n*o}else t[10]=-1,t[14]=-2*n;return t}var ha=nf;function Xm(t,e,r,n,s){let i=1/Math.tan(e/2);if(t[0]=i/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,s!=null&&s!==1/0){let o=1/(n-s);t[10]=s*o,t[14]=s*n*o}else t[10]=-1,t[14]=-n;return t}function Wm(t,e,r,n){let s=Math.tan(e.upDegrees*Math.PI/180),i=Math.tan(e.downDegrees*Math.PI/180),o=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(o+a),l=2/(s+i);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((o-a)*c*.5),t[9]=(s-i)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function sf(t,e,r,n,s,i,o){let a=1/(e-r),c=1/(n-s),l=1/(i-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(s+n)*c,t[14]=(o+i)*l,t[15]=1,t}var fa=sf;function zm(t,e,r,n,s,i,o){let a=1/(e-r),c=1/(n-s),l=1/(i-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(s+n)*c,t[14]=i*l,t[15]=1,t}function ua(t,e,r,n){let s,i,o,a,c,l,h,f,u,d,p=e[0],_=e[1],A=e[2],T=n[0],x=n[1],R=n[2],S=r[0],B=r[1],M=r[2];return Math.abs(p-S)<1e-6&&Math.abs(_-B)<1e-6&&Math.abs(A-M)<1e-6?tf(t):(f=p-S,u=_-B,d=A-M,s=1/Math.sqrt(f*f+u*u+d*d),f*=s,u*=s,d*=s,i=x*d-R*u,o=R*f-T*d,a=T*u-x*f,s=Math.sqrt(i*i+o*o+a*a),s?(s=1/s,i*=s,o*=s,a*=s):(i=0,o=0,a=0),c=u*a-d*o,l=d*i-f*a,h=f*o-u*i,s=Math.sqrt(c*c+l*l+h*h),s?(s=1/s,c*=s,l*=s,h*=s):(c=0,l=0,h=0),t[0]=i,t[1]=c,t[2]=f,t[3]=0,t[4]=o,t[5]=l,t[6]=u,t[7]=0,t[8]=a,t[9]=h,t[10]=d,t[11]=0,t[12]=-(i*p+o*_+a*A),t[13]=-(c*p+l*_+h*A),t[14]=-(f*p+u*_+d*A),t[15]=1,t)}function km(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=n[0],c=n[1],l=n[2],h=s-r[0],f=i-r[1],u=o-r[2],d=h*h+f*f+u*u;d>0&&(d=1/Math.sqrt(d),h*=d,f*=d,u*=d);let p=c*u-l*f,_=l*h-a*u,A=a*f-c*h;return d=p*p+_*_+A*A,d>0&&(d=1/Math.sqrt(d),p*=d,_*=d,A*=d),t[0]=p,t[1]=_,t[2]=A,t[3]=0,t[4]=f*A-u*_,t[5]=u*p-h*A,t[6]=h*_-f*p,t[7]=0,t[8]=h,t[9]=f,t[10]=u,t[11]=0,t[12]=s,t[13]=i,t[14]=o,t[15]=1,t}function Gm(t){return"mat4(".concat(t[0],", ").concat(t[1],", ").concat(t[2],", ").concat(t[3],", ").concat(t[4],", ").concat(t[5],", ").concat(t[6],", ").concat(t[7],", ").concat(t[8],", ").concat(t[9],", ").concat(t[10],", ").concat(t[11],", ").concat(t[12],", ").concat(t[13],", ").concat(t[14],", ").concat(t[15],")")}function Km(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function Jm(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function of(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function Ym(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function qm(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function jm(t,e){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]}function Zm(t,e){let r=t[0],n=t[1],s=t[2],i=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=t[9],u=t[10],d=t[11],p=t[12],_=t[13],A=t[14],T=t[15],x=e[0],R=e[1],S=e[2],B=e[3],M=e[4],F=e[5],C=e[6],E=e[7],g=e[8],y=e[9],O=e[10],b=e[11],N=e[12],U=e[13],Y=e[14],W=e[15];return Math.abs(r-x)<=1e-6*Math.max(1,Math.abs(r),Math.abs(x))&&Math.abs(n-R)<=1e-6*Math.max(1,Math.abs(n),Math.abs(R))&&Math.abs(s-S)<=1e-6*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(i-B)<=1e-6*Math.max(1,Math.abs(i),Math.abs(B))&&Math.abs(o-M)<=1e-6*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(a-F)<=1e-6*Math.max(1,Math.abs(a),Math.abs(F))&&Math.abs(c-C)<=1e-6*Math.max(1,Math.abs(c),Math.abs(C))&&Math.abs(l-E)<=1e-6*Math.max(1,Math.abs(l),Math.abs(E))&&Math.abs(h-g)<=1e-6*Math.max(1,Math.abs(h),Math.abs(g))&&Math.abs(f-y)<=1e-6*Math.max(1,Math.abs(f),Math.abs(y))&&Math.abs(u-O)<=1e-6*Math.max(1,Math.abs(u),Math.abs(O))&&Math.abs(d-b)<=1e-6*Math.max(1,Math.abs(d),Math.abs(b))&&Math.abs(p-N)<=1e-6*Math.max(1,Math.abs(p),Math.abs(N))&&Math.abs(_-U)<=1e-6*Math.max(1,Math.abs(_),Math.abs(U))&&Math.abs(A-Y)<=1e-6*Math.max(1,Math.abs(A),Math.abs(Y))&&Math.abs(T-W)<=1e-6*Math.max(1,Math.abs(T),Math.abs(W))}var Qm=ln,$m=of;function tT(){let t=new $(4);return $!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function af(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function cf(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function lf(t){let e=t[0],r=t[1],n=t[2],s=t[3];return Math.sqrt(e*e+r*r+n*n+s*s)}function hf(t){let e=t[0],r=t[1],n=t[2],s=t[3];return e*e+r*r+n*n+s*s}function ff(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r*r+n*n+s*s+i*i;return o>0&&(o=1/Math.sqrt(o)),t[0]=r*o,t[1]=n*o,t[2]=s*o,t[3]=i*o,t}function uf(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function df(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=e[3];return t[0]=s+n*(r[0]-s),t[1]=i+n*(r[1]-i),t[2]=o+n*(r[2]-o),t[3]=a+n*(r[3]-a),t}function pf(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3];return t[0]=r[0]*n+r[4]*s+r[8]*i+r[12]*o,t[1]=r[1]*n+r[5]*s+r[9]*i+r[13]*o,t[2]=r[2]*n+r[6]*s+r[10]*i+r[14]*o,t[3]=r[3]*n+r[7]*s+r[11]*i+r[15]*o,t}function gf(t,e,r){let n=e[0],s=e[1],i=e[2],o=r[0],a=r[1],c=r[2],l=r[3],h=l*n+a*i-c*s,f=l*s+c*n-o*i,u=l*i+o*s-a*n,d=-o*n-a*s-c*i;return t[0]=h*l+d*-o+f*-c-u*-a,t[1]=f*l+d*-a+u*-o-h*-c,t[2]=u*l+d*-c+h*-a-f*-o,t[3]=e[3],t}var KF=function(){let t=tT();return function(e,r,n,s,i,o){let a,c;for(r||(r=4),n||(n=0),s?c=Math.min(s*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],i(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var ga;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(ga||(ga={}));var rT=45*Math.PI/180,nT=1,da=.1,pa=500,sT=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),D=class extends Tr{static get IDENTITY(){return oT()}static get ZERO(){return iT()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return ga}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this[4]=i,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this[9]=h,this[10]=f,this[11]=u,this[12]=d,this[13]=p,this[14]=_,this[15]=A,this.check()}setRowMajor(e,r,n,s,i,o,a,c,l,h,f,u,d,p,_,A){return this[0]=e,this[1]=i,this[2]=l,this[3]=d,this[4]=r,this[5]=o,this[6]=h,this[7]=p,this[8]=n,this[9]=a,this[10]=f,this[11]=_,this[12]=s,this[13]=c,this[14]=u,this[15]=A,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(sT)}fromObject(e){return this.check()}fromQuaternion(e){return ca(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:s,top:i,near:o=da,far:a=pa}=e;return a===1/0?aT(this,r,n,s,i,o):la(this,r,n,s,i,o,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:s=[0,1,0]}=e;return ua(this,r,n,s),this.check()}ortho(e){let{left:r,right:n,bottom:s,top:i,near:o=da,far:a=pa}=e;return fa(this,r,n,s,i,o,a),this.check()}orthographic(e){let{fovy:r=rT,aspect:n=nT,focalDistance:s=1,near:i=da,far:o=pa}=e;Af(r);let a=r/2,c=s*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:i,far:o})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:s=.1,far:i=500}=e;return Af(r),ha(this,r,n,s,i),this.check()}determinant(){return ea(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),s=1/n[0],i=1/n[1],o=1/n[2];return e[0]=this[0]*s,e[1]=this[1]*i,e[2]=this[2]*o,e[3]=0,e[4]=this[4]*s,e[5]=this[5]*i,e[6]=this[6]*o,e[7]=0,e[8]=this[8]*s,e[9]=this[9]*i,e[10]=this[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),s=1/n[0],i=1/n[1],o=1/n[2];return e[0]=this[0]*s,e[1]=this[1]*i,e[2]=this[2]*o,e[3]=this[4]*s,e[4]=this[5]*i,e[5]=this[6]*o,e[6]=this[8]*s,e[7]=this[9]*i,e[8]=this[10]*o,e}transpose(){return $o(this,this),this.check()}invert(){return ta(this,this),this.check()}multiplyLeft(e){return ln(this,e,this),this.check()}multiplyRight(e){return ln(this,this,e),this.check()}rotateX(e){return ia(this,this,e),this.check()}rotateY(e){return oa(this,this,e),this.check()}rotateZ(e){return aa(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return sa(this,this,e,r),this.check()}scale(e){return na(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return ra(this,this,e),this.check()}transform(e,r){return e.length===4?(r=pf(r||[-0,-0,-0,-0],e,this),Se(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,s;switch(n){case 2:s=ps(r||[-0,-0],e,this);break;case 3:s=We(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Se(s,e.length),s}transformAsVector(e,r){let n;switch(e.length){case 2:n=gs(r||[-0,-0],e,this);break;case 3:n=As(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Se(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},Bs,Ms;function iT(){return Bs||(Bs=new D([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(Bs)),Bs}function oT(){return Ms||(Ms=new D,Object.freeze(Ms)),Ms}function Af(t){if(t>Math.PI*2)throw Error("expected radians")}function aT(t,e,r,n,s,i){let o=2*i/(r-e),a=2*i/(s-n),c=(r+e)/(r-e),l=(s+n)/(s-n),h=-1,f=-1,u=-2*i;return t[0]=o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=h,t[11]=f,t[12]=0,t[13]=0,t[14]=u,t[15]=0,t}function _f(){let t=new $(4);return $!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function mf(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Aa(t,e,r){r=r*.5;let n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function _a(t,e,r){let n=e[0],s=e[1],i=e[2],o=e[3],a=r[0],c=r[1],l=r[2],h=r[3];return t[0]=n*h+o*a+s*l-i*c,t[1]=s*h+o*c+i*a-n*l,t[2]=i*h+o*l+n*c-s*a,t[3]=o*h-n*a-s*c-i*l,t}function Tf(t,e,r){r*=.5;let n=e[0],s=e[1],i=e[2],o=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=s*c+i*a,t[2]=i*c-s*a,t[3]=o*c-n*a,t}function Ef(t,e,r){r*=.5;let n=e[0],s=e[1],i=e[2],o=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-i*a,t[1]=s*c+o*a,t[2]=i*c+n*a,t[3]=o*c-s*a,t}function Rf(t,e,r){r*=.5;let n=e[0],s=e[1],i=e[2],o=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+s*a,t[1]=s*c-n*a,t[2]=i*c+o*a,t[3]=o*c-i*a,t}function xf(t,e){let r=e[0],n=e[1],s=e[2];return t[0]=r,t[1]=n,t[2]=s,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-s*s)),t}function hn(t,e,r,n){let s=e[0],i=e[1],o=e[2],a=e[3],c=r[0],l=r[1],h=r[2],f=r[3],u,d,p,_,A;return u=s*c+i*l+o*h+a*f,u<0&&(u=-u,c=-c,l=-l,h=-h,f=-f),1-u>1e-6?(d=Math.acos(u),A=Math.sin(d),p=Math.sin((1-n)*d)/A,_=Math.sin(n*d)/A):(p=1-n,_=n),t[0]=p*s+_*c,t[1]=p*i+_*l,t[2]=p*o+_*h,t[3]=p*a+_*f,t}function Sf(t,e){let r=e[0],n=e[1],s=e[2],i=e[3],o=r*r+n*n+s*s+i*i,a=o?1/o:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-s*a,t[3]=i*a,t}function Cf(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function ma(t,e){let r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let s=0;e[4]>e[0]&&(s=1),e[8]>e[s*3+s]&&(s=2);let i=(s+1)%3,o=(s+2)%3;n=Math.sqrt(e[s*3+s]-e[i*3+i]-e[o*3+o]+1),t[s]=.5*n,n=.5/n,t[3]=(e[i*3+o]-e[o*3+i])*n,t[i]=(e[i*3+s]+e[s*3+i])*n,t[o]=(e[o*3+s]+e[s*3+o])*n}return t}var Bf=af;var Mf=cf,yf=uf,If=df,Ff=lf;var Nf=hf;var Of=ff;var bf=function(){let t=ms(),e=Ts(1,0,0),r=Ts(0,1,0);return function(n,s,i){let o=on(s,i);return o<-.999999?(Xe(t,e,s),Yo(t)<1e-6&&Xe(t,r,s),zo(t,t),Aa(n,t,Math.PI),n):o>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Xe(t,s,i),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+o,Of(n,n))}}(),oN=function(){let t=_f(),e=_f();return function(r,n,s,i,o,a){return hn(t,n,o,a),hn(e,s,i,a),hn(r,t,e,2*a*(1-a)),r}}(),aN=function(){let t=Jh();return function(e,r,n,s){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=s[0],t[4]=s[1],t[7]=s[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],Of(e,ma(e,t))}}();var cT=[0,0,0,1],Zt=class extends xe{constructor(e=0,r=0,n=0,s=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,s)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,r,n,s){return this[0]=e,this[1]=r,this[2]=n,this[3]=s,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return ma(this,e),this.check()}fromAxisRotation(e,r){return Aa(this,e,r),this.check()}identity(){return mf(this),this.check()}setAxisAngle(e,r){return this.fromAxisRotation(e,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=H(e)}get y(){return this[1]}set y(e){this[1]=H(e)}get z(){return this[2]}set z(e){this[2]=H(e)}get w(){return this[3]}set w(e){this[3]=H(e)}len(){return Ff(this)}lengthSquared(){return Nf(this)}dot(e){return yf(this,e)}rotationTo(e,r){return bf(this,e,r),this.check()}add(e){return Bf(this,this,e),this.check()}calculateW(){return xf(this,this),this.check()}conjugate(){return Cf(this,this),this.check()}invert(){return Sf(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(If(this,e,r,n),this.check())}multiplyRight(e){return _a(this,this,e),this.check()}multiplyLeft(e){return _a(this,e,this),this.check()}normalize(){let e=this.len(),r=e>0?1/e:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,e===0&&(this[3]=1),this.check()}rotateX(e){return Tf(this,this,e),this.check()}rotateY(e){return Ef(this,this,e),this.check()}rotateZ(e){return Rf(this,this,e),this.check()}scale(e){return Mf(this,this,e),this.check()}slerp(e,r,n){let s,i,o;switch(arguments.length){case 1:({start:s=cT,target:i,ratio:o}=e);break;case 2:s=this,i=e,o=r;break;default:s=e,i=r,o=n}return hn(this,s,i,o),this.check()}transformVector4(e,r=new mr){return gf(r,e,this),Se(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,r){return this.setAxisAngle(e,r)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}};var Ht={};ht(Ht,{EPSILON1:()=>lT,EPSILON10:()=>mT,EPSILON11:()=>TT,EPSILON12:()=>ET,EPSILON13:()=>RT,EPSILON14:()=>xT,EPSILON15:()=>ST,EPSILON16:()=>CT,EPSILON17:()=>BT,EPSILON18:()=>MT,EPSILON19:()=>yT,EPSILON2:()=>hT,EPSILON20:()=>IT,EPSILON3:()=>fT,EPSILON4:()=>uT,EPSILON5:()=>dT,EPSILON6:()=>pT,EPSILON7:()=>gT,EPSILON8:()=>AT,EPSILON9:()=>_T,PI_OVER_FOUR:()=>NT,PI_OVER_SIX:()=>OT,PI_OVER_TWO:()=>FT,TWO_PI:()=>bT});var lT=.1,hT=.01,fT=.001,uT=1e-4,dT=1e-5,pT=1e-6,gT=1e-7,AT=1e-8,_T=1e-9,mT=1e-10,TT=1e-11,ET=1e-12,RT=1e-13,xT=1e-14,ST=1e-15,CT=1e-16,BT=1e-17,MT=1e-18,yT=1e-19,IT=1e-20,FT=Math.PI/2,NT=Math.PI/4,OT=Math.PI/6,bT=Math.PI*2;function ys(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Vt=Math.PI,vf=Vt/4,Pf=Vt/180,Df=180/Vt,Is=512;function oe(t){let[e,r]=t;ys(Number.isFinite(e)),ys(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Pf,s=r*Pf,i=Is*(n+Vt)/(2*Vt),o=Is*(Vt+Math.log(Math.tan(vf+s*.5)))/(2*Vt);return[i,o]}function ae(t){let[e,r]=t,n=e/Is*(2*Vt)-Vt,s=2*(Math.atan(Math.exp(r/Is*(2*Vt)-Vt))-vf);return[n*Df,s*Df]}var kN=Math.PI/180;var Lf=6378137*Math.PI;function Ta(t){let e=oe(t);return e[0]=(e[0]/256-1)*Lf,e[1]=(e[1]/256-1)*Lf,e}var YT={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},Ns=class extends ze.CompositeLayer{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:n}){let{viewport:s}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(s,"image source changed"),0)):(0,ze._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(s,"viewport changed")):this.debounce(()=>this.loadImage(s,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new Hf.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?ze.COORDINATE_SYSTEM.LNGLAT:ze.COORDINATE_SYSTEM.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:n}=this.state;return n?await this.state.imageSource.getFeatureInfoText?.({...n,query_layers:n.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Nt)return e.data;if(typeof e.data=="string")return Lo({url:e.data,loadOptions:e.loadOptions,type:e.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:n,serviceType:s}=this.props;if(s==="wms"&&n.length===0)return;let i=e.getBounds(),{width:o,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let h={width:o,height:a,boundingBox:[[i[0],i[1]],[i[2],i[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let f=Ta([i[0],i[1]]),u=Ta([i[2],i[3]]);h.boundingBox=[f,u]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let f=await this.state.imageSource.getImage(h);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:f,bounds:i,lastRequestParameters:h,lastRequestId:c}))}catch(f){this.raiseError(f,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,f)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}},Fs=Ns;(()=>{Ns.layerName="WMSLayer"})(),(()=>{Ns.defaultProps=YT})();var Vf=v(Ut(),1),qT={getHeight:{type:"accessor",value:0},greatCircle:!0},Os=class extends Vf.ArcLayer{},fn=Os;(()=>{Os.layerName="GreatCircleLayer"})(),(()=>{Os.defaultProps=qT})();var Xf=v(Lt(),1),Ea=v(Ut(),1),jT={...Ea.PolygonLayer.defaultProps},bs=class extends Xf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:s,stroked:i,lineWidthUnits:o,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:h,lineMiterLimit:f,lineDashJustified:u,getElevation:d,getFillColor:p,getLineColor:_,getLineWidth:A}=this.props,{updateTriggers:T,material:x,transitions:R}=this.props,S=this.getSubLayerClass("cell",Ea.PolygonLayer),{updateTriggers:B,...M}=this.indexToBounds()||{};return new S({filled:s,wireframe:n,extruded:r,elevationScale:e,stroked:i,lineWidthUnits:o,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:h,lineMiterLimit:f,lineDashJustified:u,material:x,transitions:R,getElevation:d,getFillColor:p,getLineColor:_,getLineWidth:A},this.getSubLayerProps({id:"cell",updateTriggers:T&&{...B,getElevation:T.getElevation,getFillColor:T.getFillColor,getLineColor:T.getLineColor,getLineWidth:T.getLineWidth}}),M)}},It=bs;(()=>{bs.layerName="GeoCellLayer"})(),(()=>{bs.defaultProps=jT})();var Ps=v(Ra(),1),ZT=3,QT=30,$T=2*QT+1,zf=180/Math.PI;function Gf(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function kf(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kf(t){return[kf(t[0]),kf(t[1])]}function Jf(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function Yf([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*zf,n*zf]}function qf(t){let e=Ps.default.fromString(t,!0,10).toString(2);for(;e.length<ZT+$T;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),s=e.substring(3,r),i=s.length/2,o=Ps.default.fromString(n,!0,2).toString(10),a=Ps.default.fromString(s,!0,2).toString(4);for(;a.length<i;)a="0"+a;return`${o}/${a}`}function t1(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let s=e[0];e[0]=e[1],e[1]=s}}function jf(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],s=n.length,i=[0,0],o;for(let a=s-1;a>=0;a--){o=s-a;let c=n[a],l=0,h=0;c==="1"?h=1:c==="2"?(l=1,h=1):c==="3"&&(l=1);let f=Math.pow(2,o-1);t1(f,i,l,h),i[0]+=f*l,i[1]+=f*h}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:o}}var Zf=v(Ra(),1);function e1(t){let e=t.padEnd(16,"0");return Zf.default.fromString(e,16)}var r1=100;function n1({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(r1*Math.pow(2,-r))),i=new Float64Array(4*s*2+2),o=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),h=n[c+1],f=(h[0]-l[0])/s,u=(h[1]-l[1])/s;for(let d=0;d<s;d++){l[0]+=f,l[1]+=u;let p=Gf(e,r,l),_=Kf(p),A=Jf(t,_),T=Yf(A);Math.abs(T[1])>89.999&&(T[0]=a);let x=T[0]-a;T[0]+=x>180?-360:x<-180?360:0,i[o++]=T[0],i[o++]=T[1],a=T[0]}}return i[o++]=i[0],i[o++]=i[1],i}function s1(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=e1(t)}return qf(t.toString())}function Qf(t){let e=s1(t),r=jf(e);return n1(r)}var i1={getS2Token:{type:"accessor",value:t=>t.token}},Ds=class extends It{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,s)=>Qf(r(n,s))}}},dn=Ds;(()=>{Ds.layerName="S2Layer"})(),(()=>{Ds.defaultProps=i1})();var xa=512;function o1(t,e){let r=0,n=0,s=1<<t.length,i=s/xa;for(let o=0;o<t.length;o++){s>>=1;let a=parseInt(t[o]);a%2&&(r|=s),a>1&&(n|=s)}return[[r/i,xa-n/i],[(r+e)/i,xa-(n+e)/i]]}function $f(t,e=1){let[r,n]=o1(t,e),[s,i]=ae(r),[o,a]=ae(n);return[o,i,o,a,s,a,s,i,o,i]}var a1={getQuadkey:{type:"accessor",value:t=>t.quadkey}},ws=class extends It{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,s=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(i,o)=>$f(n(i,o),s),updateTriggers:{getPolygon:s}}}},pn=ws;(()=>{ws.layerName="QuadkeyLayer"})(),(()=>{ws.defaultProps=a1})();var zs=v(Lt(),1),_u=v(Ut(),1);var ke=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return Boolean(this._loader)&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,requestScheduler:r,onLoad:n,onError:s}){let{index:i,id:o,bbox:a,userData:c,zoom:l}=this,h=this._loaderId;this._abortController=new AbortController;let{signal:f}=this._abortController,u=await r.scheduleRequest(this,_=>_.isSelected?1:-1);if(!u){this._isCancelled=!0;return}if(this._isCancelled){u.done();return}let d=null,p;try{d=await e({index:i,id:o,bbox:a,userData:c,zoom:l,signal:f})}catch(_){p=_||!0}finally{u.done()}if(h===this._loaderId){if(this._loader=void 0,this.content=d,this._isCancelled&&!d){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,p?s(p,this):n(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var _n=v(Lt(),1);var nt={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var tu=new m,c1=new m,Be=class{constructor(e=[0,0,0],r=[0,0,0],n){P(this,"center",void 0),P(this,"halfDiagonal",void 0),P(this,"minimum",void 0),P(this,"maximum",void 0),n=n||tu.copy(e).add(r).scale(.5),this.center=new m(n),this.halfDiagonal=new m(r).subtract(this.center),this.minimum=new m(e),this.maximum=new m(r)}clone(){return new Be(this.minimum,this.maximum,this.center)}equals(e){return this===e||Boolean(e)&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,n=c1.from(e.normal),s=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),i=this.center.dot(n)+e.distance;return i-s>0?nt.INSIDE:i+s<0?nt.OUTSIDE:nt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=tu.from(e).subtract(this.center),{halfDiagonal:n}=this,s=0,i;return i=Math.abs(r.x)-n.x,i>0&&(s+=i*i),i=Math.abs(r.y)-n.y,i>0&&(s+=i*i),i=Math.abs(r.z)-n.z,i>0&&(s+=i*i),s}};var gn=new m,eu=new m,Ot=class{constructor(e=[0,0,0],r=0){P(this,"center",void 0),P(this,"radius",void 0),this.radius=-0,this.center=new m,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=gn.from(r),this.center=new m().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new Ot(this.center,this.radius)}union(e){let r=this.center,n=this.radius,s=e.center,i=e.radius,o=gn.copy(s).subtract(r),a=o.magnitude();if(n>=a+i)return this.clone();if(i>=a+n)return e.clone();let c=(n+a+i)*.5;return eu.copy(o).scale((-n+c)/a).add(r),this.center.copy(eu),this.radius=c,this}expand(e){let n=gn.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=Cs.getScaling(gn,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let n=gn.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,i=e.normal.dot(r)+e.distance;return i<-n?nt.OUTSIDE:i<n?nt.INTERSECTING:nt.INSIDE}};var l1=new m,h1=new m,vs=new m,Us=new m,Ls=new m,f1=new m,u1=new m,ce={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Xt=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){P(this,"center",void 0),P(this,"halfAxes",void 0),this.center=new m().from(e),this.halfAxes=new z(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new m(e).len(),new m(r).len(),new m(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),s=new m(e).normalize(),i=new m(r).normalize(),o=new m(n).normalize();return new Zt().fromMatrix3(new z([...s,...i,...o]))}fromCenterHalfSizeQuaternion(e,r,n){let s=new Zt(n),i=new z().fromQuaternion(s);return i[0]=i[0]*r[0],i[1]=i[1]*r[0],i[2]=i[2]*r[0],i[3]=i[3]*r[1],i[4]=i[4]*r[1],i[5]=i[5]*r[1],i[6]=i[6]*r[2],i[7]=i[7]*r[2],i[8]=i[8]*r[2],this.center=new m().from(e),this.halfAxes=i,this}clone(){return new Xt(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new Ot){let r=this.halfAxes,n=r.getColumn(0,vs),s=r.getColumn(1,Us),i=r.getColumn(2,Ls),o=l1.copy(n).add(s).add(i);return e.center.copy(this.center),e.radius=o.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,s=this.halfAxes,i=n.x,o=n.y,a=n.z,c=Math.abs(i*s[ce.COLUMN0ROW0]+o*s[ce.COLUMN0ROW1]+a*s[ce.COLUMN0ROW2])+Math.abs(i*s[ce.COLUMN1ROW0]+o*s[ce.COLUMN1ROW1]+a*s[ce.COLUMN1ROW2])+Math.abs(i*s[ce.COLUMN2ROW0]+o*s[ce.COLUMN2ROW1]+a*s[ce.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?nt.OUTSIDE:l>=c?nt.INSIDE:nt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=h1.from(e).subtract(this.center),n=this.halfAxes,s=n.getColumn(0,vs),i=n.getColumn(1,Us),o=n.getColumn(2,Ls),a=s.magnitude(),c=i.magnitude(),l=o.magnitude();s.normalize(),i.normalize(),o.normalize();let h=0,f;return f=Math.abs(r.dot(s))-a,f>0&&(h+=f*f),f=Math.abs(r.dot(i))-c,f>0&&(h+=f*f),f=Math.abs(r.dot(o))-l,f>0&&(h+=f*f),h}computePlaneDistances(e,r,n=[-0,-0]){let s=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,o=this.center,a=this.halfAxes,c=a.getColumn(0,vs),l=a.getColumn(1,Us),h=a.getColumn(2,Ls),f=f1.copy(c).add(l).add(h).add(o),u=u1.copy(f).subtract(e),d=r.dot(u);return s=Math.min(d,s),i=Math.max(d,i),f.copy(o).add(c).add(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),f.copy(o).add(c).subtract(l).add(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),f.copy(o).add(c).subtract(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).add(l).add(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).add(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).subtract(l).add(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),o.copy(f).subtract(c).subtract(l).subtract(h),u.copy(f).subtract(e),d=r.dot(u),s=Math.min(d,s),i=Math.max(d,i),n[0]=s,n[1]=i,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,vs);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,Us);n.transformAsPoint(e);let s=this.halfAxes.getColumn(2,Ls);return s.transformAsPoint(e),this.halfAxes=new z([...r,...n,...s]),this}getTransform(){throw new Error("not implemented")}};var ru=new m,nu=new m,lt=class{constructor(e=[0,0,1],r=0){P(this,"normal",void 0),P(this,"distance",void 0),this.normal=new m,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return ct(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=ru.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,s){return this.normal.set(e,r,n),ct(At(this.normal.len(),1)),this.distance=s,this}clone(){return new lt(this.normal,this.distance)}equals(e){return At(this.distance,e.distance)&&At(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=nu.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,r)}projectPointOntoPlane(e,r=[0,0,0]){let n=ru.from(e),s=this.getPointDistance(n),i=nu.copy(this.normal).scale(s);return n.subtract(i).to(r)}};var su=[new m([1,0,0]),new m([0,1,0]),new m([0,0,1])],iu=new m,d1=new m,ot=class{constructor(e=[]){P(this,"planes",void 0),this.planes=e}fromBoundingSphere(e){this.planes.length=2*su.length;let r=e.center,n=e.radius,s=0;for(let i of su){let o=this.planes[s],a=this.planes[s+1];o||(o=this.planes[s]=new lt),a||(a=this.planes[s+1]=new lt);let c=iu.copy(i).scale(-n).add(r);o.fromPointNormal(c,i);let l=iu.copy(i).scale(n).add(r),h=d1.copy(i).negate();a.fromPointNormal(l,h),s+=2}return this}computeVisibility(e){let r=nt.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case nt.OUTSIDE:return nt.OUTSIDE;case nt.INTERSECTING:r=nt.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(ct(Number.isFinite(r),"parentPlaneMask is required."),r===ot.MASK_OUTSIDE||r===ot.MASK_INSIDE)return r;let n=ot.MASK_INSIDE,s=this.planes;for(let i=0;i<this.planes.length;++i){let o=i<31?1<<i:0;if(i<31&&!(r&o))continue;let a=s[i],c=e.intersectPlane(a);if(c===nt.OUTSIDE)return ot.MASK_OUTSIDE;c===nt.INTERSECTING&&(n|=o)}return n}};P(ot,"MASK_OUTSIDE",4294967295);P(ot,"MASK_INSIDE",0);P(ot,"MASK_INDETERMINATE",2147483647);var p2=new m,g2=new m,A2=new m,_2=new m,m2=new m;var B2=new m,M2=new m,y2=new m,I2=new m,F2=new m,N2=new m,O2=new m,b2=new m,P2=new m,D2=new m,w2=new m,v2=new m;var Qt=new z,g1=new z,A1=new z,Hs=new z,ou=new z;function Ba(t,e={}){let r=Ht.EPSILON20,n=10,s=0,i=0,o=g1,a=A1;o.identity(),a.copy(t);let c=r*_1(a);for(;i<n&&m1(a)>c;)T1(a,Hs),ou.copy(Hs).transpose(),a.multiplyRight(Hs),a.multiplyLeft(ou),o.multiplyRight(Hs),++s>2&&(++i,s=0);return e.unitary=o.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function _1(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Sa=[1,0,0],Ca=[2,2,1];function m1(t){let e=0;for(let r=0;r<3;++r){let n=t[Qt.getElementIndex(Ca[r],Sa[r])];e+=2*n*n}return Math.sqrt(e)}function T1(t,e){let r=Ht.EPSILON15,n=0,s=1;for(let l=0;l<3;++l){let h=Math.abs(t[Qt.getElementIndex(Ca[l],Sa[l])]);h>n&&(s=l,n=h)}let i=Sa[s],o=Ca[s],a=1,c=0;if(Math.abs(t[Qt.getElementIndex(o,i)])>r){let l=t[Qt.getElementIndex(o,o)],h=t[Qt.getElementIndex(i,i)],f=t[Qt.getElementIndex(o,i)],u=(l-h)/2/f,d;u<0?d=-1/(-u+Math.sqrt(1+u*u)):d=1/(u+Math.sqrt(1+u*u)),a=1/Math.sqrt(1+d*d),c=d*a}return z.IDENTITY.to(e),e[Qt.getElementIndex(i,i)]=e[Qt.getElementIndex(o,o)]=a,e[Qt.getElementIndex(o,i)]=c,e[Qt.getElementIndex(i,o)]=-c,e}var Me=new m,E1=new m,R1=new m,x1=new m,S1=new m,C1=new z,B1={diagonal:new z,unitary:new z};function An(t,e=new Xt){if(!t||t.length===0)return e.halfAxes=new z([0,0,0,0,0,0,0,0,0]),e.center=new m,e;let r=t.length,n=new m(0,0,0);for(let E of t)n.add(E);let s=1/r;n.multiplyByScalar(s);let i=0,o=0,a=0,c=0,l=0,h=0;for(let E of t){let g=Me.copy(E).subtract(n);i+=g.x*g.x,o+=g.x*g.y,a+=g.x*g.z,c+=g.y*g.y,l+=g.y*g.z,h+=g.z*g.z}i*=s,o*=s,a*=s,c*=s,l*=s,h*=s;let f=C1;f[0]=i,f[1]=o,f[2]=a,f[3]=o,f[4]=c,f[5]=l,f[6]=a,f[7]=l,f[8]=h;let{unitary:u}=Ba(f,B1),d=e.halfAxes.copy(u),p=d.getColumn(0,R1),_=d.getColumn(1,x1),A=d.getColumn(2,S1),T=-Number.MAX_VALUE,x=-Number.MAX_VALUE,R=-Number.MAX_VALUE,S=Number.MAX_VALUE,B=Number.MAX_VALUE,M=Number.MAX_VALUE;for(let E of t)Me.copy(E),T=Math.max(Me.dot(p),T),x=Math.max(Me.dot(_),x),R=Math.max(Me.dot(A),R),S=Math.min(Me.dot(p),S),B=Math.min(Me.dot(_),B),M=Math.min(Me.dot(A),M);p=p.multiplyByScalar(.5*(S+T)),_=_.multiplyByScalar(.5*(B+x)),A=A.multiplyByScalar(.5*(M+R)),e.center.copy(p).add(_).add(A);let F=E1.set(T-S,x-B,R-M).multiplyByScalar(.5),C=new z([F[0],0,0,0,F[1],0,0,0,F[2]]);return e.halfAxes.multiplyRight(C),e}var Er=512,au=3,cu=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],lu=cu.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),M1=lu.concat([[.25,.5],[.75,.5]]),ye=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}get children(){if(!this._children){let e=this.x*2,r=this.y*2,n=this.z+1;this._children=[new ye(e,r,n),new ye(e,r+1,n),new ye(e+1,r,n),new ye(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:s,minZ:i,maxZ:o,bounds:a,offset:c,project:l}=e,h=this.getBoundingVolume(s,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(h)<0)return!1;if(!this.childVisible){let{z:u}=this;if(u<o&&u>=i){let d=h.distanceTo(r.cameraPosition)*r.scale/r.height;u+=Math.floor(Math.log2(d))}if(u>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let u of this.children)u.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,n,s]){let i=Math.pow(2,this.z),o=Er/i;return this.x*o<n&&this.y*o<s&&(this.x+1)*o>e&&(this.y+1)*o>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?M1:this.z<2?lu:cu,l=[];for(let h of c){let f=Vs(this.x+h[0],this.y+h[1],this.z);f[2]=e[0],l.push(n(f)),e[0]!==e[1]&&(f[2]=e[1],l.push(n(f)))}return An(l)}let s=Math.pow(2,this.z),i=Er/s,o=this.x*i+r*Er,a=Er-(this.y+1)*i;return new Be([o,a,e[0]],[o+i,a+i,e[1]])}};function hu(t,e,r,n){let s=t instanceof _n._GlobeViewport&&t.resolution?t.projectPosition:null,i=Object.values(t.getFrustumPlanes()).map(({normal:d,distance:p})=>new lt(d.clone().negate(),p)),o=new ot(i),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,h=t instanceof _n.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[d,p,_,A]=n,T=oe([d,A]),x=oe([_,p]);n=[T[0],Er-T[1],x[0],Er-x[1]]}let f=new ye(0,0,0),u={viewport:t,project:s,cullingVolume:o,elevationBounds:[c,l],minZ:h,maxZ:e,bounds:n,offset:0};if(f.update(u),t instanceof _n.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(u.offset=-1;f.update(u)&&!(--u.offset<-au););for(u.offset=1;f.update(u)&&!(++u.offset>au););}return f.getSelected()}var le=512,y1=[-1/0,-1/0,1/0,1/0],Ie={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}};function uu(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(s=>s[0])),Math.min(...r.map(s=>s[1])),Math.max(...r.map(s=>s[0])),Math.max(...r.map(s=>s[1]))]}function I1(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function $t(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let i=I1(n)%t.length;t=t[i]}let s=t;for(let i of Object.keys(r)){let o=new RegExp(`{${i}}`,"g");s=s.replace(o,String(r[i]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(s=s.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),s}function F1(t,e,r){let n;if(e&&e.length===2){let[s,i]=e,o=t.getBounds({z:s}),a=t.getBounds({z:i});n=[Math.min(o[0],a[0]),Math.min(o[1],a[1]),Math.max(o[2],a[2]),Math.max(o[3],a[3])]}else n=t.getBounds();return t.isGeospatial?[Math.max(n[0],r[0]),Math.max(n[1],r[1]),Math.min(n[2],r[2]),Math.min(n[3],r[3])]:[Math.max(Math.min(n[0],r[2]),r[0]),Math.max(Math.min(n[1],r[3]),r[1]),Math.min(Math.max(n[2],r[0]),r[2]),Math.min(Math.max(n[3],r[1]),r[3])]}function du({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(s=>Ma(s,e||0,r))}function Ma(t,e,r){if(!Array.isArray(e)){let i=r.x-t.x,o=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},h=t.unproject([i,o],l),f=t.unproject([i+a,o],l),u=t.unproject([i,o+c],l),d=t.unproject([i+a,o+c],l);return[Math.min(h[0],f[0],u[0],d[0]),Math.min(h[1],f[1],u[1],d[1]),Math.max(h[0],f[0],u[0],d[0]),Math.max(h[1],f[1],u[1],d[1])]}let n=Ma(t,e[0],r),s=Ma(t,e[1],r);return[Math.min(n[0],s[0]),Math.min(n[1],s[1]),Math.max(n[2],s[2]),Math.max(n[3],s[3])]}function N1(t,e,r){return r?uu(t,r).map(s=>s*e/le):t.map(n=>n*e/le)}function ya(t,e){return Math.pow(2,t)*le/e}function Vs(t,e,r){let n=ya(r,le),s=t/n*360-180,i=Math.PI-2*Math.PI*e/n,o=180/Math.PI*Math.atan(.5*(Math.exp(i)-Math.exp(-i)));return[s,o]}function fu(t,e,r,n){let s=ya(r,n);return[t/s*le,e/s*le]}function Ia(t,e,r,n,s=le){if(t.isGeospatial){let[l,h]=Vs(e,r,n),[f,u]=Vs(e+1,r+1,n);return{west:l,north:h,east:f,south:u}}let[i,o]=fu(e,r,n,s),[a,c]=fu(e+1,r+1,n,s);return{left:i,top:o,right:a,bottom:c}}function O1(t,e,r,n,s){let i=F1(t,null,n),o=ya(e,r),[a,c,l,h]=N1(i,o,s),f=[];for(let u=Math.floor(a);u<l;u++)for(let d=Math.floor(c);d<h;d++)f.push({x:u,y:d,z:e});return f}function Fa({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:s,tileSize:i=le,modelMatrix:o,modelMatrixInverse:a,zoomOffset:c=0}){let l=t.isGeospatial?Math.round(t.zoom+Math.log2(le/i))+c:Math.ceil(t.zoom)+c;if(typeof r=="number"&&Number.isFinite(r)&&l<r){if(!s)return[];l=r}typeof e=="number"&&Number.isFinite(e)&&l>e&&(l=e);let h=s;return o&&a&&s&&!t.isGeospatial&&(h=uu(s,o)),t.isGeospatial?hu(t,l,n,s):O1(t,l,i,h||y1,a)}function Na(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function Oa(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function pu(t){let e={},r;return n=>{for(let s in n)if(!b1(n[s],e[s])){r=t(n),e=n;break}return r}}function b1(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}return!1}var gu=1,Xs=2,P1="never",D1="no-overlap",mn="best-available",w1=5,v1={[mn]:L1,[D1]:H1,[P1]:()=>{}},U1={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},Ge=class{constructor(e){this._getCullBounds=pu(du),this.opts={...U1,...e},this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new me({maxRequests:e.maxRequests,throttleRequests:Boolean(e.maxRequests&&e.maxRequests>0)}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new D,this._modelMatrixInverse=new D,this.setOptions(e)}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom))}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:n}={zRange:null,modelMatrix:null}){let s=n?new D(n):new D,i=!s.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!At(this._zRange,r)||i){i&&(this._modelMatrixInverse=s.clone().invert(),this._modelMatrix=s),this._viewport=e,this._zRange=r;let a=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=a.map(c=>this._getTile(c,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(a=>this._getTile(a.index,!0)));let o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(e,r){if(!e.isVisible)return!1;if(r&&this._viewport){let n=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,o,a,c]of n){let l;if("west"in s)l=s.west<a&&s.east>i&&s.south<c&&s.north>o;else{let h=Math.min(s.top,s.bottom),f=Math.max(s.top,s.bottom);l=s.left<a&&s.right>i&&h<c&&f>o}if(l)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:s,modelMatrix:i,modelMatrixInverse:o}){let{tileSize:a,extent:c,zoomOffset:l}=this.opts;return Fa({viewport:e,maxZoom:r,minZoom:n,zRange:s,tileSize:a,extent:c,modelMatrix:i,modelMatrixInverse:o,zoomOffset:l})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Ia(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),s=e.z-1;return{x:r,y:n,z:s}}updateTileStates(){let e=this.opts.refinementStrategy||mn,r=new Array(this._cache.size),n=0;for(let s of this._cache.values())r[n++]=s.isVisible,s.isSelected=!1,s.isVisible=!1;for(let s of this._selectedTiles)s.isSelected=!0,s.isVisible=!0;(typeof e=="function"?e:v1[e])(Array.from(this._cache.values())),n=0;for(let s of this._cache.values())if(r[n++]!==s.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let s of this._cache.values())s.isLoading&&(n++,!s.isSelected&&!s.isVisible&&r.push(s));for(;e>0&&n>e&&r.length>0;)r.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let n=this._getNearestAncestor(r);r.parent=n,n?.children&&n.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,n=r.maxCacheSize||(r.maxCacheByteSize?1/0:w1*this.selectedTiles.length),s=r.maxCacheByteSize||1/0;if(e.size>n||this._cacheByteSize>s){for(let[o,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize?a.byteLength:0,e.delete(o),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=s)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((o,a)=>o.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),s=this._cache.get(n),i=!1;return!s&&r?(s=new ke(e),Object.assign(s,this.getTileMetadata(s.index)),Object.assign(s,{id:n,zoom:this.getTileZoom(s.index)}),i=!0,this._cache.set(n,s),this._dirty=!0):s&&s.needsReload&&(i=!0),s&&i&&s.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),s}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let s=this._getTile(n);if(s)return s}return null}};function L1(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Au(e)&&ba(e);for(let e of t)e.isVisible=Boolean(e.state&Xs)}function H1(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Au(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&Xs),r.children&&(r.isVisible||r.state&gu))for(let n of r.children)n.state=gu;else r.isSelected&&ba(r)}function Au(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Xs,!0;e=e.parent}return!1}function ba(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Xs:ba(e)}var V1={TilesetClass:Ge,data:{type:"data",value:[]},dataComparator:Ie.equal,renderSubLayers:{type:"function",value:t=>new _u.GeoJsonLayer(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:mn,zRange:null,maxRequests:6,zoomOffset:0},Ws=class extends zs.CompositeLayer{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return Boolean(this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&e.layers&&e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,n=e.propsOrDataChanged||e.updateTriggersChanged,s=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),s?r.reloadAll():r.tiles.forEach(i=>{i.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:s,extent:i,maxZoom:o,minZoom:a,maxRequests:c,zoomOffset:l}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:o,minZoom:a,tileSize:e,refinementStrategy:s,extent:i,maxRequests:c,zoomOffset:l,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:n}=this.props,s=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:i}=e,o=this.state.isLoaded!==i,a=this.state.frameNumber!==s;i&&(o||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:s}),this.state.isLoaded=i}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:n,fetch:s}=this.props,{signal:i}=e;return e.url=typeof r=="string"||Array.isArray(r)?$t(r,e):null,n?n(e):s&&e.url?s(e.url,{propName:"data",layer:this,signal:i}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo({info:e,sourceLayer:r}){let n=r.props.tile;return e.picked&&(e.tile=n),e.sourceTile=n,e}_updateAutoHighlight(e){let r=e.sourceTile;if(r&&r.layers)for(let n of r.layers)n.updateAutoHighlight(e)}renderLayers(){return this.state.tileset.tiles.map(e=>{let r=this.getSubLayerPropsByTile(e);if(!(!e.isLoaded&&!e.content))if(e.layers)r&&e.layers[0]&&Object.keys(r).some(n=>e.layers[0].props[n]!==r[n])&&(e.layers=e.layers.map(n=>n.clone(r)));else{let n=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=(0,zs._flatten)(n,Boolean).map(s=>s.clone({tile:e,...r}))}return e.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props;return this.state.tileset.isTileVisible(n,r)}},te=Ws;(()=>{Ws.defaultProps=V1})(),(()=>{Ws.layerName="TileLayer"})();var mu=v(Ut(),1),X1={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},ks=class extends mu.PathLayer{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`uniform float trailLength;
14
14
  in float instanceTimestamps;
15
15
  in float instanceNextTimestamps;
16
16
  out float vTime;
@@ -634,6 +634,6 @@ void main(void) {
634
634
 
635
635
  DECKGL_FILTER_COLOR(fragColor, geometry);
636
636
  }
637
- `;function lE(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var hE={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},ei=class extends Zu.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(Ka),{...e,vs:Yu,fs:qu}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:ti.UNSIGNED_BYTE,size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props;this.state.model&&(this.state.model.setUniforms({u_Camera:this.state.model.uniforms.project_uCameraPosition,pickFeatureIds:Boolean(r)}),super.draw(e))}getModel(e){let{id:r,pbrMaterial:n}=this.props,s=this.parseMaterial(n,e);this.setState({parsedPBRMaterial:s});let i=this.getShaders();return lE(e.attributes),new ju.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...i.defines,...s?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:s?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,s=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:s}),r.setBindings(s.bindings),r.setUniforms(s.uniforms)}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return wa(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){let r=this.props.featureIds,n=new Uint8ClampedArray(r.length*e.size),s=[];for(let i=0;i<r.length;i++)this.encodePickingColor(r[i],s),n[i*3]=s[0],n[i*3+1]=s[1],n[i*3+2]=s[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}},Cn=ei;(()=>{ei.layerName="MeshLayer"})(),(()=>{ei.defaultProps=hE})();var gg=v(Cr(),1);var he=6356752314245179e-9,fE={radii:[6378137,6378137,he],radiiSquared:[6378137*6378137,6378137*6378137,he*he],oneOverRadii:[1/6378137,1/6378137,1/he],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(he*he)],maximumRadius:Math.max(6378137,6378137,he),centerToleranceSquared:.1};function ri(t){return t}var $b=new m;function uE(t,e=[],r=ri){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function $u(t,e=[]){return uE(t,e,j._cartographicRadians?ri:Vo)}function dE(t,e,r=ri){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function td(t,e){return dE(t,e,j._cartographicRadians?ri:Xo)}var ed=1e-14,pE=new m,rd={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"}},Ja={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Bn={east:new m,north:new m,up:new m,west:new m,south:new m,down:new m},gE=new m,AE=new m,_E=new m;function Ya(t,e,r,n,s,i){let o=rd[e]&&rd[e][r];ct(o&&(!n||n===o));let a,c,l,h=pE.copy(s);if(At(h.x,0,ed)&&At(h.y,0,ed)){let u=Math.sign(h.z);a=gE.fromArray(Ja[e]),e!=="east"&&e!=="west"&&a.scale(u),c=AE.fromArray(Ja[r]),r!=="east"&&r!=="west"&&c.scale(u),l=_E.fromArray(Ja[n]),n!=="east"&&n!=="west"&&l.scale(u)}else{let{up:u,east:d,north:p}=Bn;d.set(-h.y,h.x,0).normalize(),t.geodeticSurfaceNormal(h,u),p.copy(u).cross(d);let{down:_,west:A,south:T}=Bn;_.copy(u).scale(-1),A.copy(d).scale(-1),T.copy(p).scale(-1),a=Bn[e],c=Bn[r],l=Bn[n]}return i[0]=a.x,i[1]=a.y,i[2]=a.z,i[3]=0,i[4]=c.x,i[5]=c.y,i[6]=c.z,i[7]=0,i[8]=l.x,i[9]=l.y,i[10]=l.z,i[11]=0,i[12]=h.x,i[13]=h.y,i[14]=h.z,i[15]=1,i}var Br=new m,mE=new m,TE=new m;function nd(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:s,centerToleranceSquared:i}=e;Br.from(t);let o=Br.x,a=Br.y,c=Br.z,l=n.x,h=n.y,f=n.z,u=o*o*l*l,d=a*a*h*h,p=c*c*f*f,_=u+d+p,A=Math.sqrt(1/_);if(!Number.isFinite(A))return;let T=mE;if(T.copy(t).scale(A),_<i)return T.to(r);let x=s.x,R=s.y,S=s.z,B=TE;B.set(T.x*x*2,T.y*R*2,T.z*S*2);let M=(1-A)*Br.len()/(.5*B.len()),F=0,C,E,g,y;do{M-=F,C=1/(1+M*x),E=1/(1+M*R),g=1/(1+M*S);let O=C*C,b=E*E,N=g*g,U=O*C,Y=b*E,W=N*g;y=u*O+d*b+p*N-1;let J=-2*(u*U*x+d*Y*R+p*W*S);F=y/J}while(Math.abs(y)>Ht.EPSILON12);return Br.scale([C,E,g]).to(r)}var ni=new m,sd=new m,xE=new m,zt=new m,SE=new m,si=new m,L=class{constructor(e=0,r=0,n=0){P(this,"radii",void 0),P(this,"radiiSquared",void 0),P(this,"radiiToTheFourth",void 0),P(this,"oneOverRadii",void 0),P(this,"oneOverRadiiSquared",void 0),P(this,"minimumRadius",void 0),P(this,"maximumRadius",void 0),P(this,"centerToleranceSquared",Ht.EPSILON1),P(this,"squaredXOverSquaredZ",void 0),ct(e>=0),ct(r>=0),ct(n>=0),this.radii=new m(e,r,n),this.radiiSquared=new m(e*e,r*r,n*n),this.radiiToTheFourth=new m(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new m(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new m(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=sd,s=xE,[,,i]=e;this.geodeticSurfaceNormalCartographic(e,n),s.copy(this.radiiSquared).scale(n);let o=Math.sqrt(n.dot(s));return s.scale(1/o),n.scale(i),s.add(n),s.to(r)}cartesianToCartographic(e,r=[0,0,0]){si.from(e);let n=this.scaleToGeodeticSurface(si,zt);if(!n)return;let s=this.geodeticSurfaceNormal(n,sd),i=SE;i.copy(si).subtract(n);let o=Math.atan2(s.y,s.x),a=Math.asin(s.z),c=Math.sign(_r.dot(i,si))*_r.length(i);return td([o,a,c],r)}eastNorthUpToFixedFrame(e,r=new D){return Ya(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,s,i=new D){return Ya(this,e,r,n,s,i)}geocentricSurfaceNormal(e,r=[0,0,0]){return ni.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=$u(e),s=n[0],i=n[1],o=Math.cos(i);return ni.set(o*Math.cos(s),o*Math.sin(s),Math.sin(i)).normalize(),ni.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return ni.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return nd(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){zt.from(e);let n=zt.x,s=zt.y,i=zt.z,o=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*o.x+s*s*o.y+i*i*o.z);return zt.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){ct(At(this.radii.x,this.radii.y,Ht.EPSILON15)),ct(this.radii.z>0),zt.from(e);let s=zt.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(s)>=this.radii.z-r))return zt.set(0,0,s).to(n)}};P(L,"WGS84",new L(6378137,6378137,he));var ii=class{constructor(e,r,n){this.item=void 0,this.previous=void 0,this.next=void 0,this.item=e,this.previous=r,this.next=n}};var oi=class{constructor(){this.head=null,this.tail=null,this._length=0}get length(){return this._length}add(e){let r=new ii(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var ai=class{constructor(){this._list=void 0,this._sentinel=void 0,this._trimTiles=void 0,this._list=new oi,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let s=r._cacheNode;s&&(this._list.remove(s),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let s=this._list,i=e.maximumMemoryUsage*1024*1024,o=this._sentinel,a=s.head;for(;a!==o&&(e.gpuMemoryUsageInBytes>i||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function id(t,e){V(t),V(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:s,boundingVolume:{center:i}}=t,o=new D(s);switch(r&&o.translate(r),n){case"Z":break;case"Y":let f=new D().rotateX(Math.PI/2);o=o.multiplyRight(f);break;case"X":let u=new D().rotateY(-Math.PI/2);o=o.multiplyRight(u);break;default:break}e.isQuantized&&o.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new m(i);e.cartesianModelMatrix=o,e.cartesianOrigin=a;let c=L.WGS84.cartesianToCartographic(a,new m),h=L.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=h.multiplyRight(o),e.cartographicOrigin=c,e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var od=new m,qa=new m,ja=new ot([new lt,new lt,new lt,new lt,new lt,new lt]);function cd(t,e){let{cameraDirection:r,cameraUp:n,height:s}=t,{metersPerUnit:i}=t.distanceScales,o=ci(t,t.center),a=L.WGS84.eastNorthUpToFixedFrame(o),c=t.unprojectPosition(t.cameraPosition),l=L.WGS84.cartographicToCartesian(c,new m),h=new m(a.transformAsVector(new m(r).scale(i))).normalize(),f=new m(a.transformAsVector(new m(n).scale(i))).normalize();CE(t);let u=t.constructor,{longitude:d,latitude:p,width:_,bearing:A,zoom:T}=t,x=new u({longitude:d,latitude:p,height:s,width:_,bearing:A,zoom:T,pitch:0});return{camera:{position:l,direction:h,up:f},viewport:t,topDownViewport:x,height:s,cullingVolume:ja,frameNumber:e,sseDenominator:1.15}}function ld(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:s,latitude:i}=e.viewport;for(let[l,h]of t.entries()){let[f,u]=h.header.mbs,d=Math.abs(s-f),p=Math.abs(i-u),_=Math.sqrt(p*p+d*d);n.push([l,_])}let o=n.sort((l,h)=>l[1]-h[1]),a=[];for(let l=0;l<r;l++)a.push(t[o[l][0]]);let c=[];for(let l=r;l<o.length;l++)c.push(t[o[l][0]]);return[a,c]}function CE(t){let e=t.getFrustumPlanes(),r=ad(e.near,t.cameraPosition),n=ci(t,r),s=ci(t,t.cameraPosition,qa),i=0;ja.planes[i++].fromPointNormal(n,od.copy(n).subtract(s));for(let o in e){if(o==="near")continue;let a=e[o],c=ad(a,r,qa),l=ci(t,c,qa);ja.planes[i++].fromPointNormal(l,od.copy(n).subtract(l))}}function ad(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ci(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.unprojectPosition(e);return L.WGS84.cartographicToCartesian(n,r)}var BE=6378137,ME=6378137,Za=6356752314245179e-9,Mr=new m;function hd(t,e){if(t instanceof Xt){let{halfAxes:r}=t,n=yE(r);return Math.log2(Za/(n+e[2]))}else if(t instanceof Ot){let{radius:r}=t;return Math.log2(Za/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,s=Math.log2(BE/r),i=Math.log2(ME/n);return(s+i)/2}return 1}function Qa(t,e,r){L.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Mr);let n=Math.sqrt(Math.pow(Mr[0]-r[0],2)+Math.pow(Mr[1]-r[1],2)+Math.pow(Mr[2]-r[2],2));return Math.log2(Za/(n+e[2]))}function fd(t,e,r){let[n,s,i,o]=t;return Qa({xmin:n,xmax:i,ymin:s,ymax:o,zmin:0,zmax:0},e,r)}function yE(t){t.getColumn(0,Mr);let e=t.getColumn(1),r=t.getColumn(2);return Mr.add(e).add(r).len()}var Id=v(Cr(),1);var _t={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Et=function(t){return t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE",t}({}),re=function(t){return t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh",t}({}),ft=function(t){return t.I3S="I3S",t.TILES3D="TILES3D",t}({}),qe=function(t){return t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold",t}({}),ud={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Ad(t){return t!=null}var ut=new m,li=new m,IE=new m,FE=new m,je=new m,dd=new m,pd=new m,gd=new m;function hi(t,e,r){if(V(t,"3D Tile: boundingVolume must be defined"),t.box)return md(t.box,e,r);if(t.region)return OE(t.region);if(t.sphere)return NE(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function _d(t,e){if(t.box)return bE(e);if(t.region){let[r,n,s,i,o,a]=t.region;return[[yt(r),yt(n),o],[yt(s),yt(i),a]]}if(t.sphere)return PE(e);throw new Error("Unkown boundingVolume type")}function md(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=[];if(t.length===10){let l=t.slice(3,6),h=new Zt;h.fromArray(t,6);let f=new m([1,0,0]),u=new m([0,1,0]),d=new m([0,0,1]);f.transformByQuaternion(h),f.scale(l[0]),u.transformByQuaternion(h),u.scale(l[1]),d.transformByQuaternion(h),d.scale(l[2]),s=[...f.toArray(),...u.toArray(),...d.toArray()]}else s=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let i=e.transformAsVector(s.slice(0,3)),o=e.transformAsVector(s.slice(3,6)),a=e.transformAsVector(s.slice(6,9)),c=new z([i[0],i[1],i[2],o[0],o[1],o[2],a[0],a[1],a[2]]);return Ad(r)?(r.center=n,r.halfAxes=c,r):new Xt(n,c)}function NE(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=e.getScale(li),i=Math.max(Math.max(s[0],s[1]),s[2]),o=t[3]*i;return Ad(r)?(r.center=n,r.radius=o,r):new Ot(n,o)}function OE(t){let[e,r,n,s,i,o]=t,a=L.WGS84.cartographicToCartesian([yt(e),yt(s),i],IE),c=L.WGS84.cartographicToCartesian([yt(n),yt(r),o],FE),l=new m().addVectors(a,c).multiplyByScalar(.5);return L.WGS84.cartesianToCartographic(l,je),L.WGS84.cartographicToCartesian([yt(n),je[1],je[2]],dd),L.WGS84.cartographicToCartesian([je[0],yt(s),je[2]],pd),L.WGS84.cartographicToCartesian([je[0],je[1],o],gd),md([...l,...dd.subtract(l),...pd.subtract(l),...gd.subtract(l)],new D)}function bE(t){let e=Td(),{halfAxes:r}=t,n=new m(r.getColumn(0)),s=new m(r.getColumn(1)),i=new m(r.getColumn(2));for(let o=0;o<2;o++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)ut.copy(t.center),ut.add(n),ut.add(s),ut.add(i),Ed(e,ut),i.negate();s.negate()}n.negate()}return e}function PE(t){let e=Td(),{center:r,radius:n}=t,s=L.WGS84.scaleToGeodeticSurface(r,ut),i;s?i=L.WGS84.geodeticSurfaceNormal(s):i=new m(0,0,1);let o=new m(i[2],-i[1],0);o.len()>0?o.normalize():o=new m(0,1,0);let a=o.clone().cross(i);for(let c of[o,a,i]){li.copy(c).scale(n);for(let l=0;l<2;l++)ut.copy(r),ut.add(li),Ed(e,ut),li.negate()}return e}function Td(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Ed(t,e){L.WGS84.cartesianToCartographic(e,ut),t[0][0]=Math.min(t[0][0],ut[0]),t[0][1]=Math.min(t[0][1],ut[1]),t[0][2]=Math.min(t[0][2],ut[2]),t[1][0]=Math.max(t[1][0],ut[0]),t[1][1]=Math.max(t[1][1],ut[1]),t[1][2]=Math.max(t[1][2],ut[2])}var VP=new m,XP=new m,WP=new D,zP=new m,kP=new m,GP=new m;function DE(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function wE(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return DE(e,r)*n}return 0}function Rd(t,e,r){let n=t.tileset,s=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,i=r?s:t.lodMetricValue;if(i===0)return 0;let o=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,h=i*a*(l||1)/(o*c);return h-=wE(n,o),h}var $a=new m,xd=new m,Fe=new m,Sd=new m,vE=new m,tc=new D,Cd=new D;function Bd(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*ec(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function ec(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],s=t.header.mbs[0],i=t.header.mbs[2],o=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);L.WGS84.cartographicToCartesian(c,$a),xd.copy($a).subtract(a).normalize(),L.WGS84.eastNorthUpToFixedFrame(a,tc),Cd.copy(tc).invert(),Fe.copy($a).transform(Cd);let l=Math.sqrt(Fe[0]*Fe[0]+Fe[1]*Fe[1]),h=l*l/Fe[2];Sd.copy([Fe[0],Fe[1],h]);let u=Sd.transform(tc).subtract(a).normalize(),p=xd.cross(u).normalize().scale(o).add(a),_=L.WGS84.cartesianToCartographic(p),A=r.project([s,n,i]),T=r.project(_);return vE.copy(A).subtract(T).magnitude()}function Md(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var Mn=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this._map=new Map,this._array=void 0,this._length=void 0,this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return V(e<this._array.length),this._array[e]}set(e,r){V(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){V(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){V(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var UE={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ne=class{traversalFinished(e){return!0}constructor(e){this.options=void 0,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={},this.lastUpdate=new Date().getTime(),this.updateDebounceTime=1e3,this._traversalStack=new Mn,this._emptyTraversalStack=new Mn,this._frameNumber=null,this.options={...UE,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let i=n.pop(),o=!1;this.canTraverse(i,r)&&(this.updateChildTiles(i,r),o=this.updateAndPushChildren(i,r,n,i.hasRenderContent?i._selectionDepth+1:i._selectionDepth));let a=i.parent,c=Boolean(!a||a._shouldRefine),l=!o;i.hasRenderContent?i.refine===Et.ADD?(this.loadTile(i,r),this.selectTile(i,r)):i.refine===Et.REPLACE&&(this.loadTile(i,r),l&&this.selectTile(i,r)):(this.emptyTiles[i.id]=i,this.loadTile(i,r),l&&this.selectTile(i,r)),this.touchTile(i,r),i._shouldRefine=o&&c}let s=new Date().getTime();(this.traversalFinished(r)||s-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=s,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let s of n)this.updateTile(s,r)}updateAndPushChildren(e,r,n,s){let{loadSiblings:i,skipLevelOfDetail:o}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Et.REPLACE&&e.hasRenderContent&&!o,l=!1,h=!0;for(let f of a)if(f._selectionDepth=s,f.isVisibleAndInRequestVolume?(n.find(f)&&n.delete(f),n.push(f),l=!0):(c||i)&&(this.loadTile(f,r),this.touchTile(f,r)),c){let u;if(f._inRequestVolume?f.hasRenderContent?u=f.contentAvailable:u=this.executeEmptyTraversal(f,r):u=!1,h=h&&u,!h)return!1}return l||(h=!1),h}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;return e.hasChildren?e.hasTilesetContent?!e.contentExpired:!s&&!e.isVisibleAndInRequestVolume?!1:this.shouldRefine(e,r,n):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=e._screenSpaceError;return n&&(s=e.getScreenSpaceError(r,!0)),s>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let s in this.options.viewportTraversersMap)this.options.viewportTraversersMap[s]===r.viewport.id&&n.push(s);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let s of e.children)s.updateVisibility(r),n=n||s.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,s=this._emptyTraversalStack;for(s.push(e);s.length>0;){let i=s.pop(),o=!i.hasRenderContent&&this.canTraverse(i,r,!1,!1),a=!i.hasRenderContent&&i.children.length===0;if(!o&&!i.contentAvailable&&!a&&(n=!1),this.updateTile(i,r),i.isVisibleAndInRequestVolume||(this.loadTile(i,r),this.touchTile(i,r)),o){let c=i.children;for(let l of c)s.push(l)}}return n}};var yd=new m;function LE(t){return t!=null}var Ze=class{constructor(e,r,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"";this.tileset=void 0,this.header=void 0,this.id=void 0,this.url=void 0,this.parent=void 0,this.refine=void 0,this.type=void 0,this.contentUrl=void 0,this.lodMetricType="geometricError",this.lodMetricValue=0,this.boundingVolume=null,this.content=null,this.contentState=_t.UNLOADED,this.gpuMemoryUsageInBytes=0,this.children=[],this.depth=0,this.viewportIds=[],this.transform=new D,this.extensions=null,this.implicitTiling=null,this.userData={},this.computedTransform=void 0,this.hasEmptyContent=!1,this.hasTilesetContent=!1,this.traverser=new ne({}),this._cacheNode=null,this._frameNumber=null,this._expireDate=null,this._expiredContent=null,this._boundingBox=void 0,this._distanceToCamera=0,this._screenSpaceError=0,this._visibilityPlaneMask=void 0,this._visible=void 0,this._contentBoundingVolume=void 0,this._viewerRequestVolume=void 0,this._initialTransform=new D,this._priority=0,this._selectedFrame=0,this._requestedFrame=0,this._selectionDepth=0,this._touchedFrame=0,this._centerZDepth=0,this._shouldRefine=!1,this._stackLength=0,this._visitedFrame=0,this._inRequestVolume=!1,this._lodJudge=null,this.header=r,this.tileset=e,this.id=s||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===_t.READY||this.hasEmptyContent}get contentAvailable(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===_t.UNLOADED}get contentExpired(){return this.contentState===_t.EXPIRED}get contentFailed(){return this.contentState===_t.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=_d(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case ft.I3S:return ec(this,e);case ft.TILES3D:return Rd(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===Et.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===_t.UNLOADED)return-1;let s=this.parent,o=s&&(!n||this._screenSpaceError===0||s.hasTilesetContent)?s._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-o,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=_t.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=_t.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),s=this.tileset.loader,i={...this.tileset.loadOptions,[s.id]:{...this.tileset.loadOptions[s.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(s.id)}};return this.content=await(0,Id.load)(n,s,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=_t.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=_t.FAILED,n}finally{r.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=_t.UNLOADED,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,s=n?n._visibilityPlaneMask:ot.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let i=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(i)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,s),this._visible=this._visibilityPlaneMask!==ot.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:s}=this;return n.computeVisibilityWithPlaneMask(s,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth(e){let{camera:r}=e,n=this.boundingVolume;return yd.subVectors(n.center,r.position),r.direction.dot(yd)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(LE(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=_t.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new D(e.transform):new D;let r=this.parent,n=this.tileset,s=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new D(s).multiplyRight(this.transform);let i=r&&r._initialTransform?r._initialTransform.clone():new D;this._initialTransform=new D(i).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=_t.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ot.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(e){return e||this.parent&&this.parent.refine||Et.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=hi(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=hi(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=hi(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(){let r=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:new D).clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){switch(e){case"i3s":return{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1};case"3d-tiles":case"cesium-ion":default:return Md(this.tileset.tileset)}}};var fi=class extends ne{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let o=e.children[0];this.updateTileVisibility(o,r),e._visible=o._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let s=e.refine===Et.REPLACE,i=e._optimChildrenWithinParent===ud.USE_OPTIMIZATION;if(s&&i&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Et.ADD?!1:!this.shouldRefine(e,r,!0)}};var Fd=v(Cr(),1);var ui=class{constructor(){this.frameNumberMap=new Map}register(e,r){let n=this.frameNumberMap.get(e)||new Map,s=n.get(r)||0;n.set(r,s+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let s=n.get(r)||1;n.set(r,s-1)}isZero(e,r){var n;return(((n=this.frameNumberMap.get(e))===null||n===void 0?void 0:n.get(r))||0)===0}};var rc={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},di=class{constructor(){this._statusMap=void 0,this.pendingTilesRegister=new ui,this._statusMap={}}add(e,r,n,s){if(!this._statusMap[r]){let{frameNumber:i,viewport:{id:o}}=s;this._statusMap[r]={request:e,callback:n,key:r,frameState:s,status:rc.REQUESTED},this.pendingTilesRegister.register(o,i),e().then(a=>{this._statusMap[r].status=rc.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,s)}).catch(a=>{this._statusMap[r].status=rc.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:s}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(s,n);let{frameNumber:i,viewport:{id:o}}=r;this.pendingTilesRegister.register(o,i),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var pi=class extends ne{constructor(e){super(e),this._tileManager=void 0,this._tileManager=new di}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=Bd(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],s=e.children,i=e.tileset;for(let o of n){let a=`${o.id}-${r.viewport.id}`,c=s&&s.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(o.id,i);this._tileManager.find(a)?this._tileManager.update(a,r):(i.tileset.nodePages&&(l=()=>i.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(l,a,f=>this._onTileLoad(f,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,s=r.getTileUrl(`${r.url}/nodes/${e}`),i={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,Fd.load)(s,n,i)}_onTileLoad(e,r,n){let s=new Ze(r.tileset,e,r,n);r.children.push(s);let i=this._tileManager.find(s.id).frameState;this.updateTile(s,i),this._frameNumber===i.frameNumber&&(this.traversalFinished(i)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(s,i)}};var HE={description:"",ellipsoid:L.WGS84,modelMatrix:new D,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},gi="Tiles In Tileset(s)",nc="Tiles In Memory",Nd="Tiles In View",Od="Tiles To Render",bd="Tiles Loaded",sc="Tiles Loading",Pd="Tiles Unloaded",Dd="Failed Tile Loads",wd="Points/Vertices",ic="Tile Memory Use",vd="Maximum Screen Space Error",yn=class{constructor(e,r){this.options=void 0,this.loadOptions=void 0,this.type=void 0,this.tileset=void 0,this.loader=void 0,this.url=void 0,this.basePath=void 0,this.modelMatrix=void 0,this.ellipsoid=void 0,this.lodMetricType=void 0,this.lodMetricValue=void 0,this.refine=void 0,this.root=null,this.roots={},this.asset={},this.description="",this.properties=void 0,this.extras=null,this.attributions={},this.credits={},this.stats=void 0,this.contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1},this.cartographicCenter=null,this.cartesianCenter=null,this.zoom=1,this.boundingVolume=null,this.dynamicScreenSpaceErrorComputedDensity=0,this.maximumMemoryUsage=32,this.gpuMemoryUsageInBytes=0,this.memoryAdjustedScreenSpaceError=0,this._cacheBytes=0,this._cacheOverflowBytes=0,this._frameNumber=0,this._queryParams={},this._extensionsUsed=[],this._tiles={},this._pendingCount=0,this.selectedTiles=[],this.traverseCounter=0,this.geometricError=0,this.lastUpdatedVieports=null,this._requestedTiles=[],this._emptyTiles=[],this.frameStateData={},this._traverser=void 0,this._cache=new ai,this._requestScheduler=void 0,this.updatePromise=null,this.tilesetInitializationPromise=void 0,this.options={...HE,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Te.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new me({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new _e({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return Boolean(this._extensionsUsed.indexOf(e)>-1)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let s of r){let i=s.id;this._needTraverse(i)?n.push(i):this.traverseCounter--}for(let s of r){let i=s.id;if(this.roots[i]||(this.roots[i]=this._initializeTileHeaders(this.tileset,null)),!n.includes(i))continue;let o=cd(s,this._frameNumber);this._traverser.traverse(this.roots[i],o,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],s=Object.values(this._traverser.selectedTiles),[i,o]=ld(s,e,this.options.maximumTilesSelected);n.selectedTiles=i;for(let a of o)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let e in this.frameStateData){let r=this.frameStateData[e];this.selectedTiles=this.selectedTiles.concat(r.selectedTiles),this._requestedTiles=this._requestedTiles.concat(r._requestedTiles),this._emptyTiles=this._emptyTiles.concat(r._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(let e of this.selectedTiles)this._tiles[e.id]=e;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(o=>o.id)),s=new Set(r.map(o=>o.id)),i=e.filter(o=>!s.has(o.id)).length>0;return i=i||r.filter(o=>!n.has(o.id)).length>0,i}_loadTiles(){for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(Nd).count=this.selectedTiles.length,this.stats.get(Od).count=e,this.stats.get(wd).count=r,this.stats.get(vd).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===ft.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===ft.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===ft.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){var e;let r=this.tileset.fullExtent;if(r){let{xmin:s,xmax:i,ymin:o,ymax:a,zmin:c,zmax:l}=r;this.cartographicCenter=new m(s+(i-s)/2,o+(a-o)/2,c+(l-c)/2),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Qa(r,this.cartographicCenter,this.cartesianCenter);return}let n=(e=this.tileset.store)===null||e===void 0?void 0:e.extent;if(n){let[s,i,o,a]=n;this.cartographicCenter=new m(s+(o-s)/2,i+(a-i)/2,0),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=fd(n,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new m,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new m,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new m,L.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new m(0,0,-L.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=hd(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(gi),this.stats.get(sc),this.stats.get(nc),this.stats.get(Nd),this.stats.get(Od),this.stats.get(bd),this.stats.get(Pd),this.stats.get(Dd),this.stats.get(wd),this.stats.get(ic,"memory"),this.stats.get(vd)}_initializeTileHeaders(e,r){let n=new Ze(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===ft.TILES3D){let i=[];for(i.push(n);i.length>0;){let o=i.pop();this.stats.get(gi).incrementCount();let a=o.header.children||[];for(let c of a){var s;let l=new Ze(this,c,o);if((s=l.contentUrl)!==null&&s!==void 0&&s.includes("?session=")){let f=new URL(l.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}o.children.push(l),l.depth=o.depth+1,i.push(l)}}}return n}_initializeTraverser(){let e;switch(this.type){case ft.TILES3D:e=fi;break;case ft.I3S:e=pi;break;default:e=ne}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(Dd).incrementCount();let n=r.message||r.toString(),s=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,s)}_onTileLoad(e,r){if(r){if(this.type===ft.I3S){var n,s;let i=((n=this.tileset)===null||n===void 0||(s=n.nodePagesTile)===null||s===void 0?void 0:s.nodesInNodePages)||0;this.stats.get(gi).reset(),this.stats.get(gi).addCount(i)}e&&e.content&&id(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===ft.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===ft.TILES3D){var r;let{extensionsRemoved:n=[]}=((r=e.content)===null||r===void 0?void 0:r.gltf)||{};n.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),n.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),n.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(sc).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(sc).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(bd).incrementCount(),this.stats.get(nc).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(nc).decrementCount(),this.stats.get(Pd).incrementCount(),this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let s of e.children)n.push(s);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}};var Ai="4.1.0";var Qe={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},VD=Object.keys(Qe);function oc(t,e,r){V(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),s=new Uint8Array(t,e,r);return n.decode(s)}function Ud(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var Ld="4.1.0";var Hd={name:"Draco",id:"draco",module:"draco",version:Ld,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Vd(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function $e(t){let e=1/0,r=1/0,n=1/0,s=-1/0,i=-1/0,o=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let h=a[l],f=a[l+1],u=a[l+2];e=h<e?h:e,r=f<r?f:r,n=u<n?u:n,s=h>s?h:s,i=f>i?f:i,o=u>o?u:o}return[[e,r,n],[s,i,o]]}function ac(t,e,r){let n=Vd(e.value),s=r||Xd(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:s}}function Xd(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function zd(t,e,r){let n=kd(e.metadata),s=[],i=VE(e.attributes);for(let o in t){let a=t[o],c=Wd(o,a,i[o]);s.push(c)}if(r){let o=Wd("indices",r);s.push(o)}return{fields:s,metadata:n}}function VE(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function Wd(t,e,r){let n=r?kd(r.metadata):void 0;return ac(t,e,n)}function kd(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var Gd={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},XE={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},WE=4,In=class{constructor(e){this.draco=void 0,this.decoder=void 0,this.metadataQuerier=void 0,this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let s=this.decoder.GetEncodedGeometryType(n),i=s===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let o;switch(s){case this.draco.TRIANGULAR_MESH:o=this.decoder.DecodeBufferToMesh(n,i);break;case this.draco.POINT_CLOUD:o=this.decoder.DecodeBufferToPointCloud(n,i);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!o.ok()||!i.ptr){let u=`DRACO decompression failed: ${o.error_msg()}`;throw new Error(u)}let a=this._getDracoLoaderData(i,s,r),c=this._getMeshData(i,a,r),l=$e(c.attributes),h=zd(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:i.num_points(),boundingBox:l},...c,schema:h}}finally{this.draco.destroy(n),i&&this.draco.destroy(i)}}_getDracoLoaderData(e,r,n){let s=this._getTopLevelMetadata(e),i=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:s,attributes:i}}_getDracoAttributes(e,r){let n={};for(let s=0;s<e.num_attributes();s++){let i=this.decoder.GetAttribute(e,s),o=this._getAttributeMetadata(e,s);n[i.unique_id()]={unique_id:i.unique_id(),attribute_type:i.attribute_type(),data_type:i.data_type(),num_components:i.num_components(),byte_offset:i.byte_offset(),byte_stride:i.byte_stride(),normalized:i.normalized(),attribute_index:s,metadata:o};let a=this._getQuantizationTransform(i,r);a&&(n[i.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(i,r);c&&(n[i.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let s=this._getMeshAttributes(r,e,n);if(!s.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:s,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:s,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:s}}_getMeshAttributes(e,r,n){let s={};for(let i of Object.values(e.attributes)){let o=this._deduceAttributeName(i,n);i.name=o;let{value:a,size:c}=this._getAttributeValues(r,i);s[o]={value:a,size:c,byteOffset:i.byte_offset,byteStride:i.byte_stride,normalized:i.normalized}}return s}_getTriangleListIndices(e){let n=e.num_faces()*3,s=n*WE,i=this.draco._malloc(s);try{return this.decoder.GetTrianglesUInt32Array(e,s,i),new Uint32Array(this.draco.HEAPF32.buffer,i,n).slice()}finally{this.draco._free(i)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),GE(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=XE[r.data_type],s=r.num_components,o=e.num_points()*s,a=o*n.BYTES_PER_ELEMENT,c=zE(this.draco,n),l,h=this.draco._malloc(a);try{let f=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,f,c,a,h),l=new n(this.draco.HEAPF32.buffer,h,o).slice()}finally{this.draco._free(h)}return{value:l,size:s}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[o,a]of Object.entries(r.extraAttributes||{}))if(a===n)return o;let s=e.attribute_type;for(let o in Gd)if(this.draco[o]===s)return Gd[o];let i=r.attributeNameEntry||"name";return e.metadata[i]?e.metadata[i].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let s=0;s<n;s++){let i=this.metadataQuerier.GetEntryName(e,s);r[i]=this._getDracoMetadataField(e,i)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let s=kE(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:s}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,s=[...r,...n];for(let i of s)this.decoder.SkipAttributeTransform(this.draco[i])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits(),range:o.range(),min_values:new Float32Array([1,2,3]).map(a=>o.min_value(a))}}finally{this.draco.destroy(o)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits()}}finally{this.draco.destroy(o)}}return null}};function zE(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function kE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function GE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var KE="1.5.6",JE="1.4.1",cc=`https://www.gstatic.com/draco/versioned/decoders/${KE}`,Rt={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},lc={[Rt.DECODER]:`${cc}/${Rt.DECODER}`,[Rt.DECODER_WASM]:`${cc}/${Rt.DECODER_WASM}`,[Rt.FALLBACK_DECODER]:`${cc}/${Rt.FALLBACK_DECODER}`,[Rt.ENCODER]:`https://raw.githubusercontent.com/google/draco/${JE}/javascript/${Rt.ENCODER}`},Fn;async function Kd(t){let e=t.modules||{};return e.draco3d?Fn=Fn||e.draco3d.createDecoderModule({}).then(r=>({draco:r})):Fn=Fn||YE(t),await Fn}async function YE(t){let e,r;switch(t.draco&&t.draco.decoderType){case"js":e=await qt(lc[Rt.FALLBACK_DECODER],"draco",t,Rt.FALLBACK_DECODER);break;case"wasm":default:[e,r]=await Promise.all([await qt(lc[Rt.DECODER],"draco",t,Rt.DECODER),await qt(lc[Rt.DECODER_WASM],"draco",t,Rt.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await qE(e,r)}function qE(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:s=>n({draco:s})})})}var _i={...Hd,parse:jE};async function jE(t,e){let{draco:r}=await Kd(e),n=new In(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var ZE={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},st={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},w={...ZE,...st};var hc={[st.DOUBLE]:Float64Array,[st.FLOAT]:Float32Array,[st.UNSIGNED_SHORT]:Uint16Array,[st.UNSIGNED_INT]:Uint32Array,[st.UNSIGNED_BYTE]:Uint8Array,[st.BYTE]:Int8Array,[st.SHORT]:Int16Array,[st.INT]:Int32Array},QE={DOUBLE:st.DOUBLE,FLOAT:st.FLOAT,UNSIGNED_SHORT:st.UNSIGNED_SHORT,UNSIGNED_INT:st.UNSIGNED_INT,UNSIGNED_BYTE:st.UNSIGNED_BYTE,BYTE:st.BYTE,SHORT:st.SHORT,INT:st.INT},fc="Failed to convert GL type",dt=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in hc)if(hc[r]===e)return r;throw new Error(fc)}static fromName(e){let r=QE[e];if(!r)throw new Error(fc);return r}static getArrayType(e){switch(e){case st.UNSIGNED_SHORT_5_6_5:case st.UNSIGNED_SHORT_4_4_4_4:case st.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=hc[e];if(!r)throw new Error(fc);return r}}static getByteSize(e){return dt.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(dt.getArrayType(e))}static createTypedArray(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0;s===void 0&&(s=(r.byteLength-n)/dt.getByteSize(e));let i=dt.getArrayType(e);return new i(r,n,s)}};function Jd(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function uc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],r=t>>11&31,n=t>>5&63,s=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=s<<3,e}var Ew=1/256;var Rw=new Ve,xw=new m,Sw=new Ve,Cw=new Ve,Bw=new Uint8Array(1);function Yd(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:255;return us(t,0,e)/e*2-1}function qd(t){return t<0?-1:1}function jd(t,e,r,n){if(Jd(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=Yd(t,r),n.y=Yd(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let s=n.x;n.x=(1-Math.abs(n.y))*qd(s),n.y=(1-Math.abs(s))*qd(n.y)}return n.normalize()}function dc(t,e,r){return jd(t,e,255,r)}var fe=class{constructor(e,r){this.json=void 0,this.buffer=void 0,this.featuresLength=0,this._cachedTypedArrays={},this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return Boolean(this.json[e])}getGlobalProperty(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:w.UNSIGNED_INT,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,s=this.json[e];return s&&Number.isFinite(s.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,s.byteOffset):s}getPropertyArray(e,r,n){let s=this.json[e];return s&&Number.isFinite(s.byteOffset)?("componentType"in s&&(r=dt.fromName(s.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,s.byteOffset)):this._getTypedArrayFromArray(e,r,s)}getProperty(e,r,n,s,i){let o=this.json[e];if(!o)return o;let a=this.getPropertyArray(e,r,n);if(n===1)return a[s];for(let c=0;c<n;++c)i[c]=a[n*s+c];return i}_getTypedArrayFromBinary(e,r,n,s,i){let o=this._cachedTypedArrays,a=o[e];return a||(a=dt.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+i,s*n),o[e]=a),a}_getTypedArrayFromArray(e,r,n){let s=this._cachedTypedArrays,i=s[e];return i||(i=dt.createTypedArray(r,n),s[e]=i),i}};var $E={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},tR={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},eR={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function Zd(t,e,r,n){let{componentType:s}=t;V(t.componentType);let i=typeof s=="string"?dt.fromName(s):s,o=$E[t.type],a=tR[t.type],c=eR[t.type];return r+=t.byteOffset,{values:dt.createTypedArray(i,e,r,o*n),type:i,size:o,unpacker:a,packer:c}}var se=t=>t!==void 0;function Qd(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),s=e.HIERARCHY;return s&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=s,n=s),n?rR(n,r):null}function rR(t,e){let r,n,s,i=t.instancesLength,o=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,h=i;se(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,s=getBinaryAccessor(a),a=s.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,i));let f;if(se(c))for(se(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,s=getBinaryAccessor(c),c=s.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,i)),f=new Uint16Array(i),h=0,r=0;r<i;++r)f[r]=h,h+=c[r];se(l)&&se(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,s=getBinaryAccessor(l),l=s.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,h));let u=o.length;for(r=0;r<u;++r){let A=o[r].length,T=o[r].instances,x=getBinaryProperties(A,T,e);o[r].instances=combine(x,T)}let d=new Array(u).fill(0),p=new Uint16Array(i);for(r=0;r<i;++r)n=a[r],p[r]=d[n],++d[n];let _={classes:o,classIds:a,classIndexes:p,parentCounts:c,parentIndexes:f,parentIds:l};return iR(_),_}function yr(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?nR(t,e,r):sR(t,e,r)}function nR(t,e,r){let n=t.classIds,s=t.parentCounts,i=t.parentIds,o=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,h=scratchStack;for(h.length=0,h.push(e);h.length>0;){if(e=h.pop(),c[e]===l)continue;c[e]=l;let f=r(t,e);if(se(f))return f;let u=s[e],d=o[e];for(let p=0;p<u;++p){let _=i[d+p];_!==e&&h.push(_)}}return null}function sR(t,e,r){let n=!0;for(;n;){let s=r(t,e);if(se(s))return s;let i=t.parentIds[e];n=i!==e,e=i}throw new Error("traverseHierarchySingleParent")}function iR(t){let e=[],n=t.classIds.length;for(let s=0;s<n;++s)$d(t,s,stack)}function $d(t,e,r){let n=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=t.classIds.length;if(!se(s))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=se(n)?n[e]:1,l=se(n)?i[e]:e;for(let h=0;h<c;++h){let f=s[l+h];f!==e&&$d(t,f,r)}r.pop(e)}function xt(t){return t!=null}var mi=(t,e)=>t,oR={HIERARCHY:!0,extensions:!0,extras:!0},tr=class{constructor(e,r,n){var s;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};this.json=void 0,this.binary=void 0,this.featureCount=void 0,this._extensions=void 0,this._properties=void 0,this._binaryProperties=void 0,this._hierarchy=void 0,V(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=((s=this.json)===null||s===void 0?void 0:s.extensions)||{},this._properties={};for(let o in this.json)oR[o]||(this._properties[o]=this.json[o]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Qd(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._hierarchy){let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i];return s.classes[o].name===r});return xt(n)}return!1}isExactClass(e,r){return V(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),V(typeof r=="string",r),xt(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=xt(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let s=this._binaryProperties[r];if(xt(s))return this._getBinaryProperty(s,e)}let n=this._properties[r];if(xt(n))return mi(n[e],!0);if(this._hierarchy){let s=this._getHierarchyProperty(e,r);if(xt(s))return s}}setProperty(e,r,n){let s=this.featureCount;if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(o){this._setBinaryProperty(o,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let i=this._properties[r];xt(i)||(this._properties[r]=new Array(s),i=this._properties[r]),i[e]=mi(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],s=this._initializeBinaryProperty(r,n);s&&(e=e||{},e[r]=s)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;V(this.binary,`Property ${e} requires a batch table binary.`),V(n.type,`Property ${e} requires a type.`);let s=Zd(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:s.values,componentCount:s.size,unpack:s.unpacker,pack:s.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i],a=s.classes[o].instances;return xt(a[r])});return xt(n)}_getPropertyNamesInHierarchy(e,r){yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i].instances;for(let a in o)o.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i],a=n.classIndexes[s],c=o.instances[r];return xt(c)?xt(c.typedArray)?this._getBinaryProperty(c,a):mi(c[a],!0):null})}_setHierarchyProperty(e,r,n,s){let i=yr(this._hierarchy,r,(o,a)=>{let c=o.classIds[a],l=o.classes[c],h=o.classIndexes[a],f=l.instances[n];return xt(f)?(V(a===r,`Inherited property "${n}" is read-only.`),xt(f.typedArray)?this._setBinaryProperty(f,h,s):f[h]=mi(s,!0),!0):!1});return xt(i)}};function Ne(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var Ir=4,tp="b3dm tile in legacy format.";function Fr(t,e,r){let n=new DataView(e),s;t.header=t.header||{};let i=n.getUint32(r,!0);r+=Ir;let o=n.getUint32(r,!0);r+=Ir;let a=n.getUint32(r,!0);r+=Ir;let c=n.getUint32(r,!0);return r+=Ir,a>=570425344?(r-=Ir*2,s=i,a=o,c=0,i=0,o=0,console.warn(tp)):c>=570425344&&(r-=Ir,s=a,a=i,c=o,i=0,o=0,console.warn(tp)),t.header.featureTableJsonByteLength=i,t.header.featureTableBinaryByteLength=o,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=s,r}function Nr(t,e,r,n){return r=aR(t,e,r,n),r=cR(t,e,r,n),r}function aR(t,e,r,n){let{featureTableJsonByteLength:s,featureTableBinaryByteLength:i,batchLength:o}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:o||0},s&&s>0){let a=oc(e,r,s);t.featureTableJson=JSON.parse(a)}return r+=s||0,t.featureTableBinary=new Uint8Array(e,r,i),r+=i||0,r}function cR(t,e,r,n){let{batchTableJsonByteLength:s,batchTableBinaryByteLength:i}=t.header||{};if(s&&s>0){let o=oc(e,r,s);t.batchTableJson=JSON.parse(o),r+=s,i&&i>0&&(t.batchTableBinary=new Uint8Array(e,r,i),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=i)}return r}function pc(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:s,pointCount:i=0}=t;if(n&&r){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=n[a],h=r.getProperty(c,"dimensions").map(f=>f*255);o[a*3]=h[0],o[a*3+1]=h[1],o[a*3+2]=h[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}if(e&&s){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=uc(e[a]);o[a*3]=c[0],o[a*3+1]=c[1],o[a*3+2]=c[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}return e&&e.length===i*3?{type:w.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:w.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var ep=new m;function rp(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)dc(e[n*2],e[n*2+1],ep),ep.toArray(r,n*3);return{type:w.FLOAT,size:2,value:r}}return{type:w.FLOAT,size:2,value:e}}function np(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,lR(t,e)):{type:w.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function lR(t,e){let r=new m,n=new Float32Array(t.pointCount*3);for(let s=0;s<t.pointCount;s++)r.set(e[s*3],e[s*3+1],e[s*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,s*3);return n}async function sp(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),hR(t);let{featureTable:i,batchTable:o}=fR(t);return await AR(t,i,o,n,s),uR(t,i,n),dR(t,i,o),pR(t,i),r}function hR(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function fR(t){let e=new fe(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let n=gR(t,e);return{featureTable:e,batchTable:n}}function uR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",w.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=np(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function dR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",w.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",w.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",w.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=pc(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",w.UNSIGNED_BYTE,4))}function pR(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",w.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",w.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=rp(t,r)}}function gR(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",w.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:s,batchTableBinary:i}=t;r=new tr(s,i,n)}return r}async function AR(t,e,r,n,s){let i,o,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){o=l.properties;let f=l.byteOffset,u=l.byteLength;if(!o||!Number.isFinite(f)||!u)throw new Error("Draco properties, byteOffset, and byteLength must be defined");i=(t.featureTableBinary||[]).slice(f,f+u),t.hasPositions=Number.isFinite(o.POSITION),t.hasColors=Number.isFinite(o.RGB)||Number.isFinite(o.RGBA),t.hasNormals=Number.isFinite(o.NORMAL),t.hasBatchIds=Number.isFinite(o.BATCH_ID),t.isTranslucent=Number.isFinite(o.RGBA)}if(!i)return!0;let h={buffer:i,properties:{...o,...a},featureTableProperties:o,batchTableProperties:a,dequantizeInShader:!1};return await _R(t,h,n,s)}async function _R(t,e,r,n){if(!n)return;let s={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete s["3d-tiles"];let i=await Ct(e.buffer,_i,s,n),o=i.attributes.POSITION&&i.attributes.POSITION.value,a=i.attributes.COLOR_0&&i.attributes.COLOR_0.value,c=i.attributes.NORMAL&&i.attributes.NORMAL.value,l=i.attributes.BATCH_ID&&i.attributes.BATCH_ID.value,h=o&&i.attributes.POSITION.value.quantization,f=c&&i.attributes.NORMAL.value.quantization;if(h){let d=i.POSITION.data.quantization,p=d.range;t.quantizedVolumeScale=new m(p,p,p),t.quantizedVolumeOffset=new m(d.minValues),t.quantizedRange=(1<<d.quantizationBits)-1,t.isQuantizedDraco=!0}f&&(t.octEncodedRange=(1<<i.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let u={};if(e.batchTableProperties)for(let d of Object.keys(e.batchTableProperties))i.attributes[d]&&i.attributes[d].value&&(u[d.toLowerCase()]=i.attributes[d].value);t.attributes={positions:o,colors:pc(t,a,void 0),normals:c,batchIds:l,...u}}var gc={};ht(gc,{decode:()=>FR,name:()=>IR});function at(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var Ti={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ei={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var mR=1.33,ip=["SCALAR","VEC2","VEC3","VEC4"],TR=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],ER=new Map(TR),RR={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xR={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},SR={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Ri(t){return ip[t-1]||ip[0]}function Or(t){let e=ER.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function br(t,e){let r=SR[t.componentType],n=RR[t.type],s=xR[t.componentType],i=t.count*n,o=t.count*n*s;at(o>=0&&o<=e.byteLength);let a=Ei[t.componentType],c=Ti[t.type];return{ArrayType:r,length:i,byteLength:o,componentByteSize:a,numberOfComponentsInElement:c}}function Nn(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(o=>o.bufferView);r=r.filter(o=>!n.includes(o));let s=r.reduce((o,a)=>o+a.byteLength,0),i=e.reduce((o,a)=>{let{width:c,height:l}=a.image;return o+c*l},0);return s+Math.ceil(4*i*mR)}function op(t,e,r){let n=t.bufferViews[r];at(n);let s=n.buffer,i=e[s];at(i);let o=(n.byteOffset||0)+i.byteOffset;return new Uint8Array(i.arrayBuffer,o,n.byteLength)}function ap(t,e,r){var n,s;let i=typeof r=="number"?(n=t.accessors)===null||n===void 0?void 0:n[r]:r;if(!i)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=(s=t.bufferViews)===null||s===void 0?void 0:s[i.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:a,byteOffset:c}=e[o.buffer],l=(c||0)+(i.byteOffset||0)+(o.byteOffset||0),{ArrayType:h,length:f,componentByteSize:u,numberOfComponentsInElement:d}=br(i,o),p=u*d,_=o.byteStride||p;if(typeof o.byteStride>"u"||o.byteStride===p)return new h(a,l,f);let A=new h(f);for(let T=0;T<i.count;T++){let x=new h(a,l+T*_,d);A.set(x,T*d)}return A}function CR(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var K=class{constructor(e){this.gltf=void 0,this.sourceBuffers=void 0,this.byteLength=void 0,this.gltf={json:e?.json||CR(),buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.getRequiredExtensions().find(s=>s===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];at(n);let s=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,s,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return ap(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),s=this.getBuffer(r.buffer).data,i=r.byteOffset||0;return new Uint8Array(s,i,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let s=e.extensions||{};s[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let s=this.json.extensionsRemoved;s.includes(r)||s.push(r)}delete n[r]}addExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){var r;if((r=this.json.extensions)!==null&&r!==void 0&&r[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let n=this.json.extensionsRemoved;n.includes(e)||n.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let s={mesh:r};return n&&(s.matrix=n),this.json.nodes.push(s),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:s,mode:i=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:i}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(s)&&(a.primitives[0].material=s),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=He(e),s=r||n?.mimeType,o={bufferView:this.addBufferView(e),mimeType:s};return this.json.images=this.json.images||[],this.json.images.push(o),this.json.images.length-1}addBufferView(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.byteLength,s=e.byteLength;at(Number.isFinite(s)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let i={buffer:r,byteOffset:n,byteLength:s};return this.byteLength+=Ae(s,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(i),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:Ri(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{size:3},n=this.addBufferView(e),s={min:r.min,max:r.max};(!s.min||!s.max)&&(s=this._getAccessorMinMax(e,r.size));let i={size:r.size,componentType:Or(e),count:Math.round(e.length/r.size),min:s.min,max:s.max};return this.addAccessor(n,Object.assign(i,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var e,r;this.gltf.buffers=[];let n=this.byteLength,s=new ArrayBuffer(n),i=new Uint8Array(s),o=0;for(let a of this.sourceBuffers||[])o=So(a,i,o);(e=this.json)!==null&&e!==void 0&&(r=e.buffers)!==null&&r!==void 0&&r[0]?this.json.buffers[0].byteLength=n:this.json.buffers=[{byteLength:n}],this.gltf.binary=s,this.sourceBuffers=[s]}_removeStringFromArray(e,r){let n=!0;for(;n;){let s=e.indexOf(r);s>-1?e.splice(s,1):n=!1}}_addAttributes(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};for(let n in e){let s=e[n],i=this._getGltfAttributeName(n),o=this.addBinaryBuffer(s.value,s);r[i]=o}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let s=e.subarray(0,r);for(let i of s)n.min.push(i),n.max.push(i);for(let i=r;i<e.length;i+=r)for(let o=0;o<r;o++)n.min[0+o]=Math.min(n.min[0+o],e[i+o]),n.max[0+o]=Math.max(n.max[0+o],e[i+o]);return n}};function cp(t){return(t%1+1)%1}var lp={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},BR={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},hp={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function On(t,e){return hp[e]*lp[t]}function Pr(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let s=t.getTypedArrayForBufferView(e),i=Dr(s,"SCALAR",r,n+1);return i instanceof BigInt64Array||i instanceof BigUint64Array?null:i}function Dr(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=lp[e],i=BR[r],o=hp[r],a=n*s,c=a*o,l=t.buffer,h=t.byteOffset;return h%o!==0&&(l=new Uint8Array(l).slice(h,h+c).buffer,h=0),new i(l,h,a)}function wr(t,e,r){var n,s;let i=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[i],a=t.getTypedArrayForAccessor(o),c=t.gltf.json,l=e.index,h=(n=c.textures)===null||n===void 0||(s=n[l])===null||s===void 0?void 0:s.source;if(typeof h<"u"){var f,u,d;let p=(f=c.images)===null||f===void 0||(u=f[h])===null||u===void 0?void 0:u.mimeType,_=(d=t.gltf.images)===null||d===void 0?void 0:d[h];if(_&&typeof _.width<"u"){let A=[];for(let T=0;T<a.length;T+=2){let x=MR(_,p,a,T,e.channels);A.push(x)}return A}}return[]}function xi(t,e,r,n,s){if(!(r!=null&&r.length))return;let i=[];for(let h of r){let f=n.findIndex(u=>u===h);f===-1&&(f=n.push(h)-1),i.push(f)}let o=new Uint32Array(i),a=t.gltf.buffers.push({arrayBuffer:o.buffer,byteOffset:o.byteOffset,byteLength:o.byteLength})-1,c=t.addBufferView(o,a,0),l=t.addAccessor(c,{size:1,componentType:Or(o),count:o.length});s.attributes[e]=l}function MR(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[0],i={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},o=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=yR(o,a,t,c),h=0;for(let f of s){let u=typeof f=="number"?Object.values(i)[f]:i[f],d=l+u.offset,p=en(t);if(p.data.length<=d)throw new Error(`${p.data.length} <= ${d}`);let _=p.data[d];h|=_<<u.shift}return h}function yR(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=r.width,i=cp(t)*(s-1),o=Math.round(i),a=r.height,c=cp(e)*(a-1),l=Math.round(c),h=r.components?r.components:n;return(l*s+o)*h}function Si(t,e,r,n,s){let i=[];for(let o=0;o<e;o++){let a=r[o],c=r[o+1]-r[o];if(c+a>n)break;let l=a/s,h=c/s;i.push(t.slice(l,l+h))}return i}function Ci(t,e,r){let n=[];for(let s=0;s<e;s++){let i=s*r;n.push(t.slice(i,i+r))}return n}function Bi(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let s=[],i=new TextDecoder("utf8"),o=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+o<=e.length){let l=e.subarray(o,c+o),h=i.decode(l);s.push(h),o+=c}}return s}return[]}var fp="EXT_mesh_features",IR=fp;async function FR(t,e){let r=new K(t);NR(r,e)}function NR(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let s of n.primitives)OR(t,s,e)}function OR(t,e,r){var n,s;if(!(r!=null&&(n=r.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=(s=e.extensions)===null||s===void 0?void 0:s[fp],o=i?.featureIds;if(o)for(let c of o){var a;let l;if(typeof c.attribute<"u"){let h=`_FEATURE_ID_${c.attribute}`,f=e.attributes[h];l=t.getTypedArrayForAccessor(f)}else typeof c.texture<"u"&&r!==null&&r!==void 0&&(a=r.gltf)!==null&&a!==void 0&&a.loadImages?l=wr(t,c.texture,e):l=[];c.data=l}}var mc={};ht(mc,{decode:()=>PR,name:()=>bR});var Ac="EXT_structural_metadata",bR=Ac;async function PR(t,e){let r=new K(t);DR(r,e)}function DR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(Ac);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&wR(t,s),vR(t,s))}function wR(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let s of n.meshes)for(let i of s.primitives)LR(t,r,i,e)}function vR(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.propertyTables;if(n&&s)for(let i in n){let o=UR(s,i);o&&VR(t,r,o)}}function UR(t,e){for(let r of t)if(r.class===e)return r;return null}function LR(t,e,r,n){var s;if(!e)return;let i=(s=r.extensions)===null||s===void 0?void 0:s[Ac],o=i?.propertyTextures;if(o)for(let a of o){let c=e[a];HR(t,c,r,n)}}function HR(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let s=e.class;for(let o in e.properties){var i;let a=`${s}_${o}`,c=(i=e.properties)===null||i===void 0?void 0:i[o];if(!c)continue;c.data||(c.data=[]);let l=c.data,h=wr(t,c,r);h!==null&&(xi(t,a,h,l,r),c.data=l,n.dataAttributeNames.push(a))}}function VR(t,e,r){var n;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=XR(t,e,c,i,l);l.data=h}}}function XR(t,e,r,n,s){let i=[],o=s.values,a=t.getTypedArrayForBufferView(o),c=WR(t,r,s,n),l=zR(t,s,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{i=kR(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{i=Bi(n,a,c,l);break}case"ENUM":{i=GR(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return i}function WR(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?Pr(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function zR(t,e,r){return typeof e.stringOffsets<"u"?Pr(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function kR(t,e,r,n){let s=t.array,i=t.count,o=On(t.type,t.componentType),a=r.byteLength/o,c;return t.componentType?c=Dr(r,t.type,t.componentType,a):c=r,s?n?Si(c,e,n,r.length,o):i?Ci(c,e,i):[]:c}function GR(t,e,r,n,s){var i;let o=e.enumType;if(!o)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let a=(i=t.enums)===null||i===void 0?void 0:i[o];if(!a)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${o}`);let c=a.valueType||"UINT16",l=On(e.type,c),h=n.byteLength/l,f=Dr(n,e.type,c,h);if(f||(f=n),e.array){if(s)return KR({valuesData:f,numberOfElements:r,arrayOffsets:s,valuesDataBytesLength:n.length,elementSize:l,enumEntry:a});let u=e.count;return u?JR(f,r,u,a):[]}return _c(f,0,r,a)}function KR(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:s,elementSize:i,enumEntry:o}=t,a=[];for(let c=0;c<r;c++){let l=n[c],h=n[c+1]-n[c];if(h+l>s)break;let f=l/i,u=h/i,d=_c(e,f,u,o);a.push(d)}return a}function JR(t,e,r,n){let s=[];for(let i=0;i<e;i++){let o=r*i,a=_c(t,o,r,n);s.push(a)}return s}function _c(t,e,r,n){let s=[];for(let i=0;i<r;i++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)s.push("");else{let o=t[e+i],a=YR(n,o);a?s.push(a.name):s.push("")}return s}function YR(t,e){for(let r of t.values)if(r.value===e)return r;return null}var Tc={};ht(Tc,{decode:()=>jR,name:()=>qR});var up="EXT_feature_metadata",qR=up;async function jR(t,e){let r=new K(t);ZR(r,e)}function ZR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(up);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&QR(t,s),$R(t,s))}function QR(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:s}=e;if(n&&s)for(let i in n){let o=n[i],a=ex(s,i);a&&nx(t,a,o)}}function $R(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.featureTables;if(n&&s)for(let i in n){let o=tx(s,i);o&&rx(t,r,o)}}function tx(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function ex(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function rx(t,e,r){var n;if(!r.class)return;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=sx(t,e,c,i,l);l.data=h}}}function nx(t,e,r){let n=e.class;for(let i in r.properties){var s;let o=e==null||(s=e.properties)===null||s===void 0?void 0:s[i];if(o){let a=lx(t,o,n);o.data=a}}}function sx(t,e,r,n,s){let i=[],o=s.bufferView,a=t.getTypedArrayForBufferView(o),c=ix(t,r,s,n),l=ox(t,r,s,n);return r.type==="STRING"||r.componentType==="STRING"?i=Bi(n,a,c,l):ax(r)&&(i=cx(r,n,a,c)),i}function ix(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?Pr(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function ox(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?Pr(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function ax(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function cx(t,e,r,n){let s=t.type==="ARRAY",i=t.componentCount,o="SCALAR",a=t.componentType||t.type,c=On(o,a),l=r.byteLength/c,h=Dr(r,o,a,l);return s?n?Si(h,e,n,r.length,c):i?Ci(h,e,i):[]:h}function lx(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let s=[];for(let i of n.meshes)for(let o of i.primitives)hx(t,r,e,s,o);return s}function hx(t,e,r,n,s){let i={channels:r.channels,...r.texture},o=wr(t,i,s);o&&xi(t,e,o,n,s)}var dp="4.1.0";var vr=!0,pp=1735152710,xc=12,Mi=8,fx=1313821514,ux=5130562,dx=0,px=0,gx=1;function Ax(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function gp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=new DataView(t),{magic:s=pp}=r,i=n.getUint32(e,!1);return i===s||i===pp}function Ap(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=new DataView(e),i=Ax(s,r+0),o=s.getUint32(r+4,vr),a=s.getUint32(r+8,vr);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:i,version:o,json:{},binChunks:[]}),r+=xc,t.version){case 1:return _x(t,s,r);case 2:return mx(t,s,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function _x(t,e,r){V(t.header.byteLength>xc+Mi);let n=e.getUint32(r+0,vr),s=e.getUint32(r+4,vr);return r+=Mi,V(s===dx),Ec(t,e,r,n),r+=n,r+=Rc(t,e,r,t.header.byteLength),r}function mx(t,e,r,n){return V(t.header.byteLength>xc+Mi),Tx(t,e,r,n),r+t.header.byteLength}function Tx(t,e,r,n){for(;r+8<=t.header.byteLength;){let s=e.getUint32(r+0,vr),i=e.getUint32(r+4,vr);switch(r+=Mi,i){case fx:Ec(t,e,r,s);break;case ux:Rc(t,e,r,s);break;case px:n.strict||Ec(t,e,r,s);break;case gx:n.strict||Rc(t,e,r,s);break;default:break}r+=Ae(s,4)}return r}function Ec(t,e,r,n){let s=new Uint8Array(e.buffer,r,n),o=new TextDecoder("utf8").decode(s);return t.json=JSON.parse(o),Ae(n,4)}function Rc(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Ae(n,4)}function Sc(t,e){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${t}`);return n.substr(0,n.lastIndexOf("/")+1)+t}var Bc={};ht(Bc,{decode:()=>Ox,name:()=>Nx});var Ex="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",Rx="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",xx=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]),Sx=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),Cx={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},Bx={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function _p(t,e,r,n,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"NONE",o=await Mx();Fx(o,o.exports[Bx[s]],t,e,r,n,o.exports[Cx[i||"NONE"]])}var Cc;async function Mx(){return Cc||(Cc=yx()),Cc}async function yx(){let t=Ex;WebAssembly.validate(xx)&&(t=Rx,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(Ix(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function Ix(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let s=t.charCodeAt(n);e[n]=s>96?s-71:s>64?s-65:s>47?s+4:s>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?Sx[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function Fx(t,e,r,n,s,i,o){let a=t.exports.sbrk,c=n+3&-4,l=a(c*s),h=a(i.length),f=new Uint8Array(t.exports.memory.buffer);f.set(i,h);let u=e(l,n,s,h,i.length);if(u===0&&o&&o(l,c,s),r.set(f.subarray(l,l+n*s)),a(l-a(0)),u!==0)throw new Error(`Malformed buffer data: ${u}`)}var yi="EXT_meshopt_compression",Nx=yi;async function Ox(t,e){var r,n;let s=new K(t);if(!(e!=null&&(r=e.gltf)!==null&&r!==void 0&&r.decompressMeshes)||!((n=e.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=[];for(let o of t.json.bufferViews||[])i.push(bx(s,o));await Promise.all(i),s.removeExtension(yi)}async function bx(t,e){let r=t.getObjectExtension(e,yi);if(r){let{byteOffset:n=0,byteLength:s=0,byteStride:i,count:o,mode:a,filter:c="NONE",buffer:l}=r,h=t.gltf.buffers[l],f=new Uint8Array(h.arrayBuffer,h.byteOffset+n,s),u=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await _p(u,o,i,f,a,c),t.removeObjectExtension(e,yi)}}var Mc={};ht(Mc,{name:()=>Px,preprocess:()=>Dx});var Ur="EXT_texture_webp",Px=Ur;function Dx(t,e){let r=new K(t);if(!wo("image/webp")){if(r.getRequiredExtensions().includes(Ur))throw new Error(`gltf: Required extension ${Ur} not supported by browser`);return}let{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ur);i&&(s.source=i.source),r.removeObjectExtension(s,Ur)}r.removeExtension(Ur)}var yc={};ht(yc,{name:()=>wx,preprocess:()=>vx});var Ii="KHR_texture_basisu",wx=Ii;function vx(t,e){let r=new K(t),{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ii);i&&(s.source=i.source,r.removeObjectExtension(s,Ii))}r.removeExtension(Ii)}var Fc={};ht(Fc,{decode:()=>Xx,encode:()=>Wx,name:()=>Hx,preprocess:()=>Vx});function mp(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let s=Ic(n);e[r]=s}}return e}function Ic(t){let{buffer:e,size:r,count:n}=Ux(t);return{value:e,size:r,byteOffset:0,count:n,type:Ri(r),componentType:Or(e)}}function Ux(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=Lx(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function Lx(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var Oe="KHR_draco_mesh_compression",Hx=Oe;function Vx(t,e,r){let n=new K(t);for(let s of Tp(n))n.getObjectExtension(s,Oe)}async function Xx(t,e,r){var n;if(!(e!=null&&(n=e.gltf)!==null&&n!==void 0&&n.decompressMeshes))return;let s=new K(t),i=[];for(let o of Tp(s))s.getObjectExtension(o,Oe)&&i.push(zx(s,o,e,r));await Promise.all(i),s.removeExtension(Oe)}function Wx(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=new K(t);for(let n of r.json.meshes||[])kx(n,e),r.addRequiredExtension(Oe)}async function zx(t,e,r,n){let s=t.getObjectExtension(e,Oe);if(!s)return;let i=t.getTypedArrayForBufferView(s.bufferView),o=De(i.buffer,i.byteOffset),a={...r};delete a["3d-tiles"];let c=await Ct(o,_i,a,n),l=mp(c.attributes);for(let[h,f]of Object.entries(l))if(h in e.attributes){let u=e.attributes[h],d=t.getAccessor(u);d!=null&&d.min&&d!==null&&d!==void 0&&d.max&&(f.min=d.min,f.max=d.max)}e.attributes=l,c.indices&&(e.indices=Ic(c.indices)),t.removeObjectExtension(e,Oe),Gx(e)}function kx(t,e){var r;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:4,s=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!s.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let o=s.DracoWriter.encodeSync({attributes:t}),a=i==null||(r=i.parseSync)===null||r===void 0?void 0:r.call(i,{attributes:t}),c=s._addFauxAttributes(a.attributes),l=s.addBufferView(o);return{primitives:[{attributes:c,mode:n,extensions:{[Oe]:{bufferView:l,attributes:c}}}]}}function Gx(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*Tp(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Oc={};ht(Oc,{decode:()=>qx,name:()=>Kx});var Nc="KHR_texture_transform",Kx=Nc,Fi=new m,Jx=new z,Yx=new z;async function qx(t,e){var r;if(!new K(t).hasExtension(Nc)||!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let i=t.json.materials||[];for(let o=0;o<i.length;o++)jx(o,t)}function jx(t,e){var r,n,s;let i=[],o=(r=e.json.materials)===null||r===void 0?void 0:r[t],a=o==null||(n=o.pbrMetallicRoughness)===null||n===void 0?void 0:n.baseColorTexture;a&&bn(e,t,a,i);let c=o?.emissiveTexture;c&&bn(e,t,c,i);let l=o?.normalTexture;l&&bn(e,t,l,i);let h=o?.occlusionTexture;h&&bn(e,t,h,i);let f=o==null||(s=o.pbrMetallicRoughness)===null||s===void 0?void 0:s.metallicRoughnessTexture;f&&bn(e,t,f,i)}function bn(t,e,r,n){let s=Zx(r,n);if(!s)return;let i=t.json.meshes||[];for(let o of i)for(let a of o.primitives){let c=a.material;Number.isFinite(c)&&e===c&&Qx(t,a,s)}}function Zx(t,e){var r;let n=(r=t.extensions)===null||r===void 0?void 0:r[Nc],{texCoord:s=0}=t,{texCoord:i=s}=n;if(!(e.findIndex(a=>{let[c,l]=a;return c===s&&l===i})!==-1)){let a=eS(n);return s!==i&&(t.texCoord=i),e.push([s,i]),{originalTexCoord:s,texCoord:i,matrix:a}}return null}function Qx(t,e,r){let{originalTexCoord:n,texCoord:s,matrix:i}=r,o=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(o)){var a;let l=(a=t.json.accessors)===null||a===void 0?void 0:a[o];if(l&&l.bufferView){var c;let h=(c=t.json.bufferViews)===null||c===void 0?void 0:c[l.bufferView];if(h){let{arrayBuffer:f,byteOffset:u}=t.buffers[h.buffer],d=(u||0)+(l.byteOffset||0)+(h.byteOffset||0),{ArrayType:p,length:_}=br(l,h),A=Ei[l.componentType],T=Ti[l.type],x=h.byteStride||A*T,R=new Float32Array(_);for(let S=0;S<l.count;S++){let B=new p(f,d+S*x,2);Fi.set(B[0],B[1],1),Fi.transformByMatrix3(i),R.set([Fi[0],Fi[1]],S*T)}n===s?$x(l,h,t.buffers,R):tS(s,l,e,t,R)}}}}function $x(t,e,r,n){t.componentType=5126,r.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=r.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function tS(t,e,r,n,s){n.buffers.push({arrayBuffer:s.buffer,byteOffset:0,byteLength:s.buffer.byteLength});let i=n.json.bufferViews;if(!i)return;i.push({buffer:n.buffers.length-1,byteLength:s.buffer.byteLength,byteOffset:0});let o=n.json.accessors;o&&(o.push({bufferView:i?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=o.length-1)}function eS(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,s=new z().set(1,0,0,0,1,0,e[0],e[1],1),i=Jx.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),o=Yx.set(n[0],0,0,0,n[1],0,0,0,1);return s.multiplyRight(i).multiplyRight(o)}var bc={};ht(bc,{decode:()=>nS,encode:()=>sS,name:()=>rS});var er="KHR_lights_punctual",rS=er;async function nS(t){let e=new K(t),{json:r}=e,n=e.getExtension(er);n&&(e.json.lights=n.lights,e.removeExtension(er));for(let s of r.nodes||[]){let i=e.getObjectExtension(s,er);i&&(s.light=i.light),e.removeObjectExtension(s,er)}}async function sS(t){let e=new K(t),{json:r}=e;if(r.lights){let n=e.addExtension(er);at(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let s=n.node;e.addObjectExtension(s,er,n)}delete e.json.lights}}var Pc={};ht(Pc,{decode:()=>oS,encode:()=>aS,name:()=>iS});var Pn="KHR_materials_unlit",iS=Pn;async function oS(t){let e=new K(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,Pn);e.removeExtension(Pn)}function aS(t){let e=new K(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,Pn,{}),e.addExtension(Pn))}var Dc={};ht(Dc,{decode:()=>lS,encode:()=>hS,name:()=>cS});var Dn="KHR_techniques_webgl",cS=Dn;async function lS(t){let e=new K(t),{json:r}=e,n=e.getExtension(Dn);if(n){let s=fS(n,e);for(let i of r.materials||[]){let o=e.getObjectExtension(i,Dn);o&&(i.technique=Object.assign({},o,s[o.technique]),i.technique.values=uS(i.technique,e)),e.removeObjectExtension(i,Dn)}e.removeExtension(Dn)}}async function hS(t,e){}function fS(t,e){let{programs:r=[],shaders:n=[],techniques:s=[]}=t,i=new TextDecoder;return n.forEach(o=>{if(Number.isFinite(o.bufferView))o.code=i.decode(e.getTypedArrayForBufferView(o.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(o=>{o.fragmentShader=n[o.fragmentShader],o.vertexShader=n[o.vertexShader]}),s.forEach(o=>{o.program=r[o.program]}),s}function uS(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var Ep=[mc,gc,Bc,Mc,yc,Fc,bc,Pc,Dc,Oc,Tc];function Rp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;(s=i.preprocess)===null||s===void 0||s.call(i,t,e,r)}}async function xp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;await((s=i.decode)===null||s===void 0?void 0:s.call(i,t,e,r))}}function Sp(t,e){var r;let n=(e==null||(r=e.gltf)===null||r===void 0?void 0:r.excludeExtensions)||{};return!(t in n&&!n[t])}var wc="KHR_binary_glTF";function Cp(t){let e=new K(t),{json:r}=e;for(let n of r.images||[]){let s=e.getObjectExtension(n,wc);s&&Object.assign(n,s),e.removeObjectExtension(n,wc)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(wc)}var Bp={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},pS={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},vc=class{constructor(){this.idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}},this.json=void 0}normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),Cp(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in Bp)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let s in n){let i=n[s];i.id=i.id||s;let o=e[r].length;e[r].push(i),this.idToIndexMap[r][s]=o}}}_convertObjectIdsToArrayIndices(e){for(let r in Bp)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:s,material:i}=r;for(let o in n)n[o]=this._convertIdToIndex(n[o],"accessor");s&&(r.indices=this._convertIdToIndex(s,"accessor")),i&&(r.material=this._convertIdToIndex(i,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let s in n){let i=n[s],o=this._convertIdToIndex(i,s);n[s]=o}}_convertIdToIndex(e,r){let n=pS[r];if(n in this.idToIndexMap){let s=this.idToIndexMap[n][e];if(!Number.isFinite(s))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return s}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let i of e.materials){var r,n,s;i.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let o=((r=i.values)===null||r===void 0?void 0:r.tex)||((n=i.values)===null||n===void 0?void 0:n.texture2d_0)||((s=i.values)===null||s===void 0?void 0:s.diffuseTex),a=e.textures.findIndex(c=>c.id===o);a!==-1&&(i.pbrMetallicRoughness.baseColorTexture={index:a})}}};function Mp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new vc().normalize(t,e)}async function yp(t,e){var r,n,s;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return gS(t,e,i,o),Mp(t,{normalize:o==null||(r=o.gltf)===null||r===void 0?void 0:r.normalize}),Rp(t,o,a),o!=null&&(n=o.gltf)!==null&&n!==void 0&&n.loadBuffers&&t.json.buffers&&await AS(t,o,a),o!=null&&(s=o.gltf)!==null&&s!==void 0&&s.loadImages&&await _S(t,o,a),await xp(t,o,a),t}function gS(t,e,r,n){if(n.uri&&(t.baseUri=n.uri),e instanceof ArrayBuffer&&!gp(e,r,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=xo(e);else if(e instanceof ArrayBuffer){let o={};r=Ap(o,e,r,n.glb),at(o.type==="glTF",`Invalid GLB magic string ${o.type}`),t._glb=o,t.json=o.json}else at(!1,"GLTF: must be ArrayBuffer or string");let s=t.json.buffers||[];if(t.buffers=new Array(s.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:o}=t._glb;t.buffers[0]={arrayBuffer:o[0].arrayBuffer,byteOffset:o[0].byteOffset,byteLength:o[0].byteLength}}let i=t.json.images||[];t.images=new Array(i.length).fill({})}async function AS(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let a=n[o];if(a.uri){var s,i;let{fetch:c}=r;at(c);let l=Sc(a.uri,e),h=await(r==null||(s=r.fetch)===null||s===void 0?void 0:s.call(r,l)),f=await(h==null||(i=h.arrayBuffer)===null||i===void 0?void 0:i.call(h));t.buffers[o]={arrayBuffer:f,byteOffset:0,byteLength:f.byteLength},delete a.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(a.byteLength),byteOffset:0,byteLength:a.byteLength})}}async function _S(t,e,r){let n=mS(t),s=t.json.images||[],i=[];for(let o of n)i.push(TS(t,s[o],o,e,r));return await Promise.all(i)}function mS(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function TS(t,e,r,n,s){let i;if(e.uri&&!e.hasOwnProperty("bufferView")){let a=Sc(e.uri,n),{fetch:c}=s;i=await(await c(a)).arrayBuffer(),e.bufferView={data:i}}if(Number.isFinite(e.bufferView)){let a=op(t.json,t.buffers,e.bufferView);i=De(a.buffer,a.byteOffset,a.byteLength)}at(i,"glTF image has no data");let o=await Ct(i,[Ee,Wa],{...n,mimeType:e.mimeType,basis:n.basis||{format:Qs()}},s);o&&o[0]&&(o={compressed:!0,mipmaps:!1,width:o[0].width,height:o[0].height,data:o[0]}),t.images=t.images||[],t.images[r]=o}var rr={name:"glTF",id:"gltf",module:"gltf",version:dp,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:ES,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function ES(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;e={...rr.options,...e},e.gltf={...rr.options.gltf,...e.gltf};let{byteOffset:n=0}=e;return await yp({},t,n,e,r)}var RS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xS={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Pt={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},SS={magFilter:Pt.TEXTURE_MAG_FILTER,minFilter:Pt.TEXTURE_MIN_FILTER,wrapS:Pt.TEXTURE_WRAP_S,wrapT:Pt.TEXTURE_WRAP_T},CS={[Pt.TEXTURE_MAG_FILTER]:Pt.LINEAR,[Pt.TEXTURE_MIN_FILTER]:Pt.NEAREST_MIPMAP_LINEAR,[Pt.TEXTURE_WRAP_S]:Pt.REPEAT,[Pt.TEXTURE_WRAP_T]:Pt.REPEAT};function BS(){return{id:"default-sampler",parameters:CS}}function MS(t){return xS[t]}function yS(t){return RS[t]}var Uc=class{constructor(){this.baseUri="",this.jsonUnprocessed=void 0,this.json=void 0,this.buffers=[],this.images=[]}postProcess(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{json:n,buffers:s=[],images:i=[]}=e,{baseUri:o=""}=e;return at(n),this.baseUri=o,this.buffers=s,this.images=i,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((s,i)=>this._resolveBufferView(s,i))),e.images&&(n.images=e.images.map((s,i)=>this._resolveImage(s,i))),e.samplers&&(n.samplers=e.samplers.map((s,i)=>this._resolveSampler(s,i))),e.textures&&(n.textures=e.textures.map((s,i)=>this._resolveTexture(s,i))),e.accessors&&(n.accessors=e.accessors.map((s,i)=>this._resolveAccessor(s,i))),e.materials&&(n.materials=e.materials.map((s,i)=>this._resolveMaterial(s,i))),e.meshes&&(n.meshes=e.meshes.map((s,i)=>this._resolveMesh(s,i))),e.nodes&&(n.nodes=e.nodes.map((s,i)=>this._resolveNode(s,i)),n.nodes=n.nodes.map((s,i)=>this._resolveNodeChildren(s))),e.skins&&(n.skins=e.skins.map((s,i)=>this._resolveSkin(s,i))),e.scenes&&(n.scenes=e.scenes.map((s,i)=>this._resolveScene(s,i))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((s,i)=>{let o=this.getMesh(i);return s.id=o.id,s.primitives=s.primitives.concat(o.primitives),s},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(s=>{let i={...s,attributes:{},indices:void 0,material:void 0},o=s.attributes;for(let a in o)i.attributes[a]=this.getAccessor(o[a]);return s.indices!==void 0&&(i.indices=this.getAccessor(s.indices)),s.material!==void 0&&(i.material=this.getMaterial(s.material)),i})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let s=n.pbrMetallicRoughness;s.baseColorTexture&&(s.baseColorTexture={...s.baseColorTexture},s.baseColorTexture.texture=this.getTexture(s.baseColorTexture.index)),s.metallicRoughnessTexture&&(s.metallicRoughnessTexture={...s.metallicRoughnessTexture},s.metallicRoughnessTexture.texture=this.getTexture(s.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=MS(e.componentType),s=yS(e.type),i=n*s,o={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:s,bytesPerElement:i,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(o.bufferView=this.getBufferView(e.bufferView)),o.bufferView){let a=o.bufferView.buffer,{ArrayType:c,byteLength:l}=br(o,o.bufferView),h=(o.bufferView.byteOffset||0)+(o.byteOffset||0)+a.byteOffset,f=a.arrayBuffer.slice(h,h+l);o.bufferView.byteStride&&(f=this._getValueFromInterleavedBuffer(a,h,o.bufferView.byteStride,o.bytesPerElement,o.count)),o.value=new c(f)}return o}_getValueFromInterleavedBuffer(e,r,n,s,i){let o=new Uint8Array(i*s);for(let a=0;a<i;a++){let c=r+a*n;o.set(new Uint8Array(e.arrayBuffer.slice(c,c+s)),a*s)}return o.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):BS(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let s in n){let i=this._enumSamplerParameter(s);i!==void 0&&(n.parameters[i]=n[s])}return n}_enumSamplerParameter(e){return SS[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},s=this.images[r];return s&&(n.image=s),n}_resolveBufferView(e,r){let n=e.buffer,s=this.buffers[n].arrayBuffer,i=this.buffers[n].byteOffset||0;return e.byteOffset&&(i+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(s,i,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function wn(t,e){return new Uc().postProcess(t,e)}var Ni={URI:0,EMBEDDED:1};function Oi(t,e,r,n){t.rotateYtoZ=!0;let s=(t.byteOffset||0)+(t.byteLength||0)-r;if(s===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n!=null&&n["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=De(e,r,s),t.gltfByteOffset=0,t.gltfByteLength=s,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function bi(t,e,r,n){let s=r?.["3d-tiles"]||{};if(IS(t,e,r),s.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:i}=n,o=await i(t.gltfUrl,r);t.gltfArrayBuffer=await o.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let i=await Ct(t.gltfArrayBuffer,rr,r,n);t.gltf=wn(i),t.gpuMemoryUsageInBytes=Nn(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function IS(t,e,r){switch(e){case Ni.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),i=new TextDecoder().decode(n);t.gltfUrl=i.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Ni.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function Ip(t,e,r,n,s){var i;r=FS(t,e,r,n,s),await bi(t,Ni.EMBEDDED,n,s);let o=t==null||(i=t.gltf)===null||i===void 0?void 0:i.extensions;return o&&o.CESIUM_RTC&&(t.rtcCenter=o.CESIUM_RTC.center),r}function FS(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),r=Oi(t,e,r,n);let i=new fe(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=i.getGlobalProperty("RTC_CENTER",w.FLOAT,3),r}async function Fp(t,e,r,n,s){return r=NS(t,e,r,n,s),await bi(t,t.gltfFormat||0,n,s),r}function NS(t,e,r,n,s){var i;if(r=Ne(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=Fr(t,e,r);let o=new DataView(e);if(t.gltfFormat=o.getUint32(r,!0),r+=4,r=Nr(t,e,r,n),r=Oi(t,e,r,n),!(t!=null&&(i=t.header)!==null&&i!==void 0&&i.featureTableJsonByteLength)||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let a=new fe(t.featureTableJson,t.featureTableBinary),c=a.getGlobalProperty("INSTANCES_LENGTH");if(a.featuresLength=c,!Number.isFinite(c))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=a.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=a.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let l=new tr(t.batchTableJson,t.batchTableBinary,c);return OS(t,a,l,c),r}function OS(t,e,r,n){let s=new Array(n),i=new m,o=new m,a=new m,c=new m,l=new z,h=new Zt,f=new m,u={},d=new D,p=[],_=[],A=[],T=[];for(let x=0;x<n;x++){let R;if(e.hasProperty("POSITION"))R=e.getProperty("POSITION",w.FLOAT,3,x,i);else if(e.hasProperty("POSITION_QUANTIZED")){R=e.getProperty("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3,x,i);let g=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3);if(!g)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let y=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3);if(!y)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let O=65535;for(let b=0;b<3;b++)R[b]=R[b]/O*y[b]+g[b]}if(!R)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");i.copy(R),u.translation=i,t.normalUp=e.getProperty("NORMAL_UP",w.FLOAT,3,x,p),t.normalRight=e.getProperty("NORMAL_RIGHT",w.FLOAT,3,x,_);let S=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",w.UNSIGNED_SHORT,2,x,p),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",w.UNSIGNED_SHORT,2,x,_),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(L.WGS84.eastNorthUpToFixedFrame(i,d),d.getRotationMatrix3(l)):l.identity()}S&&(c.copy(o).cross(a).normalize(),l.setColumn(0,o),l.setColumn(1,a),l.setColumn(2,c)),h.fromMatrix3(l),u.rotation=h,f.set(1,1,1);let B=e.getProperty("SCALE",w.FLOAT,1,x,A);Number.isFinite(B)&&f.multiplyByScalar(B);let M=e.getProperty("SCALE_NON_UNIFORM",w.FLOAT,3,x,p);M&&f.scale(M),u.scale=f;let F=e.getProperty("BATCH_ID",w.UNSIGNED_SHORT,1,x,T);F===void 0&&(F=x);let C=new D().fromQuaternion(u.rotation);d.identity(),d.translate(u.translation),d.multiplyRight(C),d.scale(u.scale);let E=d.clone();s[x]={modelMatrix:E,batchId:F}}t.instances=s}async function Np(t,e,r,n,s,i){r=Ne(t,e,r);let o=new DataView(e);for(t.tilesLength=o.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await i(e,r,n,s,a)}return r}async function Op(t,e,r,n){var s,i;if(t.rotateYtoZ=!0,t.gltfUpAxis=r!=null&&(s=r["3d-tiles"])!==null&&s!==void 0&&s.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r!=null&&(i=r["3d-tiles"])!==null&&i!==void 0&&i.loadGLTF){if(!n)return e.byteLength;let o=await Ct(e,rr,r,n);t.gltf=wn(o),t.gpuMemoryUsageInBytes=Nn(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Lc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{shape:"tile3d"};switch(s.byteOffset=e,s.type=Ud(t,e),s.type){case Qe.COMPOSITE:return await Np(s,t,e,r,n,Lc);case Qe.BATCHED_3D_MODEL:return await Ip(s,t,e,r,n);case Qe.GLTF:return await Op(s,t,r,n);case Qe.INSTANCED_3D_MODEL:return await Fp(s,t,e,r,n);case Qe.POINT_CLOUD:return await sp(s,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${s.type}`)}}async function Hc(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let i=bp(t.slice(8,16)),o=new Uint8Array(t,24,i),c=new TextDecoder("utf8").decode(o),l=JSON.parse(c),h=bp(t.slice(16,24)),f=new ArrayBuffer(0);if(h&&(f=t.slice(24+i)),await Pi(l,l.tileAvailability,f,r),Array.isArray(l.contentAvailability))for(let u of l.contentAvailability)await Pi(l,u,f,r);else await Pi(l,l.contentAvailability,f,r);return await Pi(l,l.childSubtreeAvailability,f,r),l}async function Pi(t,e,r,n){let s=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof s!="number")return;let i=t.bufferViews[s],o=t.buffers[i.buffer];if(!(n!=null&&n.baseUrl))throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(o.uri){let c=`${n?.baseUrl||""}/${o.uri}`,h=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(h,i.byteOffset,i.byteLength);return}let a=t.buffers.slice(0,i.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+o.byteLength),i.byteOffset,i.byteLength)}function bp(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Di={id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:Ai,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Hc,options:{}};var lg=v(Cr(),1);var ig=v(Cr(),1);function bS(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var wi=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=bS(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function Pp(t){let e;return t<10?e="".concat(t.toFixed(2),"ms"):t<100?e="".concat(t.toFixed(1),"ms"):t<1e3?e="".concat(t.toFixed(0),"ms"):e="".concat((t/1e3).toFixed(2),"s"),e}function Dp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(e-t.length,0);return"".concat(" ".repeat(r)).concat(t)}function vi(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>n&&(r=Math.min(r,n/t.width));let i=t.width*r,o=t.height*r,a=["font-size:1px;","padding:".concat(Math.floor(o/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(o,"px;"),"background:url(".concat(s,");"),"background-size:".concat(i,"px ").concat(o,"px;"),"color:transparent;"].join("");return["".concat(e," %c+"),a]}var Ui;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ui||(Ui={}));var PS=10;function wp(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ui[t]||Ui.WHITE)}function vp(t,e,r){if(!Wt&&typeof t=="string"){if(e){let n=wp(e);t="\x1B[".concat(n,"m").concat(t,"\x1B[39m")}if(r){let n=wp(r);t="\x1B[".concat(n+PS,"m").concat(t,"\x1B[49m")}}return t}function Up(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),s=t;for(let i of n){let o=s[i];typeof o=="function"&&(e.find(a=>i===a)||(s[i]=o.bind(t)))}}function Lr(t,e){if(!t)throw new Error(e||"Assertion failed")}function nr(){let t;if(Wt()&&xr.performance){var e,r;t=xr===null||xr===void 0||(e=xr.performance)===null||e===void 0||(r=e.now)===null||r===void 0?void 0:r.call(e)}else if("hrtime"in Ye){var n;let s=Ye===null||Ye===void 0||(n=Ye.hrtime)===null||n===void 0?void 0:n.call(Ye);t=s[0]*1e3+s[1]/1e6}else t=Date.now();return t}var Hr={debug:Wt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},DS={enabled:!0,level:0};function Dt(){}var Lp={},Hp={once:!0},vn=class{constructor(){let{id:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=$s,this._startTs=nr(),this._deltaTs=nr(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new wi("__probe-".concat(this.id,"__"),DS),this.timeStamp("".concat(this.id," started")),Up(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((nr()-this._startTs).toPrecision(10))}getDelta(){return Number((nr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,r){this._storage.setConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){Lr(e,r)}warn(e){return this._getLogFunction(0,e,Hr.warn,arguments,Hp)}error(e){return this._getLogFunction(0,e,Hr.error,arguments)}deprecated(e,r){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(e,r){return this.error("`".concat(e,"` has been removed. Use `").concat(r,"` instead"))}probe(e,r){return this._getLogFunction(e,r,Hr.log,arguments,{time:!0,once:!0})}log(e,r){return this._getLogFunction(e,r,Hr.debug,arguments)}info(e,r){return this._getLogFunction(e,r,console.info,arguments)}once(e,r){return this._getLogFunction(e,r,Hr.debug||Hr.info,arguments,Hp)}table(e,r,n){return r?this._getLogFunction(e,r,console.table||Dt,n&&[n],{tag:LS(r)}):Dt}image(e){let{logLevel:r,priority:n,image:s,message:i="",scale:o=1}=e;return this._shouldLog(r||n)?Wt()?US({image:s,message:i,scale:o}):vS({image:s,message:i,scale:o}):Dt}time(e,r){return this._getLogFunction(e,r,console.time?console.time:console.info)}timeEnd(e,r){return this._getLogFunction(e,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,r){return this._getLogFunction(e,r,console.timeStamp||Dt)}group(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=Vp({logLevel:e,message:r,opts:n}),{collapsed:i}=n;return s.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Dt)}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Xp(e)}_getLogFunction(e,r,n,s,i){if(this._shouldLog(e)){i=Vp({logLevel:e,message:r,args:s,opts:i}),n=n||i.method,Lr(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=nr();let o=i.tag||i.message;if(i.once&&o)if(!Lp[o])Lp[o]=nr();else return Dt;return r=wS(this.id,i.message,i),n.bind(console,r,...i.args)}return Dt}};vn.VERSION=$s;function Xp(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return Lr(Number.isFinite(e)&&e>=0),e}function Vp(t){let{logLevel:e,message:r}=t;t.logLevel=Xp(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let s=typeof t.message;return Lr(s==="string"||s==="object"),Object.assign(t,{args:n},t.opts)}function wS(t,e,r){if(typeof e=="string"){let n=r.time?Dp(Pp(r.total)):"";e=r.time?"".concat(t,": ").concat(n," ").concat(e):"".concat(t,": ").concat(e),e=vp(e,r.color,r.background)}return e}function vS(t){let{image:e,message:r="",scale:n=1}=t;return console.warn("removed"),Dt}function US(t){let{image:e,message:r="",scale:n=1}=t;if(typeof e=="string"){let i=new Image;return i.onload=()=>{let o=vi(i,r,n);console.log(...o)},i.src=e,Dt}let s=e.nodeName||"";if(s.toLowerCase()==="img")return console.log(...vi(e,r,n)),Dt;if(s.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...vi(i,r,n)),i.src=e.toDataURL(),Dt}return Dt}function LS(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}var Vc=new vn({id:"@probe.gl/log"});var wt=null;try{wt=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Z(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}Z.prototype.__isLong__;Object.defineProperty(Z.prototype,"__isLong__",{value:!0});function pt(t){return(t&&t.__isLong__)===!0}function Wp(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=pt;var zp={},kp={};function sr(t,e){var r,n,s;return e?(t>>>=0,(s=0<=t&&t<256)&&(n=kp[t],n)?n:(r=X(t,0,!0),s&&(kp[t]=r),r)):(t|=0,(s=-128<=t&&t<128)&&(n=zp[t],n)?n:(r=X(t,t<0?-1:0,!1),s&&(zp[t]=r),r))}Z.fromInt=sr;function vt(t,e){if(isNaN(t))return e?ue:kt;if(e){if(t<0)return ue;if(t>=Yp)return Zp}else{if(t<=-Kp)return St;if(t+1>=Kp)return jp}return t<0?vt(-t,e).neg():X(t%Xr|0,t/Xr|0,e)}Z.fromNumber=vt;function X(t,e,r){return new Z(t,e,r)}Z.fromBits=X;var Li=Math.pow;function Wc(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?ue:kt;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Wc(t.substring(1),e,r).neg();for(var s=vt(Li(r,8)),i=kt,o=0;o<t.length;o+=8){var a=Math.min(8,t.length-o),c=parseInt(t.substring(o,o+a),r);if(a<8){var l=vt(Li(r,a));i=i.mul(l).add(vt(c))}else i=i.mul(s),i=i.add(vt(c))}return i.unsigned=e,i}Z.fromString=Wc;function Gt(t,e){return typeof t=="number"?vt(t,e):typeof t=="string"?Wc(t,e):X(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=Gt;var Gp=1<<16,HS=1<<24,Xr=Gp*Gp,Yp=Xr*Xr,Kp=Yp/2,Jp=sr(HS),kt=sr(0);Z.ZERO=kt;var ue=sr(0,!0);Z.UZERO=ue;var Vr=sr(1);Z.ONE=Vr;var qp=sr(1,!0);Z.UONE=qp;var Xc=sr(-1);Z.NEG_ONE=Xc;var jp=X(-1,2147483647,!1);Z.MAX_VALUE=jp;var Zp=X(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=Zp;var St=X(0,-2147483648,!1);Z.MIN_VALUE=St;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*Xr+(this.low>>>0):this.high*Xr+(this.low>>>0)};I.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(St)){var r=vt(e),n=this.div(r),s=n.mul(r).sub(this);return n.toString(e)+s.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var i=vt(Li(e,6),this.unsigned),o=this,a="";;){var c=o.div(i),l=o.sub(c.mul(i)).toInt()>>>0,h=l.toString(e);if(o=c,o.isZero())return h+a;for(;h.length<6;)h="0"+h;a=""+h+a}};I.getHighBits=function(){return this.high};I.getHighBitsUnsigned=function(){return this.high>>>0};I.getLowBits=function(){return this.low};I.getLowBitsUnsigned=function(){return this.low>>>0};I.getNumBitsAbs=function(){if(this.isNegative())return this.eq(St)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&!(e&1<<r);r--);return this.high!=0?r+33:r+1};I.isZero=function(){return this.high===0&&this.low===0};I.eqz=I.isZero;I.isNegative=function(){return!this.unsigned&&this.high<0};I.isPositive=function(){return this.unsigned||this.high>=0};I.isOdd=function(){return(this.low&1)===1};I.isEven=function(){return(this.low&1)===0};I.equals=function(e){return pt(e)||(e=Gt(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};I.eq=I.equals;I.notEquals=function(e){return!this.eq(e)};I.neq=I.notEquals;I.ne=I.notEquals;I.lessThan=function(e){return this.comp(e)<0};I.lt=I.lessThan;I.lessThanOrEqual=function(e){return this.comp(e)<=0};I.lte=I.lessThanOrEqual;I.le=I.lessThanOrEqual;I.greaterThan=function(e){return this.comp(e)>0};I.gt=I.greaterThan;I.greaterThanOrEqual=function(e){return this.comp(e)>=0};I.gte=I.greaterThanOrEqual;I.ge=I.greaterThanOrEqual;I.compare=function(e){if(pt(e)||(e=Gt(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};I.comp=I.compare;I.negate=function(){return!this.unsigned&&this.eq(St)?St:this.not().add(Vr)};I.neg=I.negate;I.add=function(e){pt(e)||(e=Gt(e));var r=this.high>>>16,n=this.high&65535,s=this.low>>>16,i=this.low&65535,o=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,h=0,f=0,u=0,d=0;return d+=i+l,u+=d>>>16,d&=65535,u+=s+c,f+=u>>>16,u&=65535,f+=n+a,h+=f>>>16,f&=65535,h+=r+o,h&=65535,X(u<<16|d,h<<16|f,this.unsigned)};I.subtract=function(e){return pt(e)||(e=Gt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(pt(e)||(e=Gt(e)),wt){var r=wt.mul(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?ue:kt;if(this.eq(St))return e.isOdd()?St:kt;if(e.eq(St))return this.isOdd()?St:kt;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Jp)&&e.lt(Jp))return vt(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,s=this.high&65535,i=this.low>>>16,o=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,h=e.low&65535,f=0,u=0,d=0,p=0;return p+=o*h,d+=p>>>16,p&=65535,d+=i*h,u+=d>>>16,d&=65535,d+=o*l,u+=d>>>16,d&=65535,u+=s*h,f+=u>>>16,u&=65535,u+=i*l,f+=u>>>16,u&=65535,u+=o*c,f+=u>>>16,u&=65535,f+=n*h+s*l+i*c+o*a,f&=65535,X(d<<16|p,f<<16|u,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(pt(e)||(e=Gt(e)),e.isZero())throw Error("division by zero");if(wt){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?wt.div_u:wt.div_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ue:kt;var n,s,i;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return ue;if(e.gt(this.shru(1)))return qp;i=ue}else{if(this.eq(St)){if(e.eq(Vr)||e.eq(Xc))return St;if(e.eq(St))return Vr;var o=this.shr(1);return n=o.div(e).shl(1),n.eq(kt)?e.isNegative()?Vr:Xc:(s=this.sub(e.mul(n)),i=n.add(s.div(e)),i)}else if(e.eq(St))return this.unsigned?ue:kt;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=kt}for(s=this;s.gte(e);){n=Math.max(1,Math.floor(s.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Li(2,a-48),l=vt(n),h=l.mul(e);h.isNegative()||h.gt(s);)n-=c,l=vt(n,this.unsigned),h=l.mul(e);l.isZero()&&(l=Vr),i=i.add(l),s=s.sub(h)}return i};I.div=I.divide;I.modulo=function(e){if(pt(e)||(e=Gt(e)),wt){var r=(this.unsigned?wt.rem_u:wt.rem_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return X(~this.low,~this.high,this.unsigned)};I.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};I.clz=I.countLeadingZeros;I.countTrailingZeros=function(){return this.low?Wp(this.low):Wp(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return pt(e)||(e=Gt(e)),X(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return pt(e)||(e=Gt(e)),X(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return pt(e)||(e=Gt(e)),X(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):X(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):X(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?X(this.high,0,this.unsigned):X(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,X(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};I.rotl=I.rotateLeft;I.rotateRight=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,X(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?X(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:X(this.low,this.high,!0)};I.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};I.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};I.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};Z.fromBytes=function(e,r,n){return n?Z.fromBytesLE(e,r):Z.fromBytesBE(e,r)};Z.fromBytesLE=function(e,r){return new Z(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};Z.fromBytesBE=function(e,r){return new Z(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var Wr=Z;var VS=16;function Un(t){t==="X"&&(t="");let e=t.padEnd(VS,"0");return Wr.fromString(e,!0,16)}function zc(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let i=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-i.length).join("0")+i}function kc(t,e){let r=XS(t).shiftRightUnsigned(2);return t.add(Wr.fromNumber(2*e+1-4).multiply(r))}function XS(t){return t.and(t.not().add(1))}var WS=3,zS=30,kS=2*zS+1,Qp=180/Math.PI;function tg(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],s=n.length,i=0,o=[0,0];for(let a=s-1;a>=0;a--){i=s-a;let c=n[a],l=0,h=0;c==="1"?h=1:c==="2"?(l=1,h=1):c==="3"&&(l=1);let f=Math.pow(2,i-1);GS(f,o,l,h),o[0]+=f*l,o[1]+=f*h}if(r%2===1){let a=o[0];o[0]=o[1],o[1]=a}return{face:r,ij:o,level:i}}function eg(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<WS+kS;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),s=e.substring(3,r),i=s.length/2,o=Wr.fromString(n,!0,2).toString(10),a="";if(i!==0)for(a=Wr.fromString(s,!0,2).toString(4);a.length<i;)a="0"+a;return`${o}/${a}`}function Gc(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function $p(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kc(t){return[$p(t[0]),$p(t[1])]}function Jc(t,e){let[r,n]=e;switch(t){case 0:return[1,r,n];case 1:return[-r,1,n];case 2:return[-r,-n,1];case 3:return[-1,-n,-r];case 4:return[n,-1,-r];case 5:return[n,r,-1];default:throw new Error("Invalid face")}}function Yc(t){let[e,r,n]=t,s=Math.atan2(n,Math.sqrt(e*e+r*r));return[Math.atan2(r,e)*Qp,s*Qp]}function GS(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let s=e[0];e[0]=e[1],e[1]=s}}function rg(t){let e=Gc(t.ij,t.level,[.5,.5]),r=Kc(e),n=Jc(t.face,r);return Yc(n)}var KS=100;function qc(t){let{face:e,ij:r,level:n}=t,s=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(KS*Math.pow(2,-n))),o=new Float64Array(4*i*2+2),a=0,c=0;for(let l=0;l<4;l++){let h=s[l].slice(0),f=s[l+1],u=(f[0]-h[0])/i,d=(f[1]-h[1])/i;for(let p=0;p<i;p++){h[0]+=u,h[1]+=d;let _=Gc(r,n,h),A=Kc(_),T=Jc(e,A),x=Yc(T);Math.abs(x[1])>89.999&&(x[0]=c);let R=x[0]-c;x[0]+=R>180?-360:R<-180?360:0,o[a++]=x[0],o[a++]=x[1],c=x[0]}}return o[a++]=o[0],o[a++]=o[1],o}function zr(t){let e=JS(t);return tg(e)}function JS(t){if(t.indexOf("/")>0)return t;let e=Un(t);return eg(e)}function jc(t){let e=zr(t);return rg(e)}function sg(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let s=0;s<4;s++){let i=`${t.face}/${s}`,o=zr(i),a=qc(o);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=ng(r)}else{let r=qc(t);e=ng(r)}return e}function ng(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,s)=>n-s),r.sort((n,s)=>n-s),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Zc(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,s=zr(t),i=sg(s),o=i.west,a=i.south,c=i.east,l=i.north,h=[];return h.push(new m(o,l,r)),h.push(new m(c,l,r)),h.push(new m(c,a,r)),h.push(new m(o,a,r)),h.push(new m(o,l,n)),h.push(new m(c,l,n)),h.push(new m(c,a,n)),h.push(new m(o,a,n)),h}function Hi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=Zc(e,r),s=jc(e),i=s[0],o=s[1],a=L.WGS84.cartographicToCartesian([i,o,r.maximumHeight]),c=new m(a[0],a[1],a[2]);n.push(c);let l=An(n);return[...l.center,...l.halfAxes]}var YS=4,qS=8,jS={QUADTREE:YS,OCTREE:qS};function ZS(t,e,r){if(t!=null&&t.box){let n=Un(t.s2VolumeInfo.token),s=kc(n,e),i=zc(s),o={...t.s2VolumeInfo};switch(o.token=i,r){case"OCTREE":let l=t.s2VolumeInfo,h=l.maximumHeight-l.minimumHeight,f=h/2,u=l.minimumHeight+h/2;l.minimumHeight=u-f,l.maximumHeight=u+f;break;default:break}return{box:Hi(o),s2VolumeInfo:o}}}async function $c(t){let{implicitOptions:e,parentData:r={mortonIndex:0,x:0,y:0,z:0},childIndex:n=0,s2VolumeBox:s,loaderOptions:i}=t,{subtree:o,level:a=0,globalData:c={level:0,mortonIndex:0,x:0,y:0,z:0}}=t,{subdivisionScheme:l,subtreeLevels:h,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:d,basePath:p}=e,_={children:[],lodMetricValue:0,contentUrl:""};if(!f)return Vc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),_;let A=a+c.level;if(A>f)return _;let T=jS[l],x=Math.log2(T),R=n&1,S=n>>1&1,B=n>>2&1,M=(T**a-1)/(T-1),F=ir(r.mortonIndex,n,x),C=M+F,E=ir(r.x,R,1),g=ir(r.y,S,1),y=ir(r.z,B,1),O=!1;a>=h&&(O=Qc(o.childSubtreeAvailability,F));let b=ir(c.x,E,a),N=ir(c.y,g,a),U=ir(c.z,y,a);if(O){let q=`${p}/${d}`,tt=Vi(q,A,b,N,U);o=await(0,ig.load)(tt,Di,i),c={mortonIndex:F,x:E,y:g,z:y,level:a},F=0,C=0,E=0,g=0,y=0,a=0}if(!Qc(o.tileAvailability,C))return _;Qc(o.contentAvailability,C)&&(_.contentUrl=Vi(u,A,b,N,U));let Q=a+1,J={mortonIndex:F,x:E,y:g,z:y};for(let q=0;q<T;q++){let tt=ZS(s,q,l),mt=await $c({subtree:o,implicitOptions:e,loaderOptions:i,parentData:J,childIndex:q,level:Q,globalData:{...c},s2VolumeBox:tt});if(mt.contentUrl||mt.children.length){let o0=A+1,a0=QS(mt,o0,{childTileX:E,childTileY:g,childTileZ:y},e,s);_.children.push(a0)}}return _}function Qc(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&Vc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?eC(e,r.explicitBitstream):!1}function QS(t,e,r,n,s){let{basePath:i,refine:o,getRefine:a,lodMetricType:c,getTileType:l,rootLodMetricValue:h,rootBoundingVolume:f}=n,u=t.contentUrl&&t.contentUrl.replace(`${i}/`,""),d=h/2**e,p=s!=null&&s.box?{box:s.box}:f,_=$S(e,p,r);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:a(o),type:l(t),lodMetricType:c,lodMetricValue:d,geometricError:d,transform:t.transform,boundingVolume:_}}function $S(t,e,r){if(e.region){let{childTileX:n,childTileY:s,childTileZ:i}=r,[o,a,c,l,h,f]=e.region,u=2**t,d=(c-o)/u,p=(l-a)/u,_=(f-h)/u,[A,T]=[o+d*n,o+d*(n+1)],[x,R]=[a+p*s,a+p*(s+1)],[S,B]=[h+_*i,h+_*(i+1)];return{region:[A,x,T,R,S,B]}}if(e.box)return e;throw new Error(`Unsupported bounding volume type ${e}`)}function ir(t,e,r){return(t<<r)+e}function Vi(t,e,r,n,s){let i=tC({level:e,x:r,y:n,z:s});return t.replace(/{level}|{x}|{y}|{z}/gi,o=>i[o])}function tC(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function eC(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function el(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(!e)return re.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return re.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return re.SCENEGRAPH;default:return n||re.EMPTY}}function rl(t){switch(t){case"REPLACE":case"replace":return Et.REPLACE;case"ADD":case"add":return Et.ADD;default:return t}}function tl(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Te.resolve(e,t)}function og(t,e){if(!t)return null;let r;if(t.content){var n;let i=t.content.uri||((n=t.content)===null||n===void 0?void 0:n.url);typeof i<"u"&&(r=tl(i,e))}return{...t,id:r,contentUrl:r,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,r),refine:rl(t.refine)}}async function hg(t,e,r){let n=null,s=cg(t.root);s&&t.root?n=await ag(t.root,t,e,s,r):n=og(t.root,e);let i=[];for(i.push(n);i.length>0;){let o=i.pop()||{},a=o.children||[],c=[];for(let l of a){let h=cg(l),f;h?f=await ag(l,t,e,h,r):f=og(l,e),f&&(c.push(f),i.push(f))}o.children=c}return n}async function ag(t,e,r,n,s){var i,o,a;let{subdivisionScheme:c,maximumLevel:l,availableLevels:h,subtreeLevels:f,subtrees:{uri:u}}=n,d=Vi(u,0,0,0,0),p=tl(d,r),_=await(0,lg.load)(p,Di,s),A=(i=t.content)===null||i===void 0?void 0:i.uri,T=A?tl(A,r):"",x=e==null||(o=e.root)===null||o===void 0?void 0:o.refine,R=t.geometricError,S=(a=t.boundingVolume.extensions)===null||a===void 0?void 0:a["3DTILES_bounding_volume_S2"];if(S){let C={box:Hi(S),s2VolumeInfo:S};t.boundingVolume=C}let B=t.boundingVolume,M={contentUrlTemplate:T,subtreesUriTemplate:u,subdivisionScheme:c,subtreeLevels:f,maximumLevel:Number.isFinite(h)?h-1:l,refine:x,basePath:r,lodMetricType:qe.GEOMETRIC_ERROR,rootLodMetricValue:R,rootBoundingVolume:B,getTileType:el,getRefine:rl};return await rC(t,r,_,M,s)}async function rC(t,e,r,n,s){if(!t)return null;let{children:i,contentUrl:o}=await $c({subtree:r,implicitOptions:n,loaderOptions:s}),a,c=null;return o&&(a=o,c={uri:o.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,a),refine:rl(t.refine),content:c||t.content,children:i}}function cg(t){var e;return(t==null||(e=t.extensions)===null||e===void 0?void 0:e["3DTILES_implicit_tiling"])||t?.implicitTiling}var Xi={id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:Ai,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:nC,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function nC(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=e["3d-tiles"]||{},s;return n.isTileset==="auto"?s=r?.url&&r.url.indexOf(".json")!==-1:s=n.isTileset,s?sC(t,e,r):iC(t,e,r)}async function sC(t,e,r){var n;let s=JSON.parse(new TextDecoder().decode(t)),i=r?.url||"",o=oC(i),a=await hg(s,o,e||{});return{...s,shape:"tileset3d",loader:Xi,url:i,queryString:r?.queryString||"",basePath:o,root:a||s.root,type:ft.TILES3D,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:((n=s.root)===null||n===void 0?void 0:n.geometricError)||0}}async function iC(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Lc(t,0,e,r,n.content),n.content}function oC(t){return Te.dirname(t)}var fg=[0],aC={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Xi,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Wi=class extends be.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&be.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:s}=this.state;Object.keys(s).length&&(this._updateTileset(s),this.state.lastUpdatedViewports=s,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:s}=this.state;for(let i in s)s[i].needsUpdate=!0}}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let s=n?.[e.id];(!s||!e.equals(s))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r}){let{tile:n}=e.props,{id:s}=r;return n.selected&&n.viewportIds.includes(s)}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let{loadOptions:r={}}=this.props,n=this.props.loader||this.props.loaders,s=Array.isArray(n)?n[0]:n,i={loadOptions:{...r}},o=e;if(s.preload){let l=await s.preload(e,r);l.url&&(o=l.url),l.headers&&(i.loadOptions.fetch={...i.loadOptions.fetch,headers:l.headers}),Object.assign(i,l)}let a=await(0,gg.load)(o,s,i.loadOptions),c=new yn(a,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...i});this.setState({tileset3d:c,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(c)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,s=Object.keys(e).length;!n||!s||!r||r.selectTiles(Object.values(e)).then(i=>{this.state.frameNumber!==i&&this.setState({frameNumber:i})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case re.POINTCLOUD:return this._makePointCloudLayer(e,r);case re.SCENEGRAPH:return this._make3DModelLayer(e);case re.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:s,constantRGBA:i,cartographicOrigin:o,modelMatrix:a}=e.content,{positions:c,normals:l,colors:h}=n;if(!c)return null;let f=r&&r.props.data||{header:{vertexCount:s},attributes:{POSITION:c,NORMAL:l,COLOR_0:h}},{pointSize:u,getPointColor:d}=this.props,p=this.getSubLayerClass("pointcloud",dg.PointCloudLayer);return new p({pointSize:u},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:f,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:a,getColor:i||d,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:s,modelMatrix:i}=e.content,o=this.getSubLayerClass("scenegraph",pg.ScenegraphLayer);return new o({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||fg,scenegraph:r,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:s,modelMatrix:i,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:s,indices:i,modelMatrix:o,cartographicOrigin:a,coordinateSystem:c=be.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:h}=n,{_getMeshColor:f}=this.props,u=r&&r.props.mesh||new ug.Geometry({topology:"triangle-list",attributes:cC(s),indices:i}),d=this.getSubLayerClass("mesh",Cn);return new d(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:u,data:fg,getColor:f(e),pbrMaterial:l,modelMatrix:o,coordinateOrigin:a,coordinateSystem:c,featureIds:h,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let s=r[n.id]=r[n.id]||{tile:n},{layer:i}=s;return n.selected&&(i?s.needsUpdate&&(i=this._getSubLayer(n,i),s.needsUpdate=!1):i=this._getSubLayer(n)),s.layer=i,i}).filter(Boolean):null}},Ln=Wi;(()=>{Wi.defaultProps=aC})(),(()=>{Wi.layerName="Tile3DLayer"})();function cC(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var Yi=v(Lt(),1),al=v(qs(),1),xg=v(Lt(),1);var lC=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function nl(t){return t>>1^-(t&1)}function hC(t){let e=0,r={};for(let[n,s]of lC){let i=s===8?t.getFloat64:t.getFloat32;r[n]=i.call(t,e,!0),e+=s}return{header:r,headerEndPosition:e}}function fC(t,e){let r=e,n=3,s=t.getUint32(r,!0),i=new Uint16Array(s*n);r+=Uint32Array.BYTES_PER_ELEMENT;let o=Uint16Array.BYTES_PER_ELEMENT,a=s*o,c=r,l=c+a,h=l+a,f=0,u=0,d=0;for(let p=0;p<s;p++)f+=nl(t.getUint16(c+o*p,!0)),u+=nl(t.getUint16(l+o*p,!0)),d+=nl(t.getUint16(h+o*p,!0)),i[p]=f,i[p+s]=u,i[p+s*2]=d;return r+=a*3,{vertexData:i,vertexDataEndPosition:r}}function Hn(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i;if(n===2?i=new Uint16Array(t,e,r):i=new Uint32Array(t,e,r),!s)return i;let o=0;for(let a=0;a<i.length;++a){let c=i[a];i[a]=o-c,c===0&&++o}return i}function uC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%o!==0&&(n+=o-n%o);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Hn(t.buffer,n,c,o);return n+=c*o,{triangleIndicesEndPosition:n,triangleIndices:l}}function dC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Hn(t.buffer,n,a,o,!1);n+=a*o;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Hn(t.buffer,n,l,o,!1);n+=l*o;let f=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let u=Hn(t.buffer,n,f,o,!1);n+=f*o;let d=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let p=Hn(t.buffer,n,d,o,!1);return n+=d*o,{edgeIndicesEndPosition:n,westIndices:c,southIndices:h,eastIndices:u,northIndices:p}}function pC(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function gC(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function AC(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let s=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let i=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let o=new DataView(t.buffer,n,i);switch(s){case 1:{r.vertexNormals=pC(o);break}case 2:{r.waterMask=gC(o);break}default:}n+=i}return{extensions:r,extensionsEndPosition:n}}var or={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},_C={maxDecodingStep:or.extensions};function sl(t,e){let r=Object.assign({},_C,e),n=new DataView(t),{header:s,headerEndPosition:i}=hC(n);if(r.maxDecodingStep<or.vertices)return{header:s};let{vertexData:o,vertexDataEndPosition:a}=fC(n,i);if(r.maxDecodingStep<or.triangleIndices)return{header:s,vertexData:o};let{triangleIndices:c,triangleIndicesEndPosition:l}=uC(n,o,a);if(r.maxDecodingStep<or.edgeIndices)return{header:s,vertexData:o,triangleIndices:c};let{westIndices:h,southIndices:f,eastIndices:u,northIndices:d,edgeIndicesEndPosition:p}=dC(n,o,l);if(r.maxDecodingStep<or.extensions)return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f};let{extensions:_}=AC(n,p);return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f,extensions:_}}function zi(t,e,r,n){let s=n?TC(n,t.POSITION.value):mC(e),i=new t.POSITION.value.constructor(s.length*6),o=new t.TEXCOORD_0.value.constructor(s.length*4),a=new e.constructor(s.length*6);for(let l=0;l<s.length;l++){let h=s[l];EC({edge:h,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:i,newTexcoord0:o,newTriangles:a})}t.POSITION.value=jr(t.POSITION.value,i),t.TEXCOORD_0.value=jr(t.TEXCOORD_0.value,o);let c=e instanceof Array?e.concat(a):jr(e,a);return{attributes:t,triangles:c}}function mC(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,a)=>Math.min(...o)-Math.min(...a)||Math.max(...o)-Math.max(...a));let r=[],n=0;for(;n<e.length;){var s,i;e[n][0]===((s=e[n+1])===null||s===void 0?void 0:s[1])&&e[n][1]===((i=e[n+1])===null||i===void 0?void 0:i[0])?n+=2:(r.push(e[n]),n++)}return r}function TC(t,e){t.westIndices.sort((n,s)=>e[3*n+1]-e[3*s+1]),t.eastIndices.sort((n,s)=>e[3*s+1]-e[3*n+1]),t.southIndices.sort((n,s)=>e[3*s]-e[3*n]),t.northIndices.sort((n,s)=>e[3*n]-e[3*s]);let r=[];for(let n in t){let s=t[n];for(let i=0;i<s.length-1;i++)r.push([s[i],s[i+1]])}return r}function EC(t){let{edge:e,edgeIndex:r,attributes:n,skirtHeight:s,newPosition:i,newTexcoord0:o,newTriangles:a}=t,c=n.POSITION.value.length,l=r*2,h=r*2+1;i.set(n.POSITION.value.subarray(e[0]*3,e[0]*3+3),l*3),i[l*3+2]=i[l*3+2]-s,i.set(n.POSITION.value.subarray(e[1]*3,e[1]*3+3),h*3),i[h*3+2]=i[h*3+2]-s,o.set(n.TEXCOORD_0.value.subarray(e[0]*2,e[0]*2+2),l*2),o.set(n.TEXCOORD_0.value.subarray(e[1]*2,e[1]*2+2),h*2);let f=r*2*3;a[f]=e[0],a[f+1]=c/3+h,a[f+2]=e[1],a[f+3]=c/3+h,a[f+4]=e[0],a[f+5]=c/3+l}function il(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{bounds:r}=e,{header:n,vertexData:s,triangleIndices:i,westIndices:o,northIndices:a,eastIndices:c,southIndices:l}=sl(t,or.triangleIndices),h=i,f=RC(s,n,r),u=$e(f);if(e!=null&&e.skirtHeight){let{attributes:d,triangles:p}=zi(f,h,e.skirtHeight,{westIndices:o,northIndices:a,eastIndices:c,southIndices:l});f=d,h=p}return{loaderData:{header:{}},header:{vertexCount:h.length,boundingBox:u},schema:void 0,topology:"triangle-list",mode:4,indices:{value:h,size:1},attributes:f}}function RC(t,e,r){let{minHeight:n,maxHeight:s}=e,[i,o,a,c]=r||[0,0,1,1],l=a-i,h=c-o,f=s-n,u=t.length/3,d=new Float32Array(u*3),p=new Float32Array(u*2);for(let _=0;_<u;_++){let A=t[_]/32767,T=t[_+u]/32767,x=t[_+u*2]/32767;d[3*_+0]=A*l+i,d[3*_+1]=T*h+o,d[3*_+2]=x*f+n,p[2*_+0]=A,p[2*_+1]=T}return{POSITION:{value:d,size:3},TEXCOORD_0:{value:p,size:2}}}var Vn=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let s=n+2,i=0,o=0,a=0,c=0,l=0,h=0;for(s&1?a=c=l=r:i=o=h=r;(s>>=1)>1;){let u=i+a>>1,d=o+c>>1;s&1?(a=i,c=o,i=l,o=h):(i=a,o=c,a=l,c=h),l=u,h=d}let f=n*4;this.coords[f+0]=i,this.coords[f+1]=o,this.coords[f+2]=a,this.coords[f+3]=c}}createTile(e){return new ol(e,this)}},ol=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:s}=this.martini,{terrain:i,errors:o}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],h=n[c+1],f=n[c+2],u=n[c+3],d=l+f>>1,p=h+u>>1,_=d+p-h,A=p+l-d,T=(i[h*s+l]+i[u*s+f])/2,x=p*s+d,R=Math.abs(T-i[x]);if(o[x]=Math.max(o[x],R),a<r){let S=(h+A>>1)*s+(l+_>>1),B=(u+A>>1)*s+(f+_>>1);o[x]=Math.max(o[x],o[S],o[B])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:s}=this,i=0,o=0,a=r-1;n.fill(0);function c(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e?(c(T,x,d,p,R,S),c(_,A,T,x,R,S)):(n[p*r+d]=n[p*r+d]||++i,n[A*r+_]=n[A*r+_]||++i,n[x*r+T]=n[x*r+T]||++i,o++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(i*2),h=new Uint32Array(o*3),f=0;function u(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;if(Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e)u(T,x,d,p,R,S),u(_,A,T,x,R,S);else{let B=n[p*r+d]-1,M=n[A*r+_]-1,F=n[x*r+T]-1;l[2*B]=d,l[2*B+1]=p,l[2*M]=_,l[2*M+1]=A,l[2*F]=T,l[2*F+1]=x,h[f++]=B,h[f++]=M,h[f++]=F}}return u(0,0,a,a,a,0),u(a,a,0,0,0,a),{vertices:l,triangles:h}}};var Xn=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r;this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let s=r-1,i=n-1,o=this._addPoint(0,0),a=this._addPoint(s,0),c=this._addPoint(0,i),l=this._addPoint(s,i),h=this._addTriangle(l,o,c,-1,-1,-1);this._addTriangle(o,l,a,h,-1,-1),this._flush()}run(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;for(;this.getMaxError()>e;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(e,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],s=2*this.triangles[n*3+0],i=2*this.triangles[n*3+1],o=2*this.triangles[n*3+2];this._findCandidate(e[s],e[s+1],e[i],e[i+1],e[o],e[o+1],n)}this._pendingLen=0}_findCandidate(e,r,n,s,i,o,a){let c=Math.min(e,n,i),l=Math.min(r,s,o),h=Math.max(e,n,i),f=Math.max(r,s,o),u=ar(n,s,i,o,c,l),d=ar(i,o,e,r,c,l),p=ar(e,r,n,s,c,l),_=s-r,A=e-n,T=o-s,x=n-i,R=r-o,S=i-e,B=ar(e,r,n,s,i,o),M=this.heightAt(e,r)/B,F=this.heightAt(n,s)/B,C=this.heightAt(i,o)/B,E=0,g=0,y=0,O=0;for(let b=l;b<=f;b++){let N=0;u<0&&T!==0&&(N=Math.max(N,Math.floor(-u/T))),d<0&&R!==0&&(N=Math.max(N,Math.floor(-d/R))),p<0&&_!==0&&(N=Math.max(N,Math.floor(-p/_)));let U=u+T*N,Y=d+R*N,W=p+_*N,Q=!1;for(let J=c+N;J<=h;J++){if(U>=0&&Y>=0&&W>=0){Q=!0;let q=M*U+F*Y+C*W,tt=Math.abs(q-this.heightAt(J,b));O+=tt*tt,tt>E&&(E=tt,g=J,y=b)}else if(Q)break;U+=T,Y+=R,W+=_}u+=x,d+=S,p+=A}(g===e&&y===r||g===n&&y===s||g===i&&y===o)&&(E=0),this._candidates[2*a]=g,this._candidates[2*a+1]=y,this._rms[a]=O,this._queuePush(a,E,O)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,s=e*3+2,i=this.triangles[r],o=this.triangles[n],a=this.triangles[s],c=this.coords[2*i],l=this.coords[2*i+1],h=this.coords[2*o],f=this.coords[2*o+1],u=this.coords[2*a],d=this.coords[2*a+1],p=this._candidates[2*e],_=this._candidates[2*e+1],A=this._addPoint(p,_);if(ar(c,l,h,f,p,_)===0)this._handleCollinear(A,r);else if(ar(h,f,u,d,p,_)===0)this._handleCollinear(A,n);else if(ar(u,d,c,l,p,_)===0)this._handleCollinear(A,s);else{let T=this._halfedges[r],x=this._halfedges[n],R=this._halfedges[s],S=this._addTriangle(i,o,A,T,-1,-1,r),B=this._addTriangle(o,a,A,x,-1,S+1),M=this._addTriangle(a,i,A,R,S+2,B+1);this._legalize(S),this._legalize(B),this._legalize(M)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,s,i,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this.triangles.length,c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=s,this._halfedges[a+1]=i,this._halfedges[a+2]=o,s>=0&&(this._halfedges[s]=a+0),i>=0&&(this._halfedges[i]=a+1),o>=0&&(this._halfedges[o]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,s=r-r%3,i=n+(e+1)%3,o=n+(e+2)%3,a=s+(r+2)%3,c=s+(r+1)%3,l=this.triangles[o],h=this.triangles[e],f=this.triangles[i],u=this.triangles[a],d=this.coords;if(!xC(d[2*l],d[2*l+1],d[2*h],d[2*h+1],d[2*f],d[2*f+1],d[2*u],d[2*u+1]))return;let p=this._halfedges[i],_=this._halfedges[o],A=this._halfedges[a],T=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(s/3);let x=this._addTriangle(l,u,f,-1,A,p,n),R=this._addTriangle(u,l,h,x,_,T,s);this._legalize(x+1),this._legalize(R+2)}_handleCollinear(e,r){let n=r-r%3,s=n+(r+1)%3,i=n+(r+2)%3,o=this.triangles[i],a=this.triangles[r],c=this.triangles[s],l=this._halfedges[s],h=this._halfedges[i],f=this._halfedges[r];if(f<0){let M=this._addTriangle(e,o,a,-1,h,-1,n),F=this._addTriangle(o,e,c,M,-1,l);this._legalize(M+1),this._legalize(F+2);return}let u=f-f%3,d=u+(f+2)%3,p=u+(f+1)%3,_=this.triangles[d],A=this._halfedges[d],T=this._halfedges[p];this._queueRemove(u/3);let x=this._addTriangle(o,a,e,h,-1,-1,n),R=this._addTriangle(a,_,e,T,-1,x+1,u),S=this._addTriangle(_,c,e,A,-1,R+1),B=this._addTriangle(c,o,e,l,x+2,S+1);this._legalize(x),this._legalize(R),this._legalize(S),this._legalize(B)}_queuePush(e,r,n){let s=this._queue.length;this._queueIndices[e]=s,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(s)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let s=this._pending.indexOf(e);if(s!==-1)this._pending[s]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],s=this._queue[r];this._queue[e]=s,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[s]=e;let i=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=i}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let s=2*n+1;if(s>=r||s<0)break;let i=s+1,o=s;if(i<r&&this._queueLess(i,s)&&(o=i),!this._queueLess(o,n))break;this._queueSwap(n,o),n=o}return n>e}};function ar(t,e,r,n,s,i){return(r-s)*(e-i)-(n-i)*(t-s)}function xC(t,e,r,n,s,i,o,a){let c=t-o,l=e-a,h=r-o,f=n-a,u=s-o,d=i-a,p=c*c+l*l,_=h*h+f*f,A=u*u+d*d;return c*(f*A-_*d)-l*(h*A-_*u)+p*(h*d-f*u)<0}function mg(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:s}=e,{data:i,width:o,height:a}=t,c,l;switch(e.tesselator){case"martini":c=ki(i,o,a,s,e.tesselator),l=Ag(r,o,c);break;case"delatin":c=ki(i,o,a,s,e.tesselator),l=_g(r,o,a,c);break;default:o===a&&!(a&o-1)?(c=ki(i,o,a,s,"martini"),l=Ag(r,o,c)):(c=ki(i,o,a,s,"delatin"),l=_g(r,o,a,c));break}let{vertices:h}=l,{triangles:f}=l,u=SC(h,c,o,a,n),d=$e(u);if(e.skirtHeight){let{attributes:p,triangles:_}=zi(u,f,e.skirtHeight);u=p,f=_}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:d},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:u}}function Ag(t,e,r){let n=e+1,i=new Vn(n).createTile(r),{vertices:o,triangles:a}=i.getMesh(t);return{vertices:o,triangles:a}}function _g(t,e,r,n){let s=new Xn(n,e+1,r+1);s.run(t);let{coords:i,triangles:o}=s;return{vertices:i,triangles:o}}function ki(t,e,r,n,s){let{rScaler:i,bScaler:o,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let h=0,f=0;f<r;f++)for(let u=0;u<e;u++,h++){let d=h*4,p=t[d+0],_=t[d+1],A=t[d+2];l[h+f]=p*i+_*a+A*o+c}if(s==="martini"){for(let h=(e+1)*e,f=0;f<e;f++,h++)l[h]=l[h-e-1];for(let h=r,f=0;f<r+1;f++,h+=r+1)l[h]=l[h-1]}return l}function SC(t,e,r,n,s){let i=r+1,o=t.length/2,a=new Float32Array(o*3),c=new Float32Array(o*2),[l,h,f,u]=s||[0,0,r,n],d=(f-l)/r,p=(u-h)/n;for(let _=0;_<o;_++){let A=t[_*2],T=t[_*2+1],x=T*i+A;a[3*_+0]=A*d+l,a[3*_+1]=-T*p+u,a[3*_+2]=e[x],c[2*_+0]=A/r,c[2*_+1]=T/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Gi="4.1.0";var Ki={name:"Terrain",id:"terrain",module:"terrain",version:Gi,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var Tg={name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Gi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var CC={...Ki,parse:BC};async function BC(t,e,r){let n={...e,mimeType:"application/x.image",image:{...e?.image,type:"data"}},s=await Ct(t,[],n,r),i={...CC.options.terrain,...e?.terrain};return mg(s,i)}var h4={...Tg,parseSync:(t,e)=>il(t,e?.["quantized-mesh"]),parse:async(t,e)=>il(t,e?.["quantized-mesh"])};var Eg=[1],MC={...te.defaultProps,elevationData:Ie,texture:{...Ie,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Ki]};function Rg(t){return Array.isArray(t)?t.join(";"):t||""}var Ji=class extends Yi.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:i}=e,o=i&&(Array.isArray(i)||i.includes("{x}")&&i.includes("{y}"));this.setState({isTiled:o})}let s=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&s){let i=this.loadTerrain(e);this.setState({terrain:i})}e.workerUrl&&Yi.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:s,signal:i}){if(!e)return null;let o=this.getLoadOptions();o={...o,terrain:{skirtHeight:this.state.isTiled?s*2:0,...o?.terrain,bounds:r,meshMaxError:s,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:o,signal:i})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:s,elevationDecoder:i,meshMaxError:o}=this.props,{viewport:a}=this.context,c=$t(r,e),l=s&&$t(s,e),{signal:h}=e,f=[0,0],u=[0,0];if(a.isGeospatial){let A=e.bbox;f=a.projectFlat([A.west,A.south]),u=a.projectFlat([A.east,A.north])}else{let A=e.bbox;f=[A.left,A.bottom],u=[A.right,A.top]}let d=[f[0],f[1],u[0],u[1]],p=this.loadTerrain({elevationData:c,bounds:d,elevationDecoder:i,meshMaxError:o,signal:h}),_=l?n(l,{propName:"texture",layer:this,loaders:[],signal:h}).catch(A=>null):Promise.resolve(null);return Promise.all([p,_])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",al.SimpleMeshLayer),{color:n,wireframe:s,material:i}=this.props,{data:o}=e;if(!o)return null;let[a,c]=o;return new r(e,{data:Eg,mesh:a,texture:c,_instanced:!1,coordinateSystem:xg.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:s,material:i})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(o=>o.content).filter(Boolean).map(o=>o[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let s=Math.min(...n.map(o=>o[0])),i=Math.max(...n.map(o=>o[1]));(!r||s<r[0]||i>r[1])&&this.setState({zRange:[s,i]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:s,wireframe:i,meshMaxError:o,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x}=this.props;if(this.state.isTiled)return new te(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:Rg(n),texture:Rg(s),meshMaxError:o,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x});if(!n)return null;let R=this.getSubLayerClass("mesh",al.SimpleMeshLayer);return new R(this.getSubLayerProps({id:"mesh"}),{data:Eg,mesh:this.state.terrain,texture:s,_instanced:!1,getPosition:S=>[0,0,0],getColor:e,material:r,wireframe:i})}},Wn=Ji;(()=>{Ji.defaultProps=MC})(),(()=>{Ji.layerName="TerrainLayer"})();var ao=v(Lt(),1),Bl=v(Ut(),1),r0=v(Cg(),1);var zn={x:0,y:1,z:2};function cr(t,e={}){let{start:r=0,end:n=t.length,plane:s="xy"}=e,i=e.size||2,o=0,a=zn[s[0]],c=zn[s[1]];for(let l=r,h=n-i;l<n;l+=i)o+=(t[l+a]-t[h+a])*(t[l+c]+t[h+c]),h=l;return o/2}function ll(t,e,r=2,n,s="xy"){let i=e&&e.length,o=i?e[0]*r:t.length,a=Mg(t,0,o,r,!0,n&&n[0],s),c=[];if(!a||a.next===a.prev)return c;let l,h,f,u,d,p,_;if(i&&(a=PC(t,e,a,r,n,s)),t.length>80*r){u=h=t[0],d=f=t[1];for(let A=r;A<o;A+=r)p=t[A],_=t[A+1],p<u&&(u=p),_<d&&(d=_),p>h&&(h=p),_>f&&(f=_);l=Math.max(h-u,f-d),l=l!==0?32767/l:0}return kn(a,c,r,u,d,l,0),c}function Mg(t,e,r,n,s,i,o){let a,c;i===void 0&&(i=cr(t,{start:e,end:r,size:n,plane:o}));let l=zn[o[0]],h=zn[o[1]];if(s===i<0)for(a=e;a<r;a+=n)c=Bg(a,t[a+l],t[a+h],c);else for(a=r-n;a>=e;a-=n)c=Bg(a,t[a+l],t[a+h],c);return c&&Zi(c,c.next)&&(Kn(c),c=c.next),c}function lr(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Zi(r,r.next)||rt(r.prev,r,r.next)===0)){if(Kn(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function kn(t,e,r,n,s,i,o){if(!t)return;!o&&i&&LC(t,n,s,i);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,i?NC(t,n,s,i):FC(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Kn(t),t=l.next,a=l.next;continue}if(t=l,t===a){o?o===1?(t=OC(lr(t),e,r),kn(t,e,r,n,s,i,2)):o===2&&bC(t,e,r,n,s,i):kn(lr(t),e,r,n,s,i,1);break}}}function FC(t){let e=t.prev,r=t,n=t.next;if(rt(e,r,n)>=0)return!1;let s=e.x,i=r.x,o=n.x,a=e.y,c=r.y,l=n.y,h=s<i?s<o?s:o:i<o?i:o,f=a<c?a<l?a:l:c<l?c:l,u=s>i?s>o?s:o:i>o?i:o,d=a>c?a>l?a:l:c>l?c:l,p=n.next;for(;p!==e;){if(p.x>=h&&p.x<=u&&p.y>=f&&p.y<=d&&kr(s,a,i,c,o,l,p.x,p.y)&&rt(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function NC(t,e,r,n){let s=t.prev,i=t,o=t.next;if(rt(s,i,o)>=0)return!1;let a=s.x,c=i.x,l=o.x,h=s.y,f=i.y,u=o.y,d=a<c?a<l?a:l:c<l?c:l,p=h<f?h<u?h:u:f<u?f:u,_=a>c?a>l?a:l:c>l?c:l,A=h>f?h>u?h:u:f>u?f:u,T=cl(d,p,e,r,n),x=cl(_,A,e,r,n),R=t.prevZ,S=t.nextZ;for(;R&&R.z>=T&&S&&S.z<=x;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0||(R=R.prevZ,S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;R&&R.z>=T;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;S&&S.z<=x;){if(S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function OC(t,e,r){let n=t;do{let s=n.prev,i=n.next.next;!Zi(s,i)&&yg(s,n,n.next,i)&&Gn(s,i)&&Gn(i,s)&&(e.push(s.i/r|0),e.push(n.i/r|0),e.push(i.i/r|0),Kn(n),Kn(n.next),n=t=i),n=n.next}while(n!==t);return lr(n)}function bC(t,e,r,n,s,i){let o=t;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&XC(o,a)){let c=Ig(o,a);o=lr(o,o.next),c=lr(c,c.next),kn(o,e,r,n,s,i,0),kn(c,e,r,n,s,i,0);return}a=a.next}o=o.next}while(o!==t)}function PC(t,e,r,n,s,i){let o=[],a,c,l,h,f;for(a=0,c=e.length;a<c;a++)l=e[a]*n,h=a<c-1?e[a+1]*n:t.length,f=Mg(t,l,h,n,!1,s&&s[a+1],i),f===f.next&&(f.steiner=!0),o.push(VC(f));for(o.sort(DC),a=0;a<o.length;a++)r=wC(o[a],r);return r}function DC(t,e){return t.x-e.x}function wC(t,e){let r=vC(t,e);if(!r)return e;let n=Ig(r,t);return lr(n,n.next),lr(r,r.next)}function vC(t,e){let r=e,n=t.x,s=t.y,i=-1/0,o;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){let u=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=n&&u>i&&(i=u,o=r.x<r.next.x?r:r.next,u===n))return o}r=r.next}while(r!==e);if(!o)return null;let a=o,c=o.x,l=o.y,h=1/0,f;r=o;do n>=r.x&&r.x>=c&&n!==r.x&&kr(s<l?n:i,s,c,l,s<l?i:n,s,r.x,r.y)&&(f=Math.abs(s-r.y)/(n-r.x),Gn(r,t)&&(f<h||f===h&&(r.x>o.x||r.x===o.x&&UC(o,r)))&&(o=r,h=f)),r=r.next;while(r!==a);return o}function UC(t,e){return rt(t.prev,t,e.prev)<0&&rt(e.next,t,t.next)<0}function LC(t,e,r,n){let s=t;do s.z===0&&(s.z=cl(s.x,s.y,e,r,n)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==t);s.prevZ.nextZ=null,s.prevZ=null,HC(s)}function HC(t){let e,r,n=1,s,i,o,a,c,l;do{for(i=t,t=null,l=null,s=0;i;){for(s++,a=i,o=0,r=0;r<n&&(o++,a=a.nextZ,!!a);r++);for(c=n;o>0||c>0&&a;)o!==0&&(c===0||!a||i.z<=a.z)?(e=i,i=i.nextZ,o--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;i=a}l.nextZ=null,n*=2}while(s>1);return t}function cl(t,e,r,n,s){return t=(t-r)*s|0,e=(e-n)*s|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function VC(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function kr(t,e,r,n,s,i,o,a){return(s-o)*(e-a)>=(t-o)*(i-a)&&(t-o)*(n-a)>=(r-o)*(e-a)&&(r-o)*(i-a)>=(s-o)*(n-a)}function XC(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!WC(t,e)&&(Gn(t,e)&&Gn(e,t)&&zC(t,e)&&(rt(t.prev,t,e.prev)||rt(t,e.prev,e))||Zi(t,e)&&rt(t.prev,t,t.next)>0&&rt(e.prev,e,e.next)>0)}function rt(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Zi(t,e){return t.x===e.x&&t.y===e.y}function yg(t,e,r,n){let s=ji(rt(t,e,r)),i=ji(rt(t,e,n)),o=ji(rt(r,n,t)),a=ji(rt(r,n,e));return!!(s!==i&&o!==a||s===0&&qi(t,r,e)||i===0&&qi(t,n,e)||o===0&&qi(r,t,n)||a===0&&qi(r,e,n))}function qi(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ji(t){return t>0?1:t<0?-1:0}function WC(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&yg(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Gn(t,e){return rt(t.prev,t,t.next)<0?rt(t,e,t.next)>=0&&rt(t,t.prev,e)>=0:rt(t,e,t.prev)<0||rt(t,t.next,e)<0}function zC(t,e){let r=t,n=!1,s=(t.x+e.x)/2,i=(t.y+e.y)/2;do r.y>i!=r.next.y>i&&r.next.y!==r.y&&s<(r.next.x-r.x)*(i-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function Ig(t,e){let r=new Jn(t.i,t.x,t.y),n=new Jn(e.i,e.x,e.y),s=t.next,i=e.prev;return t.next=e,e.prev=t,r.next=s,s.prev=r,n.next=r,r.prev=n,i.next=n,n.prev=i,n}function Bg(t,e,r,n){let s=new Jn(t,e,r);return n?(s.next=n.next,s.prev=n,n.next.prev=s,n.next=s):(s.prev=s,s.next=s),s}function Kn(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Jn=class{constructor(e,r,n){P(this,"i",void 0),P(this,"x",void 0),P(this,"y",void 0),P(this,"prev",null),P(this,"next",null),P(this,"z",0),P(this,"prevZ",null),P(this,"nextZ",null),P(this,"steiner",!1),this.i=e,this.x=r,this.y=n}};function ul(t,e,r){let n=YC(t),s=Object.keys(n).filter(i=>n[i]!==Array);return qC(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||s,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function YC(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let s=r.properties[n];e[n]=eB(s,e[n])}return e}function qC(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:s,linePositionsCount:i,linePathsCount:o,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:h,polygonFeaturesCount:f,propArrayTypes:u,coordLength:d}=e,{numericPropKeys:p=[],PositionDataType:_=Float32Array,triangulate:A=!0}=r,T=t[0]&&"id"in t[0],x=t.length>65535?Uint32Array:Uint16Array,R={type:"Point",positions:new _(n*d),globalFeatureIds:new x(n),featureIds:s>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},S={type:"LineString",pathIndices:i>65535?new Uint32Array(o+1):new Uint16Array(o+1),positions:new _(i*d),globalFeatureIds:new x(i),featureIds:a>65535?new Uint32Array(i):new Uint16Array(i),numericProps:{},properties:[],fields:[]},B={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(h+1):new Uint16Array(h+1),positions:new _(c*d),globalFeatureIds:new x(c),featureIds:f>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};A&&(B.triangles=[]);for(let F of[R,S,B])for(let C of p){let E=u[C];F.numericProps[C]=new E(F.positions.length/d)}S.pathIndices[o]=i,B.polygonIndices[l]=c,B.primitivePolygonIndices[h]=c;let M={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let F of t){let C=F.geometry,E=F.properties||{};switch(C.type){case"Point":jC(C,R,M,d,E),R.properties.push(fl(E,p)),T&&R.fields.push({id:F.id}),M.pointFeature++;break;case"LineString":ZC(C,S,M,d,E),S.properties.push(fl(E,p)),T&&S.fields.push({id:F.id}),M.lineFeature++;break;case"Polygon":QC(C,B,M,d,E),B.properties.push(fl(E,p)),T&&B.fields.push({id:F.id}),M.polygonFeature++;break;default:throw new Error("Invalid geometry type")}M.feature++}return tB(R,S,B,d)}function jC(t,e,r,n,s){e.positions.set(t.data,r.pointPosition*n);let i=t.data.length/n;dl(e,s,r.pointPosition,i),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+i),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+i),r.pointPosition+=i}function ZC(t,e,r,n,s){e.positions.set(t.data,r.linePosition*n);let i=t.data.length/n;dl(e,s,r.linePosition,i),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+i),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=t.indices[o],l=o===a-1?t.data.length:t.indices[o+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function QC(t,e,r,n,s){e.positions.set(t.data,r.polygonPosition*n);let i=t.data.length/n;dl(e,s,r.polygonPosition,i),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+i),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[o],h=t.indices[o],f=t.indices[o+1];for(let d=0,p=h.length;d<p;++d){let _=h[d],A=d===p-1?f===void 0?t.data.length:f[0]:h[d+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(A-_)/n}let u=r.polygonPosition;$C(e,l,h,{startPosition:c,endPosition:u,coordLength:n})}}function $C(t,e,r,n){let{startPosition:s,endPosition:i,coordLength:o}=n;if(!t.triangles)return;let a=s*o,c=i*o,l=t.positions.subarray(a,c),h=r[0],f=r.slice(1).map(d=>(d-h)/o),u=ll(l,f,o,e);for(let d=0,p=u.length;d<p;++d)t.triangles.push(s+u[d])}function hl(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function tB(t,e,r,n){let s={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:hl(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:hl(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:hl(r.numericProps,1)}};return s.polygons&&r.triangles&&(s.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),s}function dl(t,e,r,n){for(let s in t.numericProps)if(s in e){let i=e[s];t.numericProps[s].fill(i,r,r+n)}}function fl(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function eB(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function to(t,e){let r=e?.globalFeatureId;return r!==void 0?rB(t,r):nB(t,e?.type)}function rB(t,e){let r=bg(t);for(let n of r){let s=0,i=n.featureIds.value[0];for(let o=0;o<n.featureIds.value.length;o++){let a=n.featureIds.value[o];if(a!==i){if(e===n.globalFeatureIds.value[s])return Qi(n,s,o);s=o,i=a}}if(e===n.globalFeatureIds.value[s])return Qi(n,s,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function nB(t,e){let r=bg(t,e);return sB(r)}function Og(t,e,r){switch(t.type){case"Point":return cB(t,e,r);case"LineString":return aB(t,e,r);case"Polygon":return Pg(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function bg(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function sB(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,s=r.featureIds.value[0];for(let i=0;i<r.featureIds.value.length;i++){let o=r.featureIds.value[i];o!==s&&(e.push(Qi(r,n,i)),n=i,s=o)}e.push(Qi(r,n,r.featureIds.value.length))}return e}function Qi(t,e,r){let n=Og(t,e,r),s=oB(t,e,r),i=iB(t,e,r);return{type:"Feature",geometry:n,properties:s,...i}}function iB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0;return t.fields&&t.fields[t.featureIds.value[e]]}function oB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let s in t.numericProps)n[s]=t.numericProps[s].value[e];return n}function Pg(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.polygonIndices.value.filter(c=>c>=e&&c<=r),i=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(s.length>2)){let c=[];for(let l=0;l<i.length-1;l++){let h=i[l],f=i[l+1],u=$i(n,h,f);c.push(u)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<s.length-1;c++){let l=s[c],h=s[c+1],f=Pg(t,l,h).coordinates;a.push(f)}return{type:"MultiPolygon",coordinates:a}}function aB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(s.length>2))return{type:"LineString",coordinates:$i(n,s[0],s[1])};let o=[];for(let a=0;a<s.length-1;a++){let c=$i(n,s[a],s[a+1]);o.push(c)}return{type:"MultiLineString",coordinates:o}}function cB(t,e,r){let{positions:n}=t,s=$i(n,e,r);return s.length>1?{type:"MultiPoint",coordinates:s}:{type:"Point",coordinates:s[0]}}function $i(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let s=e;s<r;s++){let i=Array();for(let o=s*t.size;o<(s+1)*t.size;o++)i.push(Number(t.value[o]));n.push(i)}return n}var El=v(Vg(),1);function Xg(t){let e=t.length;if(e<=1)return[t];let r=[],n,s;for(let i=0;i<e;i++){let o=MB(t[i]);o!==0&&(s===void 0&&(s=o<0),s===o<0?(n&&r.push(n),n=[t[i]]):n&&n.push(t[i]))}return n&&r.push(n),r}function MB(t){let e=0;for(let r=0,n=t.length-1,s,i;r<t.length;n=r++)s=t[r],i=t[n],e+=(i[0]-s[0])*(s[1]+i[1]);return e}function Wg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?yB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function yB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var hr=class{static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(e,r,n,s,i){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,e.readFields(Wg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=[],c;for(;e.pos<r;){if(s<=0){let l=e.readVarint();n=l&7,s=l>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([i,o]);else if(n===7)c&&c.push(c[0].slice());else throw new Error(`unknown command ${n}`)}return c&&a.push(c),a}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=1/0,c=-1/0,l=1/0,h=-1/0;for(;e.pos<r;){if(s<=0){let f=e.readVarint();n=f&7,s=f>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),i<a&&(a=i),i>c&&(c=i),o<l&&(l=o),o>h&&(h=o);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,h]}_toGeoJSON(e){let r=this.loadGeometry(),n=hr.types[this.type],s,i;switch(this.type){case 1:let a=[];for(s=0;s<r.length;s++)a[s]=r[s][0];r=a,e(r,this);break;case 2:for(s=0;s<r.length;s++)e(r[s],this);break;case 3:for(r=Xg(r),s=0;s<r.length;s++)for(i=0;i<r[s].length;i++)e(r[s][i],this);break}r.length===1?r=r[0]:n=`Multi${n}`;let o={type:"Feature",geometry:{type:n,coordinates:r},properties:this.properties};return this.id!==null&&(o.id=this.id),o}toGeoJSON(e){if(typeof e=="function")return this._toGeoJSON(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;function c(l){for(let h=0;h<l.length;h++){let f=l[h];f[0]=(f[0]+o)*360/i-180;let u=180-(f[1]+a)*360/i;f[1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}return this._toGeoJSON(c)}};var Yn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(IB,this,r),this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new hr(this._pbf,r,this.extent,this._keys,this._values)}};function IB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(FB(r)))}function FB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var qn=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(NB,{},r)}};function NB(t,e,r){if(t===3&&r){let n=new Yn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function zg(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[cr(t.data)]],indices:[t.indices]};let n=[],s=[],i=[],o=[],a,c=0;for(let l,h=0,f;h<e;h++){f=t.indices[h]-c,l=t.indices[h+1]-c||t.data.length;let u=t.data.slice(f,l),d=cr(u);if(d===0){let p=t.data.slice(0,f),_=t.data.slice(l);t.data=p.concat(_),c+=l-f;continue}a===void 0&&(a=d<0),a===d<0?(o.length&&(n.push(i),s.push(o)),o=[f],i=[d]):(i.push(d),o.push(f))}return i&&n.push(i),o.length&&s.push(o),{type:r,areas:n,indices:s,data:t.data}}function kg(t,e,r,n){for(let s=0,i=t.length;s<i;s+=2){t[s]=(t[s]+e)*360/n-180;let o=180-(t[s+1]+r)*360/n;t[s+1]=360/Math.PI*Math.atan(Math.exp(o*Math.PI/180))-90}}function Gg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?OB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function OB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var Kg,fr,Al,no,_l,ml,jn;var Zn=class{constructor(e,r,n,s,i,o){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this._geometryInfo=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,this._geometryInfo=o,e.readFields(Gg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry,Kg=e.readVarint()+e.pos,fr=1,no=0,_l=0,ml=0,jn=0;let r=[],n=[];for(;e.pos<Kg;)if(no<=0&&(Al=e.readVarint(),fr=Al&7,no=Al>>3),no--,fr===1||fr===2)_l+=e.readSVarint(),ml+=e.readSVarint(),fr===1&&r.push(jn),n.push(_l,ml),jn+=2;else if(fr===7){if(jn>0){let s=r[r.length-1];n.push(n[s],n[s+1]),jn+=2}}else throw new Error(`unknown command ${fr}`);return{data:n,indices:r}}_toBinaryCoordinates(e){let r=this.loadGeometry(),n;e(r.data,this);let s=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r.indices.length,n={type:"Point",...r};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r.indices.length,this._geometryInfo.linePositionsCount+=r.data.length/s,n={type:"LineString",...r};break;case 3:n=zg(r),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let o of n.indices)this._geometryInfo.polygonRingsCount+=o.length;this._geometryInfo.polygonPositionsCount+=n.data.length/s;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let i={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(i.id=this.id),i}toBinaryCoordinates(e){if(typeof e=="function")return this._toBinaryCoordinates(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;return this._toBinaryCoordinates(c=>kg(c,o,a,i))}};var Qn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(bB,this,r),this.length=this._features.length}feature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new Zn(this._pbf,n,this.extent,this._keys,this._values,r)}};function bB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(PB(r)))}function PB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var $n=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(DB,{},r)}};function DB(t,e,r){if(t===3&&r){let n=new Qn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function so(t,e){var r,n;let s=vB(e),i=(e==null||(r=e.gis)===null||r===void 0?void 0:r.format)||(e==null||(n=e.mvt)===null||n===void 0?void 0:n.shape)||e?.shape;switch(i){case"columnar-table":return{shape:"columnar-table",data:Tl(t,s)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:Jg(t,s)};case"geojson":return Jg(t,s);case"binary-geometry":return Tl(t,s);case"binary":return Tl(t,s);default:throw new Error(i||"undefined shape")}}function Tl(t,e){let[r,n]=wB(t,e),s=ul(r,n);return s.byteLength=t.byteLength,s}function wB(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let s=new $n(new El.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(s.layers)).forEach(o=>{let a=s.layers[o];if(a)for(let c=0;c<a.length;c++){let l=a.feature(c,n),h=LB(l,e,o);r.push(h)}}),[r,n]}function Jg(t,e){if(t.byteLength<=0)return[];let r=[],n=new qn(new El.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(i=>{let o=n.layers[i];if(o)for(let a=0;a<o.length;a++){let c=o.feature(a),l=UB(c,e,i);r.push(l)}}),r}function vB(t){var e;if(!(t!=null&&t.mvt))throw new Error("mvt options required");let r=((e=t.mvt)===null||e===void 0?void 0:e.coordinates)==="wgs84",{tileIndex:n}=t.mvt,s=n&&Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z);if(r&&!s)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.mvt}function UB(t,e,r){let n=t.toGeoJSON(e.coordinates==="wgs84"?e.tileIndex:HB);return e.layerProperty&&(n.properties[e.layerProperty]=r),n}function LB(t,e,r){let n=t.toBinaryCoordinates(e.coordinates==="wgs84"?e.tileIndex:VB);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}function HB(t,e){let{extent:r}=e;for(let n=0;n<t.length;n++){let s=t[n];s[0]/=r,s[1]/=r}}function VB(t,e){let{extent:r}=e;for(let n=0,s=t.length;n<s;++n)t[n]/=r}var XB="4.1.0",io={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:XB,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},WB={...io,parse:async(t,e)=>so(t,e),parseSync:so,binary:!0};var zB={Point:Yg,MultiPoint:kB,LineString:qg,MultiLineString:GB,Polygon:jg,MultiPolygon:KB};function Yg([t,e],[r,n],s){let i=Re(r[0],n[0],t),o=Re(r[1],n[1],e);return s.unprojectFlat([i,o])}function Rl(t,e,r){return t.map(n=>Yg(n,e,r))}function kB(t,e,r){return Rl(t,e,r)}function qg(t,e,r){return Rl(t,e,r)}function GB(t,e,r){return t.map(n=>qg(n,e,r))}function jg(t,e,r){return t.map(n=>Rl(n,e,r))}function KB(t,e,r){return t.map(n=>jg(n,e,r))}function Zg(t,e,r){let n=r.projectFlat([e.west,e.north]),s=r.projectFlat([e.east,e.south]),i=[n,s];return{...t,coordinates:zB[t.type](t.coordinates,i,r)}}var JB=["points","lines","polygons"];function xl(t,e,r,n){for(let s of JB){let i=t[s]&&YB(t[s],e,r,n);if(i>=0)return i}return-1}function YB(t,e,r,n){let s=t.featureIds.value;if(!s.length)return-1;let i=0,o=s[s.length-1]+1;if(n){let c=qB(t,n);if(c)i=c[0],o=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,h)=>l===r&&s[h]>=i&&s[h]<o);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=Qg(t.properties,c=>c[e]===r,i,o):t.fields&&(a=Qg(t.fields,c=>c.id===r,i,o));return a>=0?jB(t,a):-1}function qB(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let s=0;s<n.length;s++){let{layerName:i}=n[s];i&&(r[i]?r[i][1]=s:r[i]=[s,s])}t.__layers=r}return t.__layers[e]}function jB(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,s=t.globalFeatureIds.value;for(let i=0;i<n.length;i++)r[n[i]]=s[i];t.__ids=r}return t.__ids[e]}function Qg(t,e,r,n){for(let s=r;s<n;s++)if(e(t[s],s))return s;return-1}var Sl=512,ZB={...Bl.GeoJsonLayer.defaultProps,data:Ie,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[io],binary:!0},oo=class extends te{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:s}){s.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:s}),this._setWGS84PropertyForTiles());let{highlightColor:i}=e;i!==r.highlightColor&&Array.isArray(i)&&this.setState({highlightColor:i})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Na(e)){let{onDataLoad:n,fetch:s}=this.props;this.setState({data:null,tileJSON:null});try{r=await s(e,{propName:"data",layer:this,loaders:[]})}catch(i){this.raiseError(i,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:s}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(s)||r.maxzoom<s)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:s,signal:i}=e,o=$t(r,e);if(!o)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,mimeType:"application/x-protobuf",mvt:{...a?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:s},gis:n?{format:"binary"}:{}},c(o,{propName:"data",layer:this,loadOptions:a,signal:i})}renderSubLayers(e){let{x:r,y:n,z:s}=e.tile.index,i=Math.pow(2,s),o=Sl/i,a=-o,c=Sl*r/i,l=Sl*(1-n/i),h=new D().scale([o,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=h,e.coordinateOrigin=[c,l,0],e.coordinateSystem=ao.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new r0.ClipExtension]);let f=super.renderSubLayers(e);return this.state.binary&&!(f instanceof Bl.GeoJsonLayer)&&ao.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),f}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:s}=this.state,i=e.object,o=null,a=null;i&&(o=Cl(i,r),a=$g(i));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==o||s!==a)&&this.setState({highlightColor:c,hoveredFeatureId:o,hoveredFeatureLayerName:a})}getPickingInfo(e){let r=super.getPickingInfo(e),n=Boolean(this.context.viewport.resolution);if(this.state.binary&&r.index!==-1){let{data:s}=e.sourceLayer.props;r.object=to(s,{globalFeatureId:r.index})}return r.object&&!n&&(r.object=e0(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:s}=this.state,{uniqueIdProperty:i,highlightedFeatureId:o}=this.props,a=e.content,c=t0(o);if(!(t0(r)||c))return-1;let h=c?o:r;return Array.isArray(a)?a.findIndex(f=>{let u=Cl(f,i)===h,d=c||$g(f)===n;return u&&d}):a&&s?xl(a,i,h,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,s=n.width,i=n.height,o=n.x,a=n.y,c=[this.id];return r.pickObjects({x:o,y:a,width:s,height:i,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,s=[];for(let i of r){let o=Cl(i.object,this.props.uniqueIdProperty);o===void 0?s.push(i.object):n.has(o)||(n.add(o),s.push(i.object))}return s}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:s}=n;if(n._contentWGS84===void 0&&Oa(s)){let i=this.state.binary?to(n.content):n.content;n._contentWGS84=i.map(o=>e0(o,s,this.context.viewport))}return n._contentWGS84}})})}},ts=oo;(()=>{oo.layerName="MVTLayer"})(),(()=>{oo.defaultProps=ZB})();function Cl(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function $g(t){return t.properties?.layerName||null}function t0(t){return t!=null&&t!==""}function e0(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>Zg(t.geometry,e,r).coordinates}),n}var n0="0123456789bcdefghjkmnpqrstuvwxyz",s0={};for(let t=0;t<n0.length;t++)s0[n0.charAt(t)]=t;var QB=-90,$B=90,tM=-180,eM=180;function rM(t){let e=!0,r=$B,n=QB,s=eM,i=tM,o,a=0;for(let c=0,l=t.length;c<l;c++){let h=t[c].toLowerCase();a=s0[h];for(let f=4;f>=0;f--){let u=a>>f&1;e?(o=(s+i)/2,u===1?i=o:s=o):(o=(r+n)/2,u===1?n=o:r=o),e=!e}}return[n,i,r,s]}function i0(t){let[e,r,n,s]=rM(t);return[s,n,s,e,r,e,r,n,s,n]}var nM={getGeohash:{type:"accessor",value:t=>t.geohash}},co=class extends It{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,s)=>i0(r(n,s))}}},es=co;(()=>{co.layerName="GeohashLayer"})(),(()=>{co.defaultProps=nM})();return d0(rs);})();
637
+ `;function lE(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var hE={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},ei=class extends Zu.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(Ka),{...e,vs:Yu,fs:qu}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:ti.UNSIGNED_BYTE,size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props;this.state.model&&(this.state.model.setUniforms({u_Camera:this.state.model.uniforms.project_uCameraPosition,pickFeatureIds:Boolean(r)}),super.draw(e))}getModel(e){let{id:r,pbrMaterial:n}=this.props,s=this.parseMaterial(n,e);this.setState({parsedPBRMaterial:s});let i=this.getShaders();return lE(e.attributes),new ju.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...i.defines,...s?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:s?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,s=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:s}),r.setBindings(s.bindings),r.setUniforms(s.uniforms)}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return wa(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){let r=this.props.featureIds,n=new Uint8ClampedArray(r.length*e.size),s=[];for(let i=0;i<r.length;i++)this.encodePickingColor(r[i],s),n[i*3]=s[0],n[i*3+1]=s[1],n[i*3+2]=s[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}},Cn=ei;(()=>{ei.layerName="MeshLayer"})(),(()=>{ei.defaultProps=hE})();var gg=v(Cr(),1);var he=6356752314245179e-9,fE={radii:[6378137,6378137,he],radiiSquared:[6378137*6378137,6378137*6378137,he*he],oneOverRadii:[1/6378137,1/6378137,1/he],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(he*he)],maximumRadius:Math.max(6378137,6378137,he),centerToleranceSquared:.1};function ri(t){return t}var $b=new m;function uE(t,e=[],r=ri){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function $u(t,e=[]){return uE(t,e,j._cartographicRadians?ri:Vo)}function dE(t,e,r=ri){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function td(t,e){return dE(t,e,j._cartographicRadians?ri:Xo)}var ed=1e-14,pE=new m,rd={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"}},Ja={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},Bn={east:new m,north:new m,up:new m,west:new m,south:new m,down:new m},gE=new m,AE=new m,_E=new m;function Ya(t,e,r,n,s,i){let o=rd[e]&&rd[e][r];ct(o&&(!n||n===o));let a,c,l,h=pE.copy(s);if(At(h.x,0,ed)&&At(h.y,0,ed)){let u=Math.sign(h.z);a=gE.fromArray(Ja[e]),e!=="east"&&e!=="west"&&a.scale(u),c=AE.fromArray(Ja[r]),r!=="east"&&r!=="west"&&c.scale(u),l=_E.fromArray(Ja[n]),n!=="east"&&n!=="west"&&l.scale(u)}else{let{up:u,east:d,north:p}=Bn;d.set(-h.y,h.x,0).normalize(),t.geodeticSurfaceNormal(h,u),p.copy(u).cross(d);let{down:_,west:A,south:T}=Bn;_.copy(u).scale(-1),A.copy(d).scale(-1),T.copy(p).scale(-1),a=Bn[e],c=Bn[r],l=Bn[n]}return i[0]=a.x,i[1]=a.y,i[2]=a.z,i[3]=0,i[4]=c.x,i[5]=c.y,i[6]=c.z,i[7]=0,i[8]=l.x,i[9]=l.y,i[10]=l.z,i[11]=0,i[12]=h.x,i[13]=h.y,i[14]=h.z,i[15]=1,i}var Br=new m,mE=new m,TE=new m;function nd(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:s,centerToleranceSquared:i}=e;Br.from(t);let o=Br.x,a=Br.y,c=Br.z,l=n.x,h=n.y,f=n.z,u=o*o*l*l,d=a*a*h*h,p=c*c*f*f,_=u+d+p,A=Math.sqrt(1/_);if(!Number.isFinite(A))return;let T=mE;if(T.copy(t).scale(A),_<i)return T.to(r);let x=s.x,R=s.y,S=s.z,B=TE;B.set(T.x*x*2,T.y*R*2,T.z*S*2);let M=(1-A)*Br.len()/(.5*B.len()),F=0,C,E,g,y;do{M-=F,C=1/(1+M*x),E=1/(1+M*R),g=1/(1+M*S);let O=C*C,b=E*E,N=g*g,U=O*C,Y=b*E,W=N*g;y=u*O+d*b+p*N-1;let J=-2*(u*U*x+d*Y*R+p*W*S);F=y/J}while(Math.abs(y)>Ht.EPSILON12);return Br.scale([C,E,g]).to(r)}var ni=new m,sd=new m,xE=new m,zt=new m,SE=new m,si=new m,L=class{constructor(e=0,r=0,n=0){P(this,"radii",void 0),P(this,"radiiSquared",void 0),P(this,"radiiToTheFourth",void 0),P(this,"oneOverRadii",void 0),P(this,"oneOverRadiiSquared",void 0),P(this,"minimumRadius",void 0),P(this,"maximumRadius",void 0),P(this,"centerToleranceSquared",Ht.EPSILON1),P(this,"squaredXOverSquaredZ",void 0),ct(e>=0),ct(r>=0),ct(n>=0),this.radii=new m(e,r,n),this.radiiSquared=new m(e*e,r*r,n*n),this.radiiToTheFourth=new m(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new m(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new m(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||Boolean(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=sd,s=xE,[,,i]=e;this.geodeticSurfaceNormalCartographic(e,n),s.copy(this.radiiSquared).scale(n);let o=Math.sqrt(n.dot(s));return s.scale(1/o),n.scale(i),s.add(n),s.to(r)}cartesianToCartographic(e,r=[0,0,0]){si.from(e);let n=this.scaleToGeodeticSurface(si,zt);if(!n)return;let s=this.geodeticSurfaceNormal(n,sd),i=SE;i.copy(si).subtract(n);let o=Math.atan2(s.y,s.x),a=Math.asin(s.z),c=Math.sign(_r.dot(i,si))*_r.length(i);return td([o,a,c],r)}eastNorthUpToFixedFrame(e,r=new D){return Ya(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,s,i=new D){return Ya(this,e,r,n,s,i)}geocentricSurfaceNormal(e,r=[0,0,0]){return ni.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=$u(e),s=n[0],i=n[1],o=Math.cos(i);return ni.set(o*Math.cos(s),o*Math.sin(s),Math.sin(i)).normalize(),ni.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return ni.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return nd(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){zt.from(e);let n=zt.x,s=zt.y,i=zt.z,o=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*o.x+s*s*o.y+i*i*o.z);return zt.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return zt.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){ct(At(this.radii.x,this.radii.y,Ht.EPSILON15)),ct(this.radii.z>0),zt.from(e);let s=zt.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(s)>=this.radii.z-r))return zt.set(0,0,s).to(n)}};P(L,"WGS84",new L(6378137,6378137,he));var ii=class{constructor(e,r,n){this.item=void 0,this.previous=void 0,this.next=void 0,this.item=e,this.previous=r,this.next=n}};var oi=class{constructor(){this.head=null,this.tail=null,this._length=0}get length(){return this._length}add(e){let r=new ii(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var ai=class{constructor(){this._list=void 0,this._sentinel=void 0,this._trimTiles=void 0,this._list=new oi,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let s=r._cacheNode;s&&(this._list.remove(s),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let s=this._list,i=e.maximumMemoryUsage*1024*1024,o=this._sentinel,a=s.head;for(;a!==o&&(e.gpuMemoryUsageInBytes>i||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function id(t,e){V(t),V(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:s,boundingVolume:{center:i}}=t,o=new D(s);switch(r&&o.translate(r),n){case"Z":break;case"Y":let f=new D().rotateX(Math.PI/2);o=o.multiplyRight(f);break;case"X":let u=new D().rotateY(-Math.PI/2);o=o.multiplyRight(u);break;default:break}e.isQuantized&&o.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new m(i);e.cartesianModelMatrix=o,e.cartesianOrigin=a;let c=L.WGS84.cartesianToCartographic(a,new m),h=L.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=h.multiplyRight(o),e.cartographicOrigin=c,e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var od=new m,qa=new m,ja=new ot([new lt,new lt,new lt,new lt,new lt,new lt]);function cd(t,e){let{cameraDirection:r,cameraUp:n,height:s}=t,{metersPerUnit:i}=t.distanceScales,o=ci(t,t.center),a=L.WGS84.eastNorthUpToFixedFrame(o),c=t.unprojectPosition(t.cameraPosition),l=L.WGS84.cartographicToCartesian(c,new m),h=new m(a.transformAsVector(new m(r).scale(i))).normalize(),f=new m(a.transformAsVector(new m(n).scale(i))).normalize();CE(t);let u=t.constructor,{longitude:d,latitude:p,width:_,bearing:A,zoom:T}=t,x=new u({longitude:d,latitude:p,height:s,width:_,bearing:A,zoom:T,pitch:0});return{camera:{position:l,direction:h,up:f},viewport:t,topDownViewport:x,height:s,cullingVolume:ja,frameNumber:e,sseDenominator:1.15}}function ld(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:s,latitude:i}=e.viewport;for(let[l,h]of t.entries()){let[f,u]=h.header.mbs,d=Math.abs(s-f),p=Math.abs(i-u),_=Math.sqrt(p*p+d*d);n.push([l,_])}let o=n.sort((l,h)=>l[1]-h[1]),a=[];for(let l=0;l<r;l++)a.push(t[o[l][0]]);let c=[];for(let l=r;l<o.length;l++)c.push(t[o[l][0]]);return[a,c]}function CE(t){let e=t.getFrustumPlanes(),r=ad(e.near,t.cameraPosition),n=ci(t,r),s=ci(t,t.cameraPosition,qa),i=0;ja.planes[i++].fromPointNormal(n,od.copy(n).subtract(s));for(let o in e){if(o==="near")continue;let a=e[o],c=ad(a,r,qa),l=ci(t,c,qa);ja.planes[i++].fromPointNormal(l,od.copy(n).subtract(l))}}function ad(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ci(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new m,n=t.unprojectPosition(e);return L.WGS84.cartographicToCartesian(n,r)}var BE=6378137,ME=6378137,Za=6356752314245179e-9,Mr=new m;function hd(t,e){if(t instanceof Xt){let{halfAxes:r}=t,n=yE(r);return Math.log2(Za/(n+e[2]))}else if(t instanceof Ot){let{radius:r}=t;return Math.log2(Za/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,s=Math.log2(BE/r),i=Math.log2(ME/n);return(s+i)/2}return 1}function Qa(t,e,r){L.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Mr);let n=Math.sqrt(Math.pow(Mr[0]-r[0],2)+Math.pow(Mr[1]-r[1],2)+Math.pow(Mr[2]-r[2],2));return Math.log2(Za/(n+e[2]))}function fd(t,e,r){let[n,s,i,o]=t;return Qa({xmin:n,xmax:i,ymin:s,ymax:o,zmin:0,zmax:0},e,r)}function yE(t){t.getColumn(0,Mr);let e=t.getColumn(1),r=t.getColumn(2);return Mr.add(e).add(r).len()}var Id=v(Cr(),1);var _t={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Et=function(t){return t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE",t}({}),re=function(t){return t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh",t}({}),ft=function(t){return t.I3S="I3S",t.TILES3D="TILES3D",t}({}),qe=function(t){return t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold",t}({}),ud={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Ad(t){return t!=null}var ut=new m,li=new m,IE=new m,FE=new m,je=new m,dd=new m,pd=new m,gd=new m;function hi(t,e,r){if(V(t,"3D Tile: boundingVolume must be defined"),t.box)return md(t.box,e,r);if(t.region)return OE(t.region);if(t.sphere)return NE(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function _d(t,e){if(t.box)return bE(e);if(t.region){let[r,n,s,i,o,a]=t.region;return[[yt(r),yt(n),o],[yt(s),yt(i),a]]}if(t.sphere)return PE(e);throw new Error("Unkown boundingVolume type")}function md(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=[];if(t.length===10){let l=t.slice(3,6),h=new Zt;h.fromArray(t,6);let f=new m([1,0,0]),u=new m([0,1,0]),d=new m([0,0,1]);f.transformByQuaternion(h),f.scale(l[0]),u.transformByQuaternion(h),u.scale(l[1]),d.transformByQuaternion(h),d.scale(l[2]),s=[...f.toArray(),...u.toArray(),...d.toArray()]}else s=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let i=e.transformAsVector(s.slice(0,3)),o=e.transformAsVector(s.slice(3,6)),a=e.transformAsVector(s.slice(6,9)),c=new z([i[0],i[1],i[2],o[0],o[1],o[2],a[0],a[1],a[2]]);return Ad(r)?(r.center=n,r.halfAxes=c,r):new Xt(n,c)}function NE(t,e,r){let n=new m(t[0],t[1],t[2]);e.transform(n,n);let s=e.getScale(li),i=Math.max(Math.max(s[0],s[1]),s[2]),o=t[3]*i;return Ad(r)?(r.center=n,r.radius=o,r):new Ot(n,o)}function OE(t){let[e,r,n,s,i,o]=t,a=L.WGS84.cartographicToCartesian([yt(e),yt(s),i],IE),c=L.WGS84.cartographicToCartesian([yt(n),yt(r),o],FE),l=new m().addVectors(a,c).multiplyByScalar(.5);return L.WGS84.cartesianToCartographic(l,je),L.WGS84.cartographicToCartesian([yt(n),je[1],je[2]],dd),L.WGS84.cartographicToCartesian([je[0],yt(s),je[2]],pd),L.WGS84.cartographicToCartesian([je[0],je[1],o],gd),md([...l,...dd.subtract(l),...pd.subtract(l),...gd.subtract(l)],new D)}function bE(t){let e=Td(),{halfAxes:r}=t,n=new m(r.getColumn(0)),s=new m(r.getColumn(1)),i=new m(r.getColumn(2));for(let o=0;o<2;o++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)ut.copy(t.center),ut.add(n),ut.add(s),ut.add(i),Ed(e,ut),i.negate();s.negate()}n.negate()}return e}function PE(t){let e=Td(),{center:r,radius:n}=t,s=L.WGS84.scaleToGeodeticSurface(r,ut),i;s?i=L.WGS84.geodeticSurfaceNormal(s):i=new m(0,0,1);let o=new m(i[2],-i[1],0);o.len()>0?o.normalize():o=new m(0,1,0);let a=o.clone().cross(i);for(let c of[o,a,i]){li.copy(c).scale(n);for(let l=0;l<2;l++)ut.copy(r),ut.add(li),Ed(e,ut),li.negate()}return e}function Td(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Ed(t,e){L.WGS84.cartesianToCartographic(e,ut),t[0][0]=Math.min(t[0][0],ut[0]),t[0][1]=Math.min(t[0][1],ut[1]),t[0][2]=Math.min(t[0][2],ut[2]),t[1][0]=Math.max(t[1][0],ut[0]),t[1][1]=Math.max(t[1][1],ut[1]),t[1][2]=Math.max(t[1][2],ut[2])}var VP=new m,XP=new m,WP=new D,zP=new m,kP=new m,GP=new m;function DE(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function wE(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return DE(e,r)*n}return 0}function Rd(t,e,r){let n=t.tileset,s=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,i=r?s:t.lodMetricValue;if(i===0)return 0;let o=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,h=i*a*(l||1)/(o*c);return h-=wE(n,o),h}var $a=new m,xd=new m,Fe=new m,Sd=new m,vE=new m,tc=new D,Cd=new D;function Bd(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*ec(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function ec(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],s=t.header.mbs[0],i=t.header.mbs[2],o=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);L.WGS84.cartographicToCartesian(c,$a),xd.copy($a).subtract(a).normalize(),L.WGS84.eastNorthUpToFixedFrame(a,tc),Cd.copy(tc).invert(),Fe.copy($a).transform(Cd);let l=Math.sqrt(Fe[0]*Fe[0]+Fe[1]*Fe[1]),h=l*l/Fe[2];Sd.copy([Fe[0],Fe[1],h]);let u=Sd.transform(tc).subtract(a).normalize(),p=xd.cross(u).normalize().scale(o).add(a),_=L.WGS84.cartesianToCartographic(p),A=r.project([s,n,i]),T=r.project(_);return vE.copy(A).subtract(T).magnitude()}function Md(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var Mn=class{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;this._map=new Map,this._array=void 0,this._length=void 0,this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return V(e<this._array.length),this._array[e]}set(e,r){V(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){V(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){V(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var UE={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ne=class{traversalFinished(e){return!0}constructor(e){this.options=void 0,this.root=null,this.selectedTiles={},this.requestedTiles={},this.emptyTiles={},this.lastUpdate=new Date().getTime(),this.updateDebounceTime=1e3,this._traversalStack=new Mn,this._emptyTraversalStack=new Mn,this._frameNumber=null,this.options={...UE,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let i=n.pop(),o=!1;this.canTraverse(i,r)&&(this.updateChildTiles(i,r),o=this.updateAndPushChildren(i,r,n,i.hasRenderContent?i._selectionDepth+1:i._selectionDepth));let a=i.parent,c=Boolean(!a||a._shouldRefine),l=!o;i.hasRenderContent?i.refine===Et.ADD?(this.loadTile(i,r),this.selectTile(i,r)):i.refine===Et.REPLACE&&(this.loadTile(i,r),l&&this.selectTile(i,r)):(this.emptyTiles[i.id]=i,this.loadTile(i,r),l&&this.selectTile(i,r)),this.touchTile(i,r),i._shouldRefine=o&&c}let s=new Date().getTime();(this.traversalFinished(r)||s-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=s,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let s of n)this.updateTile(s,r)}updateAndPushChildren(e,r,n,s){let{loadSiblings:i,skipLevelOfDetail:o}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Et.REPLACE&&e.hasRenderContent&&!o,l=!1,h=!0;for(let f of a)if(f._selectionDepth=s,f.isVisibleAndInRequestVolume?(n.find(f)&&n.delete(f),n.push(f),l=!0):(c||i)&&(this.loadTile(f,r),this.touchTile(f,r)),c){let u;if(f._inRequestVolume?f.hasRenderContent?u=f.contentAvailable:u=this.executeEmptyTraversal(f,r):u=!1,h=h&&u,!h)return!1}return l||(h=!1),h}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;return e.hasChildren?e.hasTilesetContent?!e.contentExpired:!s&&!e.isVisibleAndInRequestVolume?!1:this.shouldRefine(e,r,n):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=e._screenSpaceError;return n&&(s=e.getScreenSpaceError(r,!0)),s>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let s in this.options.viewportTraversersMap)this.options.viewportTraversersMap[s]===r.viewport.id&&n.push(s);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let s of e.children)s.updateVisibility(r),n=n||s.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,s=this._emptyTraversalStack;for(s.push(e);s.length>0;){let i=s.pop(),o=!i.hasRenderContent&&this.canTraverse(i,r,!1,!1),a=!i.hasRenderContent&&i.children.length===0;if(!o&&!i.contentAvailable&&!a&&(n=!1),this.updateTile(i,r),i.isVisibleAndInRequestVolume||(this.loadTile(i,r),this.touchTile(i,r)),o){let c=i.children;for(let l of c)s.push(l)}}return n}};var yd=new m;function LE(t){return t!=null}var Ze=class{constructor(e,r,n){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"";this.tileset=void 0,this.header=void 0,this.id=void 0,this.url=void 0,this.parent=void 0,this.refine=void 0,this.type=void 0,this.contentUrl=void 0,this.lodMetricType="geometricError",this.lodMetricValue=0,this.boundingVolume=null,this.content=null,this.contentState=_t.UNLOADED,this.gpuMemoryUsageInBytes=0,this.children=[],this.depth=0,this.viewportIds=[],this.transform=new D,this.extensions=null,this.implicitTiling=null,this.userData={},this.computedTransform=void 0,this.hasEmptyContent=!1,this.hasTilesetContent=!1,this.traverser=new ne({}),this._cacheNode=null,this._frameNumber=null,this._expireDate=null,this._expiredContent=null,this._boundingBox=void 0,this._distanceToCamera=0,this._screenSpaceError=0,this._visibilityPlaneMask=void 0,this._visible=void 0,this._contentBoundingVolume=void 0,this._viewerRequestVolume=void 0,this._initialTransform=new D,this._priority=0,this._selectedFrame=0,this._requestedFrame=0,this._selectionDepth=0,this._touchedFrame=0,this._centerZDepth=0,this._shouldRefine=!1,this._stackLength=0,this._visitedFrame=0,this._inRequestVolume=!1,this._lodJudge=null,this.header=r,this.tileset=e,this.id=s||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===_t.READY||this.hasEmptyContent}get contentAvailable(){return Boolean(this.contentReady&&this.hasRenderContent||this._expiredContent&&!this.contentFailed)}get hasUnloadedContent(){return this.hasRenderContent&&this.contentUnloaded}get contentUnloaded(){return this.contentState===_t.UNLOADED}get contentExpired(){return this.contentState===_t.EXPIRED}get contentFailed(){return this.contentState===_t.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=_d(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case ft.I3S:return ec(this,e);case ft.TILES3D:return Rd(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===Et.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===_t.UNLOADED)return-1;let s=this.parent,o=s&&(!n||this._screenSpaceError===0||s.hasTilesetContent)?s._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-o,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=_t.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=_t.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),s=this.tileset.loader,i={...this.tileset.loadOptions,[s.id]:{...this.tileset.loadOptions[s.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(s.id)}};return this.content=await(0,Id.load)(n,s,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=_t.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=_t.FAILED,n}finally{r.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=_t.UNLOADED,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,s=n?n._visibilityPlaneMask:ot.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let i=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(i)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,s),this._visible=this._visibilityPlaneMask!==ot.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:s}=this;return n.computeVisibilityWithPlaneMask(s,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth(e){let{camera:r}=e,n=this.boundingVolume;return yd.subVectors(n.center,r.position),r.direction.dot(yd)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(LE(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=_t.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.lodMetricType:(this.lodMetricType=this.parent&&this.parent.lodMetricType||this.tileset.lodMetricType,console.warn("3D Tile: Required prop lodMetricType is undefined. Using parent lodMetricType")),"lodMetricValue"in e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new D(e.transform):new D;let r=this.parent,n=this.tileset,s=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new D(s).multiplyRight(this.transform);let i=r&&r._initialTransform?r._initialTransform.clone():new D;this._initialTransform=new D(i).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=_t.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ot.MASK_INDETERMINATE,this._visible=void 0,this._inRequestVolume=!1,this._stackLength=0,this._selectionDepth=0,this._frameNumber=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._priority=0}_getRefine(e){return e||this.parent&&this.parent.refine||Et.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=hi(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=hi(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=hi(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(){let r=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:new D).clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){switch(e){case"i3s":return{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1};case"3d-tiles":case"cesium-ion":default:return Md(this.tileset.tileset)}}};var fi=class extends ne{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let o=e.children[0];this.updateTileVisibility(o,r),e._visible=o._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let s=e.refine===Et.REPLACE,i=e._optimChildrenWithinParent===ud.USE_OPTIMIZATION;if(s&&i&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Et.ADD?!1:!this.shouldRefine(e,r,!0)}};var Fd=v(Cr(),1);var ui=class{constructor(){this.frameNumberMap=new Map}register(e,r){let n=this.frameNumberMap.get(e)||new Map,s=n.get(r)||0;n.set(r,s+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let s=n.get(r)||1;n.set(r,s-1)}isZero(e,r){var n;return(((n=this.frameNumberMap.get(e))===null||n===void 0?void 0:n.get(r))||0)===0}};var rc={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},di=class{constructor(){this._statusMap=void 0,this.pendingTilesRegister=new ui,this._statusMap={}}add(e,r,n,s){if(!this._statusMap[r]){let{frameNumber:i,viewport:{id:o}}=s;this._statusMap[r]={request:e,callback:n,key:r,frameState:s,status:rc.REQUESTED},this.pendingTilesRegister.register(o,i),e().then(a=>{this._statusMap[r].status=rc.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,s)}).catch(a=>{this._statusMap[r].status=rc.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:s}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(s,n);let{frameNumber:i,viewport:{id:o}}=r;this.pendingTilesRegister.register(o,i),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var pi=class extends ne{constructor(e){super(e),this._tileManager=void 0,this._tileManager=new di}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=Bd(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],s=e.children,i=e.tileset;for(let o of n){let a=`${o.id}-${r.viewport.id}`,c=s&&s.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(o.id,i);this._tileManager.find(a)?this._tileManager.update(a,r):(i.tileset.nodePages&&(l=()=>i.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(l,a,f=>this._onTileLoad(f,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,s=r.getTileUrl(`${r.url}/nodes/${e}`),i={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,Fd.load)(s,n,i)}_onTileLoad(e,r,n){let s=new Ze(r.tileset,e,r,n);r.children.push(s);let i=this._tileManager.find(s.id).frameState;this.updateTile(s,i),this._frameNumber===i.frameNumber&&(this.traversalFinished(i)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(s,i)}};var HE={description:"",ellipsoid:L.WGS84,modelMatrix:new D,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},gi="Tiles In Tileset(s)",nc="Tiles In Memory",Nd="Tiles In View",Od="Tiles To Render",bd="Tiles Loaded",sc="Tiles Loading",Pd="Tiles Unloaded",Dd="Failed Tile Loads",wd="Points/Vertices",ic="Tile Memory Use",vd="Maximum Screen Space Error",yn=class{constructor(e,r){this.options=void 0,this.loadOptions=void 0,this.type=void 0,this.tileset=void 0,this.loader=void 0,this.url=void 0,this.basePath=void 0,this.modelMatrix=void 0,this.ellipsoid=void 0,this.lodMetricType=void 0,this.lodMetricValue=void 0,this.refine=void 0,this.root=null,this.roots={},this.asset={},this.description="",this.properties=void 0,this.extras=null,this.attributions={},this.credits={},this.stats=void 0,this.contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1},this.cartographicCenter=null,this.cartesianCenter=null,this.zoom=1,this.boundingVolume=null,this.dynamicScreenSpaceErrorComputedDensity=0,this.maximumMemoryUsage=32,this.gpuMemoryUsageInBytes=0,this.memoryAdjustedScreenSpaceError=0,this._cacheBytes=0,this._cacheOverflowBytes=0,this._frameNumber=0,this._queryParams={},this._extensionsUsed=[],this._tiles={},this._pendingCount=0,this.selectedTiles=[],this.traverseCounter=0,this.geometricError=0,this.lastUpdatedVieports=null,this._requestedTiles=[],this._emptyTiles=[],this.frameStateData={},this._traverser=void 0,this._cache=new ai,this._requestScheduler=void 0,this.updatePromise=null,this.tilesetInitializationPromise=void 0,this.options={...HE,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Te.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new me({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new _e({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return Boolean(this._extensionsUsed.indexOf(e)>-1)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null;return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let s of r){let i=s.id;this._needTraverse(i)?n.push(i):this.traverseCounter--}for(let s of r){let i=s.id;if(this.roots[i]||(this.roots[i]=this._initializeTileHeaders(this.tileset,null)),!n.includes(i))continue;let o=cd(s,this._frameNumber);this._traverser.traverse(this.roots[i],o,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],s=Object.values(this._traverser.selectedTiles),[i,o]=ld(s,e,this.options.maximumTilesSelected);n.selectedTiles=i;for(let a of o)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let e in this.frameStateData){let r=this.frameStateData[e];this.selectedTiles=this.selectedTiles.concat(r.selectedTiles),this._requestedTiles=this._requestedTiles.concat(r._requestedTiles),this._emptyTiles=this._emptyTiles.concat(r._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(let e of this.selectedTiles)this._tiles[e.id]=e;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(o=>o.id)),s=new Set(r.map(o=>o.id)),i=e.filter(o=>!s.has(o.id)).length>0;return i=i||r.filter(o=>!n.has(o.id)).length>0,i}_loadTiles(){for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(Nd).count=this.selectedTiles.length,this.stats.get(Od).count=e,this.stats.get(wd).count=r,this.stats.get(vd).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===ft.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===ft.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===ft.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){var e;let r=this.tileset.fullExtent;if(r){let{xmin:s,xmax:i,ymin:o,ymax:a,zmin:c,zmax:l}=r;this.cartographicCenter=new m(s+(i-s)/2,o+(a-o)/2,c+(l-c)/2),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Qa(r,this.cartographicCenter,this.cartesianCenter);return}let n=(e=this.tileset.store)===null||e===void 0?void 0:e.extent;if(n){let[s,i,o,a]=n;this.cartographicCenter=new m(s+(o-s)/2,i+(a-i)/2,0),this.cartesianCenter=new m,L.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=fd(n,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new m,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new m,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new m,L.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new m(0,0,-L.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=hd(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(gi),this.stats.get(sc),this.stats.get(nc),this.stats.get(Nd),this.stats.get(Od),this.stats.get(bd),this.stats.get(Pd),this.stats.get(Dd),this.stats.get(wd),this.stats.get(ic,"memory"),this.stats.get(vd)}_initializeTileHeaders(e,r){let n=new Ze(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===ft.TILES3D){let i=[];for(i.push(n);i.length>0;){let o=i.pop();this.stats.get(gi).incrementCount();let a=o.header.children||[];for(let c of a){var s;let l=new Ze(this,c,o);if((s=l.contentUrl)!==null&&s!==void 0&&s.includes("?session=")){let f=new URL(l.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}o.children.push(l),l.depth=o.depth+1,i.push(l)}}}return n}_initializeTraverser(){let e;switch(this.type){case ft.TILES3D:e=fi;break;case ft.I3S:e=pi;break;default:e=ne}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(Dd).incrementCount();let n=r.message||r.toString(),s=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,s)}_onTileLoad(e,r){if(r){if(this.type===ft.I3S){var n,s;let i=((n=this.tileset)===null||n===void 0||(s=n.nodePagesTile)===null||s===void 0?void 0:s.nodesInNodePages)||0;this.stats.get(gi).reset(),this.stats.get(gi).addCount(i)}e&&e.content&&id(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===ft.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===ft.TILES3D){var r;let{extensionsRemoved:n=[]}=((r=e.content)===null||r===void 0?void 0:r.gltf)||{};n.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),n.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),n.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(sc).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(sc).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(bd).incrementCount(),this.stats.get(nc).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(nc).decrementCount(),this.stats.get(Pd).incrementCount(),this.stats.get(ic).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let s of e.children)n.push(s);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}};var Ai="4.1.0";var Qe={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},VD=Object.keys(Qe);function oc(t,e,r){V(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),s=new Uint8Array(t,e,r);return n.decode(s)}function Ud(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var Ld="4.1.0";var Hd={name:"Draco",id:"draco",module:"draco",version:Ld,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Vd(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function $e(t){let e=1/0,r=1/0,n=1/0,s=-1/0,i=-1/0,o=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let h=a[l],f=a[l+1],u=a[l+2];e=h<e?h:e,r=f<r?f:r,n=u<n?u:n,s=h>s?h:s,i=f>i?f:i,o=u>o?u:o}return[[e,r,n],[s,i,o]]}function ac(t,e,r){let n=Vd(e.value),s=r||Xd(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:s}}function Xd(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function zd(t,e,r){let n=kd(e.metadata),s=[],i=VE(e.attributes);for(let o in t){let a=t[o],c=Wd(o,a,i[o]);s.push(c)}if(r){let o=Wd("indices",r);s.push(o)}return{fields:s,metadata:n}}function VE(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function Wd(t,e,r){let n=r?kd(r.metadata):void 0;return ac(t,e,n)}function kd(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var Gd={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},XE={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},WE=4,In=class{constructor(e){this.draco=void 0,this.decoder=void 0,this.metadataQuerier=void 0,this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let s=this.decoder.GetEncodedGeometryType(n),i=s===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let o;switch(s){case this.draco.TRIANGULAR_MESH:o=this.decoder.DecodeBufferToMesh(n,i);break;case this.draco.POINT_CLOUD:o=this.decoder.DecodeBufferToPointCloud(n,i);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!o.ok()||!i.ptr){let u=`DRACO decompression failed: ${o.error_msg()}`;throw new Error(u)}let a=this._getDracoLoaderData(i,s,r),c=this._getMeshData(i,a,r),l=$e(c.attributes),h=zd(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:i.num_points(),boundingBox:l},...c,schema:h}}finally{this.draco.destroy(n),i&&this.draco.destroy(i)}}_getDracoLoaderData(e,r,n){let s=this._getTopLevelMetadata(e),i=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:s,attributes:i}}_getDracoAttributes(e,r){let n={};for(let s=0;s<e.num_attributes();s++){let i=this.decoder.GetAttribute(e,s),o=this._getAttributeMetadata(e,s);n[i.unique_id()]={unique_id:i.unique_id(),attribute_type:i.attribute_type(),data_type:i.data_type(),num_components:i.num_components(),byte_offset:i.byte_offset(),byte_stride:i.byte_stride(),normalized:i.normalized(),attribute_index:s,metadata:o};let a=this._getQuantizationTransform(i,r);a&&(n[i.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(i,r);c&&(n[i.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let s=this._getMeshAttributes(r,e,n);if(!s.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:s,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:s,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:s}}_getMeshAttributes(e,r,n){let s={};for(let i of Object.values(e.attributes)){let o=this._deduceAttributeName(i,n);i.name=o;let{value:a,size:c}=this._getAttributeValues(r,i);s[o]={value:a,size:c,byteOffset:i.byte_offset,byteStride:i.byte_stride,normalized:i.normalized}}return s}_getTriangleListIndices(e){let n=e.num_faces()*3,s=n*WE,i=this.draco._malloc(s);try{return this.decoder.GetTrianglesUInt32Array(e,s,i),new Uint32Array(this.draco.HEAPF32.buffer,i,n).slice()}finally{this.draco._free(i)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),GE(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=XE[r.data_type],s=r.num_components,o=e.num_points()*s,a=o*n.BYTES_PER_ELEMENT,c=zE(this.draco,n),l,h=this.draco._malloc(a);try{let f=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,f,c,a,h),l=new n(this.draco.HEAPF32.buffer,h,o).slice()}finally{this.draco._free(h)}return{value:l,size:s}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[o,a]of Object.entries(r.extraAttributes||{}))if(a===n)return o;let s=e.attribute_type;for(let o in Gd)if(this.draco[o]===s)return Gd[o];let i=r.attributeNameEntry||"name";return e.metadata[i]?e.metadata[i].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let s=0;s<n;s++){let i=this.metadataQuerier.GetEntryName(e,s);r[i]=this._getDracoMetadataField(e,i)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let s=kE(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:s}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,s=[...r,...n];for(let i of s)this.decoder.SkipAttributeTransform(this.draco[i])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits(),range:o.range(),min_values:new Float32Array([1,2,3]).map(a=>o.min_value(a))}}finally{this.draco.destroy(o)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,s=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(s)){let o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits()}}finally{this.draco.destroy(o)}}return null}};function zE(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function kE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function GE(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var KE="1.5.6",JE="1.4.1",cc=`https://www.gstatic.com/draco/versioned/decoders/${KE}`,Rt={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},lc={[Rt.DECODER]:`${cc}/${Rt.DECODER}`,[Rt.DECODER_WASM]:`${cc}/${Rt.DECODER_WASM}`,[Rt.FALLBACK_DECODER]:`${cc}/${Rt.FALLBACK_DECODER}`,[Rt.ENCODER]:`https://raw.githubusercontent.com/google/draco/${JE}/javascript/${Rt.ENCODER}`},Fn;async function Kd(t){let e=t.modules||{};return e.draco3d?Fn=Fn||e.draco3d.createDecoderModule({}).then(r=>({draco:r})):Fn=Fn||YE(t),await Fn}async function YE(t){let e,r;switch(t.draco&&t.draco.decoderType){case"js":e=await qt(lc[Rt.FALLBACK_DECODER],"draco",t,Rt.FALLBACK_DECODER);break;case"wasm":default:[e,r]=await Promise.all([await qt(lc[Rt.DECODER],"draco",t,Rt.DECODER),await qt(lc[Rt.DECODER_WASM],"draco",t,Rt.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await qE(e,r)}function qE(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:s=>n({draco:s})})})}var _i={...Hd,parse:jE};async function jE(t,e){let{draco:r}=await Kd(e),n=new In(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var ZE={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},st={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},w={...ZE,...st};var hc={[st.DOUBLE]:Float64Array,[st.FLOAT]:Float32Array,[st.UNSIGNED_SHORT]:Uint16Array,[st.UNSIGNED_INT]:Uint32Array,[st.UNSIGNED_BYTE]:Uint8Array,[st.BYTE]:Int8Array,[st.SHORT]:Int16Array,[st.INT]:Int32Array},QE={DOUBLE:st.DOUBLE,FLOAT:st.FLOAT,UNSIGNED_SHORT:st.UNSIGNED_SHORT,UNSIGNED_INT:st.UNSIGNED_INT,UNSIGNED_BYTE:st.UNSIGNED_BYTE,BYTE:st.BYTE,SHORT:st.SHORT,INT:st.INT},fc="Failed to convert GL type",dt=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in hc)if(hc[r]===e)return r;throw new Error(fc)}static fromName(e){let r=QE[e];if(!r)throw new Error(fc);return r}static getArrayType(e){switch(e){case st.UNSIGNED_SHORT_5_6_5:case st.UNSIGNED_SHORT_4_4_4_4:case st.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=hc[e];if(!r)throw new Error(fc);return r}}static getByteSize(e){return dt.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(dt.getArrayType(e))}static createTypedArray(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0;s===void 0&&(s=(r.byteLength-n)/dt.getByteSize(e));let i=dt.getArrayType(e);return new i(r,n,s)}};function Jd(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function uc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0],r=t>>11&31,n=t>>5&63,s=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=s<<3,e}var Ew=1/256;var Rw=new Ve,xw=new m,Sw=new Ve,Cw=new Ve,Bw=new Uint8Array(1);function Yd(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:255;return us(t,0,e)/e*2-1}function qd(t){return t<0?-1:1}function jd(t,e,r,n){if(Jd(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=Yd(t,r),n.y=Yd(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let s=n.x;n.x=(1-Math.abs(n.y))*qd(s),n.y=(1-Math.abs(s))*qd(n.y)}return n.normalize()}function dc(t,e,r){return jd(t,e,255,r)}var fe=class{constructor(e,r){this.json=void 0,this.buffer=void 0,this.featuresLength=0,this._cachedTypedArrays={},this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return Boolean(this.json[e])}getGlobalProperty(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:w.UNSIGNED_INT,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,s=this.json[e];return s&&Number.isFinite(s.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,s.byteOffset):s}getPropertyArray(e,r,n){let s=this.json[e];return s&&Number.isFinite(s.byteOffset)?("componentType"in s&&(r=dt.fromName(s.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,s.byteOffset)):this._getTypedArrayFromArray(e,r,s)}getProperty(e,r,n,s,i){let o=this.json[e];if(!o)return o;let a=this.getPropertyArray(e,r,n);if(n===1)return a[s];for(let c=0;c<n;++c)i[c]=a[n*s+c];return i}_getTypedArrayFromBinary(e,r,n,s,i){let o=this._cachedTypedArrays,a=o[e];return a||(a=dt.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+i,s*n),o[e]=a),a}_getTypedArrayFromArray(e,r,n){let s=this._cachedTypedArrays,i=s[e];return i||(i=dt.createTypedArray(r,n),s[e]=i),i}};var $E={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},tR={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},eR={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function Zd(t,e,r,n){let{componentType:s}=t;V(t.componentType);let i=typeof s=="string"?dt.fromName(s):s,o=$E[t.type],a=tR[t.type],c=eR[t.type];return r+=t.byteOffset,{values:dt.createTypedArray(i,e,r,o*n),type:i,size:o,unpacker:a,packer:c}}var se=t=>t!==void 0;function Qd(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),s=e.HIERARCHY;return s&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=s,n=s),n?rR(n,r):null}function rR(t,e){let r,n,s,i=t.instancesLength,o=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,h=i;se(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,s=getBinaryAccessor(a),a=s.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,i));let f;if(se(c))for(se(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,s=getBinaryAccessor(c),c=s.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,i)),f=new Uint16Array(i),h=0,r=0;r<i;++r)f[r]=h,h+=c[r];se(l)&&se(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,s=getBinaryAccessor(l),l=s.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,h));let u=o.length;for(r=0;r<u;++r){let A=o[r].length,T=o[r].instances,x=getBinaryProperties(A,T,e);o[r].instances=combine(x,T)}let d=new Array(u).fill(0),p=new Uint16Array(i);for(r=0;r<i;++r)n=a[r],p[r]=d[n],++d[n];let _={classes:o,classIds:a,classIndexes:p,parentCounts:c,parentIndexes:f,parentIds:l};return iR(_),_}function yr(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?nR(t,e,r):sR(t,e,r)}function nR(t,e,r){let n=t.classIds,s=t.parentCounts,i=t.parentIds,o=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,h=scratchStack;for(h.length=0,h.push(e);h.length>0;){if(e=h.pop(),c[e]===l)continue;c[e]=l;let f=r(t,e);if(se(f))return f;let u=s[e],d=o[e];for(let p=0;p<u;++p){let _=i[d+p];_!==e&&h.push(_)}}return null}function sR(t,e,r){let n=!0;for(;n;){let s=r(t,e);if(se(s))return s;let i=t.parentIds[e];n=i!==e,e=i}throw new Error("traverseHierarchySingleParent")}function iR(t){let e=[],n=t.classIds.length;for(let s=0;s<n;++s)$d(t,s,stack)}function $d(t,e,r){let n=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=t.classIds.length;if(!se(s))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=se(n)?n[e]:1,l=se(n)?i[e]:e;for(let h=0;h<c;++h){let f=s[l+h];f!==e&&$d(t,f,r)}r.pop(e)}function xt(t){return t!=null}var mi=(t,e)=>t,oR={HIERARCHY:!0,extensions:!0,extras:!0},tr=class{constructor(e,r,n){var s;let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};this.json=void 0,this.binary=void 0,this.featureCount=void 0,this._extensions=void 0,this._properties=void 0,this._binaryProperties=void 0,this._hierarchy=void 0,V(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=((s=this.json)===null||s===void 0?void 0:s.extensions)||{},this._properties={};for(let o in this.json)oR[o]||(this._properties[o]=this.json[o]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Qd(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._hierarchy){let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i];return s.classes[o].name===r});return xt(n)}return!1}isExactClass(e,r){return V(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),V(typeof r=="string",r),xt(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=xt(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let s=this._binaryProperties[r];if(xt(s))return this._getBinaryProperty(s,e)}let n=this._properties[r];if(xt(n))return mi(n[e],!0);if(this._hierarchy){let s=this._getHierarchyProperty(e,r);if(xt(s))return s}}setProperty(e,r,n){let s=this.featureCount;if(this._checkBatchId(e),V(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(o){this._setBinaryProperty(o,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let i=this._properties[r];xt(i)||(this._properties[r]=new Array(s),i=this._properties[r]),i[e]=mi(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],s=this._initializeBinaryProperty(r,n);s&&(e=e||{},e[r]=s)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;V(this.binary,`Property ${e} requires a batch table binary.`),V(n.type,`Property ${e} requires a type.`);let s=Zd(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:s.values,componentCount:s.size,unpack:s.unpacker,pack:s.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=yr(this._hierarchy,e,(s,i)=>{let o=s.classIds[i],a=s.classes[o].instances;return xt(a[r])});return xt(n)}_getPropertyNamesInHierarchy(e,r){yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i].instances;for(let a in o)o.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return yr(this._hierarchy,e,(n,s)=>{let i=n.classIds[s],o=n.classes[i],a=n.classIndexes[s],c=o.instances[r];return xt(c)?xt(c.typedArray)?this._getBinaryProperty(c,a):mi(c[a],!0):null})}_setHierarchyProperty(e,r,n,s){let i=yr(this._hierarchy,r,(o,a)=>{let c=o.classIds[a],l=o.classes[c],h=o.classIndexes[a],f=l.instances[n];return xt(f)?(V(a===r,`Inherited property "${n}" is read-only.`),xt(f.typedArray)?this._setBinaryProperty(f,h,s):f[h]=mi(s,!0),!0):!1});return xt(i)}};function Ne(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var Ir=4,tp="b3dm tile in legacy format.";function Fr(t,e,r){let n=new DataView(e),s;t.header=t.header||{};let i=n.getUint32(r,!0);r+=Ir;let o=n.getUint32(r,!0);r+=Ir;let a=n.getUint32(r,!0);r+=Ir;let c=n.getUint32(r,!0);return r+=Ir,a>=570425344?(r-=Ir*2,s=i,a=o,c=0,i=0,o=0,console.warn(tp)):c>=570425344&&(r-=Ir,s=a,a=i,c=o,i=0,o=0,console.warn(tp)),t.header.featureTableJsonByteLength=i,t.header.featureTableBinaryByteLength=o,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=s,r}function Nr(t,e,r,n){return r=aR(t,e,r,n),r=cR(t,e,r,n),r}function aR(t,e,r,n){let{featureTableJsonByteLength:s,featureTableBinaryByteLength:i,batchLength:o}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:o||0},s&&s>0){let a=oc(e,r,s);t.featureTableJson=JSON.parse(a)}return r+=s||0,t.featureTableBinary=new Uint8Array(e,r,i),r+=i||0,r}function cR(t,e,r,n){let{batchTableJsonByteLength:s,batchTableBinaryByteLength:i}=t.header||{};if(s&&s>0){let o=oc(e,r,s);t.batchTableJson=JSON.parse(o),r+=s,i&&i>0&&(t.batchTableBinary=new Uint8Array(e,r,i),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=i)}return r}function pc(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:s,pointCount:i=0}=t;if(n&&r){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=n[a],h=r.getProperty(c,"dimensions").map(f=>f*255);o[a*3]=h[0],o[a*3+1]=h[1],o[a*3+2]=h[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}if(e&&s){let o=new Uint8ClampedArray(i*3);for(let a=0;a<i;a++){let c=uc(e[a]);o[a*3]=c[0],o[a*3+1]=c[1],o[a*3+2]=c[2]}return{type:w.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}return e&&e.length===i*3?{type:w.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:w.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var ep=new m;function rp(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)dc(e[n*2],e[n*2+1],ep),ep.toArray(r,n*3);return{type:w.FLOAT,size:2,value:r}}return{type:w.FLOAT,size:2,value:e}}function np(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,lR(t,e)):{type:w.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function lR(t,e){let r=new m,n=new Float32Array(t.pointCount*3);for(let s=0;s<t.pointCount;s++)r.set(e[s*3],e[s*3+1],e[s*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,s*3);return n}async function sp(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),hR(t);let{featureTable:i,batchTable:o}=fR(t);return await AR(t,i,o,n,s),uR(t,i,n),dR(t,i,o),pR(t,i),r}function hR(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function fR(t){let e=new fe(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let n=gR(t,e);return{featureTable:e,batchTable:n}}function uR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",w.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=np(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function dR(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",w.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",w.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",w.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=pc(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",w.UNSIGNED_BYTE,4))}function pR(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",w.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",w.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=rp(t,r)}}function gR(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",w.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:s,batchTableBinary:i}=t;r=new tr(s,i,n)}return r}async function AR(t,e,r,n,s){let i,o,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){o=l.properties;let f=l.byteOffset,u=l.byteLength;if(!o||!Number.isFinite(f)||!u)throw new Error("Draco properties, byteOffset, and byteLength must be defined");i=(t.featureTableBinary||[]).slice(f,f+u),t.hasPositions=Number.isFinite(o.POSITION),t.hasColors=Number.isFinite(o.RGB)||Number.isFinite(o.RGBA),t.hasNormals=Number.isFinite(o.NORMAL),t.hasBatchIds=Number.isFinite(o.BATCH_ID),t.isTranslucent=Number.isFinite(o.RGBA)}if(!i)return!0;let h={buffer:i,properties:{...o,...a},featureTableProperties:o,batchTableProperties:a,dequantizeInShader:!1};return await _R(t,h,n,s)}async function _R(t,e,r,n){if(!n)return;let s={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete s["3d-tiles"];let i=await Ct(e.buffer,_i,s,n),o=i.attributes.POSITION&&i.attributes.POSITION.value,a=i.attributes.COLOR_0&&i.attributes.COLOR_0.value,c=i.attributes.NORMAL&&i.attributes.NORMAL.value,l=i.attributes.BATCH_ID&&i.attributes.BATCH_ID.value,h=o&&i.attributes.POSITION.value.quantization,f=c&&i.attributes.NORMAL.value.quantization;if(h){let d=i.POSITION.data.quantization,p=d.range;t.quantizedVolumeScale=new m(p,p,p),t.quantizedVolumeOffset=new m(d.minValues),t.quantizedRange=(1<<d.quantizationBits)-1,t.isQuantizedDraco=!0}f&&(t.octEncodedRange=(1<<i.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let u={};if(e.batchTableProperties)for(let d of Object.keys(e.batchTableProperties))i.attributes[d]&&i.attributes[d].value&&(u[d.toLowerCase()]=i.attributes[d].value);t.attributes={positions:o,colors:pc(t,a,void 0),normals:c,batchIds:l,...u}}var gc={};ht(gc,{decode:()=>FR,name:()=>IR});function at(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var Ti={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ei={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var mR=1.33,ip=["SCALAR","VEC2","VEC3","VEC4"],TR=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],ER=new Map(TR),RR={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xR={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},SR={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Ri(t){return ip[t-1]||ip[0]}function Or(t){let e=ER.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function br(t,e){let r=SR[t.componentType],n=RR[t.type],s=xR[t.componentType],i=t.count*n,o=t.count*n*s;at(o>=0&&o<=e.byteLength);let a=Ei[t.componentType],c=Ti[t.type];return{ArrayType:r,length:i,byteLength:o,componentByteSize:a,numberOfComponentsInElement:c}}function Nn(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(o=>o.bufferView);r=r.filter(o=>!n.includes(o));let s=r.reduce((o,a)=>o+a.byteLength,0),i=e.reduce((o,a)=>{let{width:c,height:l}=a.image;return o+c*l},0);return s+Math.ceil(4*i*mR)}function op(t,e,r){let n=t.bufferViews[r];at(n);let s=n.buffer,i=e[s];at(i);let o=(n.byteOffset||0)+i.byteOffset;return new Uint8Array(i.arrayBuffer,o,n.byteLength)}function ap(t,e,r){var n,s;let i=typeof r=="number"?(n=t.accessors)===null||n===void 0?void 0:n[r]:r;if(!i)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=(s=t.bufferViews)===null||s===void 0?void 0:s[i.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:a,byteOffset:c}=e[o.buffer],l=(c||0)+(i.byteOffset||0)+(o.byteOffset||0),{ArrayType:h,length:f,componentByteSize:u,numberOfComponentsInElement:d}=br(i,o),p=u*d,_=o.byteStride||p;if(typeof o.byteStride>"u"||o.byteStride===p)return new h(a,l,f);let A=new h(f);for(let T=0;T<i.count;T++){let x=new h(a,l+T*_,d);A.set(x,T*d)}return A}function CR(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var K=class{constructor(e){this.gltf=void 0,this.sourceBuffers=void 0,this.byteLength=void 0,this.gltf={json:e?.json||CR(),buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.getRequiredExtensions().find(s=>s===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(s=>s===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];at(n);let s=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,s,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return ap(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),s=this.getBuffer(r.buffer).data,i=r.byteOffset||0;return new Uint8Array(s,i,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let s=e.extensions||{};s[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let s=this.json.extensionsRemoved;s.includes(r)||s.push(r)}delete n[r]}addExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return at(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){var r;if((r=this.json.extensions)!==null&&r!==void 0&&r[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let n=this.json.extensionsRemoved;n.includes(e)||n.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let s={mesh:r};return n&&(s.matrix=n),this.json.nodes.push(s),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:s,mode:i=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:i}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(s)&&(a.primitives[0].material=s),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=He(e),s=r||n?.mimeType,o={bufferView:this.addBufferView(e),mimeType:s};return this.json.images=this.json.images||[],this.json.images.push(o),this.json.images.length-1}addBufferView(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.byteLength,s=e.byteLength;at(Number.isFinite(s)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let i={buffer:r,byteOffset:n,byteLength:s};return this.byteLength+=Ae(s,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(i),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:Ri(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{size:3},n=this.addBufferView(e),s={min:r.min,max:r.max};(!s.min||!s.max)&&(s=this._getAccessorMinMax(e,r.size));let i={size:r.size,componentType:Or(e),count:Math.round(e.length/r.size),min:s.min,max:s.max};return this.addAccessor(n,Object.assign(i,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){var e,r;this.gltf.buffers=[];let n=this.byteLength,s=new ArrayBuffer(n),i=new Uint8Array(s),o=0;for(let a of this.sourceBuffers||[])o=So(a,i,o);(e=this.json)!==null&&e!==void 0&&(r=e.buffers)!==null&&r!==void 0&&r[0]?this.json.buffers[0].byteLength=n:this.json.buffers=[{byteLength:n}],this.gltf.binary=s,this.sourceBuffers=[s]}_removeStringFromArray(e,r){let n=!0;for(;n;){let s=e.indexOf(r);s>-1?e.splice(s,1):n=!1}}_addAttributes(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};for(let n in e){let s=e[n],i=this._getGltfAttributeName(n),o=this.addBinaryBuffer(s.value,s);r[i]=o}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let s=e.subarray(0,r);for(let i of s)n.min.push(i),n.max.push(i);for(let i=r;i<e.length;i+=r)for(let o=0;o<r;o++)n.min[0+o]=Math.min(n.min[0+o],e[i+o]),n.max[0+o]=Math.max(n.max[0+o],e[i+o]);return n}};function cp(t){return(t%1+1)%1}var lp={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},BR={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},hp={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function On(t,e){return hp[e]*lp[t]}function Pr(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let s=t.getTypedArrayForBufferView(e),i=Dr(s,"SCALAR",r,n+1);return i instanceof BigInt64Array||i instanceof BigUint64Array?null:i}function Dr(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=lp[e],i=BR[r],o=hp[r],a=n*s,c=a*o,l=t.buffer,h=t.byteOffset;return h%o!==0&&(l=new Uint8Array(l).slice(h,h+c).buffer,h=0),new i(l,h,a)}function wr(t,e,r){var n,s;let i=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[i],a=t.getTypedArrayForAccessor(o),c=t.gltf.json,l=e.index,h=(n=c.textures)===null||n===void 0||(s=n[l])===null||s===void 0?void 0:s.source;if(typeof h<"u"){var f,u,d;let p=(f=c.images)===null||f===void 0||(u=f[h])===null||u===void 0?void 0:u.mimeType,_=(d=t.gltf.images)===null||d===void 0?void 0:d[h];if(_&&typeof _.width<"u"){let A=[];for(let T=0;T<a.length;T+=2){let x=MR(_,p,a,T,e.channels);A.push(x)}return A}}return[]}function xi(t,e,r,n,s){if(!(r!=null&&r.length))return;let i=[];for(let h of r){let f=n.findIndex(u=>u===h);f===-1&&(f=n.push(h)-1),i.push(f)}let o=new Uint32Array(i),a=t.gltf.buffers.push({arrayBuffer:o.buffer,byteOffset:o.byteOffset,byteLength:o.byteLength})-1,c=t.addBufferView(o,a,0),l=t.addAccessor(c,{size:1,componentType:Or(o),count:o.length});s.attributes[e]=l}function MR(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[0],i={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},o=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=yR(o,a,t,c),h=0;for(let f of s){let u=typeof f=="number"?Object.values(i)[f]:i[f],d=l+u.offset,p=en(t);if(p.data.length<=d)throw new Error(`${p.data.length} <= ${d}`);let _=p.data[d];h|=_<<u.shift}return h}function yR(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,s=r.width,i=cp(t)*(s-1),o=Math.round(i),a=r.height,c=cp(e)*(a-1),l=Math.round(c),h=r.components?r.components:n;return(l*s+o)*h}function Si(t,e,r,n,s){let i=[];for(let o=0;o<e;o++){let a=r[o],c=r[o+1]-r[o];if(c+a>n)break;let l=a/s,h=c/s;i.push(t.slice(l,l+h))}return i}function Ci(t,e,r){let n=[];for(let s=0;s<e;s++){let i=s*r;n.push(t.slice(i,i+r))}return n}function Bi(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let s=[],i=new TextDecoder("utf8"),o=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+o<=e.length){let l=e.subarray(o,c+o),h=i.decode(l);s.push(h),o+=c}}return s}return[]}var fp="EXT_mesh_features",IR=fp;async function FR(t,e){let r=new K(t);NR(r,e)}function NR(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let s of n.primitives)OR(t,s,e)}function OR(t,e,r){var n,s;if(!(r!=null&&(n=r.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=(s=e.extensions)===null||s===void 0?void 0:s[fp],o=i?.featureIds;if(o)for(let c of o){var a;let l;if(typeof c.attribute<"u"){let h=`_FEATURE_ID_${c.attribute}`,f=e.attributes[h];l=t.getTypedArrayForAccessor(f)}else typeof c.texture<"u"&&r!==null&&r!==void 0&&(a=r.gltf)!==null&&a!==void 0&&a.loadImages?l=wr(t,c.texture,e):l=[];c.data=l}}var mc={};ht(mc,{decode:()=>PR,name:()=>bR});var Ac="EXT_structural_metadata",bR=Ac;async function PR(t,e){let r=new K(t);DR(r,e)}function DR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(Ac);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&wR(t,s),vR(t,s))}function wR(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let s of n.meshes)for(let i of s.primitives)LR(t,r,i,e)}function vR(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.propertyTables;if(n&&s)for(let i in n){let o=UR(s,i);o&&VR(t,r,o)}}function UR(t,e){for(let r of t)if(r.class===e)return r;return null}function LR(t,e,r,n){var s;if(!e)return;let i=(s=r.extensions)===null||s===void 0?void 0:s[Ac],o=i?.propertyTextures;if(o)for(let a of o){let c=e[a];HR(t,c,r,n)}}function HR(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let s=e.class;for(let o in e.properties){var i;let a=`${s}_${o}`,c=(i=e.properties)===null||i===void 0?void 0:i[o];if(!c)continue;c.data||(c.data=[]);let l=c.data,h=wr(t,c,r);h!==null&&(xi(t,a,h,l,r),c.data=l,n.dataAttributeNames.push(a))}}function VR(t,e,r){var n;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=XR(t,e,c,i,l);l.data=h}}}function XR(t,e,r,n,s){let i=[],o=s.values,a=t.getTypedArrayForBufferView(o),c=WR(t,r,s,n),l=zR(t,s,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{i=kR(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{i=Bi(n,a,c,l);break}case"ENUM":{i=GR(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return i}function WR(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?Pr(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function zR(t,e,r){return typeof e.stringOffsets<"u"?Pr(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function kR(t,e,r,n){let s=t.array,i=t.count,o=On(t.type,t.componentType),a=r.byteLength/o,c;return t.componentType?c=Dr(r,t.type,t.componentType,a):c=r,s?n?Si(c,e,n,r.length,o):i?Ci(c,e,i):[]:c}function GR(t,e,r,n,s){var i;let o=e.enumType;if(!o)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let a=(i=t.enums)===null||i===void 0?void 0:i[o];if(!a)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${o}`);let c=a.valueType||"UINT16",l=On(e.type,c),h=n.byteLength/l,f=Dr(n,e.type,c,h);if(f||(f=n),e.array){if(s)return KR({valuesData:f,numberOfElements:r,arrayOffsets:s,valuesDataBytesLength:n.length,elementSize:l,enumEntry:a});let u=e.count;return u?JR(f,r,u,a):[]}return _c(f,0,r,a)}function KR(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:s,elementSize:i,enumEntry:o}=t,a=[];for(let c=0;c<r;c++){let l=n[c],h=n[c+1]-n[c];if(h+l>s)break;let f=l/i,u=h/i,d=_c(e,f,u,o);a.push(d)}return a}function JR(t,e,r,n){let s=[];for(let i=0;i<e;i++){let o=r*i,a=_c(t,o,r,n);s.push(a)}return s}function _c(t,e,r,n){let s=[];for(let i=0;i<r;i++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)s.push("");else{let o=t[e+i],a=YR(n,o);a?s.push(a.name):s.push("")}return s}function YR(t,e){for(let r of t.values)if(r.value===e)return r;return null}var Tc={};ht(Tc,{decode:()=>jR,name:()=>qR});var up="EXT_feature_metadata",qR=up;async function jR(t,e){let r=new K(t);ZR(r,e)}function ZR(t,e){var r,n;if(!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let s=t.getExtension(up);s&&((n=e.gltf)!==null&&n!==void 0&&n.loadImages&&QR(t,s),$R(t,s))}function QR(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:s}=e;if(n&&s)for(let i in n){let o=n[i],a=ex(s,i);a&&nx(t,a,o)}}function $R(t,e){let r=e.schema;if(!r)return;let n=r.classes,s=e.featureTables;if(n&&s)for(let i in n){let o=tx(s,i);o&&rx(t,r,o)}}function tx(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function ex(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function rx(t,e,r){var n;if(!r.class)return;let s=(n=e.classes)===null||n===void 0?void 0:n[r.class];if(!s)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in s.properties){var o;let c=s.properties[a],l=(o=r.properties)===null||o===void 0?void 0:o[a];if(l){let h=sx(t,e,c,i,l);l.data=h}}}function nx(t,e,r){let n=e.class;for(let i in r.properties){var s;let o=e==null||(s=e.properties)===null||s===void 0?void 0:s[i];if(o){let a=lx(t,o,n);o.data=a}}}function sx(t,e,r,n,s){let i=[],o=s.bufferView,a=t.getTypedArrayForBufferView(o),c=ix(t,r,s,n),l=ox(t,r,s,n);return r.type==="STRING"||r.componentType==="STRING"?i=Bi(n,a,c,l):ax(r)&&(i=cx(r,n,a,c)),i}function ix(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?Pr(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function ox(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?Pr(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function ax(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function cx(t,e,r,n){let s=t.type==="ARRAY",i=t.componentCount,o="SCALAR",a=t.componentType||t.type,c=On(o,a),l=r.byteLength/c,h=Dr(r,o,a,l);return s?n?Si(h,e,n,r.length,c):i?Ci(h,e,i):[]:h}function lx(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let s=[];for(let i of n.meshes)for(let o of i.primitives)hx(t,r,e,s,o);return s}function hx(t,e,r,n,s){let i={channels:r.channels,...r.texture},o=wr(t,i,s);o&&xi(t,e,o,n,s)}var dp="4.1.0";var vr=!0,pp=1735152710,xc=12,Mi=8,fx=1313821514,ux=5130562,dx=0,px=0,gx=1;function Ax(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function gp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=new DataView(t),{magic:s=pp}=r,i=n.getUint32(e,!1);return i===s||i===pp}function Ap(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=new DataView(e),i=Ax(s,r+0),o=s.getUint32(r+4,vr),a=s.getUint32(r+8,vr);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:i,version:o,json:{},binChunks:[]}),r+=xc,t.version){case 1:return _x(t,s,r);case 2:return mx(t,s,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function _x(t,e,r){V(t.header.byteLength>xc+Mi);let n=e.getUint32(r+0,vr),s=e.getUint32(r+4,vr);return r+=Mi,V(s===dx),Ec(t,e,r,n),r+=n,r+=Rc(t,e,r,t.header.byteLength),r}function mx(t,e,r,n){return V(t.header.byteLength>xc+Mi),Tx(t,e,r,n),r+t.header.byteLength}function Tx(t,e,r,n){for(;r+8<=t.header.byteLength;){let s=e.getUint32(r+0,vr),i=e.getUint32(r+4,vr);switch(r+=Mi,i){case fx:Ec(t,e,r,s);break;case ux:Rc(t,e,r,s);break;case px:n.strict||Ec(t,e,r,s);break;case gx:n.strict||Rc(t,e,r,s);break;default:break}r+=Ae(s,4)}return r}function Ec(t,e,r,n){let s=new Uint8Array(e.buffer,r,n),o=new TextDecoder("utf8").decode(s);return t.json=JSON.parse(o),Ae(n,4)}function Rc(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Ae(n,4)}function Sc(t,e){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${t}`);return n.substr(0,n.lastIndexOf("/")+1)+t}var Bc={};ht(Bc,{decode:()=>Ox,name:()=>Nx});var Ex="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",Rx="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",xx=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]),Sx=new Uint8Array([32,0,65,253,3,1,2,34,4,106,6,5,11,8,7,20,13,33,12,16,128,9,116,64,19,113,127,15,10,21,22,14,255,66,24,54,136,107,18,23,192,26,114,118,132,17,77,101,130,144,27,87,131,44,45,74,156,154,70,167]),Cx={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},Bx={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function _p(t,e,r,n,s){let i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"NONE",o=await Mx();Fx(o,o.exports[Bx[s]],t,e,r,n,o.exports[Cx[i||"NONE"]])}var Cc;async function Mx(){return Cc||(Cc=yx()),Cc}async function yx(){let t=Ex;WebAssembly.validate(xx)&&(t=Rx,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(Ix(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function Ix(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let s=t.charCodeAt(n);e[n]=s>96?s-71:s>64?s-65:s>47?s+4:s>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?Sx[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function Fx(t,e,r,n,s,i,o){let a=t.exports.sbrk,c=n+3&-4,l=a(c*s),h=a(i.length),f=new Uint8Array(t.exports.memory.buffer);f.set(i,h);let u=e(l,n,s,h,i.length);if(u===0&&o&&o(l,c,s),r.set(f.subarray(l,l+n*s)),a(l-a(0)),u!==0)throw new Error(`Malformed buffer data: ${u}`)}var yi="EXT_meshopt_compression",Nx=yi;async function Ox(t,e){var r,n;let s=new K(t);if(!(e!=null&&(r=e.gltf)!==null&&r!==void 0&&r.decompressMeshes)||!((n=e.gltf)!==null&&n!==void 0&&n.loadBuffers))return;let i=[];for(let o of t.json.bufferViews||[])i.push(bx(s,o));await Promise.all(i),s.removeExtension(yi)}async function bx(t,e){let r=t.getObjectExtension(e,yi);if(r){let{byteOffset:n=0,byteLength:s=0,byteStride:i,count:o,mode:a,filter:c="NONE",buffer:l}=r,h=t.gltf.buffers[l],f=new Uint8Array(h.arrayBuffer,h.byteOffset+n,s),u=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await _p(u,o,i,f,a,c),t.removeObjectExtension(e,yi)}}var Mc={};ht(Mc,{name:()=>Px,preprocess:()=>Dx});var Ur="EXT_texture_webp",Px=Ur;function Dx(t,e){let r=new K(t);if(!wo("image/webp")){if(r.getRequiredExtensions().includes(Ur))throw new Error(`gltf: Required extension ${Ur} not supported by browser`);return}let{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ur);i&&(s.source=i.source),r.removeObjectExtension(s,Ur)}r.removeExtension(Ur)}var yc={};ht(yc,{name:()=>wx,preprocess:()=>vx});var Ii="KHR_texture_basisu",wx=Ii;function vx(t,e){let r=new K(t),{json:n}=r;for(let s of n.textures||[]){let i=r.getObjectExtension(s,Ii);i&&(s.source=i.source,r.removeObjectExtension(s,Ii))}r.removeExtension(Ii)}var Fc={};ht(Fc,{decode:()=>Xx,encode:()=>Wx,name:()=>Hx,preprocess:()=>Vx});function mp(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let s=Ic(n);e[r]=s}}return e}function Ic(t){let{buffer:e,size:r,count:n}=Ux(t);return{value:e,size:r,byteOffset:0,count:n,type:Ri(r),componentType:Or(e)}}function Ux(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=Lx(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function Lx(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var Oe="KHR_draco_mesh_compression",Hx=Oe;function Vx(t,e,r){let n=new K(t);for(let s of Tp(n))n.getObjectExtension(s,Oe)}async function Xx(t,e,r){var n;if(!(e!=null&&(n=e.gltf)!==null&&n!==void 0&&n.decompressMeshes))return;let s=new K(t),i=[];for(let o of Tp(s))s.getObjectExtension(o,Oe)&&i.push(zx(s,o,e,r));await Promise.all(i),s.removeExtension(Oe)}function Wx(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=new K(t);for(let n of r.json.meshes||[])kx(n,e),r.addRequiredExtension(Oe)}async function zx(t,e,r,n){let s=t.getObjectExtension(e,Oe);if(!s)return;let i=t.getTypedArrayForBufferView(s.bufferView),o=De(i.buffer,i.byteOffset),a={...r};delete a["3d-tiles"];let c=await Ct(o,_i,a,n),l=mp(c.attributes);for(let[h,f]of Object.entries(l))if(h in e.attributes){let u=e.attributes[h],d=t.getAccessor(u);d!=null&&d.min&&d!==null&&d!==void 0&&d.max&&(f.min=d.min,f.max=d.max)}e.attributes=l,c.indices&&(e.indices=Ic(c.indices)),t.removeObjectExtension(e,Oe),Gx(e)}function kx(t,e){var r;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:4,s=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!s.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let o=s.DracoWriter.encodeSync({attributes:t}),a=i==null||(r=i.parseSync)===null||r===void 0?void 0:r.call(i,{attributes:t}),c=s._addFauxAttributes(a.attributes),l=s.addBufferView(o);return{primitives:[{attributes:c,mode:n,extensions:{[Oe]:{bufferView:l,attributes:c}}}]}}function Gx(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*Tp(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Oc={};ht(Oc,{decode:()=>qx,name:()=>Kx});var Nc="KHR_texture_transform",Kx=Nc,Fi=new m,Jx=new z,Yx=new z;async function qx(t,e){var r;if(!new K(t).hasExtension(Nc)||!((r=e.gltf)!==null&&r!==void 0&&r.loadBuffers))return;let i=t.json.materials||[];for(let o=0;o<i.length;o++)jx(o,t)}function jx(t,e){var r,n,s;let i=[],o=(r=e.json.materials)===null||r===void 0?void 0:r[t],a=o==null||(n=o.pbrMetallicRoughness)===null||n===void 0?void 0:n.baseColorTexture;a&&bn(e,t,a,i);let c=o?.emissiveTexture;c&&bn(e,t,c,i);let l=o?.normalTexture;l&&bn(e,t,l,i);let h=o?.occlusionTexture;h&&bn(e,t,h,i);let f=o==null||(s=o.pbrMetallicRoughness)===null||s===void 0?void 0:s.metallicRoughnessTexture;f&&bn(e,t,f,i)}function bn(t,e,r,n){let s=Zx(r,n);if(!s)return;let i=t.json.meshes||[];for(let o of i)for(let a of o.primitives){let c=a.material;Number.isFinite(c)&&e===c&&Qx(t,a,s)}}function Zx(t,e){var r;let n=(r=t.extensions)===null||r===void 0?void 0:r[Nc],{texCoord:s=0}=t,{texCoord:i=s}=n;if(!(e.findIndex(a=>{let[c,l]=a;return c===s&&l===i})!==-1)){let a=eS(n);return s!==i&&(t.texCoord=i),e.push([s,i]),{originalTexCoord:s,texCoord:i,matrix:a}}return null}function Qx(t,e,r){let{originalTexCoord:n,texCoord:s,matrix:i}=r,o=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(o)){var a;let l=(a=t.json.accessors)===null||a===void 0?void 0:a[o];if(l&&l.bufferView){var c;let h=(c=t.json.bufferViews)===null||c===void 0?void 0:c[l.bufferView];if(h){let{arrayBuffer:f,byteOffset:u}=t.buffers[h.buffer],d=(u||0)+(l.byteOffset||0)+(h.byteOffset||0),{ArrayType:p,length:_}=br(l,h),A=Ei[l.componentType],T=Ti[l.type],x=h.byteStride||A*T,R=new Float32Array(_);for(let S=0;S<l.count;S++){let B=new p(f,d+S*x,2);Fi.set(B[0],B[1],1),Fi.transformByMatrix3(i),R.set([Fi[0],Fi[1]],S*T)}n===s?$x(l,h,t.buffers,R):tS(s,l,e,t,R)}}}}function $x(t,e,r,n){t.componentType=5126,r.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=r.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function tS(t,e,r,n,s){n.buffers.push({arrayBuffer:s.buffer,byteOffset:0,byteLength:s.buffer.byteLength});let i=n.json.bufferViews;if(!i)return;i.push({buffer:n.buffers.length-1,byteLength:s.buffer.byteLength,byteOffset:0});let o=n.json.accessors;o&&(o.push({bufferView:i?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=o.length-1)}function eS(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,s=new z().set(1,0,0,0,1,0,e[0],e[1],1),i=Jx.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),o=Yx.set(n[0],0,0,0,n[1],0,0,0,1);return s.multiplyRight(i).multiplyRight(o)}var bc={};ht(bc,{decode:()=>nS,encode:()=>sS,name:()=>rS});var er="KHR_lights_punctual",rS=er;async function nS(t){let e=new K(t),{json:r}=e,n=e.getExtension(er);n&&(e.json.lights=n.lights,e.removeExtension(er));for(let s of r.nodes||[]){let i=e.getObjectExtension(s,er);i&&(s.light=i.light),e.removeObjectExtension(s,er)}}async function sS(t){let e=new K(t),{json:r}=e;if(r.lights){let n=e.addExtension(er);at(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let s=n.node;e.addObjectExtension(s,er,n)}delete e.json.lights}}var Pc={};ht(Pc,{decode:()=>oS,encode:()=>aS,name:()=>iS});var Pn="KHR_materials_unlit",iS=Pn;async function oS(t){let e=new K(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,Pn);e.removeExtension(Pn)}function aS(t){let e=new K(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,Pn,{}),e.addExtension(Pn))}var Dc={};ht(Dc,{decode:()=>lS,encode:()=>hS,name:()=>cS});var Dn="KHR_techniques_webgl",cS=Dn;async function lS(t){let e=new K(t),{json:r}=e,n=e.getExtension(Dn);if(n){let s=fS(n,e);for(let i of r.materials||[]){let o=e.getObjectExtension(i,Dn);o&&(i.technique=Object.assign({},o,s[o.technique]),i.technique.values=uS(i.technique,e)),e.removeObjectExtension(i,Dn)}e.removeExtension(Dn)}}async function hS(t,e){}function fS(t,e){let{programs:r=[],shaders:n=[],techniques:s=[]}=t,i=new TextDecoder;return n.forEach(o=>{if(Number.isFinite(o.bufferView))o.code=i.decode(e.getTypedArrayForBufferView(o.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(o=>{o.fragmentShader=n[o.fragmentShader],o.vertexShader=n[o.vertexShader]}),s.forEach(o=>{o.program=r[o.program]}),s}function uS(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var Ep=[mc,gc,Bc,Mc,yc,Fc,bc,Pc,Dc,Oc,Tc];function Rp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;(s=i.preprocess)===null||s===void 0||s.call(i,t,e,r)}}async function xp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=Ep.filter(i=>Sp(i.name,e));for(let i of n){var s;await((s=i.decode)===null||s===void 0?void 0:s.call(i,t,e,r))}}function Sp(t,e){var r;let n=(e==null||(r=e.gltf)===null||r===void 0?void 0:r.excludeExtensions)||{};return!(t in n&&!n[t])}var wc="KHR_binary_glTF";function Cp(t){let e=new K(t),{json:r}=e;for(let n of r.images||[]){let s=e.getObjectExtension(n,wc);s&&Object.assign(n,s),e.removeObjectExtension(n,wc)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(wc)}var Bp={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},pS={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},vc=class{constructor(){this.idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}},this.json=void 0}normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),Cp(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in Bp)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let s in n){let i=n[s];i.id=i.id||s;let o=e[r].length;e[r].push(i),this.idToIndexMap[r][s]=o}}}_convertObjectIdsToArrayIndices(e){for(let r in Bp)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:s,material:i}=r;for(let o in n)n[o]=this._convertIdToIndex(n[o],"accessor");s&&(r.indices=this._convertIdToIndex(s,"accessor")),i&&(r.material=this._convertIdToIndex(i,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let s in n){let i=n[s],o=this._convertIdToIndex(i,s);n[s]=o}}_convertIdToIndex(e,r){let n=pS[r];if(n in this.idToIndexMap){let s=this.idToIndexMap[n][e];if(!Number.isFinite(s))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return s}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let i of e.materials){var r,n,s;i.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let o=((r=i.values)===null||r===void 0?void 0:r.tex)||((n=i.values)===null||n===void 0?void 0:n.texture2d_0)||((s=i.values)===null||s===void 0?void 0:s.diffuseTex),a=e.textures.findIndex(c=>c.id===o);a!==-1&&(i.pbrMetallicRoughness.baseColorTexture={index:a})}}};function Mp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return new vc().normalize(t,e)}async function yp(t,e){var r,n,s;let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,o=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0;return gS(t,e,i,o),Mp(t,{normalize:o==null||(r=o.gltf)===null||r===void 0?void 0:r.normalize}),Rp(t,o,a),o!=null&&(n=o.gltf)!==null&&n!==void 0&&n.loadBuffers&&t.json.buffers&&await AS(t,o,a),o!=null&&(s=o.gltf)!==null&&s!==void 0&&s.loadImages&&await _S(t,o,a),await xp(t,o,a),t}function gS(t,e,r,n){if(n.uri&&(t.baseUri=n.uri),e instanceof ArrayBuffer&&!gp(e,r,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=xo(e);else if(e instanceof ArrayBuffer){let o={};r=Ap(o,e,r,n.glb),at(o.type==="glTF",`Invalid GLB magic string ${o.type}`),t._glb=o,t.json=o.json}else at(!1,"GLTF: must be ArrayBuffer or string");let s=t.json.buffers||[];if(t.buffers=new Array(s.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:o}=t._glb;t.buffers[0]={arrayBuffer:o[0].arrayBuffer,byteOffset:o[0].byteOffset,byteLength:o[0].byteLength}}let i=t.json.images||[];t.images=new Array(i.length).fill({})}async function AS(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let a=n[o];if(a.uri){var s,i;let{fetch:c}=r;at(c);let l=Sc(a.uri,e),h=await(r==null||(s=r.fetch)===null||s===void 0?void 0:s.call(r,l)),f=await(h==null||(i=h.arrayBuffer)===null||i===void 0?void 0:i.call(h));t.buffers[o]={arrayBuffer:f,byteOffset:0,byteLength:f.byteLength},delete a.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(a.byteLength),byteOffset:0,byteLength:a.byteLength})}}async function _S(t,e,r){let n=mS(t),s=t.json.images||[],i=[];for(let o of n)i.push(TS(t,s[o],o,e,r));return await Promise.all(i)}function mS(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function TS(t,e,r,n,s){let i;if(e.uri&&!e.hasOwnProperty("bufferView")){let a=Sc(e.uri,n),{fetch:c}=s;i=await(await c(a)).arrayBuffer(),e.bufferView={data:i}}if(Number.isFinite(e.bufferView)){let a=op(t.json,t.buffers,e.bufferView);i=De(a.buffer,a.byteOffset,a.byteLength)}at(i,"glTF image has no data");let o=await Ct(i,[Ee,Wa],{...n,mimeType:e.mimeType,basis:n.basis||{format:Qs()}},s);o&&o[0]&&(o={compressed:!0,mipmaps:!1,width:o[0].width,height:o[0].height,data:o[0]}),t.images=t.images||[],t.images[r]=o}var rr={name:"glTF",id:"gltf",module:"gltf",version:dp,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:ES,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function ES(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0;e={...rr.options,...e},e.gltf={...rr.options.gltf,...e.gltf};let{byteOffset:n=0}=e;return await yp({},t,n,e,r)}var RS={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xS={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Pt={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},SS={magFilter:Pt.TEXTURE_MAG_FILTER,minFilter:Pt.TEXTURE_MIN_FILTER,wrapS:Pt.TEXTURE_WRAP_S,wrapT:Pt.TEXTURE_WRAP_T},CS={[Pt.TEXTURE_MAG_FILTER]:Pt.LINEAR,[Pt.TEXTURE_MIN_FILTER]:Pt.NEAREST_MIPMAP_LINEAR,[Pt.TEXTURE_WRAP_S]:Pt.REPEAT,[Pt.TEXTURE_WRAP_T]:Pt.REPEAT};function BS(){return{id:"default-sampler",parameters:CS}}function MS(t){return xS[t]}function yS(t){return RS[t]}var Uc=class{constructor(){this.baseUri="",this.jsonUnprocessed=void 0,this.json=void 0,this.buffers=[],this.images=[]}postProcess(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{json:n,buffers:s=[],images:i=[]}=e,{baseUri:o=""}=e;return at(n),this.baseUri=o,this.buffers=s,this.images=i,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((s,i)=>this._resolveBufferView(s,i))),e.images&&(n.images=e.images.map((s,i)=>this._resolveImage(s,i))),e.samplers&&(n.samplers=e.samplers.map((s,i)=>this._resolveSampler(s,i))),e.textures&&(n.textures=e.textures.map((s,i)=>this._resolveTexture(s,i))),e.accessors&&(n.accessors=e.accessors.map((s,i)=>this._resolveAccessor(s,i))),e.materials&&(n.materials=e.materials.map((s,i)=>this._resolveMaterial(s,i))),e.meshes&&(n.meshes=e.meshes.map((s,i)=>this._resolveMesh(s,i))),e.nodes&&(n.nodes=e.nodes.map((s,i)=>this._resolveNode(s,i)),n.nodes=n.nodes.map((s,i)=>this._resolveNodeChildren(s))),e.skins&&(n.skins=e.skins.map((s,i)=>this._resolveSkin(s,i))),e.scenes&&(n.scenes=e.scenes.map((s,i)=>this._resolveScene(s,i))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((s,i)=>{let o=this.getMesh(i);return s.id=o.id,s.primitives=s.primitives.concat(o.primitives),s},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(s=>{let i={...s,attributes:{},indices:void 0,material:void 0},o=s.attributes;for(let a in o)i.attributes[a]=this.getAccessor(o[a]);return s.indices!==void 0&&(i.indices=this.getAccessor(s.indices)),s.material!==void 0&&(i.material=this.getMaterial(s.material)),i})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let s=n.pbrMetallicRoughness;s.baseColorTexture&&(s.baseColorTexture={...s.baseColorTexture},s.baseColorTexture.texture=this.getTexture(s.baseColorTexture.index)),s.metallicRoughnessTexture&&(s.metallicRoughnessTexture={...s.metallicRoughnessTexture},s.metallicRoughnessTexture.texture=this.getTexture(s.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=MS(e.componentType),s=yS(e.type),i=n*s,o={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:s,bytesPerElement:i,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(o.bufferView=this.getBufferView(e.bufferView)),o.bufferView){let a=o.bufferView.buffer,{ArrayType:c,byteLength:l}=br(o,o.bufferView),h=(o.bufferView.byteOffset||0)+(o.byteOffset||0)+a.byteOffset,f=a.arrayBuffer.slice(h,h+l);o.bufferView.byteStride&&(f=this._getValueFromInterleavedBuffer(a,h,o.bufferView.byteStride,o.bytesPerElement,o.count)),o.value=new c(f)}return o}_getValueFromInterleavedBuffer(e,r,n,s,i){let o=new Uint8Array(i*s);for(let a=0;a<i;a++){let c=r+a*n;o.set(new Uint8Array(e.arrayBuffer.slice(c,c+s)),a*s)}return o.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):BS(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let s in n){let i=this._enumSamplerParameter(s);i!==void 0&&(n.parameters[i]=n[s])}return n}_enumSamplerParameter(e){return SS[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},s=this.images[r];return s&&(n.image=s),n}_resolveBufferView(e,r){let n=e.buffer,s=this.buffers[n].arrayBuffer,i=this.buffers[n].byteOffset||0;return e.byteOffset&&(i+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(s,i,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function wn(t,e){return new Uc().postProcess(t,e)}var Ni={URI:0,EMBEDDED:1};function Oi(t,e,r,n){t.rotateYtoZ=!0;let s=(t.byteOffset||0)+(t.byteLength||0)-r;if(s===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n!=null&&n["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=De(e,r,s),t.gltfByteOffset=0,t.gltfByteLength=s,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function bi(t,e,r,n){let s=r?.["3d-tiles"]||{};if(IS(t,e,r),s.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:i}=n,o=await i(t.gltfUrl,r);t.gltfArrayBuffer=await o.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let i=await Ct(t.gltfArrayBuffer,rr,r,n);t.gltf=wn(i),t.gpuMemoryUsageInBytes=Nn(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function IS(t,e,r){switch(e){case Ni.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),i=new TextDecoder().decode(n);t.gltfUrl=i.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Ni.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function Ip(t,e,r,n,s){var i;r=FS(t,e,r,n,s),await bi(t,Ni.EMBEDDED,n,s);let o=t==null||(i=t.gltf)===null||i===void 0?void 0:i.extensions;return o&&o.CESIUM_RTC&&(t.rtcCenter=o.CESIUM_RTC.center),r}function FS(t,e,r,n,s){r=Ne(t,e,r),r=Fr(t,e,r),r=Nr(t,e,r,n),r=Oi(t,e,r,n);let i=new fe(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=i.getGlobalProperty("RTC_CENTER",w.FLOAT,3),r}async function Fp(t,e,r,n,s){return r=NS(t,e,r,n,s),await bi(t,t.gltfFormat||0,n,s),r}function NS(t,e,r,n,s){var i;if(r=Ne(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=Fr(t,e,r);let o=new DataView(e);if(t.gltfFormat=o.getUint32(r,!0),r+=4,r=Nr(t,e,r,n),r=Oi(t,e,r,n),!(t!=null&&(i=t.header)!==null&&i!==void 0&&i.featureTableJsonByteLength)||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let a=new fe(t.featureTableJson,t.featureTableBinary),c=a.getGlobalProperty("INSTANCES_LENGTH");if(a.featuresLength=c,!Number.isFinite(c))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=a.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=a.getGlobalProperty("RTC_CENTER",w.FLOAT,3);let l=new tr(t.batchTableJson,t.batchTableBinary,c);return OS(t,a,l,c),r}function OS(t,e,r,n){let s=new Array(n),i=new m,o=new m,a=new m,c=new m,l=new z,h=new Zt,f=new m,u={},d=new D,p=[],_=[],A=[],T=[];for(let x=0;x<n;x++){let R;if(e.hasProperty("POSITION"))R=e.getProperty("POSITION",w.FLOAT,3,x,i);else if(e.hasProperty("POSITION_QUANTIZED")){R=e.getProperty("POSITION_QUANTIZED",w.UNSIGNED_SHORT,3,x,i);let g=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",w.FLOAT,3);if(!g)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let y=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",w.FLOAT,3);if(!y)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let O=65535;for(let b=0;b<3;b++)R[b]=R[b]/O*y[b]+g[b]}if(!R)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");i.copy(R),u.translation=i,t.normalUp=e.getProperty("NORMAL_UP",w.FLOAT,3,x,p),t.normalRight=e.getProperty("NORMAL_RIGHT",w.FLOAT,3,x,_);let S=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",w.UNSIGNED_SHORT,2,x,p),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",w.UNSIGNED_SHORT,2,x,_),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(L.WGS84.eastNorthUpToFixedFrame(i,d),d.getRotationMatrix3(l)):l.identity()}S&&(c.copy(o).cross(a).normalize(),l.setColumn(0,o),l.setColumn(1,a),l.setColumn(2,c)),h.fromMatrix3(l),u.rotation=h,f.set(1,1,1);let B=e.getProperty("SCALE",w.FLOAT,1,x,A);Number.isFinite(B)&&f.multiplyByScalar(B);let M=e.getProperty("SCALE_NON_UNIFORM",w.FLOAT,3,x,p);M&&f.scale(M),u.scale=f;let F=e.getProperty("BATCH_ID",w.UNSIGNED_SHORT,1,x,T);F===void 0&&(F=x);let C=new D().fromQuaternion(u.rotation);d.identity(),d.translate(u.translation),d.multiplyRight(C),d.scale(u.scale);let E=d.clone();s[x]={modelMatrix:E,batchId:F}}t.instances=s}async function Np(t,e,r,n,s,i){r=Ne(t,e,r);let o=new DataView(e);for(t.tilesLength=o.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await i(e,r,n,s,a)}return r}async function Op(t,e,r,n){var s,i;if(t.rotateYtoZ=!0,t.gltfUpAxis=r!=null&&(s=r["3d-tiles"])!==null&&s!==void 0&&s.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r!=null&&(i=r["3d-tiles"])!==null&&i!==void 0&&i.loadGLTF){if(!n)return e.byteLength;let o=await Ct(e,rr,r,n);t.gltf=wn(o),t.gpuMemoryUsageInBytes=Nn(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Lc(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=arguments.length>3?arguments[3]:void 0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{shape:"tile3d"};switch(s.byteOffset=e,s.type=Ud(t,e),s.type){case Qe.COMPOSITE:return await Np(s,t,e,r,n,Lc);case Qe.BATCHED_3D_MODEL:return await Ip(s,t,e,r,n);case Qe.GLTF:return await Op(s,t,r,n);case Qe.INSTANCED_3D_MODEL:return await Fp(s,t,e,r,n);case Qe.POINT_CLOUD:return await sp(s,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${s.type}`)}}async function Hc(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let i=bp(t.slice(8,16)),o=new Uint8Array(t,24,i),c=new TextDecoder("utf8").decode(o),l=JSON.parse(c),h=bp(t.slice(16,24)),f=new ArrayBuffer(0);if(h&&(f=t.slice(24+i)),await Pi(l,l.tileAvailability,f,r),Array.isArray(l.contentAvailability))for(let u of l.contentAvailability)await Pi(l,u,f,r);else await Pi(l,l.contentAvailability,f,r);return await Pi(l,l.childSubtreeAvailability,f,r),l}async function Pi(t,e,r,n){let s=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof s!="number")return;let i=t.bufferViews[s],o=t.buffers[i.buffer];if(!(n!=null&&n.baseUrl))throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(o.uri){let c=`${n?.baseUrl||""}/${o.uri}`,h=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(h,i.byteOffset,i.byteLength);return}let a=t.buffers.slice(0,i.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+o.byteLength),i.byteOffset,i.byteLength)}function bp(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Di={id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:Ai,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Hc,options:{}};var lg=v(Cr(),1);var ig=v(Cr(),1);function bS(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var wi=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=bS(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function Pp(t){let e;return t<10?e=`${t.toFixed(2)}ms`:t<100?e=`${t.toFixed(1)}ms`:t<1e3?e=`${t.toFixed(0)}ms`:e=`${(t/1e3).toFixed(2)}s`,e}function Dp(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}function vi(t,e,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,s=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>n&&(r=Math.min(r,n/t.width));let i=t.width*r,o=t.height*r,a=["font-size:1px;",`padding:${Math.floor(o/2)}px ${Math.floor(i/2)}px;`,`line-height:${o}px;`,`background:url(${s});`,`background-size:${i}px ${o}px;`,"color:transparent;"].join("");return[`${e} %c+`,a]}var Ui;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ui||(Ui={}));var PS=10;function wp(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ui[t]||Ui.WHITE)}function vp(t,e,r){return!Wt&&typeof t=="string"&&(e&&(t=`\x1B[${wp(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${wp(r)+PS}m${t}\x1B[49m`)),t}function Up(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),s=t;for(let i of n){let o=s[i];typeof o=="function"&&(e.find(a=>i===a)||(s[i]=o.bind(t)))}}function Lr(t,e){if(!t)throw new Error(e||"Assertion failed")}function nr(){let t;if(Wt()&&xr.performance){var e,r;t=xr===null||xr===void 0||(e=xr.performance)===null||e===void 0||(r=e.now)===null||r===void 0?void 0:r.call(e)}else if("hrtime"in Ye){var n;let s=Ye===null||Ye===void 0||(n=Ye.hrtime)===null||n===void 0?void 0:n.call(Ye);t=s[0]*1e3+s[1]/1e6}else t=Date.now();return t}var Hr={debug:Wt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},DS={enabled:!0,level:0};function Dt(){}var Lp={},Hp={once:!0},vn=class{constructor(){let{id:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=$s,this._startTs=nr(),this._deltaTs=nr(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new wi(`__probe-${this.id}__`,DS),this.timeStamp(`${this.id} started`),Up(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((nr()-this._startTs).toPrecision(10))}getDelta(){return Number((nr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,r){this._storage.setConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){Lr(e,r)}warn(e){return this._getLogFunction(0,e,Hr.warn,arguments,Hp)}error(e){return this._getLogFunction(0,e,Hr.error,arguments)}deprecated(e,r){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(e,r){return this.error(`\`${e}\` has been removed. Use \`${r}\` instead`)}probe(e,r){return this._getLogFunction(e,r,Hr.log,arguments,{time:!0,once:!0})}log(e,r){return this._getLogFunction(e,r,Hr.debug,arguments)}info(e,r){return this._getLogFunction(e,r,console.info,arguments)}once(e,r){return this._getLogFunction(e,r,Hr.debug||Hr.info,arguments,Hp)}table(e,r,n){return r?this._getLogFunction(e,r,console.table||Dt,n&&[n],{tag:LS(r)}):Dt}image(e){let{logLevel:r,priority:n,image:s,message:i="",scale:o=1}=e;return this._shouldLog(r||n)?Wt()?US({image:s,message:i,scale:o}):vS({image:s,message:i,scale:o}):Dt}time(e,r){return this._getLogFunction(e,r,console.time?console.time:console.info)}timeEnd(e,r){return this._getLogFunction(e,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,r){return this._getLogFunction(e,r,console.timeStamp||Dt)}group(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},s=Vp({logLevel:e,message:r,opts:n}),{collapsed:i}=n;return s.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Dt)}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Xp(e)}_getLogFunction(e,r,n,s,i){if(this._shouldLog(e)){i=Vp({logLevel:e,message:r,args:s,opts:i}),n=n||i.method,Lr(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=nr();let o=i.tag||i.message;if(i.once&&o)if(!Lp[o])Lp[o]=nr();else return Dt;return r=wS(this.id,i.message,i),n.bind(console,r,...i.args)}return Dt}};vn.VERSION=$s;function Xp(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return Lr(Number.isFinite(e)&&e>=0),e}function Vp(t){let{logLevel:e,message:r}=t;t.logLevel=Xp(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let s=typeof t.message;return Lr(s==="string"||s==="object"),Object.assign(t,{args:n},t.opts)}function wS(t,e,r){if(typeof e=="string"){let n=r.time?Dp(Pp(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=vp(e,r.color,r.background)}return e}function vS(t){let{image:e,message:r="",scale:n=1}=t;return console.warn("removed"),Dt}function US(t){let{image:e,message:r="",scale:n=1}=t;if(typeof e=="string"){let i=new Image;return i.onload=()=>{let o=vi(i,r,n);console.log(...o)},i.src=e,Dt}let s=e.nodeName||"";if(s.toLowerCase()==="img")return console.log(...vi(e,r,n)),Dt;if(s.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...vi(i,r,n)),i.src=e.toDataURL(),Dt}return Dt}function LS(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var Vc=new vn({id:"@probe.gl/log"});var wt=null;try{wt=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function Z(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}Z.prototype.__isLong__;Object.defineProperty(Z.prototype,"__isLong__",{value:!0});function pt(t){return(t&&t.__isLong__)===!0}function Wp(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=pt;var zp={},kp={};function sr(t,e){var r,n,s;return e?(t>>>=0,(s=0<=t&&t<256)&&(n=kp[t],n)?n:(r=X(t,0,!0),s&&(kp[t]=r),r)):(t|=0,(s=-128<=t&&t<128)&&(n=zp[t],n)?n:(r=X(t,t<0?-1:0,!1),s&&(zp[t]=r),r))}Z.fromInt=sr;function vt(t,e){if(isNaN(t))return e?ue:kt;if(e){if(t<0)return ue;if(t>=Yp)return Zp}else{if(t<=-Kp)return St;if(t+1>=Kp)return jp}return t<0?vt(-t,e).neg():X(t%Xr|0,t/Xr|0,e)}Z.fromNumber=vt;function X(t,e,r){return new Z(t,e,r)}Z.fromBits=X;var Li=Math.pow;function Wc(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?ue:kt;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Wc(t.substring(1),e,r).neg();for(var s=vt(Li(r,8)),i=kt,o=0;o<t.length;o+=8){var a=Math.min(8,t.length-o),c=parseInt(t.substring(o,o+a),r);if(a<8){var l=vt(Li(r,a));i=i.mul(l).add(vt(c))}else i=i.mul(s),i=i.add(vt(c))}return i.unsigned=e,i}Z.fromString=Wc;function Gt(t,e){return typeof t=="number"?vt(t,e):typeof t=="string"?Wc(t,e):X(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=Gt;var Gp=1<<16,HS=1<<24,Xr=Gp*Gp,Yp=Xr*Xr,Kp=Yp/2,Jp=sr(HS),kt=sr(0);Z.ZERO=kt;var ue=sr(0,!0);Z.UZERO=ue;var Vr=sr(1);Z.ONE=Vr;var qp=sr(1,!0);Z.UONE=qp;var Xc=sr(-1);Z.NEG_ONE=Xc;var jp=X(-1,2147483647,!1);Z.MAX_VALUE=jp;var Zp=X(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=Zp;var St=X(0,-2147483648,!1);Z.MIN_VALUE=St;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*Xr+(this.low>>>0):this.high*Xr+(this.low>>>0)};I.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(St)){var r=vt(e),n=this.div(r),s=n.mul(r).sub(this);return n.toString(e)+s.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var i=vt(Li(e,6),this.unsigned),o=this,a="";;){var c=o.div(i),l=o.sub(c.mul(i)).toInt()>>>0,h=l.toString(e);if(o=c,o.isZero())return h+a;for(;h.length<6;)h="0"+h;a=""+h+a}};I.getHighBits=function(){return this.high};I.getHighBitsUnsigned=function(){return this.high>>>0};I.getLowBits=function(){return this.low};I.getLowBitsUnsigned=function(){return this.low>>>0};I.getNumBitsAbs=function(){if(this.isNegative())return this.eq(St)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&!(e&1<<r);r--);return this.high!=0?r+33:r+1};I.isZero=function(){return this.high===0&&this.low===0};I.eqz=I.isZero;I.isNegative=function(){return!this.unsigned&&this.high<0};I.isPositive=function(){return this.unsigned||this.high>=0};I.isOdd=function(){return(this.low&1)===1};I.isEven=function(){return(this.low&1)===0};I.equals=function(e){return pt(e)||(e=Gt(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};I.eq=I.equals;I.notEquals=function(e){return!this.eq(e)};I.neq=I.notEquals;I.ne=I.notEquals;I.lessThan=function(e){return this.comp(e)<0};I.lt=I.lessThan;I.lessThanOrEqual=function(e){return this.comp(e)<=0};I.lte=I.lessThanOrEqual;I.le=I.lessThanOrEqual;I.greaterThan=function(e){return this.comp(e)>0};I.gt=I.greaterThan;I.greaterThanOrEqual=function(e){return this.comp(e)>=0};I.gte=I.greaterThanOrEqual;I.ge=I.greaterThanOrEqual;I.compare=function(e){if(pt(e)||(e=Gt(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};I.comp=I.compare;I.negate=function(){return!this.unsigned&&this.eq(St)?St:this.not().add(Vr)};I.neg=I.negate;I.add=function(e){pt(e)||(e=Gt(e));var r=this.high>>>16,n=this.high&65535,s=this.low>>>16,i=this.low&65535,o=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,h=0,f=0,u=0,d=0;return d+=i+l,u+=d>>>16,d&=65535,u+=s+c,f+=u>>>16,u&=65535,f+=n+a,h+=f>>>16,f&=65535,h+=r+o,h&=65535,X(u<<16|d,h<<16|f,this.unsigned)};I.subtract=function(e){return pt(e)||(e=Gt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(pt(e)||(e=Gt(e)),wt){var r=wt.mul(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?ue:kt;if(this.eq(St))return e.isOdd()?St:kt;if(e.eq(St))return this.isOdd()?St:kt;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Jp)&&e.lt(Jp))return vt(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,s=this.high&65535,i=this.low>>>16,o=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,h=e.low&65535,f=0,u=0,d=0,p=0;return p+=o*h,d+=p>>>16,p&=65535,d+=i*h,u+=d>>>16,d&=65535,d+=o*l,u+=d>>>16,d&=65535,u+=s*h,f+=u>>>16,u&=65535,u+=i*l,f+=u>>>16,u&=65535,u+=o*c,f+=u>>>16,u&=65535,f+=n*h+s*l+i*c+o*a,f&=65535,X(d<<16|p,f<<16|u,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(pt(e)||(e=Gt(e)),e.isZero())throw Error("division by zero");if(wt){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?wt.div_u:wt.div_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?ue:kt;var n,s,i;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return ue;if(e.gt(this.shru(1)))return qp;i=ue}else{if(this.eq(St)){if(e.eq(Vr)||e.eq(Xc))return St;if(e.eq(St))return Vr;var o=this.shr(1);return n=o.div(e).shl(1),n.eq(kt)?e.isNegative()?Vr:Xc:(s=this.sub(e.mul(n)),i=n.add(s.div(e)),i)}else if(e.eq(St))return this.unsigned?ue:kt;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();i=kt}for(s=this;s.gte(e);){n=Math.max(1,Math.floor(s.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Li(2,a-48),l=vt(n),h=l.mul(e);h.isNegative()||h.gt(s);)n-=c,l=vt(n,this.unsigned),h=l.mul(e);l.isZero()&&(l=Vr),i=i.add(l),s=s.sub(h)}return i};I.div=I.divide;I.modulo=function(e){if(pt(e)||(e=Gt(e)),wt){var r=(this.unsigned?wt.rem_u:wt.rem_s)(this.low,this.high,e.low,e.high);return X(r,wt.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return X(~this.low,~this.high,this.unsigned)};I.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};I.clz=I.countLeadingZeros;I.countTrailingZeros=function(){return this.low?Wp(this.low):Wp(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return pt(e)||(e=Gt(e)),X(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return pt(e)||(e=Gt(e)),X(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return pt(e)||(e=Gt(e)),X(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):X(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):X(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?X(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?X(this.high,0,this.unsigned):X(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,X(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};I.rotl=I.rotateLeft;I.rotateRight=function(e){var r;return pt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?X(this.high,this.low,this.unsigned):e<32?(r=32-e,X(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,X(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?X(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:X(this.low,this.high,!0)};I.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};I.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};I.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};Z.fromBytes=function(e,r,n){return n?Z.fromBytesLE(e,r):Z.fromBytesBE(e,r)};Z.fromBytesLE=function(e,r){return new Z(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};Z.fromBytesBE=function(e,r){return new Z(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var Wr=Z;var VS=16;function Un(t){t==="X"&&(t="");let e=t.padEnd(VS,"0");return Wr.fromString(e,!0,16)}function zc(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let i=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-i.length).join("0")+i}function kc(t,e){let r=XS(t).shiftRightUnsigned(2);return t.add(Wr.fromNumber(2*e+1-4).multiply(r))}function XS(t){return t.and(t.not().add(1))}var WS=3,zS=30,kS=2*zS+1,Qp=180/Math.PI;function tg(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],s=n.length,i=0,o=[0,0];for(let a=s-1;a>=0;a--){i=s-a;let c=n[a],l=0,h=0;c==="1"?h=1:c==="2"?(l=1,h=1):c==="3"&&(l=1);let f=Math.pow(2,i-1);GS(f,o,l,h),o[0]+=f*l,o[1]+=f*h}if(r%2===1){let a=o[0];o[0]=o[1],o[1]=a}return{face:r,ij:o,level:i}}function eg(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<WS+kS;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),s=e.substring(3,r),i=s.length/2,o=Wr.fromString(n,!0,2).toString(10),a="";if(i!==0)for(a=Wr.fromString(s,!0,2).toString(4);a.length<i;)a="0"+a;return`${o}/${a}`}function Gc(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function $p(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kc(t){return[$p(t[0]),$p(t[1])]}function Jc(t,e){let[r,n]=e;switch(t){case 0:return[1,r,n];case 1:return[-r,1,n];case 2:return[-r,-n,1];case 3:return[-1,-n,-r];case 4:return[n,-1,-r];case 5:return[n,r,-1];default:throw new Error("Invalid face")}}function Yc(t){let[e,r,n]=t,s=Math.atan2(n,Math.sqrt(e*e+r*r));return[Math.atan2(r,e)*Qp,s*Qp]}function GS(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let s=e[0];e[0]=e[1],e[1]=s}}function rg(t){let e=Gc(t.ij,t.level,[.5,.5]),r=Kc(e),n=Jc(t.face,r);return Yc(n)}var KS=100;function qc(t){let{face:e,ij:r,level:n}=t,s=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(KS*Math.pow(2,-n))),o=new Float64Array(4*i*2+2),a=0,c=0;for(let l=0;l<4;l++){let h=s[l].slice(0),f=s[l+1],u=(f[0]-h[0])/i,d=(f[1]-h[1])/i;for(let p=0;p<i;p++){h[0]+=u,h[1]+=d;let _=Gc(r,n,h),A=Kc(_),T=Jc(e,A),x=Yc(T);Math.abs(x[1])>89.999&&(x[0]=c);let R=x[0]-c;x[0]+=R>180?-360:R<-180?360:0,o[a++]=x[0],o[a++]=x[1],c=x[0]}}return o[a++]=o[0],o[a++]=o[1],o}function zr(t){let e=JS(t);return tg(e)}function JS(t){if(t.indexOf("/")>0)return t;let e=Un(t);return eg(e)}function jc(t){let e=zr(t);return rg(e)}function sg(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let s=0;s<4;s++){let i=`${t.face}/${s}`,o=zr(i),a=qc(o);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=ng(r)}else{let r=qc(t);e=ng(r)}return e}function ng(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,s)=>n-s),r.sort((n,s)=>n-s),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Zc(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,s=zr(t),i=sg(s),o=i.west,a=i.south,c=i.east,l=i.north,h=[];return h.push(new m(o,l,r)),h.push(new m(c,l,r)),h.push(new m(c,a,r)),h.push(new m(o,a,r)),h.push(new m(o,l,n)),h.push(new m(c,l,n)),h.push(new m(c,a,n)),h.push(new m(o,a,n)),h}function Hi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=Zc(e,r),s=jc(e),i=s[0],o=s[1],a=L.WGS84.cartographicToCartesian([i,o,r.maximumHeight]),c=new m(a[0],a[1],a[2]);n.push(c);let l=An(n);return[...l.center,...l.halfAxes]}var YS=4,qS=8,jS={QUADTREE:YS,OCTREE:qS};function ZS(t,e,r){if(t!=null&&t.box){let n=Un(t.s2VolumeInfo.token),s=kc(n,e),i=zc(s),o={...t.s2VolumeInfo};switch(o.token=i,r){case"OCTREE":let l=t.s2VolumeInfo,h=l.maximumHeight-l.minimumHeight,f=h/2,u=l.minimumHeight+h/2;l.minimumHeight=u-f,l.maximumHeight=u+f;break;default:break}return{box:Hi(o),s2VolumeInfo:o}}}async function $c(t){let{implicitOptions:e,parentData:r={mortonIndex:0,x:0,y:0,z:0},childIndex:n=0,s2VolumeBox:s,loaderOptions:i}=t,{subtree:o,level:a=0,globalData:c={level:0,mortonIndex:0,x:0,y:0,z:0}}=t,{subdivisionScheme:l,subtreeLevels:h,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:d,basePath:p}=e,_={children:[],lodMetricValue:0,contentUrl:""};if(!f)return Vc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),_;let A=a+c.level;if(A>f)return _;let T=jS[l],x=Math.log2(T),R=n&1,S=n>>1&1,B=n>>2&1,M=(T**a-1)/(T-1),F=ir(r.mortonIndex,n,x),C=M+F,E=ir(r.x,R,1),g=ir(r.y,S,1),y=ir(r.z,B,1),O=!1;a>=h&&(O=Qc(o.childSubtreeAvailability,F));let b=ir(c.x,E,a),N=ir(c.y,g,a),U=ir(c.z,y,a);if(O){let q=`${p}/${d}`,tt=Vi(q,A,b,N,U);o=await(0,ig.load)(tt,Di,i),c={mortonIndex:F,x:E,y:g,z:y,level:a},F=0,C=0,E=0,g=0,y=0,a=0}if(!Qc(o.tileAvailability,C))return _;Qc(o.contentAvailability,C)&&(_.contentUrl=Vi(u,A,b,N,U));let Q=a+1,J={mortonIndex:F,x:E,y:g,z:y};for(let q=0;q<T;q++){let tt=ZS(s,q,l),mt=await $c({subtree:o,implicitOptions:e,loaderOptions:i,parentData:J,childIndex:q,level:Q,globalData:{...c},s2VolumeBox:tt});if(mt.contentUrl||mt.children.length){let o0=A+1,a0=QS(mt,o0,{childTileX:E,childTileY:g,childTileZ:y},e,s);_.children.push(a0)}}return _}function Qc(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&Vc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?eC(e,r.explicitBitstream):!1}function QS(t,e,r,n,s){let{basePath:i,refine:o,getRefine:a,lodMetricType:c,getTileType:l,rootLodMetricValue:h,rootBoundingVolume:f}=n,u=t.contentUrl&&t.contentUrl.replace(`${i}/`,""),d=h/2**e,p=s!=null&&s.box?{box:s.box}:f,_=$S(e,p,r);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:a(o),type:l(t),lodMetricType:c,lodMetricValue:d,geometricError:d,transform:t.transform,boundingVolume:_}}function $S(t,e,r){if(e.region){let{childTileX:n,childTileY:s,childTileZ:i}=r,[o,a,c,l,h,f]=e.region,u=2**t,d=(c-o)/u,p=(l-a)/u,_=(f-h)/u,[A,T]=[o+d*n,o+d*(n+1)],[x,R]=[a+p*s,a+p*(s+1)],[S,B]=[h+_*i,h+_*(i+1)];return{region:[A,x,T,R,S,B]}}if(e.box)return e;throw new Error(`Unsupported bounding volume type ${e}`)}function ir(t,e,r){return(t<<r)+e}function Vi(t,e,r,n,s){let i=tC({level:e,x:r,y:n,z:s});return t.replace(/{level}|{x}|{y}|{z}/gi,o=>i[o])}function tC(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function eC(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function el(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(!e)return re.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return re.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return re.SCENEGRAPH;default:return n||re.EMPTY}}function rl(t){switch(t){case"REPLACE":case"replace":return Et.REPLACE;case"ADD":case"add":return Et.ADD;default:return t}}function tl(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Te.resolve(e,t)}function og(t,e){if(!t)return null;let r;if(t.content){var n;let i=t.content.uri||((n=t.content)===null||n===void 0?void 0:n.url);typeof i<"u"&&(r=tl(i,e))}return{...t,id:r,contentUrl:r,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,r),refine:rl(t.refine)}}async function hg(t,e,r){let n=null,s=cg(t.root);s&&t.root?n=await ag(t.root,t,e,s,r):n=og(t.root,e);let i=[];for(i.push(n);i.length>0;){let o=i.pop()||{},a=o.children||[],c=[];for(let l of a){let h=cg(l),f;h?f=await ag(l,t,e,h,r):f=og(l,e),f&&(c.push(f),i.push(f))}o.children=c}return n}async function ag(t,e,r,n,s){var i,o,a;let{subdivisionScheme:c,maximumLevel:l,availableLevels:h,subtreeLevels:f,subtrees:{uri:u}}=n,d=Vi(u,0,0,0,0),p=tl(d,r),_=await(0,lg.load)(p,Di,s),A=(i=t.content)===null||i===void 0?void 0:i.uri,T=A?tl(A,r):"",x=e==null||(o=e.root)===null||o===void 0?void 0:o.refine,R=t.geometricError,S=(a=t.boundingVolume.extensions)===null||a===void 0?void 0:a["3DTILES_bounding_volume_S2"];if(S){let C={box:Hi(S),s2VolumeInfo:S};t.boundingVolume=C}let B=t.boundingVolume,M={contentUrlTemplate:T,subtreesUriTemplate:u,subdivisionScheme:c,subtreeLevels:f,maximumLevel:Number.isFinite(h)?h-1:l,refine:x,basePath:r,lodMetricType:qe.GEOMETRIC_ERROR,rootLodMetricValue:R,rootBoundingVolume:B,getTileType:el,getRefine:rl};return await rC(t,r,_,M,s)}async function rC(t,e,r,n,s){if(!t)return null;let{children:i,contentUrl:o}=await $c({subtree:r,implicitOptions:n,loaderOptions:s}),a,c=null;return o&&(a=o,c={uri:o.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:el(t,a),refine:rl(t.refine),content:c||t.content,children:i}}function cg(t){var e;return(t==null||(e=t.extensions)===null||e===void 0?void 0:e["3DTILES_implicit_tiling"])||t?.implicitTiling}var Xi={id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:Ai,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:nC,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function nC(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2?arguments[2]:void 0,n=e["3d-tiles"]||{},s;return n.isTileset==="auto"?s=r?.url&&r.url.indexOf(".json")!==-1:s=n.isTileset,s?sC(t,e,r):iC(t,e,r)}async function sC(t,e,r){var n;let s=JSON.parse(new TextDecoder().decode(t)),i=r?.url||"",o=oC(i),a=await hg(s,o,e||{});return{...s,shape:"tileset3d",loader:Xi,url:i,queryString:r?.queryString||"",basePath:o,root:a||s.root,type:ft.TILES3D,lodMetricType:qe.GEOMETRIC_ERROR,lodMetricValue:((n=s.root)===null||n===void 0?void 0:n.geometricError)||0}}async function iC(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Lc(t,0,e,r,n.content),n.content}function oC(t){return Te.dirname(t)}var fg=[0],aC={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Xi,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Wi=class extends be.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&be.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return Boolean(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:s}=this.state;Object.keys(s).length&&(this._updateTileset(s),this.state.lastUpdatedViewports=s,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:s}=this.state;for(let i in s)s[i].needsUpdate=!0}}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let s=n?.[e.id];(!s||!e.equals(s))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r}){let{tile:n}=e.props,{id:s}=r;return n.selected&&n.viewportIds.includes(s)}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let{loadOptions:r={}}=this.props,n=this.props.loader||this.props.loaders,s=Array.isArray(n)?n[0]:n,i={loadOptions:{...r}},o=e;if(s.preload){let l=await s.preload(e,r);l.url&&(o=l.url),l.headers&&(i.loadOptions.fetch={...i.loadOptions.fetch,headers:l.headers}),Object.assign(i,l)}let a=await(0,gg.load)(o,s,i.loadOptions),c=new yn(a,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...i});this.setState({tileset3d:c,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(c)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,s=Object.keys(e).length;!n||!s||!r||r.selectTiles(Object.values(e)).then(i=>{this.state.frameNumber!==i&&this.setState({frameNumber:i})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case re.POINTCLOUD:return this._makePointCloudLayer(e,r);case re.SCENEGRAPH:return this._make3DModelLayer(e);case re.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:s,constantRGBA:i,cartographicOrigin:o,modelMatrix:a}=e.content,{positions:c,normals:l,colors:h}=n;if(!c)return null;let f=r&&r.props.data||{header:{vertexCount:s},attributes:{POSITION:c,NORMAL:l,COLOR_0:h}},{pointSize:u,getPointColor:d}=this.props,p=this.getSubLayerClass("pointcloud",dg.PointCloudLayer);return new p({pointSize:u},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:f,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:a,getColor:i||d,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:s,modelMatrix:i}=e.content,o=this.getSubLayerClass("scenegraph",pg.ScenegraphLayer);return new o({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||fg,scenegraph:r,coordinateSystem:be.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:s,modelMatrix:i,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:s,indices:i,modelMatrix:o,cartographicOrigin:a,coordinateSystem:c=be.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:h}=n,{_getMeshColor:f}=this.props,u=r&&r.props.mesh||new ug.Geometry({topology:"triangle-list",attributes:cC(s),indices:i}),d=this.getSubLayerClass("mesh",Cn);return new d(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:u,data:fg,getColor:f(e),pbrMaterial:l,modelMatrix:o,coordinateOrigin:a,coordinateSystem:c,featureIds:h,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let s=r[n.id]=r[n.id]||{tile:n},{layer:i}=s;return n.selected&&(i?s.needsUpdate&&(i=this._getSubLayer(n,i),s.needsUpdate=!1):i=this._getSubLayer(n)),s.layer=i,i}).filter(Boolean):null}},Ln=Wi;(()=>{Wi.defaultProps=aC})(),(()=>{Wi.layerName="Tile3DLayer"})();function cC(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var Yi=v(Lt(),1),al=v(qs(),1),xg=v(Lt(),1);var lC=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function nl(t){return t>>1^-(t&1)}function hC(t){let e=0,r={};for(let[n,s]of lC){let i=s===8?t.getFloat64:t.getFloat32;r[n]=i.call(t,e,!0),e+=s}return{header:r,headerEndPosition:e}}function fC(t,e){let r=e,n=3,s=t.getUint32(r,!0),i=new Uint16Array(s*n);r+=Uint32Array.BYTES_PER_ELEMENT;let o=Uint16Array.BYTES_PER_ELEMENT,a=s*o,c=r,l=c+a,h=l+a,f=0,u=0,d=0;for(let p=0;p<s;p++)f+=nl(t.getUint16(c+o*p,!0)),u+=nl(t.getUint16(l+o*p,!0)),d+=nl(t.getUint16(h+o*p,!0)),i[p]=f,i[p+s]=u,i[p+s*2]=d;return r+=a*3,{vertexData:i,vertexDataEndPosition:r}}function Hn(t,e,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i;if(n===2?i=new Uint16Array(t,e,r):i=new Uint32Array(t,e,r),!s)return i;let o=0;for(let a=0;a<i.length;++a){let c=i[a];i[a]=o-c,c===0&&++o}return i}function uC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%o!==0&&(n+=o-n%o);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Hn(t.buffer,n,c,o);return n+=c*o,{triangleIndicesEndPosition:n,triangleIndices:l}}function dC(t,e,r){let n=r,s=3,o=e.length/s>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Hn(t.buffer,n,a,o,!1);n+=a*o;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Hn(t.buffer,n,l,o,!1);n+=l*o;let f=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let u=Hn(t.buffer,n,f,o,!1);n+=f*o;let d=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let p=Hn(t.buffer,n,d,o,!1);return n+=d*o,{edgeIndicesEndPosition:n,westIndices:c,southIndices:h,eastIndices:u,northIndices:p}}function pC(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function gC(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function AC(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let s=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let i=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let o=new DataView(t.buffer,n,i);switch(s){case 1:{r.vertexNormals=pC(o);break}case 2:{r.waterMask=gC(o);break}default:}n+=i}return{extensions:r,extensionsEndPosition:n}}var or={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},_C={maxDecodingStep:or.extensions};function sl(t,e){let r=Object.assign({},_C,e),n=new DataView(t),{header:s,headerEndPosition:i}=hC(n);if(r.maxDecodingStep<or.vertices)return{header:s};let{vertexData:o,vertexDataEndPosition:a}=fC(n,i);if(r.maxDecodingStep<or.triangleIndices)return{header:s,vertexData:o};let{triangleIndices:c,triangleIndicesEndPosition:l}=uC(n,o,a);if(r.maxDecodingStep<or.edgeIndices)return{header:s,vertexData:o,triangleIndices:c};let{westIndices:h,southIndices:f,eastIndices:u,northIndices:d,edgeIndicesEndPosition:p}=dC(n,o,l);if(r.maxDecodingStep<or.extensions)return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f};let{extensions:_}=AC(n,p);return{header:s,vertexData:o,triangleIndices:c,westIndices:h,northIndices:d,eastIndices:u,southIndices:f,extensions:_}}function zi(t,e,r,n){let s=n?TC(n,t.POSITION.value):mC(e),i=new t.POSITION.value.constructor(s.length*6),o=new t.TEXCOORD_0.value.constructor(s.length*4),a=new e.constructor(s.length*6);for(let l=0;l<s.length;l++){let h=s[l];EC({edge:h,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:i,newTexcoord0:o,newTriangles:a})}t.POSITION.value=jr(t.POSITION.value,i),t.TEXCOORD_0.value=jr(t.TEXCOORD_0.value,o);let c=e instanceof Array?e.concat(a):jr(e,a);return{attributes:t,triangles:c}}function mC(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,a)=>Math.min(...o)-Math.min(...a)||Math.max(...o)-Math.max(...a));let r=[],n=0;for(;n<e.length;){var s,i;e[n][0]===((s=e[n+1])===null||s===void 0?void 0:s[1])&&e[n][1]===((i=e[n+1])===null||i===void 0?void 0:i[0])?n+=2:(r.push(e[n]),n++)}return r}function TC(t,e){t.westIndices.sort((n,s)=>e[3*n+1]-e[3*s+1]),t.eastIndices.sort((n,s)=>e[3*s+1]-e[3*n+1]),t.southIndices.sort((n,s)=>e[3*s]-e[3*n]),t.northIndices.sort((n,s)=>e[3*n]-e[3*s]);let r=[];for(let n in t){let s=t[n];for(let i=0;i<s.length-1;i++)r.push([s[i],s[i+1]])}return r}function EC(t){let{edge:e,edgeIndex:r,attributes:n,skirtHeight:s,newPosition:i,newTexcoord0:o,newTriangles:a}=t,c=n.POSITION.value.length,l=r*2,h=r*2+1;i.set(n.POSITION.value.subarray(e[0]*3,e[0]*3+3),l*3),i[l*3+2]=i[l*3+2]-s,i.set(n.POSITION.value.subarray(e[1]*3,e[1]*3+3),h*3),i[h*3+2]=i[h*3+2]-s,o.set(n.TEXCOORD_0.value.subarray(e[0]*2,e[0]*2+2),l*2),o.set(n.TEXCOORD_0.value.subarray(e[1]*2,e[1]*2+2),h*2);let f=r*2*3;a[f]=e[0],a[f+1]=c/3+h,a[f+2]=e[1],a[f+3]=c/3+h,a[f+4]=e[0],a[f+5]=c/3+l}function il(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{bounds:r}=e,{header:n,vertexData:s,triangleIndices:i,westIndices:o,northIndices:a,eastIndices:c,southIndices:l}=sl(t,or.triangleIndices),h=i,f=RC(s,n,r),u=$e(f);if(e!=null&&e.skirtHeight){let{attributes:d,triangles:p}=zi(f,h,e.skirtHeight,{westIndices:o,northIndices:a,eastIndices:c,southIndices:l});f=d,h=p}return{loaderData:{header:{}},header:{vertexCount:h.length,boundingBox:u},schema:void 0,topology:"triangle-list",mode:4,indices:{value:h,size:1},attributes:f}}function RC(t,e,r){let{minHeight:n,maxHeight:s}=e,[i,o,a,c]=r||[0,0,1,1],l=a-i,h=c-o,f=s-n,u=t.length/3,d=new Float32Array(u*3),p=new Float32Array(u*2);for(let _=0;_<u;_++){let A=t[_]/32767,T=t[_+u]/32767,x=t[_+u*2]/32767;d[3*_+0]=A*l+i,d[3*_+1]=T*h+o,d[3*_+2]=x*f+n,p[2*_+0]=A,p[2*_+1]=T}return{POSITION:{value:d,size:3},TEXCOORD_0:{value:p,size:2}}}var Vn=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let s=n+2,i=0,o=0,a=0,c=0,l=0,h=0;for(s&1?a=c=l=r:i=o=h=r;(s>>=1)>1;){let u=i+a>>1,d=o+c>>1;s&1?(a=i,c=o,i=l,o=h):(i=a,o=c,a=l,c=h),l=u,h=d}let f=n*4;this.coords[f+0]=i,this.coords[f+1]=o,this.coords[f+2]=a,this.coords[f+3]=c}}createTile(e){return new ol(e,this)}},ol=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:s}=this.martini,{terrain:i,errors:o}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],h=n[c+1],f=n[c+2],u=n[c+3],d=l+f>>1,p=h+u>>1,_=d+p-h,A=p+l-d,T=(i[h*s+l]+i[u*s+f])/2,x=p*s+d,R=Math.abs(T-i[x]);if(o[x]=Math.max(o[x],R),a<r){let S=(h+A>>1)*s+(l+_>>1),B=(u+A>>1)*s+(f+_>>1);o[x]=Math.max(o[x],o[S],o[B])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:s}=this,i=0,o=0,a=r-1;n.fill(0);function c(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e?(c(T,x,d,p,R,S),c(_,A,T,x,R,S)):(n[p*r+d]=n[p*r+d]||++i,n[A*r+_]=n[A*r+_]||++i,n[x*r+T]=n[x*r+T]||++i,o++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(i*2),h=new Uint32Array(o*3),f=0;function u(d,p,_,A,T,x){let R=d+_>>1,S=p+A>>1;if(Math.abs(d-T)+Math.abs(p-x)>1&&s[S*r+R]>e)u(T,x,d,p,R,S),u(_,A,T,x,R,S);else{let B=n[p*r+d]-1,M=n[A*r+_]-1,F=n[x*r+T]-1;l[2*B]=d,l[2*B+1]=p,l[2*M]=_,l[2*M+1]=A,l[2*F]=T,l[2*F+1]=x,h[f++]=B,h[f++]=M,h[f++]=F}}return u(0,0,a,a,a,0),u(a,a,0,0,0,a),{vertices:l,triangles:h}}};var Xn=class{constructor(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r;this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let s=r-1,i=n-1,o=this._addPoint(0,0),a=this._addPoint(s,0),c=this._addPoint(0,i),l=this._addPoint(s,i),h=this._addTriangle(l,o,c,-1,-1,-1);this._addTriangle(o,l,a,h,-1,-1),this._flush()}run(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;for(;this.getMaxError()>e;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(e,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],s=2*this.triangles[n*3+0],i=2*this.triangles[n*3+1],o=2*this.triangles[n*3+2];this._findCandidate(e[s],e[s+1],e[i],e[i+1],e[o],e[o+1],n)}this._pendingLen=0}_findCandidate(e,r,n,s,i,o,a){let c=Math.min(e,n,i),l=Math.min(r,s,o),h=Math.max(e,n,i),f=Math.max(r,s,o),u=ar(n,s,i,o,c,l),d=ar(i,o,e,r,c,l),p=ar(e,r,n,s,c,l),_=s-r,A=e-n,T=o-s,x=n-i,R=r-o,S=i-e,B=ar(e,r,n,s,i,o),M=this.heightAt(e,r)/B,F=this.heightAt(n,s)/B,C=this.heightAt(i,o)/B,E=0,g=0,y=0,O=0;for(let b=l;b<=f;b++){let N=0;u<0&&T!==0&&(N=Math.max(N,Math.floor(-u/T))),d<0&&R!==0&&(N=Math.max(N,Math.floor(-d/R))),p<0&&_!==0&&(N=Math.max(N,Math.floor(-p/_)));let U=u+T*N,Y=d+R*N,W=p+_*N,Q=!1;for(let J=c+N;J<=h;J++){if(U>=0&&Y>=0&&W>=0){Q=!0;let q=M*U+F*Y+C*W,tt=Math.abs(q-this.heightAt(J,b));O+=tt*tt,tt>E&&(E=tt,g=J,y=b)}else if(Q)break;U+=T,Y+=R,W+=_}u+=x,d+=S,p+=A}(g===e&&y===r||g===n&&y===s||g===i&&y===o)&&(E=0),this._candidates[2*a]=g,this._candidates[2*a+1]=y,this._rms[a]=O,this._queuePush(a,E,O)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,s=e*3+2,i=this.triangles[r],o=this.triangles[n],a=this.triangles[s],c=this.coords[2*i],l=this.coords[2*i+1],h=this.coords[2*o],f=this.coords[2*o+1],u=this.coords[2*a],d=this.coords[2*a+1],p=this._candidates[2*e],_=this._candidates[2*e+1],A=this._addPoint(p,_);if(ar(c,l,h,f,p,_)===0)this._handleCollinear(A,r);else if(ar(h,f,u,d,p,_)===0)this._handleCollinear(A,n);else if(ar(u,d,c,l,p,_)===0)this._handleCollinear(A,s);else{let T=this._halfedges[r],x=this._halfedges[n],R=this._halfedges[s],S=this._addTriangle(i,o,A,T,-1,-1,r),B=this._addTriangle(o,a,A,x,-1,S+1),M=this._addTriangle(a,i,A,R,S+2,B+1);this._legalize(S),this._legalize(B),this._legalize(M)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,s,i,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this.triangles.length,c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=s,this._halfedges[a+1]=i,this._halfedges[a+2]=o,s>=0&&(this._halfedges[s]=a+0),i>=0&&(this._halfedges[i]=a+1),o>=0&&(this._halfedges[o]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,s=r-r%3,i=n+(e+1)%3,o=n+(e+2)%3,a=s+(r+2)%3,c=s+(r+1)%3,l=this.triangles[o],h=this.triangles[e],f=this.triangles[i],u=this.triangles[a],d=this.coords;if(!xC(d[2*l],d[2*l+1],d[2*h],d[2*h+1],d[2*f],d[2*f+1],d[2*u],d[2*u+1]))return;let p=this._halfedges[i],_=this._halfedges[o],A=this._halfedges[a],T=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(s/3);let x=this._addTriangle(l,u,f,-1,A,p,n),R=this._addTriangle(u,l,h,x,_,T,s);this._legalize(x+1),this._legalize(R+2)}_handleCollinear(e,r){let n=r-r%3,s=n+(r+1)%3,i=n+(r+2)%3,o=this.triangles[i],a=this.triangles[r],c=this.triangles[s],l=this._halfedges[s],h=this._halfedges[i],f=this._halfedges[r];if(f<0){let M=this._addTriangle(e,o,a,-1,h,-1,n),F=this._addTriangle(o,e,c,M,-1,l);this._legalize(M+1),this._legalize(F+2);return}let u=f-f%3,d=u+(f+2)%3,p=u+(f+1)%3,_=this.triangles[d],A=this._halfedges[d],T=this._halfedges[p];this._queueRemove(u/3);let x=this._addTriangle(o,a,e,h,-1,-1,n),R=this._addTriangle(a,_,e,T,-1,x+1,u),S=this._addTriangle(_,c,e,A,-1,R+1),B=this._addTriangle(c,o,e,l,x+2,S+1);this._legalize(x),this._legalize(R),this._legalize(S),this._legalize(B)}_queuePush(e,r,n){let s=this._queue.length;this._queueIndices[e]=s,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(s)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let s=this._pending.indexOf(e);if(s!==-1)this._pending[s]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],s=this._queue[r];this._queue[e]=s,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[s]=e;let i=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=i}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let s=2*n+1;if(s>=r||s<0)break;let i=s+1,o=s;if(i<r&&this._queueLess(i,s)&&(o=i),!this._queueLess(o,n))break;this._queueSwap(n,o),n=o}return n>e}};function ar(t,e,r,n,s,i){return(r-s)*(e-i)-(n-i)*(t-s)}function xC(t,e,r,n,s,i,o,a){let c=t-o,l=e-a,h=r-o,f=n-a,u=s-o,d=i-a,p=c*c+l*l,_=h*h+f*f,A=u*u+d*d;return c*(f*A-_*d)-l*(h*A-_*u)+p*(h*d-f*u)<0}function mg(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:s}=e,{data:i,width:o,height:a}=t,c,l;switch(e.tesselator){case"martini":c=ki(i,o,a,s,e.tesselator),l=Ag(r,o,c);break;case"delatin":c=ki(i,o,a,s,e.tesselator),l=_g(r,o,a,c);break;default:o===a&&!(a&o-1)?(c=ki(i,o,a,s,"martini"),l=Ag(r,o,c)):(c=ki(i,o,a,s,"delatin"),l=_g(r,o,a,c));break}let{vertices:h}=l,{triangles:f}=l,u=SC(h,c,o,a,n),d=$e(u);if(e.skirtHeight){let{attributes:p,triangles:_}=zi(u,f,e.skirtHeight);u=p,f=_}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:d},mode:4,indices:{value:Uint32Array.from(f),size:1},attributes:u}}function Ag(t,e,r){let n=e+1,i=new Vn(n).createTile(r),{vertices:o,triangles:a}=i.getMesh(t);return{vertices:o,triangles:a}}function _g(t,e,r,n){let s=new Xn(n,e+1,r+1);s.run(t);let{coords:i,triangles:o}=s;return{vertices:i,triangles:o}}function ki(t,e,r,n,s){let{rScaler:i,bScaler:o,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let h=0,f=0;f<r;f++)for(let u=0;u<e;u++,h++){let d=h*4,p=t[d+0],_=t[d+1],A=t[d+2];l[h+f]=p*i+_*a+A*o+c}if(s==="martini"){for(let h=(e+1)*e,f=0;f<e;f++,h++)l[h]=l[h-e-1];for(let h=r,f=0;f<r+1;f++,h+=r+1)l[h]=l[h-1]}return l}function SC(t,e,r,n,s){let i=r+1,o=t.length/2,a=new Float32Array(o*3),c=new Float32Array(o*2),[l,h,f,u]=s||[0,0,r,n],d=(f-l)/r,p=(u-h)/n;for(let _=0;_<o;_++){let A=t[_*2],T=t[_*2+1],x=T*i+A;a[3*_+0]=A*d+l,a[3*_+1]=-T*p+u,a[3*_+2]=e[x],c[2*_+0]=A/r,c[2*_+1]=T/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Gi="4.1.0";var Ki={name:"Terrain",id:"terrain",module:"terrain",version:Gi,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var Tg={name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Gi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var CC={...Ki,parse:BC};async function BC(t,e,r){let n={...e,mimeType:"application/x.image",image:{...e?.image,type:"data"}},s=await Ct(t,[],n,r),i={...CC.options.terrain,...e?.terrain};return mg(s,i)}var f4={...Tg,parseSync:(t,e)=>il(t,e?.["quantized-mesh"]),parse:async(t,e)=>il(t,e?.["quantized-mesh"])};var Eg=[1],MC={...te.defaultProps,elevationData:Ie,texture:{...Ie,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Ki]};function Rg(t){return Array.isArray(t)?t.join(";"):t||""}var Ji=class extends Yi.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:i}=e,o=i&&(Array.isArray(i)||i.includes("{x}")&&i.includes("{y}"));this.setState({isTiled:o})}let s=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&s){let i=this.loadTerrain(e);this.setState({terrain:i})}e.workerUrl&&Yi.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:s,signal:i}){if(!e)return null;let o=this.getLoadOptions();o={...o,terrain:{skirtHeight:this.state.isTiled?s*2:0,...o?.terrain,bounds:r,meshMaxError:s,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:o,signal:i})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:s,elevationDecoder:i,meshMaxError:o}=this.props,{viewport:a}=this.context,c=$t(r,e),l=s&&$t(s,e),{signal:h}=e,f=[0,0],u=[0,0];if(a.isGeospatial){let A=e.bbox;f=a.projectFlat([A.west,A.south]),u=a.projectFlat([A.east,A.north])}else{let A=e.bbox;f=[A.left,A.bottom],u=[A.right,A.top]}let d=[f[0],f[1],u[0],u[1]],p=this.loadTerrain({elevationData:c,bounds:d,elevationDecoder:i,meshMaxError:o,signal:h}),_=l?n(l,{propName:"texture",layer:this,loaders:[],signal:h}).catch(A=>null):Promise.resolve(null);return Promise.all([p,_])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",al.SimpleMeshLayer),{color:n,wireframe:s,material:i}=this.props,{data:o}=e;if(!o)return null;let[a,c]=o;return new r(e,{data:Eg,mesh:a,texture:c,_instanced:!1,coordinateSystem:xg.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:s,material:i})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(o=>o.content).filter(Boolean).map(o=>o[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let s=Math.min(...n.map(o=>o[0])),i=Math.max(...n.map(o=>o[1]));(!r||s<r[0]||i>r[1])&&this.setState({zRange:[s,i]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:s,wireframe:i,meshMaxError:o,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x}=this.props;if(this.state.isTiled)return new te(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:Rg(n),texture:Rg(s),meshMaxError:o,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:h,extent:f,maxRequests:u,onTileLoad:d,onTileUnload:p,onTileError:_,maxCacheSize:A,maxCacheByteSize:T,refinementStrategy:x});if(!n)return null;let R=this.getSubLayerClass("mesh",al.SimpleMeshLayer);return new R(this.getSubLayerProps({id:"mesh"}),{data:Eg,mesh:this.state.terrain,texture:s,_instanced:!1,getPosition:S=>[0,0,0],getColor:e,material:r,wireframe:i})}},Wn=Ji;(()=>{Ji.defaultProps=MC})(),(()=>{Ji.layerName="TerrainLayer"})();var ao=v(Lt(),1),Bl=v(Ut(),1),r0=v(Cg(),1);var zn={x:0,y:1,z:2};function cr(t,e={}){let{start:r=0,end:n=t.length,plane:s="xy"}=e,i=e.size||2,o=0,a=zn[s[0]],c=zn[s[1]];for(let l=r,h=n-i;l<n;l+=i)o+=(t[l+a]-t[h+a])*(t[l+c]+t[h+c]),h=l;return o/2}function ll(t,e,r=2,n,s="xy"){let i=e&&e.length,o=i?e[0]*r:t.length,a=Mg(t,0,o,r,!0,n&&n[0],s),c=[];if(!a||a.next===a.prev)return c;let l,h,f,u,d,p,_;if(i&&(a=PC(t,e,a,r,n,s)),t.length>80*r){u=h=t[0],d=f=t[1];for(let A=r;A<o;A+=r)p=t[A],_=t[A+1],p<u&&(u=p),_<d&&(d=_),p>h&&(h=p),_>f&&(f=_);l=Math.max(h-u,f-d),l=l!==0?32767/l:0}return kn(a,c,r,u,d,l,0),c}function Mg(t,e,r,n,s,i,o){let a,c;i===void 0&&(i=cr(t,{start:e,end:r,size:n,plane:o}));let l=zn[o[0]],h=zn[o[1]];if(s===i<0)for(a=e;a<r;a+=n)c=Bg(a,t[a+l],t[a+h],c);else for(a=r-n;a>=e;a-=n)c=Bg(a,t[a+l],t[a+h],c);return c&&Zi(c,c.next)&&(Kn(c),c=c.next),c}function lr(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Zi(r,r.next)||rt(r.prev,r,r.next)===0)){if(Kn(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function kn(t,e,r,n,s,i,o){if(!t)return;!o&&i&&LC(t,n,s,i);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,i?NC(t,n,s,i):FC(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Kn(t),t=l.next,a=l.next;continue}if(t=l,t===a){o?o===1?(t=OC(lr(t),e,r),kn(t,e,r,n,s,i,2)):o===2&&bC(t,e,r,n,s,i):kn(lr(t),e,r,n,s,i,1);break}}}function FC(t){let e=t.prev,r=t,n=t.next;if(rt(e,r,n)>=0)return!1;let s=e.x,i=r.x,o=n.x,a=e.y,c=r.y,l=n.y,h=s<i?s<o?s:o:i<o?i:o,f=a<c?a<l?a:l:c<l?c:l,u=s>i?s>o?s:o:i>o?i:o,d=a>c?a>l?a:l:c>l?c:l,p=n.next;for(;p!==e;){if(p.x>=h&&p.x<=u&&p.y>=f&&p.y<=d&&kr(s,a,i,c,o,l,p.x,p.y)&&rt(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function NC(t,e,r,n){let s=t.prev,i=t,o=t.next;if(rt(s,i,o)>=0)return!1;let a=s.x,c=i.x,l=o.x,h=s.y,f=i.y,u=o.y,d=a<c?a<l?a:l:c<l?c:l,p=h<f?h<u?h:u:f<u?f:u,_=a>c?a>l?a:l:c>l?c:l,A=h>f?h>u?h:u:f>u?f:u,T=cl(d,p,e,r,n),x=cl(_,A,e,r,n),R=t.prevZ,S=t.nextZ;for(;R&&R.z>=T&&S&&S.z<=x;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0||(R=R.prevZ,S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;R&&R.z>=T;){if(R.x>=d&&R.x<=_&&R.y>=p&&R.y<=A&&R!==s&&R!==o&&kr(a,h,c,f,l,u,R.x,R.y)&&rt(R.prev,R,R.next)>=0)return!1;R=R.prevZ}for(;S&&S.z<=x;){if(S.x>=d&&S.x<=_&&S.y>=p&&S.y<=A&&S!==s&&S!==o&&kr(a,h,c,f,l,u,S.x,S.y)&&rt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function OC(t,e,r){let n=t;do{let s=n.prev,i=n.next.next;!Zi(s,i)&&yg(s,n,n.next,i)&&Gn(s,i)&&Gn(i,s)&&(e.push(s.i/r|0),e.push(n.i/r|0),e.push(i.i/r|0),Kn(n),Kn(n.next),n=t=i),n=n.next}while(n!==t);return lr(n)}function bC(t,e,r,n,s,i){let o=t;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&XC(o,a)){let c=Ig(o,a);o=lr(o,o.next),c=lr(c,c.next),kn(o,e,r,n,s,i,0),kn(c,e,r,n,s,i,0);return}a=a.next}o=o.next}while(o!==t)}function PC(t,e,r,n,s,i){let o=[],a,c,l,h,f;for(a=0,c=e.length;a<c;a++)l=e[a]*n,h=a<c-1?e[a+1]*n:t.length,f=Mg(t,l,h,n,!1,s&&s[a+1],i),f===f.next&&(f.steiner=!0),o.push(VC(f));for(o.sort(DC),a=0;a<o.length;a++)r=wC(o[a],r);return r}function DC(t,e){return t.x-e.x}function wC(t,e){let r=vC(t,e);if(!r)return e;let n=Ig(r,t);return lr(n,n.next),lr(r,r.next)}function vC(t,e){let r=e,n=t.x,s=t.y,i=-1/0,o;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){let u=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=n&&u>i&&(i=u,o=r.x<r.next.x?r:r.next,u===n))return o}r=r.next}while(r!==e);if(!o)return null;let a=o,c=o.x,l=o.y,h=1/0,f;r=o;do n>=r.x&&r.x>=c&&n!==r.x&&kr(s<l?n:i,s,c,l,s<l?i:n,s,r.x,r.y)&&(f=Math.abs(s-r.y)/(n-r.x),Gn(r,t)&&(f<h||f===h&&(r.x>o.x||r.x===o.x&&UC(o,r)))&&(o=r,h=f)),r=r.next;while(r!==a);return o}function UC(t,e){return rt(t.prev,t,e.prev)<0&&rt(e.next,t,t.next)<0}function LC(t,e,r,n){let s=t;do s.z===0&&(s.z=cl(s.x,s.y,e,r,n)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==t);s.prevZ.nextZ=null,s.prevZ=null,HC(s)}function HC(t){let e,r,n=1,s,i,o,a,c,l;do{for(i=t,t=null,l=null,s=0;i;){for(s++,a=i,o=0,r=0;r<n&&(o++,a=a.nextZ,!!a);r++);for(c=n;o>0||c>0&&a;)o!==0&&(c===0||!a||i.z<=a.z)?(e=i,i=i.nextZ,o--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;i=a}l.nextZ=null,n*=2}while(s>1);return t}function cl(t,e,r,n,s){return t=(t-r)*s|0,e=(e-n)*s|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function VC(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function kr(t,e,r,n,s,i,o,a){return(s-o)*(e-a)>=(t-o)*(i-a)&&(t-o)*(n-a)>=(r-o)*(e-a)&&(r-o)*(i-a)>=(s-o)*(n-a)}function XC(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!WC(t,e)&&(Gn(t,e)&&Gn(e,t)&&zC(t,e)&&(rt(t.prev,t,e.prev)||rt(t,e.prev,e))||Zi(t,e)&&rt(t.prev,t,t.next)>0&&rt(e.prev,e,e.next)>0)}function rt(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Zi(t,e){return t.x===e.x&&t.y===e.y}function yg(t,e,r,n){let s=ji(rt(t,e,r)),i=ji(rt(t,e,n)),o=ji(rt(r,n,t)),a=ji(rt(r,n,e));return!!(s!==i&&o!==a||s===0&&qi(t,r,e)||i===0&&qi(t,n,e)||o===0&&qi(r,t,n)||a===0&&qi(r,e,n))}function qi(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function ji(t){return t>0?1:t<0?-1:0}function WC(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&yg(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Gn(t,e){return rt(t.prev,t,t.next)<0?rt(t,e,t.next)>=0&&rt(t,t.prev,e)>=0:rt(t,e,t.prev)<0||rt(t,t.next,e)<0}function zC(t,e){let r=t,n=!1,s=(t.x+e.x)/2,i=(t.y+e.y)/2;do r.y>i!=r.next.y>i&&r.next.y!==r.y&&s<(r.next.x-r.x)*(i-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function Ig(t,e){let r=new Jn(t.i,t.x,t.y),n=new Jn(e.i,e.x,e.y),s=t.next,i=e.prev;return t.next=e,e.prev=t,r.next=s,s.prev=r,n.next=r,r.prev=n,i.next=n,n.prev=i,n}function Bg(t,e,r,n){let s=new Jn(t,e,r);return n?(s.next=n.next,s.prev=n,n.next.prev=s,n.next=s):(s.prev=s,s.next=s),s}function Kn(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Jn=class{constructor(e,r,n){P(this,"i",void 0),P(this,"x",void 0),P(this,"y",void 0),P(this,"prev",null),P(this,"next",null),P(this,"z",0),P(this,"prevZ",null),P(this,"nextZ",null),P(this,"steiner",!1),this.i=e,this.x=r,this.y=n}};function ul(t,e,r){let n=YC(t),s=Object.keys(n).filter(i=>n[i]!==Array);return qC(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||s,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function YC(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let s=r.properties[n];e[n]=eB(s,e[n])}return e}function qC(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:s,linePositionsCount:i,linePathsCount:o,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:h,polygonFeaturesCount:f,propArrayTypes:u,coordLength:d}=e,{numericPropKeys:p=[],PositionDataType:_=Float32Array,triangulate:A=!0}=r,T=t[0]&&"id"in t[0],x=t.length>65535?Uint32Array:Uint16Array,R={type:"Point",positions:new _(n*d),globalFeatureIds:new x(n),featureIds:s>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},S={type:"LineString",pathIndices:i>65535?new Uint32Array(o+1):new Uint16Array(o+1),positions:new _(i*d),globalFeatureIds:new x(i),featureIds:a>65535?new Uint32Array(i):new Uint16Array(i),numericProps:{},properties:[],fields:[]},B={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(h+1):new Uint16Array(h+1),positions:new _(c*d),globalFeatureIds:new x(c),featureIds:f>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};A&&(B.triangles=[]);for(let F of[R,S,B])for(let C of p){let E=u[C];F.numericProps[C]=new E(F.positions.length/d)}S.pathIndices[o]=i,B.polygonIndices[l]=c,B.primitivePolygonIndices[h]=c;let M={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let F of t){let C=F.geometry,E=F.properties||{};switch(C.type){case"Point":jC(C,R,M,d,E),R.properties.push(fl(E,p)),T&&R.fields.push({id:F.id}),M.pointFeature++;break;case"LineString":ZC(C,S,M,d,E),S.properties.push(fl(E,p)),T&&S.fields.push({id:F.id}),M.lineFeature++;break;case"Polygon":QC(C,B,M,d,E),B.properties.push(fl(E,p)),T&&B.fields.push({id:F.id}),M.polygonFeature++;break;default:throw new Error("Invalid geometry type")}M.feature++}return tB(R,S,B,d)}function jC(t,e,r,n,s){e.positions.set(t.data,r.pointPosition*n);let i=t.data.length/n;dl(e,s,r.pointPosition,i),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+i),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+i),r.pointPosition+=i}function ZC(t,e,r,n,s){e.positions.set(t.data,r.linePosition*n);let i=t.data.length/n;dl(e,s,r.linePosition,i),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+i),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=t.indices[o],l=o===a-1?t.data.length:t.indices[o+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function QC(t,e,r,n,s){e.positions.set(t.data,r.polygonPosition*n);let i=t.data.length/n;dl(e,s,r.polygonPosition,i),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+i),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+i);for(let o=0,a=t.indices.length;o<a;++o){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[o],h=t.indices[o],f=t.indices[o+1];for(let d=0,p=h.length;d<p;++d){let _=h[d],A=d===p-1?f===void 0?t.data.length:f[0]:h[d+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(A-_)/n}let u=r.polygonPosition;$C(e,l,h,{startPosition:c,endPosition:u,coordLength:n})}}function $C(t,e,r,n){let{startPosition:s,endPosition:i,coordLength:o}=n;if(!t.triangles)return;let a=s*o,c=i*o,l=t.positions.subarray(a,c),h=r[0],f=r.slice(1).map(d=>(d-h)/o),u=ll(l,f,o,e);for(let d=0,p=u.length;d<p;++d)t.triangles.push(s+u[d])}function hl(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function tB(t,e,r,n){let s={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:hl(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:hl(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:hl(r.numericProps,1)}};return s.polygons&&r.triangles&&(s.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),s}function dl(t,e,r,n){for(let s in t.numericProps)if(s in e){let i=e[s];t.numericProps[s].fill(i,r,r+n)}}function fl(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function eB(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function to(t,e){let r=e?.globalFeatureId;return r!==void 0?rB(t,r):nB(t,e?.type)}function rB(t,e){let r=bg(t);for(let n of r){let s=0,i=n.featureIds.value[0];for(let o=0;o<n.featureIds.value.length;o++){let a=n.featureIds.value[o];if(a!==i){if(e===n.globalFeatureIds.value[s])return Qi(n,s,o);s=o,i=a}}if(e===n.globalFeatureIds.value[s])return Qi(n,s,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function nB(t,e){let r=bg(t,e);return sB(r)}function Og(t,e,r){switch(t.type){case"Point":return cB(t,e,r);case"LineString":return aB(t,e,r);case"Polygon":return Pg(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function bg(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function sB(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,s=r.featureIds.value[0];for(let i=0;i<r.featureIds.value.length;i++){let o=r.featureIds.value[i];o!==s&&(e.push(Qi(r,n,i)),n=i,s=o)}e.push(Qi(r,n,r.featureIds.value.length))}return e}function Qi(t,e,r){let n=Og(t,e,r),s=oB(t,e,r),i=iB(t,e,r);return{type:"Feature",geometry:n,properties:s,...i}}function iB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0;return t.fields&&t.fields[t.featureIds.value[e]]}function oB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=arguments.length>2?arguments[2]:void 0,n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let s in t.numericProps)n[s]=t.numericProps[s].value[e];return n}function Pg(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.polygonIndices.value.filter(c=>c>=e&&c<=r),i=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(s.length>2)){let c=[];for(let l=0;l<i.length-1;l++){let h=i[l],f=i[l+1],u=$i(n,h,f);c.push(u)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<s.length-1;c++){let l=s[c],h=s[c+1],f=Pg(t,l,h).coordinates;a.push(f)}return{type:"MultiPolygon",coordinates:a}}function aB(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1/0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1/0,{positions:n}=t,s=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(s.length>2))return{type:"LineString",coordinates:$i(n,s[0],s[1])};let o=[];for(let a=0;a<s.length-1;a++){let c=$i(n,s[a],s[a+1]);o.push(c)}return{type:"MultiLineString",coordinates:o}}function cB(t,e,r){let{positions:n}=t,s=$i(n,e,r);return s.length>1?{type:"MultiPoint",coordinates:s}:{type:"Point",coordinates:s[0]}}function $i(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let s=e;s<r;s++){let i=Array();for(let o=s*t.size;o<(s+1)*t.size;o++)i.push(Number(t.value[o]));n.push(i)}return n}var El=v(Vg(),1);function Xg(t){let e=t.length;if(e<=1)return[t];let r=[],n,s;for(let i=0;i<e;i++){let o=MB(t[i]);o!==0&&(s===void 0&&(s=o<0),s===o<0?(n&&r.push(n),n=[t[i]]):n&&n.push(t[i]))}return n&&r.push(n),r}function MB(t){let e=0;for(let r=0,n=t.length-1,s,i;r<t.length;n=r++)s=t[r],i=t[n],e+=(i[0]-s[0])*(s[1]+i[1]);return e}function Wg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?yB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function yB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var hr=class{static get types(){return["Unknown","Point","LineString","Polygon"]}constructor(e,r,n,s,i){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,e.readFields(Wg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=[],c;for(;e.pos<r;){if(s<=0){let l=e.readVarint();n=l&7,s=l>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([i,o]);else if(n===7)c&&c.push(c[0].slice());else throw new Error(`unknown command ${n}`)}return c&&a.push(c),a}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,s=0,i=0,o=0,a=1/0,c=-1/0,l=1/0,h=-1/0;for(;e.pos<r;){if(s<=0){let f=e.readVarint();n=f&7,s=f>>3}if(s--,n===1||n===2)i+=e.readSVarint(),o+=e.readSVarint(),i<a&&(a=i),i>c&&(c=i),o<l&&(l=o),o>h&&(h=o);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,h]}_toGeoJSON(e){let r=this.loadGeometry(),n=hr.types[this.type],s,i;switch(this.type){case 1:let a=[];for(s=0;s<r.length;s++)a[s]=r[s][0];r=a,e(r,this);break;case 2:for(s=0;s<r.length;s++)e(r[s],this);break;case 3:for(r=Xg(r),s=0;s<r.length;s++)for(i=0;i<r[s].length;i++)e(r[s][i],this);break}r.length===1?r=r[0]:n=`Multi${n}`;let o={type:"Feature",geometry:{type:n,coordinates:r},properties:this.properties};return this.id!==null&&(o.id=this.id),o}toGeoJSON(e){if(typeof e=="function")return this._toGeoJSON(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;function c(l){for(let h=0;h<l.length;h++){let f=l[h];f[0]=(f[0]+o)*360/i-180;let u=180-(f[1]+a)*360/i;f[1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}return this._toGeoJSON(c)}};var Yn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(IB,this,r),this.length=this._features.length}feature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new hr(this._pbf,r,this.extent,this._keys,this._values)}};function IB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(FB(r)))}function FB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var qn=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(NB,{},r)}};function NB(t,e,r){if(t===3&&r){let n=new Yn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function zg(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[cr(t.data)]],indices:[t.indices]};let n=[],s=[],i=[],o=[],a,c=0;for(let l,h=0,f;h<e;h++){f=t.indices[h]-c,l=t.indices[h+1]-c||t.data.length;let u=t.data.slice(f,l),d=cr(u);if(d===0){let p=t.data.slice(0,f),_=t.data.slice(l);t.data=p.concat(_),c+=l-f;continue}a===void 0&&(a=d<0),a===d<0?(o.length&&(n.push(i),s.push(o)),o=[f],i=[d]):(i.push(d),o.push(f))}return i&&n.push(i),o.length&&s.push(o),{type:r,areas:n,indices:s,data:t.data}}function kg(t,e,r,n){for(let s=0,i=t.length;s<i;s+=2){t[s]=(t[s]+e)*360/n-180;let o=180-(t[s+1]+r)*360/n;t[s+1]=360/Math.PI*Math.atan(Math.exp(o*Math.PI/180))-90}}function Gg(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?OB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function OB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],s=e._values[t.readVarint()];e.properties[n]=s}}var Kg,fr,Al,no,_l,ml,jn;var Zn=class{constructor(e,r,n,s,i,o){this.properties=void 0,this.extent=void 0,this.type=void 0,this.id=void 0,this._pbf=void 0,this._geometry=void 0,this._keys=void 0,this._values=void 0,this._geometryInfo=void 0,this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=s,this._values=i,this._geometryInfo=o,e.readFields(Gg,this,r)}loadGeometry(){let e=this._pbf;e.pos=this._geometry,Kg=e.readVarint()+e.pos,fr=1,no=0,_l=0,ml=0,jn=0;let r=[],n=[];for(;e.pos<Kg;)if(no<=0&&(Al=e.readVarint(),fr=Al&7,no=Al>>3),no--,fr===1||fr===2)_l+=e.readSVarint(),ml+=e.readSVarint(),fr===1&&r.push(jn),n.push(_l,ml),jn+=2;else if(fr===7){if(jn>0){let s=r[r.length-1];n.push(n[s],n[s+1]),jn+=2}}else throw new Error(`unknown command ${fr}`);return{data:n,indices:r}}_toBinaryCoordinates(e){let r=this.loadGeometry(),n;e(r.data,this);let s=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r.indices.length,n={type:"Point",...r};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r.indices.length,this._geometryInfo.linePositionsCount+=r.data.length/s,n={type:"LineString",...r};break;case 3:n=zg(r),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let o of n.indices)this._geometryInfo.polygonRingsCount+=o.length;this._geometryInfo.polygonPositionsCount+=n.data.length/s;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let i={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(i.id=this.id),i}toBinaryCoordinates(e){if(typeof e=="function")return this._toBinaryCoordinates(e);let{x:r,y:n,z:s}=e,i=this.extent*Math.pow(2,s),o=this.extent*r,a=this.extent*n;return this._toBinaryCoordinates(c=>kg(c,o,a,i))}};var Qn=class{constructor(e,r){this.version=void 0,this.name=void 0,this.extent=void 0,this.length=void 0,this._pbf=void 0,this._keys=void 0,this._values=void 0,this._features=void 0,this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(bB,this,r),this.length=this._features.length}feature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new Zn(this._pbf,n,this.extent,this._keys,this._values,r)}};function bB(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(PB(r)))}function PB(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var $n=class{constructor(e,r){this.layers=void 0,this.layers=e.readFields(DB,{},r)}};function DB(t,e,r){if(t===3&&r){let n=new Qn(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function so(t,e){var r,n;let s=vB(e),i=(e==null||(r=e.gis)===null||r===void 0?void 0:r.format)||(e==null||(n=e.mvt)===null||n===void 0?void 0:n.shape)||e?.shape;switch(i){case"columnar-table":return{shape:"columnar-table",data:Tl(t,s)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:Jg(t,s)};case"geojson":return Jg(t,s);case"binary-geometry":return Tl(t,s);case"binary":return Tl(t,s);default:throw new Error(i||"undefined shape")}}function Tl(t,e){let[r,n]=wB(t,e),s=ul(r,n);return s.byteLength=t.byteLength,s}function wB(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let s=new $n(new El.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(s.layers)).forEach(o=>{let a=s.layers[o];if(a)for(let c=0;c<a.length;c++){let l=a.feature(c,n),h=LB(l,e,o);r.push(h)}}),[r,n]}function Jg(t,e){if(t.byteLength<=0)return[];let r=[],n=new qn(new El.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(i=>{let o=n.layers[i];if(o)for(let a=0;a<o.length;a++){let c=o.feature(a),l=UB(c,e,i);r.push(l)}}),r}function vB(t){var e;if(!(t!=null&&t.mvt))throw new Error("mvt options required");let r=((e=t.mvt)===null||e===void 0?void 0:e.coordinates)==="wgs84",{tileIndex:n}=t.mvt,s=n&&Number.isFinite(n.x)&&Number.isFinite(n.y)&&Number.isFinite(n.z);if(r&&!s)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.mvt}function UB(t,e,r){let n=t.toGeoJSON(e.coordinates==="wgs84"?e.tileIndex:HB);return e.layerProperty&&(n.properties[e.layerProperty]=r),n}function LB(t,e,r){let n=t.toBinaryCoordinates(e.coordinates==="wgs84"?e.tileIndex:VB);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}function HB(t,e){let{extent:r}=e;for(let n=0;n<t.length;n++){let s=t[n];s[0]/=r,s[1]/=r}}function VB(t,e){let{extent:r}=e;for(let n=0,s=t.length;n<s;++n)t[n]/=r}var XB="4.1.0",io={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:XB,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}},WB={...io,parse:async(t,e)=>so(t,e),parseSync:so,binary:!0};var zB={Point:Yg,MultiPoint:kB,LineString:qg,MultiLineString:GB,Polygon:jg,MultiPolygon:KB};function Yg([t,e],[r,n],s){let i=Re(r[0],n[0],t),o=Re(r[1],n[1],e);return s.unprojectFlat([i,o])}function Rl(t,e,r){return t.map(n=>Yg(n,e,r))}function kB(t,e,r){return Rl(t,e,r)}function qg(t,e,r){return Rl(t,e,r)}function GB(t,e,r){return t.map(n=>qg(n,e,r))}function jg(t,e,r){return t.map(n=>Rl(n,e,r))}function KB(t,e,r){return t.map(n=>jg(n,e,r))}function Zg(t,e,r){let n=r.projectFlat([e.west,e.north]),s=r.projectFlat([e.east,e.south]),i=[n,s];return{...t,coordinates:zB[t.type](t.coordinates,i,r)}}var JB=["points","lines","polygons"];function xl(t,e,r,n){for(let s of JB){let i=t[s]&&YB(t[s],e,r,n);if(i>=0)return i}return-1}function YB(t,e,r,n){let s=t.featureIds.value;if(!s.length)return-1;let i=0,o=s[s.length-1]+1;if(n){let c=qB(t,n);if(c)i=c[0],o=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,h)=>l===r&&s[h]>=i&&s[h]<o);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=Qg(t.properties,c=>c[e]===r,i,o):t.fields&&(a=Qg(t.fields,c=>c.id===r,i,o));return a>=0?jB(t,a):-1}function qB(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let s=0;s<n.length;s++){let{layerName:i}=n[s];i&&(r[i]?r[i][1]=s:r[i]=[s,s])}t.__layers=r}return t.__layers[e]}function jB(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,s=t.globalFeatureIds.value;for(let i=0;i<n.length;i++)r[n[i]]=s[i];t.__ids=r}return t.__ids[e]}function Qg(t,e,r,n){for(let s=r;s<n;s++)if(e(t[s],s))return s;return-1}var Sl=512,ZB={...Bl.GeoJsonLayer.defaultProps,data:Ie,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[io],binary:!0},oo=class extends te{constructor(...e){super(...e)}initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return Boolean(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:s}){s.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:s}),this._setWGS84PropertyForTiles());let{highlightColor:i}=e;i!==r.highlightColor&&Array.isArray(i)&&this.setState({highlightColor:i})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Na(e)){let{onDataLoad:n,fetch:s}=this.props;this.setState({data:null,tileJSON:null});try{r=await s(e,{propName:"data",layer:this,loaders:[]})}catch(i){this.raiseError(i,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:s}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(s)||r.maxzoom<s)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:s,signal:i}=e,o=$t(r,e);if(!o)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,mimeType:"application/x-protobuf",mvt:{...a?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:s},gis:n?{format:"binary"}:{}},c(o,{propName:"data",layer:this,loadOptions:a,signal:i})}renderSubLayers(e){let{x:r,y:n,z:s}=e.tile.index,i=Math.pow(2,s),o=Sl/i,a=-o,c=Sl*r/i,l=Sl*(1-n/i),h=new D().scale([o,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=h,e.coordinateOrigin=[c,l,0],e.coordinateSystem=ao.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new r0.ClipExtension]);let f=super.renderSubLayers(e);return this.state.binary&&!(f instanceof Bl.GeoJsonLayer)&&ao.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),f}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:s}=this.state,i=e.object,o=null,a=null;i&&(o=Cl(i,r),a=$g(i));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==o||s!==a)&&this.setState({highlightColor:c,hoveredFeatureId:o,hoveredFeatureLayerName:a})}getPickingInfo(e){let r=super.getPickingInfo(e),n=Boolean(this.context.viewport.resolution);if(this.state.binary&&r.index!==-1){let{data:s}=e.sourceLayer.props;r.object=to(s,{globalFeatureId:r.index})}return r.object&&!n&&(r.object=e0(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:s}=this.state,{uniqueIdProperty:i,highlightedFeatureId:o}=this.props,a=e.content,c=t0(o);if(!(t0(r)||c))return-1;let h=c?o:r;return Array.isArray(a)?a.findIndex(f=>{let u=Cl(f,i)===h,d=c||$g(f)===n;return u&&d}):a&&s?xl(a,i,h,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,s=n.width,i=n.height,o=n.x,a=n.y,c=[this.id];return r.pickObjects({x:o,y:a,width:s,height:i,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,s=[];for(let i of r){let o=Cl(i.object,this.props.uniqueIdProperty);o===void 0?s.push(i.object):n.has(o)||(n.add(o),s.push(i.object))}return s}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:s}=n;if(n._contentWGS84===void 0&&Oa(s)){let i=this.state.binary?to(n.content):n.content;n._contentWGS84=i.map(o=>e0(o,s,this.context.viewport))}return n._contentWGS84}})})}},ts=oo;(()=>{oo.layerName="MVTLayer"})(),(()=>{oo.defaultProps=ZB})();function Cl(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function $g(t){return t.properties?.layerName||null}function t0(t){return t!=null&&t!==""}function e0(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>Zg(t.geometry,e,r).coordinates}),n}var n0="0123456789bcdefghjkmnpqrstuvwxyz",s0={};for(let t=0;t<n0.length;t++)s0[n0.charAt(t)]=t;var QB=-90,$B=90,tM=-180,eM=180;function rM(t){let e=!0,r=$B,n=QB,s=eM,i=tM,o,a=0;for(let c=0,l=t.length;c<l;c++){let h=t[c].toLowerCase();a=s0[h];for(let f=4;f>=0;f--){let u=a>>f&1;e?(o=(s+i)/2,u===1?i=o:s=o):(o=(r+n)/2,u===1?n=o:r=o),e=!e}}return[n,i,r,s]}function i0(t){let[e,r,n,s]=rM(t);return[s,n,s,e,r,e,r,n,s,n]}var nM={getGeohash:{type:"accessor",value:t=>t.geohash}},co=class extends It{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,s)=>i0(r(n,s))}}},es=co;(()=>{co.layerName="GeohashLayer"})(),(()=>{co.defaultProps=nM})();return d0(rs);})();
638
638
  return __exports__;
639
639
  });