@deck.gl/geo-layers 9.3.4 → 9.3.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.
package/dist.min.js CHANGED
@@ -4,15 +4,15 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['deck'] = factory();
6
6
  else root['deck'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var N1=Object.create;var bn=Object.defineProperty;var O1=Object.getOwnPropertyDescriptor;var U1=Object.getOwnPropertyNames;var D1=Object.getPrototypeOf,G1=Object.prototype.hasOwnProperty;var V1=(t,e,r)=>e in t?bn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Ff=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var We=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),be=(t,e)=>{for(var r in e)bn(t,r,{get:e[r],enumerable:!0})},Ho=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of U1(e))!G1.call(t,o)&&o!==r&&bn(t,o,{get:()=>e[o],enumerable:!(n=O1(e,o))||n.enumerable});return t},Et=(t,e,r)=>(Ho(t,e,"default"),r&&Ho(r,e,"default")),U=(t,e,r)=>(r=t!=null?N1(D1(t)):{},Ho(e||!t||!t.__esModule?bn(r,"default",{value:t,enumerable:!0}):r,t)),H1=t=>Ho(bn({},"__esModule",{value:!0}),t);var Jt=(t,e,r)=>(V1(t,typeof e!="symbol"?e+"":e,r),r);var Ke=We((IR,Pf)=>{Pf.exports=globalThis.deck});var Xe=We((RR,Of)=>{Of.exports=globalThis.deck});var is=We((YR,th)=>{th.exports=globalThis.h3||{}});var er=We((FL,tp)=>{tp.exports=globalThis.loaders});var Lc=We((sd,to)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Ff=="function"&&typeof to=="object"&&to&&to.exports?to.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(sd,function(){"use strict";function t(T,A,B){this.low=T|0,this.high=A|0,this.unsigned=!!B}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(T){return(T&&T.__isLong__)===!0}t.isLong=e;var r={},n={};function o(T,A){var B,L,F;return A?(T>>>=0,(F=0<=T&&T<256)&&(L=n[T],L)?L:(B=i(T,(T|0)<0?-1:0,!0),F&&(n[T]=B),B)):(T|=0,(F=-128<=T&&T<128)&&(L=r[T],L)?L:(B=i(T,T<0?-1:0,!1),F&&(r[T]=B),B))}t.fromInt=o;function s(T,A){if(isNaN(T)||!isFinite(T))return A?y:m;if(A){if(T<0)return y;if(T>=p)return _}else{if(T<=-d)return v;if(T+1>=d)return C}return T<0?s(-T,A).neg():i(T%h|0,T/h|0,A)}t.fromNumber=s;function i(T,A,B){return new t(T,A,B)}t.fromBits=i;var a=Math.pow;function c(T,A,B){if(T.length===0)throw Error("empty string");if(T==="NaN"||T==="Infinity"||T==="+Infinity"||T==="-Infinity")return m;if(typeof A=="number"?(B=A,A=!1):A=!!A,B=B||10,B<2||36<B)throw RangeError("radix");var L;if((L=T.indexOf("-"))>0)throw Error("interior hyphen");if(L===0)return c(T.substring(1),A,B).neg();for(var F=s(a(B,8)),w=m,D=0;D<T.length;D+=8){var W=Math.min(8,T.length-D),z=parseInt(T.substring(D,D+W),B);if(W<8){var re=s(a(B,W));w=w.mul(re).add(s(z))}else w=w.mul(F),w=w.add(s(z))}return w.unsigned=A,w}t.fromString=c;function l(T){return T instanceof t?T:typeof T=="number"?s(T):typeof T=="string"?c(T):i(T.low,T.high,T.unsigned)}t.fromValue=l;var f=1<<16,u=1<<24,h=f*f,p=h*h,d=p/2,g=o(u),m=o(0);t.ZERO=m;var y=o(0,!0);t.UZERO=y;var b=o(1);t.ONE=b;var M=o(1,!0);t.UONE=M;var S=o(-1);t.NEG_ONE=S;var C=i(-1,2147483647,!1);t.MAX_VALUE=C;var _=i(-1,-1,!0);t.MAX_UNSIGNED_VALUE=_;var v=i(0,-2147483648,!1);t.MIN_VALUE=v;var E=t.prototype;return E.toInt=function(){return this.unsigned?this.low>>>0:this.low},E.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},E.toString=function(A){if(A=A||10,A<2||36<A)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(v)){var B=s(A),L=this.div(B),F=L.mul(B).sub(this);return L.toString(A)+F.toInt().toString(A)}else return"-"+this.neg().toString(A);for(var w=s(a(A,6),this.unsigned),D=this,W="";;){var z=D.div(w),re=D.sub(z.mul(w)).toInt()>>>0,Y=re.toString(A);if(D=z,D.isZero())return Y+W;for(;Y.length<6;)Y="0"+Y;W=""+Y+W}},E.getHighBits=function(){return this.high},E.getHighBitsUnsigned=function(){return this.high>>>0},E.getLowBits=function(){return this.low},E.getLowBitsUnsigned=function(){return this.low>>>0},E.getNumBitsAbs=function(){if(this.isNegative())return this.eq(v)?64:this.neg().getNumBitsAbs();for(var A=this.high!=0?this.high:this.low,B=31;B>0&&!(A&1<<B);B--);return this.high!=0?B+33:B+1},E.isZero=function(){return this.high===0&&this.low===0},E.isNegative=function(){return!this.unsigned&&this.high<0},E.isPositive=function(){return this.unsigned||this.high>=0},E.isOdd=function(){return(this.low&1)===1},E.isEven=function(){return(this.low&1)===0},E.equals=function(A){return e(A)||(A=l(A)),this.unsigned!==A.unsigned&&this.high>>>31===1&&A.high>>>31===1?!1:this.high===A.high&&this.low===A.low},E.eq=E.equals,E.notEquals=function(A){return!this.eq(A)},E.neq=E.notEquals,E.lessThan=function(A){return this.comp(A)<0},E.lt=E.lessThan,E.lessThanOrEqual=function(A){return this.comp(A)<=0},E.lte=E.lessThanOrEqual,E.greaterThan=function(A){return this.comp(A)>0},E.gt=E.greaterThan,E.greaterThanOrEqual=function(A){return this.comp(A)>=0},E.gte=E.greaterThanOrEqual,E.compare=function(A){if(e(A)||(A=l(A)),this.eq(A))return 0;var B=this.isNegative(),L=A.isNegative();return B&&!L?-1:!B&&L?1:this.unsigned?A.high>>>0>this.high>>>0||A.high===this.high&&A.low>>>0>this.low>>>0?-1:1:this.sub(A).isNegative()?-1:1},E.comp=E.compare,E.negate=function(){return!this.unsigned&&this.eq(v)?v:this.not().add(b)},E.neg=E.negate,E.add=function(A){e(A)||(A=l(A));var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,D=A.high>>>16,W=A.high&65535,z=A.low>>>16,re=A.low&65535,Y=0,X=0,ee=0,Ie=0;return Ie+=w+re,ee+=Ie>>>16,Ie&=65535,ee+=F+z,X+=ee>>>16,ee&=65535,X+=L+W,Y+=X>>>16,X&=65535,Y+=B+D,Y&=65535,i(ee<<16|Ie,Y<<16|X,this.unsigned)},E.subtract=function(A){return e(A)||(A=l(A)),this.add(A.neg())},E.sub=E.subtract,E.multiply=function(A){if(this.isZero()||(e(A)||(A=l(A)),A.isZero()))return m;if(this.eq(v))return A.isOdd()?v:m;if(A.eq(v))return this.isOdd()?v:m;if(this.isNegative())return A.isNegative()?this.neg().mul(A.neg()):this.neg().mul(A).neg();if(A.isNegative())return this.mul(A.neg()).neg();if(this.lt(g)&&A.lt(g))return s(this.toNumber()*A.toNumber(),this.unsigned);var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,D=A.high>>>16,W=A.high&65535,z=A.low>>>16,re=A.low&65535,Y=0,X=0,ee=0,Ie=0;return Ie+=w*re,ee+=Ie>>>16,Ie&=65535,ee+=F*re,X+=ee>>>16,ee&=65535,ee+=w*z,X+=ee>>>16,ee&=65535,X+=L*re,Y+=X>>>16,X&=65535,X+=F*z,Y+=X>>>16,X&=65535,X+=w*W,Y+=X>>>16,X&=65535,Y+=B*re+L*z+F*W+w*D,Y&=65535,i(ee<<16|Ie,Y<<16|X,this.unsigned)},E.mul=E.multiply,E.divide=function(A){if(e(A)||(A=l(A)),A.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?y:m;var B,L,F;if(this.unsigned){if(A.unsigned||(A=A.toUnsigned()),A.gt(this))return y;if(A.gt(this.shru(1)))return M;F=y}else{if(this.eq(v)){if(A.eq(b)||A.eq(S))return v;if(A.eq(v))return b;var w=this.shr(1);return B=w.div(A).shl(1),B.eq(m)?A.isNegative()?b:S:(L=this.sub(A.mul(B)),F=B.add(L.div(A)),F)}else if(A.eq(v))return this.unsigned?y:m;if(this.isNegative())return A.isNegative()?this.neg().div(A.neg()):this.neg().div(A).neg();if(A.isNegative())return this.div(A.neg()).neg();F=m}for(L=this;L.gte(A);){B=Math.max(1,Math.floor(L.toNumber()/A.toNumber()));for(var D=Math.ceil(Math.log(B)/Math.LN2),W=D<=48?1:a(2,D-48),z=s(B),re=z.mul(A);re.isNegative()||re.gt(L);)B-=W,z=s(B,this.unsigned),re=z.mul(A);z.isZero()&&(z=b),F=F.add(z),L=L.sub(re)}return F},E.div=E.divide,E.modulo=function(A){return e(A)||(A=l(A)),this.sub(this.div(A).mul(A))},E.mod=E.modulo,E.not=function(){return i(~this.low,~this.high,this.unsigned)},E.and=function(A){return e(A)||(A=l(A)),i(this.low&A.low,this.high&A.high,this.unsigned)},E.or=function(A){return e(A)||(A=l(A)),i(this.low|A.low,this.high|A.high,this.unsigned)},E.xor=function(A){return e(A)||(A=l(A)),i(this.low^A.low,this.high^A.high,this.unsigned)},E.shiftLeft=function(A){return e(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?i(this.low<<A,this.high<<A|this.low>>>32-A,this.unsigned):i(0,this.low<<A-32,this.unsigned)},E.shl=E.shiftLeft,E.shiftRight=function(A){return e(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?i(this.low>>>A|this.high<<32-A,this.high>>A,this.unsigned):i(this.high>>A-32,this.high>=0?0:-1,this.unsigned)},E.shr=E.shiftRight,E.shiftRightUnsigned=function(A){if(e(A)&&(A=A.toInt()),A&=63,A===0)return this;var B=this.high;if(A<32){var L=this.low;return i(L>>>A|B<<32-A,B>>>A,this.unsigned)}else return A===32?i(B,0,this.unsigned):i(B>>>A-32,0,this.unsigned)},E.shru=E.shiftRightUnsigned,E.toSigned=function(){return this.unsigned?i(this.low,this.high,!1):this},E.toUnsigned=function(){return this.unsigned?this:i(this.low,this.high,!0)},E.toBytes=function(T){return T?this.toBytesLE():this.toBytesBE()},E.toBytesLE=function(){var T=this.high,A=this.low;return[A&255,A>>>8&255,A>>>16&255,A>>>24&255,T&255,T>>>8&255,T>>>16&255,T>>>24&255]},E.toBytesBE=function(){var T=this.high,A=this.low;return[T>>>24&255,T>>>16&255,T>>>8&255,T&255,A>>>24&255,A>>>16&255,A>>>8&255,A&255]},t})});var jc=We((OG,kd)=>{kd.exports=globalThis.luma});var Ys=We((UG,jd)=>{jd.exports=globalThis.deck});var Yc=We((mV,nm)=>{nm.exports=globalThis.luma});var Q0=We((i5,Y0)=>{Y0.exports=globalThis.deck});var a1=We(Tf=>{Tf.read=function(t,e,r,n,o){var s,i,a=o*8-n-1,c=(1<<a)-1,l=c>>1,f=-7,u=r?o-1:0,h=r?-1:1,p=t[e+u];for(u+=h,s=p&(1<<-f)-1,p>>=-f,f+=a;f>0;s=s*256+t[e+u],u+=h,f-=8);for(i=s&(1<<-f)-1,s>>=-f,f+=n;f>0;i=i*256+t[e+u],u+=h,f-=8);if(s===0)s=1-l;else{if(s===c)return i?NaN:(p?-1:1)*(1/0);i=i+Math.pow(2,n),s=s-l}return(p?-1:1)*i*Math.pow(2,s-n)};Tf.write=function(t,e,r,n,o,s){var i,a,c,l=s*8-o-1,f=(1<<l)-1,u=f>>1,h=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,d=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,i=f):(i=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-i))<1&&(i--,c*=2),i+u>=1?e+=h/c:e+=h*Math.pow(2,1-u),e*c>=2&&(i++,c/=2),i+u>=f?(a=0,i=f):i+u>=1?(a=(e*c-1)*Math.pow(2,o),i=i+u):(a=e*Math.pow(2,u-1)*Math.pow(2,o),i=0));o>=8;t[r+p]=a&255,p+=d,a/=256,o-=8);for(i=i<<o|a,l+=o;l>0;t[r+p]=i&255,p+=d,i/=256,l-=8);t[r+p-d]|=g*128}});var p1=We((X5,h1)=>{"use strict";h1.exports=J;var Xi=a1();function J(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}J.Varint=0;J.Fixed64=1;J.Bytes=2;J.Fixed32=5;var Mf=(1<<16)*(1<<16),c1=1/Mf,Uv=12,u1=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");J.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),o=n>>3,s=this.pos;this.type=n&7,t(o,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=Yi(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=f1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=Yi(this.buf,this.pos)+Yi(this.buf,this.pos+4)*Mf;return this.pos+=8,t},readSFixed64:function(){var t=Yi(this.buf,this.pos)+f1(this.buf,this.pos+4)*Mf;return this.pos+=8,t},readFloat:function(){var t=Xi.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Xi.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,Dv(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>=Uv&&u1?Zv(this.buf,e,t):Qv(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!==J.Bytes)return t.push(this.readVarint(e));var r=St(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==J.Bytes)return t.push(this.readSVarint());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==J.Bytes)return t.push(this.readBoolean());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==J.Bytes)return t.push(this.readFloat());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==J.Bytes)return t.push(this.readDouble());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===J.Varint)for(;this.buf[this.pos++]>127;);else if(e===J.Bytes)this.pos=this.readVarint()+this.pos;else if(e===J.Fixed32)this.pos+=4;else if(e===J.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),yn(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),yn(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),yn(this.buf,t&-1,this.pos),yn(this.buf,Math.floor(t*c1),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),yn(this.buf,t&-1,this.pos),yn(this.buf,Math.floor(t*c1),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){Gv(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=$v(this.buf,t,this.pos);var r=this.pos-e;r>=128&&l1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),Xi.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),Xi.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&&l1(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,J.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,zv,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,kv,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,Jv,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,jv,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,qv,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Wv,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Kv,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Xv,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Yv,e)},writeBytesField:function(t,e){this.writeTag(t,J.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,J.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,J.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,J.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function Dv(t,e,r){var n=r.buf,o,s;if(s=n[r.pos++],o=(s&112)>>4,s<128||(s=n[r.pos++],o|=(s&127)<<3,s<128)||(s=n[r.pos++],o|=(s&127)<<10,s<128)||(s=n[r.pos++],o|=(s&127)<<17,s<128)||(s=n[r.pos++],o|=(s&127)<<24,s<128)||(s=n[r.pos++],o|=(s&1)<<31,s<128))return xn(t,o,e);throw new Error("Expected varint not more than 10 bytes")}function St(t){return t.type===J.Bytes?t.readVarint()+t.pos:t.pos+1}function xn(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function Gv(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),Vv(r,n,e),Hv(n,e)}function Vv(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 Hv(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 l1(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 o=r.pos-1;o>=t;o--)r.buf[o+n]=r.buf[o]}function zv(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function kv(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function jv(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function qv(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function Jv(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function Wv(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function Kv(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function Xv(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function Yv(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function Yi(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function yn(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function f1(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function Qv(t,e,r){for(var n="",o=e;o<r;){var s=t[o],i=null,a=s>239?4:s>223?3:s>191?2:1;if(o+a>r)break;var c,l,f;a===1?s<128&&(i=s):a===2?(c=t[o+1],(c&192)===128&&(i=(s&31)<<6|c&63,i<=127&&(i=null))):a===3?(c=t[o+1],l=t[o+2],(c&192)===128&&(l&192)===128&&(i=(s&15)<<12|(c&63)<<6|l&63,(i<=2047||i>=55296&&i<=57343)&&(i=null))):a===4&&(c=t[o+1],l=t[o+2],f=t[o+3],(c&192)===128&&(l&192)===128&&(f&192)===128&&(i=(s&15)<<18|(c&63)<<12|(l&63)<<6|f&63,(i<=65535||i>=1114112)&&(i=null))),i===null?(i=65533,a=1):i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),n+=String.fromCharCode(i),o+=a}return n}function Zv(t,e,r){return u1.decode(t.subarray(e,r))}function $v(t,e,r){for(var n=0,o,s;n<e.length;n++){if(o=e.charCodeAt(n),o>55295&&o<57344)if(s)if(o<56320){t[r++]=239,t[r++]=191,t[r++]=189,s=o;continue}else o=s-55296<<10|o-56320|65536,s=null;else{o>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):s=o;continue}else s&&(t[r++]=239,t[r++]=191,t[r++]=189,s=null);o<128?t[r++]=o:(o<2048?t[r++]=o>>6|192:(o<65536?t[r++]=o>>12|224:(t[r++]=o>>18|240,t[r++]=o>>12&63|128),t[r++]=o>>6&63|128),t[r++]=o&63|128)}return r}});var Vo={};be(Vo,{A5Layer:()=>ep,GeohashLayer:()=>P1,GreatCircleLayer:()=>od,H3ClusterLayer:()=>zd,H3HexagonLayer:()=>Xs,MVTLayer:()=>R1,QuadkeyLayer:()=>xd,S2Layer:()=>gd,TerrainLayer:()=>X0,Tile3DLayer:()=>H0,TileLayer:()=>pr,TripsLayer:()=>Gd,_GeoCellLayer:()=>De,_Tile2DHeader:()=>ur,_Tileset2D:()=>hr,_WMSLayer:()=>Xr,_getURLFromTemplate:()=>ft});var nt={},Nf=U(Ke(),1);Et(nt,U(Ke(),1));if(!Nf.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");Et(Vo,nt);var Uf=U(Xe(),1),ea=U(Ke(),1),z1={...ea.PolygonLayer.defaultProps},Tn=class extends Uf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:o,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,getElevation:p,getFillColor:d,getLineColor:g,getLineWidth:m}=this.props,{updateTriggers:y,material:b,transitions:M}=this.props,S=this.getSubLayerClass("cell",ea.PolygonLayer),{updateTriggers:C,..._}=this.indexToBounds()||{};return new S({filled:o,wireframe:n,extruded:r,elevationScale:e,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,material:b,transitions:M,getElevation:p,getFillColor:d,getLineColor:g,getLineWidth:m},this.getSubLayerProps({id:"cell",updateTriggers:y&&{...C,getElevation:y.getElevation,getFillColor:y.getFillColor,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}),_)}};Tn.layerName="GeoCellLayer";Tn.defaultProps=z1;var De=Tn;var k1=Object.defineProperty,_n=(t,e)=>{for(var r in e)k1(t,r,{get:e[r],enumerable:!0})},Ae={};_n(Ae,{ARRAY_TYPE:()=>oe,EPSILON:()=>ge,RANDOM:()=>Wt,equals:()=>W1,setMatrixArrayType:()=>j1,toRadian:()=>J1});var ge=1e-6,oe=typeof Float32Array<"u"?Float32Array:Array,Wt=Math.random;function j1(t){oe=t}var q1=Math.PI/180;function J1(t){return t*q1}function W1(t,e){return Math.abs(t-e)<=ge*Math.max(1,Math.abs(t),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var Kt={};_n(Kt,{LDU:()=>fA,add:()=>uA,adjoint:()=>rA,clone:()=>X1,copy:()=>Y1,create:()=>K1,determinant:()=>nA,equals:()=>pA,exactEquals:()=>hA,frob:()=>lA,fromRotation:()=>iA,fromScaling:()=>aA,fromValues:()=>Z1,identity:()=>Q1,invert:()=>tA,mul:()=>gA,multiply:()=>su,multiplyScalar:()=>dA,multiplyScalarAndAdd:()=>mA,rotate:()=>oA,scale:()=>sA,set:()=>$1,str:()=>cA,sub:()=>AA,subtract:()=>iu,transpose:()=>eA});function K1(){var t=new oe(4);return oe!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t}function X1(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Y1(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Q1(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t}function Z1(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function $1(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function eA(t,e){if(t===e){var r=e[1];t[1]=e[2],t[2]=r}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t}function tA(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*s-o*n;return i?(i=1/i,t[0]=s*i,t[1]=-n*i,t[2]=-o*i,t[3]=r*i,t):null}function rA(t,e){var r=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=r,t}function nA(t){return t[0]*t[3]-t[2]*t[1]}function su(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*a+s*c,t[1]=o*a+i*c,t[2]=n*l+s*f,t[3]=o*l+i*f,t}function oA(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+s*a,t[1]=o*c+i*a,t[2]=n*-a+s*c,t[3]=o*-a+i*c,t}function sA(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1];return t[0]=n*a,t[1]=o*a,t[2]=s*c,t[3]=i*c,t}function iA(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t}function aA(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t}function cA(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}function lA(t){return Math.hypot(t[0],t[1],t[2],t[3])}function fA(t,e,r,n){return t[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-t[2]*r[1],[t,e,r]}function uA(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 iu(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 hA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function pA(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}function dA(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 mA(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}var gA=su,AA=iu;function xA(){var t=new oe(9);return oe!=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}var oa={};_n(oa,{add:()=>wx,calculateW:()=>bx,clone:()=>Bx,conjugate:()=>Ex,copy:()=>vx,create:()=>ia,dot:()=>Mu,equals:()=>Ux,exactEquals:()=>Ox,exp:()=>xu,fromEuler:()=>_x,fromMat3:()=>bu,fromValues:()=>Ix,getAngle:()=>gx,getAxisAngle:()=>mx,identity:()=>dx,invert:()=>Sx,len:()=>Px,length:()=>Su,lerp:()=>Fx,ln:()=>yu,mul:()=>Lx,multiply:()=>Au,normalize:()=>ga,pow:()=>Tx,random:()=>Mx,rotateX:()=>Ax,rotateY:()=>xx,rotateZ:()=>yx,rotationTo:()=>Dx,scale:()=>Tu,set:()=>Rx,setAxes:()=>Vx,setAxisAngle:()=>gu,slerp:()=>Qo,sqlerp:()=>Gx,sqrLen:()=>Nx,squaredLength:()=>Eu,str:()=>Cx});var R={};_n(R,{add:()=>MA,angle:()=>zA,bezier:()=>PA,ceil:()=>SA,clone:()=>yA,copy:()=>bA,create:()=>da,cross:()=>Yo,dist:()=>YA,distance:()=>uu,div:()=>XA,divide:()=>fu,dot:()=>ma,equals:()=>JA,exactEquals:()=>qA,floor:()=>EA,forEach:()=>$A,fromValues:()=>sa,hermite:()=>FA,inverse:()=>wA,len:()=>mu,length:()=>au,lerp:()=>LA,max:()=>CA,min:()=>_A,mul:()=>KA,multiply:()=>lu,negate:()=>RA,normalize:()=>du,random:()=>NA,rotateX:()=>GA,rotateY:()=>VA,rotateZ:()=>HA,round:()=>BA,scale:()=>IA,scaleAndAdd:()=>vA,set:()=>TA,sqrDist:()=>QA,sqrLen:()=>ZA,squaredDistance:()=>hu,squaredLength:()=>pu,str:()=>jA,sub:()=>WA,subtract:()=>cu,transformMat3:()=>UA,transformMat4:()=>OA,transformQuat:()=>DA,zero:()=>kA});function da(){var t=new oe(3);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function yA(t){var e=new oe(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function au(t){var e=t[0],r=t[1],n=t[2];return Math.hypot(e,r,n)}function sa(t,e,r){var n=new oe(3);return n[0]=t,n[1]=e,n[2]=r,n}function bA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function TA(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function MA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function cu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function lu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function fu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function SA(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function EA(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function _A(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 CA(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 BA(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function IA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function vA(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 uu(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.hypot(r,n,o)}function hu(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function pu(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function RA(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function wA(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function du(t,e){var r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function ma(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Yo(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function LA(t,e,r,n){var o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function FA(t,e,r,n,o,s){var i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function PA(t,e,r,n,o,s){var i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function NA(t,e){e=e||1;var r=Wt()*2*Math.PI,n=Wt()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function OA(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function UA(t,e,r){var n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function DA(t,e,r){var n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,g=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,g*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+g,t}function GA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function VA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function HA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function zA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt(r*r+n*n+o*o),l=Math.sqrt(s*s+i*i+a*a),f=c*l,u=f&&ma(t,e)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function kA(t){return t[0]=0,t[1]=0,t[2]=0,t}function jA(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function qA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function JA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=ge*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=ge*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=ge*Math.max(1,Math.abs(o),Math.abs(a))}var WA=cu,KA=lu,XA=fu,YA=uu,QA=hu,mu=au,ZA=pu,$A=function(){var t=da();return function(e,r,n,o,s,i){var a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();function ex(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function tx(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function rx(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function nx(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function ox(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function sx(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 ix(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 ax(t){var e=t[0],r=t[1],n=t[2],o=t[3];return Math.hypot(e,r,n,o)}function cx(t){var e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function lx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function fx(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function ux(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function hx(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function px(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}var LR=function(){var t=ex();return function(e,r,n,o,s,i){var a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();function ia(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function dx(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function gu(t,e,r){r=r*.5;var 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 mx(t,e){var r=Math.acos(e[3])*2,n=Math.sin(r/2);return n>ge?(t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n):(t[0]=1,t[1]=0,t[2]=0),r}function gx(t,e){var r=Mu(t,e);return Math.acos(2*r*r-1)}function Au(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Ax(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function xx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function yx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function bx(t,e){var r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function xu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=Math.exp(s),c=i>0?a*Math.sin(i)/i:0;return t[0]=r*c,t[1]=n*c,t[2]=o*c,t[3]=a*Math.cos(i),t}function yu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=i>0?Math.atan2(i,s)/i:0;return t[0]=r*a,t[1]=n*a,t[2]=o*a,t[3]=.5*Math.log(r*r+n*n+o*o+s*s),t}function Tx(t,e,r){return yu(t,e),Tu(t,t,r),xu(t,t),t}function Qo(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,g,m;return p=o*c+s*l+i*f+a*u,p<0&&(p=-p,c=-c,l=-l,f=-f,u=-u),1-p>ge?(h=Math.acos(p),d=Math.sin(h),g=Math.sin((1-n)*h)/d,m=Math.sin(n*h)/d):(g=1-n,m=n),t[0]=g*o+m*c,t[1]=g*s+m*l,t[2]=g*i+m*f,t[3]=g*a+m*u,t}function Mx(t){var e=Wt(),r=Wt(),n=Wt(),o=Math.sqrt(1-e),s=Math.sqrt(e);return t[0]=o*Math.sin(2*Math.PI*r),t[1]=o*Math.cos(2*Math.PI*r),t[2]=s*Math.sin(2*Math.PI*n),t[3]=s*Math.cos(2*Math.PI*n),t}function Sx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function Ex(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function bu(t,e){var 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{var o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);var s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}function _x(t,e,r,n){var o=.5*Math.PI/180;e*=o,r*=o,n*=o;var s=Math.sin(e),i=Math.cos(e),a=Math.sin(r),c=Math.cos(r),l=Math.sin(n),f=Math.cos(n);return t[0]=s*c*f-i*a*l,t[1]=i*a*f+s*c*l,t[2]=i*c*l-s*a*f,t[3]=i*c*f+s*a*l,t}function Cx(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}var Bx=tx,Ix=rx,vx=nx,Rx=ox,wx=sx,Lx=Au,Tu=ix,Mu=fx,Fx=ux,Su=ax,Px=Su,Eu=cx,Nx=Eu,ga=lx,Ox=hx,Ux=px,Dx=function(){var t=da(),e=sa(1,0,0),r=sa(0,1,0);return function(n,o,s){var i=ma(o,s);return i<-.999999?(Yo(t,e,o),mu(t)<1e-6&&Yo(t,r,o),du(t,t),gu(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Yo(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,ga(n,n))}}(),Gx=function(){var t=ia(),e=ia();return function(r,n,o,s,i,a){return Qo(t,n,i,a),Qo(e,o,s,a),Qo(r,t,e,2*a*(1-a)),r}}(),Vx=function(){var t=xA();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],ga(e,bu(e,t))}}(),P={};_n(P,{add:()=>qx,angle:()=>uy,ceil:()=>Jx,clone:()=>Hx,copy:()=>kx,create:()=>_u,cross:()=>ny,dist:()=>by,distance:()=>vu,div:()=>yy,divide:()=>Iu,dot:()=>ry,equals:()=>my,exactEquals:()=>dy,floor:()=>Wx,forEach:()=>Sy,fromValues:()=>zx,inverse:()=>ey,len:()=>gy,length:()=>wu,lerp:()=>oy,max:()=>Xx,min:()=>Kx,mul:()=>xy,multiply:()=>Bu,negate:()=>$x,normalize:()=>ty,random:()=>sy,rotate:()=>fy,round:()=>Yx,scale:()=>Qx,scaleAndAdd:()=>Zx,set:()=>jx,sqrDist:()=>Ty,sqrLen:()=>My,squaredDistance:()=>Ru,squaredLength:()=>Lu,str:()=>py,sub:()=>Ay,subtract:()=>Cu,transformMat2:()=>iy,transformMat2d:()=>ay,transformMat3:()=>cy,transformMat4:()=>ly,zero:()=>hy});function _u(){var t=new oe(2);return oe!=Float32Array&&(t[0]=0,t[1]=0),t}function Hx(t){var e=new oe(2);return e[0]=t[0],e[1]=t[1],e}function zx(t,e){var r=new oe(2);return r[0]=t,r[1]=e,r}function kx(t,e){return t[0]=e[0],t[1]=e[1],t}function jx(t,e,r){return t[0]=e,t[1]=r,t}function qx(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function Cu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Bu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function Iu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function Jx(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Wx(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function Kx(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function Xx(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function Yx(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function Qx(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function Zx(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function vu(t,e){var r=e[0]-t[0],n=e[1]-t[1];return Math.hypot(r,n)}function Ru(t,e){var r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function wu(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function Lu(t){var e=t[0],r=t[1];return e*e+r*r}function $x(t,e){return t[0]=-e[0],t[1]=-e[1],t}function ey(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function ty(t,e){var r=e[0],n=e[1],o=r*r+n*n;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t}function ry(t,e){return t[0]*e[0]+t[1]*e[1]}function ny(t,e,r){var n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t}function oy(t,e,r,n){var o=e[0],s=e[1];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t}function sy(t,e){e=e||1;var r=Wt()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function iy(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function ay(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function cy(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function ly(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}function fy(t,e,r,n){var o=e[0]-r[0],s=e[1]-r[1],i=Math.sin(n),a=Math.cos(n);return t[0]=o*a-s*i+r[0],t[1]=o*i+s*a+r[1],t}function uy(t,e){var r=t[0],n=t[1],o=e[0],s=e[1],i=Math.sqrt(r*r+n*n)*Math.sqrt(o*o+s*s),a=i&&(r*o+n*s)/i;return Math.acos(Math.min(Math.max(a,-1),1))}function hy(t){return t[0]=0,t[1]=0,t}function py(t){return"vec2("+t[0]+", "+t[1]+")"}function dy(t,e){return t[0]===e[0]&&t[1]===e[1]}function my(t,e){var r=t[0],n=t[1],o=e[0],s=e[1];return Math.abs(r-o)<=ge*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-s)<=ge*Math.max(1,Math.abs(n),Math.abs(s))}var gy=wu,Ay=Cu,xy=Bu,yy=Iu,by=vu,Ty=Ru,My=Lu,Sy=function(){var t=_u();return function(e,r,n,o,s,i){var a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}(),rs=(1+Math.sqrt(5))/2,FR=2*Math.PI,Zo=2*Math.PI/5,ot=Math.PI/5,Df=Math.PI/10,Ey=2*Math.atan(rs),aa=Math.PI-Ey,PR=-.5*Math.PI+Math.acos(-1/Math.sqrt(3-rs)),ns=(Math.sqrt(5)-1)/2,_y=3-Math.sqrt(5),Cy=Math.sqrt(3-rs),NR=Math.sqrt(3)*Cy/rs,$o=63710072e-1,OR=4*Math.PI*$o*$o;Ae.setMatrixArrayType(Float64Array);var Aa=class ca{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,r=this.vertices.length;for(let n=0;n<r;n++){let o=(n+1)%r;e+=(this.vertices[o][0]-this.vertices[n][0])*(this.vertices[o][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)P.scale(r,r,e);return this}rotate180(){for(let e of this.vertices)P.negate(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let r of this.vertices)P.add(r,r,e);return this}transform(e){for(let r of this.vertices)P.transformMat2(r,r,e);return this}transform2d(e){for(let r of this.vertices)P.transformMat2d(r,r,e);return this}clone(){return new ca(this.vertices.map(r=>P.clone(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((n,o)=>[n[0]+o[0]/e,n[1]+o[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let r=this.vertices.length,n=1;for(let o=0;o<r;o++){let s=this.vertices[o],i=this.vertices[(o+1)%r],a=s[0]-i[0],c=s[1]-i[1],l=e[0]-s[0],f=e[1]-s[1],u=a*f-c*l;if(u<0){let h=Math.sqrt(l*l+f*f);n=Math.min(n,u/h)}}return n}splitEdges(e){if(e<=1)return this;let r=[],n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];r.push(P.clone(s));for(let a=1;a<e;a++){let c=a/e,l=P.create();P.lerp(l,s,i,c),r.push(l)}}return new ca(r)}};Ae.setMatrixArrayType(Float64Array);var Fu=[0,0],Pu=[0,1],Xt=[.7885966681787006,1.6149108024237764],Nu=[1.6171013659387945,1.054928690397459],Ou=[Math.cos(Df),Math.sin(Df)],By=2*P.length(Xt)*Math.cos(ot),Iy=ot-Math.atan2(Xt[1],Xt[0]),vy=2*ns/By;[Fu,Pu,Xt,Nu,Ou].forEach(t=>{P.scale(t,t,vy),P.rotate(t,t,[0,0],Iy)});var Ry=new Aa([Fu,Pu,Xt,Nu,Ou]),Uu=Math.atan2(Xt[1],Xt[0])-ot,wy=[0,0],es=ns/Math.cos(ot),Gf=Uu+ot,ts=[es*Math.cos(Gf),es*Math.sin(Gf)],Vf=Uu-ot,En=[es*Math.cos(Vf),es*Math.sin(Vf)],Du=new Aa([wy,ts,En]),Gu=Kt.fromValues(ts[0],ts[1],En[0],En[1]),UR=Kt.invert(Kt.create(),Gu),Ly=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),Fy=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),Py=class{applyCoefficients(t,e){let r=Math.sin(t),n=Math.cos(t),o=2*(n-r)*(n+r),s,i;return s=o*e[5]+e[4],i=o*s+e[3],s=o*i-s+e[2],i=o*s-i+e[1],s=o*i-s+e[0],t+2*r*n*s}forward(t){return this.applyCoefficients(t,Ly)}inverse(t){return this.applyCoefficients(t,Fy)}};Ae.setMatrixArrayType(Float64Array);var Vu=new Py;function Hf(t){return t*(Math.PI/180)}function zf(t){return t*(180/Math.PI)}function kf(t){let e=P.length(t),r=Math.atan2(t[1],t[0]);return[e,r]}function Ny([t,e]){let r=t*Math.cos(e),n=t*Math.sin(e);return[r,n]}function Oy(t,[e,r,n]){let o=[e[0]-n[0],e[1]-n[1]],s=[n[0]-r[0],n[1]-r[1]],i=[t[0]-n[0],t[1]-n[1]],a=s[0]*o[1]-s[1]*o[0],c=(s[0]*i[1]-s[1]*i[0])/a,l=(o[0]*i[1]-o[1]*i[0])/a,f=1-(c+l);return[c,l,f]}function Uy(t,[e,r,n]){return[t[0]*e[0]+t[1]*r[0]+t[2]*n[0],t[0]*e[1]+t[1]*r[1]+t[2]*n[1]]}function la(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),n=Math.acos(t[2]/r);return[e,n]}function Lr([t,e]){let r=Math.sin(e),n=r*Math.cos(t),o=r*Math.sin(t),s=Math.cos(e);return[n,o,s]}var Hu=93;function Dy([t,e]){let r=Hf(t+Hu),n=Hf(e),o=Vu.forward(n),s=Math.PI/2-o;return[r,s]}function zu([t,e]){let r=zf(t)-Hu,n=Math.PI/2-e,o=Vu.inverse(n),s=zf(o);return[r,s]}function Gy(t){let e=t.map(s=>Lr(Dy(s))),r=R.create();for(let s of e)R.add(r,r,s);R.normalize(r,r);let[n,o]=zu(la(r));return(o>89.99||o<-89.99)&&(n=t[0][0]),n=((n+180)%360+360)%360-180,t.map(s=>{let[i,a]=s;for(;i-n>180;)i=i-360;for(;i-n<-180;)i=i+360;return[i,a]})}Ae.setMatrixArrayType(Float64Array);var os=Math.sqrt(5),ss=Math.sqrt(.2),ku=Math.sqrt((1-ss)/2),ju=Math.sqrt((1+ss)/2),zo=.5,jf=Math.sqrt((2.5-os)/10),qf=Math.sqrt((2.5+os)/10),Jf=Math.sqrt((1+ss)/8),Wf=Math.sqrt((1-ss)/8),Kf=Math.sqrt((3-os)/8),Xf=Math.sqrt((3+os)/8),Vy=[[0,0],[ku,0],[jf,zo],[-Jf,Kf],[-Jf,-Kf],[jf,-zo],[-ju,0],[-Wf,-Xf],[qf,-zo],[qf,zo],[-Wf,Xf],[0,0]],Hy=Vy.map(([t,e])=>[-e,t]),ko=Hy.map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?ju:ku]);Ae.setMatrixArrayType(Float64Array);var qu=["vu","uw","vw","vw","vw"],Mn=["wu","uw","vw","vu","uw"],ta=["wu","uv","wv","wu","uw"],jo=["vu","uv","wv","wu","uw"],zy=[qu,jo,ta,Mn,ta,jo,ta,Mn,Mn,Mn,jo,jo],ky=[4,2,3,2,0,4,3,2,2,0,3,0],Yf=[0,1,2,4,3,5,7,8,6,11,10,9],Ye=[];function jy(){qo([0,0],0,ko[0]);for(let t=0;t<5;t++){let e=t*Zo,r=e+ot;qo([e,aa],ot,ko[t+1]),qo([r,Math.PI-aa],ot,ko[(t+3)%5+6])}qo([0,Math.PI],0,ko[11])}var vr=0;function qo(t,e,r){if(vr>11)throw new Error(`Too many origins: ${vr}`);let n=oa.create();oa.conjugate(n,r);let o={id:vr,axis:t,quat:r,inverseQuat:n,angle:e,orientation:zy[vr],firstQuintant:ky[vr]};Ye.push(o),vr++}jy();Ye.sort((t,e)=>Yf.indexOf(t.id)-Yf.indexOf(e.id));Ye.forEach((t,e)=>t.id=e);function qy(t,e){let r=e.orientation,n=r===qu||r===Mn?-1:1,o=(t-e.firstQuintant+5)%5,s=r[o];return{quintant:(e.firstQuintant+n*o+5)%5,orientation:s}}var Jy=class{forward([t,e]){return[Math.tan(e),t]}inverse([t,e]){return[e,Math.atan(t)]}},Rr=R.create(),Sn=R.create(),Qf=R.create(),Zf=R.create();function ra(t,e){R.lerp(Rr,t,e,.5),R.normalize(Rr,Rr),R.cross(Rr,t,Rr);let r=R.length(Rr);if(r<1e-8){let n=R.subtract(R.create(),t,e);return .5*R.length(n)}return r}function Wy(t,e,r){return R.cross(Sn,e,r),R.dot(t,Sn)}function Ky(t,e,r,n,o){R.cross(Sn,n,o);let s=R.dot(e,Sn),i=R.dot(r,Sn);return R.scale(Qf,e,i),R.scale(Zf,r,s),R.sub(t,Zf,Qf)}function fa(t,e,r,n){let o=R.angle(e,r);if(o<1e-12)return R.lerp(t,e,r,n);let s=Math.sin((1-n)*o)/Math.sin(o),i=Math.sin(n*o)/Math.sin(o),a=R.scale(R.create(),e,s),c=R.scale(R.create(),r,i);return R.add(t,a,c)}Ae.setMatrixArrayType(Float64Array);var Jo=R.create(),Wo=R.create(),Ko=R.create(),wr=R.create(),Xy=class{constructor(t){this._area=null,this.vertices=t,Object.freeze(this.vertices)}getBoundary(t=1,e=!0){let r=[],n=this.vertices.length;for(let o=0;o<n*t;o++){let s=o/t;r.push(this.slerp(s))}return e&&r.push(r[0]),r}slerp(t){let e=this.vertices.length,r=t%1,n=Math.floor(t%e),o=(n+1)%e;return fa(R.create(),this.vertices[n],this.vertices[o],r)}getTransformedVertices(t){let e=this.vertices.length,r=Math.floor(t%e),n=(r+1)%e,o=(r+e-1)%e,s=R.clone(this.vertices[r]),i=R.clone(this.vertices[n]),a=R.clone(this.vertices[o]);return R.sub(i,i,s),R.sub(a,a,s),[s,i,a]}containsPoint(t){let e=this.vertices.length,r=1/0;for(let n=0;n<e;n++){let[o,s,i]=this.getTransformedVertices(n),a=R.sub(R.create(),t,o);R.normalize(a,a),R.normalize(s,s),R.normalize(i,i);let c=R.cross(R.create(),s,a),l=R.cross(R.create(),a,i),f=R.dot(o,c),u=R.dot(o,l);r=Math.min(r,f,u)}return r}getTriangleArea(t,e,r){R.lerp(Jo,e,r,.5),R.lerp(Wo,r,t,.5),R.lerp(Ko,t,e,.5),R.normalize(Jo,Jo),R.normalize(Wo,Wo),R.normalize(Ko,Ko);let n=Wy(Jo,Wo,Ko),o=Math.max(-1,Math.min(1,n));return Math.abs(o)<1e-8?2*o:Math.asin(o)*2}getArea(){return this._area===null&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(this.vertices.length===3)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;R.set(wr,0,0,0);for(let e of this.vertices)R.add(wr,wr,e);R.normalize(wr,wr);let t=0;for(let e=0;e<this.vertices.length;e++){let r=this.vertices[e],n=this.vertices[(e+1)%this.vertices.length],o=this.getTriangleArea(wr,r,n);isNaN(o)||(t+=o)}return this._area=t,this._area}isWindingCorrect(){if(!(this.getArea()>0))debugger}};Ae.setMatrixArrayType(Float64Array);var Xo=class extends Xy{constructor(t){if(t.length!==3)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(t)}};Ae.setMatrixArrayType(Float64Array);var Yy=class{forward(t,e,r){let[n,o,s]=e,i=new Xo([n,o,s]),a=R.subtract(R.create(),t,n);R.normalize(a,a);let c=Ky(R.create(),n,a,o,s);R.normalize(c,c);let l=ra(n,t)/ra(n,c),f=i.getArea(),u=l/f,h=[1-l,u*new Xo([n,c,s]).getArea(),u*new Xo([n,o,c]).getArea()];return Uy(h,r)}inverse(t,e,r){let[n,o,s]=r,i=new Xo([n,o,s]),a=Oy(t,e),c=1-1e-14;if(a[0]>c)return n;if(a[1]>c)return o;if(a[2]>c)return s;let l=R.create();R.cross(l,o,s);let f=i.getArea(),u=1-a[0],p=a[2]/u*f,d=Math.sin(p),g=Math.sin(p/2),m=2*g*g,y=R.dot(n,o),b=R.dot(o,s),M=R.dot(s,n),S=R.length(l),C=R.dot(n,l),_=d*C+m*(y*b-M),v=m*S*(1+y),E=2/Math.acos(b)*Math.atan2(v,_),T=fa(R.create(),o,s,E),A=ra(n,T),B=this.safeAcos(u*A)/this.safeAcos(A);return fa([0,0,0],n,T,B)}safeAcos(t){return t<.001?2*t+t*t*t/3:Math.acos(1-2*t*t)}},Fe=-1,Ee=1;Ae.setMatrixArrayType(Float64Array);var Qy=([t,e])=>P.fromValues(t-e,e);Ae.setMatrixArrayType(Float64Array);var ua=P.fromValues(1,0),ha=P.fromValues(0,1),$f=P.negate(P.create(),ua),eu=P.negate(P.create(),ha),na=P.fromValues(0,0),Zy=(t,[e,r])=>{let n=na,o=na;switch(e===Ee&&r===Ee?(n=ua,o=ha):e===Fe&&r===Ee?(n=eu,o=$f):e===Ee&&r===Fe?(n=ha,o=ua):e===Fe&&r===Fe&&(n=$f,o=eu),t){case 0:return na;case 1:return n;case 2:return P.add(P.create(),o,n);case 3:return P.scaleAndAdd(P.create(),o,n,2);default:throw new Error(`Invalid Quaternary value: ${t}`)}},tu=t=>[[Ee,Ee],[Ee,Fe],[Ee,Ee],[Fe,Ee]][t];function Ju(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var Wu=[0,1,3,4,5,6,7,2],Ku=[0,1,2,7,3,4,5,6],DR=Ju(Wu),GR=Ju(Ku),$y=(t,e,r,n,o)=>{if(e<=0)return;let s=t[e]||0,i=t[e-1],a=r[0]+r[1],c=!0,l=!0;if(n!==(a===0)?(c=s===1||s===2,l=s===1):(c=s<2,l=s===0),!c)return;let f=l?i:i+4,u=o[f];t[e-1]=u%4,t[e]=(s+4+Math.floor(u/4)-Math.floor(f/4))%4};Ae.setMatrixArrayType(Float64Array);var ru=P.fromValues(-1,1),Xu=!0,eb=(t,e,r,n=Xu)=>{let o=BigInt(t),s=r==="vu"||r==="wu"||r==="vw",i=r==="wv"||r==="vw",a=r==="wu"||r==="uw";s&&(o=(1n<<BigInt(2*e))-o-1n);let c=tb(o,e,i,a,n);if(a){let{offset:[l,f],flips:[u,h]}=c;c.offset=[f,l],u===Fe&&P.add(c.offset,c.offset,ru),h===Fe&&P.subtract(c.offset,c.offset,ru)}if(i){let{offset:[l,f],flips:u}=c,h=(1<<e)-(l+f);u[0]=-u[0],c.offset[1]=h,c.flips=u}return c},tb=(t,e,r,n,o=Xu)=>{let s=P.create(),i=[Ee,Ee],a=BigInt(t),c=[];for(;a>0n||c.length<e;)c.push(Number(a%4n)),a=a>>2n;let l=n?Ku:Wu;for(let u=c.length-1;u>=0;u--)o&&$y(c,u,i,r,l),P.multiply(i,i,tu(c[u]));i[0]=Ee,i[1]=Ee;for(let u=c.length-1;u>=0;u--){P.scale(s,s,2);let h=Zy(c[u],i);P.add(s,s,h),P.multiply(i,i,tu(c[u]))}return{q:c[0]||0,offset:Qy(s),flips:i}};var _t=.1,VR=[[_t*Math.cos(45*Math.PI/180),_t*Math.sin(45*Math.PI/180)],[_t*Math.cos(113*Math.PI/180),_t*Math.sin(113*Math.PI/180)],[_t*Math.cos(293*Math.PI/180),_t*Math.sin(293*Math.PI/180)],[_t*Math.cos(225*Math.PI/180),_t*Math.sin(225*Math.PI/180)]];Ae.setMatrixArrayType(Float64Array);var rb=!1,nb=P.clone(En),ob=P.negate(P.create(),En),xa=[0,1,2,3,4].map(t=>{let e=Kt.create();return Kt.fromRotation(e,Zo*t),e}),nu=P.create();function sb(t,e,r){let n=(rb?Du:Ry).clone();P.transformMat2(nu,r.offset,Gu),r.flips[0]===Ee&&r.flips[1]===Fe&&n.rotate180();let{q:o}=r,s=r.flips[0]+r.flips[1];return((s===-2||s===2)&&o>1||s===0&&(o===0||o===3))&&n.reflectY(),r.flips[0]===Fe&&r.flips[1]===Fe?n.rotate180():r.flips[0]===Fe?n.translate(ob):r.flips[1]===Fe&&n.translate(nb),n.translate(nu),n.scale(1/2**t),n.transform(xa[e]),n}function Yu(t){let e=Du.clone();return e.transform(xa[t]),e}function ib(){let t=[];for(let e of xa)t.push(P.transformMat2(P.create(),ts,e));return t.reverse(),new Aa(t)}Ae.setMatrixArrayType(Float64Array);var ab=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(t){this.invocations++,this.invocations===1e4&&console.warn("Too many CRS invocations, results should be cached");for(let e of this.vertices)if(R.distance(t,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){Ye.forEach(t=>this.add(Lr(t.axis)))}addVertices(){let t=Math.atan(_y);for(let e of Ye)for(let r=0;r<5;r++){let n=(2*r+1)*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}addMidpoints(){let t=Math.atan(ns);for(let e of Ye)for(let r=0;r<5;r++){let n=2*r*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}add(t){let e=R.normalize(R.create(),t);return this.vertices.find(n=>R.distance(e,n)<1e-5)?!1:(this.vertices.push(e),!0)}};Ae.setMatrixArrayType(Float64Array);var cb=new ab,lb=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new Yy,this.gnomonic=new Jy}forward(t,e){let r=Ye[e],n=Lr(t),o=R.create();R.transformQuat(o,n,r.inverseQuat);let s=la(o),i=this.gnomonic.forward(s);i[1]=i[1]-r.angle;let a=this.getFaceTriangleIndex(i),c=this.shouldReflect(i),l=this.getFaceTriangle(a,c,!1),f=this.getSphericalTriangle(a,e,c);return this.polyhedral.forward(n,f,l)}inverse(t,e){let r=kf(t),n=this.getFaceTriangleIndex(r),o=this.shouldReflect(r),s=this.getFaceTriangle(n,o,!1),i=this.getSphericalTriangle(n,e,o),a=this.polyhedral.inverse(t,s,i);return la(a)}shouldReflect(t){let[e,r]=t;return Ny([e,this.normalizeGamma(r)])[0]>ns}getFaceTriangleIndex([t,e]){return(Math.floor(e/ot)+10)%10}getFaceTriangle(t,e=!1,r=!1){let n=t;return e&&(n+=r?20:10),this.faceTriangles[n]?this.faceTriangles[n]:(this.faceTriangles[n]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[n]),this.faceTriangles[n])}_getFaceTriangle(t){let e=Math.floor((t+1)/2)%5,[r,n,o]=Yu(e).getVertices(),s=P.create();return P.lerp(s,n,o,.5),t%2===0?[r,s,n]:[r,o,s]}_getReflectedFaceTriangle(t,e=!1){let[r,n,o]=this._getFaceTriangle(t).map(a=>P.clone(a)),s=t%2===0;P.negate(r,r);let i=s?n:o;return P.scaleAndAdd(r,r,i,e?1+1/Math.cos(aa):2),[r,o,n]}getSphericalTriangle(t,e,r=!1){let n=10*e+t;return r&&(n+=120),this.sphericalTriangles[n]?this.sphericalTriangles[n]:(this.sphericalTriangles[n]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[n]),this.sphericalTriangles[n])}_getSphericalTriangle(t,e,r=!1){let n=Ye[e];return this.getFaceTriangle(t,r,!0).map(i=>{let[a,c]=kf(i),l=[a,c+n.angle],f=Lr(this.gnomonic.inverse(l));return R.transformQuat(f,f,n.quat),cb.getVertex(f)})}normalizeGamma(t){let e=t/Zo,r=Math.round(e);return(e-r)*Zo}},Fr=2,pa=30,ou=58n,fb=0n;function ub(t){if(t===0n)return-1;if(t&1n||(t&0b111n)===0b100n||(t&0b11111n)===0b10000n)return pa;let e=pa-1,r=t>>1n;if(r===0n)return-1;let n=Number(r&0xFFFFFFFFn),o;for(n===0?(r>>=32n,e-=16,o=Number(r)):o=n,o&65535||(o>>=16,e-=8),e>=6&&!(o&255)&&(o>>=8,e-=4),e>=4&&!(o&15)&&(o>>=4,e-=2);e>-1&&!(o&1);)e-=1,o=o>>(e<Fr?1:2);return e}function hb(t){let e=ub(t);if(e===-1)return{origin:Ye[0],segment:0,S:0n,resolution:e};let r=ou,n=0;if(e===pa){let u=t&1n?1n:t&0b100n?3n:5n;r=ou+u,n=u===1n?0:u===3n?32:40}let o=Number(t>>r)+n,s,i;if(e===0)s=Ye[o],i=0;else{let u=Math.floor(o/5);s=Ye[u],i=(o+s.firstQuintant)%5}if(!s)throw new Error(`Could not parse origin: ${o}`);if(e<Fr)return{origin:s,segment:i,S:0n,resolution:e};let a=e-Fr+1,c=BigInt(2*a),l=(1n<<r)-1n,f=(t&l)>>r-c;return{origin:s,segment:i,S:f,resolution:e}}Ae.setMatrixArrayType(Float64Array);var HR=Kt.create(),pb=new lb;function db({S:t,segment:e,origin:r,resolution:n}){let{quintant:o,orientation:s}=qy(e,r);if(n===Fr-1)return Yu(o);if(n===Fr-2)return ib();let i=n-Fr+1,a=eb(t,i,s);return sb(i,o,a)}function Qu(t,{closedRing:e=!0,segments:r="auto"}={closedRing:!0,segments:"auto"}){if(t===fb)return[];let{S:n,segment:o,origin:s,resolution:i}=hb(t);r==="auto"&&(r=Math.max(1,Math.pow(2,6-i)));let u=db({S:n,segment:o,origin:s,resolution:i}).splitEdges(r).getVertices().map(p=>pb.inverse(p,s.id)).map(p=>zu(p)),h=Gy(u);return e&&h.push(h[0]),h.reverse(),h}function Zu(t){return BigInt(`0x${t}`)}var $u=2;var mb=$u*$o/Math.sqrt(15),eh=new Array(31);eh[0]=$u*$o/Math.sqrt(3);for(let t=1;t<=30;t++)eh[t]=mb/(1<<t-1);Ae.setMatrixArrayType(Float64Array);var Fn=U(is(),1);var gb=1/Math.PI*180,Ab=1/180*Math.PI,xb={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...xb}};var Q=globalThis.mathgl.config;function ya(t,{precision:e=Q.precision}={}){return t=yb(t),`${parseFloat(t.toPrecision(e))}`}function Pe(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ba(t){return rh(t)}function Ta(t){return Ne(t)}function rh(t,e){return Ma(t,r=>r*Ab,e)}function Ne(t,e){return Ma(t,r=>r*gb,e)}function as(t,e,r){return Ma(t,n=>Math.max(e,Math.min(r,n)))}function Ct(t,e,r){return Pe(t)?t.map((n,o)=>Ct(n,e[o],r)):r*e+(1-r)*t}function _e(t,e,r){let n=Q.EPSILON;r&&(Q.EPSILON=r);try{if(t===e)return!0;if(Pe(t)&&Pe(e)){if(t.length!==e.length)return!1;for(let o=0;o<t.length;++o)if(!_e(t[o],e[o]))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)<=Q.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{Q.EPSILON=n}}function yb(t){return Math.round(t/Q.EPSILON)*Q.EPSILON}function bb(t){return t.clone?t.clone():new Array(t.length)}function Ma(t,e,r){if(Pe(t)){let n=t;r=r||bb(n);for(let o=0;o<r.length&&o<n.length;++o){let s=typeof t=="number"?t:t[o];r[o]=e(s,o,r)}return r}return e(t)}var Bt=class extends 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:Pe(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(Q)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+ya(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!_e(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 o=0;o<this.ELEMENTS;++o){let s=e[o],i=typeof r=="number"?r:r[o];this[o]=s+n*(i-s)}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(Q.debug&&!this.validate())throw new Error(`math.gl: ${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 Tb(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 V(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function It(t,e,r=""){if(Q.debug&&!Tb(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function he(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var vt=class extends Bt{get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(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 o=this[n]-e[n];r+=o*o}return V(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return V(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 he(e>=0&&e<this.ELEMENTS,"index is out of range"),V(this[e])}setComponent(e,r){return he(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 te=typeof Float32Array<"u"?Float32Array:Array,Cn=Math.random;function Pr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var aw=Math.PI/180;function Mb(){let t=new te(2);return te!=Float32Array&&(t[0]=0,t[1]=0),t}function nh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function oh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function cs(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function ls(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}var cw=function(){let t=Mb();return function(e,r,n,o,s,i){let a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}();function fs(t,e,r){let n=e[0],o=e[1],s=r[3]*n+r[7]*o||1;return t[0]=(r[0]*n+r[4]*o)/s,t[1]=(r[1]*n+r[5]*o)/s,t}function us(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s||1;return t[0]=(r[0]*n+r[4]*o+r[8]*s)/i,t[1]=(r[1]*n+r[5]*o+r[9]*s)/i,t[2]=(r[2]*n+r[6]*o+r[10]*s)/i,t}function sh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t}function ih(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t[3]=e[3],t}function hs(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=r[0]*n+r[3]*o+r[6]*s,t[1]=r[1]*n+r[4]*o+r[7]*s,t[2]=r[2]*n+r[5]*o+r[8]*s,t[3]=e[3],t}var Yt=class extends vt{constructor(e=0,r=0){super(2),Pe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(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 Q.debug&&(V(e.x),V(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 ls(this,this,e),this.check()}transformAsVector(e){return fs(this,this,e),this.check()}transformByMatrix3(e){return cs(this,this,e),this.check()}transformByMatrix2x3(e){return oh(this,this,e),this.check()}transformByMatrix2(e){return nh(this,this,e),this.check()}};var $t={};be($t,{add:()=>Cb,angle:()=>Ba,bezier:()=>Gb,ceil:()=>Bb,clone:()=>Sb,copy:()=>Eb,create:()=>ps,cross:()=>Qt,dist:()=>Kb,distance:()=>uh,div:()=>Wb,divide:()=>fh,dot:()=>Bn,equals:()=>jb,exactEquals:()=>kb,floor:()=>Ib,forEach:()=>Qb,fromValues:()=>ds,hermite:()=>Db,inverse:()=>Nb,len:()=>Ia,length:()=>ah,lerp:()=>Ob,max:()=>Rb,min:()=>vb,mul:()=>Jb,multiply:()=>lh,negate:()=>Pb,normalize:()=>Sa,random:()=>Vb,rotateX:()=>Ea,rotateY:()=>_a,rotateZ:()=>Ca,round:()=>wb,scale:()=>Lb,scaleAndAdd:()=>Fb,set:()=>_b,slerp:()=>Ub,sqrDist:()=>Xb,sqrLen:()=>Yb,squaredDistance:()=>hh,squaredLength:()=>ph,str:()=>zb,sub:()=>qb,subtract:()=>ch,transformMat3:()=>In,transformMat4:()=>Zt,transformQuat:()=>vn,zero:()=>Hb});function ps(){let t=new te(3);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function Sb(t){let e=new te(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function ah(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function ds(t,e,r){let n=new te(3);return n[0]=t,n[1]=e,n[2]=r,n}function Eb(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function _b(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function Cb(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function ch(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function lh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function fh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function Bb(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function Ib(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function vb(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 Rb(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 wb(t,e){return t[0]=Pr(e[0]),t[1]=Pr(e[1]),t[2]=Pr(e[2]),t}function Lb(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function Fb(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 uh(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(r*r+n*n+o*o)}function hh(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function ph(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function Pb(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function Nb(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function Sa(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Bn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Qt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function Ob(t,e,r,n){let o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function Ub(t,e,r,n){let o=Math.acos(Math.min(Math.max(Bn(e,r),-1),1)),s=Math.sin(o),i=Math.sin((1-n)*o)/s,a=Math.sin(n*o)/s;return t[0]=i*e[0]+a*r[0],t[1]=i*e[1]+a*r[1],t[2]=i*e[2]+a*r[2],t}function Db(t,e,r,n,o,s){let i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function Gb(t,e,r,n,o,s){let i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function Vb(t,e){e=e===void 0?1:e;let r=Cn()*2*Math.PI,n=Cn()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function Zt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function In(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function vn(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,g=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,g*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+g,t}function Ea(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function _a(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ca(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ba(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt((r*r+n*n+o*o)*(s*s+i*i+a*a)),l=c&&Bn(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function Hb(t){return t[0]=0,t[1]=0,t[2]=0,t}function zb(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function kb(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function jb(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=1e-6*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=1e-6*Math.max(1,Math.abs(o),Math.abs(a))}var qb=ch,Jb=lh,Wb=fh,Kb=uh,Xb=hh,Ia=ah,Yb=ph,Qb=function(){let t=ps();return function(e,r,n,o,s,i){let a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var va=[0,0,0],ms,x=class extends vt{static get ZERO(){return ms||(ms=new x(0,0,0),Object.freeze(ms)),ms}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&Pe(e)?this.copy(e):(Q.debug&&(V(e),V(r),V(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 Q.debug&&(V(e.x),V(e.y),V(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]=V(e)}angle(e){return Ba(this,e)}cross(e){return Qt(this,this,e),this.check()}rotateX({radians:e,origin:r=va}){return Ea(this,this,r,e),this.check()}rotateY({radians:e,origin:r=va}){return _a(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=va}){return Ca(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Zt(this,this,e),this.check()}transformAsVector(e){return us(this,this,e),this.check()}transformByMatrix3(e){return In(this,this,e),this.check()}transformByMatrix2(e){return sh(this,this,e),this.check()}transformByQuaternion(e){return vn(this,this,e),this.check()}};var gs,Or=class extends vt{static get ZERO(){return gs||(gs=new Or(0,0,0,0),Object.freeze(gs)),gs}constructor(e=0,r=0,n=0,o=0){super(-0,-0,-0,-0),Pe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r),V(n),V(o)),this[0]=e,this[1]=r,this[2]=n,this[3]=o)}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,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 Q.debug&&(V(e.x),V(e.y),V(e.z),V(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]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}transform(e){return Zt(this,this,e),this.check()}transformByMatrix3(e){return hs(this,this,e),this.check()}transformByMatrix2(e){return ih(this,this,e),this.check()}transformByQuaternion(e){return vn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var Ur=class extends Bt{toString(){let e="[";if(Q.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${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]=V(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)r[o]=this[n+o];return r}setColumn(e,r){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)this[n+o]=r[o];return this}};function dh(){let t=new te(9);return te!=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 mh(t,e){if(t===e){let r=e[1],n=e[2],o=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=o}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 gh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=f*i-a*l,h=-f*s+a*c,p=l*s-i*c,d=r*u+n*h+o*p;return d?(d=1/d,t[0]=u*d,t[1]=(-f*n+o*l)*d,t[2]=(a*n-o*i)*d,t[3]=h*d,t[4]=(f*r-o*c)*d,t[5]=(-a*r+o*s)*d,t[6]=p*d,t[7]=(-l*r+n*c)*d,t[8]=(i*r-n*s)*d,t):null}function Ah(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8];return e*(l*s-i*c)+r*(-l*o+i*a)+n*(c*o-s*a)}function Ra(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1],d=r[2],g=r[3],m=r[4],y=r[5],b=r[6],M=r[7],S=r[8];return t[0]=h*n+p*i+d*l,t[1]=h*o+p*a+d*f,t[2]=h*s+p*c+d*u,t[3]=g*n+m*i+y*l,t[4]=g*o+m*a+y*f,t[5]=g*s+m*c+y*u,t[6]=b*n+M*i+S*l,t[7]=b*o+M*a+S*f,t[8]=b*s+M*c+S*u,t}function xh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1];return t[0]=n,t[1]=o,t[2]=s,t[3]=i,t[4]=a,t[5]=c,t[6]=h*n+p*i+l,t[7]=h*o+p*a+f,t[8]=h*s+p*c+u,t}function yh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=Math.sin(r),p=Math.cos(r);return t[0]=p*n+h*i,t[1]=p*o+h*a,t[2]=p*s+h*c,t[3]=p*i-h*n,t[4]=p*a-h*o,t[5]=p*c-h*s,t[6]=l,t[7]=f,t[8]=u,t}function wa(t,e,r){let n=r[0],o=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=o*e[3],t[4]=o*e[4],t[5]=o*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function bh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,g=s*i,m=s*a,y=s*c;return t[0]=1-u-d,t[3]=f-y,t[6]=h+m,t[1]=f+y,t[4]=1-l-d,t[7]=p-g,t[2]=h-m,t[5]=p+g,t[8]=1-l-u,t}var La;(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"})(La||(La={}));var $b=Object.freeze([1,0,0,0,1,0,0,0,1]),k=class extends Ur{static get IDENTITY(){return tT()}static get ZERO(){return eT()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return La}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($b)}fromObject(e){return this.check()}fromQuaternion(e){return bh(this,e),this.check()}set(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=o,this[2]=a,this[3]=r,this[4]=s,this[5]=c,this[6]=n,this[7]=i,this[8]=l,this.check()}determinant(){return Ah(this)}transpose(){return mh(this,this),this.check()}invert(){return gh(this,this),this.check()}multiplyLeft(e){return Ra(this,e,this),this.check()}multiplyRight(e){return Ra(this,this,e),this.check()}rotate(e){return yh(this,this,e),this.check()}scale(e){return Array.isArray(e)?wa(this,this,e):wa(this,this,[e,e]),this.check()}translate(e){return xh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=cs(r||[-0,-0],e,this);break;case 3:n=In(r||[-0,-0,-0],e,this);break;case 4:n=hs(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(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)}},As,xs=null;function eT(){return As||(As=new k([0,0,0,0,0,0,0,0,0]),Object.freeze(As)),As}function tT(){return xs||(xs=new k,Object.freeze(xs)),xs}var wn={};be(wn,{add:()=>CT,adjoint:()=>aT,clone:()=>nT,copy:()=>oT,create:()=>rT,decompose:()=>AT,determinant:()=>Na,equals:()=>RT,exactEquals:()=>vT,frob:()=>_T,fromQuat:()=>za,fromQuat2:()=>dT,fromRotation:()=>fT,fromRotationTranslation:()=>Mh,fromRotationTranslationScale:()=>xT,fromRotationTranslationScaleOrigin:()=>yT,fromScaling:()=>lT,fromTranslation:()=>cT,fromValues:()=>sT,fromXRotation:()=>uT,fromYRotation:()=>hT,fromZRotation:()=>pT,frustum:()=>ka,getRotation:()=>gT,getScaling:()=>Sh,getTranslation:()=>mT,identity:()=>Th,invert:()=>Pa,lookAt:()=>Ja,mul:()=>wT,multiply:()=>Rn,multiplyScalar:()=>BT,multiplyScalarAndAdd:()=>IT,ortho:()=>qa,orthoNO:()=>_h,orthoZO:()=>MT,perspective:()=>ja,perspectiveFromFieldOfView:()=>TT,perspectiveNO:()=>Eh,perspectiveZO:()=>bT,rotate:()=>Da,rotateX:()=>Ga,rotateY:()=>Va,rotateZ:()=>Ha,scale:()=>Ua,set:()=>iT,str:()=>ET,sub:()=>LT,subtract:()=>Ch,targetTo:()=>ST,translate:()=>Oa,transpose:()=>Fa});function rT(){let t=new te(16);return te!=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 nT(t){let e=new te(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 oT(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 sT(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,g){let m=new te(16);return m[0]=t,m[1]=e,m[2]=r,m[3]=n,m[4]=o,m[5]=s,m[6]=i,m[7]=a,m[8]=c,m[9]=l,m[10]=f,m[11]=u,m[12]=h,m[13]=p,m[14]=d,m[15]=g,m}function iT(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,g,m){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t[4]=s,t[5]=i,t[6]=a,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=h,t[12]=p,t[13]=d,t[14]=g,t[15]=m,t}function Th(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 Fa(t,e){if(t===e){let r=e[1],n=e[2],o=e[3],s=e[6],i=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]=s,t[11]=e[14],t[12]=o,t[13]=i,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 Pa(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],g=e[13],m=e[14],y=e[15],b=r*a-n*i,M=r*c-o*i,S=r*l-s*i,C=n*c-o*a,_=n*l-s*a,v=o*l-s*c,E=f*g-u*d,T=f*m-h*d,A=f*y-p*d,B=u*m-h*g,L=u*y-p*g,F=h*y-p*m,w=b*F-M*L+S*B+C*A-_*T+v*E;return w?(w=1/w,t[0]=(a*F-c*L+l*B)*w,t[1]=(o*L-n*F-s*B)*w,t[2]=(g*v-m*_+y*C)*w,t[3]=(h*_-u*v-p*C)*w,t[4]=(c*A-i*F-l*T)*w,t[5]=(r*F-o*A+s*T)*w,t[6]=(m*S-d*v-y*M)*w,t[7]=(f*v-h*S+p*M)*w,t[8]=(i*L-a*A+l*E)*w,t[9]=(n*A-r*L-s*E)*w,t[10]=(d*_-g*S+y*b)*w,t[11]=(u*S-f*_-p*b)*w,t[12]=(a*T-i*B-c*E)*w,t[13]=(r*B-n*T+o*E)*w,t[14]=(g*M-d*C-m*b)*w,t[15]=(f*C-u*M+h*b)*w,t):null}function aT(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],g=e[13],m=e[14],y=e[15],b=r*a-n*i,M=r*c-o*i,S=r*l-s*i,C=n*c-o*a,_=n*l-s*a,v=o*l-s*c,E=f*g-u*d,T=f*m-h*d,A=f*y-p*d,B=u*m-h*g,L=u*y-p*g,F=h*y-p*m;return t[0]=a*F-c*L+l*B,t[1]=o*L-n*F-s*B,t[2]=g*v-m*_+y*C,t[3]=h*_-u*v-p*C,t[4]=c*A-i*F-l*T,t[5]=r*F-o*A+s*T,t[6]=m*S-d*v-y*M,t[7]=f*v-h*S+p*M,t[8]=i*L-a*A+l*E,t[9]=n*A-r*L-s*E,t[10]=d*_-g*S+y*b,t[11]=u*S-f*_-p*b,t[12]=a*T-i*B-c*E,t[13]=r*B-n*T+o*E,t[14]=g*M-d*C-m*b,t[15]=f*C-u*M+h*b,t}function Na(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8],f=t[9],u=t[10],h=t[11],p=t[12],d=t[13],g=t[14],m=t[15],y=e*i-r*s,b=e*a-n*s,M=r*a-n*i,S=l*d-f*p,C=l*g-u*p,_=f*g-u*d,v=e*_-r*C+n*S,E=s*_-i*C+a*S,T=l*M-f*b+u*y,A=p*M-d*b+g*y;return c*v-o*E+m*T-h*A}function Rn(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=e[9],p=e[10],d=e[11],g=e[12],m=e[13],y=e[14],b=e[15],M=r[0],S=r[1],C=r[2],_=r[3];return t[0]=M*n+S*a+C*u+_*g,t[1]=M*o+S*c+C*h+_*m,t[2]=M*s+S*l+C*p+_*y,t[3]=M*i+S*f+C*d+_*b,M=r[4],S=r[5],C=r[6],_=r[7],t[4]=M*n+S*a+C*u+_*g,t[5]=M*o+S*c+C*h+_*m,t[6]=M*s+S*l+C*p+_*y,t[7]=M*i+S*f+C*d+_*b,M=r[8],S=r[9],C=r[10],_=r[11],t[8]=M*n+S*a+C*u+_*g,t[9]=M*o+S*c+C*h+_*m,t[10]=M*s+S*l+C*p+_*y,t[11]=M*i+S*f+C*d+_*b,M=r[12],S=r[13],C=r[14],_=r[15],t[12]=M*n+S*a+C*u+_*g,t[13]=M*o+S*c+C*h+_*m,t[14]=M*s+S*l+C*p+_*y,t[15]=M*i+S*f+C*d+_*b,t}function Oa(t,e,r){let n=r[0],o=r[1],s=r[2],i,a,c,l,f,u,h,p,d,g,m,y;return e===t?(t[12]=e[0]*n+e[4]*o+e[8]*s+e[12],t[13]=e[1]*n+e[5]*o+e[9]*s+e[13],t[14]=e[2]*n+e[6]*o+e[10]*s+e[14],t[15]=e[3]*n+e[7]*o+e[11]*s+e[15]):(i=e[0],a=e[1],c=e[2],l=e[3],f=e[4],u=e[5],h=e[6],p=e[7],d=e[8],g=e[9],m=e[10],y=e[11],t[0]=i,t[1]=a,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=h,t[7]=p,t[8]=d,t[9]=g,t[10]=m,t[11]=y,t[12]=i*n+f*o+d*s+e[12],t[13]=a*n+u*o+g*s+e[13],t[14]=c*n+h*o+m*s+e[14],t[15]=l*n+p*o+y*s+e[15]),t}function Ua(t,e,r){let n=r[0],o=r[1],s=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]*o,t[5]=e[5]*o,t[6]=e[6]*o,t[7]=e[7]*o,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Da(t,e,r,n){let o=n[0],s=n[1],i=n[2],a=Math.sqrt(o*o+s*s+i*i),c,l,f,u,h,p,d,g,m,y,b,M,S,C,_,v,E,T,A,B,L,F,w,D;return a<1e-6?null:(a=1/a,o*=a,s*=a,i*=a,l=Math.sin(r),c=Math.cos(r),f=1-c,u=e[0],h=e[1],p=e[2],d=e[3],g=e[4],m=e[5],y=e[6],b=e[7],M=e[8],S=e[9],C=e[10],_=e[11],v=o*o*f+c,E=s*o*f+i*l,T=i*o*f-s*l,A=o*s*f-i*l,B=s*s*f+c,L=i*s*f+o*l,F=o*i*f+s*l,w=s*i*f-o*l,D=i*i*f+c,t[0]=u*v+g*E+M*T,t[1]=h*v+m*E+S*T,t[2]=p*v+y*E+C*T,t[3]=d*v+b*E+_*T,t[4]=u*A+g*B+M*L,t[5]=h*A+m*B+S*L,t[6]=p*A+y*B+C*L,t[7]=d*A+b*B+_*L,t[8]=u*F+g*w+M*D,t[9]=h*F+m*w+S*D,t[10]=p*F+y*w+C*D,t[11]=d*F+b*w+_*D,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function Ga(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[4],i=e[5],a=e[6],c=e[7],l=e[8],f=e[9],u=e[10],h=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]=s*o+l*n,t[5]=i*o+f*n,t[6]=a*o+u*n,t[7]=c*o+h*n,t[8]=l*o-s*n,t[9]=f*o-i*n,t[10]=u*o-a*n,t[11]=h*o-c*n,t}function Va(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[8],f=e[9],u=e[10],h=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]=s*o-l*n,t[1]=i*o-f*n,t[2]=a*o-u*n,t[3]=c*o-h*n,t[8]=s*n+l*o,t[9]=i*n+f*o,t[10]=a*n+u*o,t[11]=c*n+h*o,t}function Ha(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[4],f=e[5],u=e[6],h=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]=s*o+l*n,t[1]=i*o+f*n,t[2]=a*o+u*n,t[3]=c*o+h*n,t[4]=l*o-s*n,t[5]=f*o-i*n,t[6]=u*o-a*n,t[7]=h*o-c*n,t}function cT(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 lT(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 fT(t,e,r){let n=r[0],o=r[1],s=r[2],i=Math.sqrt(n*n+o*o+s*s),a,c,l;return i<1e-6?null:(i=1/i,n*=i,o*=i,s*=i,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=o*n*l+s*c,t[2]=s*n*l-o*c,t[3]=0,t[4]=n*o*l-s*c,t[5]=o*o*l+a,t[6]=s*o*l+n*c,t[7]=0,t[8]=n*s*l+o*c,t[9]=o*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function uT(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 hT(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 pT(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 Mh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=n+n,c=o+o,l=s+s,f=n*a,u=n*c,h=n*l,p=o*c,d=o*l,g=s*l,m=i*a,y=i*c,b=i*l;return t[0]=1-(p+g),t[1]=u+b,t[2]=h-y,t[3]=0,t[4]=u-b,t[5]=1-(f+g),t[6]=d+m,t[7]=0,t[8]=h+y,t[9]=d-m,t[10]=1-(f+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function dT(t,e){let r=new te(3),n=-e[0],o=-e[1],s=-e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=n*n+o*o+s*s+i*i;return u>0?(r[0]=(a*i+f*n+c*s-l*o)*2/u,r[1]=(c*i+f*o+l*n-a*s)*2/u,r[2]=(l*i+f*s+a*o-c*n)*2/u):(r[0]=(a*i+f*n+c*s-l*o)*2,r[1]=(c*i+f*o+l*n-a*s)*2,r[2]=(l*i+f*s+a*o-c*n)*2),Mh(t,e,r),t}function mT(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function Sh(t,e){let r=e[0],n=e[1],o=e[2],s=e[4],i=e[5],a=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.sqrt(r*r+n*n+o*o),t[1]=Math.sqrt(s*s+i*i+a*a),t[2]=Math.sqrt(c*c+l*l+f*f),t}function gT(t,e){let r=new te(3);Sh(r,e);let n=1/r[0],o=1/r[1],s=1/r[2],i=e[0]*n,a=e[1]*o,c=e[2]*s,l=e[4]*n,f=e[5]*o,u=e[6]*s,h=e[8]*n,p=e[9]*o,d=e[10]*s,g=i+f+d,m=0;return g>0?(m=Math.sqrt(g+1)*2,t[3]=.25*m,t[0]=(u-p)/m,t[1]=(h-c)/m,t[2]=(a-l)/m):i>f&&i>d?(m=Math.sqrt(1+i-f-d)*2,t[3]=(u-p)/m,t[0]=.25*m,t[1]=(a+l)/m,t[2]=(h+c)/m):f>d?(m=Math.sqrt(1+f-i-d)*2,t[3]=(h-c)/m,t[0]=(a+l)/m,t[1]=.25*m,t[2]=(u+p)/m):(m=Math.sqrt(1+d-i-f)*2,t[3]=(a-l)/m,t[0]=(h+c)/m,t[1]=(u+p)/m,t[2]=.25*m),t}function AT(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let o=n[0],s=n[1],i=n[2],a=n[4],c=n[5],l=n[6],f=n[8],u=n[9],h=n[10];r[0]=Math.sqrt(o*o+s*s+i*i),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(f*f+u*u+h*h);let p=1/r[0],d=1/r[1],g=1/r[2],m=o*p,y=s*d,b=i*g,M=a*p,S=c*d,C=l*g,_=f*p,v=u*d,E=h*g,T=m+S+E,A=0;return T>0?(A=Math.sqrt(T+1)*2,t[3]=.25*A,t[0]=(C-v)/A,t[1]=(_-b)/A,t[2]=(y-M)/A):m>S&&m>E?(A=Math.sqrt(1+m-S-E)*2,t[3]=(C-v)/A,t[0]=.25*A,t[1]=(y+M)/A,t[2]=(_+b)/A):S>E?(A=Math.sqrt(1+S-m-E)*2,t[3]=(_-b)/A,t[0]=(y+M)/A,t[1]=.25*A,t[2]=(C+v)/A):(A=Math.sqrt(1+E-m-S)*2,t[3]=(y-M)/A,t[0]=(_+b)/A,t[1]=(C+v)/A,t[2]=.25*A),t}function xT(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=o+o,l=s+s,f=i+i,u=o*c,h=o*l,p=o*f,d=s*l,g=s*f,m=i*f,y=a*c,b=a*l,M=a*f,S=n[0],C=n[1],_=n[2];return t[0]=(1-(d+m))*S,t[1]=(h+M)*S,t[2]=(p-b)*S,t[3]=0,t[4]=(h-M)*C,t[5]=(1-(u+m))*C,t[6]=(g+y)*C,t[7]=0,t[8]=(p+b)*_,t[9]=(g-y)*_,t[10]=(1-(u+d))*_,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function yT(t,e,r,n,o){let s=e[0],i=e[1],a=e[2],c=e[3],l=s+s,f=i+i,u=a+a,h=s*l,p=s*f,d=s*u,g=i*f,m=i*u,y=a*u,b=c*l,M=c*f,S=c*u,C=n[0],_=n[1],v=n[2],E=o[0],T=o[1],A=o[2],B=(1-(g+y))*C,L=(p+S)*C,F=(d-M)*C,w=(p-S)*_,D=(1-(h+y))*_,W=(m+b)*_,z=(d+M)*v,re=(m-b)*v,Y=(1-(h+g))*v;return t[0]=B,t[1]=L,t[2]=F,t[3]=0,t[4]=w,t[5]=D,t[6]=W,t[7]=0,t[8]=z,t[9]=re,t[10]=Y,t[11]=0,t[12]=r[0]+E-(B*E+w*T+z*A),t[13]=r[1]+T-(L*E+D*T+re*A),t[14]=r[2]+A-(F*E+W*T+Y*A),t[15]=1,t}function za(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,g=s*i,m=s*a,y=s*c;return t[0]=1-u-d,t[1]=f+y,t[2]=h-m,t[3]=0,t[4]=f-y,t[5]=1-l-d,t[6]=p+g,t[7]=0,t[8]=h+m,t[9]=p-g,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ka(t,e,r,n,o,s,i){let a=1/(r-e),c=1/(o-n),l=1/(s-i);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(o+n)*c,t[10]=(i+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=i*s*2*l,t[15]=0,t}function Eh(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=(o+n)*i,t[14]=2*o*n*i}else t[10]=-1,t[14]=-2*n;return t}var ja=Eh;function bT(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=o*i,t[14]=o*n*i}else t[10]=-1,t[14]=-n;return t}function TT(t,e,r,n){let o=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(i+a),l=2/(o+s);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]=-((i-a)*c*.5),t[9]=(o-s)*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 _h(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);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]=(o+n)*c,t[14]=(i+s)*l,t[15]=1,t}var qa=_h;function MT(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);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]=(o+n)*c,t[14]=s*l,t[15]=1,t}function Ja(t,e,r,n){let o,s,i,a,c,l,f,u,h,p,d=e[0],g=e[1],m=e[2],y=n[0],b=n[1],M=n[2],S=r[0],C=r[1],_=r[2];return Math.abs(d-S)<1e-6&&Math.abs(g-C)<1e-6&&Math.abs(m-_)<1e-6?Th(t):(u=d-S,h=g-C,p=m-_,o=1/Math.sqrt(u*u+h*h+p*p),u*=o,h*=o,p*=o,s=b*p-M*h,i=M*u-y*p,a=y*h-b*u,o=Math.sqrt(s*s+i*i+a*a),o?(o=1/o,s*=o,i*=o,a*=o):(s=0,i=0,a=0),c=h*a-p*i,l=p*s-u*a,f=u*i-h*s,o=Math.sqrt(c*c+l*l+f*f),o?(o=1/o,c*=o,l*=o,f*=o):(c=0,l=0,f=0),t[0]=s,t[1]=c,t[2]=u,t[3]=0,t[4]=i,t[5]=l,t[6]=h,t[7]=0,t[8]=a,t[9]=f,t[10]=p,t[11]=0,t[12]=-(s*d+i*g+a*m),t[13]=-(c*d+l*g+f*m),t[14]=-(u*d+h*g+p*m),t[15]=1,t)}function ST(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=n[0],c=n[1],l=n[2],f=o-r[0],u=s-r[1],h=i-r[2],p=f*f+u*u+h*h;p>0&&(p=1/Math.sqrt(p),f*=p,u*=p,h*=p);let d=c*h-l*u,g=l*f-a*h,m=a*u-c*f;return p=d*d+g*g+m*m,p>0&&(p=1/Math.sqrt(p),d*=p,g*=p,m*=p),t[0]=d,t[1]=g,t[2]=m,t[3]=0,t[4]=u*m-h*g,t[5]=h*d-f*m,t[6]=f*g-u*d,t[7]=0,t[8]=f,t[9]=u,t[10]=h,t[11]=0,t[12]=o,t[13]=s,t[14]=i,t[15]=1,t}function ET(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function _T(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 CT(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 Ch(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 BT(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 IT(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 vT(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 RT(t,e){let r=t[0],n=t[1],o=t[2],s=t[3],i=t[4],a=t[5],c=t[6],l=t[7],f=t[8],u=t[9],h=t[10],p=t[11],d=t[12],g=t[13],m=t[14],y=t[15],b=e[0],M=e[1],S=e[2],C=e[3],_=e[4],v=e[5],E=e[6],T=e[7],A=e[8],B=e[9],L=e[10],F=e[11],w=e[12],D=e[13],W=e[14],z=e[15];return Math.abs(r-b)<=1e-6*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(n-M)<=1e-6*Math.max(1,Math.abs(n),Math.abs(M))&&Math.abs(o-S)<=1e-6*Math.max(1,Math.abs(o),Math.abs(S))&&Math.abs(s-C)<=1e-6*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(i-_)<=1e-6*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(a-v)<=1e-6*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(c-E)<=1e-6*Math.max(1,Math.abs(c),Math.abs(E))&&Math.abs(l-T)<=1e-6*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(f-A)<=1e-6*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(u-B)<=1e-6*Math.max(1,Math.abs(u),Math.abs(B))&&Math.abs(h-L)<=1e-6*Math.max(1,Math.abs(h),Math.abs(L))&&Math.abs(p-F)<=1e-6*Math.max(1,Math.abs(p),Math.abs(F))&&Math.abs(d-w)<=1e-6*Math.max(1,Math.abs(d),Math.abs(w))&&Math.abs(g-D)<=1e-6*Math.max(1,Math.abs(g),Math.abs(D))&&Math.abs(m-W)<=1e-6*Math.max(1,Math.abs(m),Math.abs(W))&&Math.abs(y-z)<=1e-6*Math.max(1,Math.abs(y),Math.abs(z))}var wT=Rn,LT=Ch;function FT(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function Bh(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 Ih(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 vh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return Math.sqrt(e*e+r*r+n*n+o*o)}function Rh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function wh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function Lh(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Fh(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function Ph(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3];return t[0]=r[0]*n+r[4]*o+r[8]*s+r[12]*i,t[1]=r[1]*n+r[5]*o+r[9]*s+r[13]*i,t[2]=r[2]*n+r[6]*o+r[10]*s+r[14]*i,t[3]=r[3]*n+r[7]*o+r[11]*s+r[15]*i,t}function Nh(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2],l=r[3],f=l*n+a*s-c*o,u=l*o+c*n-i*s,h=l*s+i*o-a*n,p=-i*n-a*o-c*s;return t[0]=f*l+p*-i+u*-c-h*-a,t[1]=u*l+p*-a+h*-i-f*-c,t[2]=h*l+p*-c+f*-a-u*-i,t[3]=e[3],t}var Vw=function(){let t=FT();return function(e,r,n,o,s,i){let a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var Xa;(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"})(Xa||(Xa={}));var NT=45*Math.PI/180,OT=1,Wa=.1,Ka=500,UT=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),N=class extends Ur{static get IDENTITY(){return GT()}static get ZERO(){return DT()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return Xa}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,o,s,i,a,c,l,f,u,h,p,d,g,m){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this[9]=f,this[10]=u,this[11]=h,this[12]=p,this[13]=d,this[14]=g,this[15]=m,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l,f,u,h,p,d,g,m){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=i,this[6]=f,this[7]=d,this[8]=n,this[9]=a,this[10]=u,this[11]=g,this[12]=o,this[13]=c,this[14]=h,this[15]=m,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(UT)}fromObject(e){return this.check()}fromQuaternion(e){return za(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:o,top:s,near:i=Wa,far:a=Ka}=e;return a===1/0?VT(this,r,n,o,s,i):ka(this,r,n,o,s,i,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:o=[0,1,0]}=e;return Ja(this,r,n,o),this.check()}ortho(e){let{left:r,right:n,bottom:o,top:s,near:i=Wa,far:a=Ka}=e;return qa(this,r,n,o,s,i,a),this.check()}orthographic(e){let{fovy:r=NT,aspect:n=OT,focalDistance:o=1,near:s=Wa,far:i=Ka}=e;Oh(r);let a=r/2,c=o*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:i})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:o=.1,far:s=500}=e;return Oh(r),ja(this,r,n,o,s),this.check()}determinant(){return Na(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),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*o,e[5]=this[5]*s,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*o,e[9]=this[9]*s,e[10]=this[10]*i,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),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=this[4]*o,e[4]=this[5]*s,e[5]=this[6]*i,e[6]=this[8]*o,e[7]=this[9]*s,e[8]=this[10]*i,e}transpose(){return Fa(this,this),this.check()}invert(){return Pa(this,this),this.check()}multiplyLeft(e){return Rn(this,e,this),this.check()}multiplyRight(e){return Rn(this,this,e),this.check()}rotateX(e){return Ga(this,this,e),this.check()}rotateY(e){return Va(this,this,e),this.check()}rotateZ(e){return Ha(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return Da(this,this,e,r),this.check()}scale(e){return Ua(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return Oa(this,this,e),this.check()}transform(e,r){return e.length===4?(r=Ph(r||[-0,-0,-0,-0],e,this),It(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,o;switch(n){case 2:o=ls(r||[-0,-0],e,this);break;case 3:o=Zt(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(o,e.length),o}transformAsVector(e,r){let n;switch(e.length){case 2:n=fs(r||[-0,-0],e,this);break;case 3:n=us(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(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])}},ys,bs;function DT(){return ys||(ys=new N([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(ys)),ys}function GT(){return bs||(bs=new N,Object.freeze(bs)),bs}function Oh(t){if(t>Math.PI*2)throw Error("expected radians")}function VT(t,e,r,n,o,s){let i=2*s/(r-e),a=2*s/(o-n),c=(r+e)/(r-e),l=(o+n)/(o-n),f=-1,u=-1,h=-2*s;return t[0]=i,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]=f,t[11]=u,t[12]=0,t[13]=0,t[14]=h,t[15]=0,t}function Uh(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Dh(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Ya(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 Qa(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Gh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function Vh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function Hh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function zh(t,e){let r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function Ln(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,g,m;return h=o*c+s*l+i*f+a*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>1e-6?(p=Math.acos(h),m=Math.sin(p),d=Math.sin((1-n)*p)/m,g=Math.sin(n*p)/m):(d=1-n,g=n),t[0]=d*o+g*c,t[1]=d*s+g*l,t[2]=d*i+g*f,t[3]=d*a+g*u,t}function kh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function jh(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Za(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 o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);let s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}var qh=Bh;var Jh=Ih,Wh=Lh,Kh=Fh,Xh=vh;var Yh=Rh;var Qh=wh;var Zh=function(){let t=ps(),e=ds(1,0,0),r=ds(0,1,0);return function(n,o,s){let i=Bn(o,s);return i<-.999999?(Qt(t,e,o),Ia(t)<1e-6&&Qt(t,r,o),Sa(t,t),Ya(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Qt(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,Qh(n,n))}}(),eL=function(){let t=Uh(),e=Uh();return function(r,n,o,s,i,a){return Ln(t,n,i,a),Ln(e,o,s,a),Ln(r,t,e,2*a*(1-a)),r}}(),tL=function(){let t=dh();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],Qh(e,Za(e,t))}}();var HT=[0,0,0,1],st=class extends Bt{constructor(e=0,r=0,n=0,o=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,o)}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,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,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 Za(this,e),this.check()}fromAxisRotation(e,r){return Ya(this,e,r),this.check()}identity(){return Dh(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]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}len(){return Xh(this)}lengthSquared(){return Yh(this)}dot(e){return Wh(this,e)}rotationTo(e,r){return Zh(this,e,r),this.check()}add(e){return qh(this,this,e),this.check()}calculateW(){return zh(this,this),this.check()}conjugate(){return jh(this,this),this.check()}invert(){return kh(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(Kh(this,e,r,n),this.check())}multiplyRight(e){return Qa(this,this,e),this.check()}multiplyLeft(e){return Qa(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 Gh(this,this,e),this.check()}rotateY(e){return Vh(this,this,e),this.check()}rotateZ(e){return Hh(this,this,e),this.check()}scale(e){return Jh(this,this,e),this.check()}slerp(e,r,n){let o,s,i;switch(arguments.length){case 1:({start:o=HT,target:s,ratio:i}=e);break;case 2:o=this,s=e,i=r;break;default:o=e,s=r,i=n}return Ln(this,o,s,i),this.check()}transformVector4(e,r=new Or){return Nh(r,e,this),It(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 Ge={};be(Ge,{EPSILON1:()=>zT,EPSILON10:()=>QT,EPSILON11:()=>ZT,EPSILON12:()=>$T,EPSILON13:()=>eM,EPSILON14:()=>tM,EPSILON15:()=>rM,EPSILON16:()=>nM,EPSILON17:()=>oM,EPSILON18:()=>sM,EPSILON19:()=>iM,EPSILON2:()=>kT,EPSILON20:()=>aM,EPSILON3:()=>jT,EPSILON4:()=>qT,EPSILON5:()=>JT,EPSILON6:()=>WT,EPSILON7:()=>KT,EPSILON8:()=>XT,EPSILON9:()=>YT,PI_OVER_FOUR:()=>lM,PI_OVER_SIX:()=>fM,PI_OVER_TWO:()=>cM,TWO_PI:()=>uM});var zT=.1,kT=.01,jT=.001,qT=1e-4,JT=1e-5,WT=1e-6,KT=1e-7,XT=1e-8,YT=1e-9,QT=1e-10,ZT=1e-11,$T=1e-12,eM=1e-13,tM=1e-14,rM=1e-15,nM=1e-16,oM=1e-17,sM=1e-18,iM=1e-19,aM=1e-20,cM=Math.PI/2,lM=Math.PI/4,fM=Math.PI/6,uM=Math.PI*2;function Ts(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let n=r[0]-e;n>180?r[0]-=360:n<-180&&(r[0]+=360)}}function hM(t,e,r){let[n,o]=(0,Fn.cellToLatLng)(t),s=e.length;Ts(e,o);let i=e[0]===e[s-1]?s-1:s;for(let a=0;a<i;a++)e[a][0]=Ct(o,e[a][0],r),e[a][1]=Ct(n,e[a][1],r)}function $h(t,e,r){let n=t(e,r),[o,s]=(0,Fn.cellToLatLng)(n);return[s,o]}function $a(t,e=1){let r=(0,Fn.cellToBoundary)(t,!0);return e!==1?hM(t,r,e):Ts(r),r}function Ms(t){let e=new Float64Array(t.length*2),r=0;for(let n of t)e[r++]=n[0],e[r++]=n[1];return e}var pM={getPentagon:{type:"accessor",value:t=>t.pentagon}},Pn=class extends De{indexToBounds(){let{data:e,getPentagon:r}=this.props;return{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(n,o)=>{let s=r(n,o),i=Qu(typeof s=="string"?Zu(s):s,{closedRing:!0,segments:"auto"});return Ms(i)}}}};Pn.layerName="A5Layer";Pn.defaultProps=pM;var ep=Pn;var fr=U(Xe(),1),td=U(Ke(),1),rd=U(er(),1);function dM(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function Ss(t){if(Array.isArray(t))return t.map(e=>Ss(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[dM(r)]=Ss(n);return e}return t}var rp=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",mM=rp+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",gM="["+rp+"]["+mM+"]*",AM=new RegExp("^"+gM+"$");function Es(t,e){let r=[],n=e.exec(t);for(;n;){let o=[];o.startIndex=e.lastIndex-n[0].length;let s=n.length;for(let i=0;i<s;i++)o.push(n[i]);r.push(o),n=e.exec(t)}return r}var Dr=function(t){let e=AM.exec(t);return!(e===null||typeof e>"u")};function np(t){return typeof t<"u"}var Nn=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],_s=["__proto__","constructor","prototype"];var xM={allowBooleanAttributes:!1,unpairedTags:[]};function cp(t,e){e=Object.assign({},xM,e);let r=[],n=!1,o=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let s=0;s<t.length;s++)if(t[s]==="<"&&t[s+1]==="?"){if(s+=2,s=sp(t,s),s.err)return s}else if(t[s]==="<"){let i=s;if(s++,t[s]==="!"){s=ip(t,s);continue}else{let a=!1;t[s]==="/"&&(a=!0,s++);let c="";for(;s<t.length&&t[s]!==">"&&t[s]!==" "&&t[s]!==" "&&t[s]!==`
8
- `&&t[s]!=="\r";s++)c+=t[s];if(c=c.trim(),c[c.length-1]==="/"&&(c=c.substring(0,c.length-1),s--),!CM(c)){let u;return c.trim().length===0?u="Invalid space after '<'.":u="Tag '"+c+"' is an invalid name.",se("InvalidTag",u,Ce(t,s))}let l=TM(t,s);if(l===!1)return se("InvalidAttr","Attributes for '"+c+"' have open quote.",Ce(t,s));let f=l.value;if(s=l.index,f[f.length-1]==="/"){let u=s-f.length;f=f.substring(0,f.length-1);let h=ap(f,e);if(h===!0)n=!0;else return se(h.err.code,h.err.msg,Ce(t,u+h.err.line))}else if(a)if(l.tagClosed){if(f.trim().length>0)return se("InvalidTag","Closing tag '"+c+"' can't have attributes or invalid starting.",Ce(t,i));if(r.length===0)return se("InvalidTag","Closing tag '"+c+"' has not been opened.",Ce(t,i));{let u=r.pop();if(c!==u.tagName){let h=Ce(t,u.tagStartPos);return se("InvalidTag","Expected closing tag '"+u.tagName+"' (opened in line "+h.line+", col "+h.col+") instead of closing tag '"+c+"'.",Ce(t,i))}r.length==0&&(o=!0)}}else return se("InvalidTag","Closing tag '"+c+"' doesn't have proper closing.",Ce(t,s));else{let u=ap(f,e);if(u!==!0)return se(u.err.code,u.err.msg,Ce(t,s-f.length+u.err.line));if(o===!0)return se("InvalidXml","Multiple possible root nodes found.",Ce(t,s));e.unpairedTags.indexOf(c)!==-1||r.push({tagName:c,tagStartPos:i}),n=!0}for(s++;s<t.length;s++)if(t[s]==="<")if(t[s+1]==="!"){s++,s=ip(t,s);continue}else if(t[s+1]==="?"){if(s=sp(t,++s),s.err)return s}else break;else if(t[s]==="&"){let u=EM(t,s);if(u==-1)return se("InvalidChar","char '&' is not expected.",Ce(t,s));s=u}else if(o===!0&&!op(t[s]))return se("InvalidXml","Extra text at the end",Ce(t,s));t[s]==="<"&&s--}}else{if(op(t[s]))continue;return se("InvalidChar","char '"+t[s]+"' is not expected.",Ce(t,s))}if(n){if(r.length==1)return se("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",Ce(t,r[0].tagStartPos));if(r.length>0)return se("InvalidXml","Invalid '"+JSON.stringify(r.map(s=>s.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return se("InvalidXml","Start tag expected.",1);return!0}function op(t){return t===" "||t===" "||t===`
9
- `||t==="\r"}function sp(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let n=t.substr(r,e-r);if(e>5&&n==="xml")return se("InvalidXml","XML declaration allowed only at the start of the document.",Ce(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function ip(t,e){if(t.length>e+5&&t[e+1]==="-"&&t[e+2]==="-"){for(e+=3;e<t.length;e++)if(t[e]==="-"&&t[e+1]==="-"&&t[e+2]===">"){e+=2;break}}else if(t.length>e+8&&t[e+1]==="D"&&t[e+2]==="O"&&t[e+3]==="C"&&t[e+4]==="T"&&t[e+5]==="Y"&&t[e+6]==="P"&&t[e+7]==="E"){let r=1;for(e+=8;e<t.length;e++)if(t[e]==="<")r++;else if(t[e]===">"&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]==="["&&t[e+2]==="C"&&t[e+3]==="D"&&t[e+4]==="A"&&t[e+5]==="T"&&t[e+6]==="A"&&t[e+7]==="["){for(e+=8;e<t.length;e++)if(t[e]==="]"&&t[e+1]==="]"&&t[e+2]===">"){e+=2;break}}return e}var yM='"',bM="'";function TM(t,e){let r="",n="",o=!1;for(;e<t.length;e++){if(t[e]===yM||t[e]===bM)n===""?n=t[e]:n!==t[e]||(n="");else if(t[e]===">"&&n===""){o=!0;break}r+=t[e]}return n!==""?!1:{value:r,index:e,tagClosed:o}}var MM=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function ap(t,e){let r=Es(t,MM),n={};for(let o=0;o<r.length;o++){if(r[o][1].length===0)return se("InvalidAttr","Attribute '"+r[o][2]+"' has no space in starting.",On(r[o]));if(r[o][3]!==void 0&&r[o][4]===void 0)return se("InvalidAttr","Attribute '"+r[o][2]+"' is without value.",On(r[o]));if(r[o][3]===void 0&&!e.allowBooleanAttributes)return se("InvalidAttr","boolean attribute '"+r[o][2]+"' is not allowed.",On(r[o]));let s=r[o][2];if(!_M(s))return se("InvalidAttr","Attribute '"+s+"' is an invalid name.",On(r[o]));if(!Object.prototype.hasOwnProperty.call(n,s))n[s]=1;else return se("InvalidAttr","Attribute '"+s+"' is repeated.",On(r[o]))}return!0}function SM(t,e){let r=/\d/;for(t[e]==="x"&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===";")return e;if(!t[e].match(r))break}return-1}function EM(t,e){if(e++,t[e]===";")return-1;if(t[e]==="#")return e++,SM(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===";")break;return-1}return e}function se(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function _M(t){return Dr(t)}function CM(t){return Dr(t)}function Ce(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function On(t){return t.startIndex+t[1].length}var lp=t=>Nn.includes(t)?"__"+t:t,BM={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:lp};function IM(t,e){if(typeof t!="string")return;let r=t.toLowerCase();if(Nn.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);if(_s.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`)}function fp(t){return typeof t=="boolean"?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:typeof t=="object"&&t!==null?{enabled:t.enabled!==!1,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??1e3),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:fp(!0)}var up=function(t){let e=Object.assign({},BM,t),r=[{value:e.attributeNamePrefix,name:"attributeNamePrefix"},{value:e.attributesGroupName,name:"attributesGroupName"},{value:e.textNodeName,name:"textNodeName"},{value:e.cdataPropName,name:"cdataPropName"},{value:e.commentPropName,name:"commentPropName"}];for(let{value:n,name:o}of r)n&&IM(n,o);return e.onDangerousProperty===null&&(e.onDangerousProperty=lp),e.processEntities=fp(e.processEntities),e.unpairedTagsSet=new Set(e.unpairedTags),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(n=>typeof n=="string"&&n.startsWith("*.")?".."+n.substring(2):n)),e};var Cs;typeof Symbol!="function"?Cs="@@xmlMetadata":Cs=Symbol("XML Node Metadata");var ve=class{constructor(e){this.tagname=e,this.child=[],this[":@"]=Object.create(null)}add(e,r){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:r})}addChild(e,r){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,[":@"]:e[":@"]}):this.child.push({[e.tagname]:e.child}),r!==void 0&&(this.child[this.child.length-1][Cs]={startIndex:r})}static getMetaDataSymbol(){return Cs}};var Dn=class{constructor(e){this.suppressValidationErr=!e,this.options=e}readDocType(e,r){let n=Object.create(null),o=0;if(e[r+3]==="O"&&e[r+4]==="C"&&e[r+5]==="T"&&e[r+6]==="Y"&&e[r+7]==="P"&&e[r+8]==="E"){r=r+9;let s=1,i=!1,a=!1,c="";for(;r<e.length;r++)if(e[r]==="<"&&!a){if(i&&tr(e,"!ENTITY",r)){r+=7;let l,f;if([l,f,r]=this.readEntityExp(e,r+1,this.suppressValidationErr),f.indexOf("&")===-1){if(this.options.enabled!==!1&&this.options.maxEntityCount!=null&&o>=this.options.maxEntityCount)throw new Error(`Entity count (${o+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);let u=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n[l]={regx:RegExp(`&${u};`,"g"),val:f},o++}}else if(i&&tr(e,"!ELEMENT",r)){r+=8;let{index:l}=this.readElementExp(e,r+1);r=l}else if(i&&tr(e,"!ATTLIST",r))r+=8;else if(i&&tr(e,"!NOTATION",r)){r+=9;let{index:l}=this.readNotationExp(e,r+1,this.suppressValidationErr);r=l}else if(tr(e,"!--",r))a=!0;else throw new Error("Invalid DOCTYPE");s++,c=""}else if(e[r]===">"){if(a?e[r-1]==="-"&&e[r-2]==="-"&&(a=!1,s--):s--,s===0)break}else e[r]==="["?i=!0:c+=e[r];if(s!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:r}}readEntityExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r])&&e[r]!=='"'&&e[r]!=="'";)r++;let o=e.substring(n,r);if(Un(o),r=Re(e,r),!this.suppressValidationErr){if(e.substring(r,r+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[r]==="%")throw new Error("Parameter entities are not supported")}let s="";if([r,s]=this.readIdentifierVal(e,r,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize!=null&&s.length>this.options.maxEntitySize)throw new Error(`Entity "${o}" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return r--,[o,s,r]}readNotationExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);!this.suppressValidationErr&&Un(o),r=Re(e,r);let s=e.substring(r,r+6).toUpperCase();if(!this.suppressValidationErr&&s!=="SYSTEM"&&s!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${s}"`);r+=s.length,r=Re(e,r);let i=null,a=null;if(s==="PUBLIC")[r,i]=this.readIdentifierVal(e,r,"publicIdentifier"),r=Re(e,r),(e[r]==='"'||e[r]==="'")&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"));else if(s==="SYSTEM"&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"),!this.suppressValidationErr&&!a))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:o,publicIdentifier:i,systemIdentifier:a,index:--r}}readIdentifierVal(e,r,n){let o="",s=e[r];if(s!=='"'&&s!=="'")throw new Error(`Expected quoted string, found "${s}"`);r++;let i=r;for(;r<e.length&&e[r]!==s;)r++;if(o=e.substring(i,r),e[r]!==s)throw new Error(`Unterminated ${n} value`);return r++,[r,o]}readElementExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);if(!this.suppressValidationErr&&!Dr(o))throw new Error(`Invalid element name: "${o}"`);r=Re(e,r);let s="";if(e[r]==="E"&&tr(e,"MPTY",r))r+=4;else if(e[r]==="A"&&tr(e,"NY",r))r+=2;else if(e[r]==="("){r++;let i=r;for(;r<e.length&&e[r]!==")";)r++;if(s=e.substring(i,r),e[r]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[r]}"`);return{elementName:o,contentModel:s.trim(),index:r}}readAttlistExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);for(Un(o),r=Re(e,r),n=r;r<e.length&&!/\s/.test(e[r]);)r++;let s=e.substring(n,r);if(!Un(s))throw new Error(`Invalid attribute name: "${s}"`);r=Re(e,r);let i="";if(e.substring(r,r+8).toUpperCase()==="NOTATION"){if(i="NOTATION",r+=8,r=Re(e,r),e[r]!=="(")throw new Error(`Expected '(', found "${e[r]}"`);r++;let c=[];for(;r<e.length&&e[r]!==")";){let l=r;for(;r<e.length&&e[r]!=="|"&&e[r]!==")";)r++;let f=e.substring(l,r);if(f=f.trim(),!Un(f))throw new Error(`Invalid notation name: "${f}"`);c.push(f),e[r]==="|"&&(r++,r=Re(e,r))}if(e[r]!==")")throw new Error("Unterminated list of notations");r++,i+=" ("+c.join("|")+")"}else{let c=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;i+=e.substring(c,r);let l=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!l.includes(i.toUpperCase()))throw new Error(`Invalid attribute type: "${i}"`)}r=Re(e,r);let a="";return e.substring(r,r+8).toUpperCase()==="#REQUIRED"?(a="#REQUIRED",r+=8):e.substring(r,r+7).toUpperCase()==="#IMPLIED"?(a="#IMPLIED",r+=7):[r,a]=this.readIdentifierVal(e,r,"ATTLIST"),{elementName:o,attributeName:s,attributeType:i,defaultValue:a,index:r}}},Re=(t,e)=>{for(;e<t.length&&/\s/.test(t[e]);)e++;return e};function tr(t,e,r){for(let n=0;n<e.length;n++)if(e[n]!==t[r+n+1])return!1;return!0}function Un(t){if(Dr(t))return t;throw new Error(`Invalid entity name ${t}`)}var vM=/^[-+]?0x[a-fA-F0-9]+$/,RM=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,wM={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original"};function ec(t,e={}){if(e=Object.assign({},wM,e),!t||typeof t!="string")return t;let r=t.trim();if(r.length===0)return t;if(e.skipLike!==void 0&&e.skipLike.test(r))return t;if(r==="0")return 0;if(e.hex&&vM.test(r))return NM(r,16);if(isFinite(r)){if(r.includes("e")||r.includes("E"))return FM(t,r,e);{let n=RM.exec(r);if(n){let o=n[1]||"",s=n[2],i=PM(n[3]),a=o?t[s.length+1]===".":t[s.length]===".";if(!e.leadingZeros&&(s.length>1||s.length===1&&!a))return t;{let c=Number(r),l=String(c);if(c===0)return c;if(l.search(/[eE]/)!==-1)return e.eNotation?c:t;if(r.indexOf(".")!==-1)return l==="0"||l===i||l===`${o}${i}`?c:t;let f=s?i:r;return s?f===l||o+f===l?c:t:f===l||f===o+l?c:t}}else return t}}else return OM(t,Number(r),e)}var LM=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function FM(t,e,r){if(!r.eNotation)return t;let n=e.match(LM);if(n){let o=n[1]||"",s=n[3].indexOf("e")===-1?"E":"e",i=n[2],a=o?t[i.length+1]===s:t[i.length]===s;return i.length>1&&a?t:i.length===1&&(n[3].startsWith(`.${s}`)||n[3][0]===s)?Number(e):i.length>0?r.leadingZeros&&!a?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}else return t}function PM(t){return t&&t.indexOf(".")!==-1&&(t=t.replace(/0+$/,""),t==="."?t="0":t[0]==="."?t="0"+t:t[t.length-1]==="."&&(t=t.substring(0,t.length-1))),t}function NM(t,e){if(parseInt)return parseInt(t,e);if(Number.parseInt)return Number.parseInt(t,e);if(window&&window.parseInt)return window.parseInt(t,e);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function OM(t,e,r){let n=e===1/0;switch(r.infinity.toLowerCase()){case"null":return null;case"infinity":return e;case"string":return n?"Infinity":"-Infinity";case"original":default:return t}}function tc(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(let r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}var rr=class{constructor(e,r={},n){this.pattern=e,this.separator=r.separator||".",this.segments=this._parse(e),this.data=n,this._hasDeepWildcard=this.segments.some(o=>o.type==="deep-wildcard"),this._hasAttributeCondition=this.segments.some(o=>o.attrName!==void 0),this._hasPositionSelector=this.segments.some(o=>o.position!==void 0)}_parse(e){let r=[],n=0,o="";for(;n<e.length;)e[n]===this.separator?n+1<e.length&&e[n+1]===this.separator?(o.trim()&&(r.push(this._parseSegment(o.trim())),o=""),r.push({type:"deep-wildcard"}),n+=2):(o.trim()&&r.push(this._parseSegment(o.trim())),o="",n++):(o+=e[n],n++);return o.trim()&&r.push(this._parseSegment(o.trim())),r}_parseSegment(e){let r={type:"tag"},n=null,o=e,s=e.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(s&&(o=s[1]+s[3],s[2])){let f=s[2].slice(1,-1);f&&(n=f)}let i,a=o;if(o.includes("::")){let f=o.indexOf("::");if(i=o.substring(0,f).trim(),a=o.substring(f+2).trim(),!i)throw new Error(`Invalid namespace in pattern: ${e}`)}let c,l=null;if(a.includes(":")){let f=a.lastIndexOf(":"),u=a.substring(0,f).trim(),h=a.substring(f+1).trim();["first","last","odd","even"].includes(h)||/^nth\(\d+\)$/.test(h)?(c=u,l=h):c=a}else c=a;if(!c)throw new Error(`Invalid segment pattern: ${e}`);if(r.tag=c,i&&(r.namespace=i),n)if(n.includes("=")){let f=n.indexOf("=");r.attrName=n.substring(0,f).trim(),r.attrValue=n.substring(f+1).trim()}else r.attrName=n.trim();if(l){let f=l.match(/^nth\((\d+)\)$/);f?(r.position="nth",r.positionValue=parseInt(f[1],10)):r.position=l}return r}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}};var Gr=class{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._patterns=new Set,this._sealed=!1}add(e){if(this._sealed)throw new TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(e.pattern))return this;if(this._patterns.add(e.pattern),e.hasDeepWildcard())return this._deepWildcards.push(e),this;let r=e.length,o=e.segments[e.segments.length-1]?.tag;if(!o||o==="*")this._wildcardByDepth.has(r)||this._wildcardByDepth.set(r,[]),this._wildcardByDepth.get(r).push(e);else{let s=`${r}:${o}`;this._byDepthAndTag.has(s)||this._byDepthAndTag.set(s,[]),this._byDepthAndTag.get(s).push(e)}return this}addAll(e){for(let r of e)this.add(r);return this}has(e){return this._patterns.has(e.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(e){return this.findMatch(e)!==null}findMatch(e){let r=e.getDepth(),n=e.getCurrentTag(),o=`${r}:${n}`,s=this._byDepthAndTag.get(o);if(s){for(let a=0;a<s.length;a++)if(e.matches(s[a]))return s[a]}let i=this._wildcardByDepth.get(r);if(i){for(let a=0;a<i.length;a++)if(e.matches(i[a]))return i[a]}for(let a=0;a<this._deepWildcards.length;a++)if(e.matches(this._deepWildcards[a]))return this._deepWildcards[a];return null}};var UM=new Set(["push","pop","reset","updateCurrent","restore"]),Vr=class{constructor(e={}){this.separator=e.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null}push(e,r=null,n=null){if(this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path.length>0){let f=this.path[this.path.length-1];f.values=void 0}let o=this.path.length;this.siblingStacks[o]||(this.siblingStacks[o]=new Map);let s=this.siblingStacks[o],i=n?`${n}:${e}`:e,a=s.get(i)||0,c=0;for(let f of s.values())c+=f;s.set(i,a+1);let l={tag:e,position:c,counter:a};n!=null&&(l.namespace=n),r!=null&&(l.values=r),this.path.push(l)}pop(){if(this.path.length===0)return;this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null;let e=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),e}updateCurrent(e){if(this.path.length>0){let r=this.path[this.path.length-1];e!=null&&(r.values=e,this._frozenPathCache=null)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(e){return this.path.length===0?void 0:this.path[this.path.length-1].values?.[e]}hasAttr(e){if(this.path.length===0)return!1;let r=this.path[this.path.length-1];return r.values!==void 0&&e in r.values}getPosition(){return this.path.length===0?-1:this.path[this.path.length-1].position??0}getCounter(){return this.path.length===0?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(e,r=!0){let n=e||this.separator;if(n===this.separator&&r===!0){if(this._pathStringCache!==null&&this._pathStringCache!==void 0)return this._pathStringCache;let s=this.path.map(i=>r&&i.namespace?`${i.namespace}:${i.tag}`:i.tag).join(n);return this._pathStringCache=s,s}return this.path.map(s=>r&&s.namespace?`${s.namespace}:${s.tag}`:s.tag).join(n)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=[],this.siblingStacks=[]}matches(e){let r=e.segments;return r.length===0?!1:e.hasDeepWildcard()?this._matchWithDeepWildcard(r):this._matchSimple(r)}_matchSimple(e){if(this.path.length!==e.length)return!1;for(let r=0;r<e.length;r++){let n=e[r],o=this.path[r],s=r===this.path.length-1;if(!this._matchSegment(n,o,s))return!1}return!0}_matchWithDeepWildcard(e){let r=this.path.length-1,n=e.length-1;for(;n>=0&&r>=0;){let o=e[n];if(o.type==="deep-wildcard"){if(n--,n<0)return!0;let s=e[n],i=!1;for(let a=r;a>=0;a--){let c=a===this.path.length-1;if(this._matchSegment(s,this.path[a],c)){r=a-1,n--,i=!0;break}}if(!i)return!1}else{let s=r===this.path.length-1;if(!this._matchSegment(o,this.path[r],s))return!1;r--,n--}}return n<0}_matchSegment(e,r,n){if(e.tag!=="*"&&e.tag!==r.tag||e.namespace!==void 0&&e.namespace!=="*"&&e.namespace!==r.namespace)return!1;if(e.attrName!==void 0){if(!n||!r.values||!(e.attrName in r.values))return!1;if(e.attrValue!==void 0){let o=r.values[e.attrName];if(String(o)!==String(e.attrValue))return!1}}if(e.position!==void 0){if(!n)return!1;let o=r.counter??0;if(e.position==="first"&&o!==0)return!1;if(e.position==="odd"&&o%2!==1)return!1;if(e.position==="even"&&o%2!==0)return!1;if(e.position==="nth"&&o!==e.positionValue)return!1}return!0}matchesAny(e){return e.matchesAny(this)}snapshot(){return{path:this.path.map(e=>({...e})),siblingStacks:this.siblingStacks.map(e=>new Map(e))}}restore(e){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=e.path.map(r=>({...r})),this.siblingStacks=e.siblingStacks.map(r=>new Map(r))}readOnly(){let e=this;return new Proxy(e,{get(r,n,o){if(UM.has(n))return()=>{throw new TypeError(`Cannot call '${n}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};if(n==="path")return r._frozenPathCache===null&&(r._frozenPathCache=Object.freeze(r.path.map(i=>Object.freeze({...i})))),r._frozenPathCache;if(n==="siblingStacks")return r._frozenSiblingsCache===null&&(r._frozenSiblingsCache=Object.freeze(r.siblingStacks.map(i=>Object.freeze(new Map(i))))),r._frozenSiblingsCache;let s=Reflect.get(r,n,o);return typeof s=="function"?s.bind(r):s},set(r,n){throw new TypeError(`Cannot set property '${String(n)}' on a read-only Matcher.`)},deleteProperty(r,n){throw new TypeError(`Cannot delete property '${String(n)}' from a read-only Matcher.`)}})}};function DM(t,e){if(!t)return{};let r=e.attributesGroupName?t[e.attributesGroupName]:t;if(!r)return{};let n={};for(let o in r)if(o.startsWith(e.attributeNamePrefix)){let s=o.substring(e.attributeNamePrefix.length);n[s]=r[o]}else n[o]=r[o];return n}function GM(t){if(!t||typeof t!="string")return;let e=t.indexOf(":");if(e!==-1&&e>0){let r=t.substring(0,e);if(r!=="xmlns")return r}}var Gn=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\xA2"},pound:{regex:/&(pound|#163);/g,val:"\xA3"},yen:{regex:/&(yen|#165);/g,val:"\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\xA9"},reg:{regex:/&(reg|#174);/g,val:"\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(n,o)=>hp(o,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(n,o)=>hp(o,16,"&#x")}},this.addExternalEntities=VM,this.parseXml=qM,this.parseTextData=HM,this.resolveNameSpace=zM,this.buildAttributesMap=jM,this.isItStopNode=XM,this.replaceEntitiesValue=WM,this.readStopNodeData=ZM,this.saveTextToParentTag=KM,this.addChild=JM,this.ignoreAttributesFn=tc(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new Vr,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new Gr;let r=this.options.stopNodes;if(r&&r.length>0){for(let n=0;n<r.length;n++){let o=r[n];typeof o=="string"?this.stopNodeExpressionsSet.add(new rr(o)):o instanceof rr&&this.stopNodeExpressionsSet.add(o)}this.stopNodeExpressionsSet.seal()}}};function VM(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r],o=n.replace(/[.\-+*:]/g,"\\.");this.lastEntities[n]={regex:new RegExp("&"+o+";","g"),val:t[n]}}}function HM(t,e,r,n,o,s,i){let a=this.options;if(t!==void 0&&(a.trimValues&&!n&&(t=t.trim()),t.length>0)){i||(t=this.replaceEntitiesValue(t,e,r));let c=a.jPath?r.toString():r,l=a.tagValueProcessor(e,t,c,o,s);return l==null?t:typeof l!=typeof t||l!==t?l:a.trimValues||t.trim()===t?oc(t,a.parseTagValue,a.numberParseOptions):t}}function zM(t){if(this.options.removeNSPrefix){let e=t.split(":"),r=t.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(t=r+e[1])}return t}var kM=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function jM(t,e,r){let n=this.options;if(n.ignoreAttributes!==!0&&typeof t=="string"){let o=Es(t,kM),s=o.length,i={},a=new Array(s),c=!1,l={};for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]),d=o[h][4];if(p.length&&d!==void 0){let g=d;n.trimValues&&(g=g.trim()),g=this.replaceEntitiesValue(g,r,this.readonlyMatcher),a[h]=g,l[p]=g,c=!0}}c&&typeof e=="object"&&e.updateCurrent&&e.updateCurrent(l);let f=n.jPath?e.toString():this.readonlyMatcher,u=!1;for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]);if(this.ignoreAttributesFn(p,f))continue;let d=n.attributeNamePrefix+p;if(p.length)if(n.transformAttributeName&&(d=n.transformAttributeName(d)),d=pp(d,n),o[h][4]!==void 0){let g=a[h],m=n.attributeValueProcessor(p,g,f);m==null?i[d]=g:typeof m!=typeof g||m!==g?i[d]=m:i[d]=oc(g,n.parseAttributeValue,n.numberParseOptions),u=!0}else n.allowBooleanAttributes&&(i[d]=!0,u=!0)}if(!u)return;if(n.attributesGroupName){let h={};return h[n.attributesGroupName]=i,h}return i}}var qM=function(t){t=t.replace(/\r\n?/g,`
10
- `);let e=new ve("!xml"),r=e,n="";this.matcher.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.docTypeEntitiesKeys=[],this.lastEntitiesKeys=Object.keys(this.lastEntities),this.htmlEntitiesKeys=this.options.htmlEntities?Object.keys(this.htmlEntities):[];let o=this.options,s=new Dn(o.processEntities),i=t.length;for(let a=0;a<i;a++)if(t[a]==="<"){let l=t.charCodeAt(a+1);if(l===47){let f=Hr(t,">",a,"Closing Tag is not closed."),u=t.substring(a+2,f).trim();if(o.removeNSPrefix){let p=u.indexOf(":");p!==-1&&(u=u.substr(p+1))}u=rc(o.transformTagName,u,"",o).tagName,r&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher));let h=this.matcher.getCurrentTag();if(u&&o.unpairedTagsSet.has(u))throw new Error(`Unpaired tag can not be used as closing tag: </${u}>`);h&&o.unpairedTagsSet.has(h)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),n="",a=f}else if(l===63){let f=nc(t,a,!1,"?>");if(!f)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,this.readonlyMatcher),!(o.ignoreDeclaration&&f.tagName==="?xml"||o.ignorePiTags)){let u=new ve(f.tagName);u.add(o.textNodeName,""),f.tagName!==f.tagExp&&f.attrExpPresent&&(u[":@"]=this.buildAttributesMap(f.tagExp,this.matcher,f.tagName)),this.addChild(r,u,this.readonlyMatcher,a)}a=f.closeIndex+1}else if(l===33&&t.charCodeAt(a+2)===45&&t.charCodeAt(a+3)===45){let f=Hr(t,"-->",a+4,"Comment is not closed.");if(o.commentPropName){let u=t.substring(a+4,f-2);n=this.saveTextToParentTag(n,r,this.readonlyMatcher),r.add(o.commentPropName,[{[o.textNodeName]:u}])}a=f}else if(l===33&&t.charCodeAt(a+2)===68){let f=s.readDocType(t,a);this.docTypeEntities=f.entities,this.docTypeEntitiesKeys=Object.keys(this.docTypeEntities)||[],a=f.i}else if(l===33&&t.charCodeAt(a+2)===91){let f=Hr(t,"]]>",a,"CDATA is not closed.")-2,u=t.substring(a+9,f);n=this.saveTextToParentTag(n,r,this.readonlyMatcher);let h=this.parseTextData(u,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);h==null&&(h=""),o.cdataPropName?r.add(o.cdataPropName,[{[o.textNodeName]:u}]):r.add(o.textNodeName,h),a=f+2}else{let f=nc(t,a,o.removeNSPrefix);if(!f){let _=t.substring(Math.max(0,a-50),Math.min(i,a+50));throw new Error(`readTagExp returned undefined at position ${a}. Context: "${_}"`)}let u=f.tagName,h=f.rawTagName,p=f.tagExp,d=f.attrExpPresent,g=f.closeIndex;if({tagName:u,tagExp:p}=rc(o.transformTagName,u,p,o),o.strictReservedNames&&(u===o.commentPropName||u===o.cdataPropName||u===o.textNodeName||u===o.attributesGroupName))throw new Error(`Invalid tag name: ${u}`);r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher,!1));let m=r;m&&o.unpairedTagsSet.has(m.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let y=!1;p.length>0&&p.lastIndexOf("/")===p.length-1&&(y=!0,u[u.length-1]==="/"?(u=u.substr(0,u.length-1),p=u):p=p.substr(0,p.length-1),d=u!==p);let b=null,M={},S;S=GM(h),u!==e.tagname&&this.matcher.push(u,{},S),u!==p&&d&&(b=this.buildAttributesMap(p,this.matcher,u),b&&(M=DM(b,o))),u!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let C=a;if(this.isCurrentNodeStopNode){let _="";if(y)a=f.closeIndex;else if(o.unpairedTagsSet.has(u))a=f.closeIndex;else{let E=this.readStopNodeData(t,h,g+1);if(!E)throw new Error(`Unexpected end of ${h}`);a=E.i,_=E.tagContent}let v=new ve(u);b&&(v[":@"]=b),v.add(o.textNodeName,_),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,v,this.readonlyMatcher,C)}else{if(y){({tagName:u,tagExp:p}=rc(o.transformTagName,u,p,o));let _=new ve(u);b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(o.unpairedTagsSet.has(u)){let _=new ve(u);b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),this.matcher.pop(),this.isCurrentNodeStopNode=!1,a=f.closeIndex;continue}else{let _=new ve(u);if(this.tagsNodeStack.length>o.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),r=_}n="",a=g}}}else n+=t[a];return e.child};function JM(t,e,r,n){this.options.captureMetaData||(n=void 0);let o=this.options.jPath?r.toString():r,s=this.options.updateTag(e.tagname,o,e[":@"]);s===!1||(typeof s=="string"&&(e.tagname=s),t.addChild(e,n))}function WM(t,e,r){let n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){let o=this.options.jPath?r.toString():r;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,o)))return t}if(n.tagFilter){let o=this.options.jPath?r.toString():r;if(!n.tagFilter(e,o))return t}for(let o of this.docTypeEntitiesKeys){let s=this.docTypeEntities[o],i=t.match(s.regx);if(i){if(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);let a=t.length;if(t=t.replace(s.regx,s.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-a,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(t.indexOf("&")===-1)return t;for(let o of this.lastEntitiesKeys){let s=this.lastEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}if(t.indexOf("&")===-1)return t;for(let o of this.htmlEntitiesKeys){let s=this.htmlEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}return t=t.replace(this.ampEntity.regex,this.ampEntity.val),t}function KM(t,e,r,n){return t&&(n===void 0&&(n=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 XM(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function YM(t,e,r=">"){let n=0,o=[],s=t.length,i=r.charCodeAt(0),a=r.length>1?r.charCodeAt(1):-1;for(let c=e;c<s;c++){let l=t.charCodeAt(c);if(n)l===n&&(n=0);else if(l===34||l===39)n=l;else if(l===i)if(a!==-1){if(t.charCodeAt(c+1)===a)return{data:String.fromCharCode(...o),index:c}}else return{data:String.fromCharCode(...o),index:c};else if(l===9){o.push(32);continue}o.push(l)}}function Hr(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o+e.length-1}function QM(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o}function nc(t,e,r,n=">"){let o=YM(t,e+1,n);if(!o)return;let s=o.data,i=o.index,a=s.search(/\s/),c=s,l=!0;a!==-1&&(c=s.substring(0,a),s=s.substring(a+1).trimStart());let f=c;if(r){let u=c.indexOf(":");u!==-1&&(c=c.substr(u+1),l=c!==o.data.substr(u+1))}return{tagName:c,tagExp:s,closeIndex:i,attrExpPresent:l,rawTagName:f}}function ZM(t,e,r){let n=r,o=1,s=t.length;for(;r<s;r++)if(t[r]==="<"){let i=t.charCodeAt(r+1);if(i===47){let a=QM(t,">",r,`${e} is not closed`);if(t.substring(r+2,a).trim()===e&&(o--,o===0))return{tagContent:t.substring(n,r),i:a};r=a}else if(i===63)r=Hr(t,"?>",r+1,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===45&&t.charCodeAt(r+3)===45)r=Hr(t,"-->",r+3,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===91)r=Hr(t,"]]>",r,"StopNode is not closed.")-2;else{let a=nc(t,r,">");a&&((a&&a.tagName)===e&&a.tagExp[a.tagExp.length-1]!=="/"&&o++,r=a.closeIndex)}}}function oc(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:ec(t,r)}else return np(t)?t:""}function hp(t,e,r){let n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}function rc(t,e,r,n){if(t){let o=t(e);r===e&&(r=o),e=o}return e=pp(e,n),{tagName:e,tagExp:r}}function pp(t,e){if(_s.includes(t))throw new Error(`[SECURITY] Invalid name: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);return Nn.includes(t)?e.onDangerousProperty(t):t}var sc=ve.getMetaDataSymbol();function $M(t,e){if(!t||typeof t!="object")return{};if(!e)return t;let r={};for(let n in t)if(n.startsWith(e)){let o=n.substring(e.length);r[o]=t[n]}else r[n]=t[n];return r}function ic(t,e,r,n){return dp(t,e,r,n)}function dp(t,e,r,n){let o,s={};for(let i=0;i<t.length;i++){let a=t[i],c=eS(a);if(c!==void 0&&c!==e.textNodeName){let l=$M(a[":@"]||{},e.attributeNamePrefix);r.push(c,l)}if(c===e.textNodeName)o===void 0?o=a[c]:o+=""+a[c];else{if(c===void 0)continue;if(a[c]){let l=dp(a[c],e,r,n),f=rS(l,e);if(a[":@"]?tS(l,a[":@"],n,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=""),a[sc]!==void 0&&typeof l=="object"&&l!==null&&(l[sc]=a[sc]),s[c]!==void 0&&Object.prototype.hasOwnProperty.call(s,c))Array.isArray(s[c])||(s[c]=[s[c]]),s[c].push(l);else{let u=e.jPath?n.toString():n;e.isArray(c,u,f)?s[c]=[l]:s[c]=l}c!==void 0&&c!==e.textNodeName&&r.pop()}}}return typeof o=="string"?o.length>0&&(s[e.textNodeName]=o):o!==void 0&&(s[e.textNodeName]=o),s}function eS(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function tS(t,e,r,n){if(e){let o=Object.keys(e),s=o.length;for(let i=0;i<s;i++){let a=o[i],c=a.startsWith(n.attributeNamePrefix)?a.substring(n.attributeNamePrefix.length):a,l=n.jPath?r.toString()+"."+c:r;n.isArray(a,l,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function rS(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))}var zr=class{constructor(e){this.externalEntities={},this.options=up(e)}parse(e,r){if(typeof e!="string"&&e.toString)e=e.toString();else if(typeof e!="string")throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let s=cp(e,r);if(s!==!0)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}let n=new Gn(this.options);n.addExternalEntities(this.externalEntities);let o=n.parseXml(e);return this.options.preserveOrder||o===void 0?o:ic(o,this.options,n.matcher,n.readonlyMatcher)}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}static getMetaDataSymbol(){return ve.getMetaDataSymbol()}};function ac(t,e){if(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:(o,s,i,a)=>Boolean(e?.arrayPaths?.some(l=>s===l)),...e?._fastXML},n=nS(t,r);return e?.uncapitalizeKeys?Ss(n):n}function nS(t,e){return new zr({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var oS="4.4.1",Qe={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:oS,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:sS,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>ac(new TextDecoder().decode(t),{...Qe.options.xml,...e?.xml}),parseTextSync:(t,e)=>ac(t,{...Qe.options.xml,...e?.xml})};function sS(t){return t.startsWith("<?xml")}async function Oe(t,e,r,n){return n._parse(t,e,r,n)}function H(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var it={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},iS=it.self||it.window||it.global||{},aS=it.window||it.self||it.global||{},cS=it.global||it.self||it.window||{},lS=it.document||{};var Vn=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var mp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),fS=mp&&parseFloat(mp[1])||0;var Bs=globalThis,uS=globalThis.document||{},Is=globalThis.process||{},hS=globalThis.console,_F=globalThis.navigator||{};function gp(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return Boolean(r&&r.indexOf("Electron")>=0)}function nr(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||gp()}var cc="4.1.1";function kr(t,e){if(!t)throw new Error(e||"Assertion failed")}function lc(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 kr(Number.isFinite(e)&&e>=0),e}function Ap(t){let{logLevel:e,message:r}=t;t.logLevel=lc(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 o=typeof t.message;return kr(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}var or=()=>{},vs=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,o,s={}){let i=Ap({logLevel:r,message:n,args:this._buildArgs(r,n,o),opts:s});return this._createLogFunction(e,i,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return or;let o=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&o!==void 0){if(this._onceCache.has(o))return or;this._onceCache.add(o)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=lc(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function dS(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var Rs=class{constructor(e,r,n="sessionStorage"){this.storage=dS(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 xp(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 yp(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}var ws;(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"})(ws||(ws={}));var mS=10;function bp(t){return typeof t!="string"?t:(t=t.toUpperCase(),ws[t]||ws.WHITE)}function Tp(t,e,r){return!nr&&typeof t=="string"&&(e&&(t=`\x1B[${bp(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${bp(r)+mS}m${t}\x1B[49m`)),t}function Mp(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),o=t;for(let s of n){let i=o[s];typeof i=="function"&&(e.find(a=>s===a)||(o[s]=i.bind(t)))}}function jr(){let t;if(nr()&&Bs.performance)t=Bs?.performance?.now?.();else if("hrtime"in Is){let e=Is?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var qr={debug:nr()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},fc={enabled:!0,level:0},pt=class extends vs{constructor({id:e}={id:""}){super({level:0}),this.VERSION=cc,this._startTs=jr(),this._deltaTs=jr(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Rs(`__probe-${this.id}__`,{[this.id]:fc}),this.timeStamp(`${this.id} started`),Mp(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((jr()-this._startTs).toPrecision(10))}getDelta(){return Number((jr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:qr.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:qr.error})}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,...n){return this._log("log",e,r,n,{method:qr.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:qr.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:qr.debug||qr.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||or,tag:AS(r)}):or}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||or})}group(e,r,n={collapsed:!1}){let o=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:o})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||or})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;kr(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=jr();let o=gS(this.id,r.message,r);return n.bind(console,o,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(fc),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...fc};this._storage.setConfiguration({[this.id]:{...r,...e}})}};pt.VERSION=cc;function gS(t,e,r){if(typeof e=="string"){let n=r.time?yp(xp(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=Tp(e,r.color,r.background)}return e}function AS(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var uc=new pt({id:"@probe.gl/log"});var hc="4.4.1",xS=hc[0]>="0"&&hc[0]<="9"?`v${hc}`:"";function yS(){let t=new pt({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=t,globalThis.loaders.version=xS,globalThis.probe||={},globalThis.probe.loaders=t,t}var pc=yS();var Sp=t=>typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer;function Hn(t,e){return Ep(t||{},e)}function Ep(t,e,r=0){if(r>3)return e;let n={...t};for(let[o,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[o]=Ep(n[o]||{},e[o],r+1):n[o]=e[o];return n}function dc(t){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,t)}function mc(t){return globalThis.loaders?.modules?.[t]||null}function bS(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.1"),globalThis._loadersgl_.version}var _p=bS();function Cp(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var at={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},uP=at.self||at.window||at.global||{},hP=at.window||at.self||at.global||{},pP=at.global||at.self||at.window||{},dP=at.document||{};var dt=typeof process!="object"||String(process)!=="[object process]"||process.browser,zn=typeof importScripts=="function",mP=typeof window<"u"&&typeof window.orientation<"u",Bp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),gP=Bp&&parseFloat(Bp[1])||0;var gc={};function kn(t={}){let e=t.useLocalLibraries??t.core?.useLocalLibraries,r=t.CDN??t.core?.CDN,n=t.modules;return{...e!==void 0?{useLocalLibraries:e}:{},...r!==void 0?{CDN:r}:{},...n!==void 0?{modules:n}:{}}}async function Ve(t,e=null,r={},n=null){return e&&(t=Ip(t,e,r,n)),gc[t]=gc[t]||TS(t),await gc[t]}function Ip(t,e,r={},n=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let o=r.modules||{};return o[n]?o[n]:dt?r.CDN?(Cp(r.CDN.startsWith("http")),`${r.CDN}/${e}@${_p}/dist/libs/${n}`):zn?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function TS(t){if(t.endsWith("wasm"))return await SS(t);if(!dt){let{requireFromFile:r}=globalThis.loaders||{};try{let n=await r?.(t);return n||!t.includes("/dist/libs/")?n:await r?.(t.replace("/dist/libs/","/src/libs/"))}catch(n){if(t.includes("/dist/libs/"))try{return await r?.(t.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(n),null}}if(zn)return importScripts(t);let e=await ES(t);return MS(e,t)}function MS(t,e){if(!dt){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(zn)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 SS(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).arrayBuffer();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${t}`)}}async function ES(t){let{readFileAsText:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).text();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${t}`)}}function Rp(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?vp(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?vp(t,0,e):""}function vp(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),o="";for(let s=0;s<r;s++)o+=String.fromCharCode(n.getUint8(e+s));return o}function Ac(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${Rp(t)}"`)}}function jn(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((i,a)=>i+a.length,0),o=new r(n),s=0;for(let i of e)o.set(i,s),s+=i.length;return o}function sr(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 Rt(t,e){return H(t>=0),H(e>0),t+(e-1)&~(e-1)}function xc(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let o=t.byteOffset,s=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,o,s)}return e.set(n,r),r+Rt(n.byteLength,4)}function qn(){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 ir=class{constructor(e,r){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=qn(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(qn()-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 wt=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,r="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(e=[]){e.forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,o=this.stats[r];return o||(e instanceof ir?o=e:o=new ir(r,n),this.stats[r]=o),o}};var _S="Queued Requests",CS="Active Requests",BS="Cancelled Requests",IS="Queued Requests Ever",vS="Active Requests Ever",RS={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Lt=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...RS,...e},this.stats=new wt({id:this.props.id}),this.stats.get(_S),this.stats.get(CS),this.stats.get(BS),this.stats.get(IS),this.stats.get(vS)}setProps(e){e.throttleRequests!==void 0&&(this.props.throttleRequests=e.throttleRequests),e.maxRequests!==void 0&&(this.props.maxRequests=e.maxRequests),e.debounceTime!==void 0&&(this.props.debounceTime=e.debounceTime)}scheduleRequest(e,r=()=>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},o=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,o),this._issueNewRequests(),o}_issueRequest(e){let{handle:r,resolve:n}=e,o=!1,s=()=>{o||(o=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=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 wS="",wp={};function Lp(t){for(let e in wp)if(t.startsWith(e)){let r=wp[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${wS}${t}`),t}function Ft(t){if(t instanceof ArrayBuffer)return t;if(Sp(t))return Jn(t);let{buffer:e,byteOffset:r,byteLength:n}=t;return e instanceof ArrayBuffer&&r===0&&n===e.byteLength?e:Jn(e,r,n)}function Jn(t,e=0,r=t.byteLength-e){let n=new Uint8Array(t,e,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var Pt={};be(Pt,{dirname:()=>FS,filename:()=>LS,join:()=>PS,resolve:()=>NS});function Fp(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function LS(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):t}function FS(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function PS(...t){let e="/";return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp(`^${e}`),"")),n!==t.length-1&&(r=r.replace(new RegExp(`${e}$`),"")),r)),t.join(e)}function NS(...t){let e=[];for(let s=0;s<t.length;s++)e[s]=t[s];let r="",n=!1,o;for(let s=e.length-1;s>=-1&&!n;s--){let i;s>=0?i=e[s]:(o===void 0&&(o=Fp()),i=o),i.length!==0&&(r=`${i}/${r}`,n=i.charCodeAt(0)===Wn)}return r=OS(r,!n),n?`/${r}`:r.length>0?r:"."}var Wn=47,yc=46;function OS(t,e){let r="",n=-1,o=0,s,i=!1;for(let a=0;a<=t.length;++a){if(a<t.length)s=t.charCodeAt(a);else{if(s===Wn)break;s=Wn}if(s===Wn){if(!(n===a-1||o===1))if(n!==a-1&&o===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==yc||r.charCodeAt(r.length-2)!==yc){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==Wn;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,o=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,o=0,i=!1;continue}}e&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}n=a,o=0}else s===yc&&o!==-1?++o:o=-1}return r}var bc=class{optionsType;options;data;url;loadOptions;fetch;_needsRefresh=!0;constructor(e,r,n){n?this.options=Hn({...n,core:bc.defaultOptions},r):this.options={...r},this.data=e,this.url=typeof e=="string"?Lp(e):"",this.loadOptions=DS(this.options.core?.loadOptions),this.fetch=US(this.loadOptions)}setProps(e){this.options=Object.assign(this.options,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}},Jr=bc;Jt(Jr,"defaultOptions",{core:{type:"auto",attributions:[],loadOptions:{},loaders:[]}});function US(t){let e=t?.core?.fetch;if(e&&typeof e=="function")return(n,o)=>e(n,o);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}function DS(t){let e={...t};t?.core&&(e.core={...t.core});let r=typeof e.baseUri=="string"?e.baseUri:void 0,n=typeof e.baseUrl=="string"?e.baseUrl:void 0;return(r!==void 0||n!==void 0)&&(e.core||={},e.core.baseUrl===void 0&&(e.core.baseUrl=n??r),delete e.baseUri,delete e.baseUrl),e}var Nt=class{};Jt(Nt,"type","template"),Jt(Nt,"testURL",e=>!1);function Pp(t,e){let r=Qe.parseTextSync?.(t,e),n=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}var GS="4.4.1",Kn={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:GS,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:VS,options:{wms:{throwOnError:!1}},parse:async(t,e)=>Tc(new TextDecoder().decode(t),e),parseSync:(t,e)=>Tc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Tc(t,e)};function VS(t){return t.startsWith("<?xml")}function Tc(t,e){let r={...Kn.options.wms,...e?.wms},n=Pp(t,r),o=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(o);return o}function ar(t){return Array.isArray(t)?t:t?[t]:[]}function Xn(t){let e=ar(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function Yn(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function Ls(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function cr(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function Mc(t,e){let r=Qe.parseTextSync?.(t,e),n=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,o=HS(n);if(e?.inheritedLayerProps)for(let s of o.layers)Op(s,null);return e?.includeRawJSON&&(o.json=n),e?.includeXMLText&&(o.xml=t),o}function HS(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:Xn(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:Ls(t.Service?.LayerLimit),maxWidth:Ls(t.Service?.maxWidth),maxHeight:Ls(t.Service?.maxHeight),layers:[],requests:zS(t.Capability?.Request),exceptions:kS(t.Exception)},r=ar(t.Capability?.Layer);for(let n of r)e.layers.push(Np(n));for(let[n,o]of Object.entries(e))o===void 0&&delete e[n];return e}function zS(t){let e={};for(let[r,n]of Object.entries(t||{})){let o=Xn(n?.Format);e[r]={mimeTypes:o}}return e}function kS(t){if(ar(t?.Format).length>0)return{mimeTypes:Xn(t)}}function Np(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:Xn(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(l=>typeof l=="string")&&(e.crs=r);let n=t?.EX_GeographicBoundingBox&&jS(t?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&qS(t?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);let o=t?.BoundingBox&&JS(t?.BoundingBox);o&&o.length>0&&(e.boundingBoxes=o);let i=ar(t?.Dimension).map(l=>KS(l));i.length&&(e.dimensions=i),t?.opaque&&(e.opaque=cr(t?.opaque)),t?.cascaded&&(e.cascaded=cr(t?.cascaded)),t?.queryable&&(e.queryable=cr(t?.queryable));let a=ar(t?.Layer),c=[];for(let l of a)c.push(Np(l));c.length>0&&(e.layers=c);for(let[l,f]of Object.entries(e))f===void 0&&delete e[l];return e}function jS(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:o}=t;return[[e,o],[n,r]]}function qS(t){let{minx:e,miny:r,maxx:n,maxy:o}=t;return[[e,r],[n,o]]}function JS(t){return ar(t).map(r=>WS(r))}function WS(t){let{CRS:e,SRS:r,minx:n,miny:o,maxx:s,maxy:i,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[Yn(n),Yn(o)],[Yn(s),Yn(i)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function KS(t){let{name:e,units:r,value:n}=t,o={name:e,units:r,extent:n};return t.unitSymbol&&(o.unitSymbol=t.unitSymbol),t.default&&(o.defaultValue=t.default),t.multipleValues&&(o.multipleValues=cr(t.multipleValues)),t.nearestValue&&(o.nearestValue=cr(t.nearestValue)),t.current&&(o.current=cr(t.current)),o}function Op(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Op(r,t)}var XS="4.4.1",Wr={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:XS,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:YS,options:{wms:{}},parse:async(t,e)=>Mc(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>Mc(t,e?.wms)};function YS(t){return t.startsWith("<?xml")}function Sc(t,e){let n=(Qe.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(s=>QS(s))}}function QS(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var Up={...Wr,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>Sc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Sc(t,e)};function Ec(t,e){return Qe.parseTextSync?.(t,e)}var Dp={...Wr,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>Ec(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Ec(t,e)};var Gp="4.4.1";var ZS=globalThis.loaders?.parseImageNode,_c=typeof Image<"u",Cc=typeof ImageBitmap<"u",$S=Boolean(ZS),Bc=Vn?!0:$S;function Vp(t){switch(t){case"auto":return Cc||_c||Bc;case"imagebitmap":return Cc;case"image":return _c;case"data":return Bc;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Hp(){if(Cc)return"imagebitmap";if(_c)return"image";if(Bc)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function zp(t){let e=eE(t);if(!e)throw new Error("Not an image");return e}function Qn(t){switch(zp(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 eE(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 tE=/^data:image\/svg\+xml/,rE=/\.svg((\?|#).*)?$/;function Fs(t){return t&&(tE.test(t)||rE.test(t))}function kp(t,e){if(Fs(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Ic(t,e)}function Ic(t,e){if(Fs(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function Ps(t,e,r){let n=kp(t,r),o=self.URL||self.webkitURL,s=typeof n!="string"&&o.createObjectURL(n);try{return await nE(s||n,e)}finally{s&&o.revokeObjectURL(s)}}async function nE(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,o)=>{try{r.onload=()=>n(r),r.onerror=s=>{let i=s instanceof Error?s.message:"error";o(new Error(i))}}catch(s){o(s)}})}var jp=!0;async function qp(t,e,r){let n;Fs(r)?n=await Ps(t,e,r):n=Ic(t,r);let o=e&&e.imagebitmap;return await oE(n,o)}async function oE(t,e=null){if((sE(e)||!jp)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),jp=!1}return await createImageBitmap(t)}function sE(t){if(!t)return!0;for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function Jp(t){return!lE(t,"ftyp",4)||!(t[8]&96)?null:iE(t)}function iE(t){switch(aE(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function aE(t,e,r){return String.fromCharCode(...t.slice(e,r))}function cE(t){return[...t].map(e=>e.charCodeAt(0))}function lE(t,e,r=0){let n=cE(e);for(let o=0;o<n.length;++o)if(n[o]!==t[o+r])return!1;return!0}var ct=!1,Zn=!0;function lr(t){let e=$n(t);return uE(e)||dE(e)||hE(e)||pE(e)||fE(e)}function fE(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Jp(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function uE(t){let e=$n(t);return e.byteLength>=24&&e.getUint32(0,ct)===2303741511?{mimeType:"image/png",width:e.getUint32(16,ct),height:e.getUint32(20,ct)}:null}function hE(t){let e=$n(t);return e.byteLength>=10&&e.getUint32(0,ct)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,Zn),height:e.getUint16(8,Zn)}:null}function pE(t){let e=$n(t);return e.byteLength>=14&&e.getUint16(0,ct)===16973&&e.getUint32(2,Zn)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,Zn),height:e.getUint32(22,Zn)}:null}function dE(t){let e=$n(t);if(!(e.byteLength>=3&&e.getUint16(0,ct)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:o}=mE(),s=2;for(;s+9<e.byteLength;){let i=e.getUint16(s,ct);if(o.has(i))return{mimeType:"image/jpeg",height:e.getUint16(s+5,ct),width:e.getUint16(s+7,ct)};if(!n.has(i))return null;s+=2,s+=e.getUint16(s,ct)}return null}function mE(){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 $n(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 Wp(t,e){let{mimeType:r}=lr(t)||{},n=globalThis.loaders?.parseImageNode;return H(n),await n(t,r)}async function Kp(t,e,r){e=e||{};let o=(e.image||{}).type||"auto",{url:s}=r||{},i=gE(o),a;switch(i){case"imagebitmap":a=await qp(t,e,s);break;case"image":a=await Ps(t,e,s);break;case"data":a=await Wp(t,e);break;default:H(!1)}return o==="data"&&(a=Qn(a)),a}function gE(t){switch(t){case"auto":case"data":return Hp();default:return Vp(t),t}}var AE=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],xE=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],yE={image:{type:"auto",decode:!0}},Kr={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Gp,mimeTypes:xE,extensions:AE,parse:Kp,tests:[t=>Boolean(lr(new DataView(t)))],options:yE};var vc={};function Rc(t){if(vc[t]===void 0){let e=Vn?TE(t):bE(t);vc[t]=e}return vc[t]}function bE(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,n=globalThis.loaders?.parseImageNode;return Boolean(n)&&r.includes(t)}function TE(t){switch(t){case"image/avif":case"image/webp":return ME(t);default:return!0}}function ME(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Os={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],type:"wms",fromUrl:!0,fromBlob:!1,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes("wms"),createDataSource:(t,e)=>new Ns(t,e)},Ns=class extends Jr{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r){super(e,r,Os.defaultOptions),this.substituteCRS84=r.wms?.substituteCRS84??!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,...r.wmsParameters,...r.wms?.wmsParameters},this.vendorParameters=r.wms?.vendorParameters||r.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...o}=e,s={bbox:r?[...r[0],...r[1]]:n,...o};return await this.getMap(s)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);let i=await Wr.parse(s,this.loadOptions);return this.capabilities=i,i}async getMap(e,r){let n=this.getMapURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Kr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Up.parse(s,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),new TextDecoder().decode(s)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Dp.parse(s,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Kr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}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{boundingBox:n,bbox:o}=e;e.bbox=n?[...n[0],...n[1]]:o;let s={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",s,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("?"),o=n.split("&"),s={};for(let i of o){let[a,c]=i.split("=");s[a]=c}return{url:r,parameters:s}}_getWMSUrl(e,r,n){let o=this.url,s=!0,i={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(i))(!a.includes(c)||l)&&(o+=s?"?":"&",s=!1,o+=this._getURLParameter(c,l,r));return encodeURI(o)}_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 o=this._flipBoundingBox(r,n);o&&(r=o);break;case"x":n.version==="1.3.0"&&(e="i");break;case"y":n.version==="1.3.0"&&(e="j");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"),o=e;return n?[o[1],o[0],o[3],o[2]]:o}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||Kn.mimeTypes.includes(n)){let o=Hn(this.loadOptions,{wms:{throwOnError:!0}}),s=Kn.parseSync?.(r,o);throw new Error(s)}}_parseError(e){let r=Kn.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};function Us(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Ze=Math.PI,Zp=Ze/4,Xp=Ze/180,Yp=180/Ze,Ds=512;function mt(t){let[e,r]=t;Us(Number.isFinite(e)),Us(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Xp,o=r*Xp,s=Ds*(n+Ze)/(2*Ze),i=Ds*(Ze+Math.log(Math.tan(Zp+o*.5)))/(2*Ze);return[s,i]}function gt(t){let[e,r]=t,n=e/Ds*(2*Ze)-Ze,o=2*(Math.atan(Math.exp(r/Ds*(2*Ze)-Ze))-Zp);return[n*Yp,o*Yp]}var $O=Math.PI/180;var ed=6378137*Math.PI;function wc(t){let e=mt(t);return e[0]=(e[0]/256-1)*ed,e[1]=(e[1]/256-1)*ed,e}var DE={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)}},Xr=class extends fr.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:o}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(o,"image source changed"),0)):(0,fr._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(o,"viewport changed")):this.debounce(()=>this.loadImage(o,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new td.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?fr.COORDINATE_SYSTEM.LNGLAT:fr.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(0,rd.createDataSource)(e.data,[Os],{core:{type:e.serviceType,loadOptions:e.loadOptions}});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:o}=this.props;if(o==="wms"&&n.length===0)return;let s=e.getBounds(),{width:i,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let f={width:i,height:a,boundingBox:[[s[0],s[1]],[s[2],s[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let u=wc([s[0],s[1]]),h=wc([s[2],s[3]]);f.boundingBox=[u,h]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let u=await this.state.imageSource.getImage(f);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:u,bounds:s,lastRequestParameters:f,lastRequestId:c}))}catch(u){this.raiseError(u,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,u)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}};Xr.layerName="WMSLayer";Xr.defaultProps=DE;var nd=U(Ke(),1),GE={getHeight:{type:"accessor",value:0},greatCircle:!0},eo=class extends nd.ArcLayer{};eo.layerName="GreatCircleLayer";eo.defaultProps=GE;var od=eo;var Gs=U(Lc(),1),VE=3,HE=30,zE=2*HE+1,id=180/Math.PI;function cd(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function ad(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function ld(t){return[ad(t[0]),ad(t[1])]}function fd(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 ud([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*id,n*id]}function hd(t){let e=Gs.default.fromString(t,!0,10).toString(2);for(;e.length<VE+zE;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=Gs.default.fromString(n,!0,2).toString(10),a=Gs.default.fromString(o,!0,2).toString(4);for(;a.length<s;)a="0"+a;return`${i}/${a}`}function kE(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function pd(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=[0,0],i;for(let a=o-1;a>=0;a--){i=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,i-1);kE(u,s,l,f),s[0]+=u*l,s[1]+=u*f}if(r%2===1){let a=s[0];s[0]=s[1],s[1]=a}return{face:r,ij:s,level:i}}var dd=U(Lc(),1);function jE(t){let e=t.padEnd(16,"0");return dd.default.fromString(e,16)}var qE=100;function JE({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],o=Math.max(1,Math.ceil(qE*Math.pow(2,-r))),s=new Float64Array(4*o*2+2),i=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),f=n[c+1],u=(f[0]-l[0])/o,h=(f[1]-l[1])/o;for(let p=0;p<o;p++){l[0]+=u,l[1]+=h;let d=cd(e,r,l),g=ld(d),m=fd(t,g),y=ud(m);Math.abs(y[1])>89.999&&(y[0]=a);let b=y[0]-a;y[0]+=b>180?-360:b<-180?360:0,s[i++]=y[0],s[i++]=y[1],a=y[0]}}return s[i++]=s[0],s[i++]=s[1],s}function WE(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=jE(t)}return hd(t.toString())}function md(t){let e=WE(t),r=pd(e);return JE(r)}var KE={getS2Token:{type:"accessor",value:t=>t.token}},ro=class extends De{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>md(r(n,o))}}};ro.layerName="S2Layer";ro.defaultProps=KE;var gd=ro;var Fc=512;function XE(t,e){let r=0,n=0,o=1<<t.length,s=o/Fc;for(let i=0;i<t.length;i++){o>>=1;let a=parseInt(t[i]);a%2&&(r|=o),a>1&&(n|=o)}return[[r/s,Fc-n/s],[(r+e)/s,Fc-(n+e)/s]]}function Ad(t,e=1){let[r,n]=XE(t,e),[o,s]=gt(r),[i,a]=gt(n);return[i,s,i,a,o,a,o,s,i,s]}var YE={getQuadkey:{type:"accessor",value:t=>t.quadkey}},no=class extends De{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,o=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,i)=>Ad(n(s,i),o),updateTriggers:{getPolygon:o}}}};no.layerName="QuadkeyLayer";no.defaultProps=YE;var xd=no;var Ws=U(Xe(),1),Nd=U(Ke(),1);var ur=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:o}){let{index:s,id:i,bbox:a,userData:c,zoom:l}=this,f=this._loaderId;this._abortController=new AbortController;let{signal:u}=this._abortController,h=await r.scheduleRequest(this,g=>g.isSelected?1:-1);if(!h){this._isCancelled=!0;return}if(this._isCancelled){h.done();return}let p=null,d;try{p=await e({index:s,id:i,bbox:a,userData:c,zoom:l,signal:u})}catch(g){d=g||!0}finally{h.done()}if(f===this._loaderId){if(this._loader=void 0,this.content=p,this._isCancelled&&!p){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,d?o(d,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 io=U(Xe(),1);var ie={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var yd=new x,QE=new x,Ot=class{constructor(e=[0,0,0],r=[0,0,0],n){n=n||yd.copy(e).add(r).scale(.5),this.center=new x(n),this.halfDiagonal=new x(r).subtract(this.center),this.minimum=new x(e),this.maximum=new x(r)}clone(){return new Ot(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=QE.from(e.normal),o=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),s=this.center.dot(n)+e.distance;return s-o>0?ie.INSIDE:s+o<0?ie.OUTSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=yd.from(e).subtract(this.center),{halfDiagonal:n}=this,o=0,s;return s=Math.abs(r.x)-n.x,s>0&&(o+=s*s),s=Math.abs(r.y)-n.y,s>0&&(o+=s*s),s=Math.abs(r.z)-n.z,s>0&&(o+=s*s),o}};var oo=new x,bd=new x,He=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new x,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=oo.from(r),this.center=new x().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 He(this.center,this.radius)}union(e){let r=this.center,n=this.radius,o=e.center,s=e.radius,i=oo.copy(o).subtract(r),a=i.magnitude();if(n>=a+s)return this.clone();if(s>=a+n)return e.clone();let c=(n+a+s)*.5;return bd.copy(i).scale((-n+c)/a).add(r),this.center.copy(bd),this.radius=c,this}expand(e){let n=oo.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=wn.getScaling(oo,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=oo.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,s=e.normal.dot(r)+e.distance;return s<-n?ie.OUTSIDE:s<n?ie.INTERSECTING:ie.INSIDE}};var ZE=new x,$E=new x,Vs=new x,Hs=new x,zs=new x,e_=new x,t_=new x,At={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},$e=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new x().from(e),this.halfAxes=new k(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new x(e).len(),new x(r).len(),new x(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),o=new x(e).normalize(),s=new x(r).normalize(),i=new x(n).normalize();return new st().fromMatrix3(new k([...o,...s,...i]))}fromCenterHalfSizeQuaternion(e,r,n){let o=new st(n),s=new k().fromQuaternion(o);return s[0]=s[0]*r[0],s[1]=s[1]*r[0],s[2]=s[2]*r[0],s[3]=s[3]*r[1],s[4]=s[4]*r[1],s[5]=s[5]*r[1],s[6]=s[6]*r[2],s[7]=s[7]*r[2],s[8]=s[8]*r[2],this.center=new x().from(e),this.halfAxes=s,this}clone(){return new $e(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new He){let r=this.halfAxes,n=r.getColumn(0,Vs),o=r.getColumn(1,Hs),s=r.getColumn(2,zs),i=ZE.copy(n).add(o).add(s);return e.center.copy(this.center),e.radius=i.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,o=this.halfAxes,s=n.x,i=n.y,a=n.z,c=Math.abs(s*o[At.COLUMN0ROW0]+i*o[At.COLUMN0ROW1]+a*o[At.COLUMN0ROW2])+Math.abs(s*o[At.COLUMN1ROW0]+i*o[At.COLUMN1ROW1]+a*o[At.COLUMN1ROW2])+Math.abs(s*o[At.COLUMN2ROW0]+i*o[At.COLUMN2ROW1]+a*o[At.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?ie.OUTSIDE:l>=c?ie.INSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=$E.from(e).subtract(this.center),n=this.halfAxes,o=n.getColumn(0,Vs),s=n.getColumn(1,Hs),i=n.getColumn(2,zs),a=o.magnitude(),c=s.magnitude(),l=i.magnitude();o.normalize(),s.normalize(),i.normalize();let f=0,u;return u=Math.abs(r.dot(o))-a,u>0&&(f+=u*u),u=Math.abs(r.dot(s))-c,u>0&&(f+=u*u),u=Math.abs(r.dot(i))-l,u>0&&(f+=u*u),f}computePlaneDistances(e,r,n=[-0,-0]){let o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,i=this.center,a=this.halfAxes,c=a.getColumn(0,Vs),l=a.getColumn(1,Hs),f=a.getColumn(2,zs),u=e_.copy(c).add(l).add(f).add(i),h=t_.copy(u).subtract(e),p=r.dot(h);return o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),n[0]=o,n[1]=s,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,Vs);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,Hs);n.transformAsPoint(e);let o=this.halfAxes.getColumn(2,zs);return o.transformAsPoint(e),this.halfAxes=new k([...r,...n,...o]),this}getTransform(){throw new Error("not implemented")}};var Td=new x,Md=new x,pe=class{constructor(e=[0,0,1],r=0){this.normal=new x,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return he(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=Td.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,o){return this.normal.set(e,r,n),he(_e(this.normal.len(),1)),this.distance=o,this}clone(){return new pe(this.normal,this.distance)}equals(e){return _e(this.distance,e.distance)&&_e(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=Md.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=Td.from(e),o=this.getPointDistance(n),s=Md.copy(this.normal).scale(o);return n.subtract(s).to(r)}};var Sd=[new x([1,0,0]),new x([0,1,0]),new x([0,0,1])],Ed=new x,r_=new x,ce=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*Sd.length;let r=e.center,n=e.radius,o=0;for(let s of Sd){let i=this.planes[o],a=this.planes[o+1];i||(i=this.planes[o]=new pe),a||(a=this.planes[o+1]=new pe);let c=Ed.copy(s).scale(-n).add(r);i.fromPointNormal(c,s);let l=Ed.copy(s).scale(n).add(r),f=r_.copy(s).negate();a.fromPointNormal(l,f),o+=2}return this}computeVisibility(e){let r=ie.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case ie.OUTSIDE:return ie.OUTSIDE;case ie.INTERSECTING:r=ie.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(he(Number.isFinite(r),"parentPlaneMask is required."),r===ce.MASK_OUTSIDE||r===ce.MASK_INSIDE)return r;let n=ce.MASK_INSIDE,o=this.planes;for(let s=0;s<this.planes.length;++s){let i=s<31?1<<s:0;if(s<31&&!(r&i))continue;let a=o[s],c=e.intersectPlane(a);if(c===ie.OUTSIDE)return ce.MASK_OUTSIDE;c===ie.INTERSECTING&&(n|=i)}return n}};ce.MASK_OUTSIDE=4294967295;ce.MASK_INSIDE=0;ce.MASK_INDETERMINATE=2147483647;var mD=new x,gD=new x,AD=new x,xD=new x,yD=new x;var _D=new x,CD=new x,BD=new x,ID=new x,vD=new x,RD=new x,wD=new x,LD=new x,FD=new x,PD=new x,ND=new x,OD=new x;var lt=new k,o_=new k,s_=new k,ks=new k,_d=new k;function Oc(t,e={}){let r=Ge.EPSILON20,n=10,o=0,s=0,i=o_,a=s_;i.identity(),a.copy(t);let c=r*i_(a);for(;s<n&&a_(a)>c;)c_(a,ks),_d.copy(ks).transpose(),a.multiplyRight(ks),a.multiplyLeft(_d),i.multiplyRight(ks),++o>2&&(++s,o=0);return e.unitary=i.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function i_(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Pc=[1,0,0],Nc=[2,2,1];function a_(t){let e=0;for(let r=0;r<3;++r){let n=t[lt.getElementIndex(Nc[r],Pc[r])];e+=2*n*n}return Math.sqrt(e)}function c_(t,e){let r=Ge.EPSILON15,n=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(t[lt.getElementIndex(Nc[l],Pc[l])]);f>n&&(o=l,n=f)}let s=Pc[o],i=Nc[o],a=1,c=0;if(Math.abs(t[lt.getElementIndex(i,s)])>r){let l=t[lt.getElementIndex(i,i)],f=t[lt.getElementIndex(s,s)],u=t[lt.getElementIndex(i,s)],h=(l-f)/2/u,p;h<0?p=-1/(-h+Math.sqrt(1+h*h)):p=1/(h+Math.sqrt(1+h*h)),a=1/Math.sqrt(1+p*p),c=p*a}return k.IDENTITY.to(e),e[lt.getElementIndex(s,s)]=e[lt.getElementIndex(i,i)]=a,e[lt.getElementIndex(i,s)]=c,e[lt.getElementIndex(s,i)]=-c,e}var Ut=new x,l_=new x,f_=new x,u_=new x,h_=new x,p_=new k,d_={diagonal:new k,unitary:new k};function so(t,e=new $e){if(!t||t.length===0)return e.halfAxes=new k([0,0,0,0,0,0,0,0,0]),e.center=new x,e;let r=t.length,n=new x(0,0,0);for(let T of t)n.add(T);let o=1/r;n.multiplyByScalar(o);let s=0,i=0,a=0,c=0,l=0,f=0;for(let T of t){let A=Ut.copy(T).subtract(n);s+=A.x*A.x,i+=A.x*A.y,a+=A.x*A.z,c+=A.y*A.y,l+=A.y*A.z,f+=A.z*A.z}s*=o,i*=o,a*=o,c*=o,l*=o,f*=o;let u=p_;u[0]=s,u[1]=i,u[2]=a,u[3]=i,u[4]=c,u[5]=l,u[6]=a,u[7]=l,u[8]=f;let{unitary:h}=Oc(u,d_),p=e.halfAxes.copy(h),d=p.getColumn(0,f_),g=p.getColumn(1,u_),m=p.getColumn(2,h_),y=-Number.MAX_VALUE,b=-Number.MAX_VALUE,M=-Number.MAX_VALUE,S=Number.MAX_VALUE,C=Number.MAX_VALUE,_=Number.MAX_VALUE;for(let T of t)Ut.copy(T),y=Math.max(Ut.dot(d),y),b=Math.max(Ut.dot(g),b),M=Math.max(Ut.dot(m),M),S=Math.min(Ut.dot(d),S),C=Math.min(Ut.dot(g),C),_=Math.min(Ut.dot(m),_);d=d.multiplyByScalar(.5*(S+y)),g=g.multiplyByScalar(.5*(C+b)),m=m.multiplyByScalar(.5*(_+M)),e.center.copy(d).add(g).add(m);let v=l_.set(y-S,b-C,M-_).multiplyByScalar(.5),E=new k([v[0],0,0,0,v[1],0,0,0,v[2]]);return e.halfAxes.multiplyRight(E),e}var Yr=512,Cd=3,Bd=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],Id=Bd.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),m_=Id.concat([[.25,.5],[.75,.5]]),Dt=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 Dt(e,r,n),new Dt(e,r+1,n),new Dt(e+1,r,n),new Dt(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:o,minZ:s,maxZ:i,bounds:a,offset:c,project:l}=e,f=this.getBoundingVolume(o,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(f)<0)return!1;if(!this.childVisible){let{z:h}=this;if(h<i&&h>=s){let p=f.distanceTo(r.cameraPosition)*r.scale/r.height;h+=Math.floor(Math.log2(p))}if(h>=i)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let h of this.children)h.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,o]){let s=Math.pow(2,this.z),i=Yr/s;return this.x*i<n&&this.y*i<o&&(this.x+1)*i>e&&(this.y+1)*i>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?m_:this.z<2?Id:Bd,l=[];for(let f of c){let u=js(this.x+f[0],this.y+f[1],this.z);u[2]=e[0],l.push(n(u)),e[0]!==e[1]&&(u[2]=e[1],l.push(n(u)))}return so(l)}let o=Math.pow(2,this.z),s=Yr/o,i=this.x*s+r*Yr,a=Yr-(this.y+1)*s;return new Ot([i,a,e[0]],[i+s,a+s,e[1]])}};function vd(t,e,r,n){let o=t instanceof io._GlobeViewport&&t.resolution?t.projectPosition:null,s=Object.values(t.getFrustumPlanes()).map(({normal:p,distance:d})=>new pe(p.clone().negate(),d)),i=new ce(s),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,f=t instanceof io.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[p,d,g,m]=n,y=mt([p,m]),b=mt([g,d]);n=[y[0],Yr-y[1],b[0],Yr-b[1]]}let u=new Dt(0,0,0),h={viewport:t,project:o,cullingVolume:i,elevationBounds:[c,l],minZ:f,maxZ:e,bounds:n,offset:0};if(u.update(h),t instanceof io.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(h.offset=-1;u.update(h)&&!(--h.offset<-Cd););for(h.offset=1;u.update(h)&&!(++h.offset>Cd););}return u.getSelected()}var xt=512,g_=[-1/0,-1/0,1/0,1/0],Gt={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 qs(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(o=>o[0])),Math.min(...r.map(o=>o[1])),Math.max(...r.map(o=>o[0])),Math.max(...r.map(o=>o[1]))]}function A_(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function ft(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let s=A_(n)%t.length;t=t[s]}let o=t;for(let s of Object.keys(r)){let i=new RegExp(`{${s}}`,"g");o=o.replace(i,String(r[s]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(o=o.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),o}function x_(t,e,r){let n;if(e&&e.length===2){let[o,s]=e,i=t.getBounds({z:o}),a=t.getBounds({z:s});n=[Math.min(i[0],a[0]),Math.min(i[1],a[1]),Math.max(i[2],a[2]),Math.max(i[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 wd({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(o=>Uc(o,e||0,r))}function Uc(t,e,r){if(!Array.isArray(e)){let s=r.x-t.x,i=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},f=t.unproject([s,i],l),u=t.unproject([s+a,i],l),h=t.unproject([s,i+c],l),p=t.unproject([s+a,i+c],l);return[Math.min(f[0],u[0],h[0],p[0]),Math.min(f[1],u[1],h[1],p[1]),Math.max(f[0],u[0],h[0],p[0]),Math.max(f[1],u[1],h[1],p[1])]}let n=Uc(t,e[0],r),o=Uc(t,e[1],r);return[Math.min(n[0],o[0]),Math.min(n[1],o[1]),Math.max(n[2],o[2]),Math.max(n[3],o[3])]}function y_(t,e,r){return r?qs(t,r).map(o=>o*e/xt):t.map(n=>n*e/xt)}function Dc(t,e){return Math.pow(2,t)*xt/e}function js(t,e,r){let n=Dc(r,xt),o=t/n*360-180,s=Math.PI-2*Math.PI*e/n,i=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[o,i]}function Rd(t,e,r,n){let o=Dc(r,n);return[t/o*xt,e/o*xt]}function Gc(t,e,r,n,o=xt){if(t.isGeospatial){let[l,f]=js(e,r,n),[u,h]=js(e+1,r+1,n);return{west:l,north:f,east:u,south:h}}let[s,i]=Rd(e,r,n,o),[a,c]=Rd(e+1,r+1,n,o);return{left:s,top:i,right:a,bottom:c}}function b_(t,e,r,n,o){let s=x_(t,null,n),i=Dc(e,r),[a,c,l,f]=y_(s,i,o),u=[];for(let h=Math.floor(a);h<l;h++)for(let p=Math.floor(c);p<f;p++)u.push({x:h,y:p,z:e});return u}function Vc({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:o,tileSize:s=xt,modelMatrix:i,modelMatrixInverse:a,zoomOffset:c=0,visibleMinZoom:l,visibleMaxZoom:f}){let u=t.isGeospatial?Math.round(t.zoom+Math.log2(xt/s)+c):Math.ceil(t.zoom+c);if(typeof r=="number"&&Number.isFinite(r)&&u<r){if(!o)return[];u=r}if(typeof e=="number"&&Number.isFinite(e)&&u>e&&(u=e),l!=null&&t.zoom<l)return[];if(f!=null&&t.zoom>f)return[];let h=o;return i&&a&&o&&!t.isGeospatial&&(h=qs(o,i)),t.isGeospatial?vd(t,u,n,o):b_(t,u,s,h||g_,a)}function Hc(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function zc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Ld(t){let e={},r;return n=>{for(let o in n)if(!T_(n[o],e[o])){r=t(n),e=n;break}return r}}function T_(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 Fd=1,Js=2,M_="never",S_="no-overlap",ao="best-available",E_=5,__={[ao]:B_,[S_]:I_,[M_]:()=>{}},C_={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},hr=class{constructor(e){this._getCullBounds=Ld(wd),this.opts={...C_,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new Lt({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),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 N,this._modelMatrixInverse=new N}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)),this._viewport=null}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 o=n?new N(n):new N,s=!o.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!_e(this._zRange,r)||s){s&&(this._modelMatrixInverse=o.clone().invert(),this._modelMatrix=o),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 i=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),i&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,n){if(!e.isVisible)return!1;if(r&&this._viewport){let o=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,a,c,l]of o){let f;if("west"in s)f=s.west<c&&s.east>i&&s.south<l&&s.north>a;else{if(n&&!N.IDENTITY.equals(n)){let[p,d,g,m]=qs([s.left,s.top,s.right,s.bottom],n);s={left:p,top:d,right:g,bottom:m}}let u=Math.min(s.top,s.bottom),h=Math.max(s.top,s.bottom);f=s.left<c&&s.right>i&&u<l&&h>a}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:o,modelMatrix:s,modelMatrixInverse:i}){let{tileSize:a,extent:c,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u}=this.opts;return Vc({viewport:e,maxZoom:r,minZoom:n,zRange:o,tileSize:a,extent:c,modelMatrix:s,modelMatrixInverse:i,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Gc(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),o=e.z-1;return{x:r,y:n,z:o}}updateTileStates(){let e=this.opts.refinementStrategy||ao,r=new Array(this._cache.size),n=0;for(let o of this._cache.values())r[n++]=o.isVisible,o.isSelected=!1,o.isVisible=!1;for(let o of this._selectedTiles)o.isSelected=!0,o.isVisible=!0;(typeof e=="function"?e:__[e])(Array.from(this._cache.values())),n=0;for(let o of this._cache.values())if(r[n++]!==o.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let o of this._cache.values())o.isLoading&&(n++,!o.isSelected&&!o.isVisible&&r.push(o));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!==null?1/0:E_*this.selectedTiles.length),o=r.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>o){for(let[i,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?a.byteLength:0,e.delete(i),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=o)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((i,a)=>i.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),o=this._cache.get(n),s=!1;return!o&&r?(o=new ur(e),Object.assign(o,this.getTileMetadata(o.index)),Object.assign(o,{id:n,zoom:this.getTileZoom(o.index)}),s=!0,this._cache.set(n,o),this._dirty=!0):o&&o.needsReload&&(s=!0),o&&s&&o.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),o}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let o=this._getTile(n);if(o)return o}return null}};function B_(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Pd(e)&&kc(e);for(let e of t)e.isVisible=Boolean(e.state&Js)}function I_(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Pd(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&Js),r.children&&(r.isVisible||r.state&Fd))for(let n of r.children)n.state=Fd;else r.isSelected&&kc(r)}function Pd(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Js,!0;e=e.parent}return!1}function kc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Js:kc(e)}var v_={TilesetClass:hr,data:{type:"data",value:[]},dataComparator:Gt.equal,renderSubLayers:{type:"function",value:t=>new Nd.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:ao,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},co=class extends Ws.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.content||!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,o=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),o?r.reloadAll():r.tiles.forEach(s=>{s.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:o,extent:s,maxZoom:i,minZoom:a,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:i,minZoom:a,tileSize:e,refinementStrategy:o,extent:s,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h,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,o=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:s}=e,i=this.state.isLoaded!==s,a=this.state.frameNumber!==o;s&&(i||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:o}),this.state.isLoaded=s}_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:o}=this.props,{signal:s}=e;return e.url=typeof r=="string"||Array.isArray(r)?ft(r,e):null,n?n(e):o&&e.url?o(e.url,{propName:"data",layer:this,signal:s}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,n=r.props.tile,o=e.info;return o.picked&&(o.tile=n),o.sourceTile=n,o.sourceTileSubLayer=r,o}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){let{visibleMinZoom:e,visibleMaxZoom:r,minZoom:n,extent:o}=this.props,s=this.context.viewport.zoom;if(e!=null&&s<e||r!=null&&s>r||n!=null&&!o&&s<n){for(let a of this.state.tileset.tiles)a.layers=null;return[]}return this.state.tileset.tiles.map(a=>{let c=this.getSubLayerPropsByTile(a);if(!(!a.isLoaded&&!a.content))if(a.layers)c&&a.layers[0]&&Object.keys(c).some(l=>a.layers[0].props[l]!==c[l])&&(a.layers=a.layers.map(l=>l.clone(c)));else{let l=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:a.id,updateTriggers:this.props.updateTriggers}),data:a.content,_offset:0,tile:a});a.layers=(0,Ws._flatten)(l,Boolean).map(f=>f.clone({tile:a,...c}))}return a.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props,{modelMatrix:o}=this.props;return this.state.tileset.isTileVisible(n,r,o?new N(o):null)}};co.defaultProps=v_;co.layerName="TileLayer";var pr=co;var Dd=U(Ke(),1);var Od=`layout(std140) uniform tripsUniforms {
7
+ "use strict";var __exports__=(()=>{var P1=Object.create;var Tn=Object.defineProperty;var N1=Object.getOwnPropertyDescriptor;var O1=Object.getOwnPropertyNames;var U1=Object.getPrototypeOf,D1=Object.prototype.hasOwnProperty;var G1=(t,e,r)=>e in t?Tn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Ff=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var We=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),be=(t,e)=>{for(var r in e)Tn(t,r,{get:e[r],enumerable:!0})},zo=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of O1(e))!D1.call(t,o)&&o!==r&&Tn(t,o,{get:()=>e[o],enumerable:!(n=N1(e,o))||n.enumerable});return t},Et=(t,e,r)=>(zo(t,e,"default"),r&&zo(r,e,"default")),D=(t,e,r)=>(r=t!=null?P1(U1(t)):{},zo(e||!t||!t.__esModule?Tn(r,"default",{value:t,enumerable:!0}):r,t)),V1=t=>zo(Tn({},"__esModule",{value:!0}),t);var Jt=(t,e,r)=>(G1(t,typeof e!="symbol"?e+"":e,r),r);var Ke=We((BR,Pf)=>{Pf.exports=globalThis.deck});var nt=We((vR,Of)=>{Of.exports=globalThis.deck});var as=We((XR,th)=>{th.exports=globalThis.h3||{}});var er=We((LL,tp)=>{tp.exports=globalThis.loaders});var Lc=We((sd,ro)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Ff=="function"&&typeof ro=="object"&&ro&&ro.exports?ro.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(sd,function(){"use strict";function t(T,A,B){this.low=T|0,this.high=A|0,this.unsigned=!!B}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(T){return(T&&T.__isLong__)===!0}t.isLong=e;var r={},n={};function o(T,A){var B,L,F;return A?(T>>>=0,(F=0<=T&&T<256)&&(L=n[T],L)?L:(B=i(T,(T|0)<0?-1:0,!0),F&&(n[T]=B),B)):(T|=0,(F=-128<=T&&T<128)&&(L=r[T],L)?L:(B=i(T,T<0?-1:0,!1),F&&(r[T]=B),B))}t.fromInt=o;function s(T,A){if(isNaN(T)||!isFinite(T))return A?y:m;if(A){if(T<0)return y;if(T>=p)return _}else{if(T<=-d)return v;if(T+1>=d)return C}return T<0?s(-T,A).neg():i(T%h|0,T/h|0,A)}t.fromNumber=s;function i(T,A,B){return new t(T,A,B)}t.fromBits=i;var a=Math.pow;function c(T,A,B){if(T.length===0)throw Error("empty string");if(T==="NaN"||T==="Infinity"||T==="+Infinity"||T==="-Infinity")return m;if(typeof A=="number"?(B=A,A=!1):A=!!A,B=B||10,B<2||36<B)throw RangeError("radix");var L;if((L=T.indexOf("-"))>0)throw Error("interior hyphen");if(L===0)return c(T.substring(1),A,B).neg();for(var F=s(a(B,8)),w=m,U=0;U<T.length;U+=8){var W=Math.min(8,T.length-U),z=parseInt(T.substring(U,U+W),B);if(W<8){var re=s(a(B,W));w=w.mul(re).add(s(z))}else w=w.mul(F),w=w.add(s(z))}return w.unsigned=A,w}t.fromString=c;function l(T){return T instanceof t?T:typeof T=="number"?s(T):typeof T=="string"?c(T):i(T.low,T.high,T.unsigned)}t.fromValue=l;var f=1<<16,u=1<<24,h=f*f,p=h*h,d=p/2,g=o(u),m=o(0);t.ZERO=m;var y=o(0,!0);t.UZERO=y;var b=o(1);t.ONE=b;var M=o(1,!0);t.UONE=M;var S=o(-1);t.NEG_ONE=S;var C=i(-1,2147483647,!1);t.MAX_VALUE=C;var _=i(-1,-1,!0);t.MAX_UNSIGNED_VALUE=_;var v=i(0,-2147483648,!1);t.MIN_VALUE=v;var E=t.prototype;return E.toInt=function(){return this.unsigned?this.low>>>0:this.low},E.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},E.toString=function(A){if(A=A||10,A<2||36<A)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(v)){var B=s(A),L=this.div(B),F=L.mul(B).sub(this);return L.toString(A)+F.toInt().toString(A)}else return"-"+this.neg().toString(A);for(var w=s(a(A,6),this.unsigned),U=this,W="";;){var z=U.div(w),re=U.sub(z.mul(w)).toInt()>>>0,Y=re.toString(A);if(U=z,U.isZero())return Y+W;for(;Y.length<6;)Y="0"+Y;W=""+Y+W}},E.getHighBits=function(){return this.high},E.getHighBitsUnsigned=function(){return this.high>>>0},E.getLowBits=function(){return this.low},E.getLowBitsUnsigned=function(){return this.low>>>0},E.getNumBitsAbs=function(){if(this.isNegative())return this.eq(v)?64:this.neg().getNumBitsAbs();for(var A=this.high!=0?this.high:this.low,B=31;B>0&&!(A&1<<B);B--);return this.high!=0?B+33:B+1},E.isZero=function(){return this.high===0&&this.low===0},E.isNegative=function(){return!this.unsigned&&this.high<0},E.isPositive=function(){return this.unsigned||this.high>=0},E.isOdd=function(){return(this.low&1)===1},E.isEven=function(){return(this.low&1)===0},E.equals=function(A){return e(A)||(A=l(A)),this.unsigned!==A.unsigned&&this.high>>>31===1&&A.high>>>31===1?!1:this.high===A.high&&this.low===A.low},E.eq=E.equals,E.notEquals=function(A){return!this.eq(A)},E.neq=E.notEquals,E.lessThan=function(A){return this.comp(A)<0},E.lt=E.lessThan,E.lessThanOrEqual=function(A){return this.comp(A)<=0},E.lte=E.lessThanOrEqual,E.greaterThan=function(A){return this.comp(A)>0},E.gt=E.greaterThan,E.greaterThanOrEqual=function(A){return this.comp(A)>=0},E.gte=E.greaterThanOrEqual,E.compare=function(A){if(e(A)||(A=l(A)),this.eq(A))return 0;var B=this.isNegative(),L=A.isNegative();return B&&!L?-1:!B&&L?1:this.unsigned?A.high>>>0>this.high>>>0||A.high===this.high&&A.low>>>0>this.low>>>0?-1:1:this.sub(A).isNegative()?-1:1},E.comp=E.compare,E.negate=function(){return!this.unsigned&&this.eq(v)?v:this.not().add(b)},E.neg=E.negate,E.add=function(A){e(A)||(A=l(A));var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,U=A.high>>>16,W=A.high&65535,z=A.low>>>16,re=A.low&65535,Y=0,X=0,ee=0,Ie=0;return Ie+=w+re,ee+=Ie>>>16,Ie&=65535,ee+=F+z,X+=ee>>>16,ee&=65535,X+=L+W,Y+=X>>>16,X&=65535,Y+=B+U,Y&=65535,i(ee<<16|Ie,Y<<16|X,this.unsigned)},E.subtract=function(A){return e(A)||(A=l(A)),this.add(A.neg())},E.sub=E.subtract,E.multiply=function(A){if(this.isZero()||(e(A)||(A=l(A)),A.isZero()))return m;if(this.eq(v))return A.isOdd()?v:m;if(A.eq(v))return this.isOdd()?v:m;if(this.isNegative())return A.isNegative()?this.neg().mul(A.neg()):this.neg().mul(A).neg();if(A.isNegative())return this.mul(A.neg()).neg();if(this.lt(g)&&A.lt(g))return s(this.toNumber()*A.toNumber(),this.unsigned);var B=this.high>>>16,L=this.high&65535,F=this.low>>>16,w=this.low&65535,U=A.high>>>16,W=A.high&65535,z=A.low>>>16,re=A.low&65535,Y=0,X=0,ee=0,Ie=0;return Ie+=w*re,ee+=Ie>>>16,Ie&=65535,ee+=F*re,X+=ee>>>16,ee&=65535,ee+=w*z,X+=ee>>>16,ee&=65535,X+=L*re,Y+=X>>>16,X&=65535,X+=F*z,Y+=X>>>16,X&=65535,X+=w*W,Y+=X>>>16,X&=65535,Y+=B*re+L*z+F*W+w*U,Y&=65535,i(ee<<16|Ie,Y<<16|X,this.unsigned)},E.mul=E.multiply,E.divide=function(A){if(e(A)||(A=l(A)),A.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?y:m;var B,L,F;if(this.unsigned){if(A.unsigned||(A=A.toUnsigned()),A.gt(this))return y;if(A.gt(this.shru(1)))return M;F=y}else{if(this.eq(v)){if(A.eq(b)||A.eq(S))return v;if(A.eq(v))return b;var w=this.shr(1);return B=w.div(A).shl(1),B.eq(m)?A.isNegative()?b:S:(L=this.sub(A.mul(B)),F=B.add(L.div(A)),F)}else if(A.eq(v))return this.unsigned?y:m;if(this.isNegative())return A.isNegative()?this.neg().div(A.neg()):this.neg().div(A).neg();if(A.isNegative())return this.div(A.neg()).neg();F=m}for(L=this;L.gte(A);){B=Math.max(1,Math.floor(L.toNumber()/A.toNumber()));for(var U=Math.ceil(Math.log(B)/Math.LN2),W=U<=48?1:a(2,U-48),z=s(B),re=z.mul(A);re.isNegative()||re.gt(L);)B-=W,z=s(B,this.unsigned),re=z.mul(A);z.isZero()&&(z=b),F=F.add(z),L=L.sub(re)}return F},E.div=E.divide,E.modulo=function(A){return e(A)||(A=l(A)),this.sub(this.div(A).mul(A))},E.mod=E.modulo,E.not=function(){return i(~this.low,~this.high,this.unsigned)},E.and=function(A){return e(A)||(A=l(A)),i(this.low&A.low,this.high&A.high,this.unsigned)},E.or=function(A){return e(A)||(A=l(A)),i(this.low|A.low,this.high|A.high,this.unsigned)},E.xor=function(A){return e(A)||(A=l(A)),i(this.low^A.low,this.high^A.high,this.unsigned)},E.shiftLeft=function(A){return e(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?i(this.low<<A,this.high<<A|this.low>>>32-A,this.unsigned):i(0,this.low<<A-32,this.unsigned)},E.shl=E.shiftLeft,E.shiftRight=function(A){return e(A)&&(A=A.toInt()),(A&=63)===0?this:A<32?i(this.low>>>A|this.high<<32-A,this.high>>A,this.unsigned):i(this.high>>A-32,this.high>=0?0:-1,this.unsigned)},E.shr=E.shiftRight,E.shiftRightUnsigned=function(A){if(e(A)&&(A=A.toInt()),A&=63,A===0)return this;var B=this.high;if(A<32){var L=this.low;return i(L>>>A|B<<32-A,B>>>A,this.unsigned)}else return A===32?i(B,0,this.unsigned):i(B>>>A-32,0,this.unsigned)},E.shru=E.shiftRightUnsigned,E.toSigned=function(){return this.unsigned?i(this.low,this.high,!1):this},E.toUnsigned=function(){return this.unsigned?this:i(this.low,this.high,!0)},E.toBytes=function(T){return T?this.toBytesLE():this.toBytesBE()},E.toBytesLE=function(){var T=this.high,A=this.low;return[A&255,A>>>8&255,A>>>16&255,A>>>24&255,T&255,T>>>8&255,T>>>16&255,T>>>24&255]},E.toBytesBE=function(){var T=this.high,A=this.low;return[T>>>24&255,T>>>16&255,T>>>8&255,T&255,A>>>24&255,A>>>16&255,A>>>8&255,A&255]},t})});var jc=We((NG,kd)=>{kd.exports=globalThis.luma});var Qs=We((OG,jd)=>{jd.exports=globalThis.deck});var qc=We((UG,qd)=>{qd.exports=globalThis.luma});var Y0=We((s5,X0)=>{X0.exports=globalThis.deck});var i1=We(Tf=>{Tf.read=function(t,e,r,n,o){var s,i,a=o*8-n-1,c=(1<<a)-1,l=c>>1,f=-7,u=r?o-1:0,h=r?-1:1,p=t[e+u];for(u+=h,s=p&(1<<-f)-1,p>>=-f,f+=a;f>0;s=s*256+t[e+u],u+=h,f-=8);for(i=s&(1<<-f)-1,s>>=-f,f+=n;f>0;i=i*256+t[e+u],u+=h,f-=8);if(s===0)s=1-l;else{if(s===c)return i?NaN:(p?-1:1)*(1/0);i=i+Math.pow(2,n),s=s-l}return(p?-1:1)*i*Math.pow(2,s-n)};Tf.write=function(t,e,r,n,o,s){var i,a,c,l=s*8-o-1,f=(1<<l)-1,u=f>>1,h=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,d=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,i=f):(i=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-i))<1&&(i--,c*=2),i+u>=1?e+=h/c:e+=h*Math.pow(2,1-u),e*c>=2&&(i++,c/=2),i+u>=f?(a=0,i=f):i+u>=1?(a=(e*c-1)*Math.pow(2,o),i=i+u):(a=e*Math.pow(2,u-1)*Math.pow(2,o),i=0));o>=8;t[r+p]=a&255,p+=d,a/=256,o-=8);for(i=i<<o|a,l+=o;l>0;t[r+p]=i&255,p+=d,i/=256,l-=8);t[r+p-d]|=g*128}});var h1=We((K5,u1)=>{"use strict";u1.exports=J;var Xi=i1();function J(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}J.Varint=0;J.Fixed64=1;J.Bytes=2;J.Fixed32=5;var Mf=(1<<16)*(1<<16),a1=1/Mf,Ov=12,f1=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");J.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),o=n>>3,s=this.pos;this.type=n&7,t(o,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=Yi(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=l1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=Yi(this.buf,this.pos)+Yi(this.buf,this.pos+4)*Mf;return this.pos+=8,t},readSFixed64:function(){var t=Yi(this.buf,this.pos)+l1(this.buf,this.pos+4)*Mf;return this.pos+=8,t},readFloat:function(){var t=Xi.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=Xi.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,Uv(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>=Ov&&f1?Qv(this.buf,e,t):Yv(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!==J.Bytes)return t.push(this.readVarint(e));var r=St(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==J.Bytes)return t.push(this.readSVarint());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==J.Bytes)return t.push(this.readBoolean());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==J.Bytes)return t.push(this.readFloat());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==J.Bytes)return t.push(this.readDouble());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==J.Bytes)return t.push(this.readSFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===J.Varint)for(;this.buf[this.pos++]>127;);else if(e===J.Bytes)this.pos=this.readVarint()+this.pos;else if(e===J.Fixed32)this.pos+=4;else if(e===J.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),bn(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),bn(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),bn(this.buf,t&-1,this.pos),bn(this.buf,Math.floor(t*a1),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),bn(this.buf,t&-1,this.pos),bn(this.buf,Math.floor(t*a1),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){Dv(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=Zv(this.buf,t,this.pos);var r=this.pos-e;r>=128&&c1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),Xi.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),Xi.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&&c1(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,J.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,Hv,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,zv,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,qv,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,kv,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,jv,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,Jv,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,Wv,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,Kv,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,Xv,e)},writeBytesField:function(t,e){this.writeTag(t,J.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,J.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,J.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,J.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,J.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,J.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,J.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,Boolean(e))}};function Uv(t,e,r){var n=r.buf,o,s;if(s=n[r.pos++],o=(s&112)>>4,s<128||(s=n[r.pos++],o|=(s&127)<<3,s<128)||(s=n[r.pos++],o|=(s&127)<<10,s<128)||(s=n[r.pos++],o|=(s&127)<<17,s<128)||(s=n[r.pos++],o|=(s&127)<<24,s<128)||(s=n[r.pos++],o|=(s&1)<<31,s<128))return yn(t,o,e);throw new Error("Expected varint not more than 10 bytes")}function St(t){return t.type===J.Bytes?t.readVarint()+t.pos:t.pos+1}function yn(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function Dv(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),Gv(r,n,e),Vv(n,e)}function Gv(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 Vv(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 c1(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 o=r.pos-1;o>=t;o--)r.buf[o+n]=r.buf[o]}function Hv(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function zv(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function kv(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function jv(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function qv(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function Jv(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function Wv(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function Kv(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function Xv(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function Yi(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function bn(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function l1(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function Yv(t,e,r){for(var n="",o=e;o<r;){var s=t[o],i=null,a=s>239?4:s>223?3:s>191?2:1;if(o+a>r)break;var c,l,f;a===1?s<128&&(i=s):a===2?(c=t[o+1],(c&192)===128&&(i=(s&31)<<6|c&63,i<=127&&(i=null))):a===3?(c=t[o+1],l=t[o+2],(c&192)===128&&(l&192)===128&&(i=(s&15)<<12|(c&63)<<6|l&63,(i<=2047||i>=55296&&i<=57343)&&(i=null))):a===4&&(c=t[o+1],l=t[o+2],f=t[o+3],(c&192)===128&&(l&192)===128&&(f&192)===128&&(i=(s&15)<<18|(c&63)<<12|(l&63)<<6|f&63,(i<=65535||i>=1114112)&&(i=null))),i===null?(i=65533,a=1):i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),n+=String.fromCharCode(i),o+=a}return n}function Qv(t,e,r){return f1.decode(t.subarray(e,r))}function Zv(t,e,r){for(var n=0,o,s;n<e.length;n++){if(o=e.charCodeAt(n),o>55295&&o<57344)if(s)if(o<56320){t[r++]=239,t[r++]=191,t[r++]=189,s=o;continue}else o=s-55296<<10|o-56320|65536,s=null;else{o>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):s=o;continue}else s&&(t[r++]=239,t[r++]=191,t[r++]=189,s=null);o<128?t[r++]=o:(o<2048?t[r++]=o>>6|192:(o<65536?t[r++]=o>>12|224:(t[r++]=o>>18|240,t[r++]=o>>12&63|128),t[r++]=o>>6&63|128),t[r++]=o&63|128)}return r}});var Ho={};be(Ho,{A5Layer:()=>ep,GeohashLayer:()=>F1,GreatCircleLayer:()=>od,H3ClusterLayer:()=>zd,H3HexagonLayer:()=>Ys,MVTLayer:()=>v1,QuadkeyLayer:()=>xd,S2Layer:()=>gd,TerrainLayer:()=>K0,Tile3DLayer:()=>H0,TileLayer:()=>pr,TripsLayer:()=>Gd,_GeoCellLayer:()=>De,_Tile2DHeader:()=>ur,_Tileset2D:()=>hr,_WMSLayer:()=>Xr,_getURLFromTemplate:()=>ft});var rt={},Nf=D(Ke(),1);Et(rt,D(Ke(),1));if(!Nf.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");Et(Ho,rt);var Uf=D(nt(),1),ea=D(Ke(),1),H1={...ea.PolygonLayer.defaultProps},Mn=class extends Uf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:o,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,getElevation:p,getFillColor:d,getLineColor:g,getLineWidth:m}=this.props,{updateTriggers:y,material:b,transitions:M}=this.props,S=this.getSubLayerClass("cell",ea.PolygonLayer),{updateTriggers:C,..._}=this.indexToBounds()||{};return new S({filled:o,wireframe:n,extruded:r,elevationScale:e,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineJointRounded:f,lineMiterLimit:u,lineDashJustified:h,material:b,transitions:M,getElevation:p,getFillColor:d,getLineColor:g,getLineWidth:m},this.getSubLayerProps({id:"cell",updateTriggers:y&&{...C,getElevation:y.getElevation,getFillColor:y.getFillColor,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}),_)}};Mn.layerName="GeoCellLayer";Mn.defaultProps=H1;var De=Mn;var z1=Object.defineProperty,Cn=(t,e)=>{for(var r in e)z1(t,r,{get:e[r],enumerable:!0})},Ae={};Cn(Ae,{ARRAY_TYPE:()=>oe,EPSILON:()=>ge,RANDOM:()=>Wt,equals:()=>J1,setMatrixArrayType:()=>k1,toRadian:()=>q1});var ge=1e-6,oe=typeof Float32Array<"u"?Float32Array:Array,Wt=Math.random;function k1(t){oe=t}var j1=Math.PI/180;function q1(t){return t*j1}function J1(t,e){return Math.abs(t-e)<=ge*Math.max(1,Math.abs(t),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var Kt={};Cn(Kt,{LDU:()=>lA,add:()=>fA,adjoint:()=>tA,clone:()=>K1,copy:()=>X1,create:()=>W1,determinant:()=>rA,equals:()=>hA,exactEquals:()=>uA,frob:()=>cA,fromRotation:()=>sA,fromScaling:()=>iA,fromValues:()=>Q1,identity:()=>Y1,invert:()=>eA,mul:()=>mA,multiply:()=>su,multiplyScalar:()=>pA,multiplyScalarAndAdd:()=>dA,rotate:()=>nA,scale:()=>oA,set:()=>Z1,str:()=>aA,sub:()=>gA,subtract:()=>iu,transpose:()=>$1});function W1(){var t=new oe(4);return oe!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t}function K1(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function X1(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Y1(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t}function Q1(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function Z1(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function $1(t,e){if(t===e){var r=e[1];t[1]=e[2],t[2]=r}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t}function eA(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*s-o*n;return i?(i=1/i,t[0]=s*i,t[1]=-n*i,t[2]=-o*i,t[3]=r*i,t):null}function tA(t,e){var r=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=r,t}function rA(t){return t[0]*t[3]-t[2]*t[1]}function su(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*a+s*c,t[1]=o*a+i*c,t[2]=n*l+s*f,t[3]=o*l+i*f,t}function nA(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+s*a,t[1]=o*c+i*a,t[2]=n*-a+s*c,t[3]=o*-a+i*c,t}function oA(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1];return t[0]=n*a,t[1]=o*a,t[2]=s*c,t[3]=i*c,t}function sA(t,e){var r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t}function iA(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t}function aA(t){return"mat2("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}function cA(t){return Math.hypot(t[0],t[1],t[2],t[3])}function lA(t,e,r,n){return t[2]=n[2]/n[0],r[0]=n[0],r[1]=n[1],r[3]=n[3]-t[2]*r[1],[t,e,r]}function fA(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 iu(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 uA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function hA(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}function pA(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 dA(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}var mA=su,gA=iu;function AA(){var t=new oe(9);return oe!=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}var oa={};Cn(oa,{add:()=>Rx,calculateW:()=>yx,clone:()=>Cx,conjugate:()=>Sx,copy:()=>Ix,create:()=>ia,dot:()=>Mu,equals:()=>Ox,exactEquals:()=>Nx,exp:()=>xu,fromEuler:()=>Ex,fromMat3:()=>bu,fromValues:()=>Bx,getAngle:()=>mx,getAxisAngle:()=>dx,identity:()=>px,invert:()=>Mx,len:()=>Fx,length:()=>Su,lerp:()=>Lx,ln:()=>yu,mul:()=>wx,multiply:()=>Au,normalize:()=>ga,pow:()=>bx,random:()=>Tx,rotateX:()=>gx,rotateY:()=>Ax,rotateZ:()=>xx,rotationTo:()=>Ux,scale:()=>Tu,set:()=>vx,setAxes:()=>Gx,setAxisAngle:()=>gu,slerp:()=>Zo,sqlerp:()=>Dx,sqrLen:()=>Px,squaredLength:()=>Eu,str:()=>_x});var R={};Cn(R,{add:()=>TA,angle:()=>HA,bezier:()=>FA,ceil:()=>MA,clone:()=>xA,copy:()=>yA,create:()=>da,cross:()=>Qo,dist:()=>XA,distance:()=>uu,div:()=>KA,divide:()=>fu,dot:()=>ma,equals:()=>qA,exactEquals:()=>jA,floor:()=>SA,forEach:()=>ZA,fromValues:()=>sa,hermite:()=>LA,inverse:()=>RA,len:()=>mu,length:()=>au,lerp:()=>wA,max:()=>_A,min:()=>EA,mul:()=>WA,multiply:()=>lu,negate:()=>vA,normalize:()=>du,random:()=>PA,rotateX:()=>DA,rotateY:()=>GA,rotateZ:()=>VA,round:()=>CA,scale:()=>BA,scaleAndAdd:()=>IA,set:()=>bA,sqrDist:()=>YA,sqrLen:()=>QA,squaredDistance:()=>hu,squaredLength:()=>pu,str:()=>kA,sub:()=>JA,subtract:()=>cu,transformMat3:()=>OA,transformMat4:()=>NA,transformQuat:()=>UA,zero:()=>zA});function da(){var t=new oe(3);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function xA(t){var e=new oe(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function au(t){var e=t[0],r=t[1],n=t[2];return Math.hypot(e,r,n)}function sa(t,e,r){var n=new oe(3);return n[0]=t,n[1]=e,n[2]=r,n}function yA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function bA(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function TA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function cu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function lu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function fu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function MA(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function SA(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function EA(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 _A(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 CA(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function BA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function IA(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 uu(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.hypot(r,n,o)}function hu(t,e){var r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function pu(t){var e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function vA(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function RA(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function du(t,e){var r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function ma(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Qo(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function wA(t,e,r,n){var o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function LA(t,e,r,n,o,s){var i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function FA(t,e,r,n,o,s){var i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function PA(t,e){e=e||1;var r=Wt()*2*Math.PI,n=Wt()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function NA(t,e,r){var n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function OA(t,e,r){var n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function UA(t,e,r){var n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,g=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,g*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+g,t}function DA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function GA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function VA(t,e,r,n){var o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function HA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt(r*r+n*n+o*o),l=Math.sqrt(s*s+i*i+a*a),f=c*l,u=f&&ma(t,e)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function zA(t){return t[0]=0,t[1]=0,t[2]=0,t}function kA(t){return"vec3("+t[0]+", "+t[1]+", "+t[2]+")"}function jA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function qA(t,e){var r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=ge*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=ge*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=ge*Math.max(1,Math.abs(o),Math.abs(a))}var JA=cu,WA=lu,KA=fu,XA=uu,YA=hu,mu=au,QA=pu,ZA=function(){var t=da();return function(e,r,n,o,s,i){var a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();function $A(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function ex(t){var e=new oe(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function tx(t,e,r,n){var o=new oe(4);return o[0]=t,o[1]=e,o[2]=r,o[3]=n,o}function rx(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function nx(t,e,r,n,o){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t}function ox(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 sx(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 ix(t){var e=t[0],r=t[1],n=t[2],o=t[3];return Math.hypot(e,r,n,o)}function ax(t){var e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function cx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function lx(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function fx(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function ux(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function hx(t,e){var r=t[0],n=t[1],o=t[2],s=t[3],i=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-i)<=ge*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-a)<=ge*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-c)<=ge*Math.max(1,Math.abs(o),Math.abs(c))&&Math.abs(s-l)<=ge*Math.max(1,Math.abs(s),Math.abs(l))}var wR=function(){var t=$A();return function(e,r,n,o,s,i){var a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();function ia(){var t=new oe(4);return oe!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function px(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function gu(t,e,r){r=r*.5;var 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 dx(t,e){var r=Math.acos(e[3])*2,n=Math.sin(r/2);return n>ge?(t[0]=e[0]/n,t[1]=e[1]/n,t[2]=e[2]/n):(t[0]=1,t[1]=0,t[2]=0),r}function mx(t,e){var r=Mu(t,e);return Math.acos(2*r*r-1)}function Au(t,e,r){var n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function gx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function Ax(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function xx(t,e,r){r*=.5;var n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function yx(t,e){var r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function xu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=Math.exp(s),c=i>0?a*Math.sin(i)/i:0;return t[0]=r*c,t[1]=n*c,t[2]=o*c,t[3]=a*Math.cos(i),t}function yu(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=Math.sqrt(r*r+n*n+o*o),a=i>0?Math.atan2(i,s)/i:0;return t[0]=r*a,t[1]=n*a,t[2]=o*a,t[3]=.5*Math.log(r*r+n*n+o*o+s*s),t}function bx(t,e,r){return yu(t,e),Tu(t,t,r),xu(t,t),t}function Zo(t,e,r,n){var o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,g,m;return p=o*c+s*l+i*f+a*u,p<0&&(p=-p,c=-c,l=-l,f=-f,u=-u),1-p>ge?(h=Math.acos(p),d=Math.sin(h),g=Math.sin((1-n)*h)/d,m=Math.sin(n*h)/d):(g=1-n,m=n),t[0]=g*o+m*c,t[1]=g*s+m*l,t[2]=g*i+m*f,t[3]=g*a+m*u,t}function Tx(t){var e=Wt(),r=Wt(),n=Wt(),o=Math.sqrt(1-e),s=Math.sqrt(e);return t[0]=o*Math.sin(2*Math.PI*r),t[1]=o*Math.cos(2*Math.PI*r),t[2]=s*Math.sin(2*Math.PI*n),t[3]=s*Math.cos(2*Math.PI*n),t}function Mx(t,e){var r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function Sx(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function bu(t,e){var 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{var o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);var s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}function Ex(t,e,r,n){var o=.5*Math.PI/180;e*=o,r*=o,n*=o;var s=Math.sin(e),i=Math.cos(e),a=Math.sin(r),c=Math.cos(r),l=Math.sin(n),f=Math.cos(n);return t[0]=s*c*f-i*a*l,t[1]=i*a*f+s*c*l,t[2]=i*c*l-s*a*f,t[3]=i*c*f+s*a*l,t}function _x(t){return"quat("+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+")"}var Cx=ex,Bx=tx,Ix=rx,vx=nx,Rx=ox,wx=Au,Tu=sx,Mu=lx,Lx=fx,Su=ix,Fx=Su,Eu=ax,Px=Eu,ga=cx,Nx=ux,Ox=hx,Ux=function(){var t=da(),e=sa(1,0,0),r=sa(0,1,0);return function(n,o,s){var i=ma(o,s);return i<-.999999?(Qo(t,e,o),mu(t)<1e-6&&Qo(t,r,o),du(t,t),gu(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Qo(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,ga(n,n))}}(),Dx=function(){var t=ia(),e=ia();return function(r,n,o,s,i,a){return Zo(t,n,i,a),Zo(e,o,s,a),Zo(r,t,e,2*a*(1-a)),r}}(),Gx=function(){var t=AA();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],ga(e,bu(e,t))}}(),P={};Cn(P,{add:()=>jx,angle:()=>fy,ceil:()=>qx,clone:()=>Vx,copy:()=>zx,create:()=>_u,cross:()=>ry,dist:()=>yy,distance:()=>vu,div:()=>xy,divide:()=>Iu,dot:()=>ty,equals:()=>dy,exactEquals:()=>py,floor:()=>Jx,forEach:()=>My,fromValues:()=>Hx,inverse:()=>$x,len:()=>my,length:()=>wu,lerp:()=>ny,max:()=>Kx,min:()=>Wx,mul:()=>Ay,multiply:()=>Bu,negate:()=>Zx,normalize:()=>ey,random:()=>oy,rotate:()=>ly,round:()=>Xx,scale:()=>Yx,scaleAndAdd:()=>Qx,set:()=>kx,sqrDist:()=>by,sqrLen:()=>Ty,squaredDistance:()=>Ru,squaredLength:()=>Lu,str:()=>hy,sub:()=>gy,subtract:()=>Cu,transformMat2:()=>sy,transformMat2d:()=>iy,transformMat3:()=>ay,transformMat4:()=>cy,zero:()=>uy});function _u(){var t=new oe(2);return oe!=Float32Array&&(t[0]=0,t[1]=0),t}function Vx(t){var e=new oe(2);return e[0]=t[0],e[1]=t[1],e}function Hx(t,e){var r=new oe(2);return r[0]=t,r[1]=e,r}function zx(t,e){return t[0]=e[0],t[1]=e[1],t}function kx(t,e,r){return t[0]=e,t[1]=r,t}function jx(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function Cu(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Bu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function Iu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function qx(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Jx(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function Wx(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function Kx(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function Xx(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function Yx(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function Qx(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function vu(t,e){var r=e[0]-t[0],n=e[1]-t[1];return Math.hypot(r,n)}function Ru(t,e){var r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function wu(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function Lu(t){var e=t[0],r=t[1];return e*e+r*r}function Zx(t,e){return t[0]=-e[0],t[1]=-e[1],t}function $x(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function ey(t,e){var r=e[0],n=e[1],o=r*r+n*n;return o>0&&(o=1/Math.sqrt(o)),t[0]=e[0]*o,t[1]=e[1]*o,t}function ty(t,e){return t[0]*e[0]+t[1]*e[1]}function ry(t,e,r){var n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t}function ny(t,e,r,n){var o=e[0],s=e[1];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t}function oy(t,e){e=e||1;var r=Wt()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function sy(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function iy(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function ay(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function cy(t,e,r){var n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}function ly(t,e,r,n){var o=e[0]-r[0],s=e[1]-r[1],i=Math.sin(n),a=Math.cos(n);return t[0]=o*a-s*i+r[0],t[1]=o*i+s*a+r[1],t}function fy(t,e){var r=t[0],n=t[1],o=e[0],s=e[1],i=Math.sqrt(r*r+n*n)*Math.sqrt(o*o+s*s),a=i&&(r*o+n*s)/i;return Math.acos(Math.min(Math.max(a,-1),1))}function uy(t){return t[0]=0,t[1]=0,t}function hy(t){return"vec2("+t[0]+", "+t[1]+")"}function py(t,e){return t[0]===e[0]&&t[1]===e[1]}function dy(t,e){var r=t[0],n=t[1],o=e[0],s=e[1];return Math.abs(r-o)<=ge*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-s)<=ge*Math.max(1,Math.abs(n),Math.abs(s))}var my=wu,gy=Cu,Ay=Bu,xy=Iu,yy=vu,by=Ru,Ty=Lu,My=function(){var t=_u();return function(e,r,n,o,s,i){var a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}(),ns=(1+Math.sqrt(5))/2,LR=2*Math.PI,$o=2*Math.PI/5,ot=Math.PI/5,Df=Math.PI/10,Sy=2*Math.atan(ns),aa=Math.PI-Sy,FR=-.5*Math.PI+Math.acos(-1/Math.sqrt(3-ns)),os=(Math.sqrt(5)-1)/2,Ey=3-Math.sqrt(5),_y=Math.sqrt(3-ns),PR=Math.sqrt(3)*_y/ns,es=63710072e-1,NR=4*Math.PI*es*es;Ae.setMatrixArrayType(Float64Array);var Aa=class ca{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,r=this.vertices.length;for(let n=0;n<r;n++){let o=(n+1)%r;e+=(this.vertices[o][0]-this.vertices[n][0])*(this.vertices[o][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)P.scale(r,r,e);return this}rotate180(){for(let e of this.vertices)P.negate(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let r of this.vertices)P.add(r,r,e);return this}transform(e){for(let r of this.vertices)P.transformMat2(r,r,e);return this}transform2d(e){for(let r of this.vertices)P.transformMat2d(r,r,e);return this}clone(){return new ca(this.vertices.map(r=>P.clone(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((n,o)=>[n[0]+o[0]/e,n[1]+o[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let r=this.vertices.length,n=1;for(let o=0;o<r;o++){let s=this.vertices[o],i=this.vertices[(o+1)%r],a=s[0]-i[0],c=s[1]-i[1],l=e[0]-s[0],f=e[1]-s[1],u=a*f-c*l;if(u<0){let h=Math.sqrt(l*l+f*f);n=Math.min(n,u/h)}}return n}splitEdges(e){if(e<=1)return this;let r=[],n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];r.push(P.clone(s));for(let a=1;a<e;a++){let c=a/e,l=P.create();P.lerp(l,s,i,c),r.push(l)}}return new ca(r)}};Ae.setMatrixArrayType(Float64Array);var Fu=[0,0],Pu=[0,1],Xt=[.7885966681787006,1.6149108024237764],Nu=[1.6171013659387945,1.054928690397459],Ou=[Math.cos(Df),Math.sin(Df)],Cy=2*P.length(Xt)*Math.cos(ot),By=ot-Math.atan2(Xt[1],Xt[0]),Iy=2*os/Cy;[Fu,Pu,Xt,Nu,Ou].forEach(t=>{P.scale(t,t,Iy),P.rotate(t,t,[0,0],By)});var vy=new Aa([Fu,Pu,Xt,Nu,Ou]),Uu=Math.atan2(Xt[1],Xt[0])-ot,Ry=[0,0],ts=os/Math.cos(ot),Gf=Uu+ot,rs=[ts*Math.cos(Gf),ts*Math.sin(Gf)],Vf=Uu-ot,_n=[ts*Math.cos(Vf),ts*Math.sin(Vf)],Du=new Aa([Ry,rs,_n]),Gu=Kt.fromValues(rs[0],rs[1],_n[0],_n[1]),OR=Kt.invert(Kt.create(),Gu),wy=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),Ly=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),Fy=class{applyCoefficients(t,e){let r=Math.sin(t),n=Math.cos(t),o=2*(n-r)*(n+r),s,i;return s=o*e[5]+e[4],i=o*s+e[3],s=o*i-s+e[2],i=o*s-i+e[1],s=o*i-s+e[0],t+2*r*n*s}forward(t){return this.applyCoefficients(t,wy)}inverse(t){return this.applyCoefficients(t,Ly)}};Ae.setMatrixArrayType(Float64Array);var Vu=new Fy;function Hf(t){return t*(Math.PI/180)}function zf(t){return t*(180/Math.PI)}function kf(t){let e=P.length(t),r=Math.atan2(t[1],t[0]);return[e,r]}function Py([t,e]){let r=t*Math.cos(e),n=t*Math.sin(e);return[r,n]}function Ny(t,[e,r,n]){let o=[e[0]-n[0],e[1]-n[1]],s=[n[0]-r[0],n[1]-r[1]],i=[t[0]-n[0],t[1]-n[1]],a=s[0]*o[1]-s[1]*o[0],c=(s[0]*i[1]-s[1]*i[0])/a,l=(o[0]*i[1]-o[1]*i[0])/a,f=1-(c+l);return[c,l,f]}function Oy(t,[e,r,n]){return[t[0]*e[0]+t[1]*r[0]+t[2]*n[0],t[0]*e[1]+t[1]*r[1]+t[2]*n[1]]}function la(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),n=Math.acos(t[2]/r);return[e,n]}function Lr([t,e]){let r=Math.sin(e),n=r*Math.cos(t),o=r*Math.sin(t),s=Math.cos(e);return[n,o,s]}var Hu=93;function Uy([t,e]){let r=Hf(t+Hu),n=Hf(e),o=Vu.forward(n),s=Math.PI/2-o;return[r,s]}function zu([t,e]){let r=zf(t)-Hu,n=Math.PI/2-e,o=Vu.inverse(n),s=zf(o);return[r,s]}function Dy(t){let e=t.map(s=>Lr(Uy(s))),r=R.create();for(let s of e)R.add(r,r,s);R.normalize(r,r);let[n,o]=zu(la(r));return(o>89.99||o<-89.99)&&(n=t[0][0]),n=((n+180)%360+360)%360-180,t.map(s=>{let[i,a]=s;for(;i-n>180;)i=i-360;for(;i-n<-180;)i=i+360;return[i,a]})}Ae.setMatrixArrayType(Float64Array);var ss=Math.sqrt(5),is=Math.sqrt(.2),ku=Math.sqrt((1-is)/2),ju=Math.sqrt((1+is)/2),ko=.5,jf=Math.sqrt((2.5-ss)/10),qf=Math.sqrt((2.5+ss)/10),Jf=Math.sqrt((1+is)/8),Wf=Math.sqrt((1-is)/8),Kf=Math.sqrt((3-ss)/8),Xf=Math.sqrt((3+ss)/8),Gy=[[0,0],[ku,0],[jf,ko],[-Jf,Kf],[-Jf,-Kf],[jf,-ko],[-ju,0],[-Wf,-Xf],[qf,-ko],[qf,ko],[-Wf,Xf],[0,0]],Vy=Gy.map(([t,e])=>[-e,t]),jo=Vy.map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?ju:ku]);Ae.setMatrixArrayType(Float64Array);var qu=["vu","uw","vw","vw","vw"],Sn=["wu","uw","vw","vu","uw"],ta=["wu","uv","wv","wu","uw"],qo=["vu","uv","wv","wu","uw"],Hy=[qu,qo,ta,Sn,ta,qo,ta,Sn,Sn,Sn,qo,qo],zy=[4,2,3,2,0,4,3,2,2,0,3,0],Yf=[0,1,2,4,3,5,7,8,6,11,10,9],Xe=[];function ky(){Jo([0,0],0,jo[0]);for(let t=0;t<5;t++){let e=t*$o,r=e+ot;Jo([e,aa],ot,jo[t+1]),Jo([r,Math.PI-aa],ot,jo[(t+3)%5+6])}Jo([0,Math.PI],0,jo[11])}var vr=0;function Jo(t,e,r){if(vr>11)throw new Error(`Too many origins: ${vr}`);let n=oa.create();oa.conjugate(n,r);let o={id:vr,axis:t,quat:r,inverseQuat:n,angle:e,orientation:Hy[vr],firstQuintant:zy[vr]};Xe.push(o),vr++}ky();Xe.sort((t,e)=>Yf.indexOf(t.id)-Yf.indexOf(e.id));Xe.forEach((t,e)=>t.id=e);function jy(t,e){let r=e.orientation,n=r===qu||r===Sn?-1:1,o=(t-e.firstQuintant+5)%5,s=r[o];return{quintant:(e.firstQuintant+n*o+5)%5,orientation:s}}var qy=class{forward([t,e]){return[Math.tan(e),t]}inverse([t,e]){return[e,Math.atan(t)]}},Rr=R.create(),En=R.create(),Qf=R.create(),Zf=R.create();function ra(t,e){R.lerp(Rr,t,e,.5),R.normalize(Rr,Rr),R.cross(Rr,t,Rr);let r=R.length(Rr);if(r<1e-8){let n=R.subtract(R.create(),t,e);return .5*R.length(n)}return r}function Jy(t,e,r){return R.cross(En,e,r),R.dot(t,En)}function Wy(t,e,r,n,o){R.cross(En,n,o);let s=R.dot(e,En),i=R.dot(r,En);return R.scale(Qf,e,i),R.scale(Zf,r,s),R.sub(t,Zf,Qf)}function fa(t,e,r,n){let o=R.angle(e,r);if(o<1e-12)return R.lerp(t,e,r,n);let s=Math.sin((1-n)*o)/Math.sin(o),i=Math.sin(n*o)/Math.sin(o),a=R.scale(R.create(),e,s),c=R.scale(R.create(),r,i);return R.add(t,a,c)}Ae.setMatrixArrayType(Float64Array);var Wo=R.create(),Ko=R.create(),Xo=R.create(),wr=R.create(),Ky=class{constructor(t){this._area=null,this.vertices=t,Object.freeze(this.vertices)}getBoundary(t=1,e=!0){let r=[],n=this.vertices.length;for(let o=0;o<n*t;o++){let s=o/t;r.push(this.slerp(s))}return e&&r.push(r[0]),r}slerp(t){let e=this.vertices.length,r=t%1,n=Math.floor(t%e),o=(n+1)%e;return fa(R.create(),this.vertices[n],this.vertices[o],r)}getTransformedVertices(t){let e=this.vertices.length,r=Math.floor(t%e),n=(r+1)%e,o=(r+e-1)%e,s=R.clone(this.vertices[r]),i=R.clone(this.vertices[n]),a=R.clone(this.vertices[o]);return R.sub(i,i,s),R.sub(a,a,s),[s,i,a]}containsPoint(t){let e=this.vertices.length,r=1/0;for(let n=0;n<e;n++){let[o,s,i]=this.getTransformedVertices(n),a=R.sub(R.create(),t,o);R.normalize(a,a),R.normalize(s,s),R.normalize(i,i);let c=R.cross(R.create(),s,a),l=R.cross(R.create(),a,i),f=R.dot(o,c),u=R.dot(o,l);r=Math.min(r,f,u)}return r}getTriangleArea(t,e,r){R.lerp(Wo,e,r,.5),R.lerp(Ko,r,t,.5),R.lerp(Xo,t,e,.5),R.normalize(Wo,Wo),R.normalize(Ko,Ko),R.normalize(Xo,Xo);let n=Jy(Wo,Ko,Xo),o=Math.max(-1,Math.min(1,n));return Math.abs(o)<1e-8?2*o:Math.asin(o)*2}getArea(){return this._area===null&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(this.vertices.length===3)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;R.set(wr,0,0,0);for(let e of this.vertices)R.add(wr,wr,e);R.normalize(wr,wr);let t=0;for(let e=0;e<this.vertices.length;e++){let r=this.vertices[e],n=this.vertices[(e+1)%this.vertices.length],o=this.getTriangleArea(wr,r,n);isNaN(o)||(t+=o)}return this._area=t,this._area}isWindingCorrect(){if(!(this.getArea()>0))debugger}};Ae.setMatrixArrayType(Float64Array);var Yo=class extends Ky{constructor(t){if(t.length!==3)throw new Error("SphericalTriangleShape requires exactly 3 vertices");super(t)}};Ae.setMatrixArrayType(Float64Array);var Xy=class{forward(t,e,r){let[n,o,s]=e,i=new Yo([n,o,s]),a=R.subtract(R.create(),t,n);R.normalize(a,a);let c=Wy(R.create(),n,a,o,s);R.normalize(c,c);let l=ra(n,t)/ra(n,c),f=i.getArea(),u=l/f,h=[1-l,u*new Yo([n,c,s]).getArea(),u*new Yo([n,o,c]).getArea()];return Oy(h,r)}inverse(t,e,r){let[n,o,s]=r,i=new Yo([n,o,s]),a=Ny(t,e),c=1-1e-14;if(a[0]>c)return n;if(a[1]>c)return o;if(a[2]>c)return s;let l=R.create();R.cross(l,o,s);let f=i.getArea(),u=1-a[0],p=a[2]/u*f,d=Math.sin(p),g=Math.sin(p/2),m=2*g*g,y=R.dot(n,o),b=R.dot(o,s),M=R.dot(s,n),S=R.length(l),C=R.dot(n,l),_=d*C+m*(y*b-M),v=m*S*(1+y),E=2/Math.acos(b)*Math.atan2(v,_),T=fa(R.create(),o,s,E),A=ra(n,T),B=this.safeAcos(u*A)/this.safeAcos(A);return fa([0,0,0],n,T,B)}safeAcos(t){return t<.001?2*t+t*t*t/3:Math.acos(1-2*t*t)}},Fe=-1,Ee=1;Ae.setMatrixArrayType(Float64Array);var Yy=([t,e])=>P.fromValues(t-e,e);Ae.setMatrixArrayType(Float64Array);var ua=P.fromValues(1,0),ha=P.fromValues(0,1),$f=P.negate(P.create(),ua),eu=P.negate(P.create(),ha),na=P.fromValues(0,0),Qy=(t,[e,r])=>{let n=na,o=na;switch(e===Ee&&r===Ee?(n=ua,o=ha):e===Fe&&r===Ee?(n=eu,o=$f):e===Ee&&r===Fe?(n=ha,o=ua):e===Fe&&r===Fe&&(n=$f,o=eu),t){case 0:return na;case 1:return n;case 2:return P.add(P.create(),o,n);case 3:return P.scaleAndAdd(P.create(),o,n,2);default:throw new Error(`Invalid Quaternary value: ${t}`)}},tu=t=>[[Ee,Ee],[Ee,Fe],[Ee,Ee],[Fe,Ee]][t];function Ju(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var Wu=[0,1,3,4,5,6,7,2],Ku=[0,1,2,7,3,4,5,6],UR=Ju(Wu),DR=Ju(Ku),Zy=(t,e,r,n,o)=>{if(e<=0)return;let s=t[e]||0,i=t[e-1],a=r[0]+r[1],c=!0,l=!0;if(n!==(a===0)?(c=s===1||s===2,l=s===1):(c=s<2,l=s===0),!c)return;let f=l?i:i+4,u=o[f];t[e-1]=u%4,t[e]=(s+4+Math.floor(u/4)-Math.floor(f/4))%4};Ae.setMatrixArrayType(Float64Array);var ru=P.fromValues(-1,1),Xu=!0,$y=(t,e,r,n=Xu)=>{let o=BigInt(t),s=r==="vu"||r==="wu"||r==="vw",i=r==="wv"||r==="vw",a=r==="wu"||r==="uw";s&&(o=(1n<<BigInt(2*e))-o-1n);let c=eb(o,e,i,a,n);if(a){let{offset:[l,f],flips:[u,h]}=c;c.offset=[f,l],u===Fe&&P.add(c.offset,c.offset,ru),h===Fe&&P.subtract(c.offset,c.offset,ru)}if(i){let{offset:[l,f],flips:u}=c,h=(1<<e)-(l+f);u[0]=-u[0],c.offset[1]=h,c.flips=u}return c},eb=(t,e,r,n,o=Xu)=>{let s=P.create(),i=[Ee,Ee],a=BigInt(t),c=[];for(;a>0n||c.length<e;)c.push(Number(a%4n)),a=a>>2n;let l=n?Ku:Wu;for(let u=c.length-1;u>=0;u--)o&&Zy(c,u,i,r,l),P.multiply(i,i,tu(c[u]));i[0]=Ee,i[1]=Ee;for(let u=c.length-1;u>=0;u--){P.scale(s,s,2);let h=Qy(c[u],i);P.add(s,s,h),P.multiply(i,i,tu(c[u]))}return{q:c[0]||0,offset:Yy(s),flips:i}};var _t=.1,GR=[[_t*Math.cos(45*Math.PI/180),_t*Math.sin(45*Math.PI/180)],[_t*Math.cos(113*Math.PI/180),_t*Math.sin(113*Math.PI/180)],[_t*Math.cos(293*Math.PI/180),_t*Math.sin(293*Math.PI/180)],[_t*Math.cos(225*Math.PI/180),_t*Math.sin(225*Math.PI/180)]];Ae.setMatrixArrayType(Float64Array);var tb=!1,rb=P.clone(_n),nb=P.negate(P.create(),_n),xa=[0,1,2,3,4].map(t=>{let e=Kt.create();return Kt.fromRotation(e,$o*t),e}),nu=P.create();function ob(t,e,r){let n=(tb?Du:vy).clone();P.transformMat2(nu,r.offset,Gu),r.flips[0]===Ee&&r.flips[1]===Fe&&n.rotate180();let{q:o}=r,s=r.flips[0]+r.flips[1];return((s===-2||s===2)&&o>1||s===0&&(o===0||o===3))&&n.reflectY(),r.flips[0]===Fe&&r.flips[1]===Fe?n.rotate180():r.flips[0]===Fe?n.translate(nb):r.flips[1]===Fe&&n.translate(rb),n.translate(nu),n.scale(1/2**t),n.transform(xa[e]),n}function Yu(t){let e=Du.clone();return e.transform(xa[t]),e}function sb(){let t=[];for(let e of xa)t.push(P.transformMat2(P.create(),rs,e));return t.reverse(),new Aa(t)}Ae.setMatrixArrayType(Float64Array);var ib=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getVertex(t){this.invocations++,this.invocations===1e4&&console.warn("Too many CRS invocations, results should be cached");for(let e of this.vertices)if(R.distance(t,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){Xe.forEach(t=>this.add(Lr(t.axis)))}addVertices(){let t=Math.atan(Ey);for(let e of Xe)for(let r=0;r<5;r++){let n=(2*r+1)*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}addMidpoints(){let t=Math.atan(os);for(let e of Xe)for(let r=0;r<5;r++){let n=2*r*Math.PI/5,o=Lr([n+e.angle,t]);R.transformQuat(o,o,e.quat),this.add(o)}}add(t){let e=R.normalize(R.create(),t);return this.vertices.find(n=>R.distance(e,n)<1e-5)?!1:(this.vertices.push(e),!0)}};Ae.setMatrixArrayType(Float64Array);var ab=new ib,cb=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new Xy,this.gnomonic=new qy}forward(t,e){let r=Xe[e],n=Lr(t),o=R.create();R.transformQuat(o,n,r.inverseQuat);let s=la(o),i=this.gnomonic.forward(s);i[1]=i[1]-r.angle;let a=this.getFaceTriangleIndex(i),c=this.shouldReflect(i),l=this.getFaceTriangle(a,c,!1),f=this.getSphericalTriangle(a,e,c);return this.polyhedral.forward(n,f,l)}inverse(t,e){let r=kf(t),n=this.getFaceTriangleIndex(r),o=this.shouldReflect(r),s=this.getFaceTriangle(n,o,!1),i=this.getSphericalTriangle(n,e,o),a=this.polyhedral.inverse(t,s,i);return la(a)}shouldReflect(t){let[e,r]=t;return Py([e,this.normalizeGamma(r)])[0]>os}getFaceTriangleIndex([t,e]){return(Math.floor(e/ot)+10)%10}getFaceTriangle(t,e=!1,r=!1){let n=t;return e&&(n+=r?20:10),this.faceTriangles[n]?this.faceTriangles[n]:(this.faceTriangles[n]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[n]),this.faceTriangles[n])}_getFaceTriangle(t){let e=Math.floor((t+1)/2)%5,[r,n,o]=Yu(e).getVertices(),s=P.create();return P.lerp(s,n,o,.5),t%2===0?[r,s,n]:[r,o,s]}_getReflectedFaceTriangle(t,e=!1){let[r,n,o]=this._getFaceTriangle(t).map(a=>P.clone(a)),s=t%2===0;P.negate(r,r);let i=s?n:o;return P.scaleAndAdd(r,r,i,e?1+1/Math.cos(aa):2),[r,o,n]}getSphericalTriangle(t,e,r=!1){let n=10*e+t;return r&&(n+=120),this.sphericalTriangles[n]?this.sphericalTriangles[n]:(this.sphericalTriangles[n]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[n]),this.sphericalTriangles[n])}_getSphericalTriangle(t,e,r=!1){let n=Xe[e];return this.getFaceTriangle(t,r,!0).map(i=>{let[a,c]=kf(i),l=[a,c+n.angle],f=Lr(this.gnomonic.inverse(l));return R.transformQuat(f,f,n.quat),ab.getVertex(f)})}normalizeGamma(t){let e=t/$o,r=Math.round(e);return(e-r)*$o}},Fr=2,pa=30,ou=58n,lb=0n;function fb(t){if(t===0n)return-1;if(t&1n||(t&0b111n)===0b100n||(t&0b11111n)===0b10000n)return pa;let e=pa-1,r=t>>1n;if(r===0n)return-1;let n=Number(r&0xFFFFFFFFn),o;for(n===0?(r>>=32n,e-=16,o=Number(r)):o=n,o&65535||(o>>=16,e-=8),e>=6&&!(o&255)&&(o>>=8,e-=4),e>=4&&!(o&15)&&(o>>=4,e-=2);e>-1&&!(o&1);)e-=1,o=o>>(e<Fr?1:2);return e}function ub(t){let e=fb(t);if(e===-1)return{origin:Xe[0],segment:0,S:0n,resolution:e};let r=ou,n=0;if(e===pa){let u=t&1n?1n:t&0b100n?3n:5n;r=ou+u,n=u===1n?0:u===3n?32:40}let o=Number(t>>r)+n,s,i;if(e===0)s=Xe[o],i=0;else{let u=Math.floor(o/5);s=Xe[u],i=(o+s.firstQuintant)%5}if(!s)throw new Error(`Could not parse origin: ${o}`);if(e<Fr)return{origin:s,segment:i,S:0n,resolution:e};let a=e-Fr+1,c=BigInt(2*a),l=(1n<<r)-1n,f=(t&l)>>r-c;return{origin:s,segment:i,S:f,resolution:e}}Ae.setMatrixArrayType(Float64Array);var VR=Kt.create(),hb=new cb;function pb({S:t,segment:e,origin:r,resolution:n}){let{quintant:o,orientation:s}=jy(e,r);if(n===Fr-1)return Yu(o);if(n===Fr-2)return sb();let i=n-Fr+1,a=$y(t,i,s);return ob(i,o,a)}function Qu(t,{closedRing:e=!0,segments:r="auto"}={closedRing:!0,segments:"auto"}){if(t===lb)return[];let{S:n,segment:o,origin:s,resolution:i}=ub(t);r==="auto"&&(r=Math.max(1,Math.pow(2,6-i)));let u=pb({S:n,segment:o,origin:s,resolution:i}).splitEdges(r).getVertices().map(p=>hb.inverse(p,s.id)).map(p=>zu(p)),h=Dy(u);return e&&h.push(h[0]),h.reverse(),h}function Zu(t){return BigInt(`0x${t}`)}var $u=2;var db=$u*es/Math.sqrt(15),eh=new Array(31);eh[0]=$u*es/Math.sqrt(3);for(let t=1;t<=30;t++)eh[t]=db/(1<<t-1);Ae.setMatrixArrayType(Float64Array);var Pn=D(as(),1);var mb=1/Math.PI*180,gb=1/180*Math.PI,Ab={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Ab}};var Q=globalThis.mathgl.config;function ya(t,{precision:e=Q.precision}={}){return t=xb(t),`${parseFloat(t.toPrecision(e))}`}function Pe(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function ba(t){return rh(t)}function Ta(t){return Ne(t)}function rh(t,e){return Ma(t,r=>r*gb,e)}function Ne(t,e){return Ma(t,r=>r*mb,e)}function cs(t,e,r){return Ma(t,n=>Math.max(e,Math.min(r,n)))}function Ct(t,e,r){return Pe(t)?t.map((n,o)=>Ct(n,e[o],r)):r*e+(1-r)*t}function _e(t,e,r){let n=Q.EPSILON;r&&(Q.EPSILON=r);try{if(t===e)return!0;if(Pe(t)&&Pe(e)){if(t.length!==e.length)return!1;for(let o=0;o<t.length;++o)if(!_e(t[o],e[o]))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)<=Q.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{Q.EPSILON=n}}function xb(t){return Math.round(t/Q.EPSILON)*Q.EPSILON}function yb(t){return t.clone?t.clone():new Array(t.length)}function Ma(t,e,r){if(Pe(t)){let n=t;r=r||yb(n);for(let o=0;o<r.length&&o<n.length;++o){let s=typeof t=="number"?t:t[o];r[o]=e(s,o,r)}return r}return e(t)}var Bt=class extends 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:Pe(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(Q)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+ya(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!_e(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 o=0;o<this.ELEMENTS;++o){let s=e[o],i=typeof r=="number"?r:r[o];this[o]=s+n*(i-s)}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(Q.debug&&!this.validate())throw new Error(`math.gl: ${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 bb(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 V(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function It(t,e,r=""){if(Q.debug&&!bb(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function he(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var vt=class extends Bt{get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(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 o=this[n]-e[n];r+=o*o}return V(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return V(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 he(e>=0&&e<this.ELEMENTS,"index is out of range"),V(this[e])}setComponent(e,r){return he(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 te=typeof Float32Array<"u"?Float32Array:Array,Bn=Math.random;function Pr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var iw=Math.PI/180;function Tb(){let t=new te(2);return te!=Float32Array&&(t[0]=0,t[1]=0),t}function nh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function oh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function ls(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function fs(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}var aw=function(){let t=Tb();return function(e,r,n,o,s,i){let a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}}();function us(t,e,r){let n=e[0],o=e[1],s=r[3]*n+r[7]*o||1;return t[0]=(r[0]*n+r[4]*o)/s,t[1]=(r[1]*n+r[5]*o)/s,t}function hs(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s||1;return t[0]=(r[0]*n+r[4]*o+r[8]*s)/i,t[1]=(r[1]*n+r[5]*o+r[9]*s)/i,t[2]=(r[2]*n+r[6]*o+r[10]*s)/i,t}function sh(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t}function ih(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t[3]=e[3],t}function ps(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=r[0]*n+r[3]*o+r[6]*s,t[1]=r[1]*n+r[4]*o+r[7]*s,t[2]=r[2]*n+r[5]*o+r[8]*s,t[3]=e[3],t}var Yt=class extends vt{constructor(e=0,r=0){super(2),Pe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(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 Q.debug&&(V(e.x),V(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 fs(this,this,e),this.check()}transformAsVector(e){return us(this,this,e),this.check()}transformByMatrix3(e){return ls(this,this,e),this.check()}transformByMatrix2x3(e){return oh(this,this,e),this.check()}transformByMatrix2(e){return nh(this,this,e),this.check()}};var $t={};be($t,{add:()=>_b,angle:()=>Ba,bezier:()=>Db,ceil:()=>Cb,clone:()=>Mb,copy:()=>Sb,create:()=>ds,cross:()=>Qt,dist:()=>Wb,distance:()=>uh,div:()=>Jb,divide:()=>fh,dot:()=>In,equals:()=>kb,exactEquals:()=>zb,floor:()=>Bb,forEach:()=>Yb,fromValues:()=>ms,hermite:()=>Ub,inverse:()=>Pb,len:()=>Ia,length:()=>ah,lerp:()=>Nb,max:()=>vb,min:()=>Ib,mul:()=>qb,multiply:()=>lh,negate:()=>Fb,normalize:()=>Sa,random:()=>Gb,rotateX:()=>Ea,rotateY:()=>_a,rotateZ:()=>Ca,round:()=>Rb,scale:()=>wb,scaleAndAdd:()=>Lb,set:()=>Eb,slerp:()=>Ob,sqrDist:()=>Kb,sqrLen:()=>Xb,squaredDistance:()=>hh,squaredLength:()=>ph,str:()=>Hb,sub:()=>jb,subtract:()=>ch,transformMat3:()=>vn,transformMat4:()=>Zt,transformQuat:()=>Rn,zero:()=>Vb});function ds(){let t=new te(3);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function Mb(t){let e=new te(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function ah(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function ms(t,e,r){let n=new te(3);return n[0]=t,n[1]=e,n[2]=r,n}function Sb(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Eb(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function _b(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function ch(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function lh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function fh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function Cb(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function Bb(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function Ib(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 vb(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 Rb(t,e){return t[0]=Pr(e[0]),t[1]=Pr(e[1]),t[2]=Pr(e[2]),t}function wb(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function Lb(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 uh(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(r*r+n*n+o*o)}function hh(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function ph(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function Fb(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function Pb(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function Sa(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function In(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Qt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function Nb(t,e,r,n){let o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function Ob(t,e,r,n){let o=Math.acos(Math.min(Math.max(In(e,r),-1),1)),s=Math.sin(o),i=Math.sin((1-n)*o)/s,a=Math.sin(n*o)/s;return t[0]=i*e[0]+a*r[0],t[1]=i*e[1]+a*r[1],t[2]=i*e[2]+a*r[2],t}function Ub(t,e,r,n,o,s){let i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function Db(t,e,r,n,o,s){let i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function Gb(t,e){e=e===void 0?1:e;let r=Bn()*2*Math.PI,n=Bn()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function Zt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function vn(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function Rn(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,g=n*u-o*f,m=i*2;return f*=m,u*=m,h*=m,p*=2,d*=2,g*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+g,t}function Ea(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function _a(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ca(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ba(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt((r*r+n*n+o*o)*(s*s+i*i+a*a)),l=c&&In(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function Vb(t){return t[0]=0,t[1]=0,t[2]=0,t}function Hb(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function zb(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function kb(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=1e-6*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=1e-6*Math.max(1,Math.abs(o),Math.abs(a))}var jb=ch,qb=lh,Jb=fh,Wb=uh,Kb=hh,Ia=ah,Xb=ph,Yb=function(){let t=ds();return function(e,r,n,o,s,i){let a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var va=[0,0,0],gs,x=class extends vt{static get ZERO(){return gs||(gs=new x(0,0,0),Object.freeze(gs)),gs}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&Pe(e)?this.copy(e):(Q.debug&&(V(e),V(r),V(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 Q.debug&&(V(e.x),V(e.y),V(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]=V(e)}angle(e){return Ba(this,e)}cross(e){return Qt(this,this,e),this.check()}rotateX({radians:e,origin:r=va}){return Ea(this,this,r,e),this.check()}rotateY({radians:e,origin:r=va}){return _a(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=va}){return Ca(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Zt(this,this,e),this.check()}transformAsVector(e){return hs(this,this,e),this.check()}transformByMatrix3(e){return vn(this,this,e),this.check()}transformByMatrix2(e){return sh(this,this,e),this.check()}transformByQuaternion(e){return Rn(this,this,e),this.check()}};var As,Or=class extends vt{static get ZERO(){return As||(As=new Or(0,0,0,0),Object.freeze(As)),As}constructor(e=0,r=0,n=0,o=0){super(-0,-0,-0,-0),Pe(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r),V(n),V(o)),this[0]=e,this[1]=r,this[2]=n,this[3]=o)}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,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 Q.debug&&(V(e.x),V(e.y),V(e.z),V(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]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}transform(e){return Zt(this,this,e),this.check()}transformByMatrix3(e){return ps(this,this,e),this.check()}transformByMatrix2(e){return ih(this,this,e),this.check()}transformByQuaternion(e){return Rn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var Ur=class extends Bt{toString(){let e="[";if(Q.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${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]=V(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)r[o]=this[n+o];return r}setColumn(e,r){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)this[n+o]=r[o];return this}};function dh(){let t=new te(9);return te!=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 mh(t,e){if(t===e){let r=e[1],n=e[2],o=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=o}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 gh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=f*i-a*l,h=-f*s+a*c,p=l*s-i*c,d=r*u+n*h+o*p;return d?(d=1/d,t[0]=u*d,t[1]=(-f*n+o*l)*d,t[2]=(a*n-o*i)*d,t[3]=h*d,t[4]=(f*r-o*c)*d,t[5]=(-a*r+o*s)*d,t[6]=p*d,t[7]=(-l*r+n*c)*d,t[8]=(i*r-n*s)*d,t):null}function Ah(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8];return e*(l*s-i*c)+r*(-l*o+i*a)+n*(c*o-s*a)}function Ra(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1],d=r[2],g=r[3],m=r[4],y=r[5],b=r[6],M=r[7],S=r[8];return t[0]=h*n+p*i+d*l,t[1]=h*o+p*a+d*f,t[2]=h*s+p*c+d*u,t[3]=g*n+m*i+y*l,t[4]=g*o+m*a+y*f,t[5]=g*s+m*c+y*u,t[6]=b*n+M*i+S*l,t[7]=b*o+M*a+S*f,t[8]=b*s+M*c+S*u,t}function xh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1];return t[0]=n,t[1]=o,t[2]=s,t[3]=i,t[4]=a,t[5]=c,t[6]=h*n+p*i+l,t[7]=h*o+p*a+f,t[8]=h*s+p*c+u,t}function yh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=Math.sin(r),p=Math.cos(r);return t[0]=p*n+h*i,t[1]=p*o+h*a,t[2]=p*s+h*c,t[3]=p*i-h*n,t[4]=p*a-h*o,t[5]=p*c-h*s,t[6]=l,t[7]=f,t[8]=u,t}function wa(t,e,r){let n=r[0],o=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=o*e[3],t[4]=o*e[4],t[5]=o*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function bh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,g=s*i,m=s*a,y=s*c;return t[0]=1-u-d,t[3]=f-y,t[6]=h+m,t[1]=f+y,t[4]=1-l-d,t[7]=p-g,t[2]=h-m,t[5]=p+g,t[8]=1-l-u,t}var La;(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"})(La||(La={}));var Zb=Object.freeze([1,0,0,0,1,0,0,0,1]),k=class extends Ur{static get IDENTITY(){return eT()}static get ZERO(){return $b()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return La}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(Zb)}fromObject(e){return this.check()}fromQuaternion(e){return bh(this,e),this.check()}set(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=o,this[2]=a,this[3]=r,this[4]=s,this[5]=c,this[6]=n,this[7]=i,this[8]=l,this.check()}determinant(){return Ah(this)}transpose(){return mh(this,this),this.check()}invert(){return gh(this,this),this.check()}multiplyLeft(e){return Ra(this,e,this),this.check()}multiplyRight(e){return Ra(this,this,e),this.check()}rotate(e){return yh(this,this,e),this.check()}scale(e){return Array.isArray(e)?wa(this,this,e):wa(this,this,[e,e]),this.check()}translate(e){return xh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=ls(r||[-0,-0],e,this);break;case 3:n=vn(r||[-0,-0,-0],e,this);break;case 4:n=ps(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(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,ys=null;function $b(){return xs||(xs=new k([0,0,0,0,0,0,0,0,0]),Object.freeze(xs)),xs}function eT(){return ys||(ys=new k,Object.freeze(ys)),ys}var Ln={};be(Ln,{add:()=>_T,adjoint:()=>iT,clone:()=>rT,copy:()=>nT,create:()=>tT,decompose:()=>gT,determinant:()=>Na,equals:()=>vT,exactEquals:()=>IT,frob:()=>ET,fromQuat:()=>za,fromQuat2:()=>pT,fromRotation:()=>lT,fromRotationTranslation:()=>Mh,fromRotationTranslationScale:()=>AT,fromRotationTranslationScaleOrigin:()=>xT,fromScaling:()=>cT,fromTranslation:()=>aT,fromValues:()=>oT,fromXRotation:()=>fT,fromYRotation:()=>uT,fromZRotation:()=>hT,frustum:()=>ka,getRotation:()=>mT,getScaling:()=>Sh,getTranslation:()=>dT,identity:()=>Th,invert:()=>Pa,lookAt:()=>Ja,mul:()=>RT,multiply:()=>wn,multiplyScalar:()=>CT,multiplyScalarAndAdd:()=>BT,ortho:()=>qa,orthoNO:()=>_h,orthoZO:()=>TT,perspective:()=>ja,perspectiveFromFieldOfView:()=>bT,perspectiveNO:()=>Eh,perspectiveZO:()=>yT,rotate:()=>Da,rotateX:()=>Ga,rotateY:()=>Va,rotateZ:()=>Ha,scale:()=>Ua,set:()=>sT,str:()=>ST,sub:()=>wT,subtract:()=>Ch,targetTo:()=>MT,translate:()=>Oa,transpose:()=>Fa});function tT(){let t=new te(16);return te!=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 rT(t){let e=new te(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 nT(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 oT(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,g){let m=new te(16);return m[0]=t,m[1]=e,m[2]=r,m[3]=n,m[4]=o,m[5]=s,m[6]=i,m[7]=a,m[8]=c,m[9]=l,m[10]=f,m[11]=u,m[12]=h,m[13]=p,m[14]=d,m[15]=g,m}function sT(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,g,m){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t[4]=s,t[5]=i,t[6]=a,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=h,t[12]=p,t[13]=d,t[14]=g,t[15]=m,t}function Th(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 Fa(t,e){if(t===e){let r=e[1],n=e[2],o=e[3],s=e[6],i=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]=s,t[11]=e[14],t[12]=o,t[13]=i,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 Pa(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],g=e[13],m=e[14],y=e[15],b=r*a-n*i,M=r*c-o*i,S=r*l-s*i,C=n*c-o*a,_=n*l-s*a,v=o*l-s*c,E=f*g-u*d,T=f*m-h*d,A=f*y-p*d,B=u*m-h*g,L=u*y-p*g,F=h*y-p*m,w=b*F-M*L+S*B+C*A-_*T+v*E;return w?(w=1/w,t[0]=(a*F-c*L+l*B)*w,t[1]=(o*L-n*F-s*B)*w,t[2]=(g*v-m*_+y*C)*w,t[3]=(h*_-u*v-p*C)*w,t[4]=(c*A-i*F-l*T)*w,t[5]=(r*F-o*A+s*T)*w,t[6]=(m*S-d*v-y*M)*w,t[7]=(f*v-h*S+p*M)*w,t[8]=(i*L-a*A+l*E)*w,t[9]=(n*A-r*L-s*E)*w,t[10]=(d*_-g*S+y*b)*w,t[11]=(u*S-f*_-p*b)*w,t[12]=(a*T-i*B-c*E)*w,t[13]=(r*B-n*T+o*E)*w,t[14]=(g*M-d*C-m*b)*w,t[15]=(f*C-u*M+h*b)*w,t):null}function iT(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],g=e[13],m=e[14],y=e[15],b=r*a-n*i,M=r*c-o*i,S=r*l-s*i,C=n*c-o*a,_=n*l-s*a,v=o*l-s*c,E=f*g-u*d,T=f*m-h*d,A=f*y-p*d,B=u*m-h*g,L=u*y-p*g,F=h*y-p*m;return t[0]=a*F-c*L+l*B,t[1]=o*L-n*F-s*B,t[2]=g*v-m*_+y*C,t[3]=h*_-u*v-p*C,t[4]=c*A-i*F-l*T,t[5]=r*F-o*A+s*T,t[6]=m*S-d*v-y*M,t[7]=f*v-h*S+p*M,t[8]=i*L-a*A+l*E,t[9]=n*A-r*L-s*E,t[10]=d*_-g*S+y*b,t[11]=u*S-f*_-p*b,t[12]=a*T-i*B-c*E,t[13]=r*B-n*T+o*E,t[14]=g*M-d*C-m*b,t[15]=f*C-u*M+h*b,t}function Na(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8],f=t[9],u=t[10],h=t[11],p=t[12],d=t[13],g=t[14],m=t[15],y=e*i-r*s,b=e*a-n*s,M=r*a-n*i,S=l*d-f*p,C=l*g-u*p,_=f*g-u*d,v=e*_-r*C+n*S,E=s*_-i*C+a*S,T=l*M-f*b+u*y,A=p*M-d*b+g*y;return c*v-o*E+m*T-h*A}function wn(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=e[9],p=e[10],d=e[11],g=e[12],m=e[13],y=e[14],b=e[15],M=r[0],S=r[1],C=r[2],_=r[3];return t[0]=M*n+S*a+C*u+_*g,t[1]=M*o+S*c+C*h+_*m,t[2]=M*s+S*l+C*p+_*y,t[3]=M*i+S*f+C*d+_*b,M=r[4],S=r[5],C=r[6],_=r[7],t[4]=M*n+S*a+C*u+_*g,t[5]=M*o+S*c+C*h+_*m,t[6]=M*s+S*l+C*p+_*y,t[7]=M*i+S*f+C*d+_*b,M=r[8],S=r[9],C=r[10],_=r[11],t[8]=M*n+S*a+C*u+_*g,t[9]=M*o+S*c+C*h+_*m,t[10]=M*s+S*l+C*p+_*y,t[11]=M*i+S*f+C*d+_*b,M=r[12],S=r[13],C=r[14],_=r[15],t[12]=M*n+S*a+C*u+_*g,t[13]=M*o+S*c+C*h+_*m,t[14]=M*s+S*l+C*p+_*y,t[15]=M*i+S*f+C*d+_*b,t}function Oa(t,e,r){let n=r[0],o=r[1],s=r[2],i,a,c,l,f,u,h,p,d,g,m,y;return e===t?(t[12]=e[0]*n+e[4]*o+e[8]*s+e[12],t[13]=e[1]*n+e[5]*o+e[9]*s+e[13],t[14]=e[2]*n+e[6]*o+e[10]*s+e[14],t[15]=e[3]*n+e[7]*o+e[11]*s+e[15]):(i=e[0],a=e[1],c=e[2],l=e[3],f=e[4],u=e[5],h=e[6],p=e[7],d=e[8],g=e[9],m=e[10],y=e[11],t[0]=i,t[1]=a,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=h,t[7]=p,t[8]=d,t[9]=g,t[10]=m,t[11]=y,t[12]=i*n+f*o+d*s+e[12],t[13]=a*n+u*o+g*s+e[13],t[14]=c*n+h*o+m*s+e[14],t[15]=l*n+p*o+y*s+e[15]),t}function Ua(t,e,r){let n=r[0],o=r[1],s=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]*o,t[5]=e[5]*o,t[6]=e[6]*o,t[7]=e[7]*o,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Da(t,e,r,n){let o=n[0],s=n[1],i=n[2],a=Math.sqrt(o*o+s*s+i*i),c,l,f,u,h,p,d,g,m,y,b,M,S,C,_,v,E,T,A,B,L,F,w,U;return a<1e-6?null:(a=1/a,o*=a,s*=a,i*=a,l=Math.sin(r),c=Math.cos(r),f=1-c,u=e[0],h=e[1],p=e[2],d=e[3],g=e[4],m=e[5],y=e[6],b=e[7],M=e[8],S=e[9],C=e[10],_=e[11],v=o*o*f+c,E=s*o*f+i*l,T=i*o*f-s*l,A=o*s*f-i*l,B=s*s*f+c,L=i*s*f+o*l,F=o*i*f+s*l,w=s*i*f-o*l,U=i*i*f+c,t[0]=u*v+g*E+M*T,t[1]=h*v+m*E+S*T,t[2]=p*v+y*E+C*T,t[3]=d*v+b*E+_*T,t[4]=u*A+g*B+M*L,t[5]=h*A+m*B+S*L,t[6]=p*A+y*B+C*L,t[7]=d*A+b*B+_*L,t[8]=u*F+g*w+M*U,t[9]=h*F+m*w+S*U,t[10]=p*F+y*w+C*U,t[11]=d*F+b*w+_*U,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function Ga(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[4],i=e[5],a=e[6],c=e[7],l=e[8],f=e[9],u=e[10],h=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]=s*o+l*n,t[5]=i*o+f*n,t[6]=a*o+u*n,t[7]=c*o+h*n,t[8]=l*o-s*n,t[9]=f*o-i*n,t[10]=u*o-a*n,t[11]=h*o-c*n,t}function Va(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[8],f=e[9],u=e[10],h=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]=s*o-l*n,t[1]=i*o-f*n,t[2]=a*o-u*n,t[3]=c*o-h*n,t[8]=s*n+l*o,t[9]=i*n+f*o,t[10]=a*n+u*o,t[11]=c*n+h*o,t}function Ha(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[4],f=e[5],u=e[6],h=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]=s*o+l*n,t[1]=i*o+f*n,t[2]=a*o+u*n,t[3]=c*o+h*n,t[4]=l*o-s*n,t[5]=f*o-i*n,t[6]=u*o-a*n,t[7]=h*o-c*n,t}function aT(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 cT(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 lT(t,e,r){let n=r[0],o=r[1],s=r[2],i=Math.sqrt(n*n+o*o+s*s),a,c,l;return i<1e-6?null:(i=1/i,n*=i,o*=i,s*=i,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=o*n*l+s*c,t[2]=s*n*l-o*c,t[3]=0,t[4]=n*o*l-s*c,t[5]=o*o*l+a,t[6]=s*o*l+n*c,t[7]=0,t[8]=n*s*l+o*c,t[9]=o*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function fT(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 uT(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 hT(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 Mh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=n+n,c=o+o,l=s+s,f=n*a,u=n*c,h=n*l,p=o*c,d=o*l,g=s*l,m=i*a,y=i*c,b=i*l;return t[0]=1-(p+g),t[1]=u+b,t[2]=h-y,t[3]=0,t[4]=u-b,t[5]=1-(f+g),t[6]=d+m,t[7]=0,t[8]=h+y,t[9]=d-m,t[10]=1-(f+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function pT(t,e){let r=new te(3),n=-e[0],o=-e[1],s=-e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=n*n+o*o+s*s+i*i;return u>0?(r[0]=(a*i+f*n+c*s-l*o)*2/u,r[1]=(c*i+f*o+l*n-a*s)*2/u,r[2]=(l*i+f*s+a*o-c*n)*2/u):(r[0]=(a*i+f*n+c*s-l*o)*2,r[1]=(c*i+f*o+l*n-a*s)*2,r[2]=(l*i+f*s+a*o-c*n)*2),Mh(t,e,r),t}function dT(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function Sh(t,e){let r=e[0],n=e[1],o=e[2],s=e[4],i=e[5],a=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.sqrt(r*r+n*n+o*o),t[1]=Math.sqrt(s*s+i*i+a*a),t[2]=Math.sqrt(c*c+l*l+f*f),t}function mT(t,e){let r=new te(3);Sh(r,e);let n=1/r[0],o=1/r[1],s=1/r[2],i=e[0]*n,a=e[1]*o,c=e[2]*s,l=e[4]*n,f=e[5]*o,u=e[6]*s,h=e[8]*n,p=e[9]*o,d=e[10]*s,g=i+f+d,m=0;return g>0?(m=Math.sqrt(g+1)*2,t[3]=.25*m,t[0]=(u-p)/m,t[1]=(h-c)/m,t[2]=(a-l)/m):i>f&&i>d?(m=Math.sqrt(1+i-f-d)*2,t[3]=(u-p)/m,t[0]=.25*m,t[1]=(a+l)/m,t[2]=(h+c)/m):f>d?(m=Math.sqrt(1+f-i-d)*2,t[3]=(h-c)/m,t[0]=(a+l)/m,t[1]=.25*m,t[2]=(u+p)/m):(m=Math.sqrt(1+d-i-f)*2,t[3]=(a-l)/m,t[0]=(h+c)/m,t[1]=(u+p)/m,t[2]=.25*m),t}function gT(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let o=n[0],s=n[1],i=n[2],a=n[4],c=n[5],l=n[6],f=n[8],u=n[9],h=n[10];r[0]=Math.sqrt(o*o+s*s+i*i),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(f*f+u*u+h*h);let p=1/r[0],d=1/r[1],g=1/r[2],m=o*p,y=s*d,b=i*g,M=a*p,S=c*d,C=l*g,_=f*p,v=u*d,E=h*g,T=m+S+E,A=0;return T>0?(A=Math.sqrt(T+1)*2,t[3]=.25*A,t[0]=(C-v)/A,t[1]=(_-b)/A,t[2]=(y-M)/A):m>S&&m>E?(A=Math.sqrt(1+m-S-E)*2,t[3]=(C-v)/A,t[0]=.25*A,t[1]=(y+M)/A,t[2]=(_+b)/A):S>E?(A=Math.sqrt(1+S-m-E)*2,t[3]=(_-b)/A,t[0]=(y+M)/A,t[1]=.25*A,t[2]=(C+v)/A):(A=Math.sqrt(1+E-m-S)*2,t[3]=(y-M)/A,t[0]=(_+b)/A,t[1]=(C+v)/A,t[2]=.25*A),t}function AT(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=o+o,l=s+s,f=i+i,u=o*c,h=o*l,p=o*f,d=s*l,g=s*f,m=i*f,y=a*c,b=a*l,M=a*f,S=n[0],C=n[1],_=n[2];return t[0]=(1-(d+m))*S,t[1]=(h+M)*S,t[2]=(p-b)*S,t[3]=0,t[4]=(h-M)*C,t[5]=(1-(u+m))*C,t[6]=(g+y)*C,t[7]=0,t[8]=(p+b)*_,t[9]=(g-y)*_,t[10]=(1-(u+d))*_,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function xT(t,e,r,n,o){let s=e[0],i=e[1],a=e[2],c=e[3],l=s+s,f=i+i,u=a+a,h=s*l,p=s*f,d=s*u,g=i*f,m=i*u,y=a*u,b=c*l,M=c*f,S=c*u,C=n[0],_=n[1],v=n[2],E=o[0],T=o[1],A=o[2],B=(1-(g+y))*C,L=(p+S)*C,F=(d-M)*C,w=(p-S)*_,U=(1-(h+y))*_,W=(m+b)*_,z=(d+M)*v,re=(m-b)*v,Y=(1-(h+g))*v;return t[0]=B,t[1]=L,t[2]=F,t[3]=0,t[4]=w,t[5]=U,t[6]=W,t[7]=0,t[8]=z,t[9]=re,t[10]=Y,t[11]=0,t[12]=r[0]+E-(B*E+w*T+z*A),t[13]=r[1]+T-(L*E+U*T+re*A),t[14]=r[2]+A-(F*E+W*T+Y*A),t[15]=1,t}function za(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,g=s*i,m=s*a,y=s*c;return t[0]=1-u-d,t[1]=f+y,t[2]=h-m,t[3]=0,t[4]=f-y,t[5]=1-l-d,t[6]=p+g,t[7]=0,t[8]=h+m,t[9]=p-g,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ka(t,e,r,n,o,s,i){let a=1/(r-e),c=1/(o-n),l=1/(s-i);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(o+n)*c,t[10]=(i+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=i*s*2*l,t[15]=0,t}function Eh(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=(o+n)*i,t[14]=2*o*n*i}else t[10]=-1,t[14]=-2*n;return t}var ja=Eh;function yT(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=o*i,t[14]=o*n*i}else t[10]=-1,t[14]=-n;return t}function bT(t,e,r,n){let o=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(i+a),l=2/(o+s);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]=-((i-a)*c*.5),t[9]=(o-s)*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 _h(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);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]=(o+n)*c,t[14]=(i+s)*l,t[15]=1,t}var qa=_h;function TT(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);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]=(o+n)*c,t[14]=s*l,t[15]=1,t}function Ja(t,e,r,n){let o,s,i,a,c,l,f,u,h,p,d=e[0],g=e[1],m=e[2],y=n[0],b=n[1],M=n[2],S=r[0],C=r[1],_=r[2];return Math.abs(d-S)<1e-6&&Math.abs(g-C)<1e-6&&Math.abs(m-_)<1e-6?Th(t):(u=d-S,h=g-C,p=m-_,o=1/Math.sqrt(u*u+h*h+p*p),u*=o,h*=o,p*=o,s=b*p-M*h,i=M*u-y*p,a=y*h-b*u,o=Math.sqrt(s*s+i*i+a*a),o?(o=1/o,s*=o,i*=o,a*=o):(s=0,i=0,a=0),c=h*a-p*i,l=p*s-u*a,f=u*i-h*s,o=Math.sqrt(c*c+l*l+f*f),o?(o=1/o,c*=o,l*=o,f*=o):(c=0,l=0,f=0),t[0]=s,t[1]=c,t[2]=u,t[3]=0,t[4]=i,t[5]=l,t[6]=h,t[7]=0,t[8]=a,t[9]=f,t[10]=p,t[11]=0,t[12]=-(s*d+i*g+a*m),t[13]=-(c*d+l*g+f*m),t[14]=-(u*d+h*g+p*m),t[15]=1,t)}function MT(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=n[0],c=n[1],l=n[2],f=o-r[0],u=s-r[1],h=i-r[2],p=f*f+u*u+h*h;p>0&&(p=1/Math.sqrt(p),f*=p,u*=p,h*=p);let d=c*h-l*u,g=l*f-a*h,m=a*u-c*f;return p=d*d+g*g+m*m,p>0&&(p=1/Math.sqrt(p),d*=p,g*=p,m*=p),t[0]=d,t[1]=g,t[2]=m,t[3]=0,t[4]=u*m-h*g,t[5]=h*d-f*m,t[6]=f*g-u*d,t[7]=0,t[8]=f,t[9]=u,t[10]=h,t[11]=0,t[12]=o,t[13]=s,t[14]=i,t[15]=1,t}function ST(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function ET(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 _T(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 Ch(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 CT(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 BT(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 IT(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 vT(t,e){let r=t[0],n=t[1],o=t[2],s=t[3],i=t[4],a=t[5],c=t[6],l=t[7],f=t[8],u=t[9],h=t[10],p=t[11],d=t[12],g=t[13],m=t[14],y=t[15],b=e[0],M=e[1],S=e[2],C=e[3],_=e[4],v=e[5],E=e[6],T=e[7],A=e[8],B=e[9],L=e[10],F=e[11],w=e[12],U=e[13],W=e[14],z=e[15];return Math.abs(r-b)<=1e-6*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(n-M)<=1e-6*Math.max(1,Math.abs(n),Math.abs(M))&&Math.abs(o-S)<=1e-6*Math.max(1,Math.abs(o),Math.abs(S))&&Math.abs(s-C)<=1e-6*Math.max(1,Math.abs(s),Math.abs(C))&&Math.abs(i-_)<=1e-6*Math.max(1,Math.abs(i),Math.abs(_))&&Math.abs(a-v)<=1e-6*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(c-E)<=1e-6*Math.max(1,Math.abs(c),Math.abs(E))&&Math.abs(l-T)<=1e-6*Math.max(1,Math.abs(l),Math.abs(T))&&Math.abs(f-A)<=1e-6*Math.max(1,Math.abs(f),Math.abs(A))&&Math.abs(u-B)<=1e-6*Math.max(1,Math.abs(u),Math.abs(B))&&Math.abs(h-L)<=1e-6*Math.max(1,Math.abs(h),Math.abs(L))&&Math.abs(p-F)<=1e-6*Math.max(1,Math.abs(p),Math.abs(F))&&Math.abs(d-w)<=1e-6*Math.max(1,Math.abs(d),Math.abs(w))&&Math.abs(g-U)<=1e-6*Math.max(1,Math.abs(g),Math.abs(U))&&Math.abs(m-W)<=1e-6*Math.max(1,Math.abs(m),Math.abs(W))&&Math.abs(y-z)<=1e-6*Math.max(1,Math.abs(y),Math.abs(z))}var RT=wn,wT=Ch;function LT(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function Bh(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 Ih(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 vh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return Math.sqrt(e*e+r*r+n*n+o*o)}function Rh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function wh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function Lh(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Fh(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function Ph(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3];return t[0]=r[0]*n+r[4]*o+r[8]*s+r[12]*i,t[1]=r[1]*n+r[5]*o+r[9]*s+r[13]*i,t[2]=r[2]*n+r[6]*o+r[10]*s+r[14]*i,t[3]=r[3]*n+r[7]*o+r[11]*s+r[15]*i,t}function Nh(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2],l=r[3],f=l*n+a*s-c*o,u=l*o+c*n-i*s,h=l*s+i*o-a*n,p=-i*n-a*o-c*s;return t[0]=f*l+p*-i+u*-c-h*-a,t[1]=u*l+p*-a+h*-i-f*-c,t[2]=h*l+p*-c+f*-a-u*-i,t[3]=e[3],t}var Gw=function(){let t=LT();return function(e,r,n,o,s,i){let a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*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],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var Xa;(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"})(Xa||(Xa={}));var PT=45*Math.PI/180,NT=1,Wa=.1,Ka=500,OT=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),N=class extends Ur{static get IDENTITY(){return DT()}static get ZERO(){return UT()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return Xa}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,o,s,i,a,c,l,f,u,h,p,d,g,m){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this[9]=f,this[10]=u,this[11]=h,this[12]=p,this[13]=d,this[14]=g,this[15]=m,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l,f,u,h,p,d,g,m){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=i,this[6]=f,this[7]=d,this[8]=n,this[9]=a,this[10]=u,this[11]=g,this[12]=o,this[13]=c,this[14]=h,this[15]=m,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(OT)}fromObject(e){return this.check()}fromQuaternion(e){return za(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:o,top:s,near:i=Wa,far:a=Ka}=e;return a===1/0?GT(this,r,n,o,s,i):ka(this,r,n,o,s,i,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:o=[0,1,0]}=e;return Ja(this,r,n,o),this.check()}ortho(e){let{left:r,right:n,bottom:o,top:s,near:i=Wa,far:a=Ka}=e;return qa(this,r,n,o,s,i,a),this.check()}orthographic(e){let{fovy:r=PT,aspect:n=NT,focalDistance:o=1,near:s=Wa,far:i=Ka}=e;Oh(r);let a=r/2,c=o*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:i})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:o=.1,far:s=500}=e;return Oh(r),ja(this,r,n,o,s),this.check()}determinant(){return Na(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),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*o,e[5]=this[5]*s,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*o,e[9]=this[9]*s,e[10]=this[10]*i,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),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=this[4]*o,e[4]=this[5]*s,e[5]=this[6]*i,e[6]=this[8]*o,e[7]=this[9]*s,e[8]=this[10]*i,e}transpose(){return Fa(this,this),this.check()}invert(){return Pa(this,this),this.check()}multiplyLeft(e){return wn(this,e,this),this.check()}multiplyRight(e){return wn(this,this,e),this.check()}rotateX(e){return Ga(this,this,e),this.check()}rotateY(e){return Va(this,this,e),this.check()}rotateZ(e){return Ha(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return Da(this,this,e,r),this.check()}scale(e){return Ua(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return Oa(this,this,e),this.check()}transform(e,r){return e.length===4?(r=Ph(r||[-0,-0,-0,-0],e,this),It(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,o;switch(n){case 2:o=fs(r||[-0,-0],e,this);break;case 3:o=Zt(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(o,e.length),o}transformAsVector(e,r){let n;switch(e.length){case 2:n=us(r||[-0,-0],e,this);break;case 3:n=hs(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(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,Ts;function UT(){return bs||(bs=new N([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(bs)),bs}function DT(){return Ts||(Ts=new N,Object.freeze(Ts)),Ts}function Oh(t){if(t>Math.PI*2)throw Error("expected radians")}function GT(t,e,r,n,o,s){let i=2*s/(r-e),a=2*s/(o-n),c=(r+e)/(r-e),l=(o+n)/(o-n),f=-1,u=-1,h=-2*s;return t[0]=i,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]=f,t[11]=u,t[12]=0,t[13]=0,t[14]=h,t[15]=0,t}function Uh(){let t=new te(4);return te!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Dh(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function Ya(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 Qa(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Gh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function Vh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function Hh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function zh(t,e){let r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function Fn(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,g,m;return h=o*c+s*l+i*f+a*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>1e-6?(p=Math.acos(h),m=Math.sin(p),d=Math.sin((1-n)*p)/m,g=Math.sin(n*p)/m):(d=1-n,g=n),t[0]=d*o+g*c,t[1]=d*s+g*l,t[2]=d*i+g*f,t[3]=d*a+g*u,t}function kh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function jh(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function Za(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 o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);let s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}var qh=Bh;var Jh=Ih,Wh=Lh,Kh=Fh,Xh=vh;var Yh=Rh;var Qh=wh;var Zh=function(){let t=ds(),e=ms(1,0,0),r=ms(0,1,0);return function(n,o,s){let i=In(o,s);return i<-.999999?(Qt(t,e,o),Ia(t)<1e-6&&Qt(t,r,o),Sa(t,t),Ya(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Qt(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,Qh(n,n))}}(),$w=function(){let t=Uh(),e=Uh();return function(r,n,o,s,i,a){return Fn(t,n,i,a),Fn(e,o,s,a),Fn(r,t,e,2*a*(1-a)),r}}(),eL=function(){let t=dh();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],Qh(e,Za(e,t))}}();var VT=[0,0,0,1],st=class extends Bt{constructor(e=0,r=0,n=0,o=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,o)}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,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,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 Za(this,e),this.check()}fromAxisRotation(e,r){return Ya(this,e,r),this.check()}identity(){return Dh(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]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}len(){return Xh(this)}lengthSquared(){return Yh(this)}dot(e){return Wh(this,e)}rotationTo(e,r){return Zh(this,e,r),this.check()}add(e){return qh(this,this,e),this.check()}calculateW(){return zh(this,this),this.check()}conjugate(){return jh(this,this),this.check()}invert(){return kh(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(Kh(this,e,r,n),this.check())}multiplyRight(e){return Qa(this,this,e),this.check()}multiplyLeft(e){return Qa(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 Gh(this,this,e),this.check()}rotateY(e){return Vh(this,this,e),this.check()}rotateZ(e){return Hh(this,this,e),this.check()}scale(e){return Jh(this,this,e),this.check()}slerp(e,r,n){let o,s,i;switch(arguments.length){case 1:({start:o=VT,target:s,ratio:i}=e);break;case 2:o=this,s=e,i=r;break;default:o=e,s=r,i=n}return Fn(this,o,s,i),this.check()}transformVector4(e,r=new Or){return Nh(r,e,this),It(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 Ge={};be(Ge,{EPSILON1:()=>HT,EPSILON10:()=>YT,EPSILON11:()=>QT,EPSILON12:()=>ZT,EPSILON13:()=>$T,EPSILON14:()=>eM,EPSILON15:()=>tM,EPSILON16:()=>rM,EPSILON17:()=>nM,EPSILON18:()=>oM,EPSILON19:()=>sM,EPSILON2:()=>zT,EPSILON20:()=>iM,EPSILON3:()=>kT,EPSILON4:()=>jT,EPSILON5:()=>qT,EPSILON6:()=>JT,EPSILON7:()=>WT,EPSILON8:()=>KT,EPSILON9:()=>XT,PI_OVER_FOUR:()=>cM,PI_OVER_SIX:()=>lM,PI_OVER_TWO:()=>aM,TWO_PI:()=>fM});var HT=.1,zT=.01,kT=.001,jT=1e-4,qT=1e-5,JT=1e-6,WT=1e-7,KT=1e-8,XT=1e-9,YT=1e-10,QT=1e-11,ZT=1e-12,$T=1e-13,eM=1e-14,tM=1e-15,rM=1e-16,nM=1e-17,oM=1e-18,sM=1e-19,iM=1e-20,aM=Math.PI/2,cM=Math.PI/4,lM=Math.PI/6,fM=Math.PI*2;function Ms(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let n=r[0]-e;n>180?r[0]-=360:n<-180&&(r[0]+=360)}}function uM(t,e,r){let[n,o]=(0,Pn.cellToLatLng)(t),s=e.length;Ms(e,o);let i=e[0]===e[s-1]?s-1:s;for(let a=0;a<i;a++)e[a][0]=Ct(o,e[a][0],r),e[a][1]=Ct(n,e[a][1],r)}function $h(t,e,r){let n=t(e,r),[o,s]=(0,Pn.cellToLatLng)(n);return[s,o]}function $a(t,e=1){let r=(0,Pn.cellToBoundary)(t,!0);return e!==1?uM(t,r,e):Ms(r),r}function Ss(t){let e=new Float64Array(t.length*2),r=0;for(let n of t)e[r++]=n[0],e[r++]=n[1];return e}var hM={getPentagon:{type:"accessor",value:t=>t.pentagon}},Nn=class extends De{indexToBounds(){let{data:e,getPentagon:r}=this.props;return{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(n,o)=>{let s=r(n,o),i=Qu(typeof s=="string"?Zu(s):s,{closedRing:!0,segments:"auto"});return Ss(i)}}}};Nn.layerName="A5Layer";Nn.defaultProps=hM;var ep=Nn;var fr=D(nt(),1),td=D(Ke(),1),rd=D(er(),1);function pM(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function Es(t){if(Array.isArray(t))return t.map(e=>Es(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[pM(r)]=Es(n);return e}return t}var rp=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",dM=rp+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",mM="["+rp+"]["+dM+"]*",gM=new RegExp("^"+mM+"$");function _s(t,e){let r=[],n=e.exec(t);for(;n;){let o=[];o.startIndex=e.lastIndex-n[0].length;let s=n.length;for(let i=0;i<s;i++)o.push(n[i]);r.push(o),n=e.exec(t)}return r}var Dr=function(t){let e=gM.exec(t);return!(e===null||typeof e>"u")};function np(t){return typeof t<"u"}var On=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],Cs=["__proto__","constructor","prototype"];var AM={allowBooleanAttributes:!1,unpairedTags:[]};function cp(t,e){e=Object.assign({},AM,e);let r=[],n=!1,o=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let s=0;s<t.length;s++)if(t[s]==="<"&&t[s+1]==="?"){if(s+=2,s=sp(t,s),s.err)return s}else if(t[s]==="<"){let i=s;if(s++,t[s]==="!"){s=ip(t,s);continue}else{let a=!1;t[s]==="/"&&(a=!0,s++);let c="";for(;s<t.length&&t[s]!==">"&&t[s]!==" "&&t[s]!==" "&&t[s]!==`
8
+ `&&t[s]!=="\r";s++)c+=t[s];if(c=c.trim(),c[c.length-1]==="/"&&(c=c.substring(0,c.length-1),s--),!_M(c)){let u;return c.trim().length===0?u="Invalid space after '<'.":u="Tag '"+c+"' is an invalid name.",se("InvalidTag",u,Ce(t,s))}let l=bM(t,s);if(l===!1)return se("InvalidAttr","Attributes for '"+c+"' have open quote.",Ce(t,s));let f=l.value;if(s=l.index,f[f.length-1]==="/"){let u=s-f.length;f=f.substring(0,f.length-1);let h=ap(f,e);if(h===!0)n=!0;else return se(h.err.code,h.err.msg,Ce(t,u+h.err.line))}else if(a)if(l.tagClosed){if(f.trim().length>0)return se("InvalidTag","Closing tag '"+c+"' can't have attributes or invalid starting.",Ce(t,i));if(r.length===0)return se("InvalidTag","Closing tag '"+c+"' has not been opened.",Ce(t,i));{let u=r.pop();if(c!==u.tagName){let h=Ce(t,u.tagStartPos);return se("InvalidTag","Expected closing tag '"+u.tagName+"' (opened in line "+h.line+", col "+h.col+") instead of closing tag '"+c+"'.",Ce(t,i))}r.length==0&&(o=!0)}}else return se("InvalidTag","Closing tag '"+c+"' doesn't have proper closing.",Ce(t,s));else{let u=ap(f,e);if(u!==!0)return se(u.err.code,u.err.msg,Ce(t,s-f.length+u.err.line));if(o===!0)return se("InvalidXml","Multiple possible root nodes found.",Ce(t,s));e.unpairedTags.indexOf(c)!==-1||r.push({tagName:c,tagStartPos:i}),n=!0}for(s++;s<t.length;s++)if(t[s]==="<")if(t[s+1]==="!"){s++,s=ip(t,s);continue}else if(t[s+1]==="?"){if(s=sp(t,++s),s.err)return s}else break;else if(t[s]==="&"){let u=SM(t,s);if(u==-1)return se("InvalidChar","char '&' is not expected.",Ce(t,s));s=u}else if(o===!0&&!op(t[s]))return se("InvalidXml","Extra text at the end",Ce(t,s));t[s]==="<"&&s--}}else{if(op(t[s]))continue;return se("InvalidChar","char '"+t[s]+"' is not expected.",Ce(t,s))}if(n){if(r.length==1)return se("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",Ce(t,r[0].tagStartPos));if(r.length>0)return se("InvalidXml","Invalid '"+JSON.stringify(r.map(s=>s.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return se("InvalidXml","Start tag expected.",1);return!0}function op(t){return t===" "||t===" "||t===`
9
+ `||t==="\r"}function sp(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let n=t.substr(r,e-r);if(e>5&&n==="xml")return se("InvalidXml","XML declaration allowed only at the start of the document.",Ce(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function ip(t,e){if(t.length>e+5&&t[e+1]==="-"&&t[e+2]==="-"){for(e+=3;e<t.length;e++)if(t[e]==="-"&&t[e+1]==="-"&&t[e+2]===">"){e+=2;break}}else if(t.length>e+8&&t[e+1]==="D"&&t[e+2]==="O"&&t[e+3]==="C"&&t[e+4]==="T"&&t[e+5]==="Y"&&t[e+6]==="P"&&t[e+7]==="E"){let r=1;for(e+=8;e<t.length;e++)if(t[e]==="<")r++;else if(t[e]===">"&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]==="["&&t[e+2]==="C"&&t[e+3]==="D"&&t[e+4]==="A"&&t[e+5]==="T"&&t[e+6]==="A"&&t[e+7]==="["){for(e+=8;e<t.length;e++)if(t[e]==="]"&&t[e+1]==="]"&&t[e+2]===">"){e+=2;break}}return e}var xM='"',yM="'";function bM(t,e){let r="",n="",o=!1;for(;e<t.length;e++){if(t[e]===xM||t[e]===yM)n===""?n=t[e]:n!==t[e]||(n="");else if(t[e]===">"&&n===""){o=!0;break}r+=t[e]}return n!==""?!1:{value:r,index:e,tagClosed:o}}var TM=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function ap(t,e){let r=_s(t,TM),n={};for(let o=0;o<r.length;o++){if(r[o][1].length===0)return se("InvalidAttr","Attribute '"+r[o][2]+"' has no space in starting.",Un(r[o]));if(r[o][3]!==void 0&&r[o][4]===void 0)return se("InvalidAttr","Attribute '"+r[o][2]+"' is without value.",Un(r[o]));if(r[o][3]===void 0&&!e.allowBooleanAttributes)return se("InvalidAttr","boolean attribute '"+r[o][2]+"' is not allowed.",Un(r[o]));let s=r[o][2];if(!EM(s))return se("InvalidAttr","Attribute '"+s+"' is an invalid name.",Un(r[o]));if(!Object.prototype.hasOwnProperty.call(n,s))n[s]=1;else return se("InvalidAttr","Attribute '"+s+"' is repeated.",Un(r[o]))}return!0}function MM(t,e){let r=/\d/;for(t[e]==="x"&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===";")return e;if(!t[e].match(r))break}return-1}function SM(t,e){if(e++,t[e]===";")return-1;if(t[e]==="#")return e++,MM(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===";")break;return-1}return e}function se(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function EM(t){return Dr(t)}function _M(t){return Dr(t)}function Ce(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function Un(t){return t.startIndex+t[1].length}var lp=t=>On.includes(t)?"__"+t:t,CM={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:lp};function BM(t,e){if(typeof t!="string")return;let r=t.toLowerCase();if(On.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);if(Cs.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`)}function fp(t){return typeof t=="boolean"?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:typeof t=="object"&&t!==null?{enabled:t.enabled!==!1,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??1e3),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:fp(!0)}var up=function(t){let e=Object.assign({},CM,t),r=[{value:e.attributeNamePrefix,name:"attributeNamePrefix"},{value:e.attributesGroupName,name:"attributesGroupName"},{value:e.textNodeName,name:"textNodeName"},{value:e.cdataPropName,name:"cdataPropName"},{value:e.commentPropName,name:"commentPropName"}];for(let{value:n,name:o}of r)n&&BM(n,o);return e.onDangerousProperty===null&&(e.onDangerousProperty=lp),e.processEntities=fp(e.processEntities),e.unpairedTagsSet=new Set(e.unpairedTags),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(n=>typeof n=="string"&&n.startsWith("*.")?".."+n.substring(2):n)),e};var Bs;typeof Symbol!="function"?Bs="@@xmlMetadata":Bs=Symbol("XML Node Metadata");var ve=class{constructor(e){this.tagname=e,this.child=[],this[":@"]=Object.create(null)}add(e,r){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:r})}addChild(e,r){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,[":@"]:e[":@"]}):this.child.push({[e.tagname]:e.child}),r!==void 0&&(this.child[this.child.length-1][Bs]={startIndex:r})}static getMetaDataSymbol(){return Bs}};var Gn=class{constructor(e){this.suppressValidationErr=!e,this.options=e}readDocType(e,r){let n=Object.create(null),o=0;if(e[r+3]==="O"&&e[r+4]==="C"&&e[r+5]==="T"&&e[r+6]==="Y"&&e[r+7]==="P"&&e[r+8]==="E"){r=r+9;let s=1,i=!1,a=!1,c="";for(;r<e.length;r++)if(e[r]==="<"&&!a){if(i&&tr(e,"!ENTITY",r)){r+=7;let l,f;if([l,f,r]=this.readEntityExp(e,r+1,this.suppressValidationErr),f.indexOf("&")===-1){if(this.options.enabled!==!1&&this.options.maxEntityCount!=null&&o>=this.options.maxEntityCount)throw new Error(`Entity count (${o+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);let u=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n[l]={regx:RegExp(`&${u};`,"g"),val:f},o++}}else if(i&&tr(e,"!ELEMENT",r)){r+=8;let{index:l}=this.readElementExp(e,r+1);r=l}else if(i&&tr(e,"!ATTLIST",r))r+=8;else if(i&&tr(e,"!NOTATION",r)){r+=9;let{index:l}=this.readNotationExp(e,r+1,this.suppressValidationErr);r=l}else if(tr(e,"!--",r))a=!0;else throw new Error("Invalid DOCTYPE");s++,c=""}else if(e[r]===">"){if(a?e[r-1]==="-"&&e[r-2]==="-"&&(a=!1,s--):s--,s===0)break}else e[r]==="["?i=!0:c+=e[r];if(s!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:r}}readEntityExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r])&&e[r]!=='"'&&e[r]!=="'";)r++;let o=e.substring(n,r);if(Dn(o),r=Re(e,r),!this.suppressValidationErr){if(e.substring(r,r+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[r]==="%")throw new Error("Parameter entities are not supported")}let s="";if([r,s]=this.readIdentifierVal(e,r,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize!=null&&s.length>this.options.maxEntitySize)throw new Error(`Entity "${o}" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return r--,[o,s,r]}readNotationExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);!this.suppressValidationErr&&Dn(o),r=Re(e,r);let s=e.substring(r,r+6).toUpperCase();if(!this.suppressValidationErr&&s!=="SYSTEM"&&s!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${s}"`);r+=s.length,r=Re(e,r);let i=null,a=null;if(s==="PUBLIC")[r,i]=this.readIdentifierVal(e,r,"publicIdentifier"),r=Re(e,r),(e[r]==='"'||e[r]==="'")&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"));else if(s==="SYSTEM"&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"),!this.suppressValidationErr&&!a))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:o,publicIdentifier:i,systemIdentifier:a,index:--r}}readIdentifierVal(e,r,n){let o="",s=e[r];if(s!=='"'&&s!=="'")throw new Error(`Expected quoted string, found "${s}"`);r++;let i=r;for(;r<e.length&&e[r]!==s;)r++;if(o=e.substring(i,r),e[r]!==s)throw new Error(`Unterminated ${n} value`);return r++,[r,o]}readElementExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);if(!this.suppressValidationErr&&!Dr(o))throw new Error(`Invalid element name: "${o}"`);r=Re(e,r);let s="";if(e[r]==="E"&&tr(e,"MPTY",r))r+=4;else if(e[r]==="A"&&tr(e,"NY",r))r+=2;else if(e[r]==="("){r++;let i=r;for(;r<e.length&&e[r]!==")";)r++;if(s=e.substring(i,r),e[r]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[r]}"`);return{elementName:o,contentModel:s.trim(),index:r}}readAttlistExp(e,r){r=Re(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);for(Dn(o),r=Re(e,r),n=r;r<e.length&&!/\s/.test(e[r]);)r++;let s=e.substring(n,r);if(!Dn(s))throw new Error(`Invalid attribute name: "${s}"`);r=Re(e,r);let i="";if(e.substring(r,r+8).toUpperCase()==="NOTATION"){if(i="NOTATION",r+=8,r=Re(e,r),e[r]!=="(")throw new Error(`Expected '(', found "${e[r]}"`);r++;let c=[];for(;r<e.length&&e[r]!==")";){let l=r;for(;r<e.length&&e[r]!=="|"&&e[r]!==")";)r++;let f=e.substring(l,r);if(f=f.trim(),!Dn(f))throw new Error(`Invalid notation name: "${f}"`);c.push(f),e[r]==="|"&&(r++,r=Re(e,r))}if(e[r]!==")")throw new Error("Unterminated list of notations");r++,i+=" ("+c.join("|")+")"}else{let c=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;i+=e.substring(c,r);let l=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!l.includes(i.toUpperCase()))throw new Error(`Invalid attribute type: "${i}"`)}r=Re(e,r);let a="";return e.substring(r,r+8).toUpperCase()==="#REQUIRED"?(a="#REQUIRED",r+=8):e.substring(r,r+7).toUpperCase()==="#IMPLIED"?(a="#IMPLIED",r+=7):[r,a]=this.readIdentifierVal(e,r,"ATTLIST"),{elementName:o,attributeName:s,attributeType:i,defaultValue:a,index:r}}},Re=(t,e)=>{for(;e<t.length&&/\s/.test(t[e]);)e++;return e};function tr(t,e,r){for(let n=0;n<e.length;n++)if(e[n]!==t[r+n+1])return!1;return!0}function Dn(t){if(Dr(t))return t;throw new Error(`Invalid entity name ${t}`)}var IM=/^[-+]?0x[a-fA-F0-9]+$/,vM=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,RM={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original"};function ec(t,e={}){if(e=Object.assign({},RM,e),!t||typeof t!="string")return t;let r=t.trim();if(r.length===0)return t;if(e.skipLike!==void 0&&e.skipLike.test(r))return t;if(r==="0")return 0;if(e.hex&&IM.test(r))return PM(r,16);if(isFinite(r)){if(r.includes("e")||r.includes("E"))return LM(t,r,e);{let n=vM.exec(r);if(n){let o=n[1]||"",s=n[2],i=FM(n[3]),a=o?t[s.length+1]===".":t[s.length]===".";if(!e.leadingZeros&&(s.length>1||s.length===1&&!a))return t;{let c=Number(r),l=String(c);if(c===0)return c;if(l.search(/[eE]/)!==-1)return e.eNotation?c:t;if(r.indexOf(".")!==-1)return l==="0"||l===i||l===`${o}${i}`?c:t;let f=s?i:r;return s?f===l||o+f===l?c:t:f===l||f===o+l?c:t}}else return t}}else return NM(t,Number(r),e)}var wM=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function LM(t,e,r){if(!r.eNotation)return t;let n=e.match(wM);if(n){let o=n[1]||"",s=n[3].indexOf("e")===-1?"E":"e",i=n[2],a=o?t[i.length+1]===s:t[i.length]===s;return i.length>1&&a?t:i.length===1&&(n[3].startsWith(`.${s}`)||n[3][0]===s)?Number(e):i.length>0?r.leadingZeros&&!a?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}else return t}function FM(t){return t&&t.indexOf(".")!==-1&&(t=t.replace(/0+$/,""),t==="."?t="0":t[0]==="."?t="0"+t:t[t.length-1]==="."&&(t=t.substring(0,t.length-1))),t}function PM(t,e){if(parseInt)return parseInt(t,e);if(Number.parseInt)return Number.parseInt(t,e);if(window&&window.parseInt)return window.parseInt(t,e);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function NM(t,e,r){let n=e===1/0;switch(r.infinity.toLowerCase()){case"null":return null;case"infinity":return e;case"string":return n?"Infinity":"-Infinity";case"original":default:return t}}function tc(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(let r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}var rr=class{constructor(e,r={},n){this.pattern=e,this.separator=r.separator||".",this.segments=this._parse(e),this.data=n,this._hasDeepWildcard=this.segments.some(o=>o.type==="deep-wildcard"),this._hasAttributeCondition=this.segments.some(o=>o.attrName!==void 0),this._hasPositionSelector=this.segments.some(o=>o.position!==void 0)}_parse(e){let r=[],n=0,o="";for(;n<e.length;)e[n]===this.separator?n+1<e.length&&e[n+1]===this.separator?(o.trim()&&(r.push(this._parseSegment(o.trim())),o=""),r.push({type:"deep-wildcard"}),n+=2):(o.trim()&&r.push(this._parseSegment(o.trim())),o="",n++):(o+=e[n],n++);return o.trim()&&r.push(this._parseSegment(o.trim())),r}_parseSegment(e){let r={type:"tag"},n=null,o=e,s=e.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(s&&(o=s[1]+s[3],s[2])){let f=s[2].slice(1,-1);f&&(n=f)}let i,a=o;if(o.includes("::")){let f=o.indexOf("::");if(i=o.substring(0,f).trim(),a=o.substring(f+2).trim(),!i)throw new Error(`Invalid namespace in pattern: ${e}`)}let c,l=null;if(a.includes(":")){let f=a.lastIndexOf(":"),u=a.substring(0,f).trim(),h=a.substring(f+1).trim();["first","last","odd","even"].includes(h)||/^nth\(\d+\)$/.test(h)?(c=u,l=h):c=a}else c=a;if(!c)throw new Error(`Invalid segment pattern: ${e}`);if(r.tag=c,i&&(r.namespace=i),n)if(n.includes("=")){let f=n.indexOf("=");r.attrName=n.substring(0,f).trim(),r.attrValue=n.substring(f+1).trim()}else r.attrName=n.trim();if(l){let f=l.match(/^nth\((\d+)\)$/);f?(r.position="nth",r.positionValue=parseInt(f[1],10)):r.position=l}return r}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}};var Gr=class{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._patterns=new Set,this._sealed=!1}add(e){if(this._sealed)throw new TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(e.pattern))return this;if(this._patterns.add(e.pattern),e.hasDeepWildcard())return this._deepWildcards.push(e),this;let r=e.length,o=e.segments[e.segments.length-1]?.tag;if(!o||o==="*")this._wildcardByDepth.has(r)||this._wildcardByDepth.set(r,[]),this._wildcardByDepth.get(r).push(e);else{let s=`${r}:${o}`;this._byDepthAndTag.has(s)||this._byDepthAndTag.set(s,[]),this._byDepthAndTag.get(s).push(e)}return this}addAll(e){for(let r of e)this.add(r);return this}has(e){return this._patterns.has(e.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(e){return this.findMatch(e)!==null}findMatch(e){let r=e.getDepth(),n=e.getCurrentTag(),o=`${r}:${n}`,s=this._byDepthAndTag.get(o);if(s){for(let a=0;a<s.length;a++)if(e.matches(s[a]))return s[a]}let i=this._wildcardByDepth.get(r);if(i){for(let a=0;a<i.length;a++)if(e.matches(i[a]))return i[a]}for(let a=0;a<this._deepWildcards.length;a++)if(e.matches(this._deepWildcards[a]))return this._deepWildcards[a];return null}};var OM=new Set(["push","pop","reset","updateCurrent","restore"]),Vr=class{constructor(e={}){this.separator=e.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null}push(e,r=null,n=null){if(this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path.length>0){let f=this.path[this.path.length-1];f.values=void 0}let o=this.path.length;this.siblingStacks[o]||(this.siblingStacks[o]=new Map);let s=this.siblingStacks[o],i=n?`${n}:${e}`:e,a=s.get(i)||0,c=0;for(let f of s.values())c+=f;s.set(i,a+1);let l={tag:e,position:c,counter:a};n!=null&&(l.namespace=n),r!=null&&(l.values=r),this.path.push(l)}pop(){if(this.path.length===0)return;this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null;let e=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),e}updateCurrent(e){if(this.path.length>0){let r=this.path[this.path.length-1];e!=null&&(r.values=e,this._frozenPathCache=null)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(e){return this.path.length===0?void 0:this.path[this.path.length-1].values?.[e]}hasAttr(e){if(this.path.length===0)return!1;let r=this.path[this.path.length-1];return r.values!==void 0&&e in r.values}getPosition(){return this.path.length===0?-1:this.path[this.path.length-1].position??0}getCounter(){return this.path.length===0?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(e,r=!0){let n=e||this.separator;if(n===this.separator&&r===!0){if(this._pathStringCache!==null&&this._pathStringCache!==void 0)return this._pathStringCache;let s=this.path.map(i=>r&&i.namespace?`${i.namespace}:${i.tag}`:i.tag).join(n);return this._pathStringCache=s,s}return this.path.map(s=>r&&s.namespace?`${s.namespace}:${s.tag}`:s.tag).join(n)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=[],this.siblingStacks=[]}matches(e){let r=e.segments;return r.length===0?!1:e.hasDeepWildcard()?this._matchWithDeepWildcard(r):this._matchSimple(r)}_matchSimple(e){if(this.path.length!==e.length)return!1;for(let r=0;r<e.length;r++){let n=e[r],o=this.path[r],s=r===this.path.length-1;if(!this._matchSegment(n,o,s))return!1}return!0}_matchWithDeepWildcard(e){let r=this.path.length-1,n=e.length-1;for(;n>=0&&r>=0;){let o=e[n];if(o.type==="deep-wildcard"){if(n--,n<0)return!0;let s=e[n],i=!1;for(let a=r;a>=0;a--){let c=a===this.path.length-1;if(this._matchSegment(s,this.path[a],c)){r=a-1,n--,i=!0;break}}if(!i)return!1}else{let s=r===this.path.length-1;if(!this._matchSegment(o,this.path[r],s))return!1;r--,n--}}return n<0}_matchSegment(e,r,n){if(e.tag!=="*"&&e.tag!==r.tag||e.namespace!==void 0&&e.namespace!=="*"&&e.namespace!==r.namespace)return!1;if(e.attrName!==void 0){if(!n||!r.values||!(e.attrName in r.values))return!1;if(e.attrValue!==void 0){let o=r.values[e.attrName];if(String(o)!==String(e.attrValue))return!1}}if(e.position!==void 0){if(!n)return!1;let o=r.counter??0;if(e.position==="first"&&o!==0)return!1;if(e.position==="odd"&&o%2!==1)return!1;if(e.position==="even"&&o%2!==0)return!1;if(e.position==="nth"&&o!==e.positionValue)return!1}return!0}matchesAny(e){return e.matchesAny(this)}snapshot(){return{path:this.path.map(e=>({...e})),siblingStacks:this.siblingStacks.map(e=>new Map(e))}}restore(e){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=e.path.map(r=>({...r})),this.siblingStacks=e.siblingStacks.map(r=>new Map(r))}readOnly(){let e=this;return new Proxy(e,{get(r,n,o){if(OM.has(n))return()=>{throw new TypeError(`Cannot call '${n}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};if(n==="path")return r._frozenPathCache===null&&(r._frozenPathCache=Object.freeze(r.path.map(i=>Object.freeze({...i})))),r._frozenPathCache;if(n==="siblingStacks")return r._frozenSiblingsCache===null&&(r._frozenSiblingsCache=Object.freeze(r.siblingStacks.map(i=>Object.freeze(new Map(i))))),r._frozenSiblingsCache;let s=Reflect.get(r,n,o);return typeof s=="function"?s.bind(r):s},set(r,n){throw new TypeError(`Cannot set property '${String(n)}' on a read-only Matcher.`)},deleteProperty(r,n){throw new TypeError(`Cannot delete property '${String(n)}' from a read-only Matcher.`)}})}};function UM(t,e){if(!t)return{};let r=e.attributesGroupName?t[e.attributesGroupName]:t;if(!r)return{};let n={};for(let o in r)if(o.startsWith(e.attributeNamePrefix)){let s=o.substring(e.attributeNamePrefix.length);n[s]=r[o]}else n[o]=r[o];return n}function DM(t){if(!t||typeof t!="string")return;let e=t.indexOf(":");if(e!==-1&&e>0){let r=t.substring(0,e);if(r!=="xmlns")return r}}var Vn=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\xA2"},pound:{regex:/&(pound|#163);/g,val:"\xA3"},yen:{regex:/&(yen|#165);/g,val:"\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\xA9"},reg:{regex:/&(reg|#174);/g,val:"\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(n,o)=>hp(o,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(n,o)=>hp(o,16,"&#x")}},this.addExternalEntities=GM,this.parseXml=jM,this.parseTextData=VM,this.resolveNameSpace=HM,this.buildAttributesMap=kM,this.isItStopNode=KM,this.replaceEntitiesValue=JM,this.readStopNodeData=QM,this.saveTextToParentTag=WM,this.addChild=qM,this.ignoreAttributesFn=tc(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new Vr,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new Gr;let r=this.options.stopNodes;if(r&&r.length>0){for(let n=0;n<r.length;n++){let o=r[n];typeof o=="string"?this.stopNodeExpressionsSet.add(new rr(o)):o instanceof rr&&this.stopNodeExpressionsSet.add(o)}this.stopNodeExpressionsSet.seal()}}};function GM(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r],o=n.replace(/[.\-+*:]/g,"\\.");this.lastEntities[n]={regex:new RegExp("&"+o+";","g"),val:t[n]}}}function VM(t,e,r,n,o,s,i){let a=this.options;if(t!==void 0&&(a.trimValues&&!n&&(t=t.trim()),t.length>0)){i||(t=this.replaceEntitiesValue(t,e,r));let c=a.jPath?r.toString():r,l=a.tagValueProcessor(e,t,c,o,s);return l==null?t:typeof l!=typeof t||l!==t?l:a.trimValues||t.trim()===t?oc(t,a.parseTagValue,a.numberParseOptions):t}}function HM(t){if(this.options.removeNSPrefix){let e=t.split(":"),r=t.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(t=r+e[1])}return t}var zM=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function kM(t,e,r){let n=this.options;if(n.ignoreAttributes!==!0&&typeof t=="string"){let o=_s(t,zM),s=o.length,i={},a=new Array(s),c=!1,l={};for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]),d=o[h][4];if(p.length&&d!==void 0){let g=d;n.trimValues&&(g=g.trim()),g=this.replaceEntitiesValue(g,r,this.readonlyMatcher),a[h]=g,l[p]=g,c=!0}}c&&typeof e=="object"&&e.updateCurrent&&e.updateCurrent(l);let f=n.jPath?e.toString():this.readonlyMatcher,u=!1;for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]);if(this.ignoreAttributesFn(p,f))continue;let d=n.attributeNamePrefix+p;if(p.length)if(n.transformAttributeName&&(d=n.transformAttributeName(d)),d=pp(d,n),o[h][4]!==void 0){let g=a[h],m=n.attributeValueProcessor(p,g,f);m==null?i[d]=g:typeof m!=typeof g||m!==g?i[d]=m:i[d]=oc(g,n.parseAttributeValue,n.numberParseOptions),u=!0}else n.allowBooleanAttributes&&(i[d]=!0,u=!0)}if(!u)return;if(n.attributesGroupName){let h={};return h[n.attributesGroupName]=i,h}return i}}var jM=function(t){t=t.replace(/\r\n?/g,`
10
+ `);let e=new ve("!xml"),r=e,n="";this.matcher.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.docTypeEntitiesKeys=[],this.lastEntitiesKeys=Object.keys(this.lastEntities),this.htmlEntitiesKeys=this.options.htmlEntities?Object.keys(this.htmlEntities):[];let o=this.options,s=new Gn(o.processEntities),i=t.length;for(let a=0;a<i;a++)if(t[a]==="<"){let l=t.charCodeAt(a+1);if(l===47){let f=Hr(t,">",a,"Closing Tag is not closed."),u=t.substring(a+2,f).trim();if(o.removeNSPrefix){let p=u.indexOf(":");p!==-1&&(u=u.substr(p+1))}u=rc(o.transformTagName,u,"",o).tagName,r&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher));let h=this.matcher.getCurrentTag();if(u&&o.unpairedTagsSet.has(u))throw new Error(`Unpaired tag can not be used as closing tag: </${u}>`);h&&o.unpairedTagsSet.has(h)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),n="",a=f}else if(l===63){let f=nc(t,a,!1,"?>");if(!f)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,this.readonlyMatcher),!(o.ignoreDeclaration&&f.tagName==="?xml"||o.ignorePiTags)){let u=new ve(f.tagName);u.add(o.textNodeName,""),f.tagName!==f.tagExp&&f.attrExpPresent&&(u[":@"]=this.buildAttributesMap(f.tagExp,this.matcher,f.tagName)),this.addChild(r,u,this.readonlyMatcher,a)}a=f.closeIndex+1}else if(l===33&&t.charCodeAt(a+2)===45&&t.charCodeAt(a+3)===45){let f=Hr(t,"-->",a+4,"Comment is not closed.");if(o.commentPropName){let u=t.substring(a+4,f-2);n=this.saveTextToParentTag(n,r,this.readonlyMatcher),r.add(o.commentPropName,[{[o.textNodeName]:u}])}a=f}else if(l===33&&t.charCodeAt(a+2)===68){let f=s.readDocType(t,a);this.docTypeEntities=f.entities,this.docTypeEntitiesKeys=Object.keys(this.docTypeEntities)||[],a=f.i}else if(l===33&&t.charCodeAt(a+2)===91){let f=Hr(t,"]]>",a,"CDATA is not closed.")-2,u=t.substring(a+9,f);n=this.saveTextToParentTag(n,r,this.readonlyMatcher);let h=this.parseTextData(u,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);h==null&&(h=""),o.cdataPropName?r.add(o.cdataPropName,[{[o.textNodeName]:u}]):r.add(o.textNodeName,h),a=f+2}else{let f=nc(t,a,o.removeNSPrefix);if(!f){let _=t.substring(Math.max(0,a-50),Math.min(i,a+50));throw new Error(`readTagExp returned undefined at position ${a}. Context: "${_}"`)}let u=f.tagName,h=f.rawTagName,p=f.tagExp,d=f.attrExpPresent,g=f.closeIndex;if({tagName:u,tagExp:p}=rc(o.transformTagName,u,p,o),o.strictReservedNames&&(u===o.commentPropName||u===o.cdataPropName||u===o.textNodeName||u===o.attributesGroupName))throw new Error(`Invalid tag name: ${u}`);r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher,!1));let m=r;m&&o.unpairedTagsSet.has(m.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let y=!1;p.length>0&&p.lastIndexOf("/")===p.length-1&&(y=!0,u[u.length-1]==="/"?(u=u.substr(0,u.length-1),p=u):p=p.substr(0,p.length-1),d=u!==p);let b=null,M={},S;S=DM(h),u!==e.tagname&&this.matcher.push(u,{},S),u!==p&&d&&(b=this.buildAttributesMap(p,this.matcher,u),b&&(M=UM(b,o))),u!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let C=a;if(this.isCurrentNodeStopNode){let _="";if(y)a=f.closeIndex;else if(o.unpairedTagsSet.has(u))a=f.closeIndex;else{let E=this.readStopNodeData(t,h,g+1);if(!E)throw new Error(`Unexpected end of ${h}`);a=E.i,_=E.tagContent}let v=new ve(u);b&&(v[":@"]=b),v.add(o.textNodeName,_),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,v,this.readonlyMatcher,C)}else{if(y){({tagName:u,tagExp:p}=rc(o.transformTagName,u,p,o));let _=new ve(u);b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(o.unpairedTagsSet.has(u)){let _=new ve(u);b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),this.matcher.pop(),this.isCurrentNodeStopNode=!1,a=f.closeIndex;continue}else{let _=new ve(u);if(this.tagsNodeStack.length>o.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),b&&(_[":@"]=b),this.addChild(r,_,this.readonlyMatcher,C),r=_}n="",a=g}}}else n+=t[a];return e.child};function qM(t,e,r,n){this.options.captureMetaData||(n=void 0);let o=this.options.jPath?r.toString():r,s=this.options.updateTag(e.tagname,o,e[":@"]);s===!1||(typeof s=="string"&&(e.tagname=s),t.addChild(e,n))}function JM(t,e,r){let n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){let o=this.options.jPath?r.toString():r;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,o)))return t}if(n.tagFilter){let o=this.options.jPath?r.toString():r;if(!n.tagFilter(e,o))return t}for(let o of this.docTypeEntitiesKeys){let s=this.docTypeEntities[o],i=t.match(s.regx);if(i){if(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);let a=t.length;if(t=t.replace(s.regx,s.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-a,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(t.indexOf("&")===-1)return t;for(let o of this.lastEntitiesKeys){let s=this.lastEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}if(t.indexOf("&")===-1)return t;for(let o of this.htmlEntitiesKeys){let s=this.htmlEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}return t=t.replace(this.ampEntity.regex,this.ampEntity.val),t}function WM(t,e,r,n){return t&&(n===void 0&&(n=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 KM(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function XM(t,e,r=">"){let n=0,o=[],s=t.length,i=r.charCodeAt(0),a=r.length>1?r.charCodeAt(1):-1;for(let c=e;c<s;c++){let l=t.charCodeAt(c);if(n)l===n&&(n=0);else if(l===34||l===39)n=l;else if(l===i)if(a!==-1){if(t.charCodeAt(c+1)===a)return{data:String.fromCharCode(...o),index:c}}else return{data:String.fromCharCode(...o),index:c};else if(l===9){o.push(32);continue}o.push(l)}}function Hr(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o+e.length-1}function YM(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o}function nc(t,e,r,n=">"){let o=XM(t,e+1,n);if(!o)return;let s=o.data,i=o.index,a=s.search(/\s/),c=s,l=!0;a!==-1&&(c=s.substring(0,a),s=s.substring(a+1).trimStart());let f=c;if(r){let u=c.indexOf(":");u!==-1&&(c=c.substr(u+1),l=c!==o.data.substr(u+1))}return{tagName:c,tagExp:s,closeIndex:i,attrExpPresent:l,rawTagName:f}}function QM(t,e,r){let n=r,o=1,s=t.length;for(;r<s;r++)if(t[r]==="<"){let i=t.charCodeAt(r+1);if(i===47){let a=YM(t,">",r,`${e} is not closed`);if(t.substring(r+2,a).trim()===e&&(o--,o===0))return{tagContent:t.substring(n,r),i:a};r=a}else if(i===63)r=Hr(t,"?>",r+1,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===45&&t.charCodeAt(r+3)===45)r=Hr(t,"-->",r+3,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===91)r=Hr(t,"]]>",r,"StopNode is not closed.")-2;else{let a=nc(t,r,">");a&&((a&&a.tagName)===e&&a.tagExp[a.tagExp.length-1]!=="/"&&o++,r=a.closeIndex)}}}function oc(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:ec(t,r)}else return np(t)?t:""}function hp(t,e,r){let n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}function rc(t,e,r,n){if(t){let o=t(e);r===e&&(r=o),e=o}return e=pp(e,n),{tagName:e,tagExp:r}}function pp(t,e){if(Cs.includes(t))throw new Error(`[SECURITY] Invalid name: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);return On.includes(t)?e.onDangerousProperty(t):t}var sc=ve.getMetaDataSymbol();function ZM(t,e){if(!t||typeof t!="object")return{};if(!e)return t;let r={};for(let n in t)if(n.startsWith(e)){let o=n.substring(e.length);r[o]=t[n]}else r[n]=t[n];return r}function ic(t,e,r,n){return dp(t,e,r,n)}function dp(t,e,r,n){let o,s={};for(let i=0;i<t.length;i++){let a=t[i],c=$M(a);if(c!==void 0&&c!==e.textNodeName){let l=ZM(a[":@"]||{},e.attributeNamePrefix);r.push(c,l)}if(c===e.textNodeName)o===void 0?o=a[c]:o+=""+a[c];else{if(c===void 0)continue;if(a[c]){let l=dp(a[c],e,r,n),f=tS(l,e);if(a[":@"]?eS(l,a[":@"],n,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=""),a[sc]!==void 0&&typeof l=="object"&&l!==null&&(l[sc]=a[sc]),s[c]!==void 0&&Object.prototype.hasOwnProperty.call(s,c))Array.isArray(s[c])||(s[c]=[s[c]]),s[c].push(l);else{let u=e.jPath?n.toString():n;e.isArray(c,u,f)?s[c]=[l]:s[c]=l}c!==void 0&&c!==e.textNodeName&&r.pop()}}}return typeof o=="string"?o.length>0&&(s[e.textNodeName]=o):o!==void 0&&(s[e.textNodeName]=o),s}function $M(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function eS(t,e,r,n){if(e){let o=Object.keys(e),s=o.length;for(let i=0;i<s;i++){let a=o[i],c=a.startsWith(n.attributeNamePrefix)?a.substring(n.attributeNamePrefix.length):a,l=n.jPath?r.toString()+"."+c:r;n.isArray(a,l,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function tS(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))}var zr=class{constructor(e){this.externalEntities={},this.options=up(e)}parse(e,r){if(typeof e!="string"&&e.toString)e=e.toString();else if(typeof e!="string")throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let s=cp(e,r);if(s!==!0)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}let n=new Vn(this.options);n.addExternalEntities(this.externalEntities);let o=n.parseXml(e);return this.options.preserveOrder||o===void 0?o:ic(o,this.options,n.matcher,n.readonlyMatcher)}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}static getMetaDataSymbol(){return ve.getMetaDataSymbol()}};function ac(t,e){if(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:(o,s,i,a)=>Boolean(e?.arrayPaths?.some(l=>s===l)),...e?._fastXML},n=rS(t,r);return e?.uncapitalizeKeys?Es(n):n}function rS(t,e){return new zr({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var nS="4.4.3",Ye={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:nS,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:oS,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>ac(new TextDecoder().decode(t),{...Ye.options.xml,...e?.xml}),parseTextSync:(t,e)=>ac(t,{...Ye.options.xml,...e?.xml})};function oS(t){return t.startsWith("<?xml")}async function Oe(t,e,r,n){return n._parse(t,e,r,n)}function H(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var it={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},sS=it.self||it.window||it.global||{},iS=it.window||it.self||it.global||{},aS=it.global||it.self||it.window||{},cS=it.document||{};var Hn=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var mp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),lS=mp&&parseFloat(mp[1])||0;var Is=globalThis,fS=globalThis.document||{},vs=globalThis.process||{},uS=globalThis.console,EF=globalThis.navigator||{};function gp(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return Boolean(r&&r.indexOf("Electron")>=0)}function nr(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||gp()}var cc="4.1.1";function kr(t,e){if(!t)throw new Error(e||"Assertion failed")}function lc(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 kr(Number.isFinite(e)&&e>=0),e}function Ap(t){let{logLevel:e,message:r}=t;t.logLevel=lc(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 o=typeof t.message;return kr(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}var or=()=>{},Rs=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,o,s={}){let i=Ap({logLevel:r,message:n,args:this._buildArgs(r,n,o),opts:s});return this._createLogFunction(e,i,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return or;let o=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&o!==void 0){if(this._onceCache.has(o))return or;this._onceCache.add(o)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=lc(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function pS(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var ws=class{constructor(e,r,n="sessionStorage"){this.storage=pS(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 xp(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 yp(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}var Ls;(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"})(Ls||(Ls={}));var dS=10;function bp(t){return typeof t!="string"?t:(t=t.toUpperCase(),Ls[t]||Ls.WHITE)}function Tp(t,e,r){return!nr&&typeof t=="string"&&(e&&(t=`\x1B[${bp(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${bp(r)+dS}m${t}\x1B[49m`)),t}function Mp(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),o=t;for(let s of n){let i=o[s];typeof i=="function"&&(e.find(a=>s===a)||(o[s]=i.bind(t)))}}function jr(){let t;if(nr()&&Is.performance)t=Is?.performance?.now?.();else if("hrtime"in vs){let e=vs?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var qr={debug:nr()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},fc={enabled:!0,level:0},pt=class extends Rs{constructor({id:e}={id:""}){super({level:0}),this.VERSION=cc,this._startTs=jr(),this._deltaTs=jr(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new ws(`__probe-${this.id}__`,{[this.id]:fc}),this.timeStamp(`${this.id} started`),Mp(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((jr()-this._startTs).toPrecision(10))}getDelta(){return Number((jr()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:qr.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:qr.error})}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,...n){return this._log("log",e,r,n,{method:qr.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:qr.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:qr.debug||qr.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||or,tag:gS(r)}):or}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||or})}group(e,r,n={collapsed:!1}){let o=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:o})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||or})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;kr(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=jr();let o=mS(this.id,r.message,r);return n.bind(console,o,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(fc),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...fc};this._storage.setConfiguration({[this.id]:{...r,...e}})}};pt.VERSION=cc;function mS(t,e,r){if(typeof e=="string"){let n=r.time?yp(xp(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=Tp(e,r.color,r.background)}return e}function gS(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var uc=new pt({id:"@probe.gl/log"});var hc="4.4.3",AS=hc[0]>="0"&&hc[0]<="9"?`v${hc}`:"";function xS(){let t=new pt({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=t,globalThis.loaders.version=AS,globalThis.probe||={},globalThis.probe.loaders=t,t}var pc=xS();var Sp=t=>typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer;function zn(t,e){return Ep(t||{},e)}function Ep(t,e,r=0){if(r>3)return e;let n={...t};for(let[o,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[o]=Ep(n[o]||{},e[o],r+1):n[o]=e[o];return n}function dc(t){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,t)}function mc(t){return globalThis.loaders?.modules?.[t]||null}function yS(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.3"),globalThis._loadersgl_.version}var _p=yS();function Cp(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var at={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},fP=at.self||at.window||at.global||{},uP=at.window||at.self||at.global||{},hP=at.global||at.self||at.window||{},pP=at.document||{};var dt=typeof process!="object"||String(process)!=="[object process]"||process.browser,kn=typeof importScripts=="function",dP=typeof window<"u"&&typeof window.orientation<"u",Bp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),mP=Bp&&parseFloat(Bp[1])||0;var gc={};function jn(t={}){let e=t.useLocalLibraries??t.core?.useLocalLibraries,r=t.CDN??t.core?.CDN,n=t.modules;return{...e!==void 0?{useLocalLibraries:e}:{},...r!==void 0?{CDN:r}:{},...n!==void 0?{modules:n}:{}}}async function Ve(t,e=null,r={},n=null){return e&&(t=Ip(t,e,r,n)),gc[t]=gc[t]||bS(t),await gc[t]}function Ip(t,e,r={},n=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let o=r.modules||{};return o[n]?o[n]:dt?r.CDN?(Cp(r.CDN.startsWith("http")),`${r.CDN}/${e}@${_p}/dist/libs/${n}`):kn?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function bS(t){if(t.endsWith("wasm"))return await MS(t);if(!dt){let{requireFromFile:r}=globalThis.loaders||{};try{let n=await r?.(t);return n||!t.includes("/dist/libs/")?n:await r?.(t.replace("/dist/libs/","/src/libs/"))}catch(n){if(t.includes("/dist/libs/"))try{return await r?.(t.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(n),null}}if(kn)return importScripts(t);let e=await SS(t);return TS(e,t)}function TS(t,e){if(!dt){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(kn)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 MS(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).arrayBuffer();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${t}`)}}async function SS(t){let{readFileAsText:e}=globalThis.loaders||{};if(dt||!e||t.startsWith("http"))return await(await fetch(t)).text();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${t}`)}}function Rp(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?vp(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?vp(t,0,e):""}function vp(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),o="";for(let s=0;s<r;s++)o+=String.fromCharCode(n.getUint8(e+s));return o}function Ac(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${Rp(t)}"`)}}function qn(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((i,a)=>i+a.length,0),o=new r(n),s=0;for(let i of e)o.set(i,s),s+=i.length;return o}function sr(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 Rt(t,e){return H(t>=0),H(e>0),t+(e-1)&~(e-1)}function xc(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let o=t.byteOffset,s=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,o,s)}return e.set(n,r),r+Rt(n.byteLength,4)}function Jn(){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 ir=class{constructor(e,r){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=Jn(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Jn()-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 wt=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,r="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(e=[]){e.forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,o=this.stats[r];return o||(e instanceof ir?o=e:o=new ir(r,n),this.stats[r]=o),o}};var ES="Queued Requests",_S="Active Requests",CS="Cancelled Requests",BS="Queued Requests Ever",IS="Active Requests Ever",vS={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Lt=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...vS,...e},this.stats=new wt({id:this.props.id}),this.stats.get(ES),this.stats.get(_S),this.stats.get(CS),this.stats.get(BS),this.stats.get(IS)}setProps(e){e.throttleRequests!==void 0&&(this.props.throttleRequests=e.throttleRequests),e.maxRequests!==void 0&&(this.props.maxRequests=e.maxRequests),e.debounceTime!==void 0&&(this.props.debounceTime=e.debounceTime)}scheduleRequest(e,r=()=>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},o=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,o),this._issueNewRequests(),o}_issueRequest(e){let{handle:r,resolve:n}=e,o=!1,s=()=>{o||(o=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=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 RS="",wp={};function Lp(t){for(let e in wp)if(t.startsWith(e)){let r=wp[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${RS}${t}`),t}function Ft(t){if(t instanceof ArrayBuffer)return t;if(Sp(t))return Wn(t);let{buffer:e,byteOffset:r,byteLength:n}=t;return e instanceof ArrayBuffer&&r===0&&n===e.byteLength?e:Wn(e,r,n)}function Wn(t,e=0,r=t.byteLength-e){let n=new Uint8Array(t,e,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var Pt={};be(Pt,{dirname:()=>LS,filename:()=>wS,join:()=>FS,resolve:()=>PS});function Fp(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function wS(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):t}function LS(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function FS(...t){let e="/";return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp(`^${e}`),"")),n!==t.length-1&&(r=r.replace(new RegExp(`${e}$`),"")),r)),t.join(e)}function PS(...t){let e=[];for(let s=0;s<t.length;s++)e[s]=t[s];let r="",n=!1,o;for(let s=e.length-1;s>=-1&&!n;s--){let i;s>=0?i=e[s]:(o===void 0&&(o=Fp()),i=o),i.length!==0&&(r=`${i}/${r}`,n=i.charCodeAt(0)===Kn)}return r=NS(r,!n),n?`/${r}`:r.length>0?r:"."}var Kn=47,yc=46;function NS(t,e){let r="",n=-1,o=0,s,i=!1;for(let a=0;a<=t.length;++a){if(a<t.length)s=t.charCodeAt(a);else{if(s===Kn)break;s=Kn}if(s===Kn){if(!(n===a-1||o===1))if(n!==a-1&&o===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==yc||r.charCodeAt(r.length-2)!==yc){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==Kn;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,o=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,o=0,i=!1;continue}}e&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}n=a,o=0}else s===yc&&o!==-1?++o:o=-1}return r}var bc=class{optionsType;options;data;url;loadOptions;fetch;_needsRefresh=!0;constructor(e,r,n){n?this.options=zn({...n,core:bc.defaultOptions},r):this.options={...r},this.data=e,this.url=typeof e=="string"?Lp(e):"",this.loadOptions=US(this.options.core?.loadOptions),this.fetch=OS(this.loadOptions)}setProps(e){this.options=Object.assign(this.options,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}},Jr=bc;Jt(Jr,"defaultOptions",{core:{type:"auto",attributions:[],loadOptions:{},loaders:[]}});function OS(t){let e=t?.core?.fetch;if(e&&typeof e=="function")return(n,o)=>e(n,o);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}function US(t){let e={...t};t?.core&&(e.core={...t.core});let r=typeof e.baseUri=="string"?e.baseUri:void 0,n=typeof e.baseUrl=="string"?e.baseUrl:void 0;return(r!==void 0||n!==void 0)&&(e.core||={},e.core.baseUrl===void 0&&(e.core.baseUrl=n??r),delete e.baseUri,delete e.baseUrl),e}var Nt=class{};Jt(Nt,"type","template"),Jt(Nt,"testURL",e=>!1);function Pp(t,e){let r=Ye.parseTextSync?.(t,e),n=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}var DS="4.4.3",Xn={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:DS,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:GS,options:{wms:{throwOnError:!1}},parse:async(t,e)=>Tc(new TextDecoder().decode(t),e),parseSync:(t,e)=>Tc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Tc(t,e)};function GS(t){return t.startsWith("<?xml")}function Tc(t,e){let r={...Xn.options.wms,...e?.wms},n=Pp(t,r),o=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(o);return o}function ar(t){return Array.isArray(t)?t:t?[t]:[]}function Yn(t){let e=ar(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function Qn(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function Fs(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function cr(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function Mc(t,e){let r=Ye.parseTextSync?.(t,e),n=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,o=VS(n);if(e?.inheritedLayerProps)for(let s of o.layers)Op(s,null);return e?.includeRawJSON&&(o.json=n),e?.includeXMLText&&(o.xml=t),o}function VS(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:Yn(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:Fs(t.Service?.LayerLimit),maxWidth:Fs(t.Service?.maxWidth),maxHeight:Fs(t.Service?.maxHeight),layers:[],requests:HS(t.Capability?.Request),exceptions:zS(t.Exception)},r=ar(t.Capability?.Layer);for(let n of r)e.layers.push(Np(n));for(let[n,o]of Object.entries(e))o===void 0&&delete e[n];return e}function HS(t){let e={};for(let[r,n]of Object.entries(t||{})){let o=Yn(n?.Format);e[r]={mimeTypes:o}}return e}function zS(t){if(ar(t?.Format).length>0)return{mimeTypes:Yn(t)}}function Np(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:Yn(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(l=>typeof l=="string")&&(e.crs=r);let n=t?.EX_GeographicBoundingBox&&kS(t?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&jS(t?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);let o=t?.BoundingBox&&qS(t?.BoundingBox);o&&o.length>0&&(e.boundingBoxes=o);let i=ar(t?.Dimension).map(l=>WS(l));i.length&&(e.dimensions=i),t?.opaque&&(e.opaque=cr(t?.opaque)),t?.cascaded&&(e.cascaded=cr(t?.cascaded)),t?.queryable&&(e.queryable=cr(t?.queryable));let a=ar(t?.Layer),c=[];for(let l of a)c.push(Np(l));c.length>0&&(e.layers=c);for(let[l,f]of Object.entries(e))f===void 0&&delete e[l];return e}function kS(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:o}=t;return[[e,o],[n,r]]}function jS(t){let{minx:e,miny:r,maxx:n,maxy:o}=t;return[[e,r],[n,o]]}function qS(t){return ar(t).map(r=>JS(r))}function JS(t){let{CRS:e,SRS:r,minx:n,miny:o,maxx:s,maxy:i,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[Qn(n),Qn(o)],[Qn(s),Qn(i)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function WS(t){let{name:e,units:r,value:n}=t,o={name:e,units:r,extent:n};return t.unitSymbol&&(o.unitSymbol=t.unitSymbol),t.default&&(o.defaultValue=t.default),t.multipleValues&&(o.multipleValues=cr(t.multipleValues)),t.nearestValue&&(o.nearestValue=cr(t.nearestValue)),t.current&&(o.current=cr(t.current)),o}function Op(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Op(r,t)}var KS="4.4.3",Wr={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:KS,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:XS,options:{wms:{}},parse:async(t,e)=>Mc(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>Mc(t,e?.wms)};function XS(t){return t.startsWith("<?xml")}function Sc(t,e){let n=(Ye.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(s=>YS(s))}}function YS(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var Up={...Wr,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>Sc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Sc(t,e)};function Ec(t,e){return Ye.parseTextSync?.(t,e)}var Dp={...Wr,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>Ec(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Ec(t,e)};var Gp="4.4.3";var QS=globalThis.loaders?.parseImageNode,_c=typeof Image<"u",Cc=typeof ImageBitmap<"u",ZS=Boolean(QS),Bc=Hn?!0:ZS;function Vp(t){switch(t){case"auto":return Cc||_c||Bc;case"imagebitmap":return Cc;case"image":return _c;case"data":return Bc;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Hp(){if(Cc)return"imagebitmap";if(_c)return"image";if(Bc)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function zp(t){let e=$S(t);if(!e)throw new Error("Not an image");return e}function Zn(t){switch(zp(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 $S(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 eE=/^data:image\/svg\+xml/,tE=/\.svg((\?|#).*)?$/;function Ps(t){return t&&(eE.test(t)||tE.test(t))}function kp(t,e){if(Ps(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Ic(t,e)}function Ic(t,e){if(Ps(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function Ns(t,e,r){let n=kp(t,r),o=self.URL||self.webkitURL,s=typeof n!="string"&&o.createObjectURL(n);try{return await rE(s||n,e)}finally{s&&o.revokeObjectURL(s)}}async function rE(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,o)=>{try{r.onload=()=>n(r),r.onerror=s=>{let i=s instanceof Error?s.message:"error";o(new Error(i))}}catch(s){o(s)}})}var jp=!0;async function qp(t,e,r){let n;Ps(r)?n=await Ns(t,e,r):n=Ic(t,r);let o=e&&e.imagebitmap;return await nE(n,o)}async function nE(t,e=null){if((oE(e)||!jp)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),jp=!1}return await createImageBitmap(t)}function oE(t){if(!t)return!0;for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function Jp(t){return!cE(t,"ftyp",4)||!(t[8]&96)?null:sE(t)}function sE(t){switch(iE(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function iE(t,e,r){return String.fromCharCode(...t.slice(e,r))}function aE(t){return[...t].map(e=>e.charCodeAt(0))}function cE(t,e,r=0){let n=aE(e);for(let o=0;o<n.length;++o)if(n[o]!==t[o+r])return!1;return!0}var ct=!1,$n=!0;function lr(t){let e=eo(t);return fE(e)||pE(e)||uE(e)||hE(e)||lE(e)}function lE(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Jp(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function fE(t){let e=eo(t);return e.byteLength>=24&&e.getUint32(0,ct)===2303741511?{mimeType:"image/png",width:e.getUint32(16,ct),height:e.getUint32(20,ct)}:null}function uE(t){let e=eo(t);return e.byteLength>=10&&e.getUint32(0,ct)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,$n),height:e.getUint16(8,$n)}:null}function hE(t){let e=eo(t);return e.byteLength>=14&&e.getUint16(0,ct)===16973&&e.getUint32(2,$n)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,$n),height:e.getUint32(22,$n)}:null}function pE(t){let e=eo(t);if(!(e.byteLength>=3&&e.getUint16(0,ct)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:o}=dE(),s=2;for(;s+9<e.byteLength;){let i=e.getUint16(s,ct);if(o.has(i))return{mimeType:"image/jpeg",height:e.getUint16(s+5,ct),width:e.getUint16(s+7,ct)};if(!n.has(i))return null;s+=2,s+=e.getUint16(s,ct)}return null}function dE(){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 eo(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 Wp(t,e){let{mimeType:r}=lr(t)||{},n=globalThis.loaders?.parseImageNode;return H(n),await n(t,r)}async function Kp(t,e,r){e=e||{};let o=(e.image||{}).type||"auto",{url:s}=r||{},i=mE(o),a;switch(i){case"imagebitmap":a=await qp(t,e,s);break;case"image":a=await Ns(t,e,s);break;case"data":a=await Wp(t,e);break;default:H(!1)}return o==="data"&&(a=Zn(a)),a}function mE(t){switch(t){case"auto":case"data":return Hp();default:return Vp(t),t}}var gE=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],AE=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],xE={image:{type:"auto",decode:!0}},Kr={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Gp,mimeTypes:AE,extensions:gE,parse:Kp,tests:[t=>Boolean(lr(new DataView(t)))],options:xE};var vc={};function Rc(t){if(vc[t]===void 0){let e=Hn?bE(t):yE(t);vc[t]=e}return vc[t]}function yE(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e,n=globalThis.loaders?.parseImageNode;return Boolean(n)&&r.includes(t)}function bE(t){switch(t){case"image/avif":case"image/webp":return TE(t);default:return!0}}function TE(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Us={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],type:"wms",fromUrl:!0,fromBlob:!1,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes("wms"),createDataSource:(t,e)=>new Os(t,e)},Os=class extends Jr{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r){super(e,r,Us.defaultOptions),this.substituteCRS84=r.wms?.substituteCRS84??!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,...r.wmsParameters,...r.wms?.wmsParameters},this.vendorParameters=r.wms?.vendorParameters||r.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...o}=e,s={bbox:r?[...r[0],...r[1]]:n,...o};return await this.getMap(s)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);let i=await Wr.parse(s,this.loadOptions);return this.capabilities=i,i}async getMap(e,r){let n=this.getMapURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Kr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Up.parse(s,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),new TextDecoder().decode(s)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Dp.parse(s,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Kr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}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{boundingBox:n,bbox:o}=e;e.bbox=n?[...n[0],...n[1]]:o;let s={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",s,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("?"),o=n.split("&"),s={};for(let i of o){let[a,c]=i.split("=");s[a]=c}return{url:r,parameters:s}}_getWMSUrl(e,r,n){let o=this.url,s=!0,i={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(i))(!a.includes(c)||l)&&(o+=s?"?":"&",s=!1,o+=this._getURLParameter(c,l,r));return encodeURI(o)}_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 o=this._flipBoundingBox(r,n);o&&(r=o);break;case"x":n.version==="1.3.0"&&(e="i");break;case"y":n.version==="1.3.0"&&(e="j");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"),o=e;return n?[o[1],o[0],o[3],o[2]]:o}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||Xn.mimeTypes.includes(n)){let o=zn(this.loadOptions,{wms:{throwOnError:!0}}),s=Xn.parseSync?.(r,o);throw new Error(s)}}_parseError(e){let r=Xn.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};function Ds(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Qe=Math.PI,Zp=Qe/4,Xp=Qe/180,Yp=180/Qe,Gs=512;function mt(t){let[e,r]=t;Ds(Number.isFinite(e)),Ds(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Xp,o=r*Xp,s=Gs*(n+Qe)/(2*Qe),i=Gs*(Qe+Math.log(Math.tan(Zp+o*.5)))/(2*Qe);return[s,i]}function gt(t){let[e,r]=t,n=e/Gs*(2*Qe)-Qe,o=2*(Math.atan(Math.exp(r/Gs*(2*Qe)-Qe))-Zp);return[n*Yp,o*Yp]}var ZO=Math.PI/180;var ed=6378137*Math.PI;function wc(t){let e=mt(t);return e[0]=(e[0]/256-1)*ed,e[1]=(e[1]/256-1)*ed,e}var UE={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)}},Xr=class extends fr.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:o}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(o,"image source changed"),0)):(0,fr._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(o,"viewport changed")):this.debounce(()=>this.loadImage(o,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new td.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?fr.COORDINATE_SYSTEM.LNGLAT:fr.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(0,rd.createDataSource)(e.data,[Us],{core:{type:e.serviceType,loadOptions:e.loadOptions}});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:o}=this.props;if(o==="wms"&&n.length===0)return;let s=e.getBounds(),{width:i,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let f={width:i,height:a,boundingBox:[[s[0],s[1]],[s[2],s[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let u=wc([s[0],s[1]]),h=wc([s[2],s[3]]);f.boundingBox=[u,h]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let u=await this.state.imageSource.getImage(f);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:u,bounds:s,lastRequestParameters:f,lastRequestId:c}))}catch(u){this.raiseError(u,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,u)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}};Xr.layerName="WMSLayer";Xr.defaultProps=UE;var nd=D(Ke(),1),DE={getHeight:{type:"accessor",value:0},greatCircle:!0},to=class extends nd.ArcLayer{};to.layerName="GreatCircleLayer";to.defaultProps=DE;var od=to;var Vs=D(Lc(),1),GE=3,VE=30,HE=2*VE+1,id=180/Math.PI;function cd(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function ad(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function ld(t){return[ad(t[0]),ad(t[1])]}function fd(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 ud([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*id,n*id]}function hd(t){let e=Vs.default.fromString(t,!0,10).toString(2);for(;e.length<GE+HE;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=Vs.default.fromString(n,!0,2).toString(10),a=Vs.default.fromString(o,!0,2).toString(4);for(;a.length<s;)a="0"+a;return`${i}/${a}`}function zE(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function pd(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=[0,0],i;for(let a=o-1;a>=0;a--){i=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,i-1);zE(u,s,l,f),s[0]+=u*l,s[1]+=u*f}if(r%2===1){let a=s[0];s[0]=s[1],s[1]=a}return{face:r,ij:s,level:i}}var dd=D(Lc(),1);function kE(t){let e=t.padEnd(16,"0");return dd.default.fromString(e,16)}var jE=100;function qE({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],o=Math.max(1,Math.ceil(jE*Math.pow(2,-r))),s=new Float64Array(4*o*2+2),i=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),f=n[c+1],u=(f[0]-l[0])/o,h=(f[1]-l[1])/o;for(let p=0;p<o;p++){l[0]+=u,l[1]+=h;let d=cd(e,r,l),g=ld(d),m=fd(t,g),y=ud(m);Math.abs(y[1])>89.999&&(y[0]=a);let b=y[0]-a;y[0]+=b>180?-360:b<-180?360:0,s[i++]=y[0],s[i++]=y[1],a=y[0]}}return s[i++]=s[0],s[i++]=s[1],s}function JE(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=kE(t)}return hd(t.toString())}function md(t){let e=JE(t),r=pd(e);return qE(r)}var WE={getS2Token:{type:"accessor",value:t=>t.token}},no=class extends De{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>md(r(n,o))}}};no.layerName="S2Layer";no.defaultProps=WE;var gd=no;var Fc=512;function KE(t,e){let r=0,n=0,o=1<<t.length,s=o/Fc;for(let i=0;i<t.length;i++){o>>=1;let a=parseInt(t[i]);a%2&&(r|=o),a>1&&(n|=o)}return[[r/s,Fc-n/s],[(r+e)/s,Fc-(n+e)/s]]}function Ad(t,e=1){let[r,n]=KE(t,e),[o,s]=gt(r),[i,a]=gt(n);return[i,s,i,a,o,a,o,s,i,s]}var XE={getQuadkey:{type:"accessor",value:t=>t.quadkey}},oo=class extends De{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,o=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,i)=>Ad(n(s,i),o),updateTriggers:{getPolygon:o}}}};oo.layerName="QuadkeyLayer";oo.defaultProps=XE;var xd=oo;var Ks=D(nt(),1),Nd=D(Ke(),1);var ur=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:o}){let{index:s,id:i,bbox:a,userData:c,zoom:l}=this,f=this._loaderId;this._abortController=new AbortController;let{signal:u}=this._abortController,h=await r.scheduleRequest(this,g=>g.isSelected?1:-1);if(!h){this._isCancelled=!0;return}if(this._isCancelled){h.done();return}let p=null,d;try{p=await e({index:s,id:i,bbox:a,userData:c,zoom:l,signal:u})}catch(g){d=g||!0}finally{h.done()}if(f===this._loaderId){if(this._loader=void 0,this.content=p,this._isCancelled&&!p){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,d?o(d,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 ao=D(nt(),1);var ie={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var yd=new x,YE=new x,Ot=class{constructor(e=[0,0,0],r=[0,0,0],n){n=n||yd.copy(e).add(r).scale(.5),this.center=new x(n),this.halfDiagonal=new x(r).subtract(this.center),this.minimum=new x(e),this.maximum=new x(r)}clone(){return new Ot(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=YE.from(e.normal),o=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),s=this.center.dot(n)+e.distance;return s-o>0?ie.INSIDE:s+o<0?ie.OUTSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=yd.from(e).subtract(this.center),{halfDiagonal:n}=this,o=0,s;return s=Math.abs(r.x)-n.x,s>0&&(o+=s*s),s=Math.abs(r.y)-n.y,s>0&&(o+=s*s),s=Math.abs(r.z)-n.z,s>0&&(o+=s*s),o}};var so=new x,bd=new x,He=class{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new x,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=so.from(r),this.center=new x().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 He(this.center,this.radius)}union(e){let r=this.center,n=this.radius,o=e.center,s=e.radius,i=so.copy(o).subtract(r),a=i.magnitude();if(n>=a+s)return this.clone();if(s>=a+n)return e.clone();let c=(n+a+s)*.5;return bd.copy(i).scale((-n+c)/a).add(r),this.center.copy(bd),this.radius=c,this}expand(e){let n=so.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=Ln.getScaling(so,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=so.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,s=e.normal.dot(r)+e.distance;return s<-n?ie.OUTSIDE:s<n?ie.INTERSECTING:ie.INSIDE}};var QE=new x,ZE=new x,Hs=new x,zs=new x,ks=new x,$E=new x,e_=new x,At={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},Ze=class{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new x().from(e),this.halfAxes=new k(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new x(e).len(),new x(r).len(),new x(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),o=new x(e).normalize(),s=new x(r).normalize(),i=new x(n).normalize();return new st().fromMatrix3(new k([...o,...s,...i]))}fromCenterHalfSizeQuaternion(e,r,n){let o=new st(n),s=new k().fromQuaternion(o);return s[0]=s[0]*r[0],s[1]=s[1]*r[0],s[2]=s[2]*r[0],s[3]=s[3]*r[1],s[4]=s[4]*r[1],s[5]=s[5]*r[1],s[6]=s[6]*r[2],s[7]=s[7]*r[2],s[8]=s[8]*r[2],this.center=new x().from(e),this.halfAxes=s,this}clone(){return new Ze(this.center,this.halfAxes)}equals(e){return this===e||Boolean(e)&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new He){let r=this.halfAxes,n=r.getColumn(0,Hs),o=r.getColumn(1,zs),s=r.getColumn(2,ks),i=QE.copy(n).add(o).add(s);return e.center.copy(this.center),e.radius=i.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,o=this.halfAxes,s=n.x,i=n.y,a=n.z,c=Math.abs(s*o[At.COLUMN0ROW0]+i*o[At.COLUMN0ROW1]+a*o[At.COLUMN0ROW2])+Math.abs(s*o[At.COLUMN1ROW0]+i*o[At.COLUMN1ROW1]+a*o[At.COLUMN1ROW2])+Math.abs(s*o[At.COLUMN2ROW0]+i*o[At.COLUMN2ROW1]+a*o[At.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?ie.OUTSIDE:l>=c?ie.INSIDE:ie.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=ZE.from(e).subtract(this.center),n=this.halfAxes,o=n.getColumn(0,Hs),s=n.getColumn(1,zs),i=n.getColumn(2,ks),a=o.magnitude(),c=s.magnitude(),l=i.magnitude();o.normalize(),s.normalize(),i.normalize();let f=0,u;return u=Math.abs(r.dot(o))-a,u>0&&(f+=u*u),u=Math.abs(r.dot(s))-c,u>0&&(f+=u*u),u=Math.abs(r.dot(i))-l,u>0&&(f+=u*u),f}computePlaneDistances(e,r,n=[-0,-0]){let o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,i=this.center,a=this.halfAxes,c=a.getColumn(0,Hs),l=a.getColumn(1,zs),f=a.getColumn(2,ks),u=$E.copy(c).add(l).add(f).add(i),h=e_.copy(u).subtract(e),p=r.dot(h);return o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),n[0]=o,n[1]=s,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,Hs);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,zs);n.transformAsPoint(e);let o=this.halfAxes.getColumn(2,ks);return o.transformAsPoint(e),this.halfAxes=new k([...r,...n,...o]),this}getTransform(){throw new Error("not implemented")}};var Td=new x,Md=new x,pe=class{constructor(e=[0,0,1],r=0){this.normal=new x,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return he(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=Td.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,o){return this.normal.set(e,r,n),he(_e(this.normal.len(),1)),this.distance=o,this}clone(){return new pe(this.normal,this.distance)}equals(e){return _e(this.distance,e.distance)&&_e(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=Md.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=Td.from(e),o=this.getPointDistance(n),s=Md.copy(this.normal).scale(o);return n.subtract(s).to(r)}};var Sd=[new x([1,0,0]),new x([0,1,0]),new x([0,0,1])],Ed=new x,t_=new x,ce=class{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*Sd.length;let r=e.center,n=e.radius,o=0;for(let s of Sd){let i=this.planes[o],a=this.planes[o+1];i||(i=this.planes[o]=new pe),a||(a=this.planes[o+1]=new pe);let c=Ed.copy(s).scale(-n).add(r);i.fromPointNormal(c,s);let l=Ed.copy(s).scale(n).add(r),f=t_.copy(s).negate();a.fromPointNormal(l,f),o+=2}return this}computeVisibility(e){let r=ie.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case ie.OUTSIDE:return ie.OUTSIDE;case ie.INTERSECTING:r=ie.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(he(Number.isFinite(r),"parentPlaneMask is required."),r===ce.MASK_OUTSIDE||r===ce.MASK_INSIDE)return r;let n=ce.MASK_INSIDE,o=this.planes;for(let s=0;s<this.planes.length;++s){let i=s<31?1<<s:0;if(s<31&&!(r&i))continue;let a=o[s],c=e.intersectPlane(a);if(c===ie.OUTSIDE)return ce.MASK_OUTSIDE;c===ie.INTERSECTING&&(n|=i)}return n}};ce.MASK_OUTSIDE=4294967295;ce.MASK_INSIDE=0;ce.MASK_INDETERMINATE=2147483647;var dD=new x,mD=new x,gD=new x,AD=new x,xD=new x;var ED=new x,_D=new x,CD=new x,BD=new x,ID=new x,vD=new x,RD=new x,wD=new x,LD=new x,FD=new x,PD=new x,ND=new x;var lt=new k,n_=new k,o_=new k,js=new k,_d=new k;function Oc(t,e={}){let r=Ge.EPSILON20,n=10,o=0,s=0,i=n_,a=o_;i.identity(),a.copy(t);let c=r*s_(a);for(;s<n&&i_(a)>c;)a_(a,js),_d.copy(js).transpose(),a.multiplyRight(js),a.multiplyLeft(_d),i.multiplyRight(js),++o>2&&(++s,o=0);return e.unitary=i.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function s_(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Pc=[1,0,0],Nc=[2,2,1];function i_(t){let e=0;for(let r=0;r<3;++r){let n=t[lt.getElementIndex(Nc[r],Pc[r])];e+=2*n*n}return Math.sqrt(e)}function a_(t,e){let r=Ge.EPSILON15,n=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(t[lt.getElementIndex(Nc[l],Pc[l])]);f>n&&(o=l,n=f)}let s=Pc[o],i=Nc[o],a=1,c=0;if(Math.abs(t[lt.getElementIndex(i,s)])>r){let l=t[lt.getElementIndex(i,i)],f=t[lt.getElementIndex(s,s)],u=t[lt.getElementIndex(i,s)],h=(l-f)/2/u,p;h<0?p=-1/(-h+Math.sqrt(1+h*h)):p=1/(h+Math.sqrt(1+h*h)),a=1/Math.sqrt(1+p*p),c=p*a}return k.IDENTITY.to(e),e[lt.getElementIndex(s,s)]=e[lt.getElementIndex(i,i)]=a,e[lt.getElementIndex(i,s)]=c,e[lt.getElementIndex(s,i)]=-c,e}var Ut=new x,c_=new x,l_=new x,f_=new x,u_=new x,h_=new k,p_={diagonal:new k,unitary:new k};function io(t,e=new Ze){if(!t||t.length===0)return e.halfAxes=new k([0,0,0,0,0,0,0,0,0]),e.center=new x,e;let r=t.length,n=new x(0,0,0);for(let T of t)n.add(T);let o=1/r;n.multiplyByScalar(o);let s=0,i=0,a=0,c=0,l=0,f=0;for(let T of t){let A=Ut.copy(T).subtract(n);s+=A.x*A.x,i+=A.x*A.y,a+=A.x*A.z,c+=A.y*A.y,l+=A.y*A.z,f+=A.z*A.z}s*=o,i*=o,a*=o,c*=o,l*=o,f*=o;let u=h_;u[0]=s,u[1]=i,u[2]=a,u[3]=i,u[4]=c,u[5]=l,u[6]=a,u[7]=l,u[8]=f;let{unitary:h}=Oc(u,p_),p=e.halfAxes.copy(h),d=p.getColumn(0,l_),g=p.getColumn(1,f_),m=p.getColumn(2,u_),y=-Number.MAX_VALUE,b=-Number.MAX_VALUE,M=-Number.MAX_VALUE,S=Number.MAX_VALUE,C=Number.MAX_VALUE,_=Number.MAX_VALUE;for(let T of t)Ut.copy(T),y=Math.max(Ut.dot(d),y),b=Math.max(Ut.dot(g),b),M=Math.max(Ut.dot(m),M),S=Math.min(Ut.dot(d),S),C=Math.min(Ut.dot(g),C),_=Math.min(Ut.dot(m),_);d=d.multiplyByScalar(.5*(S+y)),g=g.multiplyByScalar(.5*(C+b)),m=m.multiplyByScalar(.5*(_+M)),e.center.copy(d).add(g).add(m);let v=c_.set(y-S,b-C,M-_).multiplyByScalar(.5),E=new k([v[0],0,0,0,v[1],0,0,0,v[2]]);return e.halfAxes.multiplyRight(E),e}var Yr=512,Cd=3,Bd=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],Id=Bd.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),d_=Id.concat([[.25,.5],[.75,.5]]),Dt=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 Dt(e,r,n),new Dt(e,r+1,n),new Dt(e+1,r,n),new Dt(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:o,minZ:s,maxZ:i,bounds:a,offset:c,project:l}=e,f=this.getBoundingVolume(o,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(f)<0)return!1;if(!this.childVisible){let{z:h}=this;if(h<i&&h>=s){let p=f.distanceTo(r.cameraPosition)*r.scale/r.height;h+=Math.floor(Math.log2(p))}if(h>=i)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let h of this.children)h.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,o]){let s=Math.pow(2,this.z),i=Yr/s;return this.x*i<n&&this.y*i<o&&(this.x+1)*i>e&&(this.y+1)*i>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?d_:this.z<2?Id:Bd,l=[];for(let f of c){let u=qs(this.x+f[0],this.y+f[1],this.z);u[2]=e[0],l.push(n(u)),e[0]!==e[1]&&(u[2]=e[1],l.push(n(u)))}return io(l)}let o=Math.pow(2,this.z),s=Yr/o,i=this.x*s+r*Yr,a=Yr-(this.y+1)*s;return new Ot([i,a,e[0]],[i+s,a+s,e[1]])}};function vd(t,e,r,n){let o=t instanceof ao._GlobeViewport&&t.resolution?t.projectPosition:null,s=Object.values(t.getFrustumPlanes()).map(({normal:p,distance:d})=>new pe(p.clone().negate(),d)),i=new ce(s),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,f=t instanceof ao.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[p,d,g,m]=n,y=mt([p,m]),b=mt([g,d]);n=[y[0],Yr-y[1],b[0],Yr-b[1]]}let u=new Dt(0,0,0),h={viewport:t,project:o,cullingVolume:i,elevationBounds:[c,l],minZ:f,maxZ:e,bounds:n,offset:0};if(u.update(h),t instanceof ao.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(h.offset=-1;u.update(h)&&!(--h.offset<-Cd););for(h.offset=1;u.update(h)&&!(++h.offset>Cd););}return u.getSelected()}var xt=512,m_=[-1/0,-1/0,1/0,1/0],Gt={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 Js(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(o=>o[0])),Math.min(...r.map(o=>o[1])),Math.max(...r.map(o=>o[0])),Math.max(...r.map(o=>o[1]))]}function g_(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function ft(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let s=g_(n)%t.length;t=t[s]}let o=t;for(let s of Object.keys(r)){let i=new RegExp(`{${s}}`,"g");o=o.replace(i,String(r[s]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(o=o.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),o}function A_(t,e,r){let n;if(e&&e.length===2){let[o,s]=e,i=t.getBounds({z:o}),a=t.getBounds({z:s});n=[Math.min(i[0],a[0]),Math.min(i[1],a[1]),Math.max(i[2],a[2]),Math.max(i[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 wd({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(o=>Uc(o,e||0,r))}function Uc(t,e,r){if(!Array.isArray(e)){let s=r.x-t.x,i=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},f=t.unproject([s,i],l),u=t.unproject([s+a,i],l),h=t.unproject([s,i+c],l),p=t.unproject([s+a,i+c],l);return[Math.min(f[0],u[0],h[0],p[0]),Math.min(f[1],u[1],h[1],p[1]),Math.max(f[0],u[0],h[0],p[0]),Math.max(f[1],u[1],h[1],p[1])]}let n=Uc(t,e[0],r),o=Uc(t,e[1],r);return[Math.min(n[0],o[0]),Math.min(n[1],o[1]),Math.max(n[2],o[2]),Math.max(n[3],o[3])]}function x_(t,e,r){return r?Js(t,r).map(o=>o*e/xt):t.map(n=>n*e/xt)}function Dc(t,e){return Math.pow(2,t)*xt/e}function qs(t,e,r){let n=Dc(r,xt),o=t/n*360-180,s=Math.PI-2*Math.PI*e/n,i=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[o,i]}function Rd(t,e,r,n){let o=Dc(r,n);return[t/o*xt,e/o*xt]}function Gc(t,e,r,n,o=xt){if(t.isGeospatial){let[l,f]=qs(e,r,n),[u,h]=qs(e+1,r+1,n);return{west:l,north:f,east:u,south:h}}let[s,i]=Rd(e,r,n,o),[a,c]=Rd(e+1,r+1,n,o);return{left:s,top:i,right:a,bottom:c}}function y_(t,e,r,n,o){let s=A_(t,null,n),i=Dc(e,r),[a,c,l,f]=x_(s,i,o),u=[];for(let h=Math.floor(a);h<l;h++)for(let p=Math.floor(c);p<f;p++)u.push({x:h,y:p,z:e});return u}function Vc({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:o,tileSize:s=xt,modelMatrix:i,modelMatrixInverse:a,zoomOffset:c=0,visibleMinZoom:l,visibleMaxZoom:f}){let u=t.isGeospatial?Math.round(t.zoom+Math.log2(xt/s)+c):Math.ceil(t.zoom+c);if(typeof r=="number"&&Number.isFinite(r)&&u<r){if(!o)return[];u=r}if(typeof e=="number"&&Number.isFinite(e)&&u>e&&(u=e),l!=null&&t.zoom<l)return[];if(f!=null&&t.zoom>f)return[];let h=o;return i&&a&&o&&!t.isGeospatial&&(h=Js(o,i)),t.isGeospatial?vd(t,u,n,o):y_(t,u,s,h||m_,a)}function Hc(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function zc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Ld(t){let e={},r;return n=>{for(let o in n)if(!b_(n[o],e[o])){r=t(n),e=n;break}return r}}function b_(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 Fd=1,Ws=2,T_="never",M_="no-overlap",co="best-available",S_=5,E_={[co]:C_,[M_]:B_,[T_]:()=>{}},__={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},hr=class{constructor(e){this._getCullBounds=Ld(wd),this.opts={...__,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new Lt({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),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 N,this._modelMatrixInverse=new N}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)),this._viewport=null}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 o=n?new N(n):new N,s=!o.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!_e(this._zRange,r)||s){s&&(this._modelMatrixInverse=o.clone().invert(),this._modelMatrix=o),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 i=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),i&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,n){if(!e.isVisible)return!1;if(r&&this._viewport){let o=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,a,c,l]of o){let f;if("west"in s)f=s.west<c&&s.east>i&&s.south<l&&s.north>a;else{if(n&&!N.IDENTITY.equals(n)){let[p,d,g,m]=Js([s.left,s.top,s.right,s.bottom],n);s={left:p,top:d,right:g,bottom:m}}let u=Math.min(s.top,s.bottom),h=Math.max(s.top,s.bottom);f=s.left<c&&s.right>i&&u<l&&h>a}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:o,modelMatrix:s,modelMatrixInverse:i}){let{tileSize:a,extent:c,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u}=this.opts;return Vc({viewport:e,maxZoom:r,minZoom:n,zRange:o,tileSize:a,extent:c,modelMatrix:s,modelMatrixInverse:i,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Gc(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),o=e.z-1;return{x:r,y:n,z:o}}updateTileStates(){let e=this.opts.refinementStrategy||co,r=new Array(this._cache.size),n=0;for(let o of this._cache.values())r[n++]=o.isVisible,o.isSelected=!1,o.isVisible=!1;for(let o of this._selectedTiles)o.isSelected=!0,o.isVisible=!0;(typeof e=="function"?e:E_[e])(Array.from(this._cache.values())),n=0;for(let o of this._cache.values())if(r[n++]!==o.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let o of this._cache.values())o.isLoading&&(n++,!o.isSelected&&!o.isVisible&&r.push(o));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!==null?1/0:S_*this.selectedTiles.length),o=r.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>o){for(let[i,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?a.byteLength:0,e.delete(i),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=o)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((i,a)=>i.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),o=this._cache.get(n),s=!1;return!o&&r?(o=new ur(e),Object.assign(o,this.getTileMetadata(o.index)),Object.assign(o,{id:n,zoom:this.getTileZoom(o.index)}),s=!0,this._cache.set(n,o),this._dirty=!0):o&&o.needsReload&&(s=!0),o&&s&&o.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),o}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let o=this._getTile(n);if(o)return o}return null}};function C_(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Pd(e)&&kc(e);for(let e of t)e.isVisible=Boolean(e.state&Ws)}function B_(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Pd(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=Boolean(r.state&Ws),r.children&&(r.isVisible||r.state&Fd))for(let n of r.children)n.state=Fd;else r.isSelected&&kc(r)}function Pd(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Ws,!0;e=e.parent}return!1}function kc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Ws:kc(e)}var I_={TilesetClass:hr,data:{type:"data",value:[]},dataComparator:Gt.equal,renderSubLayers:{type:"function",value:t=>new Nd.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:co,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},lo=class extends Ks.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.content||!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,o=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),o?r.reloadAll():r.tiles.forEach(s=>{s.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:o,extent:s,maxZoom:i,minZoom:a,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:i,minZoom:a,tileSize:e,refinementStrategy:o,extent:s,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h,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,o=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:s}=e,i=this.state.isLoaded!==s,a=this.state.frameNumber!==o;s&&(i||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:o}),this.state.isLoaded=s}_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:o}=this.props,{signal:s}=e;return e.url=typeof r=="string"||Array.isArray(r)?ft(r,e):null,n?n(e):o&&e.url?o(e.url,{propName:"data",layer:this,signal:s}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,n=r.props.tile,o=e.info;return o.picked&&(o.tile=n),o.sourceTile=n,o.sourceTileSubLayer=r,o}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){let{visibleMinZoom:e,visibleMaxZoom:r,minZoom:n,extent:o}=this.props,s=this.context.viewport.zoom;if(e!=null&&s<e||r!=null&&s>r||n!=null&&!o&&s<n){for(let a of this.state.tileset.tiles)a.layers=null;return[]}return this.state.tileset.tiles.map(a=>{let c=this.getSubLayerPropsByTile(a);if(!(!a.isLoaded&&!a.content))if(a.layers)c&&a.layers[0]&&Object.keys(c).some(l=>a.layers[0].props[l]!==c[l])&&(a.layers=a.layers.map(l=>l.clone(c)));else{let l=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:a.id,updateTriggers:this.props.updateTriggers}),data:a.content,_offset:0,tile:a});a.layers=(0,Ks._flatten)(l,Boolean).map(f=>f.clone({tile:a,...c}))}return a.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props,{modelMatrix:o}=this.props;return this.state.tileset.isTileVisible(n,r,o?new N(o):null)}};lo.defaultProps=I_;lo.layerName="TileLayer";var pr=lo;var Dd=D(Ke(),1);var Od=`layout(std140) uniform tripsUniforms {
11
11
  bool fadeTrail;
12
12
  float trailLength;
13
13
  float currentTime;
14
14
  } trips;
15
- `,Ud={name:"trips",vs:Od,fs:Od,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};var R_={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},lo=class extends Dd.PathLayer{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`in float instanceTimestamps;
15
+ `,Ud={name:"trips",vs:Od,fs:Od,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};var v_={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:t=>t.timestamps}},fo=class extends Dd.PathLayer{getShaders(){let e=super.getShaders();return e.inject={"vs:#decl":`in float instanceTimestamps;
16
16
  in float instanceNextTimestamps;
17
17
  out float vTime;
18
18
  `,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;
@@ -23,7 +23,7 @@ out float vTime;
23
23
  `,"fs:DECKGL_FILTER_COLOR":`if(trips.fadeTrail) {
24
24
  color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;
25
25
  }
26
- `},e.modules=[...e.modules,Ud],e}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(e){let{fadeTrail:r,trailLength:n,currentTime:o}=this.props,s={fadeTrail:r,trailLength:n,currentTime:o};this.state.model.shaderInputs.setProps({trips:s}),super.draw(e)}};lo.layerName="TripsLayer";lo.defaultProps=R_;var Gd=lo;var Vd=U(is(),1),Hd=U(Xe(),1);var ze=U(is(),1),Ks=U(Xe(),1),fo=U(Ke(),1);var w_=10;function L_(t,e){let r;return t==null?r=e:typeof t=="object"?r={...t,coverage:e}:r={getHexagon:t,coverage:e},r}var F_={...fo.PolygonLayer.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:t=>t.hexagon},extruded:!0},Vt=class extends Ks.CompositeLayer{initializeState(){Vt._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:r}){if(e.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let n=this._calculateH3DataProps();this.setState(n)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,r=!1,n=!1,{iterable:o,objectInfo:s}=(0,Ks.createIterable)(this.props.data);for(let i of o){s.index++;let a=this.props.getHexagon(i,s),c=(0,ze.getResolution)(a);if(e<0){if(e=c,!this.props.highPrecision)break}else if(e!==c){n=!0;break}if((0,ze.isPentagon)(a)){r=!0;break}}return{resolution:e,edgeLengthKM:e>=0?(0,ze.getHexagonEdgeLengthAvg)(e,"km"):0,hasMultipleRes:n,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:e,hasPentagon:r,hasMultipleRes:n}=this.state,{viewport:o}=this.context;return Boolean(o?.resolution)||n||r||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:n,centerHex:o}=this.state;if(r<0)return;let s=this.props.centerHexagon||(0,ze.latLngToCell)(e.latitude,e.longitude,r);if(o===s)return;if(o)try{if((0,ze.gridDistance)(o,s)*n<w_)return}catch{}let{unitsPerMeter:i}=e.distanceScales,a=$a(s),[c,l]=(0,ze.cellToLatLng)(s),[f,u]=e.projectFlat([l,c]);a=a.map(h=>{let p=e.projectFlat(h);return[(p[0]-f)/i[0],(p[1]-u)/i[1]]}),this.setState({centerHex:s,vertices:a})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:e,material:r,coverage:n,extruded:o,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:h,getElevation:p,getLineColor:d,getLineWidth:g,transitions:m,updateTriggers:y}=this.props;return{elevationScale:e,extruded:o,coverage:n,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:r,getElevation:p,getFillColor:h,getLineColor:d,getLineWidth:g,transitions:m,updateTriggers:{getFillColor:y.getFillColor,getElevation:y.getElevation,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}}_renderPolygonLayer(){let{data:e,getHexagon:r,updateTriggers:n,coverage:o}=this.props,s=this.getSubLayerClass("hexagon-cell-hifi",fo.PolygonLayer),i=this._getForwardProps();return i.updateTriggers.getPolygon=L_(n.getHexagon,o),new s(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(a,c)=>{let l=r(a,c);return Ms($a(l,o))}})}_renderColumnLayer(){let{data:e,getHexagon:r,updateTriggers:n}=this.props,o=this.getSubLayerClass("hexagon-cell",fo.ColumnLayer),s=this._getForwardProps();return s.updateTriggers.getPosition=n.getHexagon,new o(s,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:s.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:$h.bind(null,r)})}};Vt.defaultProps=F_;Vt.layerName="H3HexagonLayer";Vt._checkH3Lib=()=>{};var Xs=Vt;var P_={getHexagons:{type:"accessor",value:t=>t.hexagons}},uo=class extends De{initializeState(){Xs._checkH3Lib()}updateState({props:e,changeFlags:r}){if(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagons){let{data:n,getHexagons:o}=e,s=[],{iterable:i,objectInfo:a}=(0,Hd.createIterable)(n);for(let c of i){a.index++;let l=o(c,a),f=(0,Vd.cellsToMultiPolygon)(l,!0);for(let u of f){for(let h of u)Ts(h);s.push(this.getSubLayerRow({polygon:u},c,a.index))}}this.setState({polygons:s})}}indexToBounds(){let{getElevation:e,getFillColor:r,getLineColor:n,getLineWidth:o}=this.props;return{data:this.state.polygons,getPolygon:s=>s.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(r),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(o)}}};uo.layerName="H3ClusterLayer";uo.defaultProps=P_;var zd=uo;var U0=U(jc(),1),qt=U(Xe(),1),D0=U(Ke(),1),G0=U(Ys(),1);var qd="4.4.1";var Qs={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Jd;async function Jc(t){dc(t.modules);let e=mc("basis");return e||(Jd||=N_(t),await Jd)}async function N_(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Qs.TRANSCODER,"textures",t),await Ve(Qs.TRANSCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await O_(e,r)}function O_(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,initializeBasis:i}=o;i(),n({BasisFile:s})})})}var qc;async function Wc(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(qc=qc||U_(t),await qc)}async function U_(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Qs.ENCODER,"textures",t),await Ve(Qs.ENCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await D_(e,r)}function D_(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,KTX2File:i,initializeBasis:a,BasisEncoder:c}=o;a(),n({BasisFile:s,KTX2File:i,BasisEncoder:c})})})}var G_=["","WEBKIT_","MOZ_"],Wd={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};var Zs=null;function Kd(t){if(!Zs){t=t||V_()||void 0,Zs=new Set;for(let e of G_)for(let r in Wd)if(t&&t.getExtension(`${e}${r}`))for(let n of Wd[r])Zs.add(n)}return Zs}function V_(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var Ue=[171,75,84,88,32,50,48,187,13,10,26,10];function Xd(t){let e=new Uint8Array(t);return!(e.byteLength<Ue.length||e[0]!==Ue[0]||e[1]!==Ue[1]||e[2]!==Ue[2]||e[3]!==Ue[3]||e[4]!==Ue[4]||e[5]!==Ue[5]||e[6]!==Ue[6]||e[7]!==Ue[7]||e[8]!==Ue[8]||e[9]!==Ue[9]||e[10]!==Ue[10]||e[11]!==Ue[11])}var Yd=Promise.resolve(),$d={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}},aV=Object.freeze(Object.keys($d));async function k_(t){let e=Yd,r;Yd=new Promise(n=>{r=n}),await e;try{return await t()}finally{r()}}async function em(t,e={}){let r=kn(e);return await k_(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Xd(t)){let o=await Wc(r);return Qd(o.KTX2File,t,e)}let{BasisFile:n}=await Jc(r);return Kc(n,t,e)}switch(e.basis.module){case"encoder":let n=await Wc(r);switch(e.basis.containerFormat){case"ktx2":return Qd(n.KTX2File,t,e);case"basis":default:return Kc(n.BasisFile,t,e)}case"transcoder":default:let{BasisFile:o}=await Jc(r);return Kc(o,t,e)}})}function Kc(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");let o=n.getNumImages(),s=[];for(let i=0;i<o;i++){let a=n.getNumLevels(i),c=[];for(let l=0;l<a;l++)c.push(j_(n,i,l,r));s.push(c)}return s}finally{n.close(),n.delete()}}function j_(t,e,r,n){let o=t.getImageWidth(e,r),s=t.getImageHeight(e,r),i=t.getHasAlpha(),{compressed:a,format:c,basisFormat:l,textureFormat:f}=tm(n,i),u=t.getImageTranscodedSizeInBytes(e,r,l),h=new Uint8Array(u);if(!t.transcodeImage(h,e,r,l,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:o,height:s,data:h,compressed:a,...c!==void 0?{format:c}:{},...f!==void 0?{textureFormat:f}:{},hasAlpha:i}}function Qd(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");let o=n.getLevels(),s=[];for(let i=0;i<o;i++)s.push(q_(n,i,r));return[s]}finally{n.close(),n.delete()}}function q_(t,e,r){let{alphaFlag:n,height:o,width:s}=t.getImageLevelInfo(e,0,0),{compressed:i,format:a,basisFormat:c,textureFormat:l}=tm(r,n),f=t.getImageTranscodedSizeInBytes(e,0,0,c),u=new Uint8Array(f);if(!t.transcodeImage(u,e,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:s,height:o,data:u,compressed:i,...a!==void 0?{format:a}:{},...l!==void 0?{textureFormat:l}:{},levelSize:f,hasAlpha:n}}function tm(t,e){let r=t.basis?.format||"auto";r==="auto"&&(r=t.basis?.supportedTextureFormats?Zd(t.basis.supportedTextureFormats):Zd()),typeof r=="object"&&(r=e?r.alpha:r.noAlpha);let n=r.toLowerCase(),o=$d[n];if(!o)throw new Error(`Unknown Basis format ${r}`);return o}function Zd(t=Kd()){let e=new Set(t);return Qr(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":Qr(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:Qr(e,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:Qr(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:Qr(e,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":e.has("etc1-rgb-unorm-webgl")?"etc1":Qr(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function Qr(t,e){return e.some(r=>t.has(r))}var rm={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:qd,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},Xc={...rm,parse:em};var le=U(Yc(),1);var $;(function(t){t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ONE=1]="ONE",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST=9728]="NEAREST",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})($||($={}));function sm(t){return{addressModeU:om(t.wrapS),addressModeV:om(t.wrapT),magFilter:J_(t.magFilter),...W_(t.minFilter)}}function om(t){switch(t){case $.CLAMP_TO_EDGE:return"clamp-to-edge";case $.REPEAT:return"repeat";case $.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function J_(t){switch(t){case $.NEAREST:return"nearest";case $.LINEAR:return"linear";default:return}}function W_(t){switch(t){case $.NEAREST:return{minFilter:"nearest"};case $.LINEAR:return{minFilter:"linear"};case $.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case $.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case $.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case $.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}var im=[xe("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),xe("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),xe("normal","pbr_normalSampler","normalTexture",["normalTexture"]),xe("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),xe("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),xe("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),xe("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),xe("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),xe("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),xe("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),xe("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),xe("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),xe("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),xe("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),xe("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),xe("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),xe("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"])],K_=new Map(im.map(t=>[t.slot,t]));function xe(t,e,r,n){return{slot:t,binding:e,displayName:r,pathSegments:n,uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function am(){return im}function cm(t){let e=K_.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function lm(t){let e=t?.extensions?.KHR_texture_transform;return{offset:e?.offset?[e.offset[0],e.offset[1]]:[0,0],rotation:e?.rotation??0,scale:e?.scale?[e.scale[0],e.scale[1]]:[1,1]}}function Qc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function fm(t){let e=new k().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new k().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),n=new k().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(n))}function $c(t,e,r,n){let o={defines:{MANUAL_SRGB:!0,SRGB_FAST_APPROXIMATION:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};o.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:s}=n;return s&&(o.bindings.pbr_diffuseEnvSampler=s.diffuseEnvSampler.texture,o.bindings.pbr_specularEnvSampler=s.specularEnvSampler.texture,o.bindings.pbr_brdfLUT=s.brdfLutTexture.texture,o.uniforms.IBLenabled=!0,o.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(o.defines.PBR_DEBUG=!0,o.uniforms.scaleDiffBaseMR=[0,0,0,0],o.uniforms.scaleFGDSpec=[0,0,0,0]),r.NORMAL&&(o.defines.HAS_NORMALS=!0),r.TANGENT&&n?.useTangents&&(o.defines.HAS_TANGENTS=!0),r.TEXCOORD_0&&(o.defines.HAS_UV=!0),r.TEXCOORD_1&&(o.defines.HAS_UV_1=!0),r.JOINTS_0&&r.WEIGHTS_0&&(o.defines.HAS_SKIN=!0),r.COLOR_0&&(o.defines.HAS_COLORS=!0),n?.imageBasedLightingEnvironment&&(o.defines.USE_IBL=!0),n?.lights&&(o.defines.USE_LIGHTS=!0),e&&(n.validateAttributes!==!1&&X_(e,r),Q_(t,e,o,r,n.gltf)),o}function X_(t,e){let r=um(t,0);r.length>0&&!e.TEXCOORD_0&&le.log.warn(`glTF material uses ${r.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let n=um(t,1);if(n.length>0&&!e.TEXCOORD_1&&le.log.warn(`glTF material uses ${n.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),Boolean(t.unlit||t.extensions?.KHR_materials_unlit)||e.NORMAL)return;let s=t.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";le.log.warn(`glTF primitive is missing NORMAL while using ${s}; shading will fall back to geometric normals`)()}function um(t,e){let r=[];for(let n of am()){let o=Y_(t,n.pathSegments);o&&Qc(o)===e&&r.push(n.displayName)}return r}function Y_(t,e){let r=t;for(let n of e)if(r=r?.[n],!r)return null;return r}function Q_(t,e,r,n,o){if(r.uniforms.unlit=Boolean(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&eC(t,e.pbrMetallicRoughness,r,n,o),e.normalTexture){ye(t,e.normalTexture,"pbr_normalSampler",r,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"normal"});let{scale:s=1}=e.normalTexture;r.uniforms.normalScale=s}if(e.occlusionTexture){ye(t,e.occlusionTexture,"pbr_occlusionSampler",r,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"occlusion"});let{strength:s=1}=e.occlusionTexture;r.uniforms.occlusionStrength=s}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&ye(t,e.emissiveTexture,"pbr_emissiveSampler",r,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"emissive"}),tC(t,e.extensions,r,o,n),e.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{let{alphaCutoff:s=.5}=e;r.defines.ALPHA_CUTOFF=!0,r.uniforms.alphaCutoffEnabled=!0,r.uniforms.alphaCutoff=s;break}case"BLEND":le.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),Z_(r);break}}function Z_(t){t.parameters.blend=!0,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="src-alpha",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.SRC_ALPHA,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function $_(t){t.parameters.blend=!0,t.parameters.depthWriteEnabled=!1,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="one",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.depthMask=!1,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.ONE,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function eC(t,e,r,n,o){e.baseColorTexture&&ye(t,e.baseColorTexture,"pbr_baseColorSampler",r,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"baseColor"}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&ye(t,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",r,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"metallicRoughness"});let{metallicFactor:s=1,roughnessFactor:i=1}=e;r.uniforms.metallicRoughnessValues=[s,i]}function tC(t,e,r,n,o={}){e&&(rC(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=!0),nC(t,e.KHR_materials_specular,r,n,o),oC(e.KHR_materials_ior,r),sC(t,e.KHR_materials_transmission,r,n,o),iC(t,e.KHR_materials_volume,r,n,o),aC(t,e.KHR_materials_clearcoat,r,n,o),cC(t,e.KHR_materials_sheen,r,n,o),lC(t,e.KHR_materials_iridescence,r,n,o),fC(t,e.KHR_materials_anisotropy,r,n,o),uC(e.KHR_materials_emissive_strength,r))}function rC(t){return Boolean(t.KHR_materials_specular||t.KHR_materials_ior||t.KHR_materials_transmission||t.KHR_materials_volume||t.KHR_materials_clearcoat||t.KHR_materials_sheen||t.KHR_materials_iridescence||t.KHR_materials_anisotropy)}function nC(t,e,r,n,o={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&ye(t,e.specularColorTexture,"pbr_specularColorSampler",r,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularColor"}),e.specularTexture&&ye(t,e.specularTexture,"pbr_specularIntensitySampler",r,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularIntensity"}))}function oC(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior)}function sC(t,e,r,n,o={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&ye(t,e.transmissionTexture,"pbr_transmissionSampler",r,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(le.log.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),$_(r)))}function iC(t,e,r,n,o={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&ye(t,e.thicknessTexture,"pbr_thicknessSampler",r,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor))}function aC(t,e,r,n,o={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&ye(t,e.clearcoatTexture,"pbr_clearcoatSampler",r,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&ye(t,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",r,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&ye(t,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",r,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:n,attributes:o,textureTransformSlot:"clearcoatNormal"}))}function cC(t,e,r,n,o={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&ye(t,e.sheenColorTexture,"pbr_sheenColorSampler",r,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&ye(t,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",r,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenRoughness"}))}function lC(t,e,r,n,o={}){e&&(e.iridescenceFactor!==void 0&&(r.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(r.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(r.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&ye(t,e.iridescenceTexture,"pbr_iridescenceSampler",r,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&ye(t,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",r,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"iridescenceThickness"}))}function fC(t,e,r,n,o={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&ye(t,e.anisotropyTexture,"pbr_anisotropySampler",r,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"anisotropy"}))}function uC(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength)}function ye(t,e,r,n,o={}){let{featureOptions:s={},gltf:i,attributes:a={},textureTransformSlot:c}=o,{define:l,enabledUniformName:f}=s,u=Qc(e);if(u>1){le.log.warn(`Skipping ${String(r)} because ${u} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(u===1&&!a.TEXCOORD_1){le.log.warn(`Skipping ${String(r)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let h=hC(e,i),p=h.texture?.source?.image;if(!p){le.log.warn(`Skipping unresolved glTF texture for ${String(r)}`)();return}let d={wrapS:10497,wrapT:10497,minFilter:9729,magFilter:9729,...h?.texture?.sampler},g={id:h.uniformName||h.id,sampler:sm(d)},m;if(p.compressed)m=dC(t,p,g);else{let{width:y,height:b}=t.getExternalImageSize(p);m=t.createTexture({...g,width:y,height:b,data:p})}if(n.bindings[r]=m,l&&(n.defines[l]=!0),f&&(n.uniforms[f]=!0),c){let y=cm(c);n.uniforms[y.uvSetUniform]=u,n.uniforms[y.uvTransformUniform]=fm(lm(e))}n.generatedTextures.push(m)}function hC(t,e){if(t.texture||t.index===void 0||!e?.textures)return t;let r=e.textures[t.index];return r?"texture"in r&&r.texture?{...r,...t,texture:r.texture}:"source"in r?{...t,texture:r}:t:t}function Zc(t,e){return t.createTexture({...e,format:"rgba8unorm",width:1,height:1,mipLevels:1})}function hm(t){return t.textureFormat}function pC(t,e,r){let{blockWidth:n=1,blockHeight:o=1}=le.textureFormatDecoder.getInfo(r),s=1;for(let i=1;;i++){let a=Math.max(1,t>>i),c=Math.max(1,e>>i);if(a<n||c<o)break;s++}return s}function dC(t,e,r){let n;if(Array.isArray(e.data)&&e.data[0]?.data?n=e.data:"mipmaps"in e&&Array.isArray(e.mipmaps)?n=e.mipmaps:n=[],n.length===0||!n[0]?.data)return le.log.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),Zc(t,r);let o=n[0],s=o.width??e.width??0,i=o.height??e.height??0;if(s<=0||i<=0)return le.log.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),Zc(t,r);let a=hm(o);if(!a)return le.log.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),Zc(t,r);let c=pC(s,i,a),l=Math.min(n.length,c),f=1;for(let h=1;h<l;h++){let p=n[h];if(!p.data||p.width<=0||p.height<=0){le.log.warn(`createCompressedTexture: mip level ${h} has invalid data/dimensions, truncating`)();break}let d=hm(p);if(d&&d!==a){le.log.warn(`createCompressedTexture: mip level ${h} format '${d}' differs from base '${a}', truncating`)();break}let g=Math.max(1,s>>h),m=Math.max(1,i>>h);if(p.width!==g||p.height!==m){le.log.warn(`createCompressedTexture: mip level ${h} dimensions ${p.width}x${p.height} don't match expected ${g}x${m}, truncating`)();break}f++}let u=t.createTexture({...r,format:a,usage:le.Texture.TEXTURE|le.Texture.COPY_DST,width:s,height:i,mipLevels:f,data:o.data});for(let h=1;h<f;h++)u.writeData(n[h].data,{width:n[h].width,height:n[h].height,mipLevel:h});return u}function pm(t,e=!0){return t??e}function dm(t=[0,0,0],e=!0){return e?t.map(r=>r/255):[...t]}var gm=U(Yc(),1);var el=`precision highp int;
26
+ `},e.modules=[...e.modules,Ud],e}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(e){let{fadeTrail:r,trailLength:n,currentTime:o}=this.props,s={fadeTrail:r,trailLength:n,currentTime:o};this.state.model.shaderInputs.setProps({trips:s}),super.draw(e)}};fo.layerName="TripsLayer";fo.defaultProps=v_;var Gd=fo;var Vd=D(as(),1),Hd=D(nt(),1);var ze=D(as(),1),Xs=D(nt(),1),uo=D(Ke(),1);var R_=10;function w_(t,e){let r;return t==null?r=e:typeof t=="object"?r={...t,coverage:e}:r={getHexagon:t,coverage:e},r}var L_={...uo.PolygonLayer.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:t=>t.hexagon},extruded:!0},Vt=class extends Xs.CompositeLayer{initializeState(){Vt._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:r}){if(e.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let n=this._calculateH3DataProps();this.setState(n)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,r=!1,n=!1,{iterable:o,objectInfo:s}=(0,Xs.createIterable)(this.props.data);for(let i of o){s.index++;let a=this.props.getHexagon(i,s),c=(0,ze.getResolution)(a);if(e<0){if(e=c,!this.props.highPrecision)break}else if(e!==c){n=!0;break}if((0,ze.isPentagon)(a)){r=!0;break}}return{resolution:e,edgeLengthKM:e>=0?(0,ze.getHexagonEdgeLengthAvg)(e,"km"):0,hasMultipleRes:n,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:e,hasPentagon:r,hasMultipleRes:n}=this.state,{viewport:o}=this.context;return Boolean(o?.resolution)||n||r||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:n,centerHex:o}=this.state;if(r<0)return;let s=this.props.centerHexagon||(0,ze.latLngToCell)(e.latitude,e.longitude,r);if(o===s)return;if(o)try{if((0,ze.gridDistance)(o,s)*n<R_)return}catch{}let{unitsPerMeter:i}=e.distanceScales,a=$a(s),[c,l]=(0,ze.cellToLatLng)(s),[f,u]=e.projectFlat([l,c]);a=a.map(h=>{let p=e.projectFlat(h);return[(p[0]-f)/i[0],(p[1]-u)/i[1]]}),this.setState({centerHex:s,vertices:a})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:e,material:r,coverage:n,extruded:o,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:h,getElevation:p,getLineColor:d,getLineWidth:g,transitions:m,updateTriggers:y}=this.props;return{elevationScale:e,extruded:o,coverage:n,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:r,getElevation:p,getFillColor:h,getLineColor:d,getLineWidth:g,transitions:m,updateTriggers:{getFillColor:y.getFillColor,getElevation:y.getElevation,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}}_renderPolygonLayer(){let{data:e,getHexagon:r,updateTriggers:n,coverage:o}=this.props,s=this.getSubLayerClass("hexagon-cell-hifi",uo.PolygonLayer),i=this._getForwardProps();return i.updateTriggers.getPolygon=w_(n.getHexagon,o),new s(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(a,c)=>{let l=r(a,c);return Ss($a(l,o))}})}_renderColumnLayer(){let{data:e,getHexagon:r,updateTriggers:n}=this.props,o=this.getSubLayerClass("hexagon-cell",uo.ColumnLayer),s=this._getForwardProps();return s.updateTriggers.getPosition=n.getHexagon,new o(s,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:s.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:$h.bind(null,r)})}};Vt.defaultProps=L_;Vt.layerName="H3HexagonLayer";Vt._checkH3Lib=()=>{};var Ys=Vt;var F_={getHexagons:{type:"accessor",value:t=>t.hexagons}},ho=class extends De{initializeState(){Ys._checkH3Lib()}updateState({props:e,changeFlags:r}){if(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagons){let{data:n,getHexagons:o}=e,s=[],{iterable:i,objectInfo:a}=(0,Hd.createIterable)(n);for(let c of i){a.index++;let l=o(c,a),f=(0,Vd.cellsToMultiPolygon)(l,!0);for(let u of f){for(let h of u)Ms(h);s.push(this.getSubLayerRow({polygon:u},c,a.index))}}this.setState({polygons:s})}}indexToBounds(){let{getElevation:e,getFillColor:r,getLineColor:n,getLineWidth:o}=this.props;return{data:this.state.polygons,getPolygon:s=>s.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(r),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(o)}}};ho.layerName="H3ClusterLayer";ho.defaultProps=F_;var zd=ho;var U0=D(jc(),1),qt=D(nt(),1),D0=D(Ke(),1),G0=D(Qs(),1);var le=D(qc(),1);var $;(function(t){t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ONE=1]="ONE",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST=9728]="NEAREST",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})($||($={}));function Wd(t){return{addressModeU:Jd(t.wrapS),addressModeV:Jd(t.wrapT),magFilter:P_(t.magFilter),...N_(t.minFilter)}}function Jd(t){switch(t){case $.CLAMP_TO_EDGE:return"clamp-to-edge";case $.REPEAT:return"repeat";case $.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function P_(t){switch(t){case $.NEAREST:return"nearest";case $.LINEAR:return"linear";default:return}}function N_(t){switch(t){case $.NEAREST:return{minFilter:"nearest"};case $.LINEAR:return{minFilter:"linear"};case $.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case $.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case $.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case $.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}var Kd=[xe("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),xe("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),xe("normal","pbr_normalSampler","normalTexture",["normalTexture"]),xe("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),xe("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),xe("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),xe("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),xe("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),xe("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),xe("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),xe("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),xe("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),xe("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),xe("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),xe("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),xe("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),xe("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"])],O_=new Map(Kd.map(t=>[t.slot,t]));function xe(t,e,r,n){return{slot:t,binding:e,displayName:r,pathSegments:n,uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function Xd(){return Kd}function Yd(t){let e=O_.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function Qd(t){let e=t?.extensions?.KHR_texture_transform;return{offset:e?.offset?[e.offset[0],e.offset[1]]:[0,0],rotation:e?.rotation??0,scale:e?.scale?[e.scale[0],e.scale[1]]:[1,1]}}function Jc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function Zd(t){let e=new k().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new k().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),n=new k().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(n))}function Kc(t,e,r,n){let o={defines:{MANUAL_SRGB:!0,SRGB_FAST_APPROXIMATION:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};o.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:s}=n;return s&&(o.bindings.pbr_diffuseEnvSampler=s.diffuseEnvSampler.texture,o.bindings.pbr_specularEnvSampler=s.specularEnvSampler.texture,o.bindings.pbr_brdfLUT=s.brdfLutTexture.texture,o.uniforms.IBLenabled=!0,o.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(o.defines.PBR_DEBUG=!0,o.uniforms.scaleDiffBaseMR=[0,0,0,0],o.uniforms.scaleFGDSpec=[0,0,0,0]),r.NORMAL&&(o.defines.HAS_NORMALS=!0),r.TANGENT&&n?.useTangents&&(o.defines.HAS_TANGENTS=!0),r.TEXCOORD_0&&(o.defines.HAS_UV=!0),r.TEXCOORD_1&&(o.defines.HAS_UV_1=!0),r.JOINTS_0&&r.WEIGHTS_0&&(o.defines.HAS_SKIN=!0),r.COLOR_0&&(o.defines.HAS_COLORS=!0),n?.imageBasedLightingEnvironment&&(o.defines.USE_IBL=!0),n?.lights&&(o.defines.USE_LIGHTS=!0),e&&(n.validateAttributes!==!1&&U_(e,r),G_(t,e,o,r,n.gltf)),o}function U_(t,e){let r=$d(t,0);r.length>0&&!e.TEXCOORD_0&&le.log.warn(`glTF material uses ${r.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let n=$d(t,1);if(n.length>0&&!e.TEXCOORD_1&&le.log.warn(`glTF material uses ${n.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),Boolean(t.unlit||t.extensions?.KHR_materials_unlit)||e.NORMAL)return;let s=t.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";le.log.warn(`glTF primitive is missing NORMAL while using ${s}; shading will fall back to geometric normals`)()}function $d(t,e){let r=[];for(let n of Xd()){let o=D_(t,n.pathSegments);o&&Jc(o)===e&&r.push(n.displayName)}return r}function D_(t,e){let r=t;for(let n of e)if(r=r?.[n],!r)return null;return r}function G_(t,e,r,n,o){if(r.uniforms.unlit=Boolean(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&z_(t,e.pbrMetallicRoughness,r,n,o),e.normalTexture){ye(t,e.normalTexture,"pbr_normalSampler",r,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"normal"});let{scale:s=1}=e.normalTexture;r.uniforms.normalScale=s}if(e.occlusionTexture){ye(t,e.occlusionTexture,"pbr_occlusionSampler",r,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"occlusion"});let{strength:s=1}=e.occlusionTexture;r.uniforms.occlusionStrength=s}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&ye(t,e.emissiveTexture,"pbr_emissiveSampler",r,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"emissive"}),k_(t,e.extensions,r,o,n),e.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{let{alphaCutoff:s=.5}=e;r.defines.ALPHA_CUTOFF=!0,r.uniforms.alphaCutoffEnabled=!0,r.uniforms.alphaCutoff=s;break}case"BLEND":le.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),V_(r);break}}function V_(t){t.parameters.blend=!0,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="src-alpha",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.SRC_ALPHA,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function H_(t){t.parameters.blend=!0,t.parameters.depthWriteEnabled=!1,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="one",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.depthMask=!1,t.glParameters.blendEquation=$.FUNC_ADD,t.glParameters.blendFunc=[$.ONE,$.ONE_MINUS_SRC_ALPHA,$.ONE,$.ONE_MINUS_SRC_ALPHA]}function z_(t,e,r,n,o){e.baseColorTexture&&ye(t,e.baseColorTexture,"pbr_baseColorSampler",r,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"baseColor"}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&ye(t,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",r,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"metallicRoughness"});let{metallicFactor:s=1,roughnessFactor:i=1}=e;r.uniforms.metallicRoughnessValues=[s,i]}function k_(t,e,r,n,o={}){e&&(j_(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=!0),q_(t,e.KHR_materials_specular,r,n,o),J_(e.KHR_materials_ior,r),W_(t,e.KHR_materials_transmission,r,n,o),K_(t,e.KHR_materials_volume,r,n,o),X_(t,e.KHR_materials_clearcoat,r,n,o),Y_(t,e.KHR_materials_sheen,r,n,o),Q_(t,e.KHR_materials_iridescence,r,n,o),Z_(t,e.KHR_materials_anisotropy,r,n,o),$_(e.KHR_materials_emissive_strength,r))}function j_(t){return Boolean(t.KHR_materials_specular||t.KHR_materials_ior||t.KHR_materials_transmission||t.KHR_materials_volume||t.KHR_materials_clearcoat||t.KHR_materials_sheen||t.KHR_materials_iridescence||t.KHR_materials_anisotropy)}function q_(t,e,r,n,o={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&ye(t,e.specularColorTexture,"pbr_specularColorSampler",r,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularColor"}),e.specularTexture&&ye(t,e.specularTexture,"pbr_specularIntensitySampler",r,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularIntensity"}))}function J_(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior)}function W_(t,e,r,n,o={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&ye(t,e.transmissionTexture,"pbr_transmissionSampler",r,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(le.log.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),H_(r)))}function K_(t,e,r,n,o={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&ye(t,e.thicknessTexture,"pbr_thicknessSampler",r,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor))}function X_(t,e,r,n,o={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&ye(t,e.clearcoatTexture,"pbr_clearcoatSampler",r,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&ye(t,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",r,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&ye(t,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",r,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:n,attributes:o,textureTransformSlot:"clearcoatNormal"}))}function Y_(t,e,r,n,o={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&ye(t,e.sheenColorTexture,"pbr_sheenColorSampler",r,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&ye(t,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",r,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenRoughness"}))}function Q_(t,e,r,n,o={}){e&&(e.iridescenceFactor!==void 0&&(r.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(r.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(r.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&ye(t,e.iridescenceTexture,"pbr_iridescenceSampler",r,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&ye(t,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",r,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"iridescenceThickness"}))}function Z_(t,e,r,n,o={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&ye(t,e.anisotropyTexture,"pbr_anisotropySampler",r,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"anisotropy"}))}function $_(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength)}function ye(t,e,r,n,o={}){let{featureOptions:s={},gltf:i,attributes:a={},textureTransformSlot:c}=o,{define:l,enabledUniformName:f}=s,u=Jc(e);if(u>1){le.log.warn(`Skipping ${String(r)} because ${u} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(u===1&&!a.TEXCOORD_1){le.log.warn(`Skipping ${String(r)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let h=eC(e,i),p=h.texture?.source?.image;if(!p){le.log.warn(`Skipping unresolved glTF texture for ${String(r)}`)();return}let d={wrapS:10497,wrapT:10497,minFilter:9729,magFilter:9729,...h?.texture?.sampler},g={id:h.uniformName||h.id,sampler:Wd(d)},m;if(p.compressed)m=rC(t,p,g);else{let{width:y,height:b}=t.getExternalImageSize(p);m=t.createTexture({...g,width:y,height:b,data:p})}if(n.bindings[r]=m,l&&(n.defines[l]=!0),f&&(n.uniforms[f]=!0),c){let y=Yd(c);n.uniforms[y.uvSetUniform]=u,n.uniforms[y.uvTransformUniform]=Zd(Qd(e))}n.generatedTextures.push(m)}function eC(t,e){if(t.texture||t.index===void 0||!e?.textures)return t;let r=e.textures[t.index];return r?"texture"in r&&r.texture?{...r,...t,texture:r.texture}:"source"in r?{...t,texture:r}:t:t}function Wc(t,e){return t.createTexture({...e,format:"rgba8unorm",width:1,height:1,mipLevels:1})}function em(t){return t.textureFormat}function tC(t,e,r){let{blockWidth:n=1,blockHeight:o=1}=le.textureFormatDecoder.getInfo(r),s=1;for(let i=1;;i++){let a=Math.max(1,t>>i),c=Math.max(1,e>>i);if(a<n||c<o)break;s++}return s}function rC(t,e,r){let n;if(Array.isArray(e.data)&&e.data[0]?.data?n=e.data:"mipmaps"in e&&Array.isArray(e.mipmaps)?n=e.mipmaps:n=[],n.length===0||!n[0]?.data)return le.log.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),Wc(t,r);let o=n[0],s=o.width??e.width??0,i=o.height??e.height??0;if(s<=0||i<=0)return le.log.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),Wc(t,r);let a=em(o);if(!a)return le.log.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),Wc(t,r);let c=tC(s,i,a),l=Math.min(n.length,c),f=1;for(let h=1;h<l;h++){let p=n[h];if(!p.data||p.width<=0||p.height<=0){le.log.warn(`createCompressedTexture: mip level ${h} has invalid data/dimensions, truncating`)();break}let d=em(p);if(d&&d!==a){le.log.warn(`createCompressedTexture: mip level ${h} format '${d}' differs from base '${a}', truncating`)();break}let g=Math.max(1,s>>h),m=Math.max(1,i>>h);if(p.width!==g||p.height!==m){le.log.warn(`createCompressedTexture: mip level ${h} dimensions ${p.width}x${p.height} don't match expected ${g}x${m}, truncating`)();break}f++}let u=t.createTexture({...r,format:a,usage:le.Texture.TEXTURE|le.Texture.COPY_DST,width:s,height:i,mipLevels:f,data:o.data});for(let h=1;h<f;h++)u.writeData(n[h].data,{width:n[h].width,height:n[h].height,mipLevel:h});return u}function tm(t,e=!0){return t??e}function rm(t=[0,0,0],e=!0){return e?t.map(r=>r/255):[...t]}var om=D(qc(),1);var Xc=`precision highp int;
27
27
 
28
28
  // #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
29
29
  struct AmbientLight {
@@ -103,7 +103,7 @@ float getSpotLightAttenuation(SpotLight spotLight, vec3 positionWorldspace) {
103
103
  }
104
104
 
105
105
  // #endif
106
- `;var mm=`// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
106
+ `;var nm=`// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
107
107
  const MAX_LIGHTS: i32 = 5;
108
108
 
109
109
  struct AmbientLight {
@@ -182,7 +182,7 @@ fn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>)
182
182
  );
183
183
  return distanceAttenuation / max(coneFactor, 0.0001);
184
184
  }
185
- `;var dr=5,mC={color:"vec3<f32>",position:"vec3<f32>",direction:"vec3<f32>",attenuation:"vec3<f32>",coneCos:"vec2<f32>"},Am={props:{},uniforms:{},name:"lighting",defines:{},uniformTypes:{enabled:"i32",directionalLightCount:"i32",pointLightCount:"i32",spotLightCount:"i32",ambientColor:"vec3<f32>",lights:[mC,dr]},defaultUniforms:ei(),bindingLayout:[{name:"lighting",group:2}],firstBindingSlot:0,source:mm,vs:el,fs:el,getUniforms:gC};function gC(t,e={}){if(t=t&&{...t},!t)return ei();t.lights&&(t={...t,...xC(t.lights),lights:void 0});let{useByteColors:r,ambientLight:n,pointLights:o,spotLights:s,directionalLights:i}=t||{};if(!(n||o&&o.length>0||s&&s.length>0||i&&i.length>0))return{...ei(),enabled:0};let c={...ei(),...AC({useByteColors:r,ambientLight:n,pointLights:o,spotLights:s,directionalLights:i})};return t.enabled!==void 0&&(c.enabled=t.enabled?1:0),c}function AC({useByteColors:t,ambientLight:e,pointLights:r=[],spotLights:n=[],directionalLights:o=[]}){let s=xm(),i=0,a=0,c=0,l=0;for(let f of r){if(i>=dr)break;s[i]={...s[i],color:$s(f,t),position:f.position,attenuation:f.attenuation||[1,0,0]},i++,a++}for(let f of n){if(i>=dr)break;s[i]={...s[i],color:$s(f,t),position:f.position,direction:f.direction,attenuation:f.attenuation||[1,0,0],coneCos:bC(f)},i++,c++}for(let f of o){if(i>=dr)break;s[i]={...s[i],color:$s(f,t),direction:f.direction},i++,l++}return r.length+n.length+o.length>dr&&gm.log.warn(`MAX_LIGHTS exceeded, truncating to ${dr}`)(),{ambientColor:$s(e,t),directionalLightCount:l,pointLightCount:a,spotLightCount:c,lights:s}}function xC(t){let e={pointLights:[],spotLights:[],directionalLights:[]};for(let r of t||[])switch(r.type){case"ambient":e.ambientLight=r;break;case"directional":e.directionalLights?.push(r);break;case"point":e.pointLights?.push(r);break;case"spot":e.spotLights?.push(r);break;default:}return e}function $s(t={},e){let{color:r=[0,0,0],intensity:n=1}=t;return dm(r,pm(e,!0)).map(s=>s*n)}function ei(){return{enabled:1,directionalLightCount:0,pointLightCount:0,spotLightCount:0,ambientColor:[.1,.1,.1],lights:xm()}}function xm(){return Array.from({length:dr},()=>yC())}function yC(){return{color:[1,1,1],position:[1,1,2],direction:[1,1,1],attenuation:[1,0,0],coneCos:[1,0]}}function bC(t){let e=t.innerConeAngle??0,r=t.outerConeAngle??Math.PI/4;return[Math.cos(e),Math.cos(r)]}var TC=`#ifdef USE_IBL
185
+ `;var dr=5,nC={color:"vec3<f32>",position:"vec3<f32>",direction:"vec3<f32>",attenuation:"vec3<f32>",coneCos:"vec2<f32>"},sm={props:{},uniforms:{},name:"lighting",defines:{},uniformTypes:{enabled:"i32",directionalLightCount:"i32",pointLightCount:"i32",spotLightCount:"i32",ambientColor:"vec3<f32>",lights:[nC,dr]},defaultUniforms:$s(),bindingLayout:[{name:"lighting",group:2}],firstBindingSlot:0,source:nm,vs:Xc,fs:Xc,getUniforms:oC};function oC(t,e={}){if(t=t&&{...t},!t)return $s();t.lights&&(t={...t,...iC(t.lights),lights:void 0});let{useByteColors:r,ambientLight:n,pointLights:o,spotLights:s,directionalLights:i}=t||{};if(!(n||o&&o.length>0||s&&s.length>0||i&&i.length>0))return{...$s(),enabled:0};let c={...$s(),...sC({useByteColors:r,ambientLight:n,pointLights:o,spotLights:s,directionalLights:i})};return t.enabled!==void 0&&(c.enabled=t.enabled?1:0),c}function sC({useByteColors:t,ambientLight:e,pointLights:r=[],spotLights:n=[],directionalLights:o=[]}){let s=im(),i=0,a=0,c=0,l=0;for(let f of r){if(i>=dr)break;s[i]={...s[i],color:Zs(f,t),position:f.position,attenuation:f.attenuation||[1,0,0]},i++,a++}for(let f of n){if(i>=dr)break;s[i]={...s[i],color:Zs(f,t),position:f.position,direction:f.direction,attenuation:f.attenuation||[1,0,0],coneCos:cC(f)},i++,c++}for(let f of o){if(i>=dr)break;s[i]={...s[i],color:Zs(f,t),direction:f.direction},i++,l++}return r.length+n.length+o.length>dr&&om.log.warn(`MAX_LIGHTS exceeded, truncating to ${dr}`)(),{ambientColor:Zs(e,t),directionalLightCount:l,pointLightCount:a,spotLightCount:c,lights:s}}function iC(t){let e={pointLights:[],spotLights:[],directionalLights:[]};for(let r of t||[])switch(r.type){case"ambient":e.ambientLight=r;break;case"directional":e.directionalLights?.push(r);break;case"point":e.pointLights?.push(r);break;case"spot":e.spotLights?.push(r);break;default:}return e}function Zs(t={},e){let{color:r=[0,0,0],intensity:n=1}=t;return rm(r,tm(e,!0)).map(s=>s*n)}function $s(){return{enabled:1,directionalLightCount:0,pointLightCount:0,spotLightCount:0,ambientColor:[.1,.1,.1],lights:im()}}function im(){return Array.from({length:dr},()=>aC())}function aC(){return{color:[1,1,1],position:[1,1,2],direction:[1,1,1],attenuation:[1,0,0],coneCos:[1,0]}}function cC(t){let e=t.innerConeAngle??0,r=t.outerConeAngle??Math.PI/4;return[Math.cos(e),Math.cos(r)]}var lC=`#ifdef USE_IBL
186
186
  @group(2) @binding(auto) var pbr_diffuseEnvSampler: texture_cube<f32>;
187
187
  @group(2) @binding(auto) var pbr_diffuseEnvSamplerSampler: sampler;
188
188
  @group(2) @binding(auto) var pbr_specularEnvSampler: texture_cube<f32>;
@@ -190,12 +190,12 @@ fn getSpotLightAttenuation(spotLight: SpotLight, positionWorldspace: vec3<f32>)
190
190
  @group(2) @binding(auto) var pbr_brdfLUT: texture_2d<f32>;
191
191
  @group(2) @binding(auto) var pbr_brdfLUTSampler: sampler;
192
192
  #endif
193
- `,ym=`#ifdef USE_IBL
193
+ `,am=`#ifdef USE_IBL
194
194
  uniform samplerCube pbr_diffuseEnvSampler;
195
195
  uniform samplerCube pbr_specularEnvSampler;
196
196
  uniform sampler2D pbr_brdfLUT;
197
197
  #endif
198
- `,bm={name:"ibl",firstBindingSlot:32,bindingLayout:[{name:"pbr_diffuseEnvSampler",group:2},{name:"pbr_specularEnvSampler",group:2},{name:"pbr_brdfLUT",group:2}],source:TC,vs:ym,fs:ym};var Tm=`out vec3 pbr_vPosition;
198
+ `,cm={name:"ibl",firstBindingSlot:32,bindingLayout:[{name:"pbr_diffuseEnvSampler",group:2},{name:"pbr_specularEnvSampler",group:2},{name:"pbr_brdfLUT",group:2}],source:lC,vs:am,fs:am};var lm=`out vec3 pbr_vPosition;
199
199
  out vec2 pbr_vUV0;
200
200
  out vec2 pbr_vUV1;
201
201
 
@@ -237,7 +237,7 @@ void pbr_setPositionNormalTangentUV(
237
237
 
238
238
  pbr_vUV1 = uv1;
239
239
  }
240
- `,Mm=`precision highp float;
240
+ `,fm=`precision highp float;
241
241
 
242
242
  layout(std140) uniform pbrMaterialUniforms {
243
243
  // Material is unlit
@@ -1285,7 +1285,7 @@ vec4 pbr_filterColor(vec4 colorUnused)
1285
1285
  float alpha = clamp(baseColor.a * (1.0 - transmission), 0.0, 1.0);
1286
1286
  return vec4(pow(color,vec3(1.0/2.2)), alpha);
1287
1287
  }
1288
- `;var Sm=`struct PBRFragmentInputs {
1288
+ `;var um=`struct PBRFragmentInputs {
1289
1289
  pbr_vPosition: vec3f,
1290
1290
  pbr_vUV0: vec2f,
1291
1291
  pbr_vUV1: vec2f,
@@ -2473,13 +2473,13 @@ fn pbr_filterColor(colorUnused: vec4<f32>) -> vec4<f32> {
2473
2473
  let alpha = clamp(baseColor.a * (1.0 - transmission), 0.0, 1.0);
2474
2474
  return vec4<f32>(pow(color, vec3<f32>(1.0 / 2.2)), alpha);
2475
2475
  }
2476
- `;var Em=`layout(std140) uniform pbrProjectionUniforms {
2476
+ `;var hm=`layout(std140) uniform pbrProjectionUniforms {
2477
2477
  mat4 modelViewProjectionMatrix;
2478
2478
  mat4 modelMatrix;
2479
2479
  mat4 normalMatrix;
2480
2480
  vec3 camera;
2481
2481
  } pbrProjection;
2482
- `,MC=`struct pbrProjectionUniforms {
2482
+ `,fC=`struct pbrProjectionUniforms {
2483
2483
  modelViewProjectionMatrix: mat4x4<f32>,
2484
2484
  modelMatrix: mat4x4<f32>,
2485
2485
  normalMatrix: mat4x4<f32>,
@@ -2487,10 +2487,10 @@ fn pbr_filterColor(colorUnused: vec4<f32>) -> vec4<f32> {
2487
2487
  };
2488
2488
 
2489
2489
  @group(0) @binding(auto) var<uniform> pbrProjection: pbrProjectionUniforms;
2490
- `,_m={name:"pbrProjection",bindingLayout:[{name:"pbrProjection",group:0}],source:MC,vs:Em,fs:Em,getUniforms:t=>t,uniformTypes:{modelViewProjectionMatrix:"mat4x4<f32>",modelMatrix:"mat4x4<f32>",normalMatrix:"mat4x4<f32>",camera:"vec3<f32>"}};var tl={props:{},uniforms:{},defaultUniforms:{unlit:!1,baseColorMapEnabled:!1,baseColorFactor:[1,1,1,1],normalMapEnabled:!1,normalScale:1,emissiveMapEnabled:!1,emissiveFactor:[0,0,0],metallicRoughnessValues:[1,1],metallicRoughnessMapEnabled:!1,occlusionMapEnabled:!1,occlusionStrength:1,alphaCutoffEnabled:!1,alphaCutoff:.5,IBLenabled:!1,scaleIBLAmbient:[1,1],scaleDiffBaseMR:[0,0,0,0],scaleFGDSpec:[0,0,0,0],specularColorFactor:[1,1,1],specularIntensityFactor:1,specularColorMapEnabled:!1,specularIntensityMapEnabled:!1,ior:1.5,transmissionFactor:0,transmissionMapEnabled:!1,thicknessFactor:0,attenuationDistance:1e9,attenuationColor:[1,1,1],clearcoatFactor:0,clearcoatRoughnessFactor:0,clearcoatMapEnabled:!1,clearcoatRoughnessMapEnabled:!1,sheenColorFactor:[0,0,0],sheenRoughnessFactor:0,sheenColorMapEnabled:!1,sheenRoughnessMapEnabled:!1,iridescenceFactor:0,iridescenceIor:1.3,iridescenceThicknessRange:[100,400],iridescenceMapEnabled:!1,anisotropyStrength:0,anisotropyRotation:0,anisotropyDirection:[1,0],anisotropyMapEnabled:!1,emissiveStrength:1,baseColorUVSet:0,baseColorUVTransform:[1,0,0,0,1,0,0,0,1],metallicRoughnessUVSet:0,metallicRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],normalUVSet:0,normalUVTransform:[1,0,0,0,1,0,0,0,1],occlusionUVSet:0,occlusionUVTransform:[1,0,0,0,1,0,0,0,1],emissiveUVSet:0,emissiveUVTransform:[1,0,0,0,1,0,0,0,1],specularColorUVSet:0,specularColorUVTransform:[1,0,0,0,1,0,0,0,1],specularIntensityUVSet:0,specularIntensityUVTransform:[1,0,0,0,1,0,0,0,1],transmissionUVSet:0,transmissionUVTransform:[1,0,0,0,1,0,0,0,1],thicknessUVSet:0,thicknessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatUVSet:0,clearcoatUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatRoughnessUVSet:0,clearcoatRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatNormalUVSet:0,clearcoatNormalUVTransform:[1,0,0,0,1,0,0,0,1],sheenColorUVSet:0,sheenColorUVTransform:[1,0,0,0,1,0,0,0,1],sheenRoughnessUVSet:0,sheenRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceUVSet:0,iridescenceUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceThicknessUVSet:0,iridescenceThicknessUVTransform:[1,0,0,0,1,0,0,0,1],anisotropyUVSet:0,anisotropyUVTransform:[1,0,0,0,1,0,0,0,1]},name:"pbrMaterial",firstBindingSlot:0,bindingLayout:[{name:"pbrMaterial",group:3},{name:"pbr_baseColorSampler",group:3},{name:"pbr_normalSampler",group:3},{name:"pbr_emissiveSampler",group:3},{name:"pbr_metallicRoughnessSampler",group:3},{name:"pbr_occlusionSampler",group:3},{name:"pbr_specularColorSampler",group:3},{name:"pbr_specularIntensitySampler",group:3},{name:"pbr_transmissionSampler",group:3},{name:"pbr_thicknessSampler",group:3},{name:"pbr_clearcoatSampler",group:3},{name:"pbr_clearcoatRoughnessSampler",group:3},{name:"pbr_clearcoatNormalSampler",group:3},{name:"pbr_sheenColorSampler",group:3},{name:"pbr_sheenRoughnessSampler",group:3},{name:"pbr_iridescenceSampler",group:3},{name:"pbr_iridescenceThicknessSampler",group:3},{name:"pbr_anisotropySampler",group:3}],dependencies:[Am,bm,_m],source:Sm,vs:Tm,fs:Mm,defines:{LIGHTING_FRAGMENT:!0,HAS_NORMALMAP:!1,HAS_EMISSIVEMAP:!1,HAS_OCCLUSIONMAP:!1,HAS_BASECOLORMAP:!1,HAS_METALROUGHNESSMAP:!1,HAS_SPECULARCOLORMAP:!1,HAS_SPECULARINTENSITYMAP:!1,HAS_TRANSMISSIONMAP:!1,HAS_THICKNESSMAP:!1,HAS_CLEARCOATMAP:!1,HAS_CLEARCOATROUGHNESSMAP:!1,HAS_CLEARCOATNORMALMAP:!1,HAS_SHEENCOLORMAP:!1,HAS_SHEENROUGHNESSMAP:!1,HAS_IRIDESCENCEMAP:!1,HAS_IRIDESCENCETHICKNESSMAP:!1,HAS_ANISOTROPYMAP:!1,USE_MATERIAL_EXTENSIONS:!1,ALPHA_CUTOFF:!1,USE_IBL:!1,PBR_DEBUG:!1},getUniforms:t=>t,uniformTypes:{unlit:"i32",baseColorMapEnabled:"i32",baseColorFactor:"vec4<f32>",normalMapEnabled:"i32",normalScale:"f32",emissiveMapEnabled:"i32",emissiveFactor:"vec3<f32>",metallicRoughnessValues:"vec2<f32>",metallicRoughnessMapEnabled:"i32",occlusionMapEnabled:"i32",occlusionStrength:"f32",alphaCutoffEnabled:"i32",alphaCutoff:"f32",specularColorFactor:"vec3<f32>",specularIntensityFactor:"f32",specularColorMapEnabled:"i32",specularIntensityMapEnabled:"i32",ior:"f32",transmissionFactor:"f32",transmissionMapEnabled:"i32",thicknessFactor:"f32",attenuationDistance:"f32",attenuationColor:"vec3<f32>",clearcoatFactor:"f32",clearcoatRoughnessFactor:"f32",clearcoatMapEnabled:"i32",clearcoatRoughnessMapEnabled:"i32",sheenColorFactor:"vec3<f32>",sheenRoughnessFactor:"f32",sheenColorMapEnabled:"i32",sheenRoughnessMapEnabled:"i32",iridescenceFactor:"f32",iridescenceIor:"f32",iridescenceThicknessRange:"vec2<f32>",iridescenceMapEnabled:"i32",anisotropyStrength:"f32",anisotropyRotation:"f32",anisotropyDirection:"vec2<f32>",anisotropyMapEnabled:"i32",emissiveStrength:"f32",IBLenabled:"i32",scaleIBLAmbient:"vec2<f32>",scaleDiffBaseMR:"vec4<f32>",scaleFGDSpec:"vec4<f32>",baseColorUVSet:"i32",baseColorUVTransform:"mat3x3<f32>",metallicRoughnessUVSet:"i32",metallicRoughnessUVTransform:"mat3x3<f32>",normalUVSet:"i32",normalUVTransform:"mat3x3<f32>",occlusionUVSet:"i32",occlusionUVTransform:"mat3x3<f32>",emissiveUVSet:"i32",emissiveUVTransform:"mat3x3<f32>",specularColorUVSet:"i32",specularColorUVTransform:"mat3x3<f32>",specularIntensityUVSet:"i32",specularIntensityUVTransform:"mat3x3<f32>",transmissionUVSet:"i32",transmissionUVTransform:"mat3x3<f32>",thicknessUVSet:"i32",thicknessUVTransform:"mat3x3<f32>",clearcoatUVSet:"i32",clearcoatUVTransform:"mat3x3<f32>",clearcoatRoughnessUVSet:"i32",clearcoatRoughnessUVTransform:"mat3x3<f32>",clearcoatNormalUVSet:"i32",clearcoatNormalUVTransform:"mat3x3<f32>",sheenColorUVSet:"i32",sheenColorUVTransform:"mat3x3<f32>",sheenRoughnessUVSet:"i32",sheenRoughnessUVTransform:"mat3x3<f32>",iridescenceUVSet:"i32",iridescenceUVTransform:"mat3x3<f32>",iridescenceThicknessUVSet:"i32",iridescenceThicknessUVTransform:"mat3x3<f32>",anisotropyUVSet:"i32",anisotropyUVTransform:"mat3x3<f32>"}};var Rm=U(jc(),1),wm=U(Ys(),1);var Cm=`layout(std140) uniform meshUniforms {
2490
+ `,pm={name:"pbrProjection",bindingLayout:[{name:"pbrProjection",group:0}],source:fC,vs:hm,fs:hm,getUniforms:t=>t,uniformTypes:{modelViewProjectionMatrix:"mat4x4<f32>",modelMatrix:"mat4x4<f32>",normalMatrix:"mat4x4<f32>",camera:"vec3<f32>"}};var Yc={props:{},uniforms:{},defaultUniforms:{unlit:!1,baseColorMapEnabled:!1,baseColorFactor:[1,1,1,1],normalMapEnabled:!1,normalScale:1,emissiveMapEnabled:!1,emissiveFactor:[0,0,0],metallicRoughnessValues:[1,1],metallicRoughnessMapEnabled:!1,occlusionMapEnabled:!1,occlusionStrength:1,alphaCutoffEnabled:!1,alphaCutoff:.5,IBLenabled:!1,scaleIBLAmbient:[1,1],scaleDiffBaseMR:[0,0,0,0],scaleFGDSpec:[0,0,0,0],specularColorFactor:[1,1,1],specularIntensityFactor:1,specularColorMapEnabled:!1,specularIntensityMapEnabled:!1,ior:1.5,transmissionFactor:0,transmissionMapEnabled:!1,thicknessFactor:0,attenuationDistance:1e9,attenuationColor:[1,1,1],clearcoatFactor:0,clearcoatRoughnessFactor:0,clearcoatMapEnabled:!1,clearcoatRoughnessMapEnabled:!1,sheenColorFactor:[0,0,0],sheenRoughnessFactor:0,sheenColorMapEnabled:!1,sheenRoughnessMapEnabled:!1,iridescenceFactor:0,iridescenceIor:1.3,iridescenceThicknessRange:[100,400],iridescenceMapEnabled:!1,anisotropyStrength:0,anisotropyRotation:0,anisotropyDirection:[1,0],anisotropyMapEnabled:!1,emissiveStrength:1,baseColorUVSet:0,baseColorUVTransform:[1,0,0,0,1,0,0,0,1],metallicRoughnessUVSet:0,metallicRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],normalUVSet:0,normalUVTransform:[1,0,0,0,1,0,0,0,1],occlusionUVSet:0,occlusionUVTransform:[1,0,0,0,1,0,0,0,1],emissiveUVSet:0,emissiveUVTransform:[1,0,0,0,1,0,0,0,1],specularColorUVSet:0,specularColorUVTransform:[1,0,0,0,1,0,0,0,1],specularIntensityUVSet:0,specularIntensityUVTransform:[1,0,0,0,1,0,0,0,1],transmissionUVSet:0,transmissionUVTransform:[1,0,0,0,1,0,0,0,1],thicknessUVSet:0,thicknessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatUVSet:0,clearcoatUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatRoughnessUVSet:0,clearcoatRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatNormalUVSet:0,clearcoatNormalUVTransform:[1,0,0,0,1,0,0,0,1],sheenColorUVSet:0,sheenColorUVTransform:[1,0,0,0,1,0,0,0,1],sheenRoughnessUVSet:0,sheenRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceUVSet:0,iridescenceUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceThicknessUVSet:0,iridescenceThicknessUVTransform:[1,0,0,0,1,0,0,0,1],anisotropyUVSet:0,anisotropyUVTransform:[1,0,0,0,1,0,0,0,1]},name:"pbrMaterial",firstBindingSlot:0,bindingLayout:[{name:"pbrMaterial",group:3},{name:"pbr_baseColorSampler",group:3},{name:"pbr_normalSampler",group:3},{name:"pbr_emissiveSampler",group:3},{name:"pbr_metallicRoughnessSampler",group:3},{name:"pbr_occlusionSampler",group:3},{name:"pbr_specularColorSampler",group:3},{name:"pbr_specularIntensitySampler",group:3},{name:"pbr_transmissionSampler",group:3},{name:"pbr_thicknessSampler",group:3},{name:"pbr_clearcoatSampler",group:3},{name:"pbr_clearcoatRoughnessSampler",group:3},{name:"pbr_clearcoatNormalSampler",group:3},{name:"pbr_sheenColorSampler",group:3},{name:"pbr_sheenRoughnessSampler",group:3},{name:"pbr_iridescenceSampler",group:3},{name:"pbr_iridescenceThicknessSampler",group:3},{name:"pbr_anisotropySampler",group:3}],dependencies:[sm,cm,pm],source:um,vs:lm,fs:fm,defines:{LIGHTING_FRAGMENT:!0,HAS_NORMALMAP:!1,HAS_EMISSIVEMAP:!1,HAS_OCCLUSIONMAP:!1,HAS_BASECOLORMAP:!1,HAS_METALROUGHNESSMAP:!1,HAS_SPECULARCOLORMAP:!1,HAS_SPECULARINTENSITYMAP:!1,HAS_TRANSMISSIONMAP:!1,HAS_THICKNESSMAP:!1,HAS_CLEARCOATMAP:!1,HAS_CLEARCOATROUGHNESSMAP:!1,HAS_CLEARCOATNORMALMAP:!1,HAS_SHEENCOLORMAP:!1,HAS_SHEENROUGHNESSMAP:!1,HAS_IRIDESCENCEMAP:!1,HAS_IRIDESCENCETHICKNESSMAP:!1,HAS_ANISOTROPYMAP:!1,USE_MATERIAL_EXTENSIONS:!1,ALPHA_CUTOFF:!1,USE_IBL:!1,PBR_DEBUG:!1},getUniforms:t=>t,uniformTypes:{unlit:"i32",baseColorMapEnabled:"i32",baseColorFactor:"vec4<f32>",normalMapEnabled:"i32",normalScale:"f32",emissiveMapEnabled:"i32",emissiveFactor:"vec3<f32>",metallicRoughnessValues:"vec2<f32>",metallicRoughnessMapEnabled:"i32",occlusionMapEnabled:"i32",occlusionStrength:"f32",alphaCutoffEnabled:"i32",alphaCutoff:"f32",specularColorFactor:"vec3<f32>",specularIntensityFactor:"f32",specularColorMapEnabled:"i32",specularIntensityMapEnabled:"i32",ior:"f32",transmissionFactor:"f32",transmissionMapEnabled:"i32",thicknessFactor:"f32",attenuationDistance:"f32",attenuationColor:"vec3<f32>",clearcoatFactor:"f32",clearcoatRoughnessFactor:"f32",clearcoatMapEnabled:"i32",clearcoatRoughnessMapEnabled:"i32",sheenColorFactor:"vec3<f32>",sheenRoughnessFactor:"f32",sheenColorMapEnabled:"i32",sheenRoughnessMapEnabled:"i32",iridescenceFactor:"f32",iridescenceIor:"f32",iridescenceThicknessRange:"vec2<f32>",iridescenceMapEnabled:"i32",anisotropyStrength:"f32",anisotropyRotation:"f32",anisotropyDirection:"vec2<f32>",anisotropyMapEnabled:"i32",emissiveStrength:"f32",IBLenabled:"i32",scaleIBLAmbient:"vec2<f32>",scaleDiffBaseMR:"vec4<f32>",scaleFGDSpec:"vec4<f32>",baseColorUVSet:"i32",baseColorUVTransform:"mat3x3<f32>",metallicRoughnessUVSet:"i32",metallicRoughnessUVTransform:"mat3x3<f32>",normalUVSet:"i32",normalUVTransform:"mat3x3<f32>",occlusionUVSet:"i32",occlusionUVTransform:"mat3x3<f32>",emissiveUVSet:"i32",emissiveUVTransform:"mat3x3<f32>",specularColorUVSet:"i32",specularColorUVTransform:"mat3x3<f32>",specularIntensityUVSet:"i32",specularIntensityUVTransform:"mat3x3<f32>",transmissionUVSet:"i32",transmissionUVTransform:"mat3x3<f32>",thicknessUVSet:"i32",thicknessUVTransform:"mat3x3<f32>",clearcoatUVSet:"i32",clearcoatUVTransform:"mat3x3<f32>",clearcoatRoughnessUVSet:"i32",clearcoatRoughnessUVTransform:"mat3x3<f32>",clearcoatNormalUVSet:"i32",clearcoatNormalUVTransform:"mat3x3<f32>",sheenColorUVSet:"i32",sheenColorUVTransform:"mat3x3<f32>",sheenRoughnessUVSet:"i32",sheenRoughnessUVTransform:"mat3x3<f32>",iridescenceUVSet:"i32",iridescenceUVTransform:"mat3x3<f32>",iridescenceThicknessUVSet:"i32",iridescenceThicknessUVTransform:"mat3x3<f32>",anisotropyUVSet:"i32",anisotropyUVTransform:"mat3x3<f32>"}};var xm=D(jc(),1),ym=D(Qs(),1);var dm=`layout(std140) uniform meshUniforms {
2491
2491
  bool pickFeatureIds;
2492
2492
  } mesh;
2493
- `,Bm={name:"mesh",vs:Cm,fs:Cm,uniformTypes:{pickFeatureIds:"f32"}};var Im=`#version 300 es
2493
+ `,mm={name:"mesh",vs:dm,fs:dm,uniformTypes:{pickFeatureIds:"f32"}};var gm=`#version 300 es
2494
2494
  #define SHADER_NAME simple-mesh-layer-vs
2495
2495
  in vec3 positions;
2496
2496
  in vec3 normals;
@@ -2550,7 +2550,7 @@ geometry.uv = pbr_vUV0;
2550
2550
  #endif
2551
2551
  DECKGL_FILTER_COLOR(vColor, geometry);
2552
2552
  }
2553
- `;var vm=`#version 300 es
2553
+ `;var Am=`#version 300 es
2554
2554
  #define SHADER_NAME simple-mesh-layer-fs
2555
2555
  precision highp float;
2556
2556
  uniform sampler2D sampler;
@@ -2579,7 +2579,7 @@ fragColor = vec4(lightColor, color.a * layer.opacity);
2579
2579
  #endif
2580
2580
  DECKGL_FILTER_COLOR(fragColor, geometry);
2581
2581
  }
2582
- `;function SC(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 EC={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},ho=class extends wm.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(tl,Bm),{...e,vs:Im,fs:vm}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:"uint8",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,{model:n}=this.state;if(!n)return;let o={pickFeatureIds:Boolean(r)},s={camera:this.context.viewport.cameraPosition};n.shaderInputs.setProps({pbrProjection:s,mesh:o}),super.draw(e)}getModel(e){let{id:r}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});let o=this.getShaders();return SC(e.attributes),new Rm.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...o.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,o=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:o});let{pbr_baseColorSampler:s}=o.bindings,{emptyTexture:i}=this.state,a={sampler:s||i,hasTexture:Boolean(s)},{camera:c,...l}={...o.bindings,...o.uniforms};r.shaderInputs.setProps({simpleMesh:a,pbrMaterial:l})}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return $c(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),o=[];for(let s=0;s<r.length;s++)this.encodePickingColor(r[s],o),n[s*3]=o[0],n[s*3+1]=o[1],n[s*3+2]=o[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}};ho.layerName="MeshLayer";ho.defaultProps=EC;var Lm=ho;var V0=U(er(),1);var yt=6356752314245179e-9,_C={radii:[6378137,6378137,yt],radiiSquared:[6378137*6378137,6378137*6378137,yt*yt],oneOverRadii:[1/6378137,1/6378137,1/yt],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(yt*yt)],maximumRadius:Math.max(6378137,6378137,yt),centerToleranceSquared:.1};function ti(t){return t}var o4=new x;function CC(t,e=[],r=ti){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 Fm(t,e=[]){return CC(t,e,Q._cartographicRadians?ti:ba)}function BC(t,e,r=ti){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 Pm(t,e){return BC(t,e,Q._cartographicRadians?ti:Ta)}var Nm=1e-14,IC=new x,Om={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"}},rl={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},po={east:new x,north:new x,up:new x,west:new x,south:new x,down:new x},vC=new x,RC=new x,wC=new x;function nl(t,e,r,n,o,s){let i=Om[e]&&Om[e][r];he(i&&(!n||n===i));let a,c,l,f=IC.copy(o);if(_e(f.x,0,Nm)&&_e(f.y,0,Nm)){let h=Math.sign(f.z);a=vC.fromArray(rl[e]),e!=="east"&&e!=="west"&&a.scale(h),c=RC.fromArray(rl[r]),r!=="east"&&r!=="west"&&c.scale(h),l=wC.fromArray(rl[n]),n!=="east"&&n!=="west"&&l.scale(h)}else{let{up:h,east:p,north:d}=po;p.set(-f.y,f.x,0).normalize(),t.geodeticSurfaceNormal(f,h),d.copy(h).cross(p);let{down:g,west:m,south:y}=po;g.copy(h).scale(-1),m.copy(p).scale(-1),y.copy(d).scale(-1),a=po[e],c=po[r],l=po[n]}return s[0]=a.x,s[1]=a.y,s[2]=a.z,s[3]=0,s[4]=c.x,s[5]=c.y,s[6]=c.z,s[7]=0,s[8]=l.x,s[9]=l.y,s[10]=l.z,s[11]=0,s[12]=f.x,s[13]=f.y,s[14]=f.z,s[15]=1,s}var Zr=new x,LC=new x,FC=new x;function Um(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:o,centerToleranceSquared:s}=e;Zr.from(t);let i=Zr.x,a=Zr.y,c=Zr.z,l=n.x,f=n.y,u=n.z,h=i*i*l*l,p=a*a*f*f,d=c*c*u*u,g=h+p+d,m=Math.sqrt(1/g);if(!Number.isFinite(m))return;let y=LC;if(y.copy(t).scale(m),g<s)return y.to(r);let b=o.x,M=o.y,S=o.z,C=FC;C.set(y.x*b*2,y.y*M*2,y.z*S*2);let _=(1-m)*Zr.len()/(.5*C.len()),v=0,E,T,A,B;do{_-=v,E=1/(1+_*b),T=1/(1+_*M),A=1/(1+_*S);let L=E*E,F=T*T,w=A*A,D=L*E,W=F*T,z=w*A;B=h*L+p*F+d*w-1;let Y=-2*(h*D*b+p*W*M+d*z*S);v=B/Y}while(Math.abs(B)>Ge.EPSILON12);return Zr.scale([E,T,A]).to(r)}var ri=new x,Dm=new x,OC=new x,et=new x,UC=new x,ni=new x,G=class{constructor(e=0,r=0,n=0){this.centerToleranceSquared=Ge.EPSILON1,he(e>=0),he(r>=0),he(n>=0),this.radii=new x(e,r,n),this.radiiSquared=new x(e*e,r*r,n*n),this.radiiToTheFourth=new x(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new x(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new x(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=Dm,o=OC,[,,s]=e;this.geodeticSurfaceNormalCartographic(e,n),o.copy(this.radiiSquared).scale(n);let i=Math.sqrt(n.dot(o));return o.scale(1/i),n.scale(s),o.add(n),o.to(r)}cartesianToCartographic(e,r=[0,0,0]){ni.from(e);let n=this.scaleToGeodeticSurface(ni,et);if(!n)return;let o=this.geodeticSurfaceNormal(n,Dm),s=UC;s.copy(ni).subtract(n);let i=Math.atan2(o.y,o.x),a=Math.asin(o.z),c=Math.sign($t.dot(s,ni))*$t.length(s);return Pm([i,a,c],r)}eastNorthUpToFixedFrame(e,r=new N){return nl(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,o,s=new N){return nl(this,e,r,n,o,s)}geocentricSurfaceNormal(e,r=[0,0,0]){return ri.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=Fm(e),o=n[0],s=n[1],i=Math.cos(s);return ri.set(i*Math.cos(o),i*Math.sin(o),Math.sin(s)).normalize(),ri.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return ri.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return Um(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){et.from(e);let n=et.x,o=et.y,s=et.z,i=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*i.x+o*o*i.y+s*s*i.z);return et.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return et.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return et.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){he(_e(this.radii.x,this.radii.y,Ge.EPSILON15)),he(this.radii.z>0),et.from(e);let o=et.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(o)>=this.radii.z-r))return et.set(0,0,o).to(n)}};G.WGS84=new G(6378137,6378137,yt);var oi=class{item;previous;next;constructor(e,r,n){this.item=e,this.previous=r,this.next=n}};var si=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new oi(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 ii=class{_list;_sentinel;_trimTiles;constructor(){this._list=new si,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 o=r._cacheNode;o&&(this._list.remove(o),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let o=this._list,s=e.maximumMemoryUsage*1024*1024,i=this._sentinel,a=o.head;for(;a!==i&&(e.gpuMemoryUsageInBytes>s||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function Gm(t,e){H(t),H(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:o,boundingVolume:{center:s}}=t,i=new N(o);switch(r&&i.translate(r),n){case"Z":break;case"Y":let h=new N().rotateX(Math.PI/2);i=i.multiplyRight(h);break;case"X":let p=new N().rotateY(-Math.PI/2);i=i.multiplyRight(p);break;default:break}e.isQuantized&&i.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new x(s);e.cartesianModelMatrix=i,e.cartesianOrigin=a;let c=G.WGS84.cartesianToCartographic(a,new x),f=G.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=f.multiplyRight(i),e.cartographicOrigin=c;let u=GC(e);u&&(e.cartesianModelMatrix=new N(i).multiplyRight(u.matrix),e.cartographicModelMatrix.multiplyRight(u.matrix),u.matrix=N.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var DC=1e6**2;function GC(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene=="number"?e.scene:0,o=e.scenes?.[r]?.nodes?.[0];if(!o?.matrix)return null;let s=o.matrix;return s[12]*s[12]+s[13]*s[13]+s[14]*s[14]<=DC?null:o}var Vm=new x,ol=new x,sl=new ce([new pe,new pe,new pe,new pe,new pe,new pe]);function zm(t,e){let{cameraDirection:r,cameraUp:n,height:o}=t,{metersPerUnit:s}=t.distanceScales,i=ai(t,t.center),a=G.WGS84.eastNorthUpToFixedFrame(i),c=t.unprojectPosition(t.cameraPosition),l=G.WGS84.cartographicToCartesian(c,new x),f=new x(a.transformAsVector(new x(r).scale(s))).normalize(),u=new x(a.transformAsVector(new x(n).scale(s))).normalize();VC(t);let h=t.constructor,{longitude:p,latitude:d,width:g,bearing:m,zoom:y}=t,b=new h({longitude:p,latitude:d,height:o,width:g,bearing:m,zoom:y,pitch:0});return{camera:{position:l,direction:f,up:u},viewport:t,topDownViewport:b,height:o,cullingVolume:sl,frameNumber:e,sseDenominator:1.15}}function km(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:o,latitude:s}=e.viewport;for(let[l,f]of t.entries()){let[u,h]=f.header.mbs,p=Math.abs(o-u),d=Math.abs(s-h),g=Math.sqrt(d*d+p*p);n.push([l,g])}let i=n.sort((l,f)=>l[1]-f[1]),a=[];for(let l=0;l<r;l++)a.push(t[i[l][0]]);let c=[];for(let l=r;l<i.length;l++)c.push(t[i[l][0]]);return[a,c]}function VC(t){let e=t.getFrustumPlanes(),r=Hm(e.near,t.cameraPosition),n=ai(t,r),o=ai(t,t.cameraPosition,ol),s=0;sl.planes[s++].fromPointNormal(n,Vm.copy(n).subtract(o));for(let i in e){if(i==="near")continue;let a=e[i],c=Hm(a,r,ol),l=ai(t,c,ol);sl.planes[s++].fromPointNormal(l,Vm.copy(n).subtract(l))}}function Hm(t,e,r=new x){let n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ai(t,e,r=new x){let n=t.unprojectPosition(e);return G.WGS84.cartographicToCartesian(n,r)}var HC=6378137,zC=6378137,il=6356752314245179e-9,$r=new x;function jm(t,e){if(t instanceof $e){let{halfAxes:r}=t,n=kC(r);return Math.log2(il/(n+e[2]))}else if(t instanceof He){let{radius:r}=t;return Math.log2(il/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,o=Math.log2(HC/r),s=Math.log2(zC/n);return(o+s)/2}return 1}function al(t,e,r){G.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],$r);let n=Math.sqrt(Math.pow($r[0]-r[0],2)+Math.pow($r[1]-r[1],2)+Math.pow($r[2]-r[2],2));return Math.log2(il/(n+e[2]))}function qm(t,e,r){let[n,o,s,i]=t;return al({xmin:n,xmax:s,ymin:o,ymax:i,zmin:0,zmax:0},e,r)}function kC(t){t.getColumn(0,$r);let e=t.getColumn(1),r=t.getColumn(2);return $r.add(e).add(r).len()}var cg=U(er(),1);var Be={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Te;(function(t){t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE"})(Te||(Te={}));var ke;(function(t){t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh"})(ke||(ke={}));var de;(function(t){t.I3S="I3S",t.TILES3D="TILES3D"})(de||(de={}));var bt;(function(t){t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(bt||(bt={}));var Jm={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Ym(t){return t!=null}var Me=new x,ci=new x,jC=new x,qC=new x,mr=new x,Wm=new x,Km=new x,Xm=new x;function li(t,e,r){if(H(t,"3D Tile: boundingVolume must be defined"),t.box)return Zm(t.box,e,r);if(t.region)return WC(t.region);if(t.sphere)return JC(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function Qm(t,e){if(t.box)return KC(e);if(t.region){let[r,n,o,s,i,a]=t.region;return[[Ne(r),Ne(n),i],[Ne(o),Ne(s),a]]}if(t.sphere)return XC(e);throw new Error("Unkown boundingVolume type")}function Zm(t,e,r){let n=new x(t[0],t[1],t[2]);e.transform(n,n);let o=[];if(t.length===10){let l=t.slice(3,6),f=new st;f.fromArray(t,6);let u=new x([1,0,0]),h=new x([0,1,0]),p=new x([0,0,1]);u.transformByQuaternion(f),u.scale(l[0]),h.transformByQuaternion(f),h.scale(l[1]),p.transformByQuaternion(f),p.scale(l[2]),o=[...u.toArray(),...h.toArray(),...p.toArray()]}else o=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let s=e.transformAsVector(o.slice(0,3)),i=e.transformAsVector(o.slice(3,6)),a=e.transformAsVector(o.slice(6,9)),c=new k([s[0],s[1],s[2],i[0],i[1],i[2],a[0],a[1],a[2]]);return Ym(r)?(r.center=n,r.halfAxes=c,r):new $e(n,c)}function JC(t,e,r){let n=new x(t[0],t[1],t[2]);e.transform(n,n);let o=e.getScale(ci),s=Math.max(Math.max(o[0],o[1]),o[2]),i=t[3]*s;return Ym(r)?(r.center=n,r.radius=i,r):new He(n,i)}function WC(t){let[e,r,n,o,s,i]=t,a=G.WGS84.cartographicToCartesian([Ne(e),Ne(o),s],jC),c=G.WGS84.cartographicToCartesian([Ne(n),Ne(r),i],qC),l=new x().addVectors(a,c).multiplyByScalar(.5);return G.WGS84.cartesianToCartographic(l,mr),G.WGS84.cartographicToCartesian([Ne(n),mr[1],mr[2]],Wm),G.WGS84.cartographicToCartesian([mr[0],Ne(o),mr[2]],Km),G.WGS84.cartographicToCartesian([mr[0],mr[1],i],Xm),Zm([...l,...Wm.subtract(l),...Km.subtract(l),...Xm.subtract(l)],new N)}function KC(t){let e=$m(),{halfAxes:r}=t,n=new x(r.getColumn(0)),o=new x(r.getColumn(1)),s=new x(r.getColumn(2));for(let i=0;i<2;i++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)Me.copy(t.center),Me.add(n),Me.add(o),Me.add(s),eg(e,Me),s.negate();o.negate()}n.negate()}return e}function XC(t){let e=$m(),{center:r,radius:n}=t,o=G.WGS84.scaleToGeodeticSurface(r,Me),s;o?s=G.WGS84.geodeticSurfaceNormal(o):s=new x(0,0,1);let i=new x(s[2],-s[1],0);i.len()>0?i.normalize():i=new x(0,1,0);let a=i.clone().cross(s);for(let c of[i,a,s]){ci.copy(c).scale(n);for(let l=0;l<2;l++)Me.copy(r),Me.add(ci),eg(e,Me),ci.negate()}return e}function $m(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function eg(t,e){G.WGS84.cartesianToCartographic(e,Me),t[0][0]=Math.min(t[0][0],Me[0]),t[0][1]=Math.min(t[0][1],Me[1]),t[0][2]=Math.min(t[0][2],Me[2]),t[1][0]=Math.max(t[1][0],Me[0]),t[1][1]=Math.max(t[1][1],Me[1]),t[1][2]=Math.max(t[1][2],Me[2])}var j4=new x,q4=new x,J4=new N,W4=new x,K4=new x,X4=new x;function YC(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function QC(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return YC(e,r)*n}return 0}function tg(t,e,r){let n=t.tileset,o=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,s=r?o:t.lodMetricValue;if(s===0)return 0;let i=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,f=s*a*(l||1)/(i*c);return f-=QC(n,i),f}var cl=new x,rg=new x,Ht=new x,ng=new x,ZC=new x,ll=new N,og=new N;function sg(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*fl(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function fl(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],o=t.header.mbs[0],s=t.header.mbs[2],i=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);G.WGS84.cartographicToCartesian(c,cl),rg.copy(cl).subtract(a).normalize(),G.WGS84.eastNorthUpToFixedFrame(a,ll),og.copy(ll).invert(),Ht.copy(cl).transform(og);let l=Math.sqrt(Ht[0]*Ht[0]+Ht[1]*Ht[1]),f=l*l/Ht[2];ng.copy([Ht[0],Ht[1],f]);let h=ng.transform(ll).subtract(a).normalize(),d=rg.cross(h).normalize().scale(i).add(a),g=G.WGS84.cartesianToCartographic(d),m=r.project([o,n,s]),y=r.project(g);return ZC.copy(m).subtract(y).magnitude()}function ig(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var mo=class{_map=new Map;_array;_length;constructor(e=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 H(e<this._array.length),this._array[e]}set(e,r){H(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){H(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){H(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 $C={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ut=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new mo;_emptyTraversalStack=new mo;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...$C,...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 s=n.pop(),i=!1;this.canTraverse(s,r)&&(this.updateChildTiles(s,r),i=this.updateAndPushChildren(s,r,n,s.hasRenderContent?s._selectionDepth+1:s._selectionDepth));let a=s.parent,c=Boolean(!a||a._shouldRefine),l=!i;s.hasRenderContent?s.refine===Te.ADD?(this.loadTile(s,r),this.selectTile(s,r)):s.refine===Te.REPLACE&&(this.loadTile(s,r),l&&this.selectTile(s,r)):(this.emptyTiles[s.id]=s,this.loadTile(s,r),l&&this.selectTile(s,r)),this.touchTile(s,r),s._shouldRefine=i&&c}let o=new Date().getTime();(this.traversalFinished(r)||o-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=o,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let o of n)this.updateTile(o,r)}updateAndPushChildren(e,r,n,o){let{loadSiblings:s,skipLevelOfDetail:i}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Te.REPLACE&&e.hasRenderContent&&!i,l=!1,f=!0;for(let u of a)if(u._selectionDepth=o,u.isVisibleAndInRequestVolume?(n.find(u)&&n.delete(u),n.push(u),l=!0):(c||s)&&(this.loadTile(u,r),this.touchTile(u,r)),c){let h;if(u._inRequestVolume?u.hasRenderContent?h=u.contentAvailable:h=this.executeEmptyTraversal(u,r):h=!1,f=f&&h,!f)return!1}return l||(f=!1),f}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){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,r):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,n=!1){let o=e._screenSpaceError;return n&&(o=e.getScreenSpaceError(r,!0)),o>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let o in this.options.viewportTraversersMap)this.options.viewportTraversersMap[o]===r.viewport.id&&n.push(o);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 o of e.children)o.updateVisibility(r),n=n||o.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,o=this._emptyTraversalStack;for(o.push(e);o.length>0;){let s=o.pop(),i=!s.hasRenderContent&&this.canTraverse(s,r),a=!s.hasRenderContent&&s.children.length===0;if(!i&&!s.contentAvailable&&!a&&(n=!1),this.updateTile(s,r),s.isVisibleAndInRequestVolume||(this.loadTile(s,r),this.touchTile(s,r)),i){let c=s.children;for(let l of c)o.push(l)}}return e.hasEmptyContent||n}};var ag=new x;function eB(t){return t!=null}var gr=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Be.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new N;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new ut({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new N;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,r,n,o=""){this.header=r,this.tileset=e,this.id=o||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===Be.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===Be.UNLOADED}get contentExpired(){return this.contentState===Be.EXPIRED}get contentFailed(){return this.contentState===Be.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=Qm(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case de.I3S:return fl(this,e);case de.TILES3D:return tg(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===Te.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Be.UNLOADED)return-1;let o=this.parent,i=o&&(!n||this._screenSpaceError===0||o.hasTilesetContent)?o._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-i,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Be.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=Be.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),o=this.tileset.loader,s=this.tileset.loadOptions[o.id]||{},i={...this.tileset.loadOptions,[o.id]:{...s,isTileset:this.type==="json",...this._getLoaderSpecificOptions(o.id)}};return this.content=await(0,cg.load)(n,o,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Be.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=Be.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=Be.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,o=n?n._visibilityPlaneMask:ce.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let s=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(s)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ce.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:o}=this;return n.computeVisibilityWithPlaneMask(o,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let r=this.boundingVolume;return ag.subVectors(r.center,e.position),e.direction.dot(ag)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(eB(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Be.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 N(e.transform):new N;let r=this.parent,n=this.tileset,o=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new N(o).multiplyRight(this.transform);let s=r&&r._initialTransform?r._initialTransform.clone():new N;this._initialTransform=new N(s).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=Be.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=ce.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||Te.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=li(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=li(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=li(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new N){let r=e.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 ig(this.tileset.tileset)}}};var fi=class extends ut{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 i=e.children[0];this.updateTileVisibility(i,r),e._visible=i._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let o=e.refine===Te.REPLACE,s=e._optimChildrenWithinParent===Jm.USE_OPTIMIZATION;if(o&&s&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Te.ADD?!1:!this.shouldRefine(e,r,!0)}};var lg=U(er(),1);var ui=class{frameNumberMap=new Map;register(e,r){let n=this.frameNumberMap.get(e)||new Map,o=n.get(r)||0;n.set(r,o+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let o=n.get(r)||1;n.set(r,o-1)}isZero(e,r){return(this.frameNumberMap.get(e)?.get(r)||0)===0}};var ul={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},hi=class{_statusMap;pendingTilesRegister=new ui;constructor(){this._statusMap={}}add(e,r,n,o){if(!this._statusMap[r]){let{frameNumber:s,viewport:{id:i}}=o;this._statusMap[r]={request:e,callback:n,key:r,frameState:o,status:ul.REQUESTED},this.pendingTilesRegister.register(i,s),e().then(a=>{this._statusMap[r].status=ul.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,o)}).catch(a=>{this._statusMap[r].status=ul.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:o}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(o,n);let{frameNumber:s,viewport:{id:i}}=r;this.pendingTilesRegister.register(i,s),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var pi=class extends ut{_tileManager;constructor(e){super(e),this._tileManager=new hi}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=sg(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],o=e.children,s=e.tileset;for(let i of n){let a=`${i.id}-${r.viewport.id}`,c=o&&o.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(i.id,s);this._tileManager.find(a)?this._tileManager.update(a,r):(s.tileset.nodePages&&(l=()=>s.tileset.nodePagesTile.formTileFromNodePages(i.id)),this._tileManager.add(l,a,u=>this._onTileLoad(u,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,o=r.getTileUrl(`${r.url}/nodes/${e}`),s={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,lg.load)(o,n,s)}_onTileLoad(e,r,n){let o=new gr(r.tileset,e,r,n);r.children.push(o);let s=this._tileManager.find(o.id).frameState;this.updateTile(o,s),this._frameNumber===s.frameNumber&&(this.traversalFinished(s)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(o,s)}};var tB={description:"",ellipsoid:G.WGS84,modelMatrix:new N,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},di="Tiles In Tileset(s)",hl="Tiles In Memory",fg="Tiles In View",ug="Tiles To Render",hg="Tiles Loaded",pl="Tiles Loading",pg="Tiles Unloaded",dg="Failed Tile Loads",mg="Points/Vertices",dl="Tile Memory Use",gg="Maximum Screen Space Error",go=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new ii;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r){this.options={...tB,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Pt.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 Lt({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 wt({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(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=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 o of r){let s=o.id;this._needTraverse(s)?n.push(s):this.traverseCounter--}for(let o of r){let s=o.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),!n.includes(s))continue;let i=zm(o,this._frameNumber);this._traverser.traverse(this.roots[s],i,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],o=Object.values(this._traverser.selectedTiles),[s,i]=km(o,e,this.options.maximumTilesSelected);n.selectedTiles=s;for(let a of i)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){let e=this.selectedTiles;this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let s in this.frameStateData){let i=this.frameStateData[s];this.selectedTiles=this.selectedTiles.concat(i.selectedTiles),this._requestedTiles=this._requestedTiles.concat(i._requestedTiles),this._emptyTiles=this._emptyTiles.concat(i._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(s=>s.id)),n=this.selectedTiles.some(s=>!s.tileDrawn),o=0;if(n){for(let s of r)this._heldTiles.add(s);for(let s of this._heldTiles){if(r.has(s))continue;let i=this._tiles[s];i&&i.contentAvailable?(i._selectedFrame=this._frameNumber,this.selectedTiles.push(i),o++):this._heldTiles.delete(s)}}else this._heldTiles=r;o>0&&setTimeout(()=>{this.selectTiles()},0);for(let s of this.selectedTiles)this._tiles[s.id]=s;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(i=>i.id)),o=new Set(r.map(i=>i.id)),s=e.filter(i=>!o.has(i.id)).length>0;return s=s||r.filter(i=>!n.has(i.id)).length>0,s}_loadTiles(){this._requestedTiles.sort((e,r)=>e._priority-r._priority);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(fg).count=this.selectedTiles.length,this.stats.get(ug).count=e,this.stats.get(mg).count=r,this.stats.get(gg).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===de.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===de.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===de.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:n,xmax:o,ymin:s,ymax:i,zmin:a,zmax:c}=e;this.cartographicCenter=new x(n+(o-n)/2,s+(i-s)/2,a+(c-a)/2),this.cartesianCenter=new x,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=al(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[n,o,s,i]=r;this.cartographicCenter=new x(n+(s-n)/2,o+(i-o)/2,0),this.cartesianCenter=new x,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=qm(r,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new x,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 x,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new x,G.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new x(0,0,-G.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=jm(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(di),this.stats.get(pl),this.stats.get(hl),this.stats.get(fg),this.stats.get(ug),this.stats.get(hg),this.stats.get(pg),this.stats.get(dg),this.stats.get(mg),this.stats.get(dl,"memory"),this.stats.get(gg)}_initializeTileHeaders(e,r){let n=new gr(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===de.TILES3D){let o=[];for(o.push(n);o.length>0;){let s=o.pop();this.stats.get(di).incrementCount();let i=s.header.children||[];for(let a of i){let c=new gr(this,a,s);if(c.contentUrl?.includes("?session=")){let f=new URL(c.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}s.children.push(c),c.depth=s.depth+1,o.push(c)}}}return n}_initializeTraverser(){let e;switch(this.type){case de.TILES3D:e=fi;break;case de.I3S:e=pi;break;default:e=ut}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(dg).incrementCount();let n=r.message||r.toString(),o=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,o)}_onTileLoad(e,r){if(r){if(this.type===de.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(di).reset(),this.stats.get(di).addCount(n)}e&&e.content&&Gm(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===de.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===de.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),r.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),r.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(pl).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(pl).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(hg).incrementCount(),this.stats.get(hl).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(dl).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(hl).decrementCount(),this.stats.get(pg).incrementCount(),this.stats.get(dl).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 o of e.children)n.push(o);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(){let e=this.loadOptions.i3s;e&&typeof e=="object"&&"token"in e&&(this._queryParams.token=e.token)}};var mi="4.4.1";var Ar={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},jH=Object.keys(Ar);function ml(t,e,r){H(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),o=new Uint8Array(t,e,r);return n.decode(o)}function Ag(t,e=0){let 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 rB="1.5.6",nB="1.4.1",gl=`https://www.gstatic.com/draco/versioned/decoders/${rB}`,me={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},Ao={[me.DECODER]:`${gl}/${me.DECODER}`,[me.DECODER_WASM]:`${gl}/${me.DECODER_WASM}`,[me.FALLBACK_DECODER]:`${gl}/${me.FALLBACK_DECODER}`,[me.ENCODER]:`https://raw.githubusercontent.com/google/draco/${nB}/javascript/${me.ENCODER}`},Al;async function yg(t={},e){let r=t.modules||{};return r.draco3d?Al||=r.draco3d.createDecoderModule({}).then(n=>({draco:n})):Al||=oB(t,e),await Al}function xg(t,e){if(t&&typeof t=="object"){if(t.default)return t.default;if(t[e])return t[e]}return t}async function oB(t,e){let r,n;switch(e){case"js":r=await Ve(Ao[me.FALLBACK_DECODER],"draco",t,me.FALLBACK_DECODER);break;case"wasm":default:try{[r,n]=await Promise.all([await Ve(Ao[me.DECODER],"draco",t,me.DECODER),await Ve(Ao[me.DECODER_WASM],"draco",t,me.DECODER_WASM)])}catch{r=null,n=null}}return r=xg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule,!r&&!dt&&([r,n]=await Promise.all([await Ve(Ao[me.DECODER],"draco",{...t,useLocalLibraries:!0},me.DECODER),await Ve(Ao[me.DECODER_WASM],"draco",{...t,useLocalLibraries:!0},me.DECODER_WASM)]),r=xg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule),await sB(r,n)}function sB(t,e){if(typeof t!="function")throw new Error("DracoDecoderModule could not be loaded");let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:o=>n({draco:o})})})}var bg="4.4.1";function Tg(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 xr(t){let e=1/0,r=1/0,n=1/0,o=-1/0,s=-1/0,i=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let f=a[l],u=a[l+1],h=a[l+2];e=f<e?f:e,r=u<r?u:r,n=h<n?h:n,o=f>o?f:o,s=u>s?u:s,i=h>i?h:i}return[[e,r,n],[o,s,i]]}function xl(t,e,r){let n=Tg(e.value),o=r||Mg(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:o}}function Mg(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 Eg(t,e,r){let n=_g(e.metadata),o=[],s=iB(e.attributes);for(let i in t){let a=t[i],c=Sg(i,a,s[i]);o.push(c)}if(r){let i=Sg("indices",r);o.push(i)}return{fields:o,metadata:n}}function iB(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function Sg(t,e,r){let n=r?_g(r.metadata):void 0;return xl(t,e,n)}function _g(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var Cg={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},aB={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},cB=4,xo=class{draco;decoder;metadataQuerier;constructor(e){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,r={}){let n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let o=this.decoder.GetEncodedGeometryType(n),s=o===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let i;switch(o){case this.draco.TRIANGULAR_MESH:i=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:i=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!i.ok()||!s.ptr){let h=`DRACO decompression failed: ${i.error_msg()}`;throw new Error(h)}let a=this._getDracoLoaderData(s,o,r),c=this._getMeshData(s,a,r),l=xr(c.attributes),f=Eg(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:s.num_points(),boundingBox:l},...c,schema:f}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,r,n){let o=this._getTopLevelMetadata(e),s=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:o,attributes:s}}_getDracoAttributes(e,r){let n={};for(let o=0;o<e.num_attributes();o++){let s=this.decoder.GetAttribute(e,o),i=this._getAttributeMetadata(e,o);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:o,metadata:i};let a=this._getQuantizationTransform(s,r);a&&(n[s.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(s,r);c&&(n[s.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let o=this._getMeshAttributes(r,e,n);if(!o.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:o,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:o,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:o}}_getMeshAttributes(e,r,n){let o={};for(let s of Object.values(e.attributes)){let i=this._deduceAttributeName(s,n);s.name=i;let a=this._getAttributeValues(r,s);if(a){let{value:c,size:l}=a;o[i]={value:c,size:l,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return o}_getTriangleListIndices(e){let n=e.num_faces()*3,o=n*cB,s=this.draco._malloc(o);try{return this.decoder.GetTrianglesUInt32Array(e,o,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),uB(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=aB[r.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let o=r.num_components,i=e.num_points()*o,a=i*n.BYTES_PER_ELEMENT,c=lB(this.draco,n),l,f=this.draco._malloc(a);try{let u=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,u,c,a,f),l=new n(this.draco.HEAPF32.buffer,f,i).slice()}finally{this.draco._free(f)}return{value:l,size:o}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[i,a]of Object.entries(r.extraAttributes||{}))if(a===n)return i;let o=e.attribute_type;for(let i in Cg)if(this.draco[i]===o)return Cg[i];let s=r.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].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 o=0;o<n;o++){let s=this.metadataQuerier.GetEntryName(e,o);r[s]=this._getDracoMetadataField(e,s)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let o=fB(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:o}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,o=[...r,...n];for(let s of o)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits(),range:i.range(),min_values:new Float32Array([1,2,3]).map(a=>i.min_value(a))}}finally{this.draco.destroy(i)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits()}}finally{this.draco.destroy(i)}}return null}};function lB(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 fB(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function uB(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var Bg={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:bg,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},yo={...Bg,parse:hB};async function hB(t,e){let{draco:r}=await yg(kn(e),e?.draco?.decoderType||"wasm"),n=new xo(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var pB={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},ae={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},O={...pB,...ae};var yl={[ae.DOUBLE]:Float64Array,[ae.FLOAT]:Float32Array,[ae.UNSIGNED_SHORT]:Uint16Array,[ae.UNSIGNED_INT]:Uint32Array,[ae.UNSIGNED_BYTE]:Uint8Array,[ae.BYTE]:Int8Array,[ae.SHORT]:Int16Array,[ae.INT]:Int32Array},dB={DOUBLE:ae.DOUBLE,FLOAT:ae.FLOAT,UNSIGNED_SHORT:ae.UNSIGNED_SHORT,UNSIGNED_INT:ae.UNSIGNED_INT,UNSIGNED_BYTE:ae.UNSIGNED_BYTE,BYTE:ae.BYTE,SHORT:ae.SHORT,INT:ae.INT},bl="Failed to convert GL type",fe=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in yl)if(yl[r]===e)return r;throw new Error(bl)}static fromName(e){let r=dB[e];if(!r)throw new Error(bl);return r}static getArrayType(e){switch(e){case ae.UNSIGNED_SHORT_5_6_5:case ae.UNSIGNED_SHORT_4_4_4_4:case ae.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=yl[e];if(!r)throw new Error(bl);return r}}static getByteSize(e){return fe.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(fe.getArrayType(e))}static createTypedArray(e,r,n=0,o){o===void 0&&(o=(r.byteLength-n)/fe.getByteSize(e));let s=ArrayBuffer.isView(r)?r.buffer:r,i=fe.getArrayType(e);return new i(s,n,o)}};function Ig(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function Tl(t,e=[0,0,0]){let r=t>>11&31,n=t>>5&63,o=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=o<<3,e}var _8=1/256;var C8=new Yt,B8=new x,I8=new Yt,v8=new Yt,R8=new Uint8Array(1);function vg(t,e=255){return as(t,0,e)/e*2-1}function Rg(t){return t<0?-1:1}function wg(t,e,r,n){if(Ig(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=vg(t,r),n.y=vg(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let o=n.x;n.x=(1-Math.abs(n.y))*Rg(o),n.y=(1-Math.abs(o))*Rg(n.y)}return n.normalize()}function Ml(t,e,r){return wg(t,e,255,r)}var Tt=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,r){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,r=O.UNSIGNED_INT,n=1){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,o.byteOffset):o}getPropertyArray(e,r,n){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(r=fe.fromName(o.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,o.byteOffset)):this._getTypedArrayFromArray(e,r,o)}getProperty(e,r,n,o,s){let i=this.json[e];if(!i)return i;let a=this.getPropertyArray(e,r,n);if(n===1)return a[o];for(let c=0;c<n;++c)s[c]=a[n*o+c];return s}_getTypedArrayFromBinary(e,r,n,o,s){let i=this._cachedTypedArrays,a=i[e];return a||(a=fe.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+s,o*n),i[e]=a),a}_getTypedArrayFromArray(e,r,n){let o=this._cachedTypedArrays,s=o[e];if(!s){if(ArrayBuffer.isView(n)){let i=n.byteOffset,c=n.byteLength/fe.getByteSize(r);s=fe.createTypedArray(r,n.buffer,i,c)}else if(n instanceof ArrayBuffer)s=fe.createTypedArray(r,n);else{let i=fe.getArrayType(r);s=new i(n)}o[e]=s}return s}};var mB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},gB={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]]},AB={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 Lg(t,e,r,n){let{componentType:o}=t;H(t.componentType);let s=typeof o=="string"?fe.fromName(o):o,i=mB[t.type],a=gB[t.type],c=AB[t.type];return r+=t.byteOffset,{values:fe.createTypedArray(s,e,r,i*n),type:s,size:i,unpacker:a,packer:c}}var ht=t=>t!==void 0;function Fg(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),o=e.HIERARCHY;return o&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=o,n=o),n?xB(n,r):null}function xB(t,e){let r,n,o,s=t.instancesLength,i=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,f=s;ht(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,o=getBinaryAccessor(a),a=o.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,s));let u;if(ht(c))for(ht(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,o=getBinaryAccessor(c),c=o.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,s)),u=new Uint16Array(s),f=0,r=0;r<s;++r)u[r]=f,f+=c[r];ht(l)&&ht(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,o=getBinaryAccessor(l),l=o.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,f));let h=i.length;for(r=0;r<h;++r){let m=i[r].length,y=i[r].instances,b=getBinaryProperties(m,y,e);i[r].instances=combine(b,y)}let p=new Array(h).fill(0),d=new Uint16Array(s);for(r=0;r<s;++r)n=a[r],d[r]=p[n],++p[n];let g={classes:i,classIds:a,classIndexes:d,parentCounts:c,parentIndexes:u,parentIds:l};return TB(g),g}function en(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?yB(t,e,r):bB(t,e,r)}function yB(t,e,r){let n=t.classIds,o=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,f=scratchStack;for(f.length=0,f.push(e);f.length>0;){if(e=f.pop(),c[e]===l)continue;c[e]=l;let u=r(t,e);if(ht(u))return u;let h=o[e],p=i[e];for(let d=0;d<h;++d){let g=s[p+d];g!==e&&f.push(g)}}return null}function bB(t,e,r){let n=!0;for(;n;){let o=r(t,e);if(ht(o))return o;let s=t.parentIds[e];n=s!==e,e=s}throw new Error("traverseHierarchySingleParent")}function TB(t){let e=[],n=t.classIds.length;for(let o=0;o<n;++o)Pg(t,o,stack)}function Pg(t,e,r){let n=t.parentCounts,o=t.parentIds,s=t.parentIndexes,a=t.classIds.length;if(!ht(o))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=ht(n)?n[e]:1,l=ht(n)?s[e]:e;for(let f=0;f<c;++f){let u=o[l+f];u!==e&&Pg(t,u,r)}r.pop(e)}function we(t){return t!=null}var gi=(t,e)=>t,MB={HIERARCHY:!0,extensions:!0,extras:!0},yr=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,n,o={}){H(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(let s in this.json)MB[s]||(this._properties[s]=this.json[s]);this._binaryProperties=this._initializeBinaryProperties(),o["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Fg(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),H(typeof r=="string",r),this._hierarchy){let n=en(this._hierarchy,e,(o,s)=>{let i=o.classIds[s];return o.classes[i].name===r});return we(n)}return!1}isExactClass(e,r){return H(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),H(typeof r=="string",r),we(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=we(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),H(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(we(o))return this._getBinaryProperty(o,e)}let n=this._properties[r];if(we(n))return gi(n[e],!0);if(this._hierarchy){let o=this._getHierarchyProperty(e,r);if(we(o))return o}}setProperty(e,r,n){let o=this.featureCount;if(this._checkBatchId(e),H(typeof r=="string",r),this._binaryProperties){let i=this._binaryProperties[r];if(i){this._setBinaryProperty(i,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let s=this._properties[r];we(s)||(this._properties[r]=new Array(o),s=this._properties[r]),s[e]=gi(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],o=this._initializeBinaryProperty(r,n);o&&(e=e||{},e[r]=o)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;H(this.binary,`Property ${e} requires a batch table binary.`),H(n.type,`Property ${e} requires a type.`);let o=Lg(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:o.values,componentCount:o.size,unpack:o.unpacker,pack:o.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=en(this._hierarchy,e,(o,s)=>{let i=o.classIds[s],a=o.classes[i].instances;return we(a[r])});return we(n)}_getPropertyNamesInHierarchy(e,r){en(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s].instances;for(let a in i)i.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return en(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s],a=n.classIndexes[o],c=i.instances[r];return we(c)?we(c.typedArray)?this._getBinaryProperty(c,a):gi(c[a],!0):null})}_setHierarchyProperty(e,r,n,o){let s=en(this._hierarchy,r,(i,a)=>{let c=i.classIds[a],l=i.classes[c],f=i.classIndexes[a],u=l.instances[n];return we(u)?(H(a===r,`Inherited property "${n}" is read-only.`),we(u.typedArray)?this._setBinaryProperty(u,f,o):u[f]=gi(o,!0),!0):!1});return we(s)}};function zt(t,e,r=0){let 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 tn=4,Ng="b3dm tile in legacy format.";function rn(t,e,r){let n=new DataView(e),o;t.header=t.header||{};let s=n.getUint32(r,!0);r+=tn;let i=n.getUint32(r,!0);r+=tn;let a=n.getUint32(r,!0);r+=tn;let c=n.getUint32(r,!0);return r+=tn,a>=570425344?(r-=tn*2,o=s,a=i,c=0,s=0,i=0,console.warn(Ng)):c>=570425344&&(r-=tn,o=a,a=s,c=i,s=0,i=0,console.warn(Ng)),t.header.featureTableJsonByteLength=s,t.header.featureTableBinaryByteLength=i,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=o,r}function nn(t,e,r,n){return r=SB(t,e,r,n),r=EB(t,e,r,n),r}function SB(t,e,r,n){let{featureTableJsonByteLength:o,featureTableBinaryByteLength:s,batchLength:i}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:i||0},o&&o>0){let a=ml(e,r,o);t.featureTableJson=JSON.parse(a)}return r+=o||0,t.featureTableBinary=new Uint8Array(e,r,s),r+=s||0,r}function EB(t,e,r,n){let{batchTableJsonByteLength:o,batchTableBinaryByteLength:s}=t.header||{};if(o&&o>0){let i=ml(e,r,o);t.batchTableJson=JSON.parse(i),r+=o,s&&s>0&&(t.batchTableBinary=new Uint8Array(e,r,s),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=s)}return r}function Sl(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:o,pointCount:s=0}=t;if(n&&r){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=n[a],f=r.getProperty(c,"dimensions").map(u=>u*255);i[a*3]=f[0],i[a*3+1]=f[1],i[a*3+2]=f[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}if(e&&o){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=Tl(e[a]);i[a*3]=c[0],i[a*3+1]=c[1],i[a*3+2]=c[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}return e&&e.length===s*3?{type:O.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:O.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var Og=new x;function Ug(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++)Ml(e[n*2],e[n*2+1],Og),Og.toArray(r,n*3);return{type:O.FLOAT,size:2,value:r}}return{type:O.FLOAT,size:2,value:e}}function Dg(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,_B(t,e)):{type:O.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function _B(t,e){let r=new x,n=new Float32Array(t.pointCount*3);for(let o=0;o<t.pointCount;o++)r.set(e[o*3],e[o*3+1],e[o*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,o*3);return n}async function Gg(t,e,r,n,o){r=zt(t,e,r),r=rn(t,e,r),r=nn(t,e,r,n),CB(t);let{featureTable:s,batchTable:i}=BB(t);return await LB(t,s,i,n,o),IB(t,s,n),vB(t,s,i),RB(t,s),r}function CB(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function BB(t){let e=new Tt(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",O.FLOAT,3);let n=wB(t,e);return{featureTable:e,batchTable:n}}function IB(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",O.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=Dg(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function vB(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",O.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",O.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",O.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=Sl(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",O.UNSIGNED_BYTE,4))}function RB(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",O.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",O.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=Ug(t,r)}}function wB(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",O.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:o,batchTableBinary:s}=t;r=new yr(o,s,n)}return r}async function LB(t,e,r,n,o){let s,i,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){i=l.properties;let u=l.byteOffset,h=l.byteLength;if(!i||!Number.isFinite(u)||!h)throw new Error("Draco properties, byteOffset, and byteLength must be defined");s=(t.featureTableBinary||[]).slice(u,u+h),t.hasPositions=Number.isFinite(i.POSITION),t.hasColors=Number.isFinite(i.RGB)||Number.isFinite(i.RGBA),t.hasNormals=Number.isFinite(i.NORMAL),t.hasBatchIds=Number.isFinite(i.BATCH_ID),t.isTranslucent=Number.isFinite(i.RGBA)}if(!s)return!0;let f={buffer:s,properties:{...i,...a},featureTableProperties:i,batchTableProperties:a,dequantizeInShader:!1};return await FB(t,f,n,o)}async function FB(t,e,r,n){if(!n)return;let o={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete o["3d-tiles"];let s=await Oe(e.buffer,yo,o,n),i=s.attributes.POSITION&&s.attributes.POSITION.value,a=s.attributes.COLOR_0&&s.attributes.COLOR_0.value,c=s.attributes.NORMAL&&s.attributes.NORMAL.value,l=s.attributes.BATCH_ID&&s.attributes.BATCH_ID.value,f=i&&s.attributes.POSITION.value.quantization,u=c&&s.attributes.NORMAL.value.quantization;if(f){let p=s.POSITION.data.quantization,d=p.range;t.quantizedVolumeScale=new x(d,d,d),t.quantizedVolumeOffset=new x(p.minValues),t.quantizedRange=(1<<p.quantizationBits)-1,t.isQuantizedDraco=!0}u&&(t.octEncodedRange=(1<<s.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let h={};if(e.batchTableProperties)for(let p of Object.keys(e.batchTableProperties))s.attributes[p]&&s.attributes[p].value&&(h[p.toLowerCase()]=s.attributes[p].value);t.attributes={positions:i,colors:Sl(t,a,void 0),normals:c,batchIds:l,...h}}var El={};be(El,{createExtMeshFeatures:()=>YB,decode:()=>qB,encode:()=>JB,name:()=>jB});function ue(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var Ai={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},xi={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var PB=1.33,Vg=["SCALAR","VEC2","VEC3","VEC4"],NB=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],OB=new Map(NB),UB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},DB={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},GB={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function yi(t){return Vg[t-1]||Vg[0]}function kt(t){let e=OB.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function on(t,e){let r=GB[t.componentType],n=UB[t.type],o=DB[t.componentType],s=t.count*n,i=t.count*n*o;ue(i>=0&&i<=e.byteLength);let a=xi[t.componentType],c=Ai[t.type];return{ArrayType:r,length:s,byteLength:i,componentByteSize:a,numberOfComponentsInElement:c}}function bo(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(i=>i.bufferView);r=r.filter(i=>!n.includes(i));let o=r.reduce((i,a)=>i+a.byteLength,0),s=e.reduce((i,a)=>{let{width:c,height:l}=a.image;return i+c*l},0);return o+Math.ceil(4*s*PB)}function Hg(t,e,r){let n=t.bufferViews[r];ue(n);let o=n.buffer,s=e[o];ue(s);let i=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,i,n.byteLength)}function zg(t,e,r){let n=typeof r=="number"?t.accessors?.[r]:r;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=t.bufferViews?.[n.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:s,byteOffset:i}=e[o.buffer],a=(i||0)+(n.byteOffset||0)+(o.byteOffset||0),{ArrayType:c,length:l,componentByteSize:f,numberOfComponentsInElement:u}=on(n,o),h=f*u,p=o.byteStride||h;if(typeof o.byteStride>"u"||o.byteStride===h)return new c(s,a,l);let d=new c(l);for(let g=0;g<n.count;g++){let m=new c(s,a+g*p,u);d.set(m,g*u)}return d}function VB(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var j=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||VB(),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(o=>o===e),n=this.getRequiredExtensions().find(o=>o===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(o=>o===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];ue(n);let o=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,o,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return zg(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),o=this.getBuffer(r.buffer).data,s=r.byteOffset||0;return new Uint8Array(o,s,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 o=e.extensions||{};o[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let o=this.json.extensionsRemoved;o.includes(r)||o.push(r)}delete n[r]}addExtension(e,r={}){return ue(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return ue(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){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let r=this.json.extensionsRemoved;r.includes(e)||r.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 o={mesh:r};return n&&(o.matrix=n),this.json.nodes.push(o),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:o,mode:s=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:s}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(o)&&(a.primitives[0].material=o),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=lr(e),o=r||n?.mimeType,i={bufferView:this.addBufferView(e),mimeType:o};return this.json.images=this.json.images||[],this.json.images.push(i),this.json.images.length-1}addBufferView(e,r=0,n=this.byteLength){let o=e.byteLength;ue(Number.isFinite(o)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let s={buffer:r,byteOffset:n,byteLength:o};return this.byteLength+=Rt(o,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:yi(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,r={size:3}){let n=this.addBufferView(e),o={min:r.min,max:r.max};(!o.min||!o.max)&&(o=this._getAccessorMinMax(e,r.size));let s={size:r.size,componentType:kt(e),count:Math.round(e.length/r.size),min:o.min,max:o.max};return this.addAccessor(n,Object.assign(s,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(){let e=this.byteLength,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;for(let s of this.sourceBuffers||[])o=xc(s,n,o);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=r,this.sourceBuffers=[r],this.gltf.buffers=[{arrayBuffer:r,byteOffset:0,byteLength:r.byteLength}]}_removeStringFromArray(e,r){let n=!0;for(;n;){let o=e.indexOf(r);o>-1?e.splice(o,1):n=!1}}_addAttributes(e={}){let r={};for(let n in e){let o=e[n],s=this._getGltfAttributeName(n),i=this.addBinaryBuffer(o.value,o);r[s]=i}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 o=e.subarray(0,r);for(let s of o)n.min.push(s),n.max.push(s);for(let s=r;s<e.length;s+=r)for(let i=0;i<r;i++)n.min[0+i]=Math.min(n.min[0+i],e[s+i]),n.max[0+i]=Math.max(n.max[0+i],e[s+i]);return n}};function kg(t){return(t%1+1)%1}var jg={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},HB={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},qg={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function To(t,e){return qg[e]*jg[t]}function sn(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let o=t.getTypedArrayForBufferView(e),s=an(o,"SCALAR",r,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function an(t,e,r,n=1){let o=jg[e],s=HB[r],i=qg[r],a=n*o,c=a*i,l=t.buffer,f=t.byteOffset;return f%i!==0&&(l=new Uint8Array(l).slice(f,f+c).buffer,f=0),new s(Ft(l),f,a)}function cn(t,e,r){let n=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[n],s=t.getTypedArrayForAccessor(o),i=t.gltf.json,a=e.index,c=i.textures?.[a]?.source;if(typeof c<"u"){let l=i.images?.[c]?.mimeType,f=t.gltf.images?.[c];if(f&&typeof f.width<"u"){let u=[];for(let h=0;h<s.length;h+=2){let p=zB(f,l,s,h,e.channels);u.push(p)}return u}}return[]}function bi(t,e,r,n,o){if(!r?.length)return;let s=[];for(let f of r){let u=n.findIndex(h=>h===f);u===-1&&(u=n.push(f)-1),s.push(u)}let i=new Uint32Array(s),a=t.gltf.buffers.push({arrayBuffer:i.buffer,byteOffset:i.byteOffset,byteLength:i.byteLength})-1,c=t.addBufferView(i,a,0),l=t.addAccessor(c,{size:1,componentType:kt(i),count:i.length});o.attributes[e]=l}function zB(t,e,r,n,o=[0]){let s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},i=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=kB(i,a,t,c),f=0;for(let u of o){let h=typeof u=="number"?Object.values(s)[u]:s[u],p=l+h.offset,d=Qn(t);if(d.data.length<=p)throw new Error(`${d.data.length} <= ${p}`);let g=d.data[p];f|=g<<h.shift}return f}function kB(t,e,r,n=1){let o=r.width,s=kg(t)*(o-1),i=Math.round(s),a=r.height,c=kg(e)*(a-1),l=Math.round(c),f=r.components?r.components:n;return(l*o+i)*f}function Ti(t,e,r,n,o){let s=[];for(let i=0;i<e;i++){let a=r[i],c=r[i+1]-r[i];if(c+a>n)break;let l=a/o,f=c/o;s.push(t.slice(l,l+f))}return s}function Mi(t,e,r){let n=[];for(let o=0;o<e;o++){let s=o*r;n.push(t.slice(s,s+r))}return n}function Si(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let o=[],s=new TextDecoder("utf8"),i=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+i<=e.length){let l=e.subarray(i,c+i),f=s.decode(l);o.push(f),i+=c}}return o}return[]}var ln="EXT_mesh_features",jB=ln;async function qB(t,e){let r=new j(t);WB(r,e)}function JB(t,e){let r=new j(t);return XB(r,e),r.createBinaryChunk(),r.gltf}function WB(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let o of n.primitives)KB(t,o,e)}function KB(t,e,r){if(!r?.gltf?.loadBuffers)return;let o=e.extensions?.[ln]?.featureIds;if(o)for(let s of o){let i;if(typeof s.attribute<"u"){let a=`_FEATURE_ID_${s.attribute}`,c=e.attributes[a];i=t.getTypedArrayForAccessor(c)}else typeof s.texture<"u"&&r?.gltf?.loadImages?i=cn(t,s.texture,e):i=[];s.data=i}}function XB(t,e){let r=t.gltf.json.meshes;if(r)for(let n of r)for(let o of n.primitives)QB(t,o)}function YB(t,e,r,n){e.extensions||(e.extensions={});let o=e.extensions[ln];o||(o={featureIds:[]},e.extensions[ln]=o);let{featureIds:s}=o,i={featureCount:r.length,propertyTable:n,data:r};s.push(i),t.addObjectExtension(e,ln,o)}function QB(t,e){let r=e.extensions?.[ln];if(!r)return;let n=r.featureIds;n.forEach((o,s)=>{if(o.data){let{accessorKey:i,index:a}=ZB(e.attributes),c=new Uint32Array(o.data);n[s]={featureCount:c.length,propertyTable:o.propertyTable,attribute:a},t.gltf.buffers.push({arrayBuffer:c.buffer,byteOffset:c.byteOffset,byteLength:c.byteLength});let l=t.addBufferView(c),f=t.addAccessor(l,{size:1,componentType:kt(c),count:c.length});e.attributes[i]=f}})}function ZB(t){let e="_FEATURE_ID_",r=Object.keys(t).filter(s=>s.indexOf(e)===0),n=-1;for(let s of r){let i=Number(s.substring(e.length));i>n&&(n=i)}return n++,{accessorKey:`${e}${n}`,index:n}}var Bl={};be(Bl,{createExtStructuralMetadata:()=>bI,decode:()=>eI,encode:()=>tI,name:()=>$B});var fn="EXT_structural_metadata",$B=fn;async function eI(t,e){let r=new j(t);rI(r,e)}function tI(t,e){let r=new j(t);return xI(r,e),r.createBinaryChunk(),r.gltf}function rI(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(fn);r&&(e.gltf?.loadImages&&nI(t,r),oI(t,r))}function nI(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let o of n.meshes)for(let s of o.primitives)iI(t,r,s,e)}function oI(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.propertyTables;if(n&&o)for(let s in n){let i=sI(o,s);i&&cI(t,r,i)}}function sI(t,e){for(let r of t)if(r.class===e)return r;return null}function iI(t,e,r,n){if(!e)return;let s=r.extensions?.[fn]?.propertyTextures;if(s)for(let i of s){let a=e[i];aI(t,a,r,n)}}function aI(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let o=e.class;for(let s in e.properties){let i=`${o}_${s}`,a=e.properties?.[s];if(!a)continue;a.data||(a.data=[]);let c=a.data,l=cn(t,a,r);l!==null&&(bi(t,i,l,c,r),a.data=c,n.dataAttributeNames.push(i))}}function cI(t,e,r){let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=lI(t,e,i,o,a);a.data=c}}}function lI(t,e,r,n,o){let s=[],i=o.values,a=t.getTypedArrayForBufferView(i),c=fI(t,r,o,n),l=uI(t,o,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=hI(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{s=Si(n,a,c,l);break}case"ENUM":{s=pI(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return s}function fI(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?sn(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function uI(t,e,r){return typeof e.stringOffsets<"u"?sn(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function hI(t,e,r,n){let o=t.array,s=t.count,i=To(t.type,t.componentType),a=r.byteLength/i,c;return t.componentType?c=an(r,t.type,t.componentType,a):c=r,o?n?Ti(c,e,n,r.length,i):s?Mi(c,e,s):[]:c}function pI(t,e,r,n,o){let s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let i=t.enums?.[s];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);let a=i.valueType||"UINT16",c=To(e.type,a),l=n.byteLength/c,f=an(n,e.type,a,l);if(f||(f=n),e.array){if(o)return dI({valuesData:f,numberOfElements:r,arrayOffsets:o,valuesDataBytesLength:n.length,elementSize:c,enumEntry:i});let u=e.count;return u?mI(f,r,u,i):[]}return Cl(f,0,r,i)}function dI(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:o,elementSize:s,enumEntry:i}=t,a=[];for(let c=0;c<r;c++){let l=n[c],f=n[c+1]-n[c];if(f+l>o)break;let u=l/s,h=f/s,p=Cl(e,u,h,i);a.push(p)}return a}function mI(t,e,r,n){let o=[];for(let s=0;s<e;s++){let i=r*s,a=Cl(t,i,r,n);o.push(a)}return o}function Cl(t,e,r,n){let o=[];for(let s=0;s<r;s++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)o.push("");else{let i=t[e+s],a=gI(n,i);a?o.push(a.name):o.push("")}return o}function gI(t,e){for(let r of t.values)if(r.value===e)return r;return null}var AI="schemaClassId";function xI(t,e){let r=t.getExtension(fn);if(r&&r.propertyTables)for(let n of r.propertyTables){let o=n.class,s=r.schema?.classes?.[o];n.properties&&s&&yI(n,s,t)}}function yI(t,e,r){for(let n in t.properties){let o=t.properties[n].data;if(o){let s=e.properties[n];if(s){let i=SI(o,s,r);t.properties[n]=i}}}}function bI(t,e,r=AI){let n=t.getExtension(fn);n||(n=t.addExtension(fn)),n.schema=TI(e,r,n.schema);let o=MI(e,r,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(o)-1}function TI(t,e,r){let n=r??{id:"schema_id"},o={properties:{}};for(let s of t){let i={type:s.elementType,componentType:s.componentType};o.properties[s.name]=i}return n.classes={},n.classes[e]=o,n}function MI(t,e,r){let n={class:e,count:0},o=0,s=r.classes?.[e];for(let i of t){if(o===0&&(o=i.values.length),o!==i.values.length&&i.values.length)throw new Error("Illegal values in attributes");s?.properties[i.name]&&(n.properties||(n.properties={}),n.properties[i.name]={values:0,data:i.values})}return n.count=o,n}function SI(t,e,r){let n={values:0};if(e.type==="STRING"){let{stringData:o,stringOffsets:s}=CI(t);n.stringOffsets=_l(s,r),n.values=_l(o,r)}else if(e.type==="SCALAR"&&e.componentType){let o=_I(t,e.componentType);n.values=_l(o,r)}return n}var EI={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function _I(t,e){let r=[];for(let o of t)r.push(Number(o));let n=EI[e];if(!n)throw new Error("Illegal component type");return new n(r)}function CI(t){let e=new TextEncoder,r=[],n=0;for(let c of t){let l=e.encode(c);n+=l.length,r.push(l)}let o=new Uint8Array(n),s=[],i=0;for(let c of r)o.set(c,i),s.push(i),i+=c.length;s.push(i);let a=new Uint32Array(s);return{stringData:o,stringOffsets:a}}function _l(t,e){return e.gltf.buffers.push({arrayBuffer:Ft(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var Il={};be(Il,{decode:()=>II,name:()=>BI});var Jg="EXT_feature_metadata",BI=Jg;async function II(t,e){let r=new j(t);vI(r,e)}function vI(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(Jg);r&&(e.gltf?.loadImages&&RI(t,r),wI(t,r))}function RI(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:o}=e;if(n&&o)for(let s in n){let i=n[s],a=FI(o,s);a&&NI(t,a,i)}}function wI(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.featureTables;if(n&&o)for(let s in n){let i=LI(o,s);i&&PI(t,r,i)}}function LI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function FI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function PI(t,e,r){if(!r.class)return;let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=OI(t,e,i,o,a);a.data=c}}}function NI(t,e,r){let n=e.class;for(let o in r.properties){let s=e?.properties?.[o];if(s){let i=HI(t,s,n);s.data=i}}}function OI(t,e,r,n,o){let s=[],i=o.bufferView,a=t.getTypedArrayForBufferView(i),c=UI(t,r,o,n),l=DI(t,r,o,n);return r.type==="STRING"||r.componentType==="STRING"?s=Si(n,a,c,l):GI(r)&&(s=VI(r,n,a,c)),s}function UI(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?sn(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function DI(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?sn(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function GI(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 VI(t,e,r,n){let o=t.type==="ARRAY",s=t.componentCount,i="SCALAR",a=t.componentType||t.type,c=To(i,a),l=r.byteLength/c,f=an(r,i,a,l);return o?n?Ti(f,e,n,r.length,c):s?Mi(f,e,s):[]:f}function HI(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let o=[];for(let s of n.meshes)for(let i of s.primitives)zI(t,r,e,o,i);return o}function zI(t,e,r,n,o){let s={channels:r.channels,...r.texture},i=cn(t,s,o);i&&bi(t,e,i,n,o)}var Wg="4.4.1";var un=!0,Kg=1735152710,wl=12,Ei=8,kI=1313821514,jI=5130562,qI=0,JI=0,WI=1;function KI(t,e=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 Xg(t,e=0,r={}){let n=new DataView(t),{magic:o=Kg}=r,s=n.getUint32(e,!1);return s===o||s===Kg}function Yg(t,e,r=0,n={}){let o=new DataView(e),s=KI(o,r+0),i=o.getUint32(r+4,un),a=o.getUint32(r+8,un);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:s,version:i,json:{},binChunks:[]}),r+=wl,t.version){case 1:return XI(t,o,r);case 2:return YI(t,o,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function XI(t,e,r){H(t.header.byteLength>wl+Ei);let n=e.getUint32(r+0,un),o=e.getUint32(r+4,un);return r+=Ei,H(o===qI),vl(t,e,r,n),r+=n,r+=Rl(t,e,r,t.header.byteLength),r}function YI(t,e,r,n){return H(t.header.byteLength>wl+Ei),QI(t,e,r,n),r+t.header.byteLength}function QI(t,e,r,n){for(;r+8<=t.header.byteLength;){let o=e.getUint32(r+0,un),s=e.getUint32(r+4,un);switch(r+=Ei,s){case kI:vl(t,e,r,o);break;case jI:Rl(t,e,r,o);break;case JI:n.strict||vl(t,e,r,o);break;case WI:n.strict||Rl(t,e,r,o);break;default:break}r+=Rt(o,4)}return r}function vl(t,e,r,n){let o=new Uint8Array(e.buffer,r,n),i=new TextDecoder("utf8").decode(o);return t.json=JSON.parse(i),Rt(n,4)}function Rl(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Rt(n,4)}function Ll(t,e,r){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let o=r?.baseUrl||ZI(e?.core?.baseUrl);if(!o)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return o.endsWith("/")?`${o}${t}`:`${o}/${t}`}function ZI(t){if(!t)return;if(t.endsWith("/"))return t;let e=t.lastIndexOf("/");return e>=0?t.slice(0,e+1):""}var Pl={};be(Pl,{decode:()=>f2,name:()=>l2});var $I="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",e2="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",t2=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]),r2=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]),n2={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},o2={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Qg(t,e,r,n,o,s="NONE"){let i=await s2();c2(i,i.exports[o2[o]],t,e,r,n,i.exports[n2[s||"NONE"]])}var Fl;async function s2(){return Fl||(Fl=i2()),Fl}async function i2(){let t=$I;WebAssembly.validate(t2)&&(t=e2,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(a2(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function a2(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let o=t.charCodeAt(n);e[n]=o>96?o-71:o>64?o-65:o>47?o+4:o>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?r2[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function c2(t,e,r,n,o,s,i){let a=t.exports.sbrk,c=n+3&-4,l=a(c*o),f=a(s.length),u=new Uint8Array(t.exports.memory.buffer);u.set(s,f);let h=e(l,n,o,f,s.length);if(h===0&&i&&i(l,c,o),r.set(u.subarray(l,l+n*o)),a(l-a(0)),h!==0)throw new Error(`Malformed buffer data: ${h}`)}var _i="EXT_meshopt_compression",l2=_i;async function f2(t,e){let r=new j(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let o of t.json.bufferViews||[])n.push(u2(r,o));await Promise.all(n),r.removeExtension(_i)}async function u2(t,e){let r=t.getObjectExtension(e,_i);if(r){let{byteOffset:n=0,byteLength:o=0,byteStride:s,count:i,mode:a,filter:c="NONE",buffer:l}=r,f=t.gltf.buffers[l],u=new Uint8Array(f.arrayBuffer,f.byteOffset+n,o),h=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Qg(h,i,s,u,a,c),t.removeObjectExtension(e,_i)}}var Nl={};be(Nl,{name:()=>h2,preprocess:()=>p2});var hn="EXT_texture_webp",h2=hn;function p2(t,e){let r=new j(t);if(!Rc("image/webp")){if(r.getRequiredExtensions().includes(hn))throw new Error(`gltf: Required extension ${hn} not supported by browser`);return}let{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,hn);s&&(o.source=s.source),r.removeObjectExtension(o,hn)}r.removeExtension(hn)}var Ol={};be(Ol,{name:()=>d2,preprocess:()=>m2});var Ci="KHR_texture_basisu",d2=Ci;function m2(t,e){let r=new j(t),{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,Ci);s&&(o.source=s.source,r.removeObjectExtension(o,Ci))}r.removeExtension(Ci)}var Dl={};be(Dl,{decode:()=>b2,encode:()=>T2,name:()=>x2,preprocess:()=>y2});function Zg(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let o=Ul(n);e[r]=o}}return e}function Ul(t){let{buffer:e,size:r,count:n}=g2(t);return{value:e,size:r,byteOffset:0,count:n,type:yi(r),componentType:kt(e)}}function g2(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=A2(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function A2(t,e,r=!1){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var jt="KHR_draco_mesh_compression",x2=jt;function y2(t,e,r){let n=new j(t);for(let o of $g(n))n.getObjectExtension(o,jt)}async function b2(t,e,r){if(!e?.gltf?.decompressMeshes)return;let n=new j(t),o=[];for(let s of $g(n))n.getObjectExtension(s,jt)&&o.push(M2(n,s,e,r));await Promise.all(o),n.removeExtension(jt)}function T2(t,e={}){let r=new j(t);for(let n of r.json.meshes||[])S2(n,e),r.addRequiredExtension(jt)}async function M2(t,e,r,n){let o=t.getObjectExtension(e,jt);if(!o)return;let s=t.getTypedArrayForBufferView(o.bufferView),i=sr(s.buffer,s.byteOffset),a={...r};delete a["3d-tiles"];let c=await Oe(i,yo,a,n),l=Zg(c.attributes);for(let[f,u]of Object.entries(l))if(f in e.attributes){let h=e.attributes[f],p=t.getAccessor(h);p?.min&&p?.max&&(u.min=p.min,u.max=p.max)}e.attributes=l,c.indices&&(e.indices=Ul(c.indices)),t.removeObjectExtension(e,jt),E2(e)}function S2(t,e,r=4,n,o){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let s=n.DracoWriter.encodeSync({attributes:t}),i=o?.parseSync?.({attributes:t}),a=n._addFauxAttributes(i.attributes),c=n.addBufferView(s);return{primitives:[{attributes:a,mode:r,extensions:{[jt]:{bufferView:c,attributes:a}}}]}}function E2(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*$g(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Gl={};be(Gl,{decode:()=>I2,name:()=>_2});var Ii="KHR_texture_transform",_2=Ii,Bi=new x,C2=new k,B2=new k;async function I2(t,e){if(!new j(t).hasExtension(Ii)||!e.gltf?.loadBuffers)return;let o=t.json.materials||[];for(let s=0;s<o.length;s++)v2(s,t)}function v2(t,e){let r=e.json.materials?.[t],n=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],o=[];for(let s of n)s&&s?.extensions?.[Ii]&&R2(e,t,s,o)}function R2(t,e,r,n){let o=w2(r,n);if(!o)return;let s=t.json.meshes||[];for(let i of s)for(let a of i.primitives){let c=a.material;Number.isFinite(c)&&e===c&&L2(t,a,o)}}function w2(t,e){let r=t.extensions?.[Ii],{texCoord:n=0}=t,{texCoord:o=n}=r;if(!(e.findIndex(([i,a])=>i===n&&a===o)!==-1)){let i=N2(r);return n!==o&&(t.texCoord=o),e.push([n,o]),{originalTexCoord:n,texCoord:o,matrix:i}}return null}function L2(t,e,r){let{originalTexCoord:n,texCoord:o,matrix:s}=r,i=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(i)){let a=t.json.accessors?.[i];if(a&&a.bufferView!==void 0){let c=t.json.bufferViews?.[a.bufferView];if(c){let{arrayBuffer:l,byteOffset:f}=t.buffers[c.buffer],u=(f||0)+(a.byteOffset||0)+(c.byteOffset||0),{ArrayType:h,length:p}=on(a,c),d=xi[a.componentType],g=Ai[a.type],m=c.byteStride||d*g,y=new Float32Array(p);for(let b=0;b<a.count;b++){let M=new h(l,u+b*m,2);Bi.set(M[0],M[1],1),Bi.transformByMatrix3(s),y.set([Bi[0],Bi[1]],b*g)}n===o?F2(a,t,y,a.bufferView):P2(o,a,e,t,y)}}}}function F2(t,e,r,n){t.componentType=5126,t.byteOffset=0;let i=(e.json.accessors||[]).reduce((l,f)=>f.bufferView===n?l+1:l,0)>1;e.buffers.push({arrayBuffer:Ft(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let a=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],i){e.json.bufferViews.push({buffer:a,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let c=e.json.bufferViews[n];c&&(c.buffer=a,c.byteOffset=0,c.byteLength=r.buffer.byteLength,c.byteStride!==void 0&&delete c.byteStride)}function P2(t,e,r,n,o){n.buffers.push({arrayBuffer:Ft(o.buffer),byteOffset:0,byteLength:o.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let s=n.json.bufferViews;s.push({buffer:n.buffers.length-1,byteLength:o.buffer.byteLength,byteOffset:0});let i=n.json.accessors;i&&(i.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=i.length-1)}function N2(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,o=new k().set(1,0,0,0,1,0,e[0],e[1],1),s=C2.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),i=B2.set(n[0],0,0,0,n[1],0,0,0,1);return o.multiplyRight(s).multiplyRight(i)}var Vl={};be(Vl,{decode:()=>U2,encode:()=>D2,name:()=>O2});var br="KHR_lights_punctual",O2=br;async function U2(t){let e=new j(t),{json:r}=e,n=e.getExtension(br);n&&(e.json.lights=n.lights,e.removeExtension(br));for(let o of r.nodes||[]){let s=e.getObjectExtension(o,br);s&&(o.light=s.light),e.removeObjectExtension(o,br)}}async function D2(t){let e=new j(t),{json:r}=e;if(r.lights){let n=e.addExtension(br);ue(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let o=n.node;e.addObjectExtension(o,br,n)}delete e.json.lights}}var Hl={};be(Hl,{decode:()=>V2,encode:()=>H2,name:()=>G2});var Mo="KHR_materials_unlit",G2=Mo;async function V2(t){let e=new j(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,Mo);e.removeExtension(Mo)}function H2(t){let e=new j(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,Mo,{}),e.addExtension(Mo))}var zl={};be(zl,{decode:()=>k2,encode:()=>j2,name:()=>z2});var So="KHR_techniques_webgl",z2=So;async function k2(t){let e=new j(t),{json:r}=e,n=e.getExtension(So);if(n){let o=q2(n,e);for(let s of r.materials||[]){let i=e.getObjectExtension(s,So);i&&(s.technique=Object.assign({},i,o[i.technique]),s.technique.values=J2(s.technique,e)),e.removeObjectExtension(s,So)}e.removeExtension(So)}}async function j2(t,e){}function q2(t,e){let{programs:r=[],shaders:n=[],techniques:o=[]}=t,s=new TextDecoder;return n.forEach(i=>{if(Number.isFinite(i.bufferView))i.code=s.decode(e.getTypedArrayForBufferView(i.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(i=>{i.fragmentShader=n[i.fragmentShader],i.vertexShader=n[i.vertexShader]}),o.forEach(i=>{i.program=r[i.program]}),o}function J2(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 e0=[Bl,El,Pl,Nl,Ol,Dl,Vl,Hl,zl,Gl,Il];function t0(t,e={},r){let n=e0.filter(o=>n0(o.name,e));for(let o of n)o.preprocess?.(t,e,r)}async function r0(t,e={},r){let n=e0.filter(o=>n0(o.name,e));for(let o of n)await o.decode?.(t,e,r)}function n0(t,e){let r=e?.gltf?.excludeExtensions||{};return!(t in r&&!r[t])}var kl="KHR_binary_glTF";function o0(t){let e=new j(t),{json:r}=e;for(let n of r.images||[]){let o=e.getObjectExtension(n,kl);o&&Object.assign(n,o),e.removeObjectExtension(n,kl)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(kl)}var s0={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},K2={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},jl=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;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),o0(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 s0)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let o in n){let s=n[o];s.id=s.id||o;let i=e[r].length;e[r].push(s),this.idToIndexMap[r][o]=i}}}_convertObjectIdsToArrayIndices(e){for(let r in s0)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:o,material:s}=r;for(let i in n)n[i]=this._convertIdToIndex(n[i],"accessor");o&&(r.indices=this._convertIdToIndex(o,"accessor")),s&&(r.material=this._convertIdToIndex(s,"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 o in n){let s=n[o],i=this._convertIdToIndex(s,o);n[o]=i}}_convertIdToIndex(e,r){let n=K2[r];if(n in this.idToIndexMap){let o=this.idToIndexMap[n][e];if(!Number.isFinite(o))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return o}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let r of e.materials){r.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,o=e.textures.findIndex(s=>s.id===n);o!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:o})}}};function i0(t,e={}){return new jl().normalize(t,e)}async function a0(t,e,r=0,n,o){return X2(t,e,r,n),i0(t,{normalize:n?.gltf?.normalize}),t0(t,n,o),n?.gltf?.loadBuffers&&t.json.buffers&&await Y2(t,n,o),n?.gltf?.loadImages&&await Q2(t,n,o),await r0(t,n,o),t}function X2(t,e,r,n){if(n.core?.baseUrl&&(t.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!Xg(e,r,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=Ac(e);else if(e instanceof ArrayBuffer){let i={};r=Yg(i,e,r,n.glb),ue(i.type==="glTF",`Invalid GLB magic string ${i.type}`),t._glb=i,t.json=i.json}else ue(!1,"GLTF: must be ArrayBuffer or string");let o=t.json.buffers||[];if(t.buffers=new Array(o.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:i}=t._glb;t.buffers[0]={arrayBuffer:i[0].arrayBuffer,byteOffset:i[0].byteOffset,byteLength:i[0].byteLength}}let s=t.json.images||[];t.images=new Array(s.length).fill({})}async function Y2(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let s=n[o];if(s.uri){let{fetch:i}=r;ue(i);let a=Ll(s.uri,e,r),l=await(await r?.fetch?.(a))?.arrayBuffer?.();t.buffers[o]={arrayBuffer:l,byteOffset:0,byteLength:l.byteLength},delete s.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function Q2(t,e,r){let n=Z2(t),o=t.json.images||[],s=[];for(let i of n)s.push($2(t,o[i],i,e,r));return await Promise.all(s)}function Z2(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 $2(t,e,r,n,o){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){let l=Ll(e.uri,n,o),{fetch:f}=o;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){let l=Hg(t.json,t.buffers,e.bufferView);s=sr(l.buffer,l.byteOffset,l.byteLength)}ue(s,"glTF image has no data");let i=n,a={...i,core:{...i?.core,mimeType:e.mimeType}},c=await Oe(s,[Kr,Xc],a,o);c&&c[0]&&(c={compressed:!0,mipmaps:!1,width:c[0].width,height:c[0].height,data:c[0]}),t.images=t.images||[],t.images[r]=c}var Tr={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Wg,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:e3,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};async function e3(t,e={},r){let n={...Tr.options,...e};n.gltf={...Tr.options.gltf,...n.gltf};let o=e?.glb?.byteOffset||0;return await a0({},t,o,n,r)}var t3={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},r3={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},je={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},n3={magFilter:je.TEXTURE_MAG_FILTER,minFilter:je.TEXTURE_MIN_FILTER,wrapS:je.TEXTURE_WRAP_S,wrapT:je.TEXTURE_WRAP_T},o3={[je.TEXTURE_MAG_FILTER]:je.LINEAR,[je.TEXTURE_MIN_FILTER]:je.NEAREST_MIPMAP_LINEAR,[je.TEXTURE_WRAP_S]:je.REPEAT,[je.TEXTURE_WRAP_T]:je.REPEAT};function s3(){return{id:"default-sampler",parameters:o3}}function i3(t){return r3[t]}function a3(t){return t3[t]}var ql=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:n,buffers:o=[],images:s=[]}=e,{baseUri:i=""}=e;return ue(n),this.baseUri=i,this.buffers=o,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r={}){let n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((o,s)=>this._resolveBufferView(o,s))),e.images&&(n.images=e.images.map((o,s)=>this._resolveImage(o,s))),e.samplers&&(n.samplers=e.samplers.map((o,s)=>this._resolveSampler(o,s))),e.textures&&(n.textures=e.textures.map((o,s)=>this._resolveTexture(o,s))),e.accessors&&(n.accessors=e.accessors.map((o,s)=>this._resolveAccessor(o,s))),e.materials&&(n.materials=e.materials.map((o,s)=>this._resolveMaterial(o,s))),e.meshes&&(n.meshes=e.meshes.map((o,s)=>this._resolveMesh(o,s))),e.nodes&&(n.nodes=e.nodes.map((o,s)=>this._resolveNode(o,s)),n.nodes=n.nodes.map((o,s)=>this._resolveNodeChildren(o))),e.skins&&(n.skins=e.skins.map((o,s)=>this._resolveSkin(o,s))),e.scenes&&(n.scenes=e.scenes.map((o,s)=>this._resolveScene(o,s))),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((o,s)=>{let i=this.getMesh(s);return o.id=i.id,o.primitives=o.primitives.concat(i.primitives),o},{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(o=>{let s={...o,attributes:{},indices:void 0,material:void 0},i=o.attributes;for(let a in i)s.attributes[a]=this.getAccessor(i[a]);return o.indices!==void 0&&(s.indices=this.getAccessor(o.indices)),o.material!==void 0&&(s.material=this.getMaterial(o.material)),s})),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 o=n.pbrMetallicRoughness;o.baseColorTexture&&(o.baseColorTexture={...o.baseColorTexture},o.baseColorTexture.texture=this.getTexture(o.baseColorTexture.index)),o.metallicRoughnessTexture&&(o.metallicRoughnessTexture={...o.metallicRoughnessTexture},o.metallicRoughnessTexture.texture=this.getTexture(o.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=i3(e.componentType),o=a3(e.type),s=n*o,i={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:o,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(i.bufferView=this.getBufferView(e.bufferView)),i.bufferView){let a=i.bufferView.buffer,{ArrayType:c,byteLength:l}=on(i,i.bufferView),f=(i.bufferView.byteOffset||0)+(i.byteOffset||0)+a.byteOffset,u=Jn(a.arrayBuffer,f,l);i.bufferView.byteStride&&(u=this._getValueFromInterleavedBuffer(a,f,i.bufferView.byteStride,i.bytesPerElement,i.count)),i.value=new c(u)}return i}_getValueFromInterleavedBuffer(e,r,n,o,s){let i=new Uint8Array(s*o);for(let a=0;a<s;a++){let c=r+a*n;i.set(new Uint8Array(e.arrayBuffer.slice(c,c+o)),a*o)}return i.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):s3(),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 o in n){let s=this._enumSamplerParameter(o);s!==void 0&&(n.parameters[s]=n[o])}return n}_enumSamplerParameter(e){return n3[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},o=this.images[r];return o&&(n.image=o),n}_resolveBufferView(e,r){let n=e.buffer,o=this.buffers[n].arrayBuffer,s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(o,s,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function Eo(t,e){return new ql().postProcess(t,e)}var vi={URI:0,EMBEDDED:1};function Ri(t,e,r,n){t.rotateYtoZ=!0;let o=(t.byteOffset||0)+(t.byteLength||0)-r;if(o===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=sr(e,r,o),t.gltfByteOffset=0,t.gltfByteLength=o,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 wi(t,e,r,n){let o=r?.["3d-tiles"]||{};if(c3(t,e,r),o.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:s}=n,i=await s(t.gltfUrl,r?.core);t.gltfArrayBuffer=await i.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let s=await Oe(t.gltfArrayBuffer,Tr,r,n);t.gltf=Eo(s),t.gpuMemoryUsageInBytes=bo(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function c3(t,e,r){switch(e){case vi.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),s=new TextDecoder().decode(n);t.gltfUrl=s.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case vi.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function c0(t,e,r,n,o){r=l3(t,e,r,n,o),await wi(t,vi.EMBEDDED,n,o);let s=t?.gltf?.extensions;return s&&s.CESIUM_RTC&&(t.rtcCenter=s.CESIUM_RTC.center),r}function l3(t,e,r,n,o){r=zt(t,e,r),r=rn(t,e,r),r=nn(t,e,r,n),r=Ri(t,e,r,n);let s=new Tt(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=s.getGlobalProperty("RTC_CENTER",O.FLOAT,3),r}async function l0(t,e,r,n,o){return r=f3(t,e,r,n,o),await wi(t,t.gltfFormat||0,n,o),r}function f3(t,e,r,n,o){if(r=zt(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=rn(t,e,r);let s=new DataView(e);if(t.gltfFormat=s.getUint32(r,!0),r+=4,r=nn(t,e,r,n),r=Ri(t,e,r,n),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let i=new Tt(t.featureTableJson,t.featureTableBinary),a=i.getGlobalProperty("INSTANCES_LENGTH");if(i.featuresLength=a,!Number.isFinite(a))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=i.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=i.getGlobalProperty("RTC_CENTER",O.FLOAT,3);let c=new yr(t.batchTableJson,t.batchTableBinary,a);return u3(t,i,c,a),r}function u3(t,e,r,n){let o=new Array(n),s=new x,i=new x,a=new x,c=new x,l=new k,f=new st,u=new x,h={},p=new N,d=[],g=[],m=[],y=[];for(let b=0;b<n;b++){let M;if(e.hasProperty("POSITION"))M=e.getProperty("POSITION",O.FLOAT,3,b,s);else if(e.hasProperty("POSITION_QUANTIZED")){M=e.getProperty("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3,b,s);let A=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3);if(!A)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let B=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3);if(!B)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let L=65535;for(let F=0;F<3;F++)M[F]=M[F]/L*B[F]+A[F]}if(!M)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");s.copy(M),h.translation=s,t.normalUp=e.getProperty("NORMAL_UP",O.FLOAT,3,b,d),t.normalRight=e.getProperty("NORMAL_RIGHT",O.FLOAT,3,b,g);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",O.UNSIGNED_SHORT,2,b,d),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",O.UNSIGNED_SHORT,2,b,g),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?(G.WGS84.eastNorthUpToFixedFrame(s,p),p.getRotationMatrix3(l)):l.identity()}S&&(c.copy(i).cross(a).normalize(),l.setColumn(0,i),l.setColumn(1,a),l.setColumn(2,c)),f.fromMatrix3(l),h.rotation=f,u.set(1,1,1);let C=e.getProperty("SCALE",O.FLOAT,1,b,m);Number.isFinite(C)&&u.multiplyByScalar(C);let _=e.getProperty("SCALE_NON_UNIFORM",O.FLOAT,3,b,d);_&&u.scale(_),h.scale=u;let v=e.getProperty("BATCH_ID",O.UNSIGNED_SHORT,1,b,y);v===void 0&&(v=b);let E=new N().fromQuaternion(h.rotation);p.identity(),p.translate(h.translation),p.multiplyRight(E),p.scale(h.scale);let T=p.clone();o[b]={modelMatrix:T,batchId:v}}t.instances=o}async function f0(t,e,r,n,o,s){r=zt(t,e,r);let i=new DataView(e);for(t.tilesLength=i.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 s(e,r,n,o,a)}return r}async function u0(t,e,r,n){if(t.rotateYtoZ=!0,t.gltfUpAxis=r?.["3d-tiles"]?.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;let o=await Oe(e,Tr,r,n);t.gltf=Eo(o),t.gpuMemoryUsageInBytes=bo(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Jl(t,e=0,r,n,o={shape:"tile3d"}){switch(o.byteOffset=e,o.type=Ag(t,e),o.type){case Ar.COMPOSITE:return await f0(o,t,e,r,n,Jl);case Ar.BATCHED_3D_MODEL:return await c0(o,t,e,r,n);case Ar.GLTF:return await u0(o,t,r,n);case Ar.INSTANCED_3D_MODEL:return await l0(o,t,e,r,n);case Ar.POINT_CLOUD:return await Gg(o,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${o.type}`)}}async function Wl(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 s=h0(t.slice(8,16)),i=new Uint8Array(t,24,s),c=new TextDecoder("utf8").decode(i),l=JSON.parse(c),f=h0(t.slice(16,24)),u=new ArrayBuffer(0);if(f&&(u=t.slice(24+s)),await Li(l,l.tileAvailability,u,r),Array.isArray(l.contentAvailability))for(let h of l.contentAvailability)await Li(l,h,u,r);else await Li(l,l.contentAvailability,u,r);return await Li(l,l.childSubtreeAvailability,u,r),l}async function Li(t,e,r,n){let o=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof o!="number")return;let s=t.bufferViews[o],i=t.buffers[s.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(i.uri){let c=`${n?.baseUrl||""}/${i.uri}`,f=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(f,s.byteOffset,s.byteLength);return}let a=t.buffers.slice(0,s.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+i.byteLength),s.byteOffset,s.byteLength)}function h0(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Fi={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:mi,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Wl,options:{}};var P0=U(er(),1);var R0=U(er(),1);var qe=null;try{qe=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 Se(t){return(t&&t.__isLong__)===!0}function p0(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=Se;var d0={},m0={};function Mr(t,e){var r,n,o;return e?(t>>>=0,(o=0<=t&&t<256)&&(n=m0[t],n)?n:(r=q(t,0,!0),o&&(m0[t]=r),r)):(t|=0,(o=-128<=t&&t<128)&&(n=d0[t],n)?n:(r=q(t,t<0?-1:0,!1),o&&(d0[t]=r),r))}Z.fromInt=Mr;function Je(t,e){if(isNaN(t))return e?Mt:tt;if(e){if(t<0)return Mt;if(t>=y0)return M0}else{if(t<=-A0)return Le;if(t+1>=A0)return T0}return t<0?Je(-t,e).neg():q(t%dn|0,t/dn|0,e)}Z.fromNumber=Je;function q(t,e,r){return new Z(t,e,r)}Z.fromBits=q;var Pi=Math.pow;function Xl(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?Mt:tt;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 Xl(t.substring(1),e,r).neg();for(var o=Je(Pi(r,8)),s=tt,i=0;i<t.length;i+=8){var a=Math.min(8,t.length-i),c=parseInt(t.substring(i,i+a),r);if(a<8){var l=Je(Pi(r,a));s=s.mul(l).add(Je(c))}else s=s.mul(o),s=s.add(Je(c))}return s.unsigned=e,s}Z.fromString=Xl;function rt(t,e){return typeof t=="number"?Je(t,e):typeof t=="string"?Xl(t,e):q(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=rt;var g0=1<<16,h3=1<<24,dn=g0*g0,y0=dn*dn,A0=y0/2,x0=Mr(h3),tt=Mr(0);Z.ZERO=tt;var Mt=Mr(0,!0);Z.UZERO=Mt;var pn=Mr(1);Z.ONE=pn;var b0=Mr(1,!0);Z.UONE=b0;var Kl=Mr(-1);Z.NEG_ONE=Kl;var T0=q(-1,2147483647,!1);Z.MAX_VALUE=T0;var M0=q(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=M0;var Le=q(0,-2147483648,!1);Z.MIN_VALUE=Le;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*dn+(this.low>>>0):this.high*dn+(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(Le)){var r=Je(e),n=this.div(r),o=n.mul(r).sub(this);return n.toString(e)+o.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var s=Je(Pi(e,6),this.unsigned),i=this,a="";;){var c=i.div(s),l=i.sub(c.mul(s)).toInt()>>>0,f=l.toString(e);if(i=c,i.isZero())return f+a;for(;f.length<6;)f="0"+f;a=""+f+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(Le)?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 Se(e)||(e=rt(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(Se(e)||(e=rt(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(Le)?Le:this.not().add(pn)};I.neg=I.negate;I.add=function(e){Se(e)||(e=rt(e));var r=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,f=0,u=0,h=0,p=0;return p+=s+l,h+=p>>>16,p&=65535,h+=o+c,u+=h>>>16,h&=65535,u+=n+a,f+=u>>>16,u&=65535,f+=r+i,f&=65535,q(h<<16|p,f<<16|u,this.unsigned)};I.subtract=function(e){return Se(e)||(e=rt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(Se(e)||(e=rt(e)),qe){var r=qe.mul(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Mt:tt;if(this.eq(Le))return e.isOdd()?Le:tt;if(e.eq(Le))return this.isOdd()?Le:tt;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(x0)&&e.lt(x0))return Je(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,f=e.low&65535,u=0,h=0,p=0,d=0;return d+=i*f,p+=d>>>16,d&=65535,p+=s*f,h+=p>>>16,p&=65535,p+=i*l,h+=p>>>16,p&=65535,h+=o*f,u+=h>>>16,h&=65535,h+=s*l,u+=h>>>16,h&=65535,h+=i*c,u+=h>>>16,h&=65535,u+=n*f+o*l+s*c+i*a,u&=65535,q(p<<16|d,u<<16|h,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(Se(e)||(e=rt(e)),e.isZero())throw Error("division by zero");if(qe){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?qe.div_u:qe.div_s)(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mt:tt;var n,o,s;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Mt;if(e.gt(this.shru(1)))return b0;s=Mt}else{if(this.eq(Le)){if(e.eq(pn)||e.eq(Kl))return Le;if(e.eq(Le))return pn;var i=this.shr(1);return n=i.div(e).shl(1),n.eq(tt)?e.isNegative()?pn:Kl:(o=this.sub(e.mul(n)),s=n.add(o.div(e)),s)}else if(e.eq(Le))return this.unsigned?Mt:tt;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();s=tt}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Pi(2,a-48),l=Je(n),f=l.mul(e);f.isNegative()||f.gt(o);)n-=c,l=Je(n,this.unsigned),f=l.mul(e);l.isZero()&&(l=pn),s=s.add(l),o=o.sub(f)}return s};I.div=I.divide;I.modulo=function(e){if(Se(e)||(e=rt(e)),qe){var r=(this.unsigned?qe.rem_u:qe.rem_s)(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return q(~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?p0(this.low):p0(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return Se(e)||(e=rt(e)),q(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return Se(e)||(e=rt(e)),q(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return Se(e)||(e=rt(e)),q(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):q(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):q(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?q(this.high,0,this.unsigned):q(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?q(this.high,this.low,this.unsigned):e<32?(r=32-e,q(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,q(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 Se(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?q(this.high,this.low,this.unsigned):e<32?(r=32-e,q(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,q(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?q(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:q(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 mn=Z;var p3=16;function _o(t){t==="X"&&(t="");let e=t.padEnd(p3,"0");return mn.fromString(e,!0,16)}function Yl(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let s=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-s.length).join("0")+s}function Ql(t,e){let r=d3(t).shiftRightUnsigned(2);return t.add(mn.fromNumber(2*e+1-4).multiply(r))}function d3(t){return t.and(t.not().add(1))}var m3=3,g3=30,A3=2*g3+1,S0=180/Math.PI;function _0(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],o=n.length,s=0,i=[0,0];for(let a=o-1;a>=0;a--){s=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,s-1);x3(u,i,l,f),i[0]+=u*l,i[1]+=u*f}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:s}}function C0(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<m3+A3;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=mn.fromString(n,!0,2).toString(10),a="";if(s!==0)for(a=mn.fromString(o,!0,2).toString(4);a.length<s;)a="0"+a;return`${i}/${a}`}function Zl(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function E0(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function $l(t){return[E0(t[0]),E0(t[1])]}function ef(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 tf([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*S0,n*S0]}function x3(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function B0(t){let e=Zl(t.ij,t.level,[.5,.5]),r=$l(e),n=ef(t.face,r);return tf(n)}var y3=100;function rf(t){let{face:e,ij:r,level:n}=t,o=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(y3*Math.pow(2,-n))),i=new Float64Array(4*s*2+2),a=0,c=0;for(let l=0;l<4;l++){let f=o[l].slice(0),u=o[l+1],h=(u[0]-f[0])/s,p=(u[1]-f[1])/s;for(let d=0;d<s;d++){f[0]+=h,f[1]+=p;let g=Zl(r,n,f),m=$l(g),y=ef(e,m),b=tf(y);Math.abs(b[1])>89.999&&(b[0]=c);let M=b[0]-c;b[0]+=M>180?-360:M<-180?360:0,i[a++]=b[0],i[a++]=b[1],c=b[0]}}return i[a++]=i[0],i[a++]=i[1],i}function gn(t){let e=b3(t);return _0(e)}function b3(t){if(t.indexOf("/")>0)return t;let e=_o(t);return C0(e)}function nf(t){let e=gn(t);return B0(e)}function v0(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let o=0;o<4;o++){let s=`${t.face}/${o}`,i=gn(s),a=rf(i);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=I0(r)}else{let r=rf(t);e=I0(r)}return e}function I0(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,o)=>n-o),r.sort((n,o)=>n-o),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function of(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,o=gn(t),s=v0(o),i=s.west,a=s.south,c=s.east,l=s.north,f=[];return f.push(new x(i,l,r)),f.push(new x(c,l,r)),f.push(new x(c,a,r)),f.push(new x(i,a,r)),f.push(new x(i,l,n)),f.push(new x(c,l,n)),f.push(new x(c,a,n)),f.push(new x(i,a,n)),f}function Ni(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=of(e,r),o=nf(e),s=o[0],i=o[1],a=G.WGS84.cartographicToCartesian([s,i,r.maximumHeight]),c=new x(a[0],a[1],a[2]);n.push(c);let l=so(n);return[...l.center,...l.halfAxes]}var T3=4,M3=8,S3={QUADTREE:T3,OCTREE:M3};function E3(t,e,r){if(t?.box){let n=_o(t.s2VolumeInfo.token),o=Ql(n,e),s=Yl(o),i={...t.s2VolumeInfo};switch(i.token=s,r){case"OCTREE":let l=t.s2VolumeInfo,f=l.maximumHeight-l.minimumHeight,u=f/2,h=l.minimumHeight+f/2;l.minimumHeight=h-u,l.maximumHeight=h+u;break;default:break}return{box:Ni(i),s2VolumeInfo:i}}}async function af(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:n={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:o=0,implicitOptions:s,loaderOptions:i,s2VolumeBox:a}=t,{subdivisionScheme:c,subtreeLevels:l,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:h,basePath:p}=s,d={children:[],lodMetricValue:0,contentUrl:""};if(!f)return uc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),d;let g=n.localLevel+1,m=r.level+g;if(m>f)return d;let y=S3[c],b=Math.log2(y),M=o&1,S=o>>1&1,C=o>>2&1,_=Sr(n.localX,M,1),v=Sr(n.localY,S,1),E=Sr(n.localZ,C,1),T=Sr(r.x,_,g),A=Sr(r.y,v,g),B=Sr(r.z,E,g),L=Sr(n.mortonIndex,o,b),F=g===l&&sf(e.childSubtreeAvailability,L),w,D,W,z;if(F){let X=`${p}/${h}`,ee=Oi(X,m,T,A,B);w=await(0,R0.load)(ee,Fi,i),z=0,D={level:m,x:T,y:A,z:B},W={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else w=e,z=(y**g-1)/(y-1)+L,D=r,W={mortonIndex:L,localLevel:g,localX:_,localY:v,localZ:E};if(!sf(w.tileAvailability,z))return d;sf(w.contentAvailability,z)&&(d.contentUrl=Oi(u,m,T,A,B));for(let X=0;X<y;X++){let ee=E3(a,X,c),Ie=await af({subtree:w,subtreeData:D,parentData:W,childIndex:X,implicitOptions:s,loaderOptions:i,s2VolumeBox:ee});(Ie.contentUrl||Ie.children.length)&&d.children.push(Ie)}return d.contentUrl||d.children.length?_3(d,{level:m,x:T,y:A,z:B},s,a):d}function sf(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&uc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?I3(e,r.explicitBitstream):!1}function _3(t,e,r,n){let{basePath:o,refine:s,getRefine:i,lodMetricType:a,getTileType:c,rootLodMetricValue:l,rootBoundingVolume:f}=r,u=t.contentUrl&&t.contentUrl.replace(`${o}/`,""),h=l/2**e.level,p=n?.box?{box:n.box}:f,d=C3(p,e,r.subdivisionScheme);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:i(s),type:c(t),lodMetricType:a,lodMetricValue:h,geometricError:h,transform:t.transform,boundingVolume:d}}function C3(t,e,r){if(t.region){let{level:n,x:o,y:s,z:i}=e,[a,c,l,f,u,h]=t.region,p=2**n,d=(l-a)/p,[g,m]=[a+d*o,a+d*(o+1)],y=(f-c)/p,[b,M]=[c+y*s,c+y*(s+1)],S,C;if(r==="OCTREE"){let _=(h-u)/p;[S,C]=[u+_*i,u+_*(i+1)]}else[S,C]=[u,h];return{region:[g,b,m,M,S,C]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function Sr(t,e,r){return(t<<r)+e}function Oi(t,e,r,n,o){let s=B3({level:e,x:r,y:n,z:o});return t.replace(/{level}|{x}|{y}|{z}/gi,i=>s[i])}function B3(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function I3(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function lf(t,e=""){if(!e)return ke.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return ke.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return ke.SCENEGRAPH;default:return n||ke.EMPTY}}function ff(t){switch(t){case"REPLACE":case"replace":return Te.REPLACE;case"ADD":case"add":return Te.ADD;default:return t}}function cf(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 Pt.resolve(e,t)}function w0(t,e){if(!t)return null;let r;if(t.content){let o=t.content.uri||t.content?.url;typeof o<"u"&&(r=cf(o,e))}return{...t,id:r,contentUrl:r,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:lf(t,r),refine:ff(t.refine)}}async function N0(t,e,r){let n=null,o=F0(t.root);o&&t.root?n=await L0(t.root,t,e,o,r):n=w0(t.root,e);let s=[];for(s.push(n);s.length>0;){let i=s.pop()||{},a=i.children||[],c=[];for(let l of a){let f=F0(l),u;f?u=await L0(l,t,e,f,r):u=w0(l,e),u&&(c.push(u),s.push(u))}i.children=c}return n}async function L0(t,e,r,n,o){let{subdivisionScheme:s,maximumLevel:i,availableLevels:a,subtreeLevels:c,subtrees:{uri:l}}=n,f=Oi(l,0,0,0,0),u=cf(f,r),h=await(0,P0.load)(u,Fi,o),p=t.content?.uri,d=p?cf(p,r):"",g=e?.root?.refine,m=t.geometricError,y=t.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(y){let C={box:Ni(y),s2VolumeInfo:y};t.boundingVolume=C}let b=t.boundingVolume,M={contentUrlTemplate:d,subtreesUriTemplate:l,subdivisionScheme:s,subtreeLevels:c,maximumLevel:Number.isFinite(a)?a-1:i,refine:g,basePath:r,lodMetricType:bt.GEOMETRIC_ERROR,rootLodMetricValue:m,rootBoundingVolume:b,getTileType:lf,getRefine:ff};return await v3(t,r,h,M,o)}async function v3(t,e,r,n,o){if(!t)return null;let{children:s,contentUrl:i}=await af({subtree:r,implicitOptions:n,loaderOptions:o}),a,c=null;return i&&(a=i,c={uri:i.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:lf(t,a),refine:ff(t.refine),content:c||t.content,children:s}}function F0(t){return t?.extensions?.["3DTILES_implicit_tiling"]||t?.implicitTiling}var Ui={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:mi,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:R3,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function R3(t,e={},r){let n=e["3d-tiles"]||{},o;return n.isTileset==="auto"?o=r?.url&&r.url.indexOf(".json")!==-1:o=n.isTileset,o?w3(t,e,r):L3(t,e,r)}async function w3(t,e,r){let n=JSON.parse(new TextDecoder().decode(t)),o=r?.url||"",s=F3(o),i=await N0(n,s,e||{});return{...n,shape:"tileset3d",loader:Ui,url:o,queryString:r?.queryString||"",basePath:s,root:i||n.root,type:de.TILES3D,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0}}async function L3(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Jl(t,0,e,r,n.content),n.content}function F3(t){return Pt.dirname(t)}var O0=[0],P3={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Ui,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]}},Co=class extends qt.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&qt.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:o}=this.state;Object.keys(o).length&&(this._updateTileset(o),this.state.lastUpdatedViewports=o,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:o}=this.state;for(let s in o)o[s].needsUpdate=!0}}finalizeState(e){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(e)}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let o=n?.[e.id];(!o||!e.equals(o))&&(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,cullRect:n,isPicking:o}){let{tile:s}=e.props,{id:i}=r;if(!s.selected||!s.viewportIds.includes(i))return!1;if(o&&n&&s.content?.cartographicOrigin){let[a,c]=r.project(s.content.cartographicOrigin),l=n.x+n.width/2,f=n.y+n.height/2,u=Math.max(r.width,r.height)/4,h=a-l,p=c-f;if(h*h+p*p>u*u)return!1}return!0}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let r=this.props.loadOptions||{},n=this.props.loaders?.length?this.props.loaders:this.props.loader,o=Array.isArray(n)?n[0]:n,{tileset:s,...i}=r,a={loadOptions:{...i},...s},c=e;if("preload"in o&&typeof o.preload=="function"){let u=await o.preload(e,r);u.url&&(c=u.url),u.headers&&(a.loadOptions.core={...a.loadOptions.core,fetch:{...a.loadOptions.core?.fetch,headers:u.headers}}),Object.assign(a,u)}let l=await(0,V0.load)(c,o,a.loadOptions),f=new go(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate(),...a});this.setState({tileset3d:f,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(f)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;e.tileDrawn=!1,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,o=Object.keys(e).length;!n||!o||!r||r.selectTiles(Object.values(e)).then(s=>{this.state.frameNumber!==s&&this.setState({frameNumber:s})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case ke.POINTCLOUD:return this._makePointCloudLayer(e,r);case ke.SCENEGRAPH:return this._make3DModelLayer(e);case ke.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:o,constantRGBA:s,cartographicOrigin:i,modelMatrix:a}=e.content,{positions:c,normals:l,colors:f}=n;if(!c)return null;let u=r&&r.props.data||{header:{vertexCount:o},attributes:{POSITION:c,NORMAL:l,COLOR_0:f}},{pointSize:h,getPointColor:p}=this.props,d=this.getSubLayerClass("pointcloud",D0.PointCloudLayer);return new d({pointSize:h},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:u,coordinateSystem:qt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:i,modelMatrix:a,getColor:s||p,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:o,modelMatrix:s}=e.content,i=this.getSubLayerClass("scenegraph",G0.ScenegraphLayer);return new i({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||O0,scenegraph:r,coordinateSystem:qt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:s,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{e.tileDrawn=!0}})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:o,indices:s,modelMatrix:i,cartographicOrigin:a,coordinateSystem:c=qt.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:f}=n,{_getMeshColor:u}=this.props,h=r&&r.props.mesh||new U0.Geometry({topology:"triangle-list",attributes:N3(o),indices:s}),p=this.getSubLayerClass("mesh",Lm);return new p(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:h,data:O0,getColor:u(e),pbrMaterial:l,modelMatrix:i,coordinateOrigin:a,coordinateSystem:c,featureIds:f,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let o=r[n.id]=r[n.id]||{tile:n},{layer:s}=o;return n.selected&&(s?o.needsUpdate&&(s=this._getSubLayer(n,s),o.needsUpdate=!1):s=this._getSubLayer(n)),o.layer=s,s}).filter(Boolean):null}};Co.defaultProps=P3;Co.layerName="Tile3DLayer";var H0=Co;function N3(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 zi=U(Xe(),1),mf=U(Ys(),1),K0=U(Xe(),1);var O3=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 uf(t){return t>>1^-(t&1)}function U3(t){let e=0,r={};for(let[n,o]of O3){let s=o===8?t.getFloat64:t.getFloat32;r[n]=s.call(t,e,!0),e+=o}return{header:r,headerEndPosition:e}}function D3(t,e){let r=e,n=3,o=t.getUint32(r,!0),s=new Uint16Array(o*n);r+=Uint32Array.BYTES_PER_ELEMENT;let i=Uint16Array.BYTES_PER_ELEMENT,a=o*i,c=r,l=c+a,f=l+a,u=0,h=0,p=0;for(let d=0;d<o;d++)u+=uf(t.getUint16(c+i*d,!0)),h+=uf(t.getUint16(l+i*d,!0)),p+=uf(t.getUint16(f+i*d,!0)),s[d]=u,s[d+o]=h,s[d+o*2]=p;return r+=a*3,{vertexData:s,vertexDataEndPosition:r}}function Bo(t,e,r,n,o=!0){let s;if(n===2?s=new Uint16Array(t,e,r):s=new Uint32Array(t,e,r),!o)return s;let i=0;for(let a=0;a<s.length;++a){let c=s[a];s[a]=i-c,c===0&&++i}return s}function G3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%i!==0&&(n+=i-n%i);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Bo(t.buffer,n,c,i);return n+=c*i,{triangleIndicesEndPosition:n,triangleIndices:l}}function V3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Bo(t.buffer,n,a,i,!1);n+=a*i;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let f=Bo(t.buffer,n,l,i,!1);n+=l*i;let u=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Bo(t.buffer,n,u,i,!1);n+=u*i;let p=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let d=Bo(t.buffer,n,p,i,!1);return n+=p*i,{edgeIndicesEndPosition:n,westIndices:c,southIndices:f,eastIndices:h,northIndices:d}}function H3(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function z3(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function k3(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let o=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let s=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let i=new DataView(t.buffer,n,s);switch(o){case 1:{r.vertexNormals=H3(i);break}case 2:{r.waterMask=z3(i);break}default:}n+=s}return{extensions:r,extensionsEndPosition:n}}var Er={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},j3={maxDecodingStep:Er.extensions};function hf(t,e){let r=Object.assign({},j3,e),n=new DataView(t),{header:o,headerEndPosition:s}=U3(n);if(r.maxDecodingStep<Er.vertices)return{header:o};let{vertexData:i,vertexDataEndPosition:a}=D3(n,s);if(r.maxDecodingStep<Er.triangleIndices)return{header:o,vertexData:i};let{triangleIndices:c,triangleIndicesEndPosition:l}=G3(n,i,a);if(r.maxDecodingStep<Er.edgeIndices)return{header:o,vertexData:i,triangleIndices:c};let{westIndices:f,southIndices:u,eastIndices:h,northIndices:p,edgeIndicesEndPosition:d}=V3(n,i,l);if(r.maxDecodingStep<Er.extensions)return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u};let{extensions:g}=k3(n,d);return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u,extensions:g}}function Di(t,e,r,n){let o=n?J3(n,t.POSITION.value):q3(e),s=new t.POSITION.value.constructor(o.length*6),i=new t.TEXCOORD_0.value.constructor(o.length*4),a=new e.constructor(o.length*6);for(let l=0;l<o.length;l++){let f=o[l];W3({edge:f,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:s,newTexcoord0:i,newTriangles:a})}t.POSITION.value=jn(t.POSITION.value,s),t.TEXCOORD_0.value=jn(t.TEXCOORD_0.value,i);let c=e instanceof Array?e.concat(a):jn(e,a);return{attributes:t,triangles:c}}function q3(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,s)=>Math.min(...o)-Math.min(...s)||Math.max(...o)-Math.max(...s));let r=[],n=0;for(;n<e.length;)e[n][0]===e[n+1]?.[1]&&e[n][1]===e[n+1]?.[0]?n+=2:(r.push(e[n]),n++);return r}function J3(t,e){t.westIndices.sort((n,o)=>e[3*n+1]-e[3*o+1]),t.eastIndices.sort((n,o)=>e[3*o+1]-e[3*n+1]),t.southIndices.sort((n,o)=>e[3*o]-e[3*n]),t.northIndices.sort((n,o)=>e[3*n]-e[3*o]);let r=[];for(let n in t){let o=t[n];for(let s=0;s<o.length-1;s++)r.push([o[s],o[s+1]])}return r}function W3({edge:t,edgeIndex:e,attributes:r,skirtHeight:n,newPosition:o,newTexcoord0:s,newTriangles:i}){let a=r.POSITION.value.length,c=e*2,l=e*2+1;o.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),c*3),o[c*3+2]=o[c*3+2]-n,o.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),l*3),o[l*3+2]=o[l*3+2]-n,s.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),c*2),s.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),l*2);let f=e*2*3;i[f]=t[0],i[f+1]=a/3+l,i[f+2]=t[1],i[f+3]=a/3+l,i[f+4]=t[0],i[f+5]=a/3+c}function pf(t,e={}){let{bounds:r}=e,{header:n,vertexData:o,triangleIndices:s,westIndices:i,northIndices:a,eastIndices:c,southIndices:l}=hf(t,Er.triangleIndices),f=s,u=K3(o,n,r),h=xr(u);if(e?.skirtHeight){let{attributes:p,triangles:d}=Di(u,f,e.skirtHeight,{westIndices:i,northIndices:a,eastIndices:c,southIndices:l});u=p,f=d}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:h},schema:void 0,topology:"triangle-list",mode:4,indices:{value:f,size:1},attributes:u}}function K3(t,e,r){let{minHeight:n,maxHeight:o}=e,[s,i,a,c]=r||[0,0,1,1],l=a-s,f=c-i,u=o-n,h=t.length/3,p=new Float32Array(h*3),d=new Float32Array(h*2);for(let g=0;g<h;g++){let m=t[g]/32767,y=t[g+h]/32767,b=t[g+h*2]/32767;p[3*g+0]=m*l+s,p[3*g+1]=y*f+i,p[3*g+2]=b*u+n,d[2*g+0]=m,d[2*g+1]=y}return{POSITION:{value:p,size:3},TEXCOORD_0:{value:d,size:2}}}var Io=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 o=n+2,s=0,i=0,a=0,c=0,l=0,f=0;for(o&1?a=c=l=r:s=i=f=r;(o>>=1)>1;){let h=s+a>>1,p=i+c>>1;o&1?(a=s,c=i,s=l,i=f):(s=a,i=c,a=l,c=f),l=h,f=p}let u=n*4;this.coords[u+0]=s,this.coords[u+1]=i,this.coords[u+2]=a,this.coords[u+3]=c}}createTile(e){return new df(e,this)}},df=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:o}=this.martini,{terrain:s,errors:i}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],f=n[c+1],u=n[c+2],h=n[c+3],p=l+u>>1,d=f+h>>1,g=p+d-f,m=d+l-p,y=(s[f*o+l]+s[h*o+u])/2,b=d*o+p,M=Math.abs(y-s[b]);if(i[b]=Math.max(i[b],M),a<r){let S=(f+m>>1)*o+(l+g>>1),C=(h+m>>1)*o+(u+g>>1);i[b]=Math.max(i[b],i[S],i[C])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:o}=this,s=0,i=0,a=r-1;n.fill(0);function c(p,d,g,m,y,b){let M=p+g>>1,S=d+m>>1;Math.abs(p-y)+Math.abs(d-b)>1&&o[S*r+M]>e?(c(y,b,p,d,M,S),c(g,m,y,b,M,S)):(n[d*r+p]=n[d*r+p]||++s,n[m*r+g]=n[m*r+g]||++s,n[b*r+y]=n[b*r+y]||++s,i++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(s*2),f=new Uint32Array(i*3),u=0;function h(p,d,g,m,y,b){let M=p+g>>1,S=d+m>>1;if(Math.abs(p-y)+Math.abs(d-b)>1&&o[S*r+M]>e)h(y,b,p,d,M,S),h(g,m,y,b,M,S);else{let C=n[d*r+p]-1,_=n[m*r+g]-1,v=n[b*r+y]-1;l[2*C]=p,l[2*C+1]=d,l[2*_]=g,l[2*_+1]=m,l[2*v]=y,l[2*v+1]=b,f[u++]=C,f[u++]=_,f[u++]=v}}return h(0,0,a,a,a,0),h(a,a,0,0,0,a),{vertices:l,triangles:f}}};var vo=class{constructor(e,r,n=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 o=r-1,s=n-1,i=this._addPoint(0,0),a=this._addPoint(o,0),c=this._addPoint(0,s),l=this._addPoint(o,s),f=this._addTriangle(l,i,c,-1,-1,-1);this._addTriangle(i,l,a,f,-1,-1),this._flush()}run(e=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],o=2*this.triangles[n*3+0],s=2*this.triangles[n*3+1],i=2*this.triangles[n*3+2];this._findCandidate(e[o],e[o+1],e[s],e[s+1],e[i],e[i+1],n)}this._pendingLen=0}_findCandidate(e,r,n,o,s,i,a){let c=Math.min(e,n,s),l=Math.min(r,o,i),f=Math.max(e,n,s),u=Math.max(r,o,i),h=_r(n,o,s,i,c,l),p=_r(s,i,e,r,c,l),d=_r(e,r,n,o,c,l),g=o-r,m=e-n,y=i-o,b=n-s,M=r-i,S=s-e,C=_r(e,r,n,o,s,i),_=this.heightAt(e,r)/C,v=this.heightAt(n,o)/C,E=this.heightAt(s,i)/C,T=0,A=0,B=0,L=0;for(let F=l;F<=u;F++){let w=0;h<0&&y!==0&&(w=Math.max(w,Math.floor(-h/y))),p<0&&M!==0&&(w=Math.max(w,Math.floor(-p/M))),d<0&&g!==0&&(w=Math.max(w,Math.floor(-d/g)));let D=h+y*w,W=p+M*w,z=d+g*w,re=!1;for(let Y=c+w;Y<=f;Y++){if(D>=0&&W>=0&&z>=0){re=!0;let X=_*D+v*W+E*z,ee=Math.abs(X-this.heightAt(Y,F));L+=ee*ee,ee>T&&(T=ee,A=Y,B=F)}else if(re)break;D+=y,W+=M,z+=g}h+=b,p+=S,d+=m}(A===e&&B===r||A===n&&B===o||A===s&&B===i)&&(T=0),this._candidates[2*a]=A,this._candidates[2*a+1]=B,this._rms[a]=L,this._queuePush(a,T,L)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,o=e*3+2,s=this.triangles[r],i=this.triangles[n],a=this.triangles[o],c=this.coords[2*s],l=this.coords[2*s+1],f=this.coords[2*i],u=this.coords[2*i+1],h=this.coords[2*a],p=this.coords[2*a+1],d=this._candidates[2*e],g=this._candidates[2*e+1],m=this._addPoint(d,g);if(_r(c,l,f,u,d,g)===0)this._handleCollinear(m,r);else if(_r(f,u,h,p,d,g)===0)this._handleCollinear(m,n);else if(_r(h,p,c,l,d,g)===0)this._handleCollinear(m,o);else{let y=this._halfedges[r],b=this._halfedges[n],M=this._halfedges[o],S=this._addTriangle(s,i,m,y,-1,-1,r),C=this._addTriangle(i,a,m,b,-1,S+1),_=this._addTriangle(a,s,m,M,S+2,C+1);this._legalize(S),this._legalize(C),this._legalize(_)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,o,s,i,a=this.triangles.length){let c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=o,this._halfedges[a+1]=s,this._halfedges[a+2]=i,o>=0&&(this._halfedges[o]=a+0),s>=0&&(this._halfedges[s]=a+1),i>=0&&(this._halfedges[i]=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,o=r-r%3,s=n+(e+1)%3,i=n+(e+2)%3,a=o+(r+2)%3,c=o+(r+1)%3,l=this.triangles[i],f=this.triangles[e],u=this.triangles[s],h=this.triangles[a],p=this.coords;if(!X3(p[2*l],p[2*l+1],p[2*f],p[2*f+1],p[2*u],p[2*u+1],p[2*h],p[2*h+1]))return;let d=this._halfedges[s],g=this._halfedges[i],m=this._halfedges[a],y=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(o/3);let b=this._addTriangle(l,h,u,-1,m,d,n),M=this._addTriangle(h,l,f,b,g,y,o);this._legalize(b+1),this._legalize(M+2)}_handleCollinear(e,r){let n=r-r%3,o=n+(r+1)%3,s=n+(r+2)%3,i=this.triangles[s],a=this.triangles[r],c=this.triangles[o],l=this._halfedges[o],f=this._halfedges[s],u=this._halfedges[r];if(u<0){let _=this._addTriangle(e,i,a,-1,f,-1,n),v=this._addTriangle(i,e,c,_,-1,l);this._legalize(_+1),this._legalize(v+2);return}let h=u-u%3,p=h+(u+2)%3,d=h+(u+1)%3,g=this.triangles[p],m=this._halfedges[p],y=this._halfedges[d];this._queueRemove(h/3);let b=this._addTriangle(i,a,e,f,-1,-1,n),M=this._addTriangle(a,g,e,y,-1,b+1,h),S=this._addTriangle(g,c,e,m,-1,M+1),C=this._addTriangle(c,i,e,l,b+2,S+1);this._legalize(b),this._legalize(M),this._legalize(S),this._legalize(C)}_queuePush(e,r,n){let o=this._queue.length;this._queueIndices[e]=o,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(o)}_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 o=this._pending.indexOf(e);if(o!==-1)this._pending[o]=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],o=this._queue[r];this._queue[e]=o,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[o]=e;let s=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=s}_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 o=2*n+1;if(o>=r||o<0)break;let s=o+1,i=o;if(s<r&&this._queueLess(s,o)&&(i=s),!this._queueLess(i,n))break;this._queueSwap(n,i),n=i}return n>e}};function _r(t,e,r,n,o,s){return(r-o)*(e-s)-(n-s)*(t-o)}function X3(t,e,r,n,o,s,i,a){let c=t-i,l=e-a,f=r-i,u=n-a,h=o-i,p=s-a,d=c*c+l*l,g=f*f+u*u,m=h*h+p*p;return c*(u*m-g*p)-l*(f*m-g*h)+d*(f*p-u*h)<0}function j0(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:o}=e,{data:s,width:i,height:a}=t,c,l;switch(e.tesselator){case"martini":c=Gi(s,i,a,o,e.tesselator),l=z0(r,i,c);break;case"delatin":c=Gi(s,i,a,o,e.tesselator),l=k0(r,i,a,c);break;default:i===a&&!(a&i-1)?(c=Gi(s,i,a,o,"martini"),l=z0(r,i,c)):(c=Gi(s,i,a,o,"delatin"),l=k0(r,i,a,c));break}let{vertices:f}=l,{triangles:u}=l,h=Y3(f,c,i,a,n),p=xr(h);if(e.skirtHeight){let{attributes:d,triangles:g}=Di(h,u,e.skirtHeight);h=d,u=g}return{loaderData:{header:{}},header:{vertexCount:u.length,boundingBox:p},mode:4,indices:{value:Uint32Array.from(u),size:1},attributes:h}}function z0(t,e,r){let n=e+1,s=new Io(n).createTile(r),{vertices:i,triangles:a}=s.getMesh(t);return{vertices:i,triangles:a}}function k0(t,e,r,n){let o=new vo(n,e+1,r+1);o.run(t);let{coords:s,triangles:i}=o;return{vertices:s,triangles:i}}function Gi(t,e,r,n,o){let{rScaler:s,bScaler:i,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let f=0,u=0;u<r;u++)for(let h=0;h<e;h++,f++){let p=f*4,d=t[p+0],g=t[p+1],m=t[p+2];l[f+u]=d*s+g*a+m*i+c}if(o==="martini"){for(let f=(e+1)*e,u=0;u<e;u++,f++)l[f]=l[f-e-1];for(let f=r,u=0;u<r+1;u++,f+=r+1)l[f]=l[f-1]}return l}function Y3(t,e,r,n,o){let s=r+1,i=t.length/2,a=new Float32Array(i*3),c=new Float32Array(i*2),[l,f,u,h]=o||[0,0,r,n],p=(u-l)/r,d=(h-f)/n;for(let g=0;g<i;g++){let m=t[g*2],y=t[g*2+1],b=y*s+m;a[3*g+0]=m*p+l,a[3*g+1]=-y*d+h,a[3*g+2]=e[b],c[2*g+0]=m/r,c[2*g+1]=y/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Vi="4.4.1";var Hi={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:Vi,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 q0={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Vi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var Q3={...Hi,parse:Z3};async function Z3(t,e,r){let n={...e,core:{...e?.core,mimeType:"application/x.image"},image:{...e?.image,type:"data"}},o=await Oe(t,[],n,r),s={...Q3.options.terrain,...e?.terrain};return j0(o,s)}var e5={...q0,parseSync:(t,e)=>pf(t,e?.["quantized-mesh"]),parse:async(t,e)=>pf(t,e?.["quantized-mesh"])};var J0=[1],$3={...pr.defaultProps,elevationData:Gt,texture:{...Gt,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:[Hi]};function W0(t){return Array.isArray(t)?t.join(";"):t||""}var Ro=class extends zi.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:s}=e,i=s&&(Array.isArray(s)||ev(s));this.setState({isTiled:i})}let o=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&o){let s=this.loadTerrain(e);this.setState({terrain:s})}e.workerUrl&&zi.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:o,signal:s}){if(!e)return null;let i=this.getLoadOptions();i={...i,terrain:{skirtHeight:this.state.isTiled?o*2:0,...i?.terrain,bounds:r,meshMaxError:o,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:i,signal:s})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:o,elevationDecoder:s,meshMaxError:i}=this.props,{viewport:a}=this.context,c=ft(r,e),l=o&&ft(o,e),{signal:f}=e,u=[0,0],h=[0,0];if(a.isGeospatial){let m=e.bbox;u=a.projectFlat([m.west,m.south]),h=a.projectFlat([m.east,m.north])}else{let m=e.bbox;u=[m.left,m.bottom],h=[m.right,m.top]}let p=[u[0],u[1],h[0],h[1]],d=this.loadTerrain({elevationData:c,bounds:p,elevationDecoder:s,meshMaxError:i,signal:f}),g=l?n(l,{propName:"texture",layer:this,loaders:[],signal:f}).catch(m=>null):Promise.resolve(null);return Promise.all([d,g])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",mf.SimpleMeshLayer),{color:n,wireframe:o,material:s}=this.props,{data:i}=e;if(!i)return null;let[a,c]=i;return new r(e,{data:J0,mesh:a,texture:c,_instanced:!1,coordinateSystem:K0.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:o,material:s})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(i=>i.content).filter(Boolean).map(i=>i[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let o=Math.min(...n.map(i=>i[0])),s=Math.max(...n.map(i=>i[1]));(!r||o<r[0]||s>r[1])&&this.setState({zRange:[o,s]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:o,wireframe:s,meshMaxError:i,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:g,maxCacheSize:m,maxCacheByteSize:y,refinementStrategy:b}=this.props;if(this.state.isTiled)return new pr(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:W0(n),texture:W0(o),meshMaxError:i,elevationDecoder:a}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:g,maxCacheSize:m,maxCacheByteSize:y,refinementStrategy:b});if(!n)return null;let M=this.getSubLayerClass("mesh",mf.SimpleMeshLayer);return new M(this.getSubLayerProps({id:"mesh"}),{data:J0,mesh:this.state.terrain,texture:o,_instanced:!1,getPosition:S=>[0,0,0],getColor:e,material:r,wireframe:s})}};Ro.defaultProps=$3;Ro.layerName="TerrainLayer";var X0=Ro,ev=t=>t.includes("{x}")&&(t.includes("{y}")||t.includes("{-y}"));var $i=U(Xe(),1),Lf=U(Ke(),1),v1=U(Q0(),1);function Z0(t,e,r){switch(t.type){case"Point":return rv(t,e,r);case"LineString":return tv(t,e,r);case"Polygon":return $0(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function $0(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.polygonIndices.value.filter(c=>c>=e&&c<=r),s=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(o.length>2)){let c=[];for(let l=0;l<s.length-1;l++){let f=s[l],u=s[l+1],h=ki(n,f,u);c.push(h)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<o.length-1;c++){let l=o[c],f=o[c+1],u=$0(t,l,f).coordinates;a.push(u)}return{type:"MultiPolygon",coordinates:a}}function tv(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(o.length>2))return{type:"LineString",coordinates:ki(n,o[0],o[1])};let i=[];for(let a=0;a<o.length-1;a++){let c=ki(n,o[a],o[a+1]);i.push(c)}return{type:"MultiLineString",coordinates:i}}function rv(t,e,r){let{positions:n}=t,o=ki(n,e,r);return o.length>1?{type:"MultiPoint",coordinates:o}:{type:"Point",coordinates:o[0]}}function ki(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let o=e;o<r;o++){let s=Array();for(let i=o*t.size;i<(o+1)*t.size;i++)s.push(Number(t.value[i]));n.push(s)}return n}var wo={x:0,y:1,z:2};function Cr(t,e={}){let{start:r=0,end:n=t.length,plane:o="xy"}=e,s=e.size||2,i=0,a=wo[o[0]],c=wo[o[1]];for(let l=r,f=n-s;l<n;l+=s)i+=(t[l+a]-t[f+a])*(t[l+c]+t[f+c]),f=l;return i/2}function Af(t,e,r=2,n,o="xy"){let s=e&&e.length,i=s?e[0]*r:t.length,a=t1(t,0,i,r,!0,n&&n[0],o),c=[];if(!a||a.next===a.prev)return c;let l,f,u,h,p,d,g;if(s&&(a=lv(t,e,a,r,n,o)),t.length>80*r){h=f=t[0],p=u=t[1];for(let m=r;m<i;m+=r)d=t[m],g=t[m+1],d<h&&(h=d),g<p&&(p=g),d>f&&(f=d),g>u&&(u=g);l=Math.max(f-h,u-p),l=l!==0?32767/l:0}return Lo(a,c,r,h,p,l,0),c}function t1(t,e,r,n,o,s,i){let a,c;s===void 0&&(s=Cr(t,{start:e,end:r,size:n,plane:i}));let l=wo[i[0]],f=wo[i[1]];if(o===s<0)for(a=e;a<r;a+=n)c=e1(a,t[a+l],t[a+f],c);else for(a=r-n;a>=e;a-=n)c=e1(a,t[a+l],t[a+f],c);return c&&Ji(c,c.next)&&(Po(c),c=c.next),c}function Br(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Ji(r,r.next)||ne(r.prev,r,r.next)===0)){if(Po(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function Lo(t,e,r,n,o,s,i){if(!t)return;!i&&s&&dv(t,n,o,s);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?iv(t,n,o,s):sv(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Po(t),t=l.next,a=l.next;continue}if(t=l,t===a){i?i===1?(t=av(Br(t),e,r),Lo(t,e,r,n,o,s,2)):i===2&&cv(t,e,r,n,o,s):Lo(Br(t),e,r,n,o,s,1);break}}}function sv(t){let e=t.prev,r=t,n=t.next;if(ne(e,r,n)>=0)return!1;let o=e.x,s=r.x,i=n.x,a=e.y,c=r.y,l=n.y,f=o<s?o<i?o:i:s<i?s:i,u=a<c?a<l?a:l:c<l?c:l,h=o>s?o>i?o:i:s>i?s:i,p=a>c?a>l?a:l:c>l?c:l,d=n.next;for(;d!==e;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&An(o,a,s,c,i,l,d.x,d.y)&&ne(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function iv(t,e,r,n){let o=t.prev,s=t,i=t.next;if(ne(o,s,i)>=0)return!1;let a=o.x,c=s.x,l=i.x,f=o.y,u=s.y,h=i.y,p=a<c?a<l?a:l:c<l?c:l,d=f<u?f<h?f:h:u<h?u:h,g=a>c?a>l?a:l:c>l?c:l,m=f>u?f>h?f:h:u>h?u:h,y=gf(p,d,e,r,n),b=gf(g,m,e,r,n),M=t.prevZ,S=t.nextZ;for(;M&&M.z>=y&&S&&S.z<=b;){if(M.x>=p&&M.x<=g&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&An(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0||(M=M.prevZ,S.x>=p&&S.x<=g&&S.y>=d&&S.y<=m&&S!==o&&S!==i&&An(a,f,c,u,l,h,S.x,S.y)&&ne(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;M&&M.z>=y;){if(M.x>=p&&M.x<=g&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&An(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0)return!1;M=M.prevZ}for(;S&&S.z<=b;){if(S.x>=p&&S.x<=g&&S.y>=d&&S.y<=m&&S!==o&&S!==i&&An(a,f,c,u,l,h,S.x,S.y)&&ne(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function av(t,e,r){let n=t;do{let o=n.prev,s=n.next.next;!Ji(o,s)&&r1(o,n,n.next,s)&&Fo(o,s)&&Fo(s,o)&&(e.push(o.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),Po(n),Po(n.next),n=t=s),n=n.next}while(n!==t);return Br(n)}function cv(t,e,r,n,o,s){let i=t;do{let a=i.next.next;for(;a!==i.prev;){if(i.i!==a.i&&Av(i,a)){let c=n1(i,a);i=Br(i,i.next),c=Br(c,c.next),Lo(i,e,r,n,o,s,0),Lo(c,e,r,n,o,s,0);return}a=a.next}i=i.next}while(i!==t)}function lv(t,e,r,n,o,s){let i=[],a,c,l,f,u;for(a=0,c=e.length;a<c;a++)l=e[a]*n,f=a<c-1?e[a+1]*n:t.length,u=t1(t,l,f,n,!1,o&&o[a+1],s),u===u.next&&(u.steiner=!0),i.push(gv(u));for(i.sort(fv),a=0;a<i.length;a++)r=uv(i[a],r);return r}function fv(t,e){return t.x-e.x}function uv(t,e){let r=hv(t,e);if(!r)return e;let n=n1(r,t);return Br(n,n.next),Br(r,r.next)}function hv(t,e){let r=e,n=t.x,o=t.y,s=-1/0,i;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){let h=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=n&&h>s&&(s=h,i=r.x<r.next.x?r:r.next,h===n))return i}r=r.next}while(r!==e);if(!i)return null;let a=i,c=i.x,l=i.y,f=1/0,u;r=i;do n>=r.x&&r.x>=c&&n!==r.x&&An(o<l?n:s,o,c,l,o<l?s:n,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(n-r.x),Fo(r,t)&&(u<f||u===f&&(r.x>i.x||r.x===i.x&&pv(i,r)))&&(i=r,f=u)),r=r.next;while(r!==a);return i}function pv(t,e){return ne(t.prev,t,e.prev)<0&&ne(e.next,t,t.next)<0}function dv(t,e,r,n){let o=t;do o.z===0&&(o.z=gf(o.x,o.y,e,r,n)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==t);o.prevZ.nextZ=null,o.prevZ=null,mv(o)}function mv(t){let e,r,n=1,o,s,i,a,c,l;do{for(s=t,t=null,l=null,o=0;s;){for(o++,a=s,i=0,r=0;r<n&&(i++,a=a.nextZ,!!a);r++);for(c=n;i>0||c>0&&a;)i!==0&&(c===0||!a||s.z<=a.z)?(e=s,s=s.nextZ,i--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=a}l.nextZ=null,n*=2}while(o>1);return t}function gf(t,e,r,n,o){return t=(t-r)*o|0,e=(e-n)*o|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 gv(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 An(t,e,r,n,o,s,i,a){return(o-i)*(e-a)>=(t-i)*(s-a)&&(t-i)*(n-a)>=(r-i)*(e-a)&&(r-i)*(s-a)>=(o-i)*(n-a)}function Av(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!xv(t,e)&&(Fo(t,e)&&Fo(e,t)&&yv(t,e)&&(ne(t.prev,t,e.prev)||ne(t,e.prev,e))||Ji(t,e)&&ne(t.prev,t,t.next)>0&&ne(e.prev,e,e.next)>0)}function ne(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Ji(t,e){return t.x===e.x&&t.y===e.y}function r1(t,e,r,n){let o=qi(ne(t,e,r)),s=qi(ne(t,e,n)),i=qi(ne(r,n,t)),a=qi(ne(r,n,e));return!!(o!==s&&i!==a||o===0&&ji(t,r,e)||s===0&&ji(t,n,e)||i===0&&ji(r,t,n)||a===0&&ji(r,e,n))}function ji(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 qi(t){return t>0?1:t<0?-1:0}function xv(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&&r1(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Fo(t,e){return ne(t.prev,t,t.next)<0?ne(t,e,t.next)>=0&&ne(t,t.prev,e)>=0:ne(t,e,t.prev)<0||ne(t,t.next,e)<0}function yv(t,e){let r=t,n=!1,o=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&o<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function n1(t,e){let r=new No(t.i,t.x,t.y),n=new No(e.i,e.x,e.y),o=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=o,o.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function e1(t,e,r,n){let o=new No(t,e,r);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function Po(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 No=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function Wi(t,e,r){let n=Ev(t),o=Object.keys(n).filter(s=>n[s]!==Array);return _v(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||o,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function Ev(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let o=r.properties[n];e[n]=wv(o,e[n])}return e}function _v(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:o,linePositionsCount:s,linePathsCount:i,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=e,{numericPropKeys:d=[],PositionDataType:g=Float32Array,triangulate:m=!0}=r,y=t[0]&&"id"in t[0],b=t.length>65535?Uint32Array:Uint16Array,M={type:"Point",positions:new g(n*p),globalFeatureIds:new b(n),featureIds:o>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},S={type:"LineString",pathIndices:s>65535?new Uint32Array(i+1):new Uint16Array(i+1),positions:new g(s*p),globalFeatureIds:new b(s),featureIds:a>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},C={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new g(c*p),globalFeatureIds:new b(c),featureIds:u>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};m&&(C.triangles=[]);for(let v of[M,S,C])for(let E of d){let T=h[E];v.numericProps[E]=new T(v.positions.length/p)}S.pathIndices[i]=s,C.polygonIndices[l]=c,C.primitivePolygonIndices[f]=c;let _={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let v of t){let E=v.geometry,T=v.properties||{};switch(E.type){case"Point":Cv(E,M,_,p,T),M.properties.push(yf(T,d)),y&&M.fields.push({id:v.id}),_.pointFeature++;break;case"LineString":Bv(E,S,_,p,T),S.properties.push(yf(T,d)),y&&S.fields.push({id:v.id}),_.lineFeature++;break;case"Polygon":Iv(E,C,_,p,T),C.properties.push(yf(T,d)),y&&C.fields.push({id:v.id}),_.polygonFeature++;break;default:throw new Error("Invalid geometry type")}_.feature++}return Rv(M,S,C,p)}function Cv(t,e,r,n,o){e.positions.set(t.data,r.pointPosition*n);let s=t.data.length/n;bf(e,o,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function Bv(t,e,r,n,o){e.positions.set(t.data,r.linePosition*n);let s=t.data.length/n;bf(e,o,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=t.indices[i],l=i===a-1?t.data.length:t.indices[i+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function Iv(t,e,r,n,o){e.positions.set(t.data,r.polygonPosition*n);let s=t.data.length/n;bf(e,o,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[i],f=t.indices[i],u=t.indices[i+1];for(let p=0,d=f.length;p<d;++p){let g=f[p],m=p===d-1?u===void 0?t.data.length:u[0]:f[p+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(m-g)/n}let h=r.polygonPosition;vv(e,l,f,{startPosition:c,endPosition:h,coordLength:n})}}function vv(t,e,r,{startPosition:n,endPosition:o,coordLength:s}){if(!t.triangles)return;let i=n*s,a=o*s,c=t.positions.subarray(i,a),l=r[0],f=r.slice(1).map(h=>(h-l)/s),u=Af(c,f,s,e);for(let h=0,p=u.length;h<p;++h)t.triangles.push(n+u[h])}function xf(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function Rv(t,e,r,n){let o={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:xf(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:xf(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:xf(r.numericProps,1)}};return o.polygons&&r.triangles&&(o.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),o}function bf(t,e,r,n){for(let o in t.numericProps)if(o in e){let s=e[o];t.numericProps[o].fill(s,r,r+n)}}function yf(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function wv(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function Oo(t,e){let r=e?.globalFeatureId;return r!==void 0?Lv(t,r):Fv(t,e?.type)}function Lv(t,e){let r=i1(t);for(let n of r){let o=0,s=n.featureIds.value[0];for(let i=0;i<n.featureIds.value.length;i++){let a=n.featureIds.value[i];if(a!==s){if(e===n.globalFeatureIds.value[o])return Ki(n,o,i);o=i,s=a}}if(e===n.globalFeatureIds.value[o])return Ki(n,o,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function Fv(t,e){let r=i1(t,e);return Pv(r)}function i1(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 Pv(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,o=r.featureIds.value[0];for(let s=0;s<r.featureIds.value.length;s++){let i=r.featureIds.value[s];i!==o&&(e.push(Ki(r,n,s)),n=s,o=i)}e.push(Ki(r,n,r.featureIds.value.length))}return e}function Ki(t,e,r){let n=Z0(t,e,r),o=Ov(t,e,r),s=Nv(t,e,r);return{type:"Feature",geometry:n,properties:o,...s}}function Nv(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function Ov(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let o in t.numericProps)n[o]=t.numericProps[o].value[e];return n}var Cf=U(p1(),1);function eR(t){let e=0;for(let r=0,n=t.length-1,o,s;r<t.length;n=r++)o=t[r],s=t[n],e+=(s[0]-o[0])*(o[1]+s[1]);return e}function Sf(t,e){if(Array.isArray(t[0])){for(let n of t)Sf(n,e);return}let r=t;r[0]/=e,r[1]/=e}function d1(t,e){for(let r=0;r<t.length;++r)t[r]/=e}function Ef(t,e,r){if(typeof t[0][0]!="number"){for(let i of t)Ef(i,e,r);return}let n=r*Math.pow(2,e.z),o=r*e.x,s=r*e.y;for(let i=0;i<t.length;i++){let a=t[i];a[0]=(a[0]+o)*360/n-180;let c=180-(a[1]+s)*360/n;a[1]=360/Math.PI*Math.atan(Math.exp(c*Math.PI/180))-90}}function m1(t,e,r){let{x:n,y:o,z:s}=e,i=r*Math.pow(2,s),a=r*n,c=r*o;for(let l=0,f=t.length;l<f;l+=2){t[l]=(t[l]+a)*360/i-180;let u=180-(t[l+1]+c)*360/i;t[l+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function g1(t){let e=t.length;if(e<=1)return[t];let r=[],n,o;for(let s=0;s<e;s++){let i=eR(t[s]);i!==0&&(o===void 0&&(o=i<0),o===i<0?(n&&r.push(n),n=[t[s]]):n&&n.push(t[s]))}return n&&r.push(n),r}function A1(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=[],o=[],s=[],i=[],a,c=0;for(let l,f=0,u;f<e;f++){u=t.indices[f]-c,l=t.indices[f+1]-c||t.data.length;let h=t.data.slice(u,l),p=Cr(h);if(p===0){let d=t.data.slice(0,u),g=t.data.slice(l);t.data=d.concat(g),c+=l-u;continue}a===void 0&&(a=p<0),a===p<0?(i.length&&(n.push(s),o.push(i)),i=[u],s=[p]):(s.push(p),i.push(u))}return s&&n.push(s),i.length&&o.push(i),{type:r,areas:n,indices:o,data:t.data}}var Ir=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(e,r,n,o,s,i){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=o,this._values=s,this._geometryInfo=i,e.readFields(tR,this,r)}toGeoJSONFeature(e,r){let n=this.loadGeometry();switch(e){case"wgs84":return x1(this,n,o=>Ef(o,r,this.extent));default:return x1(this,n,Sf)}}toBinaryFeature(e,r){let n=this.loadFlatGeometry();switch(e){case"wgs84":return this._toBinaryCoordinates(n,o=>m1(o,r,this.extent));default:return this._toBinaryCoordinates(n,d1)}}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=1/0,c=-1/0,l=1/0,f=-1/0;for(;e.pos<r;){if(o<=0){let u=e.readVarint();n=u&7,o=u>>3}if(o--,n===1||n===2)s+=e.readSVarint(),i+=e.readSVarint(),s<a&&(a=s),s>c&&(c=s),i<l&&(l=i),i>f&&(f=i);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,f]}_toBinaryCoordinates(e,r){let n;r(e.data,this.extent);let o=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=e.indices.length,n={type:"Point",...e};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=e.indices.length,this._geometryInfo.linePositionsCount+=e.data.length/o,n={type:"LineString",...e};break;case 3:n=A1(e),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let i of n.indices)this._geometryInfo.polygonRingsCount+=i.length;this._geometryInfo.polygonPositionsCount+=n.data.length/o;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let s={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(s.id=this.id),s}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=[],c;for(;e.pos<r;){if(o<=0){let l=e.readVarint();n=l&7,o=l>>3}switch(o--,n){case 1:case 2:s+=e.readSVarint(),i+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([s,i]);break;case 7:c&&c.push(c[0].slice());break;default:throw new Error(`unknown command ${n}`)}}return c&&a.push(c),a}loadFlatGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o,s=0,i=0,a=0,c=0,l=[],f=[];for(;e.pos<r;)if(s<=0&&(o=e.readVarint(),n=o&7,s=o>>3),s--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),n===1&&l.push(c),f.push(i,a),c+=2;else if(n===7){if(c>0){let u=l[l.length-1];f.push(f[u],f[u+1]),c+=2}}else throw new Error(`unknown command ${n}`);return{data:f,indices:l}}};Jt(Ir,"types",["Unknown","Point","LineString","Polygon"]);function x1(t,e,r){let n=Ir.types[t.type],o,s,i;switch(t.type){case 1:let c=[];for(o=0;o<e.length;o++)c[o]=e[o][0];i=c,r(i,t.extent);break;case 2:for(i=e,o=0;o<i.length;o++)r(i[o],t.extent);break;case 3:for(i=g1(e),o=0;o<i.length;o++)for(s=0;s<i[o].length;s++)r(i[o][s],t.extent);break;default:throw new Error("illegal vector tile type")}i.length===1?i=i[0]:n=`Multi${n}`;let a={type:"Feature",geometry:{type:n,coordinates:i},properties:t.properties};return t.id!==null&&(a.properties||={},a.properties.id=t.id),a}function tR(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?rR(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function rR(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],o=e._values[t.readVarint()];e.properties[n]=o}}var Qi=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(nR,this,r),this.length=this._features.length}getGeoJSONFeature(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 Ir(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(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 Ir(this._pbf,n,this.extent,this._keys,this._values,r)}};function nR(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(oR(r)))}function oR(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 Uo=class{layers;constructor(e,r){this.layers=e.readFields(sR,{},r)}};function sR(t,e,r){if(t===3&&r){let n=new Qi(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Bf(t,e){let r=aR(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:_f(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:y1(t,r)};case"geojson":return y1(t,r);case"binary-geometry":return _f(t,r);case"binary":return _f(t,r);default:throw new Error(n||"undefined shape")}}function _f(t,e){let[r,n]=iR(t,e),o=Wi(r,n);return o.byteLength=t.byteLength,o}function iR(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 o=new Uo(new Cf.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(o.layers)).forEach(i=>{let a=o.layers[i];if(a)for(let c=0;c<a.length;c++){let l=a.getBinaryFeature(c,n),f=lR(l,e,i);r.push(f)}}),[r,n]}function y1(t,e){if(t.byteLength<=0)return[];let r=[],n=new Uo(new Cf.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(s=>{let i=n.layers[s];if(i)for(let a=0;a<i.length;a++){let c=i.getGeoJSONFeature(a),l=cR(c,e,s);r.push(l)}}),r}function aR(t){if(!t?.mvt)throw new Error("mvt options required");if(t.mvt?.coordinates==="wgs84"&&!t.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.gis&&pc.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),t.mvt}function cR(t,e,r){let n=t.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(n.properties||={},n.properties[e.layerProperty]=r),n}function lR(t,e,r){let n=t.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}var b1={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var fR="4.4.1",Zi={...b1,dataType:null,batchType:null,version:fR,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},uR={...Zi,parse:async(t,e)=>Bf(t,e),parseSync:Bf,binary:!0};var hR={Point:T1,MultiPoint:pR,LineString:M1,MultiLineString:dR,Polygon:S1,MultiPolygon:mR};function T1([t,e],[r,n],o){let s=Ct(r[0],n[0],t),i=Ct(r[1],n[1],e);return o.unprojectFlat([s,i])}function If(t,e,r){return t.map(n=>T1(n,e,r))}function pR(t,e,r){return If(t,e,r)}function M1(t,e,r){return If(t,e,r)}function dR(t,e,r){return t.map(n=>M1(n,e,r))}function S1(t,e,r){return t.map(n=>If(n,e,r))}function mR(t,e,r){return t.map(n=>S1(n,e,r))}function E1(t,e,r){let n=r.projectFlat([e.west,e.north]),o=r.projectFlat([e.east,e.south]),s=[n,o];return{...t,coordinates:hR[t.type](t.coordinates,s,r)}}var gR=["points","lines","polygons"];function vf(t,e,r,n){for(let o of gR){let s=t[o]&&AR(t[o],e,r,n);if(s>=0)return s}return-1}function AR(t,e,r,n){let o=t.featureIds.value;if(!o.length)return-1;let s=0,i=o[o.length-1]+1;if(n){let c=xR(t,n);if(c)s=c[0],i=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,f)=>l===r&&o[f]>=s&&o[f]<i);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=_1(t.properties,c=>c[e]===r,s,i):t.fields&&(a=_1(t.fields,c=>c.id===r,s,i));return a>=0?yR(t,a):-1}function xR(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let o=0;o<n.length;o++){let{layerName:s}=n[o];s&&(r[s]?r[s][1]=o:r[s]=[o,o])}t.__layers=r}return t.__layers[e]}function yR(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,o=t.globalFeatureIds.value;for(let s=0;s<n.length;s++)r[n[s]]=o[s];t.__ids=r}return t.__ids[e]}function _1(t,e,r,n){for(let o=r;o<n;o++)if(e(t[o],o))return o;return-1}var Rf=512,bR={...Lf.GeoJsonLayer.defaultProps,data:Gt,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[Zi],binary:!0},Do=class extends pr{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:o}){o.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:o}),this._setWGS84PropertyForTiles());let{highlightColor:s}=e;s!==r.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Hc(e)){let{onDataLoad:n,fetch:o}=this.props;this.setState({data:null,tileJSON:null});try{r=await o(e,{propName:"data",layer:this,loaders:[]})}catch(s){this.raiseError(s,"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:o}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(o)||r.maxzoom<o)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:o,signal:s}=e,i=ft(r,e);if(!i)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,core:{...a?.core,mimeType:"application/x-protobuf"},mvt:{...a?.mvt,shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:o}},c(i,{propName:"data",layer:this,loadOptions:a,signal:s})}renderSubLayers(e){let{x:r,y:n,z:o}=e.tile.index,s=Math.pow(2,o),i=Rf/s,a=-i,c=Rf*r/s,l=Rf*(1-n/s),f=new N().scale([i,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[c,l,0],e.coordinateSystem=$i.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new v1.ClipExtension]);let u=super.renderSubLayers(e);return this.state.binary&&!(u instanceof Lf.GeoJsonLayer)&&$i.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),u}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:o}=this.state,s=e.object,i=null,a=null;s&&(i=wf(s,r),a=C1(s));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==i||o!==a)&&this.setState({highlightColor:c,hoveredFeatureId:i,hoveredFeatureLayerName:a})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=Oo(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=I1(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:o}=this.state,{uniqueIdProperty:s,highlightedFeatureId:i}=this.props,a=e.content,c=B1(i);if(!(B1(r)||c))return-1;let f=c?i:r;return Array.isArray(a)?a.findIndex(u=>{let h=wf(u,s)===f,p=c||C1(u)===n;return h&&p}):a&&o?vf(a,s,f,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,o=n.width,s=n.height,i=n.x,a=n.y,c=[this.id];return r.pickObjects({x:i,y:a,width:o,height:s,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,o=[];for(let s of r){let i=wf(s.object,this.props.uniqueIdProperty);i===void 0?o.push(s.object):n.has(i)||(n.add(i),o.push(s.object))}return o}_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:o}=n;if(n._contentWGS84===void 0&&zc(o)){let s=this.state.binary?Oo(n.content):n.content;n._contentWGS84=s.map(i=>I1(i,o,this.context.viewport))}return n._contentWGS84}})})}};Do.layerName="MVTLayer";Do.defaultProps=bR;var R1=Do;function wf(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function C1(t){return t.properties?.layerName||null}function B1(t){return t!=null&&t!==""}function I1(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>E1(t.geometry,e,r).coordinates}),n}var w1="0123456789bcdefghjkmnpqrstuvwxyz",L1={};for(let t=0;t<w1.length;t++)L1[w1.charAt(t)]=t;var TR=-90,MR=90,SR=-180,ER=180;function _R(t){let e=!0,r=MR,n=TR,o=ER,s=SR,i,a=0;for(let c=0,l=t.length;c<l;c++){let f=t[c].toLowerCase();a=L1[f];for(let u=4;u>=0;u--){let h=a>>u&1;e?(i=(o+s)/2,h===1?s=i:o=i):(i=(r+n)/2,h===1?n=i:r=i),e=!e}}return[n,s,r,o]}function F1(t){let[e,r,n,o]=_R(t);return[o,n,o,e,r,e,r,n,o,n]}var CR={getGeohash:{type:"accessor",value:t=>t.geohash}},Go=class extends De{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>F1(r(n,o))}}};Go.layerName="GeohashLayer";Go.defaultProps=CR;var P1=Go;return H1(Vo);})();
2582
+ `;function uC(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 hC={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},po=class extends ym.SimpleMeshLayer{getShaders(){let e=super.getShaders();return e.modules.push(Yc,mm),{...e,vs:gm,fs:Am}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({featureIdsPickingColors:{type:"uint8",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,{model:n}=this.state;if(!n)return;let o={pickFeatureIds:Boolean(r)},s={camera:this.context.viewport.cameraPosition};n.shaderInputs.setProps({pbrProjection:s,mesh:o}),super.draw(e)}getModel(e){let{id:r}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});let o=this.getShaders();return uC(e.attributes),new xm.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...o.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,o=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:o});let{pbr_baseColorSampler:s}=o.bindings,{emptyTexture:i}=this.state,a={sampler:s||i,hasTexture:Boolean(s)},{camera:c,...l}={...o.bindings,...o.uniforms};r.shaderInputs.setProps({simpleMesh:a,pbrMaterial:l})}}parseMaterial(e,r){let n=Boolean(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return Kc(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),o=[];for(let s=0;s<r.length;s++)this.encodePickingColor(r[s],o),n[s*3]=o[0],n[s*3+1]=o[1],n[s*3+2]=o[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}};po.layerName="MeshLayer";po.defaultProps=hC;var bm=po;var V0=D(er(),1);var yt=6356752314245179e-9,pC={radii:[6378137,6378137,yt],radiiSquared:[6378137*6378137,6378137*6378137,yt*yt],oneOverRadii:[1/6378137,1/6378137,1/yt],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(yt*yt)],maximumRadius:Math.max(6378137,6378137,yt),centerToleranceSquared:.1};function ei(t){return t}var CV=new x;function dC(t,e=[],r=ei){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 Tm(t,e=[]){return dC(t,e,Q._cartographicRadians?ei:ba)}function mC(t,e,r=ei){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 Mm(t,e){return mC(t,e,Q._cartographicRadians?ei:Ta)}var Sm=1e-14,gC=new x,Em={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"}},Qc={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},mo={east:new x,north:new x,up:new x,west:new x,south:new x,down:new x},AC=new x,xC=new x,yC=new x;function Zc(t,e,r,n,o,s){let i=Em[e]&&Em[e][r];he(i&&(!n||n===i));let a,c,l,f=gC.copy(o);if(_e(f.x,0,Sm)&&_e(f.y,0,Sm)){let h=Math.sign(f.z);a=AC.fromArray(Qc[e]),e!=="east"&&e!=="west"&&a.scale(h),c=xC.fromArray(Qc[r]),r!=="east"&&r!=="west"&&c.scale(h),l=yC.fromArray(Qc[n]),n!=="east"&&n!=="west"&&l.scale(h)}else{let{up:h,east:p,north:d}=mo;p.set(-f.y,f.x,0).normalize(),t.geodeticSurfaceNormal(f,h),d.copy(h).cross(p);let{down:g,west:m,south:y}=mo;g.copy(h).scale(-1),m.copy(p).scale(-1),y.copy(d).scale(-1),a=mo[e],c=mo[r],l=mo[n]}return s[0]=a.x,s[1]=a.y,s[2]=a.z,s[3]=0,s[4]=c.x,s[5]=c.y,s[6]=c.z,s[7]=0,s[8]=l.x,s[9]=l.y,s[10]=l.z,s[11]=0,s[12]=f.x,s[13]=f.y,s[14]=f.z,s[15]=1,s}var Qr=new x,bC=new x,TC=new x;function _m(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:o,centerToleranceSquared:s}=e;Qr.from(t);let i=Qr.x,a=Qr.y,c=Qr.z,l=n.x,f=n.y,u=n.z,h=i*i*l*l,p=a*a*f*f,d=c*c*u*u,g=h+p+d,m=Math.sqrt(1/g);if(!Number.isFinite(m))return;let y=bC;if(y.copy(t).scale(m),g<s)return y.to(r);let b=o.x,M=o.y,S=o.z,C=TC;C.set(y.x*b*2,y.y*M*2,y.z*S*2);let _=(1-m)*Qr.len()/(.5*C.len()),v=0,E,T,A,B;do{_-=v,E=1/(1+_*b),T=1/(1+_*M),A=1/(1+_*S);let L=E*E,F=T*T,w=A*A,U=L*E,W=F*T,z=w*A;B=h*L+p*F+d*w-1;let Y=-2*(h*U*b+p*W*M+d*z*S);v=B/Y}while(Math.abs(B)>Ge.EPSILON12);return Qr.scale([E,T,A]).to(r)}var ti=new x,Cm=new x,EC=new x,$e=new x,_C=new x,ri=new x,G=class{constructor(e=0,r=0,n=0){this.centerToleranceSquared=Ge.EPSILON1,he(e>=0),he(r>=0),he(n>=0),this.radii=new x(e,r,n),this.radiiSquared=new x(e*e,r*r,n*n),this.radiiToTheFourth=new x(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new x(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new x(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=Cm,o=EC,[,,s]=e;this.geodeticSurfaceNormalCartographic(e,n),o.copy(this.radiiSquared).scale(n);let i=Math.sqrt(n.dot(o));return o.scale(1/i),n.scale(s),o.add(n),o.to(r)}cartesianToCartographic(e,r=[0,0,0]){ri.from(e);let n=this.scaleToGeodeticSurface(ri,$e);if(!n)return;let o=this.geodeticSurfaceNormal(n,Cm),s=_C;s.copy(ri).subtract(n);let i=Math.atan2(o.y,o.x),a=Math.asin(o.z),c=Math.sign($t.dot(s,ri))*$t.length(s);return Mm([i,a,c],r)}eastNorthUpToFixedFrame(e,r=new N){return Zc(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,o,s=new N){return Zc(this,e,r,n,o,s)}geocentricSurfaceNormal(e,r=[0,0,0]){return ti.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=Tm(e),o=n[0],s=n[1],i=Math.cos(s);return ti.set(i*Math.cos(o),i*Math.sin(o),Math.sin(s)).normalize(),ti.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return ti.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return _m(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){$e.from(e);let n=$e.x,o=$e.y,s=$e.z,i=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*i.x+o*o*i.y+s*s*i.z);return $e.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return $e.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return $e.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){he(_e(this.radii.x,this.radii.y,Ge.EPSILON15)),he(this.radii.z>0),$e.from(e);let o=$e.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(o)>=this.radii.z-r))return $e.set(0,0,o).to(n)}};G.WGS84=new G(6378137,6378137,yt);var ni=class{item;previous;next;constructor(e,r,n){this.item=e,this.previous=r,this.next=n}};var oi=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new ni(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 si=class{_list;_sentinel;_trimTiles;constructor(){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 o=r._cacheNode;o&&(this._list.remove(o),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let o=this._list,s=e.maximumMemoryUsage*1024*1024,i=this._sentinel,a=o.head;for(;a!==i&&(e.gpuMemoryUsageInBytes>s||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function Bm(t,e){H(t),H(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:o,boundingVolume:{center:s}}=t,i=new N(o);switch(r&&i.translate(r),n){case"Z":break;case"Y":let h=new N().rotateX(Math.PI/2);i=i.multiplyRight(h);break;case"X":let p=new N().rotateY(-Math.PI/2);i=i.multiplyRight(p);break;default:break}e.isQuantized&&i.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new x(s);e.cartesianModelMatrix=i,e.cartesianOrigin=a;let c=G.WGS84.cartesianToCartographic(a,new x),f=G.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=f.multiplyRight(i),e.cartographicOrigin=c;let u=BC(e);u&&(e.cartesianModelMatrix=new N(i).multiplyRight(u.matrix),e.cartographicModelMatrix.multiplyRight(u.matrix),u.matrix=N.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var CC=1e6**2;function BC(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene=="number"?e.scene:0,o=e.scenes?.[r]?.nodes?.[0];if(!o?.matrix)return null;let s=o.matrix;return s[12]*s[12]+s[13]*s[13]+s[14]*s[14]<=CC?null:o}var Im=new x,$c=new x,el=new ce([new pe,new pe,new pe,new pe,new pe,new pe]);function Rm(t,e){let{cameraDirection:r,cameraUp:n,height:o}=t,{metersPerUnit:s}=t.distanceScales,i=ii(t,t.center),a=G.WGS84.eastNorthUpToFixedFrame(i),c=t.unprojectPosition(t.cameraPosition),l=G.WGS84.cartographicToCartesian(c,new x),f=new x(a.transformAsVector(new x(r).scale(s))).normalize(),u=new x(a.transformAsVector(new x(n).scale(s))).normalize();IC(t);let h=t.constructor,{longitude:p,latitude:d,width:g,bearing:m,zoom:y}=t,b=new h({longitude:p,latitude:d,height:o,width:g,bearing:m,zoom:y,pitch:0});return{camera:{position:l,direction:f,up:u},viewport:t,topDownViewport:b,height:o,cullingVolume:el,frameNumber:e,sseDenominator:1.15}}function wm(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:o,latitude:s}=e.viewport;for(let[l,f]of t.entries()){let[u,h]=f.header.mbs,p=Math.abs(o-u),d=Math.abs(s-h),g=Math.sqrt(d*d+p*p);n.push([l,g])}let i=n.sort((l,f)=>l[1]-f[1]),a=[];for(let l=0;l<r;l++)a.push(t[i[l][0]]);let c=[];for(let l=r;l<i.length;l++)c.push(t[i[l][0]]);return[a,c]}function IC(t){let e=t.getFrustumPlanes(),r=vm(e.near,t.cameraPosition),n=ii(t,r),o=ii(t,t.cameraPosition,$c),s=0;el.planes[s++].fromPointNormal(n,Im.copy(n).subtract(o));for(let i in e){if(i==="near")continue;let a=e[i],c=vm(a,r,$c),l=ii(t,c,$c);el.planes[s++].fromPointNormal(l,Im.copy(n).subtract(l))}}function vm(t,e,r=new x){let n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function ii(t,e,r=new x){let n=t.unprojectPosition(e);return G.WGS84.cartographicToCartesian(n,r)}var vC=6378137,RC=6378137,tl=6356752314245179e-9,Zr=new x;function Lm(t,e){if(t instanceof Ze){let{halfAxes:r}=t,n=wC(r);return Math.log2(tl/(n+e[2]))}else if(t instanceof He){let{radius:r}=t;return Math.log2(tl/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,o=Math.log2(vC/r),s=Math.log2(RC/n);return(o+s)/2}return 1}function rl(t,e,r){G.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Zr);let n=Math.sqrt(Math.pow(Zr[0]-r[0],2)+Math.pow(Zr[1]-r[1],2)+Math.pow(Zr[2]-r[2],2));return Math.log2(tl/(n+e[2]))}function Fm(t,e,r){let[n,o,s,i]=t;return rl({xmin:n,xmax:s,ymin:o,ymax:i,zmin:0,zmax:0},e,r)}function wC(t){t.getColumn(0,Zr);let e=t.getColumn(1),r=t.getColumn(2);return Zr.add(e).add(r).len()}var Ym=D(er(),1);var Be={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Te;(function(t){t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE"})(Te||(Te={}));var ke;(function(t){t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh"})(ke||(ke={}));var de;(function(t){t.I3S="I3S",t.TILES3D="TILES3D"})(de||(de={}));var bt;(function(t){t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(bt||(bt={}));var Pm={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Dm(t){return t!=null}var Me=new x,ai=new x,LC=new x,FC=new x,mr=new x,Nm=new x,Om=new x,Um=new x;function ci(t,e,r){if(H(t,"3D Tile: boundingVolume must be defined"),t.box)return Vm(t.box,e,r);if(t.region)return NC(t.region);if(t.sphere)return PC(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function Gm(t,e){if(t.box)return OC(e);if(t.region){let[r,n,o,s,i,a]=t.region;return[[Ne(r),Ne(n),i],[Ne(o),Ne(s),a]]}if(t.sphere)return UC(e);throw new Error("Unkown boundingVolume type")}function Vm(t,e,r){let n=new x(t[0],t[1],t[2]);e.transform(n,n);let o=[];if(t.length===10){let l=t.slice(3,6),f=new st;f.fromArray(t,6);let u=new x([1,0,0]),h=new x([0,1,0]),p=new x([0,0,1]);u.transformByQuaternion(f),u.scale(l[0]),h.transformByQuaternion(f),h.scale(l[1]),p.transformByQuaternion(f),p.scale(l[2]),o=[...u.toArray(),...h.toArray(),...p.toArray()]}else o=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let s=e.transformAsVector(o.slice(0,3)),i=e.transformAsVector(o.slice(3,6)),a=e.transformAsVector(o.slice(6,9)),c=new k([s[0],s[1],s[2],i[0],i[1],i[2],a[0],a[1],a[2]]);return Dm(r)?(r.center=n,r.halfAxes=c,r):new Ze(n,c)}function PC(t,e,r){let n=new x(t[0],t[1],t[2]);e.transform(n,n);let o=e.getScale(ai),s=Math.max(Math.max(o[0],o[1]),o[2]),i=t[3]*s;return Dm(r)?(r.center=n,r.radius=i,r):new He(n,i)}function NC(t){let[e,r,n,o,s,i]=t,a=G.WGS84.cartographicToCartesian([Ne(e),Ne(o),s],LC),c=G.WGS84.cartographicToCartesian([Ne(n),Ne(r),i],FC),l=new x().addVectors(a,c).multiplyByScalar(.5);return G.WGS84.cartesianToCartographic(l,mr),G.WGS84.cartographicToCartesian([Ne(n),mr[1],mr[2]],Nm),G.WGS84.cartographicToCartesian([mr[0],Ne(o),mr[2]],Om),G.WGS84.cartographicToCartesian([mr[0],mr[1],i],Um),Vm([...l,...Nm.subtract(l),...Om.subtract(l),...Um.subtract(l)],new N)}function OC(t){let e=Hm(),{halfAxes:r}=t,n=new x(r.getColumn(0)),o=new x(r.getColumn(1)),s=new x(r.getColumn(2));for(let i=0;i<2;i++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)Me.copy(t.center),Me.add(n),Me.add(o),Me.add(s),zm(e,Me),s.negate();o.negate()}n.negate()}return e}function UC(t){let e=Hm(),{center:r,radius:n}=t,o=G.WGS84.scaleToGeodeticSurface(r,Me),s;o?s=G.WGS84.geodeticSurfaceNormal(o):s=new x(0,0,1);let i=new x(s[2],-s[1],0);i.len()>0?i.normalize():i=new x(0,1,0);let a=i.clone().cross(s);for(let c of[i,a,s]){ai.copy(c).scale(n);for(let l=0;l<2;l++)Me.copy(r),Me.add(ai),zm(e,Me),ai.negate()}return e}function Hm(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function zm(t,e){G.WGS84.cartesianToCartographic(e,Me),t[0][0]=Math.min(t[0][0],Me[0]),t[0][1]=Math.min(t[0][1],Me[1]),t[0][2]=Math.min(t[0][2],Me[2]),t[1][0]=Math.max(t[1][0],Me[0]),t[1][1]=Math.max(t[1][1],Me[1]),t[1][2]=Math.max(t[1][2],Me[2])}var h4=new x,p4=new x,d4=new N,m4=new x,g4=new x,A4=new x;function DC(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function GC(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return DC(e,r)*n}return 0}function km(t,e,r){let n=t.tileset,o=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,s=r?o:t.lodMetricValue;if(s===0)return 0;let i=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,f=s*a*(l||1)/(i*c);return f-=GC(n,i),f}var nl=new x,jm=new x,Ht=new x,qm=new x,VC=new x,ol=new N,Jm=new N;function Wm(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*sl(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function sl(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],o=t.header.mbs[0],s=t.header.mbs[2],i=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);G.WGS84.cartographicToCartesian(c,nl),jm.copy(nl).subtract(a).normalize(),G.WGS84.eastNorthUpToFixedFrame(a,ol),Jm.copy(ol).invert(),Ht.copy(nl).transform(Jm);let l=Math.sqrt(Ht[0]*Ht[0]+Ht[1]*Ht[1]),f=l*l/Ht[2];qm.copy([Ht[0],Ht[1],f]);let h=qm.transform(ol).subtract(a).normalize(),d=jm.cross(h).normalize().scale(i).add(a),g=G.WGS84.cartesianToCartographic(d),m=r.project([o,n,s]),y=r.project(g);return VC.copy(m).subtract(y).magnitude()}function Km(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var go=class{_map=new Map;_array;_length;constructor(e=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 H(e<this._array.length),this._array[e]}set(e,r){H(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){H(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){H(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 HC={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ut=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new go;_emptyTraversalStack=new go;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...HC,...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 s=n.pop(),i=!1;this.canTraverse(s,r)&&(this.updateChildTiles(s,r),i=this.updateAndPushChildren(s,r,n,s.hasRenderContent?s._selectionDepth+1:s._selectionDepth));let a=s.parent,c=Boolean(!a||a._shouldRefine),l=!i;s.hasRenderContent?s.refine===Te.ADD?(this.loadTile(s,r),this.selectTile(s,r)):s.refine===Te.REPLACE&&(this.loadTile(s,r),l&&this.selectTile(s,r)):(this.emptyTiles[s.id]=s,this.loadTile(s,r),l&&this.selectTile(s,r)),this.touchTile(s,r),s._shouldRefine=i&&c}let o=new Date().getTime();(this.traversalFinished(r)||o-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=o,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let o of n)this.updateTile(o,r)}updateAndPushChildren(e,r,n,o){let{loadSiblings:s,skipLevelOfDetail:i}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===Te.REPLACE&&e.hasRenderContent&&!i,l=!1,f=!0;for(let u of a)if(u._selectionDepth=o,u.isVisibleAndInRequestVolume?(n.find(u)&&n.delete(u),n.push(u),l=!0):(c||s)&&(this.loadTile(u,r),this.touchTile(u,r)),c){let h;if(u._inRequestVolume?u.hasRenderContent?h=u.contentAvailable:h=this.executeEmptyTraversal(u,r):h=!1,f=f&&h,!f)return!1}return l||(f=!1),f}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){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,r):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,n=!1){let o=e._screenSpaceError;return n&&(o=e.getScreenSpaceError(r,!0)),o>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let o in this.options.viewportTraversersMap)this.options.viewportTraversersMap[o]===r.viewport.id&&n.push(o);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 o of e.children)o.updateVisibility(r),n=n||o.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,o=this._emptyTraversalStack;for(o.push(e);o.length>0;){let s=o.pop(),i=!s.hasRenderContent&&this.canTraverse(s,r),a=!s.hasRenderContent&&s.children.length===0;if(!i&&!s.contentAvailable&&!a&&(n=!1),this.updateTile(s,r),s.isVisibleAndInRequestVolume||(this.loadTile(s,r),this.touchTile(s,r)),i){let c=s.children;for(let l of c)o.push(l)}}return e.hasEmptyContent||n}};var Xm=new x;function zC(t){return t!=null}var gr=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Be.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new N;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new ut({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new N;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,r,n,o=""){this.header=r,this.tileset=e,this.id=o||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===Be.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===Be.UNLOADED}get contentExpired(){return this.contentState===Be.EXPIRED}get contentFailed(){return this.contentState===Be.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=Gm(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case de.I3S:return sl(this,e);case de.TILES3D:return km(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===Te.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Be.UNLOADED)return-1;let o=this.parent,i=o&&(!n||this._screenSpaceError===0||o.hasTilesetContent)?o._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-i,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Be.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=Be.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),o=this.tileset.loader,s=this.tileset.loadOptions[o.id]||{},i={...this.tileset.loadOptions,[o.id]:{...s,isTileset:this.type==="json",...this._getLoaderSpecificOptions(o.id)}};return this.content=await(0,Ym.load)(n,o,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Be.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=Be.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=Be.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,o=n?n._visibilityPlaneMask:ce.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let s=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(s)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ce.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:o}=this;return n.computeVisibilityWithPlaneMask(o,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let r=this.boundingVolume;return Xm.subVectors(r.center,e.position),e.direction.dot(Xm)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(zC(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Be.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 N(e.transform):new N;let r=this.parent,n=this.tileset,o=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new N(o).multiplyRight(this.transform);let s=r&&r._initialTransform?r._initialTransform.clone():new N;this._initialTransform=new N(s).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=Be.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=ce.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||Te.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=ci(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=ci(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=ci(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new N){let r=e.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 Km(this.tileset.tileset)}}};var li=class extends ut{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 i=e.children[0];this.updateTileVisibility(i,r),e._visible=i._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let o=e.refine===Te.REPLACE,s=e._optimChildrenWithinParent===Pm.USE_OPTIMIZATION;if(o&&s&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Te.ADD?!1:!this.shouldRefine(e,r,!0)}};var Qm=D(er(),1);var fi=class{frameNumberMap=new Map;register(e,r){let n=this.frameNumberMap.get(e)||new Map,o=n.get(r)||0;n.set(r,o+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let o=n.get(r)||1;n.set(r,o-1)}isZero(e,r){return(this.frameNumberMap.get(e)?.get(r)||0)===0}};var il={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},ui=class{_statusMap;pendingTilesRegister=new fi;constructor(){this._statusMap={}}add(e,r,n,o){if(!this._statusMap[r]){let{frameNumber:s,viewport:{id:i}}=o;this._statusMap[r]={request:e,callback:n,key:r,frameState:o,status:il.REQUESTED},this.pendingTilesRegister.register(i,s),e().then(a=>{this._statusMap[r].status=il.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,o)}).catch(a=>{this._statusMap[r].status=il.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:o}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(o,n);let{frameNumber:s,viewport:{id:i}}=r;this.pendingTilesRegister.register(i,s),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var hi=class extends ut{_tileManager;constructor(e){super(e),this._tileManager=new ui}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=Wm(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],o=e.children,s=e.tileset;for(let i of n){let a=`${i.id}-${r.viewport.id}`,c=o&&o.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(i.id,s);this._tileManager.find(a)?this._tileManager.update(a,r):(s.tileset.nodePages&&(l=()=>s.tileset.nodePagesTile.formTileFromNodePages(i.id)),this._tileManager.add(l,a,u=>this._onTileLoad(u,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,o=r.getTileUrl(`${r.url}/nodes/${e}`),s={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,Qm.load)(o,n,s)}_onTileLoad(e,r,n){let o=new gr(r.tileset,e,r,n);r.children.push(o);let s=this._tileManager.find(o.id).frameState;this.updateTile(o,s),this._frameNumber===s.frameNumber&&(this.traversalFinished(s)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(o,s)}};var kC={description:"",ellipsoid:G.WGS84,modelMatrix:new N,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},pi="Tiles In Tileset(s)",al="Tiles In Memory",Zm="Tiles In View",$m="Tiles To Render",eg="Tiles Loaded",cl="Tiles Loading",tg="Tiles Unloaded",rg="Failed Tile Loads",ng="Points/Vertices",ll="Tile Memory Use",og="Maximum Screen Space Error",Ao=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new si;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r){this.options={...kC,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Pt.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 Lt({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 wt({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(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=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 o of r){let s=o.id;this._needTraverse(s)?n.push(s):this.traverseCounter--}for(let o of r){let s=o.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),!n.includes(s))continue;let i=Rm(o,this._frameNumber);this._traverser.traverse(this.roots[s],i,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],o=Object.values(this._traverser.selectedTiles),[s,i]=wm(o,e,this.options.maximumTilesSelected);n.selectedTiles=s;for(let a of i)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){let e=this.selectedTiles;this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let s in this.frameStateData){let i=this.frameStateData[s];this.selectedTiles=this.selectedTiles.concat(i.selectedTiles),this._requestedTiles=this._requestedTiles.concat(i._requestedTiles),this._emptyTiles=this._emptyTiles.concat(i._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(s=>s.id)),n=this.selectedTiles.some(s=>!s.tileDrawn),o=0;if(n){for(let s of r)this._heldTiles.add(s);for(let s of this._heldTiles){if(r.has(s))continue;let i=this._tiles[s];i&&i.contentAvailable?(i._selectedFrame=this._frameNumber,this.selectedTiles.push(i),o++):this._heldTiles.delete(s)}}else this._heldTiles=r;o>0&&setTimeout(()=>{this.selectTiles()},0);for(let s of this.selectedTiles)this._tiles[s.id]=s;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(i=>i.id)),o=new Set(r.map(i=>i.id)),s=e.filter(i=>!o.has(i.id)).length>0;return s=s||r.filter(i=>!n.has(i.id)).length>0,s}_loadTiles(){this._requestedTiles.sort((e,r)=>e._priority-r._priority);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(Zm).count=this.selectedTiles.length,this.stats.get($m).count=e,this.stats.get(ng).count=r,this.stats.get(og).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===de.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===de.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===de.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:n,xmax:o,ymin:s,ymax:i,zmin:a,zmax:c}=e;this.cartographicCenter=new x(n+(o-n)/2,s+(i-s)/2,a+(c-a)/2),this.cartesianCenter=new x,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=rl(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[n,o,s,i]=r;this.cartographicCenter=new x(n+(s-n)/2,o+(i-o)/2,0),this.cartesianCenter=new x,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Fm(r,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new x,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 x,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new x,G.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new x(0,0,-G.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=Lm(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(pi),this.stats.get(cl),this.stats.get(al),this.stats.get(Zm),this.stats.get($m),this.stats.get(eg),this.stats.get(tg),this.stats.get(rg),this.stats.get(ng),this.stats.get(ll,"memory"),this.stats.get(og)}_initializeTileHeaders(e,r){let n=new gr(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===de.TILES3D){let o=[];for(o.push(n);o.length>0;){let s=o.pop();this.stats.get(pi).incrementCount();let i=s.header.children||[];for(let a of i){let c=new gr(this,a,s);if(c.contentUrl?.includes("?session=")){let f=new URL(c.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}s.children.push(c),c.depth=s.depth+1,o.push(c)}}}return n}_initializeTraverser(){let e;switch(this.type){case de.TILES3D:e=li;break;case de.I3S:e=hi;break;default:e=ut}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(rg).incrementCount();let n=r.message||r.toString(),o=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,o)}_onTileLoad(e,r){if(r){if(this.type===de.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(pi).reset(),this.stats.get(pi).addCount(n)}e&&e.content&&Bm(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===de.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===de.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),r.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),r.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(cl).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(cl).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(eg).incrementCount(),this.stats.get(al).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(ll).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(al).decrementCount(),this.stats.get(tg).incrementCount(),this.stats.get(ll).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 o of e.children)n.push(o);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(){let e=this.loadOptions.i3s;e&&typeof e=="object"&&"token"in e&&(this._queryParams.token=e.token)}};var di="4.4.3";var Ar={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},hH=Object.keys(Ar);function fl(t,e,r){H(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),o=new Uint8Array(t,e,r);return n.decode(o)}function sg(t,e=0){let 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 jC="1.5.6",qC="1.4.1",ul=`https://www.gstatic.com/draco/versioned/decoders/${jC}`,me={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},xo={[me.DECODER]:`${ul}/${me.DECODER}`,[me.DECODER_WASM]:`${ul}/${me.DECODER_WASM}`,[me.FALLBACK_DECODER]:`${ul}/${me.FALLBACK_DECODER}`,[me.ENCODER]:`https://raw.githubusercontent.com/google/draco/${qC}/javascript/${me.ENCODER}`},hl;async function ag(t={},e){let r=t.modules||{};return r.draco3d?hl||=r.draco3d.createDecoderModule({}).then(n=>({draco:n})):hl||=JC(t,e),await hl}function ig(t,e){if(t&&typeof t=="object"){if(t.default)return t.default;if(t[e])return t[e]}return t}async function JC(t,e){let r,n;switch(e){case"js":r=await Ve(xo[me.FALLBACK_DECODER],"draco",t,me.FALLBACK_DECODER);break;case"wasm":default:try{[r,n]=await Promise.all([await Ve(xo[me.DECODER],"draco",t,me.DECODER),await Ve(xo[me.DECODER_WASM],"draco",t,me.DECODER_WASM)])}catch{r=null,n=null}}return r=ig(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule,!r&&!dt&&([r,n]=await Promise.all([await Ve(xo[me.DECODER],"draco",{...t,useLocalLibraries:!0},me.DECODER),await Ve(xo[me.DECODER_WASM],"draco",{...t,useLocalLibraries:!0},me.DECODER_WASM)]),r=ig(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule),await WC(r,n)}function WC(t,e){if(typeof t!="function")throw new Error("DracoDecoderModule could not be loaded");let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:o=>n({draco:o})})})}var cg="4.4.3";function lg(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 xr(t){let e=1/0,r=1/0,n=1/0,o=-1/0,s=-1/0,i=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let f=a[l],u=a[l+1],h=a[l+2];e=f<e?f:e,r=u<r?u:r,n=h<n?h:n,o=f>o?f:o,s=u>s?u:s,i=h>i?h:i}return[[e,r,n],[o,s,i]]}function pl(t,e,r){let n=lg(e.value),o=r||fg(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:o}}function fg(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 hg(t,e,r){let n=pg(e.metadata),o=[],s=KC(e.attributes);for(let i in t){let a=t[i],c=ug(i,a,s[i]);o.push(c)}if(r){let i=ug("indices",r);o.push(i)}return{fields:o,metadata:n}}function KC(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function ug(t,e,r){let n=r?pg(r.metadata):void 0;return pl(t,e,n)}function pg(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var dg={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},XC={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},YC=4,yo=class{draco;decoder;metadataQuerier;constructor(e){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,r={}){let n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let o=this.decoder.GetEncodedGeometryType(n),s=o===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let i;switch(o){case this.draco.TRIANGULAR_MESH:i=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:i=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!i.ok()||!s.ptr){let h=`DRACO decompression failed: ${i.error_msg()}`;throw new Error(h)}let a=this._getDracoLoaderData(s,o,r),c=this._getMeshData(s,a,r),l=xr(c.attributes),f=hg(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:s.num_points(),boundingBox:l},...c,schema:f}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,r,n){let o=this._getTopLevelMetadata(e),s=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:o,attributes:s}}_getDracoAttributes(e,r){let n={};for(let o=0;o<e.num_attributes();o++){let s=this.decoder.GetAttribute(e,o),i=this._getAttributeMetadata(e,o);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:o,metadata:i};let a=this._getQuantizationTransform(s,r);a&&(n[s.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(s,r);c&&(n[s.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let o=this._getMeshAttributes(r,e,n);if(!o.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:o,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:o,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:o}}_getMeshAttributes(e,r,n){let o={};for(let s of Object.values(e.attributes)){let i=this._deduceAttributeName(s,n);s.name=i;let a=this._getAttributeValues(r,s);if(a){let{value:c,size:l}=a;o[i]={value:c,size:l,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return o}_getTriangleListIndices(e){let n=e.num_faces()*3,o=n*YC,s=this.draco._malloc(o);try{return this.decoder.GetTrianglesUInt32Array(e,o,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),$C(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=XC[r.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let o=r.num_components,i=e.num_points()*o,a=i*n.BYTES_PER_ELEMENT,c=QC(this.draco,n),l,f=this.draco._malloc(a);try{let u=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,u,c,a,f),l=new n(this.draco.HEAPF32.buffer,f,i).slice()}finally{this.draco._free(f)}return{value:l,size:o}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[i,a]of Object.entries(r.extraAttributes||{}))if(a===n)return i;let o=e.attribute_type;for(let i in dg)if(this.draco[i]===o)return dg[i];let s=r.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].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 o=0;o<n;o++){let s=this.metadataQuerier.GetEntryName(e,o);r[s]=this._getDracoMetadataField(e,s)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let o=ZC(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:o}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,o=[...r,...n];for(let s of o)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits(),range:i.range(),min_values:new Float32Array([1,2,3]).map(a=>i.min_value(a))}}finally{this.draco.destroy(i)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits()}}finally{this.draco.destroy(i)}}return null}};function QC(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 ZC(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function $C(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var mg={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:cg,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},bo={...mg,parse:eB};async function eB(t,e){let{draco:r}=await ag(jn(e),e?.draco?.decoderType||"wasm"),n=new yo(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var tB={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},ae={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},O={...tB,...ae};var dl={[ae.DOUBLE]:Float64Array,[ae.FLOAT]:Float32Array,[ae.UNSIGNED_SHORT]:Uint16Array,[ae.UNSIGNED_INT]:Uint32Array,[ae.UNSIGNED_BYTE]:Uint8Array,[ae.BYTE]:Int8Array,[ae.SHORT]:Int16Array,[ae.INT]:Int32Array},rB={DOUBLE:ae.DOUBLE,FLOAT:ae.FLOAT,UNSIGNED_SHORT:ae.UNSIGNED_SHORT,UNSIGNED_INT:ae.UNSIGNED_INT,UNSIGNED_BYTE:ae.UNSIGNED_BYTE,BYTE:ae.BYTE,SHORT:ae.SHORT,INT:ae.INT},ml="Failed to convert GL type",fe=class{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in dl)if(dl[r]===e)return r;throw new Error(ml)}static fromName(e){let r=rB[e];if(!r)throw new Error(ml);return r}static getArrayType(e){switch(e){case ae.UNSIGNED_SHORT_5_6_5:case ae.UNSIGNED_SHORT_4_4_4_4:case ae.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=dl[e];if(!r)throw new Error(ml);return r}}static getByteSize(e){return fe.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return Boolean(fe.getArrayType(e))}static createTypedArray(e,r,n=0,o){o===void 0&&(o=(r.byteLength-n)/fe.getByteSize(e));let s=ArrayBuffer.isView(r)?r.buffer:r,i=fe.getArrayType(e);return new i(s,n,o)}};function gg(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function gl(t,e=[0,0,0]){let r=t>>11&31,n=t>>5&63,o=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=o<<3,e}var WH=1/256;var KH=new Yt,XH=new x,YH=new Yt,QH=new Yt,ZH=new Uint8Array(1);function Ag(t,e=255){return cs(t,0,e)/e*2-1}function xg(t){return t<0?-1:1}function yg(t,e,r,n){if(gg(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=Ag(t,r),n.y=Ag(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let o=n.x;n.x=(1-Math.abs(n.y))*xg(o),n.y=(1-Math.abs(o))*xg(n.y)}return n.normalize()}function Al(t,e,r){return yg(t,e,255,r)}var Tt=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,r){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,r=O.UNSIGNED_INT,n=1){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,o.byteOffset):o}getPropertyArray(e,r,n){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(r=fe.fromName(o.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,o.byteOffset)):this._getTypedArrayFromArray(e,r,o)}getProperty(e,r,n,o,s){let i=this.json[e];if(!i)return i;let a=this.getPropertyArray(e,r,n);if(n===1)return a[o];for(let c=0;c<n;++c)s[c]=a[n*o+c];return s}_getTypedArrayFromBinary(e,r,n,o,s){let i=this._cachedTypedArrays,a=i[e];return a||(a=fe.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+s,o*n),i[e]=a),a}_getTypedArrayFromArray(e,r,n){let o=this._cachedTypedArrays,s=o[e];if(!s){if(ArrayBuffer.isView(n)){let i=n.byteOffset,c=n.byteLength/fe.getByteSize(r);s=fe.createTypedArray(r,n.buffer,i,c)}else if(n instanceof ArrayBuffer)s=fe.createTypedArray(r,n);else{let i=fe.getArrayType(r);s=new i(n)}o[e]=s}return s}};var nB={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},oB={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]]},sB={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 bg(t,e,r,n){let{componentType:o}=t;H(t.componentType);let s=typeof o=="string"?fe.fromName(o):o,i=nB[t.type],a=oB[t.type],c=sB[t.type];return r+=t.byteOffset,{values:fe.createTypedArray(s,e,r,i*n),type:s,size:i,unpacker:a,packer:c}}var ht=t=>t!==void 0;function Tg(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),o=e.HIERARCHY;return o&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=o,n=o),n?iB(n,r):null}function iB(t,e){let r,n,o,s=t.instancesLength,i=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,f=s;ht(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,o=getBinaryAccessor(a),a=o.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,s));let u;if(ht(c))for(ht(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,o=getBinaryAccessor(c),c=o.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,s)),u=new Uint16Array(s),f=0,r=0;r<s;++r)u[r]=f,f+=c[r];ht(l)&&ht(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,o=getBinaryAccessor(l),l=o.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,f));let h=i.length;for(r=0;r<h;++r){let m=i[r].length,y=i[r].instances,b=getBinaryProperties(m,y,e);i[r].instances=combine(b,y)}let p=new Array(h).fill(0),d=new Uint16Array(s);for(r=0;r<s;++r)n=a[r],d[r]=p[n],++p[n];let g={classes:i,classIds:a,classIndexes:d,parentCounts:c,parentIndexes:u,parentIds:l};return lB(g),g}function $r(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?aB(t,e,r):cB(t,e,r)}function aB(t,e,r){let n=t.classIds,o=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,f=scratchStack;for(f.length=0,f.push(e);f.length>0;){if(e=f.pop(),c[e]===l)continue;c[e]=l;let u=r(t,e);if(ht(u))return u;let h=o[e],p=i[e];for(let d=0;d<h;++d){let g=s[p+d];g!==e&&f.push(g)}}return null}function cB(t,e,r){let n=!0;for(;n;){let o=r(t,e);if(ht(o))return o;let s=t.parentIds[e];n=s!==e,e=s}throw new Error("traverseHierarchySingleParent")}function lB(t){let e=[],n=t.classIds.length;for(let o=0;o<n;++o)Mg(t,o,stack)}function Mg(t,e,r){let n=t.parentCounts,o=t.parentIds,s=t.parentIndexes,a=t.classIds.length;if(!ht(o))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=ht(n)?n[e]:1,l=ht(n)?s[e]:e;for(let f=0;f<c;++f){let u=o[l+f];u!==e&&Mg(t,u,r)}r.pop(e)}function we(t){return t!=null}var mi=(t,e)=>t,fB={HIERARCHY:!0,extensions:!0,extras:!0},yr=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,n,o={}){H(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(let s in this.json)fB[s]||(this._properties[s]=this.json[s]);this._binaryProperties=this._initializeBinaryProperties(),o["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=Tg(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),H(typeof r=="string",r),this._hierarchy){let n=$r(this._hierarchy,e,(o,s)=>{let i=o.classIds[s];return o.classes[i].name===r});return we(n)}return!1}isExactClass(e,r){return H(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),H(typeof r=="string",r),we(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=we(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),H(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(we(o))return this._getBinaryProperty(o,e)}let n=this._properties[r];if(we(n))return mi(n[e],!0);if(this._hierarchy){let o=this._getHierarchyProperty(e,r);if(we(o))return o}}setProperty(e,r,n){let o=this.featureCount;if(this._checkBatchId(e),H(typeof r=="string",r),this._binaryProperties){let i=this._binaryProperties[r];if(i){this._setBinaryProperty(i,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let s=this._properties[r];we(s)||(this._properties[r]=new Array(o),s=this._properties[r]),s[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],o=this._initializeBinaryProperty(r,n);o&&(e=e||{},e[r]=o)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;H(this.binary,`Property ${e} requires a batch table binary.`),H(n.type,`Property ${e} requires a type.`);let o=bg(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:o.values,componentCount:o.size,unpack:o.unpacker,pack:o.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=$r(this._hierarchy,e,(o,s)=>{let i=o.classIds[s],a=o.classes[i].instances;return we(a[r])});return we(n)}_getPropertyNamesInHierarchy(e,r){$r(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s].instances;for(let a in i)i.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return $r(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s],a=n.classIndexes[o],c=i.instances[r];return we(c)?we(c.typedArray)?this._getBinaryProperty(c,a):mi(c[a],!0):null})}_setHierarchyProperty(e,r,n,o){let s=$r(this._hierarchy,r,(i,a)=>{let c=i.classIds[a],l=i.classes[c],f=i.classIndexes[a],u=l.instances[n];return we(u)?(H(a===r,`Inherited property "${n}" is read-only.`),we(u.typedArray)?this._setBinaryProperty(u,f,o):u[f]=mi(o,!0),!0):!1});return we(s)}};function zt(t,e,r=0){let 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 en=4,Sg="b3dm tile in legacy format.";function tn(t,e,r){let n=new DataView(e),o;t.header=t.header||{};let s=n.getUint32(r,!0);r+=en;let i=n.getUint32(r,!0);r+=en;let a=n.getUint32(r,!0);r+=en;let c=n.getUint32(r,!0);return r+=en,a>=570425344?(r-=en*2,o=s,a=i,c=0,s=0,i=0,console.warn(Sg)):c>=570425344&&(r-=en,o=a,a=s,c=i,s=0,i=0,console.warn(Sg)),t.header.featureTableJsonByteLength=s,t.header.featureTableBinaryByteLength=i,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=o,r}function rn(t,e,r,n){return r=uB(t,e,r,n),r=hB(t,e,r,n),r}function uB(t,e,r,n){let{featureTableJsonByteLength:o,featureTableBinaryByteLength:s,batchLength:i}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:i||0},o&&o>0){let a=fl(e,r,o);t.featureTableJson=JSON.parse(a)}return r+=o||0,t.featureTableBinary=new Uint8Array(e,r,s),r+=s||0,r}function hB(t,e,r,n){let{batchTableJsonByteLength:o,batchTableBinaryByteLength:s}=t.header||{};if(o&&o>0){let i=fl(e,r,o);t.batchTableJson=JSON.parse(i),r+=o,s&&s>0&&(t.batchTableBinary=new Uint8Array(e,r,s),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=s)}return r}function xl(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:o,pointCount:s=0}=t;if(n&&r){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=n[a],f=r.getProperty(c,"dimensions").map(u=>u*255);i[a*3]=f[0],i[a*3+1]=f[1],i[a*3+2]=f[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}if(e&&o){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=gl(e[a]);i[a*3]=c[0],i[a*3+1]=c[1],i[a*3+2]=c[2]}return{type:O.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}return e&&e.length===s*3?{type:O.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:O.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var Eg=new x;function _g(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++)Al(e[n*2],e[n*2+1],Eg),Eg.toArray(r,n*3);return{type:O.FLOAT,size:2,value:r}}return{type:O.FLOAT,size:2,value:e}}function Cg(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,pB(t,e)):{type:O.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function pB(t,e){let r=new x,n=new Float32Array(t.pointCount*3);for(let o=0;o<t.pointCount;o++)r.set(e[o*3],e[o*3+1],e[o*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,o*3);return n}async function Bg(t,e,r,n,o){r=zt(t,e,r),r=tn(t,e,r),r=rn(t,e,r,n),dB(t);let{featureTable:s,batchTable:i}=mB(t);return await bB(t,s,i,n,o),gB(t,s,n),AB(t,s,i),xB(t,s),r}function dB(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function mB(t){let e=new Tt(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",O.FLOAT,3);let n=yB(t,e);return{featureTable:e,batchTable:n}}function gB(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",O.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=(1<<16)-1,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=Cg(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function AB(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",O.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",O.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",O.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=xl(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",O.UNSIGNED_BYTE,4))}function xB(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",O.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",O.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=_g(t,r)}}function yB(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",O.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:o,batchTableBinary:s}=t;r=new yr(o,s,n)}return r}async function bB(t,e,r,n,o){let s,i,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){i=l.properties;let u=l.byteOffset,h=l.byteLength;if(!i||!Number.isFinite(u)||!h)throw new Error("Draco properties, byteOffset, and byteLength must be defined");s=(t.featureTableBinary||[]).slice(u,u+h),t.hasPositions=Number.isFinite(i.POSITION),t.hasColors=Number.isFinite(i.RGB)||Number.isFinite(i.RGBA),t.hasNormals=Number.isFinite(i.NORMAL),t.hasBatchIds=Number.isFinite(i.BATCH_ID),t.isTranslucent=Number.isFinite(i.RGBA)}if(!s)return!0;let f={buffer:s,properties:{...i,...a},featureTableProperties:i,batchTableProperties:a,dequantizeInShader:!1};return await TB(t,f,n,o)}async function TB(t,e,r,n){if(!n)return;let o={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete o["3d-tiles"];let s=await Oe(e.buffer,bo,o,n),i=s.attributes.POSITION&&s.attributes.POSITION.value,a=s.attributes.COLOR_0&&s.attributes.COLOR_0.value,c=s.attributes.NORMAL&&s.attributes.NORMAL.value,l=s.attributes.BATCH_ID&&s.attributes.BATCH_ID.value,f=i&&s.attributes.POSITION.value.quantization,u=c&&s.attributes.NORMAL.value.quantization;if(f){let p=s.POSITION.data.quantization,d=p.range;t.quantizedVolumeScale=new x(d,d,d),t.quantizedVolumeOffset=new x(p.minValues),t.quantizedRange=(1<<p.quantizationBits)-1,t.isQuantizedDraco=!0}u&&(t.octEncodedRange=(1<<s.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let h={};if(e.batchTableProperties)for(let p of Object.keys(e.batchTableProperties))s.attributes[p]&&s.attributes[p].value&&(h[p.toLowerCase()]=s.attributes[p].value);t.attributes={positions:i,colors:xl(t,a,void 0),normals:c,batchIds:l,...h}}var yl={};be(yl,{createExtMeshFeatures:()=>DB,decode:()=>FB,encode:()=>PB,name:()=>LB});function ue(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var gi={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ai={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var MB=1.33,Ig=["SCALAR","VEC2","VEC3","VEC4"],SB=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],EB=new Map(SB),_B={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},CB={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},BB={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function xi(t){return Ig[t-1]||Ig[0]}function kt(t){let e=EB.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function nn(t,e){let r=BB[t.componentType],n=_B[t.type],o=CB[t.componentType],s=t.count*n,i=t.count*n*o;ue(i>=0&&i<=e.byteLength);let a=Ai[t.componentType],c=gi[t.type];return{ArrayType:r,length:s,byteLength:i,componentByteSize:a,numberOfComponentsInElement:c}}function To(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(i=>i.bufferView);r=r.filter(i=>!n.includes(i));let o=r.reduce((i,a)=>i+a.byteLength,0),s=e.reduce((i,a)=>{let{width:c,height:l}=a.image;return i+c*l},0);return o+Math.ceil(4*s*MB)}function vg(t,e,r){let n=t.bufferViews[r];ue(n);let o=n.buffer,s=e[o];ue(s);let i=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,i,n.byteLength)}function Rg(t,e,r){let n=typeof r=="number"?t.accessors?.[r]:r;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=t.bufferViews?.[n.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:s,byteOffset:i}=e[o.buffer],a=(i||0)+(n.byteOffset||0)+(o.byteOffset||0),{ArrayType:c,length:l,componentByteSize:f,numberOfComponentsInElement:u}=nn(n,o),h=f*u,p=o.byteStride||h;if(typeof o.byteStride>"u"||o.byteStride===h)return new c(s,a,l);let d=new c(l);for(let g=0;g<n.count;g++){let m=new c(s,a+g*p,u);d.set(m,g*u)}return d}function IB(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var j=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||IB(),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(o=>o===e),n=this.getRequiredExtensions().find(o=>o===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(o=>o===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];ue(n);let o=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,o,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return Rg(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),o=this.getBuffer(r.buffer).data,s=r.byteOffset||0;return new Uint8Array(o,s,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 o=e.extensions||{};o[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let o=this.json.extensionsRemoved;o.includes(r)||o.push(r)}delete n[r]}addExtension(e,r={}){return ue(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return ue(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){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let r=this.json.extensionsRemoved;r.includes(e)||r.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 o={mesh:r};return n&&(o.matrix=n),this.json.nodes.push(o),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:o,mode:s=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:s}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(o)&&(a.primitives[0].material=o),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=lr(e),o=r||n?.mimeType,i={bufferView:this.addBufferView(e),mimeType:o};return this.json.images=this.json.images||[],this.json.images.push(i),this.json.images.length-1}addBufferView(e,r=0,n=this.byteLength){let o=e.byteLength;ue(Number.isFinite(o)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let s={buffer:r,byteOffset:n,byteLength:o};return this.byteLength+=Rt(o,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:xi(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,r={size:3}){let n=this.addBufferView(e),o={min:r.min,max:r.max};(!o.min||!o.max)&&(o=this._getAccessorMinMax(e,r.size));let s={size:r.size,componentType:kt(e),count:Math.round(e.length/r.size),min:o.min,max:o.max};return this.addAccessor(n,Object.assign(s,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(){let e=this.byteLength,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;for(let s of this.sourceBuffers||[])o=xc(s,n,o);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=r,this.sourceBuffers=[r],this.gltf.buffers=[{arrayBuffer:r,byteOffset:0,byteLength:r.byteLength}]}_removeStringFromArray(e,r){let n=!0;for(;n;){let o=e.indexOf(r);o>-1?e.splice(o,1):n=!1}}_addAttributes(e={}){let r={};for(let n in e){let o=e[n],s=this._getGltfAttributeName(n),i=this.addBinaryBuffer(o.value,o);r[s]=i}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 o=e.subarray(0,r);for(let s of o)n.min.push(s),n.max.push(s);for(let s=r;s<e.length;s+=r)for(let i=0;i<r;i++)n.min[0+i]=Math.min(n.min[0+i],e[s+i]),n.max[0+i]=Math.max(n.max[0+i],e[s+i]);return n}};function wg(t){return(t%1+1)%1}var Lg={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},vB={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},Fg={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function Mo(t,e){return Fg[e]*Lg[t]}function on(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let o=t.getTypedArrayForBufferView(e),s=sn(o,"SCALAR",r,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function sn(t,e,r,n=1){let o=Lg[e],s=vB[r],i=Fg[r],a=n*o,c=a*i,l=t.buffer,f=t.byteOffset;return f%i!==0&&(l=new Uint8Array(l).slice(f,f+c).buffer,f=0),new s(Ft(l),f,a)}function an(t,e,r){let n=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[n],s=t.getTypedArrayForAccessor(o),i=t.gltf.json,a=e.index,c=i.textures?.[a]?.source;if(typeof c<"u"){let l=i.images?.[c]?.mimeType,f=t.gltf.images?.[c];if(f&&typeof f.width<"u"){let u=[];for(let h=0;h<s.length;h+=2){let p=RB(f,l,s,h,e.channels);u.push(p)}return u}}return[]}function yi(t,e,r,n,o){if(!r?.length)return;let s=[];for(let f of r){let u=n.findIndex(h=>h===f);u===-1&&(u=n.push(f)-1),s.push(u)}let i=new Uint32Array(s),a=t.gltf.buffers.push({arrayBuffer:i.buffer,byteOffset:i.byteOffset,byteLength:i.byteLength})-1,c=t.addBufferView(i,a,0),l=t.addAccessor(c,{size:1,componentType:kt(i),count:i.length});o.attributes[e]=l}function RB(t,e,r,n,o=[0]){let s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},i=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=wB(i,a,t,c),f=0;for(let u of o){let h=typeof u=="number"?Object.values(s)[u]:s[u],p=l+h.offset,d=Zn(t);if(d.data.length<=p)throw new Error(`${d.data.length} <= ${p}`);let g=d.data[p];f|=g<<h.shift}return f}function wB(t,e,r,n=1){let o=r.width,s=wg(t)*(o-1),i=Math.round(s),a=r.height,c=wg(e)*(a-1),l=Math.round(c),f=r.components?r.components:n;return(l*o+i)*f}function bi(t,e,r,n,o){let s=[];for(let i=0;i<e;i++){let a=r[i],c=r[i+1]-r[i];if(c+a>n)break;let l=a/o,f=c/o;s.push(t.slice(l,l+f))}return s}function Ti(t,e,r){let n=[];for(let o=0;o<e;o++){let s=o*r;n.push(t.slice(s,s+r))}return n}function Mi(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let o=[],s=new TextDecoder("utf8"),i=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+i<=e.length){let l=e.subarray(i,c+i),f=s.decode(l);o.push(f),i+=c}}return o}return[]}var cn="EXT_mesh_features",LB=cn;async function FB(t,e){let r=new j(t);NB(r,e)}function PB(t,e){let r=new j(t);return UB(r,e),r.createBinaryChunk(),r.gltf}function NB(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let o of n.primitives)OB(t,o,e)}function OB(t,e,r){if(!r?.gltf?.loadBuffers)return;let o=e.extensions?.[cn]?.featureIds;if(o)for(let s of o){let i;if(typeof s.attribute<"u"){let a=`_FEATURE_ID_${s.attribute}`,c=e.attributes[a];i=t.getTypedArrayForAccessor(c)}else typeof s.texture<"u"&&r?.gltf?.loadImages?i=an(t,s.texture,e):i=[];s.data=i}}function UB(t,e){let r=t.gltf.json.meshes;if(r)for(let n of r)for(let o of n.primitives)GB(t,o)}function DB(t,e,r,n){e.extensions||(e.extensions={});let o=e.extensions[cn];o||(o={featureIds:[]},e.extensions[cn]=o);let{featureIds:s}=o,i={featureCount:r.length,propertyTable:n,data:r};s.push(i),t.addObjectExtension(e,cn,o)}function GB(t,e){let r=e.extensions?.[cn];if(!r)return;let n=r.featureIds;n.forEach((o,s)=>{if(o.data){let{accessorKey:i,index:a}=VB(e.attributes),c=new Uint32Array(o.data);n[s]={featureCount:c.length,propertyTable:o.propertyTable,attribute:a},t.gltf.buffers.push({arrayBuffer:c.buffer,byteOffset:c.byteOffset,byteLength:c.byteLength});let l=t.addBufferView(c),f=t.addAccessor(l,{size:1,componentType:kt(c),count:c.length});e.attributes[i]=f}})}function VB(t){let e="_FEATURE_ID_",r=Object.keys(t).filter(s=>s.indexOf(e)===0),n=-1;for(let s of r){let i=Number(s.substring(e.length));i>n&&(n=i)}return n++,{accessorKey:`${e}${n}`,index:n}}var Ml={};be(Ml,{createExtStructuralMetadata:()=>cI,decode:()=>zB,encode:()=>kB,name:()=>HB});var ln="EXT_structural_metadata",HB=ln;async function zB(t,e){let r=new j(t);jB(r,e)}function kB(t,e){let r=new j(t);return iI(r,e),r.createBinaryChunk(),r.gltf}function jB(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(ln);r&&(e.gltf?.loadImages&&qB(t,r),JB(t,r))}function qB(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let o of n.meshes)for(let s of o.primitives)KB(t,r,s,e)}function JB(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.propertyTables;if(n&&o)for(let s in n){let i=WB(o,s);i&&YB(t,r,i)}}function WB(t,e){for(let r of t)if(r.class===e)return r;return null}function KB(t,e,r,n){if(!e)return;let s=r.extensions?.[ln]?.propertyTextures;if(s)for(let i of s){let a=e[i];XB(t,a,r,n)}}function XB(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let o=e.class;for(let s in e.properties){let i=`${o}_${s}`,a=e.properties?.[s];if(!a)continue;a.data||(a.data=[]);let c=a.data,l=an(t,a,r);l!==null&&(yi(t,i,l,c,r),a.data=c,n.dataAttributeNames.push(i))}}function YB(t,e,r){let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=QB(t,e,i,o,a);a.data=c}}}function QB(t,e,r,n,o){let s=[],i=o.values,a=t.getTypedArrayForBufferView(i),c=ZB(t,r,o,n),l=$B(t,o,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=eI(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{s=Mi(n,a,c,l);break}case"ENUM":{s=tI(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return s}function ZB(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?on(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function $B(t,e,r){return typeof e.stringOffsets<"u"?on(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function eI(t,e,r,n){let o=t.array,s=t.count,i=Mo(t.type,t.componentType),a=r.byteLength/i,c;return t.componentType?c=sn(r,t.type,t.componentType,a):c=r,o?n?bi(c,e,n,r.length,i):s?Ti(c,e,s):[]:c}function tI(t,e,r,n,o){let s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let i=t.enums?.[s];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);let a=i.valueType||"UINT16",c=Mo(e.type,a),l=n.byteLength/c,f=sn(n,e.type,a,l);if(f||(f=n),e.array){if(o)return rI({valuesData:f,numberOfElements:r,arrayOffsets:o,valuesDataBytesLength:n.length,elementSize:c,enumEntry:i});let u=e.count;return u?nI(f,r,u,i):[]}return Tl(f,0,r,i)}function rI(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:o,elementSize:s,enumEntry:i}=t,a=[];for(let c=0;c<r;c++){let l=n[c],f=n[c+1]-n[c];if(f+l>o)break;let u=l/s,h=f/s,p=Tl(e,u,h,i);a.push(p)}return a}function nI(t,e,r,n){let o=[];for(let s=0;s<e;s++){let i=r*s,a=Tl(t,i,r,n);o.push(a)}return o}function Tl(t,e,r,n){let o=[];for(let s=0;s<r;s++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)o.push("");else{let i=t[e+s],a=oI(n,i);a?o.push(a.name):o.push("")}return o}function oI(t,e){for(let r of t.values)if(r.value===e)return r;return null}var sI="schemaClassId";function iI(t,e){let r=t.getExtension(ln);if(r&&r.propertyTables)for(let n of r.propertyTables){let o=n.class,s=r.schema?.classes?.[o];n.properties&&s&&aI(n,s,t)}}function aI(t,e,r){for(let n in t.properties){let o=t.properties[n].data;if(o){let s=e.properties[n];if(s){let i=uI(o,s,r);t.properties[n]=i}}}}function cI(t,e,r=sI){let n=t.getExtension(ln);n||(n=t.addExtension(ln)),n.schema=lI(e,r,n.schema);let o=fI(e,r,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(o)-1}function lI(t,e,r){let n=r??{id:"schema_id"},o={properties:{}};for(let s of t){let i={type:s.elementType,componentType:s.componentType};o.properties[s.name]=i}return n.classes={},n.classes[e]=o,n}function fI(t,e,r){let n={class:e,count:0},o=0,s=r.classes?.[e];for(let i of t){if(o===0&&(o=i.values.length),o!==i.values.length&&i.values.length)throw new Error("Illegal values in attributes");s?.properties[i.name]&&(n.properties||(n.properties={}),n.properties[i.name]={values:0,data:i.values})}return n.count=o,n}function uI(t,e,r){let n={values:0};if(e.type==="STRING"){let{stringData:o,stringOffsets:s}=dI(t);n.stringOffsets=bl(s,r),n.values=bl(o,r)}else if(e.type==="SCALAR"&&e.componentType){let o=pI(t,e.componentType);n.values=bl(o,r)}return n}var hI={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function pI(t,e){let r=[];for(let o of t)r.push(Number(o));let n=hI[e];if(!n)throw new Error("Illegal component type");return new n(r)}function dI(t){let e=new TextEncoder,r=[],n=0;for(let c of t){let l=e.encode(c);n+=l.length,r.push(l)}let o=new Uint8Array(n),s=[],i=0;for(let c of r)o.set(c,i),s.push(i),i+=c.length;s.push(i);let a=new Uint32Array(s);return{stringData:o,stringOffsets:a}}function bl(t,e){return e.gltf.buffers.push({arrayBuffer:Ft(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var Sl={};be(Sl,{decode:()=>gI,name:()=>mI});var Pg="EXT_feature_metadata",mI=Pg;async function gI(t,e){let r=new j(t);AI(r,e)}function AI(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(Pg);r&&(e.gltf?.loadImages&&xI(t,r),yI(t,r))}function xI(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:o}=e;if(n&&o)for(let s in n){let i=n[s],a=TI(o,s);a&&SI(t,a,i)}}function yI(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.featureTables;if(n&&o)for(let s in n){let i=bI(o,s);i&&MI(t,r,i)}}function bI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function TI(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function MI(t,e,r){if(!r.class)return;let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=EI(t,e,i,o,a);a.data=c}}}function SI(t,e,r){let n=e.class;for(let o in r.properties){let s=e?.properties?.[o];if(s){let i=vI(t,s,n);s.data=i}}}function EI(t,e,r,n,o){let s=[],i=o.bufferView,a=t.getTypedArrayForBufferView(i),c=_I(t,r,o,n),l=CI(t,r,o,n);return r.type==="STRING"||r.componentType==="STRING"?s=Mi(n,a,c,l):BI(r)&&(s=II(r,n,a,c)),s}function _I(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?on(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function CI(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?on(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function BI(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 II(t,e,r,n){let o=t.type==="ARRAY",s=t.componentCount,i="SCALAR",a=t.componentType||t.type,c=Mo(i,a),l=r.byteLength/c,f=sn(r,i,a,l);return o?n?bi(f,e,n,r.length,c):s?Ti(f,e,s):[]:f}function vI(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let o=[];for(let s of n.meshes)for(let i of s.primitives)RI(t,r,e,o,i);return o}function RI(t,e,r,n,o){let s={channels:r.channels,...r.texture},i=an(t,s,o);i&&yi(t,e,i,n,o)}var Ng="4.4.3";var Og="4.4.3";var Si={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Ug;async function _l(t){dc(t.modules);let e=mc("basis");return e||(Ug||=wI(t),await Ug)}async function wI(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Si.TRANSCODER,"textures",t),await Ve(Si.TRANSCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await LI(e,r)}function LI(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,initializeBasis:i}=o;i(),n({BasisFile:s})})})}var El;async function Cl(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(El=El||FI(t),await El)}async function FI(t){let e=null,r=null;return[e,r]=await Promise.all([await Ve(Si.ENCODER,"textures",t),await Ve(Si.ENCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await PI(e,r)}function PI(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,KTX2File:i,initializeBasis:a,BasisEncoder:c}=o;a(),n({BasisFile:s,KTX2File:i,BasisEncoder:c})})})}var NI=["","WEBKIT_","MOZ_"],Dg={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};var Ei=null;function Gg(t){if(!Ei){t=t||OI()||void 0,Ei=new Set;for(let e of NI)for(let r in Dg)if(t&&t.getExtension(`${e}${r}`))for(let n of Dg[r])Ei.add(n)}return Ei}function OI(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var Ue=[171,75,84,88,32,50,48,187,13,10,26,10];function Vg(t){let e=new Uint8Array(t);return!(e.byteLength<Ue.length||e[0]!==Ue[0]||e[1]!==Ue[1]||e[2]!==Ue[2]||e[3]!==Ue[3]||e[4]!==Ue[4]||e[5]!==Ue[5]||e[6]!==Ue[6]||e[7]!==Ue[7]||e[8]!==Ue[8]||e[9]!==Ue[9]||e[10]!==Ue[10]||e[11]!==Ue[11])}var Hg=Promise.resolve(),jg={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}},W9=Object.freeze(Object.keys(jg));async function GI(t){let e=Hg,r;Hg=new Promise(n=>{r=n}),await e;try{return await t()}finally{r()}}async function qg(t,e={}){let r=jn(e);return await GI(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Vg(t)){let o=await Cl(r);return zg(o.KTX2File,t,e)}let{BasisFile:n}=await _l(r);return Bl(n,t,e)}switch(e.basis.module){case"encoder":let n=await Cl(r);switch(e.basis.containerFormat){case"ktx2":return zg(n.KTX2File,t,e);case"basis":default:return Bl(n.BasisFile,t,e)}case"transcoder":default:let{BasisFile:o}=await _l(r);return Bl(o,t,e)}})}function Bl(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");let o=n.getNumImages(),s=[];for(let i=0;i<o;i++){let a=n.getNumLevels(i),c=[];for(let l=0;l<a;l++)c.push(VI(n,i,l,r));s.push(c)}return s}finally{n.close(),n.delete()}}function VI(t,e,r,n){let o=t.getImageWidth(e,r),s=t.getImageHeight(e,r),i=t.getHasAlpha(),{compressed:a,format:c,basisFormat:l,textureFormat:f}=Jg(n,i),u=t.getImageTranscodedSizeInBytes(e,r,l),h=new Uint8Array(u);if(!t.transcodeImage(h,e,r,l,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:o,height:s,data:h,compressed:a,...c!==void 0?{format:c}:{},...f!==void 0?{textureFormat:f}:{},hasAlpha:i}}function zg(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");let o=n.getLevels(),s=[];for(let i=0;i<o;i++)s.push(HI(n,i,r));return[s]}finally{n.close(),n.delete()}}function HI(t,e,r){let{alphaFlag:n,height:o,width:s}=t.getImageLevelInfo(e,0,0),{compressed:i,format:a,basisFormat:c,textureFormat:l}=Jg(r,n),f=t.getImageTranscodedSizeInBytes(e,0,0,c),u=new Uint8Array(f);if(!t.transcodeImage(u,e,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:s,height:o,data:u,compressed:i,...a!==void 0?{format:a}:{},...l!==void 0?{textureFormat:l}:{},levelSize:f,hasAlpha:n}}function Jg(t,e){let r=t.basis?.format||"auto";r==="auto"&&(r=t.basis?.supportedTextureFormats?kg(t.basis.supportedTextureFormats):kg()),typeof r=="object"&&(r=e?r.alpha:r.noAlpha);let n=r.toLowerCase(),o=jg[n];if(!o)throw new Error(`Unknown Basis format ${r}`);return o}function kg(t=Gg()){let e=new Set(t);return fn(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":fn(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:fn(e,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:fn(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:fn(e,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":e.has("etc1-rgb-unorm-webgl")?"etc1":fn(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function fn(t,e){return e.some(r=>t.has(r))}var Wg={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:Og,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},Il={...Wg,parse:qg};var un=!0,Kg=1735152710,wl=12,_i=8,zI=1313821514,kI=5130562,jI=0,qI=0,JI=1;function WI(t,e=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 Xg(t,e=0,r={}){let n=new DataView(t),{magic:o=Kg}=r,s=n.getUint32(e,!1);return s===o||s===Kg}function Yg(t,e,r=0,n={}){let o=new DataView(e),s=WI(o,r+0),i=o.getUint32(r+4,un),a=o.getUint32(r+8,un);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:s,version:i,json:{},binChunks:[]}),r+=wl,t.version){case 1:return KI(t,o,r);case 2:return XI(t,o,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function KI(t,e,r){H(t.header.byteLength>wl+_i);let n=e.getUint32(r+0,un),o=e.getUint32(r+4,un);return r+=_i,H(o===jI),vl(t,e,r,n),r+=n,r+=Rl(t,e,r,t.header.byteLength),r}function XI(t,e,r,n){return H(t.header.byteLength>wl+_i),YI(t,e,r,n),r+t.header.byteLength}function YI(t,e,r,n){for(;r+8<=t.header.byteLength;){let o=e.getUint32(r+0,un),s=e.getUint32(r+4,un);switch(r+=_i,s){case zI:vl(t,e,r,o);break;case kI:Rl(t,e,r,o);break;case qI:n.strict||vl(t,e,r,o);break;case JI:n.strict||Rl(t,e,r,o);break;default:break}r+=Rt(o,4)}return r}function vl(t,e,r,n){let o=new Uint8Array(e.buffer,r,n),i=new TextDecoder("utf8").decode(o);return t.json=JSON.parse(i),Rt(n,4)}function Rl(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Rt(n,4)}function Ll(t,e,r){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let o=r?.baseUrl||QI(e?.core?.baseUrl);if(!o)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return o.endsWith("/")?`${o}${t}`:`${o}/${t}`}function QI(t){if(!t)return;if(t.endsWith("/"))return t;let e=t.lastIndexOf("/");return e>=0?t.slice(0,e+1):""}var Pl={};be(Pl,{decode:()=>l2,name:()=>c2});var ZI="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",$I="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",e2=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]),t2=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]),r2={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},n2={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Qg(t,e,r,n,o,s="NONE"){let i=await o2();a2(i,i.exports[n2[o]],t,e,r,n,i.exports[r2[s||"NONE"]])}var Fl;async function o2(){return Fl||(Fl=s2()),Fl}async function s2(){let t=ZI;WebAssembly.validate(e2)&&(t=$I,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(i2(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function i2(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let o=t.charCodeAt(n);e[n]=o>96?o-71:o>64?o-65:o>47?o+4:o>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?t2[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function a2(t,e,r,n,o,s,i){let a=t.exports.sbrk,c=n+3&-4,l=a(c*o),f=a(s.length),u=new Uint8Array(t.exports.memory.buffer);u.set(s,f);let h=e(l,n,o,f,s.length);if(h===0&&i&&i(l,c,o),r.set(u.subarray(l,l+n*o)),a(l-a(0)),h!==0)throw new Error(`Malformed buffer data: ${h}`)}var Ci="EXT_meshopt_compression",c2=Ci;async function l2(t,e){let r=new j(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let o of t.json.bufferViews||[])n.push(f2(r,o));await Promise.all(n),r.removeExtension(Ci)}async function f2(t,e){let r=t.getObjectExtension(e,Ci);if(r){let{byteOffset:n=0,byteLength:o=0,byteStride:s,count:i,mode:a,filter:c="NONE",buffer:l}=r,f=t.gltf.buffers[l],u=new Uint8Array(f.arrayBuffer,f.byteOffset+n,o),h=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Qg(h,i,s,u,a,c),t.removeObjectExtension(e,Ci)}}var Nl={};be(Nl,{name:()=>u2,preprocess:()=>h2});var hn="EXT_texture_webp",u2=hn;function h2(t,e){let r=new j(t);if(!Rc("image/webp")){if(r.getRequiredExtensions().includes(hn))throw new Error(`gltf: Required extension ${hn} not supported by browser`);return}let{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,hn);s&&(o.source=s.source),r.removeObjectExtension(o,hn)}r.removeExtension(hn)}var Ol={};be(Ol,{name:()=>p2,preprocess:()=>d2});var Bi="KHR_texture_basisu",p2=Bi;function d2(t,e){let r=new j(t),{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,Bi);s&&(o.source=s.source,r.removeObjectExtension(o,Bi))}r.removeExtension(Bi)}var Dl={};be(Dl,{decode:()=>y2,encode:()=>b2,name:()=>A2,preprocess:()=>x2});function Zg(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let o=Ul(n);e[r]=o}}return e}function Ul(t){let{buffer:e,size:r,count:n}=m2(t);return{value:e,size:r,byteOffset:0,count:n,type:xi(r),componentType:kt(e)}}function m2(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=g2(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function g2(t,e,r=!1){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var jt="KHR_draco_mesh_compression",A2=jt;function x2(t,e,r){let n=new j(t);for(let o of $g(n))n.getObjectExtension(o,jt)}async function y2(t,e,r){if(!e?.gltf?.decompressMeshes)return;let n=new j(t),o=[];for(let s of $g(n))n.getObjectExtension(s,jt)&&o.push(T2(n,s,e,r));await Promise.all(o),n.removeExtension(jt)}function b2(t,e={}){let r=new j(t);for(let n of r.json.meshes||[])M2(n,e),r.addRequiredExtension(jt)}async function T2(t,e,r,n){let o=t.getObjectExtension(e,jt);if(!o)return;let s=t.getTypedArrayForBufferView(o.bufferView),i=sr(s.buffer,s.byteOffset),a={...r};delete a["3d-tiles"];let c=await Oe(i,bo,a,n),l=Zg(c.attributes);for(let[f,u]of Object.entries(l))if(f in e.attributes){let h=e.attributes[f],p=t.getAccessor(h);p?.min&&p?.max&&(u.min=p.min,u.max=p.max)}e.attributes=l,c.indices&&(e.indices=Ul(c.indices)),t.removeObjectExtension(e,jt),S2(e)}function M2(t,e,r=4,n,o){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let s=n.DracoWriter.encodeSync({attributes:t}),i=o?.parseSync?.({attributes:t}),a=n._addFauxAttributes(i.attributes),c=n.addBufferView(s);return{primitives:[{attributes:a,mode:r,extensions:{[jt]:{bufferView:c,attributes:a}}}]}}function S2(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*$g(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Gl={};be(Gl,{decode:()=>B2,name:()=>E2});var vi="KHR_texture_transform",E2=vi,Ii=new x,_2=new k,C2=new k;async function B2(t,e){if(!new j(t).hasExtension(vi)||!e.gltf?.loadBuffers)return;let o=t.json.materials||[];for(let s=0;s<o.length;s++)I2(s,t)}function I2(t,e){let r=e.json.materials?.[t],n=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],o=[];for(let s of n)s&&s?.extensions?.[vi]&&v2(e,t,s,o)}function v2(t,e,r,n){let o=R2(r,n);if(!o)return;let s=t.json.meshes||[];for(let i of s)for(let a of i.primitives){let c=a.material;Number.isFinite(c)&&e===c&&w2(t,a,o)}}function R2(t,e){let r=t.extensions?.[vi],{texCoord:n=0}=t,{texCoord:o=n}=r;if(!(e.findIndex(([i,a])=>i===n&&a===o)!==-1)){let i=P2(r);return n!==o&&(t.texCoord=o),e.push([n,o]),{originalTexCoord:n,texCoord:o,matrix:i}}return null}function w2(t,e,r){let{originalTexCoord:n,texCoord:o,matrix:s}=r,i=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(i)){let a=t.json.accessors?.[i];if(a&&a.bufferView!==void 0){let c=t.json.bufferViews?.[a.bufferView];if(c){let{arrayBuffer:l,byteOffset:f}=t.buffers[c.buffer],u=(f||0)+(a.byteOffset||0)+(c.byteOffset||0),{ArrayType:h,length:p}=nn(a,c),d=Ai[a.componentType],g=gi[a.type],m=c.byteStride||d*g,y=new Float32Array(p);for(let b=0;b<a.count;b++){let M=new h(l,u+b*m,2);Ii.set(M[0],M[1],1),Ii.transformByMatrix3(s),y.set([Ii[0],Ii[1]],b*g)}n===o?L2(a,t,y,a.bufferView):F2(o,a,e,t,y)}}}}function L2(t,e,r,n){t.componentType=5126,t.byteOffset=0;let i=(e.json.accessors||[]).reduce((l,f)=>f.bufferView===n?l+1:l,0)>1;e.buffers.push({arrayBuffer:Ft(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let a=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],i){e.json.bufferViews.push({buffer:a,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let c=e.json.bufferViews[n];c&&(c.buffer=a,c.byteOffset=0,c.byteLength=r.buffer.byteLength,c.byteStride!==void 0&&delete c.byteStride)}function F2(t,e,r,n,o){n.buffers.push({arrayBuffer:Ft(o.buffer),byteOffset:0,byteLength:o.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let s=n.json.bufferViews;s.push({buffer:n.buffers.length-1,byteLength:o.buffer.byteLength,byteOffset:0});let i=n.json.accessors;i&&(i.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=i.length-1)}function P2(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,o=new k().set(1,0,0,0,1,0,e[0],e[1],1),s=_2.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),i=C2.set(n[0],0,0,0,n[1],0,0,0,1);return o.multiplyRight(s).multiplyRight(i)}var Vl={};be(Vl,{decode:()=>O2,encode:()=>U2,name:()=>N2});var br="KHR_lights_punctual",N2=br;async function O2(t){let e=new j(t),{json:r}=e,n=e.getExtension(br);n&&(e.json.lights=n.lights,e.removeExtension(br));for(let o of r.nodes||[]){let s=e.getObjectExtension(o,br);s&&(o.light=s.light),e.removeObjectExtension(o,br)}}async function U2(t){let e=new j(t),{json:r}=e;if(r.lights){let n=e.addExtension(br);ue(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let o=n.node;e.addObjectExtension(o,br,n)}delete e.json.lights}}var Hl={};be(Hl,{decode:()=>G2,encode:()=>V2,name:()=>D2});var So="KHR_materials_unlit",D2=So;async function G2(t){let e=new j(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,So);e.removeExtension(So)}function V2(t){let e=new j(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,So,{}),e.addExtension(So))}var zl={};be(zl,{decode:()=>z2,encode:()=>k2,name:()=>H2});var Eo="KHR_techniques_webgl",H2=Eo;async function z2(t){let e=new j(t),{json:r}=e,n=e.getExtension(Eo);if(n){let o=j2(n,e);for(let s of r.materials||[]){let i=e.getObjectExtension(s,Eo);i&&(s.technique=Object.assign({},i,o[i.technique]),s.technique.values=q2(s.technique,e)),e.removeObjectExtension(s,Eo)}e.removeExtension(Eo)}}async function k2(t,e){}function j2(t,e){let{programs:r=[],shaders:n=[],techniques:o=[]}=t,s=new TextDecoder;return n.forEach(i=>{if(Number.isFinite(i.bufferView))i.code=s.decode(e.getTypedArrayForBufferView(i.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(i=>{i.fragmentShader=n[i.fragmentShader],i.vertexShader=n[i.vertexShader]}),o.forEach(i=>{i.program=r[i.program]}),o}function q2(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 e0=[Ml,yl,Pl,Nl,Ol,Dl,Vl,Hl,zl,Gl,Sl];function t0(t,e={},r){let n=e0.filter(o=>n0(o.name,e));for(let o of n)o.preprocess?.(t,e,r)}async function r0(t,e={},r){let n=e0.filter(o=>n0(o.name,e));for(let o of n)await o.decode?.(t,e,r)}function n0(t,e){let r=e?.gltf?.excludeExtensions||{};return!(t in r&&!r[t])}var kl="KHR_binary_glTF";function o0(t){let e=new j(t),{json:r}=e;for(let n of r.images||[]){let o=e.getObjectExtension(n,kl);o&&Object.assign(n,o),e.removeObjectExtension(n,kl)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(kl)}var s0={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},W2={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},jl=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;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),o0(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 s0)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let o in n){let s=n[o];s.id=s.id||o;let i=e[r].length;e[r].push(s),this.idToIndexMap[r][o]=i}}}_convertObjectIdsToArrayIndices(e){for(let r in s0)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:o,material:s}=r;for(let i in n)n[i]=this._convertIdToIndex(n[i],"accessor");o&&(r.indices=this._convertIdToIndex(o,"accessor")),s&&(r.material=this._convertIdToIndex(s,"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 o in n){let s=n[o],i=this._convertIdToIndex(s,o);n[o]=i}}_convertIdToIndex(e,r){let n=W2[r];if(n in this.idToIndexMap){let o=this.idToIndexMap[n][e];if(!Number.isFinite(o))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return o}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let r of e.materials){r.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,o=e.textures.findIndex(s=>s.id===n);o!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:o})}}};function i0(t,e={}){return new jl().normalize(t,e)}async function a0(t,e,r=0,n,o){return K2(t,e,r,n),i0(t,{normalize:n?.gltf?.normalize}),t0(t,n,o),n?.gltf?.loadBuffers&&t.json.buffers&&await X2(t,n,o),n?.gltf?.loadImages&&await Y2(t,n,o),await r0(t,n,o),t}function K2(t,e,r,n){if(n.core?.baseUrl&&(t.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!Xg(e,r,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=Ac(e);else if(e instanceof ArrayBuffer){let i={};r=Yg(i,e,r,n.glb),ue(i.type==="glTF",`Invalid GLB magic string ${i.type}`),t._glb=i,t.json=i.json}else ue(!1,"GLTF: must be ArrayBuffer or string");let o=t.json.buffers||[];if(t.buffers=new Array(o.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:i}=t._glb;t.buffers[0]={arrayBuffer:i[0].arrayBuffer,byteOffset:i[0].byteOffset,byteLength:i[0].byteLength}}let s=t.json.images||[];t.images=new Array(s.length).fill({})}async function X2(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let s=n[o];if(s.uri){let{fetch:i}=r;ue(i);let a=Ll(s.uri,e,r),l=await(await r?.fetch?.(a))?.arrayBuffer?.();t.buffers[o]={arrayBuffer:l,byteOffset:0,byteLength:l.byteLength},delete s.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function Y2(t,e,r){let n=Q2(t),o=t.json.images||[],s=[];for(let i of n)s.push(Z2(t,o[i],i,e,r));return await Promise.all(s)}function Q2(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 Z2(t,e,r,n,o){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){let l=Ll(e.uri,n,o),{fetch:f}=o;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){let l=vg(t.json,t.buffers,e.bufferView);s=sr(l.buffer,l.byteOffset,l.byteLength)}ue(s,"glTF image has no data");let i=n,a={...i,core:{...i?.core,mimeType:e.mimeType}},c=await Oe(s,[Kr,Il],a,o);c&&c[0]&&(c={compressed:!0,mipmaps:!1,width:c[0].width,height:c[0].height,data:c[0]}),t.images=t.images||[],t.images[r]=c}var Tr={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Ng,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:$2,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};async function $2(t,e={},r){let n={...Tr.options,...e};n.gltf={...Tr.options.gltf,...n.gltf};let o=e?.glb?.byteOffset||0;return await a0({},t,o,n,r)}var e3={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},t3={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},je={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},r3={magFilter:je.TEXTURE_MAG_FILTER,minFilter:je.TEXTURE_MIN_FILTER,wrapS:je.TEXTURE_WRAP_S,wrapT:je.TEXTURE_WRAP_T},n3={[je.TEXTURE_MAG_FILTER]:je.LINEAR,[je.TEXTURE_MIN_FILTER]:je.NEAREST_MIPMAP_LINEAR,[je.TEXTURE_WRAP_S]:je.REPEAT,[je.TEXTURE_WRAP_T]:je.REPEAT};function o3(){return{id:"default-sampler",parameters:n3}}function s3(t){return t3[t]}function i3(t){return e3[t]}var ql=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:n,buffers:o=[],images:s=[]}=e,{baseUri:i=""}=e;return ue(n),this.baseUri=i,this.buffers=o,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r={}){let n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((o,s)=>this._resolveBufferView(o,s))),e.images&&(n.images=e.images.map((o,s)=>this._resolveImage(o,s))),e.samplers&&(n.samplers=e.samplers.map((o,s)=>this._resolveSampler(o,s))),e.textures&&(n.textures=e.textures.map((o,s)=>this._resolveTexture(o,s))),e.accessors&&(n.accessors=e.accessors.map((o,s)=>this._resolveAccessor(o,s))),e.materials&&(n.materials=e.materials.map((o,s)=>this._resolveMaterial(o,s))),e.meshes&&(n.meshes=e.meshes.map((o,s)=>this._resolveMesh(o,s))),e.nodes&&(n.nodes=e.nodes.map((o,s)=>this._resolveNode(o,s)),n.nodes=n.nodes.map((o,s)=>this._resolveNodeChildren(o))),e.skins&&(n.skins=e.skins.map((o,s)=>this._resolveSkin(o,s))),e.scenes&&(n.scenes=e.scenes.map((o,s)=>this._resolveScene(o,s))),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((o,s)=>{let i=this.getMesh(s);return o.id=i.id,o.primitives=o.primitives.concat(i.primitives),o},{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(o=>{let s={...o,attributes:{},indices:void 0,material:void 0},i=o.attributes;for(let a in i)s.attributes[a]=this.getAccessor(i[a]);return o.indices!==void 0&&(s.indices=this.getAccessor(o.indices)),o.material!==void 0&&(s.material=this.getMaterial(o.material)),s})),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 o=n.pbrMetallicRoughness;o.baseColorTexture&&(o.baseColorTexture={...o.baseColorTexture},o.baseColorTexture.texture=this.getTexture(o.baseColorTexture.index)),o.metallicRoughnessTexture&&(o.metallicRoughnessTexture={...o.metallicRoughnessTexture},o.metallicRoughnessTexture.texture=this.getTexture(o.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=s3(e.componentType),o=i3(e.type),s=n*o,i={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:o,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(i.bufferView=this.getBufferView(e.bufferView)),i.bufferView){let a=i.bufferView.buffer,{ArrayType:c,byteLength:l}=nn(i,i.bufferView),f=(i.bufferView.byteOffset||0)+(i.byteOffset||0)+a.byteOffset,u=Wn(a.arrayBuffer,f,l);i.bufferView.byteStride&&(u=this._getValueFromInterleavedBuffer(a,f,i.bufferView.byteStride,i.bytesPerElement,i.count)),i.value=new c(u)}return i}_getValueFromInterleavedBuffer(e,r,n,o,s){let i=new Uint8Array(s*o);for(let a=0;a<s;a++){let c=r+a*n;i.set(new Uint8Array(e.arrayBuffer.slice(c,c+o)),a*o)}return i.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):o3(),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 o in n){let s=this._enumSamplerParameter(o);s!==void 0&&(n.parameters[s]=n[o])}return n}_enumSamplerParameter(e){return r3[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},o=this.images[r];return o&&(n.image=o),n}_resolveBufferView(e,r){let n=e.buffer,o=this.buffers[n].arrayBuffer,s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(o,s,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function _o(t,e){return new ql().postProcess(t,e)}var Ri={URI:0,EMBEDDED:1};function wi(t,e,r,n){t.rotateYtoZ=!0;let o=(t.byteOffset||0)+(t.byteLength||0)-r;if(o===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=sr(e,r,o),t.gltfByteOffset=0,t.gltfByteLength=o,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 Li(t,e,r,n){let o=r?.["3d-tiles"]||{};if(a3(t,e,r),o.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:s}=n,i=await s(t.gltfUrl,r?.core);t.gltfArrayBuffer=await i.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let s=await Oe(t.gltfArrayBuffer,Tr,r,n);t.gltf=_o(s),t.gpuMemoryUsageInBytes=To(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function a3(t,e,r){switch(e){case Ri.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),s=new TextDecoder().decode(n);t.gltfUrl=s.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Ri.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function c0(t,e,r,n,o){r=c3(t,e,r,n,o),await Li(t,Ri.EMBEDDED,n,o);let s=t?.gltf?.extensions;return s&&s.CESIUM_RTC&&(t.rtcCenter=s.CESIUM_RTC.center),r}function c3(t,e,r,n,o){r=zt(t,e,r),r=tn(t,e,r),r=rn(t,e,r,n),r=wi(t,e,r,n);let s=new Tt(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=s.getGlobalProperty("RTC_CENTER",O.FLOAT,3),r}async function l0(t,e,r,n,o){return r=l3(t,e,r,n,o),await Li(t,t.gltfFormat||0,n,o),r}function l3(t,e,r,n,o){if(r=zt(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=tn(t,e,r);let s=new DataView(e);if(t.gltfFormat=s.getUint32(r,!0),r+=4,r=rn(t,e,r,n),r=wi(t,e,r,n),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let i=new Tt(t.featureTableJson,t.featureTableBinary),a=i.getGlobalProperty("INSTANCES_LENGTH");if(i.featuresLength=a,!Number.isFinite(a))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=i.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=i.getGlobalProperty("RTC_CENTER",O.FLOAT,3);let c=new yr(t.batchTableJson,t.batchTableBinary,a);return f3(t,i,c,a),r}function f3(t,e,r,n){let o=new Array(n),s=new x,i=new x,a=new x,c=new x,l=new k,f=new st,u=new x,h={},p=new N,d=[],g=[],m=[],y=[];for(let b=0;b<n;b++){let M;if(e.hasProperty("POSITION"))M=e.getProperty("POSITION",O.FLOAT,3,b,s);else if(e.hasProperty("POSITION_QUANTIZED")){M=e.getProperty("POSITION_QUANTIZED",O.UNSIGNED_SHORT,3,b,s);let A=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",O.FLOAT,3);if(!A)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let B=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",O.FLOAT,3);if(!B)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let L=65535;for(let F=0;F<3;F++)M[F]=M[F]/L*B[F]+A[F]}if(!M)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");s.copy(M),h.translation=s,t.normalUp=e.getProperty("NORMAL_UP",O.FLOAT,3,b,d),t.normalRight=e.getProperty("NORMAL_RIGHT",O.FLOAT,3,b,g);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",O.UNSIGNED_SHORT,2,b,d),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",O.UNSIGNED_SHORT,2,b,g),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?(G.WGS84.eastNorthUpToFixedFrame(s,p),p.getRotationMatrix3(l)):l.identity()}S&&(c.copy(i).cross(a).normalize(),l.setColumn(0,i),l.setColumn(1,a),l.setColumn(2,c)),f.fromMatrix3(l),h.rotation=f,u.set(1,1,1);let C=e.getProperty("SCALE",O.FLOAT,1,b,m);Number.isFinite(C)&&u.multiplyByScalar(C);let _=e.getProperty("SCALE_NON_UNIFORM",O.FLOAT,3,b,d);_&&u.scale(_),h.scale=u;let v=e.getProperty("BATCH_ID",O.UNSIGNED_SHORT,1,b,y);v===void 0&&(v=b);let E=new N().fromQuaternion(h.rotation);p.identity(),p.translate(h.translation),p.multiplyRight(E),p.scale(h.scale);let T=p.clone();o[b]={modelMatrix:T,batchId:v}}t.instances=o}async function f0(t,e,r,n,o,s){r=zt(t,e,r);let i=new DataView(e);for(t.tilesLength=i.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 s(e,r,n,o,a)}return r}async function u0(t,e,r,n){if(t.rotateYtoZ=!0,t.gltfUpAxis=r?.["3d-tiles"]?.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;let o=await Oe(e,Tr,r,n);t.gltf=_o(o),t.gpuMemoryUsageInBytes=To(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Jl(t,e=0,r,n,o={shape:"tile3d"}){switch(o.byteOffset=e,o.type=sg(t,e),o.type){case Ar.COMPOSITE:return await f0(o,t,e,r,n,Jl);case Ar.BATCHED_3D_MODEL:return await c0(o,t,e,r,n);case Ar.GLTF:return await u0(o,t,r,n);case Ar.INSTANCED_3D_MODEL:return await l0(o,t,e,r,n);case Ar.POINT_CLOUD:return await Bg(o,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${o.type}`)}}async function Wl(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 s=h0(t.slice(8,16)),i=new Uint8Array(t,24,s),c=new TextDecoder("utf8").decode(i),l=JSON.parse(c),f=h0(t.slice(16,24)),u=new ArrayBuffer(0);if(f&&(u=t.slice(24+s)),await Fi(l,l.tileAvailability,u,r),Array.isArray(l.contentAvailability))for(let h of l.contentAvailability)await Fi(l,h,u,r);else await Fi(l,l.contentAvailability,u,r);return await Fi(l,l.childSubtreeAvailability,u,r),l}async function Fi(t,e,r,n){let o=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof o!="number")return;let s=t.bufferViews[o],i=t.buffers[s.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(i.uri){let c=`${n?.baseUrl||""}/${i.uri}`,f=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(f,s.byteOffset,s.byteLength);return}let a=t.buffers.slice(0,s.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+i.byteLength),s.byteOffset,s.byteLength)}function h0(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Pi={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:di,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Wl,options:{}};var P0=D(er(),1);var R0=D(er(),1);var qe=null;try{qe=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 Se(t){return(t&&t.__isLong__)===!0}function p0(t){var e=Math.clz32(t&-t);return t?31-e:e}Z.isLong=Se;var d0={},m0={};function Mr(t,e){var r,n,o;return e?(t>>>=0,(o=0<=t&&t<256)&&(n=m0[t],n)?n:(r=q(t,0,!0),o&&(m0[t]=r),r)):(t|=0,(o=-128<=t&&t<128)&&(n=d0[t],n)?n:(r=q(t,t<0?-1:0,!1),o&&(d0[t]=r),r))}Z.fromInt=Mr;function Je(t,e){if(isNaN(t))return e?Mt:et;if(e){if(t<0)return Mt;if(t>=y0)return M0}else{if(t<=-A0)return Le;if(t+1>=A0)return T0}return t<0?Je(-t,e).neg():q(t%dn|0,t/dn|0,e)}Z.fromNumber=Je;function q(t,e,r){return new Z(t,e,r)}Z.fromBits=q;var Ni=Math.pow;function Xl(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?Mt:et;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 Xl(t.substring(1),e,r).neg();for(var o=Je(Ni(r,8)),s=et,i=0;i<t.length;i+=8){var a=Math.min(8,t.length-i),c=parseInt(t.substring(i,i+a),r);if(a<8){var l=Je(Ni(r,a));s=s.mul(l).add(Je(c))}else s=s.mul(o),s=s.add(Je(c))}return s.unsigned=e,s}Z.fromString=Xl;function tt(t,e){return typeof t=="number"?Je(t,e):typeof t=="string"?Xl(t,e):q(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}Z.fromValue=tt;var g0=1<<16,u3=1<<24,dn=g0*g0,y0=dn*dn,A0=y0/2,x0=Mr(u3),et=Mr(0);Z.ZERO=et;var Mt=Mr(0,!0);Z.UZERO=Mt;var pn=Mr(1);Z.ONE=pn;var b0=Mr(1,!0);Z.UONE=b0;var Kl=Mr(-1);Z.NEG_ONE=Kl;var T0=q(-1,2147483647,!1);Z.MAX_VALUE=T0;var M0=q(-1,-1,!0);Z.MAX_UNSIGNED_VALUE=M0;var Le=q(0,-2147483648,!1);Z.MIN_VALUE=Le;var I=Z.prototype;I.toInt=function(){return this.unsigned?this.low>>>0:this.low};I.toNumber=function(){return this.unsigned?(this.high>>>0)*dn+(this.low>>>0):this.high*dn+(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(Le)){var r=Je(e),n=this.div(r),o=n.mul(r).sub(this);return n.toString(e)+o.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var s=Je(Ni(e,6),this.unsigned),i=this,a="";;){var c=i.div(s),l=i.sub(c.mul(s)).toInt()>>>0,f=l.toString(e);if(i=c,i.isZero())return f+a;for(;f.length<6;)f="0"+f;a=""+f+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(Le)?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 Se(e)||(e=tt(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(Se(e)||(e=tt(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(Le)?Le:this.not().add(pn)};I.neg=I.negate;I.add=function(e){Se(e)||(e=tt(e));var r=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,f=0,u=0,h=0,p=0;return p+=s+l,h+=p>>>16,p&=65535,h+=o+c,u+=h>>>16,h&=65535,u+=n+a,f+=u>>>16,u&=65535,f+=r+i,f&=65535,q(h<<16|p,f<<16|u,this.unsigned)};I.subtract=function(e){return Se(e)||(e=tt(e)),this.add(e.neg())};I.sub=I.subtract;I.multiply=function(e){if(this.isZero())return this;if(Se(e)||(e=tt(e)),qe){var r=qe.mul(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Mt:et;if(this.eq(Le))return e.isOdd()?Le:et;if(e.eq(Le))return this.isOdd()?Le:et;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(x0)&&e.lt(x0))return Je(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,f=e.low&65535,u=0,h=0,p=0,d=0;return d+=i*f,p+=d>>>16,d&=65535,p+=s*f,h+=p>>>16,p&=65535,p+=i*l,h+=p>>>16,p&=65535,h+=o*f,u+=h>>>16,h&=65535,h+=s*l,u+=h>>>16,h&=65535,h+=i*c,u+=h>>>16,h&=65535,u+=n*f+o*l+s*c+i*a,u&=65535,q(p<<16|d,u<<16|h,this.unsigned)};I.mul=I.multiply;I.divide=function(e){if(Se(e)||(e=tt(e)),e.isZero())throw Error("division by zero");if(qe){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?qe.div_u:qe.div_s)(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mt:et;var n,o,s;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Mt;if(e.gt(this.shru(1)))return b0;s=Mt}else{if(this.eq(Le)){if(e.eq(pn)||e.eq(Kl))return Le;if(e.eq(Le))return pn;var i=this.shr(1);return n=i.div(e).shl(1),n.eq(et)?e.isNegative()?pn:Kl:(o=this.sub(e.mul(n)),s=n.add(o.div(e)),s)}else if(e.eq(Le))return this.unsigned?Mt:et;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();s=et}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Ni(2,a-48),l=Je(n),f=l.mul(e);f.isNegative()||f.gt(o);)n-=c,l=Je(n,this.unsigned),f=l.mul(e);l.isZero()&&(l=pn),s=s.add(l),o=o.sub(f)}return s};I.div=I.divide;I.modulo=function(e){if(Se(e)||(e=tt(e)),qe){var r=(this.unsigned?qe.rem_u:qe.rem_s)(this.low,this.high,e.low,e.high);return q(r,qe.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};I.mod=I.modulo;I.rem=I.modulo;I.not=function(){return q(~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?p0(this.low):p0(this.high)+32};I.ctz=I.countTrailingZeros;I.and=function(e){return Se(e)||(e=tt(e)),q(this.low&e.low,this.high&e.high,this.unsigned)};I.or=function(e){return Se(e)||(e=tt(e)),q(this.low|e.low,this.high|e.high,this.unsigned)};I.xor=function(e){return Se(e)||(e=tt(e)),q(this.low^e.low,this.high^e.high,this.unsigned)};I.shiftLeft=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):q(0,this.low<<e-32,this.unsigned)};I.shl=I.shiftLeft;I.shiftRight=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):q(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};I.shr=I.shiftRight;I.shiftRightUnsigned=function(e){return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?q(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?q(this.high,0,this.unsigned):q(this.high>>>e-32,0,this.unsigned)};I.shru=I.shiftRightUnsigned;I.shr_u=I.shiftRightUnsigned;I.rotateLeft=function(e){var r;return Se(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?q(this.high,this.low,this.unsigned):e<32?(r=32-e,q(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,q(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 Se(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?q(this.high,this.low,this.unsigned):e<32?(r=32-e,q(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,q(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};I.rotr=I.rotateRight;I.toSigned=function(){return this.unsigned?q(this.low,this.high,!1):this};I.toUnsigned=function(){return this.unsigned?this:q(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 mn=Z;var h3=16;function Co(t){t==="X"&&(t="");let e=t.padEnd(h3,"0");return mn.fromString(e,!0,16)}function Yl(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let s=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-s.length).join("0")+s}function Ql(t,e){let r=p3(t).shiftRightUnsigned(2);return t.add(mn.fromNumber(2*e+1-4).multiply(r))}function p3(t){return t.and(t.not().add(1))}var d3=3,m3=30,g3=2*m3+1,S0=180/Math.PI;function _0(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],o=n.length,s=0,i=[0,0];for(let a=o-1;a>=0;a--){s=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,s-1);A3(u,i,l,f),i[0]+=u*l,i[1]+=u*f}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:s}}function C0(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<d3+g3;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=mn.fromString(n,!0,2).toString(10),a="";if(s!==0)for(a=mn.fromString(o,!0,2).toString(4);a.length<s;)a="0"+a;return`${i}/${a}`}function Zl(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function E0(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function $l(t){return[E0(t[0]),E0(t[1])]}function ef(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 tf([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*S0,n*S0]}function A3(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function B0(t){let e=Zl(t.ij,t.level,[.5,.5]),r=$l(e),n=ef(t.face,r);return tf(n)}var x3=100;function rf(t){let{face:e,ij:r,level:n}=t,o=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(x3*Math.pow(2,-n))),i=new Float64Array(4*s*2+2),a=0,c=0;for(let l=0;l<4;l++){let f=o[l].slice(0),u=o[l+1],h=(u[0]-f[0])/s,p=(u[1]-f[1])/s;for(let d=0;d<s;d++){f[0]+=h,f[1]+=p;let g=Zl(r,n,f),m=$l(g),y=ef(e,m),b=tf(y);Math.abs(b[1])>89.999&&(b[0]=c);let M=b[0]-c;b[0]+=M>180?-360:M<-180?360:0,i[a++]=b[0],i[a++]=b[1],c=b[0]}}return i[a++]=i[0],i[a++]=i[1],i}function gn(t){let e=y3(t);return _0(e)}function y3(t){if(t.indexOf("/")>0)return t;let e=Co(t);return C0(e)}function nf(t){let e=gn(t);return B0(e)}function v0(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let o=0;o<4;o++){let s=`${t.face}/${o}`,i=gn(s),a=rf(i);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=I0(r)}else{let r=rf(t);e=I0(r)}return e}function I0(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,o)=>n-o),r.sort((n,o)=>n-o),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function of(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,o=gn(t),s=v0(o),i=s.west,a=s.south,c=s.east,l=s.north,f=[];return f.push(new x(i,l,r)),f.push(new x(c,l,r)),f.push(new x(c,a,r)),f.push(new x(i,a,r)),f.push(new x(i,l,n)),f.push(new x(c,l,n)),f.push(new x(c,a,n)),f.push(new x(i,a,n)),f}function Oi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=of(e,r),o=nf(e),s=o[0],i=o[1],a=G.WGS84.cartographicToCartesian([s,i,r.maximumHeight]),c=new x(a[0],a[1],a[2]);n.push(c);let l=io(n);return[...l.center,...l.halfAxes]}var b3=4,T3=8,M3={QUADTREE:b3,OCTREE:T3};function S3(t,e,r){if(t?.box){let n=Co(t.s2VolumeInfo.token),o=Ql(n,e),s=Yl(o),i={...t.s2VolumeInfo};switch(i.token=s,r){case"OCTREE":let l=t.s2VolumeInfo,f=l.maximumHeight-l.minimumHeight,u=f/2,h=l.minimumHeight+f/2;l.minimumHeight=h-u,l.maximumHeight=h+u;break;default:break}return{box:Oi(i),s2VolumeInfo:i}}}async function af(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:n={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:o=0,implicitOptions:s,loaderOptions:i,s2VolumeBox:a}=t,{subdivisionScheme:c,subtreeLevels:l,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:h,basePath:p}=s,d={children:[],lodMetricValue:0,contentUrl:""};if(!f)return uc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),d;let g=n.localLevel+1,m=r.level+g;if(m>f)return d;let y=M3[c],b=Math.log2(y),M=o&1,S=o>>1&1,C=o>>2&1,_=Sr(n.localX,M,1),v=Sr(n.localY,S,1),E=Sr(n.localZ,C,1),T=Sr(r.x,_,g),A=Sr(r.y,v,g),B=Sr(r.z,E,g),L=Sr(n.mortonIndex,o,b),F=g===l&&sf(e.childSubtreeAvailability,L),w,U,W,z;if(F){let X=`${p}/${h}`,ee=Ui(X,m,T,A,B);w=await(0,R0.load)(ee,Pi,i),z=0,U={level:m,x:T,y:A,z:B},W={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else w=e,z=(y**g-1)/(y-1)+L,U=r,W={mortonIndex:L,localLevel:g,localX:_,localY:v,localZ:E};if(!sf(w.tileAvailability,z))return d;sf(w.contentAvailability,z)&&(d.contentUrl=Ui(u,m,T,A,B));for(let X=0;X<y;X++){let ee=S3(a,X,c),Ie=await af({subtree:w,subtreeData:U,parentData:W,childIndex:X,implicitOptions:s,loaderOptions:i,s2VolumeBox:ee});(Ie.contentUrl||Ie.children.length)&&d.children.push(Ie)}return d.contentUrl||d.children.length?E3(d,{level:m,x:T,y:A,z:B},s,a):d}function sf(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&uc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?Boolean(r.constant):r.explicitBitstream?B3(e,r.explicitBitstream):!1}function E3(t,e,r,n){let{basePath:o,refine:s,getRefine:i,lodMetricType:a,getTileType:c,rootLodMetricValue:l,rootBoundingVolume:f}=r,u=t.contentUrl&&t.contentUrl.replace(`${o}/`,""),h=l/2**e.level,p=n?.box?{box:n.box}:f,d=_3(p,e,r.subdivisionScheme);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:i(s),type:c(t),lodMetricType:a,lodMetricValue:h,geometricError:h,transform:t.transform,boundingVolume:d}}function _3(t,e,r){if(t.region){let{level:n,x:o,y:s,z:i}=e,[a,c,l,f,u,h]=t.region,p=2**n,d=(l-a)/p,[g,m]=[a+d*o,a+d*(o+1)],y=(f-c)/p,[b,M]=[c+y*s,c+y*(s+1)],S,C;if(r==="OCTREE"){let _=(h-u)/p;[S,C]=[u+_*i,u+_*(i+1)]}else[S,C]=[u,h];return{region:[g,b,m,M,S,C]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function Sr(t,e,r){return(t<<r)+e}function Ui(t,e,r,n,o){let s=C3({level:e,x:r,y:n,z:o});return t.replace(/{level}|{x}|{y}|{z}/gi,i=>s[i])}function C3(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function B3(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function lf(t,e=""){if(!e)return ke.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return ke.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return ke.SCENEGRAPH;default:return n||ke.EMPTY}}function ff(t){switch(t){case"REPLACE":case"replace":return Te.REPLACE;case"ADD":case"add":return Te.ADD;default:return t}}function cf(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 Pt.resolve(e,t)}function w0(t,e){if(!t)return null;let r;if(t.content){let o=t.content.uri||t.content?.url;typeof o<"u"&&(r=cf(o,e))}return{...t,id:r,contentUrl:r,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:lf(t,r),refine:ff(t.refine)}}async function N0(t,e,r){let n=null,o=F0(t.root);o&&t.root?n=await L0(t.root,t,e,o,r):n=w0(t.root,e);let s=[];for(s.push(n);s.length>0;){let i=s.pop()||{},a=i.children||[],c=[];for(let l of a){let f=F0(l),u;f?u=await L0(l,t,e,f,r):u=w0(l,e),u&&(c.push(u),s.push(u))}i.children=c}return n}async function L0(t,e,r,n,o){let{subdivisionScheme:s,maximumLevel:i,availableLevels:a,subtreeLevels:c,subtrees:{uri:l}}=n,f=Ui(l,0,0,0,0),u=cf(f,r),h=await(0,P0.load)(u,Pi,o),p=t.content?.uri,d=p?cf(p,r):"",g=e?.root?.refine,m=t.geometricError,y=t.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(y){let C={box:Oi(y),s2VolumeInfo:y};t.boundingVolume=C}let b=t.boundingVolume,M={contentUrlTemplate:d,subtreesUriTemplate:l,subdivisionScheme:s,subtreeLevels:c,maximumLevel:Number.isFinite(a)?a-1:i,refine:g,basePath:r,lodMetricType:bt.GEOMETRIC_ERROR,rootLodMetricValue:m,rootBoundingVolume:b,getTileType:lf,getRefine:ff};return await I3(t,r,h,M,o)}async function I3(t,e,r,n,o){if(!t)return null;let{children:s,contentUrl:i}=await af({subtree:r,implicitOptions:n,loaderOptions:o}),a,c=null;return i&&(a=i,c={uri:i.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:lf(t,a),refine:ff(t.refine),content:c||t.content,children:s}}function F0(t){return t?.extensions?.["3DTILES_implicit_tiling"]||t?.implicitTiling}var Di={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:di,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:v3,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function v3(t,e={},r){let n=e["3d-tiles"]||{},o;return n.isTileset==="auto"?o=r?.url&&r.url.indexOf(".json")!==-1:o=n.isTileset,o?R3(t,e,r):w3(t,e,r)}async function R3(t,e,r){let n=JSON.parse(new TextDecoder().decode(t)),o=r?.url||"",s=L3(o),i=await N0(n,s,e||{});return{...n,shape:"tileset3d",loader:Di,url:o,queryString:r?.queryString||"",basePath:s,root:i||n.root,type:de.TILES3D,lodMetricType:bt.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0}}async function w3(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Jl(t,0,e,r,n.content),n.content}function L3(t){return Pt.dirname(t)}var O0=[0],F3={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Di,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]}},Bo=class extends qt.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&qt.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:o}=this.state;Object.keys(o).length&&(this._updateTileset(o),this.state.lastUpdatedViewports=o,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:o}=this.state;for(let s in o)o[s].needsUpdate=!0}}finalizeState(e){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(e)}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let o=n?.[e.id];(!o||!e.equals(o))&&(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,cullRect:n,isPicking:o}){let{tile:s}=e.props,{id:i}=r;if(!s.selected||!s.viewportIds.includes(i))return!1;if(o&&n&&s.content?.cartographicOrigin){let[a,c]=r.project(s.content.cartographicOrigin),l=n.x+n.width/2,f=n.y+n.height/2,u=Math.max(r.width,r.height)/4,h=a-l,p=c-f;if(h*h+p*p>u*u)return!1}return!0}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let r=this.props.loadOptions||{},n=this.props.loaders?.length?this.props.loaders:this.props.loader,o=Array.isArray(n)?n[0]:n,{tileset:s,...i}=r,a={loadOptions:{...i},...s},c=e;if("preload"in o&&typeof o.preload=="function"){let u=await o.preload(e,r);u.url&&(c=u.url),u.headers&&(a.loadOptions.core={...a.loadOptions.core,fetch:{...a.loadOptions.core?.fetch,headers:u.headers}}),Object.assign(a,u)}let l=await(0,V0.load)(c,o,a.loadOptions),f=new Ao(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate(),...a});this.setState({tileset3d:f,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(f)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;e.tileDrawn=!1,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,o=Object.keys(e).length;!n||!o||!r||r.selectTiles(Object.values(e)).then(s=>{this.state.frameNumber!==s&&this.setState({frameNumber:s})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case ke.POINTCLOUD:return this._makePointCloudLayer(e,r);case ke.SCENEGRAPH:return this._make3DModelLayer(e);case ke.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:o,constantRGBA:s,cartographicOrigin:i,modelMatrix:a}=e.content,{positions:c,normals:l,colors:f}=n;if(!c)return null;let u=r&&r.props.data||{header:{vertexCount:o},attributes:{POSITION:c,NORMAL:l,COLOR_0:f}},{pointSize:h,getPointColor:p}=this.props,d=this.getSubLayerClass("pointcloud",D0.PointCloudLayer);return new d({pointSize:h},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:u,coordinateSystem:qt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:i,modelMatrix:a,getColor:s||p,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:o,modelMatrix:s}=e.content,i=this.getSubLayerClass("scenegraph",G0.ScenegraphLayer);return new i({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||O0,scenegraph:r,coordinateSystem:qt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:s,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{e.tileDrawn=!0}})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:o,indices:s,modelMatrix:i,cartographicOrigin:a,coordinateSystem:c=qt.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:f}=n,{_getMeshColor:u}=this.props,h=r&&r.props.mesh||new U0.Geometry({topology:"triangle-list",attributes:P3(o),indices:s}),p=this.getSubLayerClass("mesh",bm);return new p(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:h,data:O0,getColor:u(e),pbrMaterial:l,modelMatrix:i,coordinateOrigin:a,coordinateSystem:c,featureIds:f,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let o=r[n.id]=r[n.id]||{tile:n},{layer:s}=o;return n.selected&&(s?o.needsUpdate&&(s=this._getSubLayer(n,s),o.needsUpdate=!1):s=this._getSubLayer(n)),o.layer=s,s}).filter(Boolean):null}};Bo.defaultProps=F3;Bo.layerName="Tile3DLayer";var H0=Bo;function P3(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 An=D(nt(),1),mf=D(Qs(),1);var N3=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 uf(t){return t>>1^-(t&1)}function O3(t){let e=0,r={};for(let[n,o]of N3){let s=o===8?t.getFloat64:t.getFloat32;r[n]=s.call(t,e,!0),e+=o}return{header:r,headerEndPosition:e}}function U3(t,e){let r=e,n=3,o=t.getUint32(r,!0),s=new Uint16Array(o*n);r+=Uint32Array.BYTES_PER_ELEMENT;let i=Uint16Array.BYTES_PER_ELEMENT,a=o*i,c=r,l=c+a,f=l+a,u=0,h=0,p=0;for(let d=0;d<o;d++)u+=uf(t.getUint16(c+i*d,!0)),h+=uf(t.getUint16(l+i*d,!0)),p+=uf(t.getUint16(f+i*d,!0)),s[d]=u,s[d+o]=h,s[d+o*2]=p;return r+=a*3,{vertexData:s,vertexDataEndPosition:r}}function Io(t,e,r,n,o=!0){let s;if(n===2?s=new Uint16Array(t,e,r):s=new Uint32Array(t,e,r),!o)return s;let i=0;for(let a=0;a<s.length;++a){let c=s[a];s[a]=i-c,c===0&&++i}return s}function D3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%i!==0&&(n+=i-n%i);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=Io(t.buffer,n,c,i);return n+=c*i,{triangleIndicesEndPosition:n,triangleIndices:l}}function G3(t,e,r){let n=r,o=3,i=e.length/o>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=Io(t.buffer,n,a,i,!1);n+=a*i;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let f=Io(t.buffer,n,l,i,!1);n+=l*i;let u=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=Io(t.buffer,n,u,i,!1);n+=u*i;let p=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let d=Io(t.buffer,n,p,i,!1);return n+=p*i,{edgeIndicesEndPosition:n,westIndices:c,southIndices:f,eastIndices:h,northIndices:d}}function V3(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function H3(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function z3(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let o=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let s=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let i=new DataView(t.buffer,n,s);switch(o){case 1:{r.vertexNormals=V3(i);break}case 2:{r.waterMask=H3(i);break}default:}n+=s}return{extensions:r,extensionsEndPosition:n}}var Er={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},k3={maxDecodingStep:Er.extensions};function hf(t,e){let r=Object.assign({},k3,e),n=new DataView(t),{header:o,headerEndPosition:s}=O3(n);if(r.maxDecodingStep<Er.vertices)return{header:o};let{vertexData:i,vertexDataEndPosition:a}=U3(n,s);if(r.maxDecodingStep<Er.triangleIndices)return{header:o,vertexData:i};let{triangleIndices:c,triangleIndicesEndPosition:l}=D3(n,i,a);if(r.maxDecodingStep<Er.edgeIndices)return{header:o,vertexData:i,triangleIndices:c};let{westIndices:f,southIndices:u,eastIndices:h,northIndices:p,edgeIndicesEndPosition:d}=G3(n,i,l);if(r.maxDecodingStep<Er.extensions)return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u};let{extensions:g}=z3(n,d);return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u,extensions:g}}function Gi(t,e,r,n){let o=n?q3(n,t.POSITION.value):j3(e),s=new t.POSITION.value.constructor(o.length*6),i=new t.TEXCOORD_0.value.constructor(o.length*4),a=new e.constructor(o.length*6);for(let l=0;l<o.length;l++){let f=o[l];J3({edge:f,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:s,newTexcoord0:i,newTriangles:a})}t.POSITION.value=qn(t.POSITION.value,s),t.TEXCOORD_0.value=qn(t.TEXCOORD_0.value,i);let c=e instanceof Array?e.concat(a):qn(e,a);return{attributes:t,triangles:c}}function j3(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,s)=>Math.min(...o)-Math.min(...s)||Math.max(...o)-Math.max(...s));let r=[],n=0;for(;n<e.length;)e[n][0]===e[n+1]?.[1]&&e[n][1]===e[n+1]?.[0]?n+=2:(r.push(e[n]),n++);return r}function q3(t,e){t.westIndices.sort((n,o)=>e[3*n+1]-e[3*o+1]),t.eastIndices.sort((n,o)=>e[3*o+1]-e[3*n+1]),t.southIndices.sort((n,o)=>e[3*o]-e[3*n]),t.northIndices.sort((n,o)=>e[3*n]-e[3*o]);let r=[];for(let n in t){let o=t[n];for(let s=0;s<o.length-1;s++)r.push([o[s],o[s+1]])}return r}function J3({edge:t,edgeIndex:e,attributes:r,skirtHeight:n,newPosition:o,newTexcoord0:s,newTriangles:i}){let a=r.POSITION.value.length,c=e*2,l=e*2+1;o.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),c*3),o[c*3+2]=o[c*3+2]-n,o.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),l*3),o[l*3+2]=o[l*3+2]-n,s.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),c*2),s.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),l*2);let f=e*2*3;i[f]=t[0],i[f+1]=a/3+l,i[f+2]=t[1],i[f+3]=a/3+l,i[f+4]=t[0],i[f+5]=a/3+c}function pf(t,e={}){let{bounds:r}=e,{header:n,vertexData:o,triangleIndices:s,westIndices:i,northIndices:a,eastIndices:c,southIndices:l}=hf(t,Er.triangleIndices),f=s,u=W3(o,n,r),h=xr(u);if(e?.skirtHeight){let{attributes:p,triangles:d}=Gi(u,f,e.skirtHeight,{westIndices:i,northIndices:a,eastIndices:c,southIndices:l});u=p,f=d}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:h},schema:void 0,topology:"triangle-list",mode:4,indices:{value:f,size:1},attributes:u}}function W3(t,e,r){let{minHeight:n,maxHeight:o}=e,[s,i,a,c]=r||[0,0,1,1],l=a-s,f=c-i,u=o-n,h=t.length/3,p=new Float32Array(h*3),d=new Float32Array(h*2);for(let g=0;g<h;g++){let m=t[g]/32767,y=t[g+h]/32767,b=t[g+h*2]/32767;p[3*g+0]=m*l+s,p[3*g+1]=y*f+i,p[3*g+2]=b*u+n,d[2*g+0]=m,d[2*g+1]=y}return{POSITION:{value:p,size:3},TEXCOORD_0:{value:d,size:2}}}var vo=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 o=n+2,s=0,i=0,a=0,c=0,l=0,f=0;for(o&1?a=c=l=r:s=i=f=r;(o>>=1)>1;){let h=s+a>>1,p=i+c>>1;o&1?(a=s,c=i,s=l,i=f):(s=a,i=c,a=l,c=f),l=h,f=p}let u=n*4;this.coords[u+0]=s,this.coords[u+1]=i,this.coords[u+2]=a,this.coords[u+3]=c}}createTile(e){return new df(e,this)}},df=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:o}=this.martini,{terrain:s,errors:i}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],f=n[c+1],u=n[c+2],h=n[c+3],p=l+u>>1,d=f+h>>1,g=p+d-f,m=d+l-p,y=(s[f*o+l]+s[h*o+u])/2,b=d*o+p,M=Math.abs(y-s[b]);if(i[b]=Math.max(i[b],M),a<r){let S=(f+m>>1)*o+(l+g>>1),C=(h+m>>1)*o+(u+g>>1);i[b]=Math.max(i[b],i[S],i[C])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:o}=this,s=0,i=0,a=r-1;n.fill(0);function c(p,d,g,m,y,b){let M=p+g>>1,S=d+m>>1;Math.abs(p-y)+Math.abs(d-b)>1&&o[S*r+M]>e?(c(y,b,p,d,M,S),c(g,m,y,b,M,S)):(n[d*r+p]=n[d*r+p]||++s,n[m*r+g]=n[m*r+g]||++s,n[b*r+y]=n[b*r+y]||++s,i++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(s*2),f=new Uint32Array(i*3),u=0;function h(p,d,g,m,y,b){let M=p+g>>1,S=d+m>>1;if(Math.abs(p-y)+Math.abs(d-b)>1&&o[S*r+M]>e)h(y,b,p,d,M,S),h(g,m,y,b,M,S);else{let C=n[d*r+p]-1,_=n[m*r+g]-1,v=n[b*r+y]-1;l[2*C]=p,l[2*C+1]=d,l[2*_]=g,l[2*_+1]=m,l[2*v]=y,l[2*v+1]=b,f[u++]=C,f[u++]=_,f[u++]=v}}return h(0,0,a,a,a,0),h(a,a,0,0,0,a),{vertices:l,triangles:f}}};var Ro=class{constructor(e,r,n=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 o=r-1,s=n-1,i=this._addPoint(0,0),a=this._addPoint(o,0),c=this._addPoint(0,s),l=this._addPoint(o,s),f=this._addTriangle(l,i,c,-1,-1,-1);this._addTriangle(i,l,a,f,-1,-1),this._flush()}run(e=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],o=2*this.triangles[n*3+0],s=2*this.triangles[n*3+1],i=2*this.triangles[n*3+2];this._findCandidate(e[o],e[o+1],e[s],e[s+1],e[i],e[i+1],n)}this._pendingLen=0}_findCandidate(e,r,n,o,s,i,a){let c=Math.min(e,n,s),l=Math.min(r,o,i),f=Math.max(e,n,s),u=Math.max(r,o,i),h=_r(n,o,s,i,c,l),p=_r(s,i,e,r,c,l),d=_r(e,r,n,o,c,l),g=o-r,m=e-n,y=i-o,b=n-s,M=r-i,S=s-e,C=_r(e,r,n,o,s,i),_=this.heightAt(e,r)/C,v=this.heightAt(n,o)/C,E=this.heightAt(s,i)/C,T=0,A=0,B=0,L=0;for(let F=l;F<=u;F++){let w=0;h<0&&y!==0&&(w=Math.max(w,Math.floor(-h/y))),p<0&&M!==0&&(w=Math.max(w,Math.floor(-p/M))),d<0&&g!==0&&(w=Math.max(w,Math.floor(-d/g)));let U=h+y*w,W=p+M*w,z=d+g*w,re=!1;for(let Y=c+w;Y<=f;Y++){if(U>=0&&W>=0&&z>=0){re=!0;let X=_*U+v*W+E*z,ee=Math.abs(X-this.heightAt(Y,F));L+=ee*ee,ee>T&&(T=ee,A=Y,B=F)}else if(re)break;U+=y,W+=M,z+=g}h+=b,p+=S,d+=m}(A===e&&B===r||A===n&&B===o||A===s&&B===i)&&(T=0),this._candidates[2*a]=A,this._candidates[2*a+1]=B,this._rms[a]=L,this._queuePush(a,T,L)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,o=e*3+2,s=this.triangles[r],i=this.triangles[n],a=this.triangles[o],c=this.coords[2*s],l=this.coords[2*s+1],f=this.coords[2*i],u=this.coords[2*i+1],h=this.coords[2*a],p=this.coords[2*a+1],d=this._candidates[2*e],g=this._candidates[2*e+1],m=this._addPoint(d,g);if(_r(c,l,f,u,d,g)===0)this._handleCollinear(m,r);else if(_r(f,u,h,p,d,g)===0)this._handleCollinear(m,n);else if(_r(h,p,c,l,d,g)===0)this._handleCollinear(m,o);else{let y=this._halfedges[r],b=this._halfedges[n],M=this._halfedges[o],S=this._addTriangle(s,i,m,y,-1,-1,r),C=this._addTriangle(i,a,m,b,-1,S+1),_=this._addTriangle(a,s,m,M,S+2,C+1);this._legalize(S),this._legalize(C),this._legalize(_)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,o,s,i,a=this.triangles.length){let c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=o,this._halfedges[a+1]=s,this._halfedges[a+2]=i,o>=0&&(this._halfedges[o]=a+0),s>=0&&(this._halfedges[s]=a+1),i>=0&&(this._halfedges[i]=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,o=r-r%3,s=n+(e+1)%3,i=n+(e+2)%3,a=o+(r+2)%3,c=o+(r+1)%3,l=this.triangles[i],f=this.triangles[e],u=this.triangles[s],h=this.triangles[a],p=this.coords;if(!K3(p[2*l],p[2*l+1],p[2*f],p[2*f+1],p[2*u],p[2*u+1],p[2*h],p[2*h+1]))return;let d=this._halfedges[s],g=this._halfedges[i],m=this._halfedges[a],y=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(o/3);let b=this._addTriangle(l,h,u,-1,m,d,n),M=this._addTriangle(h,l,f,b,g,y,o);this._legalize(b+1),this._legalize(M+2)}_handleCollinear(e,r){let n=r-r%3,o=n+(r+1)%3,s=n+(r+2)%3,i=this.triangles[s],a=this.triangles[r],c=this.triangles[o],l=this._halfedges[o],f=this._halfedges[s],u=this._halfedges[r];if(u<0){let _=this._addTriangle(e,i,a,-1,f,-1,n),v=this._addTriangle(i,e,c,_,-1,l);this._legalize(_+1),this._legalize(v+2);return}let h=u-u%3,p=h+(u+2)%3,d=h+(u+1)%3,g=this.triangles[p],m=this._halfedges[p],y=this._halfedges[d];this._queueRemove(h/3);let b=this._addTriangle(i,a,e,f,-1,-1,n),M=this._addTriangle(a,g,e,y,-1,b+1,h),S=this._addTriangle(g,c,e,m,-1,M+1),C=this._addTriangle(c,i,e,l,b+2,S+1);this._legalize(b),this._legalize(M),this._legalize(S),this._legalize(C)}_queuePush(e,r,n){let o=this._queue.length;this._queueIndices[e]=o,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(o)}_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 o=this._pending.indexOf(e);if(o!==-1)this._pending[o]=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],o=this._queue[r];this._queue[e]=o,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[o]=e;let s=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=s}_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 o=2*n+1;if(o>=r||o<0)break;let s=o+1,i=o;if(s<r&&this._queueLess(s,o)&&(i=s),!this._queueLess(i,n))break;this._queueSwap(n,i),n=i}return n>e}};function _r(t,e,r,n,o,s){return(r-o)*(e-s)-(n-s)*(t-o)}function K3(t,e,r,n,o,s,i,a){let c=t-i,l=e-a,f=r-i,u=n-a,h=o-i,p=s-a,d=c*c+l*l,g=f*f+u*u,m=h*h+p*p;return c*(u*m-g*p)-l*(f*m-g*h)+d*(f*p-u*h)<0}function j0(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:o}=e,{data:s,width:i,height:a}=t,c,l;switch(e.tesselator){case"martini":c=Vi(s,i,a,o,e.tesselator),l=z0(r,i,c);break;case"delatin":c=Vi(s,i,a,o,e.tesselator),l=k0(r,i,a,c);break;default:i===a&&!(a&i-1)?(c=Vi(s,i,a,o,"martini"),l=z0(r,i,c)):(c=Vi(s,i,a,o,"delatin"),l=k0(r,i,a,c));break}let{vertices:f}=l,{triangles:u}=l,h=X3(f,c,i,a,n),p=xr(h);if(e.skirtHeight){let{attributes:d,triangles:g}=Gi(h,u,e.skirtHeight);h=d,u=g}return{loaderData:{header:{}},header:{vertexCount:u.length,boundingBox:p},mode:4,indices:{value:Uint32Array.from(u),size:1},attributes:h}}function z0(t,e,r){let n=e+1,s=new vo(n).createTile(r),{vertices:i,triangles:a}=s.getMesh(t);return{vertices:i,triangles:a}}function k0(t,e,r,n){let o=new Ro(n,e+1,r+1);o.run(t);let{coords:s,triangles:i}=o;return{vertices:s,triangles:i}}function Vi(t,e,r,n,o){let{rScaler:s,bScaler:i,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let f=0,u=0;u<r;u++)for(let h=0;h<e;h++,f++){let p=f*4,d=t[p+0],g=t[p+1],m=t[p+2];l[f+u]=d*s+g*a+m*i+c}if(o==="martini"){for(let f=(e+1)*e,u=0;u<e;u++,f++)l[f]=l[f-e-1];for(let f=r,u=0;u<r+1;u++,f+=r+1)l[f]=l[f-1]}return l}function X3(t,e,r,n,o){let s=r+1,i=t.length/2,a=new Float32Array(i*3),c=new Float32Array(i*2),[l,f,u,h]=o||[0,0,r,n],p=(u-l)/r,d=(h-f)/n;for(let g=0;g<i;g++){let m=t[g*2],y=t[g*2+1],b=y*s+m;a[3*g+0]=m*p+l,a[3*g+1]=-y*d+h,a[3*g+2]=e[b],c[2*g+0]=m/r,c[2*g+1]=y/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Hi="4.4.3";var zi={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:Hi,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 q0={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Hi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var Y3={...zi,parse:Q3};async function Q3(t,e,r){let n={...e,core:{...e?.core,mimeType:"application/x.image"},image:{...e?.image,type:"data"}},o=await Oe(t,[],n,r),s={...Y3.options.terrain,...e?.terrain};return j0(o,s)}var $k={...q0,parseSync:(t,e)=>pf(t,e?.["quantized-mesh"]),parse:async(t,e)=>pf(t,e?.["quantized-mesh"])};var J0=[1],Z3={...pr.defaultProps,elevationData:Gt,texture:{...Gt,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:[zi]};function W0(t){return Array.isArray(t)?t.join(";"):t||""}var wo=class extends An.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:s}=e,i=s&&(Array.isArray(s)||$3(s));this.setState({isTiled:i})}let o=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&o){let s=this.loadTerrain(e);this.setState({terrain:s})}e.workerUrl&&An.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:o,signal:s}){if(!e)return null;let i=this.getLoadOptions();i={...i,terrain:{skirtHeight:this.state.isTiled?o*2:0,...i?.terrain,bounds:r,meshMaxError:o,elevationDecoder:n}};let{fetch:a}=this.props;return a(e,{propName:"elevationData",layer:this,loadOptions:i,signal:s})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:o,elevationDecoder:s,meshMaxError:i}=this.props,{viewport:a}=this.context,c=ft(r,e),l=o&&ft(o,e),{signal:f}=e,u=[0,0],h=[0,0];if(a.isGeospatial){let m=e.bbox;u=a.projectFlat([m.west,m.south]),h=a.projectFlat([m.east,m.north])}else{let m=e.bbox;u=[m.left,m.bottom],h=[m.right,m.top]}let p=[u[0],u[1],h[0],h[1]],d=this.loadTerrain({elevationData:c,bounds:p,elevationDecoder:s,meshMaxError:i,signal:f}),g=l?n(l,{propName:"texture",layer:this,loaders:[],signal:f}).catch(m=>null):Promise.resolve(null);return Promise.all([d,g])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",mf.SimpleMeshLayer),{color:n,wireframe:o,material:s}=this.props,{data:i}=e;if(!i)return null;let[a,c]=i;return new r(e,{data:J0,mesh:a,texture:c,_instanced:!1,coordinateSystem:An.COORDINATE_SYSTEM.CARTESIAN,getPosition:l=>[0,0,0],getColor:n,wireframe:o,material:s})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(i=>i.content).filter(Boolean).map(i=>i[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let o=Math.min(...n.map(i=>i[0])),s=Math.max(...n.map(i=>i[1]));(!r||o<r[0]||s>r[1])&&this.setState({zRange:[o,s]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:o,wireframe:s,meshMaxError:i,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:g,maxCacheSize:m,maxCacheByteSize:y,refinementStrategy:b,zoomOffset:M}=this.props;if(this.state.isTiled)return new pr(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:W0(n),texture:W0(o),meshMaxError:i,elevationDecoder:a,projectionMode:this.context.viewport.projectionMode,zoomOffset:M}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:g,maxCacheSize:m,maxCacheByteSize:y,refinementStrategy:b,zoomOffset:M});if(!n)return null;let S=this.getSubLayerClass("mesh",mf.SimpleMeshLayer);return new S(this.getSubLayerProps({id:"mesh"}),{data:J0,mesh:this.state.terrain,texture:o,_instanced:!1,getPosition:C=>[0,0,0],getColor:e,material:r,wireframe:s})}};wo.defaultProps=Z3;wo.layerName="TerrainLayer";var K0=wo,$3=t=>t.includes("{x}")&&(t.includes("{y}")||t.includes("{-y}"));var $i=D(nt(),1),Lf=D(Ke(),1),I1=D(Y0(),1);function Q0(t,e,r){switch(t.type){case"Point":return tv(t,e,r);case"LineString":return ev(t,e,r);case"Polygon":return Z0(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function Z0(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.polygonIndices.value.filter(c=>c>=e&&c<=r),s=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(o.length>2)){let c=[];for(let l=0;l<s.length-1;l++){let f=s[l],u=s[l+1],h=ki(n,f,u);c.push(h)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<o.length-1;c++){let l=o[c],f=o[c+1],u=Z0(t,l,f).coordinates;a.push(u)}return{type:"MultiPolygon",coordinates:a}}function ev(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(o.length>2))return{type:"LineString",coordinates:ki(n,o[0],o[1])};let i=[];for(let a=0;a<o.length-1;a++){let c=ki(n,o[a],o[a+1]);i.push(c)}return{type:"MultiLineString",coordinates:i}}function tv(t,e,r){let{positions:n}=t,o=ki(n,e,r);return o.length>1?{type:"MultiPoint",coordinates:o}:{type:"Point",coordinates:o[0]}}function ki(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let o=e;o<r;o++){let s=Array();for(let i=o*t.size;i<(o+1)*t.size;i++)s.push(Number(t.value[i]));n.push(s)}return n}var Lo={x:0,y:1,z:2};function Cr(t,e={}){let{start:r=0,end:n=t.length,plane:o="xy"}=e,s=e.size||2,i=0,a=Lo[o[0]],c=Lo[o[1]];for(let l=r,f=n-s;l<n;l+=s)i+=(t[l+a]-t[f+a])*(t[l+c]+t[f+c]),f=l;return i/2}function Af(t,e,r=2,n,o="xy"){let s=e&&e.length,i=s?e[0]*r:t.length,a=e1(t,0,i,r,!0,n&&n[0],o),c=[];if(!a||a.next===a.prev)return c;let l,f,u,h,p,d,g;if(s&&(a=cv(t,e,a,r,n,o)),t.length>80*r){h=f=t[0],p=u=t[1];for(let m=r;m<i;m+=r)d=t[m],g=t[m+1],d<h&&(h=d),g<p&&(p=g),d>f&&(f=d),g>u&&(u=g);l=Math.max(f-h,u-p),l=l!==0?32767/l:0}return Fo(a,c,r,h,p,l,0),c}function e1(t,e,r,n,o,s,i){let a,c;s===void 0&&(s=Cr(t,{start:e,end:r,size:n,plane:i}));let l=Lo[i[0]],f=Lo[i[1]];if(o===s<0)for(a=e;a<r;a+=n)c=$0(a,t[a+l],t[a+f],c);else for(a=r-n;a>=e;a-=n)c=$0(a,t[a+l],t[a+f],c);return c&&Ji(c,c.next)&&(No(c),c=c.next),c}function Br(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Ji(r,r.next)||ne(r.prev,r,r.next)===0)){if(No(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function Fo(t,e,r,n,o,s,i){if(!t)return;!i&&s&&pv(t,n,o,s);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?sv(t,n,o,s):ov(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),No(t),t=l.next,a=l.next;continue}if(t=l,t===a){i?i===1?(t=iv(Br(t),e,r),Fo(t,e,r,n,o,s,2)):i===2&&av(t,e,r,n,o,s):Fo(Br(t),e,r,n,o,s,1);break}}}function ov(t){let e=t.prev,r=t,n=t.next;if(ne(e,r,n)>=0)return!1;let o=e.x,s=r.x,i=n.x,a=e.y,c=r.y,l=n.y,f=o<s?o<i?o:i:s<i?s:i,u=a<c?a<l?a:l:c<l?c:l,h=o>s?o>i?o:i:s>i?s:i,p=a>c?a>l?a:l:c>l?c:l,d=n.next;for(;d!==e;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&xn(o,a,s,c,i,l,d.x,d.y)&&ne(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function sv(t,e,r,n){let o=t.prev,s=t,i=t.next;if(ne(o,s,i)>=0)return!1;let a=o.x,c=s.x,l=i.x,f=o.y,u=s.y,h=i.y,p=a<c?a<l?a:l:c<l?c:l,d=f<u?f<h?f:h:u<h?u:h,g=a>c?a>l?a:l:c>l?c:l,m=f>u?f>h?f:h:u>h?u:h,y=gf(p,d,e,r,n),b=gf(g,m,e,r,n),M=t.prevZ,S=t.nextZ;for(;M&&M.z>=y&&S&&S.z<=b;){if(M.x>=p&&M.x<=g&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&xn(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0||(M=M.prevZ,S.x>=p&&S.x<=g&&S.y>=d&&S.y<=m&&S!==o&&S!==i&&xn(a,f,c,u,l,h,S.x,S.y)&&ne(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;M&&M.z>=y;){if(M.x>=p&&M.x<=g&&M.y>=d&&M.y<=m&&M!==o&&M!==i&&xn(a,f,c,u,l,h,M.x,M.y)&&ne(M.prev,M,M.next)>=0)return!1;M=M.prevZ}for(;S&&S.z<=b;){if(S.x>=p&&S.x<=g&&S.y>=d&&S.y<=m&&S!==o&&S!==i&&xn(a,f,c,u,l,h,S.x,S.y)&&ne(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function iv(t,e,r){let n=t;do{let o=n.prev,s=n.next.next;!Ji(o,s)&&t1(o,n,n.next,s)&&Po(o,s)&&Po(s,o)&&(e.push(o.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),No(n),No(n.next),n=t=s),n=n.next}while(n!==t);return Br(n)}function av(t,e,r,n,o,s){let i=t;do{let a=i.next.next;for(;a!==i.prev;){if(i.i!==a.i&&gv(i,a)){let c=r1(i,a);i=Br(i,i.next),c=Br(c,c.next),Fo(i,e,r,n,o,s,0),Fo(c,e,r,n,o,s,0);return}a=a.next}i=i.next}while(i!==t)}function cv(t,e,r,n,o,s){let i=[],a,c,l,f,u;for(a=0,c=e.length;a<c;a++)l=e[a]*n,f=a<c-1?e[a+1]*n:t.length,u=e1(t,l,f,n,!1,o&&o[a+1],s),u===u.next&&(u.steiner=!0),i.push(mv(u));for(i.sort(lv),a=0;a<i.length;a++)r=fv(i[a],r);return r}function lv(t,e){return t.x-e.x}function fv(t,e){let r=uv(t,e);if(!r)return e;let n=r1(r,t);return Br(n,n.next),Br(r,r.next)}function uv(t,e){let r=e,n=t.x,o=t.y,s=-1/0,i;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){let h=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=n&&h>s&&(s=h,i=r.x<r.next.x?r:r.next,h===n))return i}r=r.next}while(r!==e);if(!i)return null;let a=i,c=i.x,l=i.y,f=1/0,u;r=i;do n>=r.x&&r.x>=c&&n!==r.x&&xn(o<l?n:s,o,c,l,o<l?s:n,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(n-r.x),Po(r,t)&&(u<f||u===f&&(r.x>i.x||r.x===i.x&&hv(i,r)))&&(i=r,f=u)),r=r.next;while(r!==a);return i}function hv(t,e){return ne(t.prev,t,e.prev)<0&&ne(e.next,t,t.next)<0}function pv(t,e,r,n){let o=t;do o.z===0&&(o.z=gf(o.x,o.y,e,r,n)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==t);o.prevZ.nextZ=null,o.prevZ=null,dv(o)}function dv(t){let e,r,n=1,o,s,i,a,c,l;do{for(s=t,t=null,l=null,o=0;s;){for(o++,a=s,i=0,r=0;r<n&&(i++,a=a.nextZ,!!a);r++);for(c=n;i>0||c>0&&a;)i!==0&&(c===0||!a||s.z<=a.z)?(e=s,s=s.nextZ,i--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=a}l.nextZ=null,n*=2}while(o>1);return t}function gf(t,e,r,n,o){return t=(t-r)*o|0,e=(e-n)*o|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 mv(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 xn(t,e,r,n,o,s,i,a){return(o-i)*(e-a)>=(t-i)*(s-a)&&(t-i)*(n-a)>=(r-i)*(e-a)&&(r-i)*(s-a)>=(o-i)*(n-a)}function gv(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!Av(t,e)&&(Po(t,e)&&Po(e,t)&&xv(t,e)&&(ne(t.prev,t,e.prev)||ne(t,e.prev,e))||Ji(t,e)&&ne(t.prev,t,t.next)>0&&ne(e.prev,e,e.next)>0)}function ne(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Ji(t,e){return t.x===e.x&&t.y===e.y}function t1(t,e,r,n){let o=qi(ne(t,e,r)),s=qi(ne(t,e,n)),i=qi(ne(r,n,t)),a=qi(ne(r,n,e));return!!(o!==s&&i!==a||o===0&&ji(t,r,e)||s===0&&ji(t,n,e)||i===0&&ji(r,t,n)||a===0&&ji(r,e,n))}function ji(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 qi(t){return t>0?1:t<0?-1:0}function Av(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&&t1(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Po(t,e){return ne(t.prev,t,t.next)<0?ne(t,e,t.next)>=0&&ne(t,t.prev,e)>=0:ne(t,e,t.prev)<0||ne(t,t.next,e)<0}function xv(t,e){let r=t,n=!1,o=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&o<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function r1(t,e){let r=new Oo(t.i,t.x,t.y),n=new Oo(e.i,e.x,e.y),o=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=o,o.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function $0(t,e,r,n){let o=new Oo(t,e,r);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function No(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 Oo=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function Wi(t,e,r){let n=Sv(t),o=Object.keys(n).filter(s=>n[s]!==Array);return Ev(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||o,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function Sv(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let o=r.properties[n];e[n]=Rv(o,e[n])}return e}function Ev(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:o,linePositionsCount:s,linePathsCount:i,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=e,{numericPropKeys:d=[],PositionDataType:g=Float32Array,triangulate:m=!0}=r,y=t[0]&&"id"in t[0],b=t.length>65535?Uint32Array:Uint16Array,M={type:"Point",positions:new g(n*p),globalFeatureIds:new b(n),featureIds:o>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},S={type:"LineString",pathIndices:s>65535?new Uint32Array(i+1):new Uint16Array(i+1),positions:new g(s*p),globalFeatureIds:new b(s),featureIds:a>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},C={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new g(c*p),globalFeatureIds:new b(c),featureIds:u>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};m&&(C.triangles=[]);for(let v of[M,S,C])for(let E of d){let T=h[E];v.numericProps[E]=new T(v.positions.length/p)}S.pathIndices[i]=s,C.polygonIndices[l]=c,C.primitivePolygonIndices[f]=c;let _={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let v of t){let E=v.geometry,T=v.properties||{};switch(E.type){case"Point":_v(E,M,_,p,T),M.properties.push(yf(T,d)),y&&M.fields.push({id:v.id}),_.pointFeature++;break;case"LineString":Cv(E,S,_,p,T),S.properties.push(yf(T,d)),y&&S.fields.push({id:v.id}),_.lineFeature++;break;case"Polygon":Bv(E,C,_,p,T),C.properties.push(yf(T,d)),y&&C.fields.push({id:v.id}),_.polygonFeature++;break;default:throw new Error("Invalid geometry type")}_.feature++}return vv(M,S,C,p)}function _v(t,e,r,n,o){e.positions.set(t.data,r.pointPosition*n);let s=t.data.length/n;bf(e,o,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function Cv(t,e,r,n,o){e.positions.set(t.data,r.linePosition*n);let s=t.data.length/n;bf(e,o,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=t.indices[i],l=i===a-1?t.data.length:t.indices[i+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function Bv(t,e,r,n,o){e.positions.set(t.data,r.polygonPosition*n);let s=t.data.length/n;bf(e,o,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[i],f=t.indices[i],u=t.indices[i+1];for(let p=0,d=f.length;p<d;++p){let g=f[p],m=p===d-1?u===void 0?t.data.length:u[0]:f[p+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(m-g)/n}let h=r.polygonPosition;Iv(e,l,f,{startPosition:c,endPosition:h,coordLength:n})}}function Iv(t,e,r,{startPosition:n,endPosition:o,coordLength:s}){if(!t.triangles)return;let i=n*s,a=o*s,c=t.positions.subarray(i,a),l=r[0],f=r.slice(1).map(h=>(h-l)/s),u=Af(c,f,s,e);for(let h=0,p=u.length;h<p;++h)t.triangles.push(n+u[h])}function xf(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function vv(t,e,r,n){let o={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:xf(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:xf(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:xf(r.numericProps,1)}};return o.polygons&&r.triangles&&(o.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),o}function bf(t,e,r,n){for(let o in t.numericProps)if(o in e){let s=e[o];t.numericProps[o].fill(s,r,r+n)}}function yf(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function Rv(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function Uo(t,e){let r=e?.globalFeatureId;return r!==void 0?wv(t,r):Lv(t,e?.type)}function wv(t,e){let r=s1(t);for(let n of r){let o=0,s=n.featureIds.value[0];for(let i=0;i<n.featureIds.value.length;i++){let a=n.featureIds.value[i];if(a!==s){if(e===n.globalFeatureIds.value[o])return Ki(n,o,i);o=i,s=a}}if(e===n.globalFeatureIds.value[o])return Ki(n,o,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function Lv(t,e){let r=s1(t,e);return Fv(r)}function s1(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 Fv(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,o=r.featureIds.value[0];for(let s=0;s<r.featureIds.value.length;s++){let i=r.featureIds.value[s];i!==o&&(e.push(Ki(r,n,s)),n=s,o=i)}e.push(Ki(r,n,r.featureIds.value.length))}return e}function Ki(t,e,r){let n=Q0(t,e,r),o=Nv(t,e,r),s=Pv(t,e,r);return{type:"Feature",geometry:n,properties:o,...s}}function Pv(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function Nv(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let o in t.numericProps)n[o]=t.numericProps[o].value[e];return n}var Cf=D(h1(),1);function $v(t){let e=0;for(let r=0,n=t.length-1,o,s;r<t.length;n=r++)o=t[r],s=t[n],e+=(s[0]-o[0])*(o[1]+s[1]);return e}function Sf(t,e){if(Array.isArray(t[0])){for(let n of t)Sf(n,e);return}let r=t;r[0]/=e,r[1]/=e}function p1(t,e){for(let r=0;r<t.length;++r)t[r]/=e}function Ef(t,e,r){if(typeof t[0][0]!="number"){for(let i of t)Ef(i,e,r);return}let n=r*Math.pow(2,e.z),o=r*e.x,s=r*e.y;for(let i=0;i<t.length;i++){let a=t[i];a[0]=(a[0]+o)*360/n-180;let c=180-(a[1]+s)*360/n;a[1]=360/Math.PI*Math.atan(Math.exp(c*Math.PI/180))-90}}function d1(t,e,r){let{x:n,y:o,z:s}=e,i=r*Math.pow(2,s),a=r*n,c=r*o;for(let l=0,f=t.length;l<f;l+=2){t[l]=(t[l]+a)*360/i-180;let u=180-(t[l+1]+c)*360/i;t[l+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function m1(t){let e=t.length;if(e<=1)return[t];let r=[],n,o;for(let s=0;s<e;s++){let i=$v(t[s]);i!==0&&(o===void 0&&(o=i<0),o===i<0?(n&&r.push(n),n=[t[s]]):n&&n.push(t[s]))}return n&&r.push(n),r}function g1(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=[],o=[],s=[],i=[],a,c=0;for(let l,f=0,u;f<e;f++){u=t.indices[f]-c,l=t.indices[f+1]-c||t.data.length;let h=t.data.slice(u,l),p=Cr(h);if(p===0){let d=t.data.slice(0,u),g=t.data.slice(l);t.data=d.concat(g),c+=l-u;continue}a===void 0&&(a=p<0),a===p<0?(i.length&&(n.push(s),o.push(i)),i=[u],s=[p]):(s.push(p),i.push(u))}return s&&n.push(s),i.length&&o.push(i),{type:r,areas:n,indices:o,data:t.data}}var Ir=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(e,r,n,o,s,i){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=o,this._values=s,this._geometryInfo=i,e.readFields(eR,this,r)}toGeoJSONFeature(e,r){let n=this.loadGeometry();switch(e){case"wgs84":return A1(this,n,o=>Ef(o,r,this.extent));default:return A1(this,n,Sf)}}toBinaryFeature(e,r){let n=this.loadFlatGeometry();switch(e){case"wgs84":return this._toBinaryCoordinates(n,o=>d1(o,r,this.extent));default:return this._toBinaryCoordinates(n,p1)}}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=1/0,c=-1/0,l=1/0,f=-1/0;for(;e.pos<r;){if(o<=0){let u=e.readVarint();n=u&7,o=u>>3}if(o--,n===1||n===2)s+=e.readSVarint(),i+=e.readSVarint(),s<a&&(a=s),s>c&&(c=s),i<l&&(l=i),i>f&&(f=i);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,f]}_toBinaryCoordinates(e,r){let n;r(e.data,this.extent);let o=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=e.indices.length,n={type:"Point",...e};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=e.indices.length,this._geometryInfo.linePositionsCount+=e.data.length/o,n={type:"LineString",...e};break;case 3:n=g1(e),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let i of n.indices)this._geometryInfo.polygonRingsCount+=i.length;this._geometryInfo.polygonPositionsCount+=n.data.length/o;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let s={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(s.id=this.id),s}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=[],c;for(;e.pos<r;){if(o<=0){let l=e.readVarint();n=l&7,o=l>>3}switch(o--,n){case 1:case 2:s+=e.readSVarint(),i+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([s,i]);break;case 7:c&&c.push(c[0].slice());break;default:throw new Error(`unknown command ${n}`)}}return c&&a.push(c),a}loadFlatGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o,s=0,i=0,a=0,c=0,l=[],f=[];for(;e.pos<r;)if(s<=0&&(o=e.readVarint(),n=o&7,s=o>>3),s--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),n===1&&l.push(c),f.push(i,a),c+=2;else if(n===7){if(c>0){let u=l[l.length-1];f.push(f[u],f[u+1]),c+=2}}else throw new Error(`unknown command ${n}`);return{data:f,indices:l}}};Jt(Ir,"types",["Unknown","Point","LineString","Polygon"]);function A1(t,e,r){let n=Ir.types[t.type],o,s,i;switch(t.type){case 1:let c=[];for(o=0;o<e.length;o++)c[o]=e[o][0];i=c,r(i,t.extent);break;case 2:for(i=e,o=0;o<i.length;o++)r(i[o],t.extent);break;case 3:for(i=m1(e),o=0;o<i.length;o++)for(s=0;s<i[o].length;s++)r(i[o][s],t.extent);break;default:throw new Error("illegal vector tile type")}i.length===1?i=i[0]:n=`Multi${n}`;let a={type:"Feature",geometry:{type:n,coordinates:i},properties:t.properties};return t.id!==null&&(a.properties||={},a.properties.id=t.id),a}function eR(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?tR(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function tR(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],o=e._values[t.readVarint()];e.properties[n]=o}}var Qi=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(rR,this,r),this.length=this._features.length}getGeoJSONFeature(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 Ir(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(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 Ir(this._pbf,n,this.extent,this._keys,this._values,r)}};function rR(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(nR(r)))}function nR(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 Do=class{layers;constructor(e,r){this.layers=e.readFields(oR,{},r)}};function oR(t,e,r){if(t===3&&r){let n=new Qi(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Bf(t,e){let r=iR(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:_f(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:x1(t,r)};case"geojson":return x1(t,r);case"binary-geometry":return _f(t,r);case"binary":return _f(t,r);default:throw new Error(n||"undefined shape")}}function _f(t,e){let[r,n]=sR(t,e),o=Wi(r,n);return o.byteLength=t.byteLength,o}function sR(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 o=new Do(new Cf.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(o.layers)).forEach(i=>{let a=o.layers[i];if(a)for(let c=0;c<a.length;c++){let l=a.getBinaryFeature(c,n),f=cR(l,e,i);r.push(f)}}),[r,n]}function x1(t,e){if(t.byteLength<=0)return[];let r=[],n=new Do(new Cf.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(s=>{let i=n.layers[s];if(i)for(let a=0;a<i.length;a++){let c=i.getGeoJSONFeature(a),l=aR(c,e,s);r.push(l)}}),r}function iR(t){if(!t?.mvt)throw new Error("mvt options required");if(t.mvt?.coordinates==="wgs84"&&!t.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.gis&&pc.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),t.mvt}function aR(t,e,r){let n=t.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(n.properties||={},n.properties[e.layerProperty]=r),n}function cR(t,e,r){let n=t.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}var y1={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var lR="4.4.3",Zi={...y1,dataType:null,batchType:null,version:lR,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},fR={...Zi,parse:async(t,e)=>Bf(t,e),parseSync:Bf,binary:!0};var uR={Point:b1,MultiPoint:hR,LineString:T1,MultiLineString:pR,Polygon:M1,MultiPolygon:dR};function b1([t,e],[r,n],o){let s=Ct(r[0],n[0],t),i=Ct(r[1],n[1],e);return o.unprojectFlat([s,i])}function If(t,e,r){return t.map(n=>b1(n,e,r))}function hR(t,e,r){return If(t,e,r)}function T1(t,e,r){return If(t,e,r)}function pR(t,e,r){return t.map(n=>T1(n,e,r))}function M1(t,e,r){return t.map(n=>If(n,e,r))}function dR(t,e,r){return t.map(n=>M1(n,e,r))}function S1(t,e,r){let n=r.projectFlat([e.west,e.north]),o=r.projectFlat([e.east,e.south]),s=[n,o];return{...t,coordinates:uR[t.type](t.coordinates,s,r)}}var mR=["points","lines","polygons"];function vf(t,e,r,n){for(let o of mR){let s=t[o]&&gR(t[o],e,r,n);if(s>=0)return s}return-1}function gR(t,e,r,n){let o=t.featureIds.value;if(!o.length)return-1;let s=0,i=o[o.length-1]+1;if(n){let c=AR(t,n);if(c)s=c[0],i=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,f)=>l===r&&o[f]>=s&&o[f]<i);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=E1(t.properties,c=>c[e]===r,s,i):t.fields&&(a=E1(t.fields,c=>c.id===r,s,i));return a>=0?xR(t,a):-1}function AR(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let o=0;o<n.length;o++){let{layerName:s}=n[o];s&&(r[s]?r[s][1]=o:r[s]=[o,o])}t.__layers=r}return t.__layers[e]}function xR(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,o=t.globalFeatureIds.value;for(let s=0;s<n.length;s++)r[n[s]]=o[s];t.__ids=r}return t.__ids[e]}function E1(t,e,r,n){for(let o=r;o<n;o++)if(e(t[o],o))return o;return-1}var Rf=512,yR={...Lf.GeoJsonLayer.defaultProps,data:Gt,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[Zi],binary:!0},Go=class extends pr{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:o}){o.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:o}),this._setWGS84PropertyForTiles());let{highlightColor:s}=e;s!==r.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Hc(e)){let{onDataLoad:n,fetch:o}=this.props;this.setState({data:null,tileJSON:null});try{r=await o(e,{propName:"data",layer:this,loaders:[]})}catch(s){this.raiseError(s,"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:o}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(o)||r.maxzoom<o)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:o,signal:s}=e,i=ft(r,e);if(!i)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,core:{...a?.core,mimeType:"application/x-protobuf"},mvt:{...a?.mvt,shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:o}},c(i,{propName:"data",layer:this,loadOptions:a,signal:s})}renderSubLayers(e){let{x:r,y:n,z:o}=e.tile.index,s=Math.pow(2,o),i=Rf/s,a=-i,c=Rf*r/s,l=Rf*(1-n/s),f=new N().scale([i,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[c,l,0],e.coordinateSystem=$i.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new I1.ClipExtension]);let u=super.renderSubLayers(e);return this.state.binary&&!(u instanceof Lf.GeoJsonLayer)&&$i.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),u}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:o}=this.state,s=e.object,i=null,a=null;s&&(i=wf(s,r),a=_1(s));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==i||o!==a)&&this.setState({highlightColor:c,hoveredFeatureId:i,hoveredFeatureLayerName:a})}_isWGS84(){return Boolean(this.context.viewport.resolution)}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=Uo(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=B1(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:o}=this.state,{uniqueIdProperty:s,highlightedFeatureId:i}=this.props,a=e.content,c=C1(i);if(!(C1(r)||c))return-1;let f=c?i:r;return Array.isArray(a)?a.findIndex(u=>{let h=wf(u,s)===f,p=c||_1(u)===n;return h&&p}):a&&o?vf(a,s,f,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,o=n.width,s=n.height,i=n.x,a=n.y,c=[this.id];return r.pickObjects({x:i,y:a,width:o,height:s,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,o=[];for(let s of r){let i=wf(s.object,this.props.uniqueIdProperty);i===void 0?o.push(s.object):n.has(i)||(n.add(i),o.push(s.object))}return o}_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:o}=n;if(n._contentWGS84===void 0&&zc(o)){let s=this.state.binary?Uo(n.content):n.content;n._contentWGS84=s.map(i=>B1(i,o,this.context.viewport))}return n._contentWGS84}})})}};Go.layerName="MVTLayer";Go.defaultProps=yR;var v1=Go;function wf(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function _1(t){return t.properties?.layerName||null}function C1(t){return t!=null&&t!==""}function B1(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>S1(t.geometry,e,r).coordinates}),n}var R1="0123456789bcdefghjkmnpqrstuvwxyz",w1={};for(let t=0;t<R1.length;t++)w1[R1.charAt(t)]=t;var bR=-90,TR=90,MR=-180,SR=180;function ER(t){let e=!0,r=TR,n=bR,o=SR,s=MR,i,a=0;for(let c=0,l=t.length;c<l;c++){let f=t[c].toLowerCase();a=w1[f];for(let u=4;u>=0;u--){let h=a>>u&1;e?(i=(o+s)/2,h===1?s=i:o=i):(i=(r+n)/2,h===1?n=i:r=i),e=!e}}return[n,s,r,o]}function L1(t){let[e,r,n,o]=ER(t);return[o,n,o,e,r,e,r,n,o,n]}var _R={getGeohash:{type:"accessor",value:t=>t.geohash}},Vo=class extends De{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>L1(r(n,o))}}};Vo.layerName="GeohashLayer";Vo.defaultProps=_R;var F1=Vo;return V1(Ho);})();
2583
2583
  /*! Bundled license information:
2584
2584
 
2585
2585
  long/dist/long.js: