@perceptimagery/dita-configurator-staging 0.1.2016 → 0.1.3001

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/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //© 2018-2023, Percept Imagery
2
- "use strict";var SprieEmbed=(()=>{var vg=Object.create;var Yc=Object.defineProperty,Eg=Object.defineProperties,yg=Object.getOwnPropertyDescriptor,Cg=Object.getOwnPropertyDescriptors,Sg=Object.getOwnPropertyNames,zu=Object.getOwnPropertySymbols,bg=Object.getPrototypeOf,Wu=Object.prototype.hasOwnProperty,Ig=Object.prototype.propertyIsEnumerable;var Vu=(n,e,t)=>e in n?Yc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,hi=(n,e)=>{for(var t in e||={})Wu.call(e,t)&&Vu(n,t,e[t]);if(zu)for(var t of zu(e))Ig.call(e,t)&&Vu(n,t,e[t]);return n},Ku=(n,e)=>Eg(n,Cg(e));var qu=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+n+'" is not supported')});var Ke=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var wg=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Sg(e))!Wu.call(n,s)&&s!==t&&Yc(n,s,{get:()=>e[s],enumerable:!(i=yg(e,s))||i.enumerable});return n};var Mg=(n,e,t)=>(t=n!=null?vg(bg(n)):{},wg(e||!n||!n.__esModule?Yc(t,"default",{value:n,enumerable:!0}):t,n));var it=(n,e,t)=>new Promise((i,s)=>{var r=l=>{try{a(t.next(l))}catch(c){s(c)}},o=l=>{try{a(t.throw(l))}catch(c){s(c)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(r,o);a((t=t.apply(n,e)).next())});var Yu=Ke(()=>{});var qe=Ke((Ia,Ju)=>{(function(n,e){typeof Ia=="object"?Ju.exports=Ia=e():typeof define=="function"&&define.amd?define([],e):n.CryptoJS=e()})(Ia,function(){var n=n||function(e,t){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof qu=="function")try{i=Yu()}catch{}var s=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},r=Object.create||function(){function A(){}return function(x){var _;return A.prototype=x,_=new A,A.prototype=null,_}}(),o={},a=o.lib={},l=a.Base=function(){return{extend:function(A){var x=r(this);return A&&x.mixIn(A),(!x.hasOwnProperty("init")||this.init===x.init)&&(x.init=function(){x.$super.init.apply(this,arguments)}),x.init.prototype=x,x.$super=this,x},create:function(){var A=this.extend();return A.init.apply(A,arguments),A},init:function(){},mixIn:function(A){for(var x in A)A.hasOwnProperty(x)&&(this[x]=A[x]);A.hasOwnProperty("toString")&&(this.toString=A.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),c=a.WordArray=l.extend({init:function(A,x){A=this.words=A||[],x!=t?this.sigBytes=x:this.sigBytes=A.length*4},toString:function(A){return(A||f).stringify(this)},concat:function(A){var x=this.words,_=A.words,v=this.sigBytes,y=A.sigBytes;if(this.clamp(),v%4)for(var S=0;S<y;S++){var C=_[S>>>2]>>>24-S%4*8&255;x[v+S>>>2]|=C<<24-(v+S)%4*8}else for(var M=0;M<y;M+=4)x[v+M>>>2]=_[M>>>2];return this.sigBytes+=y,this},clamp:function(){var A=this.words,x=this.sigBytes;A[x>>>2]&=4294967295<<32-x%4*8,A.length=e.ceil(x/4)},clone:function(){var A=l.clone.call(this);return A.words=this.words.slice(0),A},random:function(A){for(var x=[],_=0;_<A;_+=4)x.push(s());return new c.init(x,A)}}),h=o.enc={},f=h.Hex={stringify:function(A){for(var x=A.words,_=A.sigBytes,v=[],y=0;y<_;y++){var S=x[y>>>2]>>>24-y%4*8&255;v.push((S>>>4).toString(16)),v.push((S&15).toString(16))}return v.join("")},parse:function(A){for(var x=A.length,_=[],v=0;v<x;v+=2)_[v>>>3]|=parseInt(A.substr(v,2),16)<<24-v%8*4;return new c.init(_,x/2)}},u=h.Latin1={stringify:function(A){for(var x=A.words,_=A.sigBytes,v=[],y=0;y<_;y++){var S=x[y>>>2]>>>24-y%4*8&255;v.push(String.fromCharCode(S))}return v.join("")},parse:function(A){for(var x=A.length,_=[],v=0;v<x;v++)_[v>>>2]|=(A.charCodeAt(v)&255)<<24-v%4*8;return new c.init(_,x)}},d=h.Utf8={stringify:function(A){try{return decodeURIComponent(escape(u.stringify(A)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(A){return u.parse(unescape(encodeURIComponent(A)))}},g=a.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(A){typeof A=="string"&&(A=d.parse(A)),this._data.concat(A),this._nDataBytes+=A.sigBytes},_process:function(A){var x,_=this._data,v=_.words,y=_.sigBytes,S=this.blockSize,C=S*4,M=y/C;A?M=e.ceil(M):M=e.max((M|0)-this._minBufferSize,0);var E=M*S,b=e.min(E*4,y);if(E){for(var w=0;w<E;w+=S)this._doProcessBlock(v,w);x=v.splice(0,E),_.sigBytes-=b}return new c.init(x,b)},clone:function(){var A=l.clone.call(this);return A._data=this._data.clone(),A},_minBufferSize:0}),m=a.Hasher=g.extend({cfg:l.extend(),init:function(A){this.cfg=this.cfg.extend(A),this.reset()},reset:function(){g.reset.call(this),this._doReset()},update:function(A){return this._append(A),this._process(),this},finalize:function(A){A&&this._append(A);var x=this._doFinalize();return x},blockSize:512/32,_createHelper:function(A){return function(x,_){return new A.init(_).finalize(x)}},_createHmacHelper:function(A){return function(x,_){return new p.HMAC.init(A,_).finalize(x)}}}),p=o.algo={};return o}(Math);return n})});var mr=Ke((wa,Zu)=>{(function(n,e){typeof wa=="object"?Zu.exports=wa=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(wa,function(n){return function(e){var t=n,i=t.lib,s=i.Base,r=i.WordArray,o=t.x64={},a=o.Word=s.extend({init:function(c,h){this.high=c,this.low=h}}),l=o.WordArray=s.extend({init:function(c,h){c=this.words=c||[],h!=e?this.sigBytes=h:this.sigBytes=c.length*8},toX32:function(){for(var c=this.words,h=c.length,f=[],u=0;u<h;u++){var d=c[u];f.push(d.high),f.push(d.low)}return r.create(f,this.sigBytes)},clone:function(){for(var c=s.clone.call(this),h=c.words=this.words.slice(0),f=h.length,u=0;u<f;u++)h[u]=h[u].clone();return c}})}(),n})});var $u=Ke((Ma,ju)=>{(function(n,e){typeof Ma=="object"?ju.exports=Ma=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ma,function(n){return function(){if(typeof ArrayBuffer=="function"){var e=n,t=e.lib,i=t.WordArray,s=i.init,r=i.init=function(o){if(o instanceof ArrayBuffer&&(o=new Uint8Array(o)),(o instanceof Int8Array||typeof Uint8ClampedArray<"u"&&o instanceof Uint8ClampedArray||o instanceof Int16Array||o instanceof Uint16Array||o instanceof Int32Array||o instanceof Uint32Array||o instanceof Float32Array||o instanceof Float64Array)&&(o=new Uint8Array(o.buffer,o.byteOffset,o.byteLength)),o instanceof Uint8Array){for(var a=o.byteLength,l=[],c=0;c<a;c++)l[c>>>2]|=o[c]<<24-c%4*8;s.call(this,l,a)}else s.apply(this,arguments)};r.prototype=i}}(),n.lib.WordArray})});var tf=Ke((Ta,ef)=>{(function(n,e){typeof Ta=="object"?ef.exports=Ta=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ta,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.enc,r=s.Utf16=s.Utf16BE={stringify:function(a){for(var l=a.words,c=a.sigBytes,h=[],f=0;f<c;f+=2){var u=l[f>>>2]>>>16-f%4*8&65535;h.push(String.fromCharCode(u))}return h.join("")},parse:function(a){for(var l=a.length,c=[],h=0;h<l;h++)c[h>>>1]|=a.charCodeAt(h)<<16-h%2*16;return i.create(c,l*2)}};s.Utf16LE={stringify:function(a){for(var l=a.words,c=a.sigBytes,h=[],f=0;f<c;f+=2){var u=o(l[f>>>2]>>>16-f%4*8&65535);h.push(String.fromCharCode(u))}return h.join("")},parse:function(a){for(var l=a.length,c=[],h=0;h<l;h++)c[h>>>1]|=o(a.charCodeAt(h)<<16-h%2*16);return i.create(c,l*2)}};function o(a){return a<<8&4278255360|a>>>8&16711935}}(),n.enc.Utf16})});var Ni=Ke((Ba,nf)=>{(function(n,e){typeof Ba=="object"?nf.exports=Ba=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ba,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.enc,r=s.Base64={stringify:function(a){var l=a.words,c=a.sigBytes,h=this._map;a.clamp();for(var f=[],u=0;u<c;u+=3)for(var d=l[u>>>2]>>>24-u%4*8&255,g=l[u+1>>>2]>>>24-(u+1)%4*8&255,m=l[u+2>>>2]>>>24-(u+2)%4*8&255,p=d<<16|g<<8|m,A=0;A<4&&u+A*.75<c;A++)f.push(h.charAt(p>>>6*(3-A)&63));var x=h.charAt(64);if(x)for(;f.length%4;)f.push(x);return f.join("")},parse:function(a){var l=a.length,c=this._map,h=this._reverseMap;if(!h){h=this._reverseMap=[];for(var f=0;f<c.length;f++)h[c.charCodeAt(f)]=f}var u=c.charAt(64);if(u){var d=a.indexOf(u);d!==-1&&(l=d)}return o(a,l,h)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function o(a,l,c){for(var h=[],f=0,u=0;u<l;u++)if(u%4){var d=c[a.charCodeAt(u-1)]<<u%4*2,g=c[a.charCodeAt(u)]>>>6-u%4*2,m=d|g;h[f>>>2]|=m<<24-f%4*8,f++}return i.create(h,f)}}(),n.enc.Base64})});var rf=Ke((Ra,sf)=>{(function(n,e){typeof Ra=="object"?sf.exports=Ra=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ra,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.enc,r=s.Base64url={stringify:function(a,l=!0){var c=a.words,h=a.sigBytes,f=l?this._safe_map:this._map;a.clamp();for(var u=[],d=0;d<h;d+=3)for(var g=c[d>>>2]>>>24-d%4*8&255,m=c[d+1>>>2]>>>24-(d+1)%4*8&255,p=c[d+2>>>2]>>>24-(d+2)%4*8&255,A=g<<16|m<<8|p,x=0;x<4&&d+x*.75<h;x++)u.push(f.charAt(A>>>6*(3-x)&63));var _=f.charAt(64);if(_)for(;u.length%4;)u.push(_);return u.join("")},parse:function(a,l=!0){var c=a.length,h=l?this._safe_map:this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var u=0;u<h.length;u++)f[h.charCodeAt(u)]=u}var d=h.charAt(64);if(d){var g=a.indexOf(d);g!==-1&&(c=g)}return o(a,c,f)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"};function o(a,l,c){for(var h=[],f=0,u=0;u<l;u++)if(u%4){var d=c[a.charCodeAt(u-1)]<<u%4*2,g=c[a.charCodeAt(u)]>>>6-u%4*2,m=d|g;h[f>>>2]|=m<<24-f%4*8,f++}return i.create(h,f)}}(),n.enc.Base64url})});var Oi=Ke((Da,af)=>{(function(n,e){typeof Da=="object"?af.exports=Da=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Da,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[];(function(){for(var d=0;d<64;d++)a[d]=e.abs(e.sin(d+1))*4294967296|0})();var l=o.MD5=r.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(d,g){for(var m=0;m<16;m++){var p=g+m,A=d[p];d[p]=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360}var x=this._hash.words,_=d[g+0],v=d[g+1],y=d[g+2],S=d[g+3],C=d[g+4],M=d[g+5],E=d[g+6],b=d[g+7],w=d[g+8],G=d[g+9],U=d[g+10],D=d[g+11],O=d[g+12],K=d[g+13],H=d[g+14],z=d[g+15],F=x[0],N=x[1],R=x[2],L=x[3];F=c(F,N,R,L,_,7,a[0]),L=c(L,F,N,R,v,12,a[1]),R=c(R,L,F,N,y,17,a[2]),N=c(N,R,L,F,S,22,a[3]),F=c(F,N,R,L,C,7,a[4]),L=c(L,F,N,R,M,12,a[5]),R=c(R,L,F,N,E,17,a[6]),N=c(N,R,L,F,b,22,a[7]),F=c(F,N,R,L,w,7,a[8]),L=c(L,F,N,R,G,12,a[9]),R=c(R,L,F,N,U,17,a[10]),N=c(N,R,L,F,D,22,a[11]),F=c(F,N,R,L,O,7,a[12]),L=c(L,F,N,R,K,12,a[13]),R=c(R,L,F,N,H,17,a[14]),N=c(N,R,L,F,z,22,a[15]),F=h(F,N,R,L,v,5,a[16]),L=h(L,F,N,R,E,9,a[17]),R=h(R,L,F,N,D,14,a[18]),N=h(N,R,L,F,_,20,a[19]),F=h(F,N,R,L,M,5,a[20]),L=h(L,F,N,R,U,9,a[21]),R=h(R,L,F,N,z,14,a[22]),N=h(N,R,L,F,C,20,a[23]),F=h(F,N,R,L,G,5,a[24]),L=h(L,F,N,R,H,9,a[25]),R=h(R,L,F,N,S,14,a[26]),N=h(N,R,L,F,w,20,a[27]),F=h(F,N,R,L,K,5,a[28]),L=h(L,F,N,R,y,9,a[29]),R=h(R,L,F,N,b,14,a[30]),N=h(N,R,L,F,O,20,a[31]),F=f(F,N,R,L,M,4,a[32]),L=f(L,F,N,R,w,11,a[33]),R=f(R,L,F,N,D,16,a[34]),N=f(N,R,L,F,H,23,a[35]),F=f(F,N,R,L,v,4,a[36]),L=f(L,F,N,R,C,11,a[37]),R=f(R,L,F,N,b,16,a[38]),N=f(N,R,L,F,U,23,a[39]),F=f(F,N,R,L,K,4,a[40]),L=f(L,F,N,R,_,11,a[41]),R=f(R,L,F,N,S,16,a[42]),N=f(N,R,L,F,E,23,a[43]),F=f(F,N,R,L,G,4,a[44]),L=f(L,F,N,R,O,11,a[45]),R=f(R,L,F,N,z,16,a[46]),N=f(N,R,L,F,y,23,a[47]),F=u(F,N,R,L,_,6,a[48]),L=u(L,F,N,R,b,10,a[49]),R=u(R,L,F,N,H,15,a[50]),N=u(N,R,L,F,M,21,a[51]),F=u(F,N,R,L,O,6,a[52]),L=u(L,F,N,R,S,10,a[53]),R=u(R,L,F,N,U,15,a[54]),N=u(N,R,L,F,v,21,a[55]),F=u(F,N,R,L,w,6,a[56]),L=u(L,F,N,R,z,10,a[57]),R=u(R,L,F,N,E,15,a[58]),N=u(N,R,L,F,K,21,a[59]),F=u(F,N,R,L,C,6,a[60]),L=u(L,F,N,R,D,10,a[61]),R=u(R,L,F,N,y,15,a[62]),N=u(N,R,L,F,G,21,a[63]),x[0]=x[0]+F|0,x[1]=x[1]+N|0,x[2]=x[2]+R|0,x[3]=x[3]+L|0},_doFinalize:function(){var d=this._data,g=d.words,m=this._nDataBytes*8,p=d.sigBytes*8;g[p>>>5]|=128<<24-p%32;var A=e.floor(m/4294967296),x=m;g[(p+64>>>9<<4)+15]=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360,g[(p+64>>>9<<4)+14]=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,d.sigBytes=(g.length+1)*4,this._process();for(var _=this._hash,v=_.words,y=0;y<4;y++){var S=v[y];v[y]=(S<<8|S>>>24)&16711935|(S<<24|S>>>8)&4278255360}return _},clone:function(){var d=r.clone.call(this);return d._hash=this._hash.clone(),d}});function c(d,g,m,p,A,x,_){var v=d+(g&m|~g&p)+A+_;return(v<<x|v>>>32-x)+g}function h(d,g,m,p,A,x,_){var v=d+(g&p|m&~p)+A+_;return(v<<x|v>>>32-x)+g}function f(d,g,m,p,A,x,_){var v=d+(g^m^p)+A+_;return(v<<x|v>>>32-x)+g}function u(d,g,m,p,A,x,_){var v=d+(m^(g|~p))+A+_;return(v<<x|v>>>32-x)+g}t.MD5=r._createHelper(l),t.HmacMD5=r._createHmacHelper(l)}(Math),n.MD5})});var Fa=Ke((La,of)=>{(function(n,e){typeof La=="object"?of.exports=La=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(La,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=t.Hasher,r=e.algo,o=[],a=r.SHA1=s.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(l,c){for(var h=this._hash.words,f=h[0],u=h[1],d=h[2],g=h[3],m=h[4],p=0;p<80;p++){if(p<16)o[p]=l[c+p]|0;else{var A=o[p-3]^o[p-8]^o[p-14]^o[p-16];o[p]=A<<1|A>>>31}var x=(f<<5|f>>>27)+m+o[p];p<20?x+=(u&d|~u&g)+1518500249:p<40?x+=(u^d^g)+1859775393:p<60?x+=(u&d|u&g|d&g)-1894007588:x+=(u^d^g)-899497514,m=g,g=d,d=u<<30|u>>>2,u=f,f=x}h[0]=h[0]+f|0,h[1]=h[1]+u|0,h[2]=h[2]+d|0,h[3]=h[3]+g|0,h[4]=h[4]+m|0},_doFinalize:function(){var l=this._data,c=l.words,h=this._nDataBytes*8,f=l.sigBytes*8;return c[f>>>5]|=128<<24-f%32,c[(f+64>>>9<<4)+14]=Math.floor(h/4294967296),c[(f+64>>>9<<4)+15]=h,l.sigBytes=c.length*4,this._process(),this._hash},clone:function(){var l=s.clone.call(this);return l._hash=this._hash.clone(),l}});e.SHA1=s._createHelper(a),e.HmacSHA1=s._createHmacHelper(a)}(),n.SHA1})});var Jc=Ke((Pa,cf)=>{(function(n,e){typeof Pa=="object"?cf.exports=Pa=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Pa,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[],l=[];(function(){function f(m){for(var p=e.sqrt(m),A=2;A<=p;A++)if(!(m%A))return!1;return!0}function u(m){return(m-(m|0))*4294967296|0}for(var d=2,g=0;g<64;)f(d)&&(g<8&&(a[g]=u(e.pow(d,1/2))),l[g]=u(e.pow(d,1/3)),g++),d++})();var c=[],h=o.SHA256=r.extend({_doReset:function(){this._hash=new s.init(a.slice(0))},_doProcessBlock:function(f,u){for(var d=this._hash.words,g=d[0],m=d[1],p=d[2],A=d[3],x=d[4],_=d[5],v=d[6],y=d[7],S=0;S<64;S++){if(S<16)c[S]=f[u+S]|0;else{var C=c[S-15],M=(C<<25|C>>>7)^(C<<14|C>>>18)^C>>>3,E=c[S-2],b=(E<<15|E>>>17)^(E<<13|E>>>19)^E>>>10;c[S]=M+c[S-7]+b+c[S-16]}var w=x&_^~x&v,G=g&m^g&p^m&p,U=(g<<30|g>>>2)^(g<<19|g>>>13)^(g<<10|g>>>22),D=(x<<26|x>>>6)^(x<<21|x>>>11)^(x<<7|x>>>25),O=y+D+w+l[S]+c[S],K=U+G;y=v,v=_,_=x,x=A+O|0,A=p,p=m,m=g,g=O+K|0}d[0]=d[0]+g|0,d[1]=d[1]+m|0,d[2]=d[2]+p|0,d[3]=d[3]+A|0,d[4]=d[4]+x|0,d[5]=d[5]+_|0,d[6]=d[6]+v|0,d[7]=d[7]+y|0},_doFinalize:function(){var f=this._data,u=f.words,d=this._nDataBytes*8,g=f.sigBytes*8;return u[g>>>5]|=128<<24-g%32,u[(g+64>>>9<<4)+14]=e.floor(d/4294967296),u[(g+64>>>9<<4)+15]=d,f.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var f=r.clone.call(this);return f._hash=this._hash.clone(),f}});t.SHA256=r._createHelper(h),t.HmacSHA256=r._createHmacHelper(h)}(Math),n.SHA256})});var hf=Ke((Ua,lf)=>{(function(n,e,t){typeof Ua=="object"?lf.exports=Ua=e(qe(),Jc()):typeof define=="function"&&define.amd?define(["./core","./sha256"],e):e(n.CryptoJS)})(Ua,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.algo,r=s.SHA256,o=s.SHA224=r.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=r._doFinalize.call(this);return a.sigBytes-=4,a}});e.SHA224=r._createHelper(o),e.HmacSHA224=r._createHmacHelper(o)}(),n.SHA224})});var Zc=Ke((Na,uf)=>{(function(n,e,t){typeof Na=="object"?uf.exports=Na=e(qe(),mr()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(n.CryptoJS)})(Na,function(n){return function(){var e=n,t=e.lib,i=t.Hasher,s=e.x64,r=s.Word,o=s.WordArray,a=e.algo;function l(){return r.create.apply(r,arguments)}var c=[l(1116352408,3609767458),l(1899447441,602891725),l(3049323471,3964484399),l(3921009573,2173295548),l(961987163,4081628472),l(1508970993,3053834265),l(2453635748,2937671579),l(2870763221,3664609560),l(3624381080,2734883394),l(310598401,1164996542),l(607225278,1323610764),l(1426881987,3590304994),l(1925078388,4068182383),l(2162078206,991336113),l(2614888103,633803317),l(3248222580,3479774868),l(3835390401,2666613458),l(4022224774,944711139),l(264347078,2341262773),l(604807628,2007800933),l(770255983,1495990901),l(1249150122,1856431235),l(1555081692,3175218132),l(1996064986,2198950837),l(2554220882,3999719339),l(2821834349,766784016),l(2952996808,2566594879),l(3210313671,3203337956),l(3336571891,1034457026),l(3584528711,2466948901),l(113926993,3758326383),l(338241895,168717936),l(666307205,1188179964),l(773529912,1546045734),l(1294757372,1522805485),l(1396182291,2643833823),l(1695183700,2343527390),l(1986661051,1014477480),l(2177026350,1206759142),l(2456956037,344077627),l(2730485921,1290863460),l(2820302411,3158454273),l(3259730800,3505952657),l(3345764771,106217008),l(3516065817,3606008344),l(3600352804,1432725776),l(4094571909,1467031594),l(275423344,851169720),l(430227734,3100823752),l(506948616,1363258195),l(659060556,3750685593),l(883997877,3785050280),l(958139571,3318307427),l(1322822218,3812723403),l(1537002063,2003034995),l(1747873779,3602036899),l(1955562222,1575990012),l(2024104815,1125592928),l(2227730452,2716904306),l(2361852424,442776044),l(2428436474,593698344),l(2756734187,3733110249),l(3204031479,2999351573),l(3329325298,3815920427),l(3391569614,3928383900),l(3515267271,566280711),l(3940187606,3454069534),l(4118630271,4000239992),l(116418474,1914138554),l(174292421,2731055270),l(289380356,3203993006),l(460393269,320620315),l(685471733,587496836),l(852142971,1086792851),l(1017036298,365543100),l(1126000580,2618297676),l(1288033470,3409855158),l(1501505948,4234509866),l(1607167915,987167468),l(1816402316,1246189591)],h=[];(function(){for(var u=0;u<80;u++)h[u]=l()})();var f=a.SHA512=i.extend({_doReset:function(){this._hash=new o.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(u,d){for(var g=this._hash.words,m=g[0],p=g[1],A=g[2],x=g[3],_=g[4],v=g[5],y=g[6],S=g[7],C=m.high,M=m.low,E=p.high,b=p.low,w=A.high,G=A.low,U=x.high,D=x.low,O=_.high,K=_.low,H=v.high,z=v.low,F=y.high,N=y.low,R=S.high,L=S.low,ne=C,ie=M,he=E,ae=b,we=w,xe=G,Ve=U,ft=D,Ce=O,V=K,lt=H,ve=z,Te=F,Se=N,$e=R,Ue=L,ye=0;ye<80;ye++){var Be,nt,dt=h[ye];if(ye<16)nt=dt.high=u[d+ye*2]|0,Be=dt.low=u[d+ye*2+1]|0;else{var B=h[ye-15],I=B.high,X=B.low,le=(I>>>1|X<<31)^(I>>>8|X<<24)^I>>>7,se=(X>>>1|I<<31)^(X>>>8|I<<24)^(X>>>7|I<<25),ce=h[ye-2],me=ce.high,oe=ce.low,Z=(me>>>19|oe<<13)^(me<<3|oe>>>29)^me>>>6,P=(oe>>>19|me<<13)^(oe<<3|me>>>29)^(oe>>>6|me<<26),ee=h[ye-7],ge=ee.high,ue=ee.low,Ae=h[ye-16],Re=Ae.high,He=Ae.low;Be=se+ue,nt=le+ge+(Be>>>0<se>>>0?1:0),Be=Be+P,nt=nt+Z+(Be>>>0<P>>>0?1:0),Be=Be+He,nt=nt+Re+(Be>>>0<He>>>0?1:0),dt.high=nt,dt.low=Be}var k=Ce&lt^~Ce&Te,fe=V&ve^~V&Se,J=ne&he^ne&we^he&we,re=ie&ae^ie&xe^ae&xe,de=(ne>>>28|ie<<4)^(ne<<30|ie>>>2)^(ne<<25|ie>>>7),Ne=(ie>>>28|ne<<4)^(ie<<30|ne>>>2)^(ie<<25|ne>>>7),Ze=(Ce>>>14|V<<18)^(Ce>>>18|V<<14)^(Ce<<23|V>>>9),rt=(V>>>14|Ce<<18)^(V>>>18|Ce<<14)^(V<<23|Ce>>>9),yn=c[ye],at=yn.high,Jt=yn.low,et=Ue+rt,Cn=$e+Ze+(et>>>0<Ue>>>0?1:0),et=et+fe,Cn=Cn+k+(et>>>0<fe>>>0?1:0),et=et+Jt,Cn=Cn+at+(et>>>0<Jt>>>0?1:0),et=et+Be,Cn=Cn+nt+(et>>>0<Be>>>0?1:0),dr=Ne+re,Vc=de+J+(dr>>>0<Ne>>>0?1:0);$e=Te,Ue=Se,Te=lt,Se=ve,lt=Ce,ve=V,V=ft+et|0,Ce=Ve+Cn+(V>>>0<ft>>>0?1:0)|0,Ve=we,ft=xe,we=he,xe=ae,he=ne,ae=ie,ie=et+dr|0,ne=Cn+Vc+(ie>>>0<et>>>0?1:0)|0}M=m.low=M+ie,m.high=C+ne+(M>>>0<ie>>>0?1:0),b=p.low=b+ae,p.high=E+he+(b>>>0<ae>>>0?1:0),G=A.low=G+xe,A.high=w+we+(G>>>0<xe>>>0?1:0),D=x.low=D+ft,x.high=U+Ve+(D>>>0<ft>>>0?1:0),K=_.low=K+V,_.high=O+Ce+(K>>>0<V>>>0?1:0),z=v.low=z+ve,v.high=H+lt+(z>>>0<ve>>>0?1:0),N=y.low=N+Se,y.high=F+Te+(N>>>0<Se>>>0?1:0),L=S.low=L+Ue,S.high=R+$e+(L>>>0<Ue>>>0?1:0)},_doFinalize:function(){var u=this._data,d=u.words,g=this._nDataBytes*8,m=u.sigBytes*8;d[m>>>5]|=128<<24-m%32,d[(m+128>>>10<<5)+30]=Math.floor(g/4294967296),d[(m+128>>>10<<5)+31]=g,u.sigBytes=d.length*4,this._process();var p=this._hash.toX32();return p},clone:function(){var u=i.clone.call(this);return u._hash=this._hash.clone(),u},blockSize:1024/32});e.SHA512=i._createHelper(f),e.HmacSHA512=i._createHmacHelper(f)}(),n.SHA512})});var df=Ke((Oa,ff)=>{(function(n,e,t){typeof Oa=="object"?ff.exports=Oa=e(qe(),mr(),Zc()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./sha512"],e):e(n.CryptoJS)})(Oa,function(n){return function(){var e=n,t=e.x64,i=t.Word,s=t.WordArray,r=e.algo,o=r.SHA512,a=r.SHA384=o.extend({_doReset:function(){this._hash=new s.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var l=o._doFinalize.call(this);return l.sigBytes-=16,l}});e.SHA384=o._createHelper(a),e.HmacSHA384=o._createHmacHelper(a)}(),n.SHA384})});var pf=Ke((ka,Af)=>{(function(n,e,t){typeof ka=="object"?Af.exports=ka=e(qe(),mr()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(n.CryptoJS)})(ka,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.x64,a=o.Word,l=t.algo,c=[],h=[],f=[];(function(){for(var g=1,m=0,p=0;p<24;p++){c[g+5*m]=(p+1)*(p+2)/2%64;var A=m%5,x=(2*g+3*m)%5;g=A,m=x}for(var g=0;g<5;g++)for(var m=0;m<5;m++)h[g+5*m]=m+(2*g+3*m)%5*5;for(var _=1,v=0;v<24;v++){for(var y=0,S=0,C=0;C<7;C++){if(_&1){var M=(1<<C)-1;M<32?S^=1<<M:y^=1<<M-32}_&128?_=_<<1^113:_<<=1}f[v]=a.create(y,S)}})();var u=[];(function(){for(var g=0;g<25;g++)u[g]=a.create()})();var d=l.SHA3=r.extend({cfg:r.cfg.extend({outputLength:512}),_doReset:function(){for(var g=this._state=[],m=0;m<25;m++)g[m]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(g,m){for(var p=this._state,A=this.blockSize/2,x=0;x<A;x++){var _=g[m+2*x],v=g[m+2*x+1];_=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360,v=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360;var y=p[x];y.high^=v,y.low^=_}for(var S=0;S<24;S++){for(var C=0;C<5;C++){for(var M=0,E=0,b=0;b<5;b++){var y=p[C+5*b];M^=y.high,E^=y.low}var w=u[C];w.high=M,w.low=E}for(var C=0;C<5;C++)for(var G=u[(C+4)%5],U=u[(C+1)%5],D=U.high,O=U.low,M=G.high^(D<<1|O>>>31),E=G.low^(O<<1|D>>>31),b=0;b<5;b++){var y=p[C+5*b];y.high^=M,y.low^=E}for(var K=1;K<25;K++){var M,E,y=p[K],H=y.high,z=y.low,F=c[K];F<32?(M=H<<F|z>>>32-F,E=z<<F|H>>>32-F):(M=z<<F-32|H>>>64-F,E=H<<F-32|z>>>64-F);var N=u[h[K]];N.high=M,N.low=E}var R=u[0],L=p[0];R.high=L.high,R.low=L.low;for(var C=0;C<5;C++)for(var b=0;b<5;b++){var K=C+5*b,y=p[K],ne=u[K],ie=u[(C+1)%5+5*b],he=u[(C+2)%5+5*b];y.high=ne.high^~ie.high&he.high,y.low=ne.low^~ie.low&he.low}var y=p[0],ae=f[S];y.high^=ae.high,y.low^=ae.low}},_doFinalize:function(){var g=this._data,m=g.words,p=this._nDataBytes*8,A=g.sigBytes*8,x=this.blockSize*32;m[A>>>5]|=1<<24-A%32,m[(e.ceil((A+1)/x)*x>>>5)-1]|=128,g.sigBytes=m.length*4,this._process();for(var _=this._state,v=this.cfg.outputLength/8,y=v/8,S=[],C=0;C<y;C++){var M=_[C],E=M.high,b=M.low;E=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,b=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360,S.push(b),S.push(E)}return new s.init(S,v)},clone:function(){for(var g=r.clone.call(this),m=g._state=this._state.slice(0),p=0;p<25;p++)m[p]=m[p].clone();return g}});t.SHA3=r._createHelper(d),t.HmacSHA3=r._createHmacHelper(d)}(Math),n.SHA3})});var mf=Ke((Qa,gf)=>{(function(n,e){typeof Qa=="object"?gf.exports=Qa=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Qa,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=s.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),l=s.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=s.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),h=s.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=s.create([0,1518500249,1859775393,2400959708,2840853838]),u=s.create([1352829926,1548603684,1836072691,2053994217,0]),d=o.RIPEMD160=r.extend({_doReset:function(){this._hash=s.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(v,y){for(var S=0;S<16;S++){var C=y+S,M=v[C];v[C]=(M<<8|M>>>24)&16711935|(M<<24|M>>>8)&4278255360}var E=this._hash.words,b=f.words,w=u.words,G=a.words,U=l.words,D=c.words,O=h.words,K,H,z,F,N,R,L,ne,ie,he;R=K=E[0],L=H=E[1],ne=z=E[2],ie=F=E[3],he=N=E[4];for(var ae,S=0;S<80;S+=1)ae=K+v[y+G[S]]|0,S<16?ae+=g(H,z,F)+b[0]:S<32?ae+=m(H,z,F)+b[1]:S<48?ae+=p(H,z,F)+b[2]:S<64?ae+=A(H,z,F)+b[3]:ae+=x(H,z,F)+b[4],ae=ae|0,ae=_(ae,D[S]),ae=ae+N|0,K=N,N=F,F=_(z,10),z=H,H=ae,ae=R+v[y+U[S]]|0,S<16?ae+=x(L,ne,ie)+w[0]:S<32?ae+=A(L,ne,ie)+w[1]:S<48?ae+=p(L,ne,ie)+w[2]:S<64?ae+=m(L,ne,ie)+w[3]:ae+=g(L,ne,ie)+w[4],ae=ae|0,ae=_(ae,O[S]),ae=ae+he|0,R=he,he=ie,ie=_(ne,10),ne=L,L=ae;ae=E[1]+z+ie|0,E[1]=E[2]+F+he|0,E[2]=E[3]+N+R|0,E[3]=E[4]+K+L|0,E[4]=E[0]+H+ne|0,E[0]=ae},_doFinalize:function(){var v=this._data,y=v.words,S=this._nDataBytes*8,C=v.sigBytes*8;y[C>>>5]|=128<<24-C%32,y[(C+64>>>9<<4)+14]=(S<<8|S>>>24)&16711935|(S<<24|S>>>8)&4278255360,v.sigBytes=(y.length+1)*4,this._process();for(var M=this._hash,E=M.words,b=0;b<5;b++){var w=E[b];E[b]=(w<<8|w>>>24)&16711935|(w<<24|w>>>8)&4278255360}return M},clone:function(){var v=r.clone.call(this);return v._hash=this._hash.clone(),v}});function g(v,y,S){return v^y^S}function m(v,y,S){return v&y|~v&S}function p(v,y,S){return(v|~y)^S}function A(v,y,S){return v&S|y&~S}function x(v,y,S){return v^(y|~S)}function _(v,y){return v<<y|v>>>32-y}t.RIPEMD160=r._createHelper(d),t.HmacRIPEMD160=r._createHmacHelper(d)}(Math),n.RIPEMD160})});var Ha=Ke((Ga,_f)=>{(function(n,e){typeof Ga=="object"?_f.exports=Ga=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ga,function(n){(function(){var e=n,t=e.lib,i=t.Base,s=e.enc,r=s.Utf8,o=e.algo,a=o.HMAC=i.extend({init:function(l,c){l=this._hasher=new l.init,typeof c=="string"&&(c=r.parse(c));var h=l.blockSize,f=h*4;c.sigBytes>f&&(c=l.finalize(c)),c.clamp();for(var u=this._oKey=c.clone(),d=this._iKey=c.clone(),g=u.words,m=d.words,p=0;p<h;p++)g[p]^=1549556828,m[p]^=909522486;u.sigBytes=d.sigBytes=f,this.reset()},reset:function(){var l=this._hasher;l.reset(),l.update(this._iKey)},update:function(l){return this._hasher.update(l),this},finalize:function(l){var c=this._hasher,h=c.finalize(l);c.reset();var f=c.finalize(this._oKey.clone().concat(h));return f}})})()})});var vf=Ke((za,xf)=>{(function(n,e,t){typeof za=="object"?xf.exports=za=e(qe(),Fa(),Ha()):typeof define=="function"&&define.amd?define(["./core","./sha1","./hmac"],e):e(n.CryptoJS)})(za,function(n){return function(){var e=n,t=e.lib,i=t.Base,s=t.WordArray,r=e.algo,o=r.SHA1,a=r.HMAC,l=r.PBKDF2=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:1}),init:function(c){this.cfg=this.cfg.extend(c)},compute:function(c,h){for(var f=this.cfg,u=a.create(f.hasher,c),d=s.create(),g=s.create([1]),m=d.words,p=g.words,A=f.keySize,x=f.iterations;m.length<A;){var _=u.update(h).finalize(g);u.reset();for(var v=_.words,y=v.length,S=_,C=1;C<x;C++){S=u.finalize(S),u.reset();for(var M=S.words,E=0;E<y;E++)v[E]^=M[E]}d.concat(_),p[0]++}return d.sigBytes=A*4,d}});e.PBKDF2=function(c,h,f){return l.create(f).compute(c,h)}}(),n.PBKDF2})});var ui=Ke((Va,Ef)=>{(function(n,e,t){typeof Va=="object"?Ef.exports=Va=e(qe(),Fa(),Ha()):typeof define=="function"&&define.amd?define(["./core","./sha1","./hmac"],e):e(n.CryptoJS)})(Va,function(n){return function(){var e=n,t=e.lib,i=t.Base,s=t.WordArray,r=e.algo,o=r.MD5,a=r.EvpKDF=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:1}),init:function(l){this.cfg=this.cfg.extend(l)},compute:function(l,c){for(var h,f=this.cfg,u=f.hasher.create(),d=s.create(),g=d.words,m=f.keySize,p=f.iterations;g.length<m;){h&&u.update(h),h=u.update(l).finalize(c),u.reset();for(var A=1;A<p;A++)h=u.finalize(h),u.reset();d.concat(h)}return d.sigBytes=m*4,d}});e.EvpKDF=function(l,c,h){return a.create(h).compute(l,c)}}(),n.EvpKDF})});var wt=Ke((Wa,yf)=>{(function(n,e,t){typeof Wa=="object"?yf.exports=Wa=e(qe(),ui()):typeof define=="function"&&define.amd?define(["./core","./evpkdf"],e):e(n.CryptoJS)})(Wa,function(n){n.lib.Cipher||function(e){var t=n,i=t.lib,s=i.Base,r=i.WordArray,o=i.BufferedBlockAlgorithm,a=t.enc,l=a.Utf8,c=a.Base64,h=t.algo,f=h.EvpKDF,u=i.Cipher=o.extend({cfg:s.extend(),createEncryptor:function(w,G){return this.create(this._ENC_XFORM_MODE,w,G)},createDecryptor:function(w,G){return this.create(this._DEC_XFORM_MODE,w,G)},init:function(w,G,U){this.cfg=this.cfg.extend(U),this._xformMode=w,this._key=G,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(w){return this._append(w),this._process()},finalize:function(w){w&&this._append(w);var G=this._doFinalize();return G},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function w(G){return typeof G=="string"?b:C}return function(G){return{encrypt:function(U,D,O){return w(D).encrypt(G,U,D,O)},decrypt:function(U,D,O){return w(D).decrypt(G,U,D,O)}}}}()}),d=i.StreamCipher=u.extend({_doFinalize:function(){var w=this._process(!0);return w},blockSize:1}),g=t.mode={},m=i.BlockCipherMode=s.extend({createEncryptor:function(w,G){return this.Encryptor.create(w,G)},createDecryptor:function(w,G){return this.Decryptor.create(w,G)},init:function(w,G){this._cipher=w,this._iv=G}}),p=g.CBC=function(){var w=m.extend();w.Encryptor=w.extend({processBlock:function(U,D){var O=this._cipher,K=O.blockSize;G.call(this,U,D,K),O.encryptBlock(U,D),this._prevBlock=U.slice(D,D+K)}}),w.Decryptor=w.extend({processBlock:function(U,D){var O=this._cipher,K=O.blockSize,H=U.slice(D,D+K);O.decryptBlock(U,D),G.call(this,U,D,K),this._prevBlock=H}});function G(U,D,O){var K,H=this._iv;H?(K=H,this._iv=e):K=this._prevBlock;for(var z=0;z<O;z++)U[D+z]^=K[z]}return w}(),A=t.pad={},x=A.Pkcs7={pad:function(w,G){for(var U=G*4,D=U-w.sigBytes%U,O=D<<24|D<<16|D<<8|D,K=[],H=0;H<D;H+=4)K.push(O);var z=r.create(K,D);w.concat(z)},unpad:function(w){var G=w.words[w.sigBytes-1>>>2]&255;w.sigBytes-=G}},_=i.BlockCipher=u.extend({cfg:u.cfg.extend({mode:p,padding:x}),reset:function(){var w;u.reset.call(this);var G=this.cfg,U=G.iv,D=G.mode;this._xformMode==this._ENC_XFORM_MODE?w=D.createEncryptor:(w=D.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==w?this._mode.init(this,U&&U.words):(this._mode=w.call(D,this,U&&U.words),this._mode.__creator=w)},_doProcessBlock:function(w,G){this._mode.processBlock(w,G)},_doFinalize:function(){var w,G=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(G.pad(this._data,this.blockSize),w=this._process(!0)):(w=this._process(!0),G.unpad(w)),w},blockSize:128/32}),v=i.CipherParams=s.extend({init:function(w){this.mixIn(w)},toString:function(w){return(w||this.formatter).stringify(this)}}),y=t.format={},S=y.OpenSSL={stringify:function(w){var G,U=w.ciphertext,D=w.salt;return D?G=r.create([1398893684,1701076831]).concat(D).concat(U):G=U,G.toString(c)},parse:function(w){var G,U=c.parse(w),D=U.words;return D[0]==1398893684&&D[1]==1701076831&&(G=r.create(D.slice(2,4)),D.splice(0,4),U.sigBytes-=16),v.create({ciphertext:U,salt:G})}},C=i.SerializableCipher=s.extend({cfg:s.extend({format:S}),encrypt:function(w,G,U,D){D=this.cfg.extend(D);var O=w.createEncryptor(U,D),K=O.finalize(G),H=O.cfg;return v.create({ciphertext:K,key:U,iv:H.iv,algorithm:w,mode:H.mode,padding:H.padding,blockSize:w.blockSize,formatter:D.format})},decrypt:function(w,G,U,D){D=this.cfg.extend(D),G=this._parse(G,D.format);var O=w.createDecryptor(U,D).finalize(G.ciphertext);return O},_parse:function(w,G){return typeof w=="string"?G.parse(w,this):w}}),M=t.kdf={},E=M.OpenSSL={execute:function(w,G,U,D){D||(D=r.random(64/8));var O=f.create({keySize:G+U}).compute(w,D),K=r.create(O.words.slice(G),U*4);return O.sigBytes=G*4,v.create({key:O,iv:K,salt:D})}},b=i.PasswordBasedCipher=C.extend({cfg:C.cfg.extend({kdf:E}),encrypt:function(w,G,U,D){D=this.cfg.extend(D);var O=D.kdf.execute(U,w.keySize,w.ivSize);D.iv=O.iv;var K=C.encrypt.call(this,w,G,O.key,D);return K.mixIn(O),K},decrypt:function(w,G,U,D){D=this.cfg.extend(D),G=this._parse(G,D.format);var O=D.kdf.execute(U,w.keySize,w.ivSize,G.salt);D.iv=O.iv;var K=C.decrypt.call(this,w,G,O.key,D);return K}})}()})});var Sf=Ke((Ka,Cf)=>{(function(n,e,t){typeof Ka=="object"?Cf.exports=Ka=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ka,function(n){return n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();e.Encryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize;t.call(this,i,s,o,r),this._prevBlock=i.slice(s,s+o)}}),e.Decryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize,a=i.slice(s,s+o);t.call(this,i,s,o,r),this._prevBlock=a}});function t(i,s,r,o){var a,l=this._iv;l?(a=l.slice(0),this._iv=void 0):a=this._prevBlock,o.encryptBlock(a,0);for(var c=0;c<r;c++)i[s+c]^=a[c]}return e}(),n.mode.CFB})});var If=Ke((qa,bf)=>{(function(n,e,t){typeof qa=="object"?bf.exports=qa=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(qa,function(n){return n.mode.CTR=function(){var e=n.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize,a=this._iv,l=this._counter;a&&(l=this._counter=a.slice(0),this._iv=void 0);var c=l.slice(0);r.encryptBlock(c,0),l[o-1]=l[o-1]+1|0;for(var h=0;h<o;h++)i[s+h]^=c[h]}});return e.Decryptor=t,e}(),n.mode.CTR})});var Mf=Ke((Xa,wf)=>{(function(n,e,t){typeof Xa=="object"?wf.exports=Xa=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Xa,function(n){return n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(r){if((r>>24&255)===255){var o=r>>16&255,a=r>>8&255,l=r&255;o===255?(o=0,a===255?(a=0,l===255?l=0:++l):++a):++o,r=0,r+=o<<16,r+=a<<8,r+=l}else r+=1<<24;return r}function i(r){return(r[0]=t(r[0]))===0&&(r[1]=t(r[1])),r}var s=e.Encryptor=e.extend({processBlock:function(r,o){var a=this._cipher,l=a.blockSize,c=this._iv,h=this._counter;c&&(h=this._counter=c.slice(0),this._iv=void 0),i(h);var f=h.slice(0);a.encryptBlock(f,0);for(var u=0;u<l;u++)r[o+u]^=f[u]}});return e.Decryptor=s,e}(),n.mode.CTRGladman})});var Bf=Ke((Ya,Tf)=>{(function(n,e,t){typeof Ya=="object"?Tf.exports=Ya=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ya,function(n){return n.mode.OFB=function(){var e=n.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize,a=this._iv,l=this._keystream;a&&(l=this._keystream=a.slice(0),this._iv=void 0),r.encryptBlock(l,0);for(var c=0;c<o;c++)i[s+c]^=l[c]}});return e.Decryptor=t,e}(),n.mode.OFB})});var Df=Ke((Ja,Rf)=>{(function(n,e,t){typeof Ja=="object"?Rf.exports=Ja=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ja,function(n){return n.mode.ECB=function(){var e=n.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(t,i){this._cipher.encryptBlock(t,i)}}),e.Decryptor=e.extend({processBlock:function(t,i){this._cipher.decryptBlock(t,i)}}),e}(),n.mode.ECB})});var Ff=Ke((Za,Lf)=>{(function(n,e,t){typeof Za=="object"?Lf.exports=Za=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Za,function(n){return n.pad.AnsiX923={pad:function(e,t){var i=e.sigBytes,s=t*4,r=s-i%s,o=i+r-1;e.clamp(),e.words[o>>>2]|=r<<24-o%4*8,e.sigBytes+=r},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},n.pad.Ansix923})});var Uf=Ke((ja,Pf)=>{(function(n,e,t){typeof ja=="object"?Pf.exports=ja=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(ja,function(n){return n.pad.Iso10126={pad:function(e,t){var i=t*4,s=i-e.sigBytes%i;e.concat(n.lib.WordArray.random(s-1)).concat(n.lib.WordArray.create([s<<24],1))},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},n.pad.Iso10126})});var Of=Ke(($a,Nf)=>{(function(n,e,t){typeof $a=="object"?Nf.exports=$a=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})($a,function(n){return n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971})});var Qf=Ke((eo,kf)=>{(function(n,e,t){typeof eo=="object"?kf.exports=eo=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(eo,function(n){return n.pad.ZeroPadding={pad:function(e,t){var i=t*4;e.clamp(),e.sigBytes+=i-(e.sigBytes%i||i)},unpad:function(e){for(var t=e.words,i=e.sigBytes-1,i=e.sigBytes-1;i>=0;i--)if(t[i>>>2]>>>24-i%4*8&255){e.sigBytes=i+1;break}}},n.pad.ZeroPadding})});var Hf=Ke((to,Gf)=>{(function(n,e,t){typeof to=="object"?Gf.exports=to=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(to,function(n){return n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding})});var Vf=Ke((no,zf)=>{(function(n,e,t){typeof no=="object"?zf.exports=no=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(no,function(n){return function(e){var t=n,i=t.lib,s=i.CipherParams,r=t.enc,o=r.Hex,a=t.format,l=a.Hex={stringify:function(c){return c.ciphertext.toString(o)},parse:function(c){var h=o.parse(c);return s.create({ciphertext:h})}}}(),n.format.Hex})});var Kf=Ke((io,Wf)=>{(function(n,e,t){typeof io=="object"?Wf.exports=io=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(io,function(n){return function(){var e=n,t=e.lib,i=t.BlockCipher,s=e.algo,r=[],o=[],a=[],l=[],c=[],h=[],f=[],u=[],d=[],g=[];(function(){for(var A=[],x=0;x<256;x++)x<128?A[x]=x<<1:A[x]=x<<1^283;for(var _=0,v=0,x=0;x<256;x++){var y=v^v<<1^v<<2^v<<3^v<<4;y=y>>>8^y&255^99,r[_]=y,o[y]=_;var S=A[_],C=A[S],M=A[C],E=A[y]*257^y*16843008;a[_]=E<<24|E>>>8,l[_]=E<<16|E>>>16,c[_]=E<<8|E>>>24,h[_]=E;var E=M*16843009^C*65537^S*257^_*16843008;f[y]=E<<24|E>>>8,u[y]=E<<16|E>>>16,d[y]=E<<8|E>>>24,g[y]=E,_?(_=S^A[A[A[M^S]]],v^=A[A[v]]):_=v=1}})();var m=[0,1,2,4,8,16,32,64,128,27,54],p=s.AES=i.extend({_doReset:function(){var A;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var x=this._keyPriorReset=this._key,_=x.words,v=x.sigBytes/4,y=this._nRounds=v+6,S=(y+1)*4,C=this._keySchedule=[],M=0;M<S;M++)M<v?C[M]=_[M]:(A=C[M-1],M%v?v>6&&M%v==4&&(A=r[A>>>24]<<24|r[A>>>16&255]<<16|r[A>>>8&255]<<8|r[A&255]):(A=A<<8|A>>>24,A=r[A>>>24]<<24|r[A>>>16&255]<<16|r[A>>>8&255]<<8|r[A&255],A^=m[M/v|0]<<24),C[M]=C[M-v]^A);for(var E=this._invKeySchedule=[],b=0;b<S;b++){var M=S-b;if(b%4)var A=C[M];else var A=C[M-4];b<4||M<=4?E[b]=A:E[b]=f[r[A>>>24]]^u[r[A>>>16&255]]^d[r[A>>>8&255]]^g[r[A&255]]}}},encryptBlock:function(A,x){this._doCryptBlock(A,x,this._keySchedule,a,l,c,h,r)},decryptBlock:function(A,x){var _=A[x+1];A[x+1]=A[x+3],A[x+3]=_,this._doCryptBlock(A,x,this._invKeySchedule,f,u,d,g,o);var _=A[x+1];A[x+1]=A[x+3],A[x+3]=_},_doCryptBlock:function(A,x,_,v,y,S,C,M){for(var E=this._nRounds,b=A[x]^_[0],w=A[x+1]^_[1],G=A[x+2]^_[2],U=A[x+3]^_[3],D=4,O=1;O<E;O++){var K=v[b>>>24]^y[w>>>16&255]^S[G>>>8&255]^C[U&255]^_[D++],H=v[w>>>24]^y[G>>>16&255]^S[U>>>8&255]^C[b&255]^_[D++],z=v[G>>>24]^y[U>>>16&255]^S[b>>>8&255]^C[w&255]^_[D++],F=v[U>>>24]^y[b>>>16&255]^S[w>>>8&255]^C[G&255]^_[D++];b=K,w=H,G=z,U=F}var K=(M[b>>>24]<<24|M[w>>>16&255]<<16|M[G>>>8&255]<<8|M[U&255])^_[D++],H=(M[w>>>24]<<24|M[G>>>16&255]<<16|M[U>>>8&255]<<8|M[b&255])^_[D++],z=(M[G>>>24]<<24|M[U>>>16&255]<<16|M[b>>>8&255]<<8|M[w&255])^_[D++],F=(M[U>>>24]<<24|M[b>>>16&255]<<16|M[w>>>8&255]<<8|M[G&255])^_[D++];A[x]=K,A[x+1]=H,A[x+2]=z,A[x+3]=F},keySize:256/32});e.AES=i._createHelper(p)}(),n.AES})});var Xf=Ke((so,qf)=>{(function(n,e,t){typeof so=="object"?qf.exports=so=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(so,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=t.BlockCipher,r=e.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=r.DES=s.extend({_doReset:function(){for(var m=this._key,p=m.words,A=[],x=0;x<56;x++){var _=o[x]-1;A[x]=p[_>>>5]>>>31-_%32&1}for(var v=this._subKeys=[],y=0;y<16;y++){for(var S=v[y]=[],C=l[y],x=0;x<24;x++)S[x/6|0]|=A[(a[x]-1+C)%28]<<31-x%6,S[4+(x/6|0)]|=A[28+(a[x+24]-1+C)%28]<<31-x%6;S[0]=S[0]<<1|S[0]>>>31;for(var x=1;x<7;x++)S[x]=S[x]>>>(x-1)*4+3;S[7]=S[7]<<5|S[7]>>>27}for(var M=this._invSubKeys=[],x=0;x<16;x++)M[x]=v[15-x]},encryptBlock:function(m,p){this._doCryptBlock(m,p,this._subKeys)},decryptBlock:function(m,p){this._doCryptBlock(m,p,this._invSubKeys)},_doCryptBlock:function(m,p,A){this._lBlock=m[p],this._rBlock=m[p+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var x=0;x<16;x++){for(var _=A[x],v=this._lBlock,y=this._rBlock,S=0,C=0;C<8;C++)S|=c[C][((y^_[C])&h[C])>>>0];this._lBlock=y,this._rBlock=v^S}var M=this._lBlock;this._lBlock=this._rBlock,this._rBlock=M,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),m[p]=this._lBlock,m[p+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function u(m,p){var A=(this._lBlock>>>m^this._rBlock)&p;this._rBlock^=A,this._lBlock^=A<<m}function d(m,p){var A=(this._rBlock>>>m^this._lBlock)&p;this._lBlock^=A,this._rBlock^=A<<m}e.DES=s._createHelper(f);var g=r.TripleDES=s.extend({_doReset:function(){var m=this._key,p=m.words;if(p.length!==2&&p.length!==4&&p.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var A=p.slice(0,2),x=p.length<4?p.slice(0,2):p.slice(2,4),_=p.length<6?p.slice(0,2):p.slice(4,6);this._des1=f.createEncryptor(i.create(A)),this._des2=f.createEncryptor(i.create(x)),this._des3=f.createEncryptor(i.create(_))},encryptBlock:function(m,p){this._des1.encryptBlock(m,p),this._des2.decryptBlock(m,p),this._des3.encryptBlock(m,p)},decryptBlock:function(m,p){this._des3.decryptBlock(m,p),this._des2.encryptBlock(m,p),this._des1.decryptBlock(m,p)},keySize:192/32,ivSize:64/32,blockSize:64/32});e.TripleDES=s._createHelper(g)}(),n.TripleDES})});var Jf=Ke((ro,Yf)=>{(function(n,e,t){typeof ro=="object"?Yf.exports=ro=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(ro,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,s=e.algo,r=s.RC4=i.extend({_doReset:function(){for(var l=this._key,c=l.words,h=l.sigBytes,f=this._S=[],u=0;u<256;u++)f[u]=u;for(var u=0,d=0;u<256;u++){var g=u%h,m=c[g>>>2]>>>24-g%4*8&255;d=(d+f[u]+m)%256;var p=f[u];f[u]=f[d],f[d]=p}this._i=this._j=0},_doProcessBlock:function(l,c){l[c]^=o.call(this)},keySize:256/32,ivSize:0});function o(){for(var l=this._S,c=this._i,h=this._j,f=0,u=0;u<4;u++){c=(c+1)%256,h=(h+l[c])%256;var d=l[c];l[c]=l[h],l[h]=d,f|=l[(l[c]+l[h])%256]<<24-u*8}return this._i=c,this._j=h,f}e.RC4=i._createHelper(r);var a=s.RC4Drop=r.extend({cfg:r.cfg.extend({drop:192}),_doReset:function(){r._doReset.call(this);for(var l=this.cfg.drop;l>0;l--)o.call(this)}});e.RC4Drop=i._createHelper(a)}(),n.RC4})});var jf=Ke((ao,Zf)=>{(function(n,e,t){typeof ao=="object"?Zf.exports=ao=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(ao,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,s=e.algo,r=[],o=[],a=[],l=s.Rabbit=i.extend({_doReset:function(){for(var h=this._key.words,f=this.cfg.iv,u=0;u<4;u++)h[u]=(h[u]<<8|h[u]>>>24)&16711935|(h[u]<<24|h[u]>>>8)&4278255360;var d=this._X=[h[0],h[3]<<16|h[2]>>>16,h[1],h[0]<<16|h[3]>>>16,h[2],h[1]<<16|h[0]>>>16,h[3],h[2]<<16|h[1]>>>16],g=this._C=[h[2]<<16|h[2]>>>16,h[0]&4294901760|h[1]&65535,h[3]<<16|h[3]>>>16,h[1]&4294901760|h[2]&65535,h[0]<<16|h[0]>>>16,h[2]&4294901760|h[3]&65535,h[1]<<16|h[1]>>>16,h[3]&4294901760|h[0]&65535];this._b=0;for(var u=0;u<4;u++)c.call(this);for(var u=0;u<8;u++)g[u]^=d[u+4&7];if(f){var m=f.words,p=m[0],A=m[1],x=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360,_=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360,v=x>>>16|_&4294901760,y=_<<16|x&65535;g[0]^=x,g[1]^=v,g[2]^=_,g[3]^=y,g[4]^=x,g[5]^=v,g[6]^=_,g[7]^=y;for(var u=0;u<4;u++)c.call(this)}},_doProcessBlock:function(h,f){var u=this._X;c.call(this),r[0]=u[0]^u[5]>>>16^u[3]<<16,r[1]=u[2]^u[7]>>>16^u[5]<<16,r[2]=u[4]^u[1]>>>16^u[7]<<16,r[3]=u[6]^u[3]>>>16^u[1]<<16;for(var d=0;d<4;d++)r[d]=(r[d]<<8|r[d]>>>24)&16711935|(r[d]<<24|r[d]>>>8)&4278255360,h[f+d]^=r[d]},blockSize:128/32,ivSize:64/32});function c(){for(var h=this._X,f=this._C,u=0;u<8;u++)o[u]=f[u];f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0<o[0]>>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0<o[1]>>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0<o[2]>>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0<o[3]>>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0<o[4]>>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0<o[5]>>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0<o[6]>>>0?1:0)|0,this._b=f[7]>>>0<o[7]>>>0?1:0;for(var u=0;u<8;u++){var d=h[u]+f[u],g=d&65535,m=d>>>16,p=((g*g>>>17)+g*m>>>15)+m*m,A=((d&4294901760)*d|0)+((d&65535)*d|0);a[u]=p^A}h[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,h[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,h[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,h[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,h[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,h[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,h[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,h[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=i._createHelper(l)}(),n.Rabbit})});var ed=Ke((oo,$f)=>{(function(n,e,t){typeof oo=="object"?$f.exports=oo=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(oo,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,s=e.algo,r=[],o=[],a=[],l=s.RabbitLegacy=i.extend({_doReset:function(){var h=this._key.words,f=this.cfg.iv,u=this._X=[h[0],h[3]<<16|h[2]>>>16,h[1],h[0]<<16|h[3]>>>16,h[2],h[1]<<16|h[0]>>>16,h[3],h[2]<<16|h[1]>>>16],d=this._C=[h[2]<<16|h[2]>>>16,h[0]&4294901760|h[1]&65535,h[3]<<16|h[3]>>>16,h[1]&4294901760|h[2]&65535,h[0]<<16|h[0]>>>16,h[2]&4294901760|h[3]&65535,h[1]<<16|h[1]>>>16,h[3]&4294901760|h[0]&65535];this._b=0;for(var g=0;g<4;g++)c.call(this);for(var g=0;g<8;g++)d[g]^=u[g+4&7];if(f){var m=f.words,p=m[0],A=m[1],x=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360,_=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360,v=x>>>16|_&4294901760,y=_<<16|x&65535;d[0]^=x,d[1]^=v,d[2]^=_,d[3]^=y,d[4]^=x,d[5]^=v,d[6]^=_,d[7]^=y;for(var g=0;g<4;g++)c.call(this)}},_doProcessBlock:function(h,f){var u=this._X;c.call(this),r[0]=u[0]^u[5]>>>16^u[3]<<16,r[1]=u[2]^u[7]>>>16^u[5]<<16,r[2]=u[4]^u[1]>>>16^u[7]<<16,r[3]=u[6]^u[3]>>>16^u[1]<<16;for(var d=0;d<4;d++)r[d]=(r[d]<<8|r[d]>>>24)&16711935|(r[d]<<24|r[d]>>>8)&4278255360,h[f+d]^=r[d]},blockSize:128/32,ivSize:64/32});function c(){for(var h=this._X,f=this._C,u=0;u<8;u++)o[u]=f[u];f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0<o[0]>>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0<o[1]>>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0<o[2]>>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0<o[3]>>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0<o[4]>>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0<o[5]>>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0<o[6]>>>0?1:0)|0,this._b=f[7]>>>0<o[7]>>>0?1:0;for(var u=0;u<8;u++){var d=h[u]+f[u],g=d&65535,m=d>>>16,p=((g*g>>>17)+g*m>>>15)+m*m,A=((d&4294901760)*d|0)+((d&65535)*d|0);a[u]=p^A}h[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,h[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,h[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,h[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,h[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,h[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,h[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,h[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=i._createHelper(l)}(),n.RabbitLegacy})});var nd=Ke((co,td)=>{(function(n,e,t){typeof co=="object"?td.exports=co=e(qe(),mr(),$u(),tf(),Ni(),rf(),Oi(),Fa(),Jc(),hf(),Zc(),df(),pf(),mf(),Ha(),vf(),ui(),wt(),Sf(),If(),Mf(),Bf(),Df(),Ff(),Uf(),Of(),Qf(),Hf(),Vf(),Kf(),Xf(),Jf(),jf(),ed()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./lib-typedarrays","./enc-utf16","./enc-base64","./enc-base64url","./md5","./sha1","./sha256","./sha224","./sha512","./sha384","./sha3","./ripemd160","./hmac","./pbkdf2","./evpkdf","./cipher-core","./mode-cfb","./mode-ctr","./mode-ctr-gladman","./mode-ofb","./mode-ecb","./pad-ansix923","./pad-iso10126","./pad-iso97971","./pad-zeropadding","./pad-nopadding","./format-hex","./aes","./tripledes","./rc4","./rabbit","./rabbit-legacy"],e):n.CryptoJS=e(n.CryptoJS)})(co,function(n){return n})});var pr=class{constructor(e){this.config=e}IsTokenExpired(){if(!this.config.EXPIRES)return!1;let e=this.config.EXPIRES;if(!e)return!0;let t=new Date().getTime(),s=new Date(e).getTime()-t;return e===""||s<=0}IsConfigExpired(){return this.LoadConfig(),!this.config.JWT||!this.config.ORGID}RequestOptions(e,t){return hi({method:e,headers:hi(hi({},{Accept:"application/json","Content-Type":"application/json"}),this.config.JWT&&{Authorization:this.config.JWT})},e==="POST"&&{body:JSON.stringify(t)})}Get(e){return it(this,null,function*(){return yield(yield fetch(this.config.HOST+e,this.RequestOptions("GET"))).json()})}Post(e,t){return it(this,null,function*(){return yield(yield fetch(this.config.HOST+e,this.RequestOptions("POST",t||{}))).json()})}StoreConfig(e){e.JWT&&(localStorage.setItem(`${this.config.STORE_PREFIX}jwtToken`,e.JWT),this.config.JWT=e.JWT),e.EXPIRES&&(localStorage.setItem(`${this.config.STORE_PREFIX}expires`,e.EXPIRES),this.config.EXPIRES=e.EXPIRES),e.ORGID&&(localStorage.setItem(`${this.config.STORE_PREFIX}orgId`,e.ORGID),this.config.ORGID=e.ORGID)}LoadConfig(){let e=localStorage.getItem(`${this.config.STORE_PREFIX}jwtToken`);e&&(this.config.JWT=e);let t=localStorage.getItem(`${this.config.STORE_PREFIX}orgId`);t&&(this.config.ORGID=t);let i=localStorage.getItem(`${this.config.STORE_PREFIX}expires`);return i&&(this.config.EXPIRES=i),this.config}};var Tg={storePrefix:"sprie-embed-",host:"https://api.sprie.io"},ba=Object.freeze(Tg);var Xu="0.1.2016";var As=class{constructor(e){this.isAuthenticated=!1,this.fetcher=e}Authenticate(e){return it(this,null,function*(){if(this.fetcher.LoadConfig(),console.log(this.fetcher.LoadConfig()),(this.fetcher.IsTokenExpired()||this.fetcher.IsConfigExpired())&&(yield this.AuthServiceApi(e)),this.isAuthenticated=!(this.fetcher.IsTokenExpired()&&this.fetcher.IsConfigExpired()),this.org=this.fetcher.config.ORGID,this.apiKey=e,!this.isAuthenticated)throw new Error("Sprie Authentication failed!")})}AuthServiceApi(e){return it(this,null,function*(){let t=`/v1/widget/auth?api=${e}`,i=yield this.fetcher.Get(t);if(!i.access||!i.orgId)throw new Error("SPRIE key Not Authorised");this.fetcher.StoreConfig(Ku(hi({},this.fetcher.config),{JWT:i.access,ORGID:i.orgId,EXPIRES:i.expires}))})}FetchAssetBySKUOrBarcode(e){return it(this,null,function*(){let t="/v1/widget/variants/";if(e.barcode)t+=`${e.barcode}`;else if(e.sku)t+=`${e.sku}`;else throw new Error("Need either sku or barcode.");return t+="?populate-customisation=true",yield this.fetcher.Get(t)})}FetchCustomisationList(){return it(this,null,function*(){let e="/v1/widget/list-customisation?search=type:Lens&limit=50";return yield this.fetcher.Get(e)})}DownloadMA(e){return it(this,null,function*(){try{let t=`/v1/widget/org/${e.orgId}/asset/${e.assetsId}/universal-full-encrypted`,i=yield this.fetcher.Get(t),s=`org/${e.orgId}/asset/${e.assetsId}`;if(!i)throw new Error("Failed to download model asset.");return{asset:i,decryptionKey:s}}catch(t){throw new Error("Failed to download model asset.")}})}HandleAssetUsage(e){return it(this,null,function*(){if(!this.fetcher.IsConfigExpired()&&e){let t={org:this.fetcher.config.ORGID,asset:e,timestamp:new Date().toISOString()},i="/v1/analytics/trigger";yield this.fetcher.Post(i,t)}})}};var Rg="SprieEmbedEvent";function gr(n,e){let t=`${Rg}:on${n}`,i=e?new CustomEvent(t,{detail:e}):new Event(t);document.dispatchEvent(i)}var Dg={AuthLoading:n=>gr("AuthLoading",n),AuthDone:()=>gr("AuthDone"),AuthErr:n=>gr("AuthErr",n),FetchingData:()=>gr("FetchingData"),EmbedLoaded:()=>gr("EmbedLoaded")},Sn=Dg;var yo=Mg(nd());function vs(n){let e=n.length;for(;--e>=0;)n[e]=0}var Lg=0,Gd=1,Fg=2,Pg=3,Ug=258,El=29,Dr=256,Sr=Dr+1+El,ms=30,yl=19,Hd=2*Sr+1,ki=15,jc=16,Ng=7,Cl=256,zd=16,Vd=17,Wd=18,fl=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),po=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Og=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Kd=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),kg=512,Yn=new Array((Sr+2)*2);vs(Yn);var Er=new Array(ms*2);vs(Er);var br=new Array(kg);vs(br);var Ir=new Array(Ug-Pg+1);vs(Ir);var Sl=new Array(El);vs(Sl);var go=new Array(ms);vs(go);function $c(n,e,t,i,s){this.static_tree=n,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=s,this.has_stree=n&&n.length}var qd,Xd,Yd;function el(n,e){this.dyn_tree=n,this.max_code=0,this.stat_desc=e}var Jd=n=>n<256?br[n]:br[256+(n>>>7)],wr=(n,e)=>{n.pending_buf[n.pending++]=e&255,n.pending_buf[n.pending++]=e>>>8&255},qt=(n,e,t)=>{n.bi_valid>jc-t?(n.bi_buf|=e<<n.bi_valid&65535,wr(n,n.bi_buf),n.bi_buf=e>>jc-n.bi_valid,n.bi_valid+=t-jc):(n.bi_buf|=e<<n.bi_valid&65535,n.bi_valid+=t)},Un=(n,e,t)=>{qt(n,t[e*2],t[e*2+1])},Zd=(n,e)=>{let t=0;do t|=n&1,n>>>=1,t<<=1;while(--e>0);return t>>>1},Qg=n=>{n.bi_valid===16?(wr(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},Gg=(n,e)=>{let t=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length,c,h,f,u,d,g,m=0;for(u=0;u<=ki;u++)n.bl_count[u]=0;for(t[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;c<Hd;c++)h=n.heap[c],u=t[t[h*2+1]*2+1]+1,u>l&&(u=l,m++),t[h*2+1]=u,!(h>i)&&(n.bl_count[u]++,d=0,h>=a&&(d=o[h-a]),g=t[h*2],n.opt_len+=g*(u+d),r&&(n.static_len+=g*(s[h*2+1]+d)));if(m!==0){do{for(u=l-1;n.bl_count[u]===0;)u--;n.bl_count[u]--,n.bl_count[u+1]+=2,n.bl_count[l]--,m-=2}while(m>0);for(u=l;u!==0;u--)for(h=n.bl_count[u];h!==0;)f=n.heap[--c],!(f>i)&&(t[f*2+1]!==u&&(n.opt_len+=(u-t[f*2+1])*t[f*2],t[f*2+1]=u),h--)}},jd=(n,e,t)=>{let i=new Array(ki+1),s=0,r,o;for(r=1;r<=ki;r++)s=s+t[r-1]<<1,i[r]=s;for(o=0;o<=e;o++){let a=n[o*2+1];a!==0&&(n[o*2]=Zd(i[a]++,a))}},Hg=()=>{let n,e,t,i,s,r=new Array(ki+1);for(t=0,i=0;i<El-1;i++)for(Sl[i]=t,n=0;n<1<<fl[i];n++)Ir[t++]=i;for(Ir[t-1]=i,s=0,i=0;i<16;i++)for(go[i]=s,n=0;n<1<<po[i];n++)br[s++]=i;for(s>>=7;i<ms;i++)for(go[i]=s<<7,n=0;n<1<<po[i]-7;n++)br[256+s++]=i;for(e=0;e<=ki;e++)r[e]=0;for(n=0;n<=143;)Yn[n*2+1]=8,n++,r[8]++;for(;n<=255;)Yn[n*2+1]=9,n++,r[9]++;for(;n<=279;)Yn[n*2+1]=7,n++,r[7]++;for(;n<=287;)Yn[n*2+1]=8,n++,r[8]++;for(jd(Yn,Sr+1,r),n=0;n<ms;n++)Er[n*2+1]=5,Er[n*2]=Zd(n,5);qd=new $c(Yn,fl,Dr+1,Sr,ki),Xd=new $c(Er,po,0,ms,ki),Yd=new $c(new Array(0),Og,0,yl,Ng)},$d=n=>{let e;for(e=0;e<Sr;e++)n.dyn_ltree[e*2]=0;for(e=0;e<ms;e++)n.dyn_dtree[e*2]=0;for(e=0;e<yl;e++)n.bl_tree[e*2]=0;n.dyn_ltree[Cl*2]=1,n.opt_len=n.static_len=0,n.sym_next=n.matches=0},eA=n=>{n.bi_valid>8?wr(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},id=(n,e,t,i)=>{let s=e*2,r=t*2;return n[s]<n[r]||n[s]===n[r]&&i[e]<=i[t]},tl=(n,e,t)=>{let i=n.heap[t],s=t<<1;for(;s<=n.heap_len&&(s<n.heap_len&&id(e,n.heap[s+1],n.heap[s],n.depth)&&s++,!id(e,i,n.heap[s],n.depth));)n.heap[t]=n.heap[s],t=s,s<<=1;n.heap[t]=i},sd=(n,e,t)=>{let i,s,r=0,o,a;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+r++]&255,i+=(n.pending_buf[n.sym_buf+r++]&255)<<8,s=n.pending_buf[n.sym_buf+r++],i===0?Un(n,s,e):(o=Ir[s],Un(n,o+Dr+1,e),a=fl[o],a!==0&&(s-=Sl[o],qt(n,s,a)),i--,o=Jd(i),Un(n,o,t),a=po[o],a!==0&&(i-=go[o],qt(n,i,a)));while(r<n.sym_next);Un(n,Cl,e)},dl=(n,e)=>{let t=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.elems,o,a,l=-1,c;for(n.heap_len=0,n.heap_max=Hd,o=0;o<r;o++)t[o*2]!==0?(n.heap[++n.heap_len]=l=o,n.depth[o]=0):t[o*2+1]=0;for(;n.heap_len<2;)c=n.heap[++n.heap_len]=l<2?++l:0,t[c*2]=1,n.depth[c]=0,n.opt_len--,s&&(n.static_len-=i[c*2+1]);for(e.max_code=l,o=n.heap_len>>1;o>=1;o--)tl(n,t,o);c=r;do o=n.heap[1],n.heap[1]=n.heap[n.heap_len--],tl(n,t,1),a=n.heap[1],n.heap[--n.heap_max]=o,n.heap[--n.heap_max]=a,t[c*2]=t[o*2]+t[a*2],n.depth[c]=(n.depth[o]>=n.depth[a]?n.depth[o]:n.depth[a])+1,t[o*2+1]=t[a*2+1]=c,n.heap[1]=c++,tl(n,t,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],Gg(n,e),jd(t,l,n.bl_count)},rd=(n,e,t)=>{let i,s=-1,r,o=e[0*2+1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)r=o,o=e[(i+1)*2+1],!(++a<l&&r===o)&&(a<c?n.bl_tree[r*2]+=a:r!==0?(r!==s&&n.bl_tree[r*2]++,n.bl_tree[zd*2]++):a<=10?n.bl_tree[Vd*2]++:n.bl_tree[Wd*2]++,a=0,s=r,o===0?(l=138,c=3):r===o?(l=6,c=3):(l=7,c=4))},ad=(n,e,t)=>{let i,s=-1,r,o=e[0*2+1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),i=0;i<=t;i++)if(r=o,o=e[(i+1)*2+1],!(++a<l&&r===o)){if(a<c)do Un(n,r,n.bl_tree);while(--a!==0);else r!==0?(r!==s&&(Un(n,r,n.bl_tree),a--),Un(n,zd,n.bl_tree),qt(n,a-3,2)):a<=10?(Un(n,Vd,n.bl_tree),qt(n,a-3,3)):(Un(n,Wd,n.bl_tree),qt(n,a-11,7));a=0,s=r,o===0?(l=138,c=3):r===o?(l=6,c=3):(l=7,c=4)}},zg=n=>{let e;for(rd(n,n.dyn_ltree,n.l_desc.max_code),rd(n,n.dyn_dtree,n.d_desc.max_code),dl(n,n.bl_desc),e=yl-1;e>=3&&n.bl_tree[Kd[e]*2+1]===0;e--);return n.opt_len+=3*(e+1)+5+5+4,e},Vg=(n,e,t,i)=>{let s;for(qt(n,e-257,5),qt(n,t-1,5),qt(n,i-4,4),s=0;s<i;s++)qt(n,n.bl_tree[Kd[s]*2+1],3);ad(n,n.dyn_ltree,e-1),ad(n,n.dyn_dtree,t-1)},Wg=n=>{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&n.dyn_ltree[t*2]!==0)return 0;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return 1;for(t=32;t<Dr;t++)if(n.dyn_ltree[t*2]!==0)return 1;return 0},od=!1,Kg=n=>{od||(Hg(),od=!0),n.l_desc=new el(n.dyn_ltree,qd),n.d_desc=new el(n.dyn_dtree,Xd),n.bl_desc=new el(n.bl_tree,Yd),n.bi_buf=0,n.bi_valid=0,$d(n)},tA=(n,e,t,i)=>{qt(n,(Lg<<1)+(i?1:0),3),eA(n),wr(n,t),wr(n,~t),t&&n.pending_buf.set(n.window.subarray(e,e+t),n.pending),n.pending+=t},qg=n=>{qt(n,Gd<<1,3),Un(n,Cl,Yn),Qg(n)},Xg=(n,e,t,i)=>{let s,r,o=0;n.level>0?(n.strm.data_type===2&&(n.strm.data_type=Wg(n)),dl(n,n.l_desc),dl(n,n.d_desc),o=zg(n),s=n.opt_len+3+7>>>3,r=n.static_len+3+7>>>3,r<=s&&(s=r)):s=r=t+5,t+4<=s&&e!==-1?tA(n,e,t,i):n.strategy===4||r===s?(qt(n,(Gd<<1)+(i?1:0),3),sd(n,Yn,Er)):(qt(n,(Fg<<1)+(i?1:0),3),Vg(n,n.l_desc.max_code+1,n.d_desc.max_code+1,o+1),sd(n,n.dyn_ltree,n.dyn_dtree)),$d(n),i&&eA(n)},Yg=(n,e,t)=>(n.pending_buf[n.sym_buf+n.sym_next++]=e,n.pending_buf[n.sym_buf+n.sym_next++]=e>>8,n.pending_buf[n.sym_buf+n.sym_next++]=t,e===0?n.dyn_ltree[t*2]++:(n.matches++,e--,n.dyn_ltree[(Ir[t]+Dr+1)*2]++,n.dyn_dtree[Jd(e)*2]++),n.sym_next===n.sym_end),Jg=Kg,Zg=tA,jg=Xg,$g=Yg,em=qg,tm={_tr_init:Jg,_tr_stored_block:Zg,_tr_flush_block:jg,_tr_tally:$g,_tr_align:em},nm=(n,e,t,i)=>{let s=n&65535|0,r=n>>>16&65535|0,o=0;for(;t!==0;){o=t>2e3?2e3:t,t-=o;do s=s+e[i++]|0,r=r+s|0;while(--o);s%=65521,r%=65521}return s|r<<16|0},Mr=nm,im=()=>{let n,e=[];for(var t=0;t<256;t++){n=t;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e},sm=new Uint32Array(im()),rm=(n,e,t,i)=>{let s=sm,r=i+t;n^=-1;for(let o=i;o<r;o++)n=n>>>8^s[(n^e[o])&255];return n^-1},Mt=rm,Hi={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Wi={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:am,_tr_stored_block:Al,_tr_flush_block:om,_tr_tally:Ai,_tr_align:cm}=tm,{Z_NO_FLUSH:pi,Z_PARTIAL_FLUSH:lm,Z_FULL_FLUSH:hm,Z_FINISH:ln,Z_BLOCK:cd,Z_OK:Ut,Z_STREAM_END:ld,Z_STREAM_ERROR:Nn,Z_DATA_ERROR:um,Z_BUF_ERROR:nl,Z_DEFAULT_COMPRESSION:fm,Z_FILTERED:dm,Z_HUFFMAN_ONLY:lo,Z_RLE:Am,Z_FIXED:pm,Z_DEFAULT_STRATEGY:gm,Z_UNKNOWN:mm,Z_DEFLATED:xo}=Wi,_m=9,xm=15,vm=8,Em=29,ym=256,pl=ym+1+Em,Cm=30,Sm=19,bm=2*pl+1,Im=15,Xe=3,di=258,On=di+Xe+1,wm=32,_s=42,bl=57,gl=69,ml=73,_l=91,xl=103,Qi=113,xr=666,Ht=1,Es=2,zi=3,ys=4,Mm=3,Gi=(n,e)=>(n.msg=Hi[e],e),hd=n=>n*2-(n>4?9:0),fi=n=>{let e=n.length;for(;--e>=0;)n[e]=0},Tm=n=>{let e,t,i,s=n.w_size;e=n.hash_size,i=e;do t=n.head[--i],n.head[i]=t>=s?t-s:0;while(--e);e=s,i=e;do t=n.prev[--i],n.prev[i]=t>=s?t-s:0;while(--e)},Bm=(n,e,t)=>(e<<n.hash_shift^t)&n.hash_mask,gi=Bm,jt=n=>{let e=n.state,t=e.pending;t>n.avail_out&&(t=n.avail_out),t!==0&&(n.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),n.next_out),n.next_out+=t,e.pending_out+=t,n.total_out+=t,n.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},$t=(n,e)=>{om(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,e),n.block_start=n.strstart,jt(n.strm)},je=(n,e)=>{n.pending_buf[n.pending++]=e},_r=(n,e)=>{n.pending_buf[n.pending++]=e>>>8&255,n.pending_buf[n.pending++]=e&255},vl=(n,e,t,i)=>{let s=n.avail_in;return s>i&&(s=i),s===0?0:(n.avail_in-=s,e.set(n.input.subarray(n.next_in,n.next_in+s),t),n.state.wrap===1?n.adler=Mr(n.adler,e,s,t):n.state.wrap===2&&(n.adler=Mt(n.adler,e,s,t)),n.next_in+=s,n.total_in+=s,s)},nA=(n,e)=>{let t=n.max_chain_length,i=n.strstart,s,r,o=n.prev_length,a=n.nice_match,l=n.strstart>n.w_size-On?n.strstart-(n.w_size-On):0,c=n.window,h=n.w_mask,f=n.prev,u=n.strstart+di,d=c[i+o-1],g=c[i+o];n.prev_length>=n.good_match&&(t>>=2),a>n.lookahead&&(a=n.lookahead);do if(s=e,!(c[s+o]!==g||c[s+o-1]!==d||c[s]!==c[i]||c[++s]!==c[i+1])){i+=2,s++;do;while(c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&i<u);if(r=di-(u-i),i=u-di,r>o){if(n.match_start=e,o=r,r>=a)break;d=c[i+o-1],g=c[i+o]}}while((e=f[e&h])>l&&--t!==0);return o<=n.lookahead?o:n.lookahead},xs=n=>{let e=n.w_size,t,i,s;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=e+(e-On)&&(n.window.set(n.window.subarray(e,e+e-i),0),n.match_start-=e,n.strstart-=e,n.block_start-=e,n.insert>n.strstart&&(n.insert=n.strstart),Tm(n),i+=e),n.strm.avail_in===0)break;if(t=vl(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=t,n.lookahead+n.insert>=Xe)for(s=n.strstart-n.insert,n.ins_h=n.window[s],n.ins_h=gi(n,n.ins_h,n.window[s+1]);n.insert&&(n.ins_h=gi(n,n.ins_h,n.window[s+Xe-1]),n.prev[s&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=s,s++,n.insert--,!(n.lookahead+n.insert<Xe)););}while(n.lookahead<On&&n.strm.avail_in!==0)},iA=(n,e)=>{let t=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,s,r,o=0,a=n.strm.avail_in;do{if(i=65535,r=n.bi_valid+42>>3,n.strm.avail_out<r||(r=n.strm.avail_out-r,s=n.strstart-n.block_start,i>s+n.strm.avail_in&&(i=s+n.strm.avail_in),i>r&&(i=r),i<t&&(i===0&&e!==ln||e===pi||i!==s+n.strm.avail_in)))break;o=e===ln&&i===s+n.strm.avail_in?1:0,Al(n,0,0,o),n.pending_buf[n.pending-4]=i,n.pending_buf[n.pending-3]=i>>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,jt(n.strm),s&&(s>i&&(s=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+s),n.strm.next_out),n.strm.next_out+=s,n.strm.avail_out-=s,n.strm.total_out+=s,n.block_start+=s,i-=s),i&&(vl(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(o===0);return a-=n.strm.avail_in,a&&(a>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=a&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-a,n.strm.next_in),n.strstart),n.strstart+=a,n.insert+=a>n.w_size-n.insert?n.w_size-n.insert:a),n.block_start=n.strstart),n.high_water<n.strstart&&(n.high_water=n.strstart),o?ys:e!==pi&&e!==ln&&n.strm.avail_in===0&&n.strstart===n.block_start?Es:(r=n.window_size-n.strstart,n.strm.avail_in>r&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,r+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),r>n.strm.avail_in&&(r=n.strm.avail_in),r&&(vl(n.strm,n.window,n.strstart,r),n.strstart+=r,n.insert+=r>n.w_size-n.insert?n.w_size-n.insert:r),n.high_water<n.strstart&&(n.high_water=n.strstart),r=n.bi_valid+42>>3,r=n.pending_buf_size-r>65535?65535:n.pending_buf_size-r,t=r>n.w_size?n.w_size:r,s=n.strstart-n.block_start,(s>=t||(s||e===ln)&&e!==pi&&n.strm.avail_in===0&&s<=r)&&(i=s>r?r:s,o=e===ln&&n.strm.avail_in===0&&i===s?1:0,Al(n,n.block_start,i,o),n.block_start+=i,jt(n.strm)),o?zi:Ht)},il=(n,e)=>{let t,i;for(;;){if(n.lookahead<On){if(xs(n),n.lookahead<On&&e===pi)return Ht;if(n.lookahead===0)break}if(t=0,n.lookahead>=Xe&&(n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),t!==0&&n.strstart-t<=n.w_size-On&&(n.match_length=nA(n,t)),n.match_length>=Xe)if(i=Ai(n,n.strstart-n.match_start,n.match_length-Xe),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=Xe){n.match_length--;do n.strstart++,n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=gi(n,n.ins_h,n.window[n.strstart+1]);else i=Ai(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&($t(n,!1),n.strm.avail_out===0))return Ht}return n.insert=n.strstart<Xe-1?n.strstart:Xe-1,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es},ps=(n,e)=>{let t,i,s;for(;;){if(n.lookahead<On){if(xs(n),n.lookahead<On&&e===pi)return Ht;if(n.lookahead===0)break}if(t=0,n.lookahead>=Xe&&(n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=Xe-1,t!==0&&n.prev_length<n.max_lazy_match&&n.strstart-t<=n.w_size-On&&(n.match_length=nA(n,t),n.match_length<=5&&(n.strategy===dm||n.match_length===Xe&&n.strstart-n.match_start>4096)&&(n.match_length=Xe-1)),n.prev_length>=Xe&&n.match_length<=n.prev_length){s=n.strstart+n.lookahead-Xe,i=Ai(n,n.strstart-1-n.prev_match,n.prev_length-Xe),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=s&&(n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=Xe-1,n.strstart++,i&&($t(n,!1),n.strm.avail_out===0))return Ht}else if(n.match_available){if(i=Ai(n,0,n.window[n.strstart-1]),i&&$t(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return Ht}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=Ai(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<Xe-1?n.strstart:Xe-1,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es},Rm=(n,e)=>{let t,i,s,r,o=n.window;for(;;){if(n.lookahead<=di){if(xs(n),n.lookahead<=di&&e===pi)return Ht;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=Xe&&n.strstart>0&&(s=n.strstart-1,i=o[s],i===o[++s]&&i===o[++s]&&i===o[++s])){r=n.strstart+di;do;while(i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&s<r);n.match_length=di-(r-s),n.match_length>n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=Xe?(t=Ai(n,1,n.match_length-Xe),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(t=Ai(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),t&&($t(n,!1),n.strm.avail_out===0))return Ht}return n.insert=0,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es},Dm=(n,e)=>{let t;for(;;){if(n.lookahead===0&&(xs(n),n.lookahead===0)){if(e===pi)return Ht;break}if(n.match_length=0,t=Ai(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,t&&($t(n,!1),n.strm.avail_out===0))return Ht}return n.insert=0,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es};function Pn(n,e,t,i,s){this.good_length=n,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=s}var vr=[new Pn(0,0,0,0,iA),new Pn(4,4,8,4,il),new Pn(4,5,16,8,il),new Pn(4,6,32,32,il),new Pn(4,4,16,16,ps),new Pn(8,16,32,32,ps),new Pn(8,16,128,128,ps),new Pn(8,32,128,256,ps),new Pn(32,128,258,1024,ps),new Pn(32,258,258,4096,ps)],Lm=n=>{n.window_size=2*n.w_size,fi(n.head),n.max_lazy_match=vr[n.level].max_lazy,n.good_match=vr[n.level].good_length,n.nice_match=vr[n.level].nice_length,n.max_chain_length=vr[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=Xe-1,n.match_available=0,n.ins_h=0};function Fm(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=xo,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(bm*2),this.dyn_dtree=new Uint16Array((2*Cm+1)*2),this.bl_tree=new Uint16Array((2*Sm+1)*2),fi(this.dyn_ltree),fi(this.dyn_dtree),fi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Im+1),this.heap=new Uint16Array(2*pl+1),fi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*pl+1),fi(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var Lr=n=>{if(!n)return 1;let e=n.state;return!e||e.strm!==n||e.status!==_s&&e.status!==bl&&e.status!==gl&&e.status!==ml&&e.status!==_l&&e.status!==xl&&e.status!==Qi&&e.status!==xr?1:0},sA=n=>{if(Lr(n))return Gi(n,Nn);n.total_in=n.total_out=0,n.data_type=mm;let e=n.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?bl:e.wrap?_s:Qi,n.adler=e.wrap===2?0:1,e.last_flush=-2,am(e),Ut},rA=n=>{let e=sA(n);return e===Ut&&Lm(n.state),e},Pm=(n,e)=>Lr(n)||n.state.wrap!==2?Nn:(n.state.gzhead=e,Ut),aA=(n,e,t,i,s,r)=>{if(!n)return Nn;let o=1;if(e===fm&&(e=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),s<1||s>_m||t!==xo||i<8||i>15||e<0||e>9||r<0||r>pm||i===8&&o!==1)return Gi(n,Nn);i===8&&(i=9);let a=new Fm;return n.state=a,a.strm=n,a.status=_s,a.wrap=o,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=s+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+Xe-1)/Xe),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<s+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=e,a.strategy=r,a.method=t,rA(n)},Um=(n,e)=>aA(n,e,xo,xm,vm,gm),Nm=(n,e)=>{if(Lr(n)||e>cd||e<0)return n?Gi(n,Nn):Nn;let t=n.state;if(!n.output||n.avail_in!==0&&!n.input||t.status===xr&&e!==ln)return Gi(n,n.avail_out===0?nl:Nn);let i=t.last_flush;if(t.last_flush=e,t.pending!==0){if(jt(n),n.avail_out===0)return t.last_flush=-1,Ut}else if(n.avail_in===0&&hd(e)<=hd(i)&&e!==ln)return Gi(n,nl);if(t.status===xr&&n.avail_in!==0)return Gi(n,nl);if(t.status===_s&&t.wrap===0&&(t.status=Qi),t.status===_s){let s=xo+(t.w_bits-8<<4)<<8,r=-1;if(t.strategy>=lo||t.level<2?r=0:t.level<6?r=1:t.level===6?r=2:r=3,s|=r<<6,t.strstart!==0&&(s|=wm),s+=31-s%31,_r(t,s),t.strstart!==0&&(_r(t,n.adler>>>16),_r(t,n.adler&65535)),n.adler=1,t.status=Qi,jt(n),t.pending!==0)return t.last_flush=-1,Ut}if(t.status===bl){if(n.adler=0,je(t,31),je(t,139),je(t,8),t.gzhead)je(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),je(t,t.gzhead.time&255),je(t,t.gzhead.time>>8&255),je(t,t.gzhead.time>>16&255),je(t,t.gzhead.time>>24&255),je(t,t.level===9?2:t.strategy>=lo||t.level<2?4:0),je(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(je(t,t.gzhead.extra.length&255),je(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(n.adler=Mt(n.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=gl;else if(je(t,0),je(t,0),je(t,0),je(t,0),je(t,0),je(t,t.level===9?2:t.strategy>=lo||t.level<2?4:0),je(t,Mm),t.status=Qi,jt(n),t.pending!==0)return t.last_flush=-1,Ut}if(t.status===gl){if(t.gzhead.extra){let s=t.pending,r=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+r>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex+=a,jt(n),t.pending!==0)return t.last_flush=-1,Ut;s=0,r-=a}let o=new Uint8Array(t.gzhead.extra);t.pending_buf.set(o.subarray(t.gzindex,t.gzindex+r),t.pending),t.pending+=r,t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=ml}if(t.status===ml){if(t.gzhead.name){let s=t.pending,r;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),jt(n),t.pending!==0)return t.last_flush=-1,Ut;s=0}t.gzindex<t.gzhead.name.length?r=t.gzhead.name.charCodeAt(t.gzindex++)&255:r=0,je(t,r)}while(r!==0);t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=_l}if(t.status===_l){if(t.gzhead.comment){let s=t.pending,r;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),jt(n),t.pending!==0)return t.last_flush=-1,Ut;s=0}t.gzindex<t.gzhead.comment.length?r=t.gzhead.comment.charCodeAt(t.gzindex++)&255:r=0,je(t,r)}while(r!==0);t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s))}t.status=xl}if(t.status===xl){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(jt(n),t.pending!==0))return t.last_flush=-1,Ut;je(t,n.adler&255),je(t,n.adler>>8&255),n.adler=0}if(t.status=Qi,jt(n),t.pending!==0)return t.last_flush=-1,Ut}if(n.avail_in!==0||t.lookahead!==0||e!==pi&&t.status!==xr){let s=t.level===0?iA(t,e):t.strategy===lo?Dm(t,e):t.strategy===Am?Rm(t,e):vr[t.level].func(t,e);if((s===zi||s===ys)&&(t.status=xr),s===Ht||s===zi)return n.avail_out===0&&(t.last_flush=-1),Ut;if(s===Es&&(e===lm?cm(t):e!==cd&&(Al(t,0,0,!1),e===hm&&(fi(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),jt(n),n.avail_out===0))return t.last_flush=-1,Ut}return e!==ln?Ut:t.wrap<=0?ld:(t.wrap===2?(je(t,n.adler&255),je(t,n.adler>>8&255),je(t,n.adler>>16&255),je(t,n.adler>>24&255),je(t,n.total_in&255),je(t,n.total_in>>8&255),je(t,n.total_in>>16&255),je(t,n.total_in>>24&255)):(_r(t,n.adler>>>16),_r(t,n.adler&65535)),jt(n),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?Ut:ld)},Om=n=>{if(Lr(n))return Nn;let e=n.state.status;return n.state=null,e===Qi?Gi(n,um):Ut},km=(n,e)=>{let t=e.length;if(Lr(n))return Nn;let i=n.state,s=i.wrap;if(s===2||s===1&&i.status!==_s||i.lookahead)return Nn;if(s===1&&(n.adler=Mr(n.adler,e,t,0)),i.wrap=0,t>=i.w_size){s===0&&(fi(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(e.subarray(t-i.w_size,t),0),e=l,t=i.w_size}let r=n.avail_in,o=n.next_in,a=n.input;for(n.avail_in=t,n.next_in=0,n.input=e,xs(i);i.lookahead>=Xe;){let l=i.strstart,c=i.lookahead-(Xe-1);do i.ins_h=gi(i,i.ins_h,i.window[l+Xe-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=Xe-1,xs(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=Xe-1,i.match_available=0,n.next_in=o,n.input=a,n.avail_in=r,i.wrap=s,Ut},Qm=Um,Gm=aA,Hm=rA,zm=sA,Vm=Pm,Wm=Nm,Km=Om,qm=km,Xm="pako deflate (from Nodeca project)",yr={deflateInit:Qm,deflateInit2:Gm,deflateReset:Hm,deflateResetKeep:zm,deflateSetHeader:Vm,deflate:Wm,deflateEnd:Km,deflateSetDictionary:qm,deflateInfo:Xm},Ym=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),Jm=function(n){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(!!t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let i in t)Ym(t,i)&&(n[i]=t[i])}}return n},Zm=n=>{let e=0;for(let i=0,s=n.length;i<s;i++)e+=n[i].length;let t=new Uint8Array(e);for(let i=0,s=0,r=n.length;i<r;i++){let o=n[i];t.set(o,s),s+=o.length}return t},vo={assign:Jm,flattenChunks:Zm},oA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{oA=!1}var Tr=new Uint8Array(256);for(let n=0;n<256;n++)Tr[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Tr[254]=Tr[254]=1;var jm=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let e,t,i,s,r,o=n.length,a=0;for(s=0;s<o;s++)t=n.charCodeAt(s),(t&64512)===55296&&s+1<o&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),s++)),a+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(a),r=0,s=0;r<a;s++)t=n.charCodeAt(s),(t&64512)===55296&&s+1<o&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),s++)),t<128?e[r++]=t:t<2048?(e[r++]=192|t>>>6,e[r++]=128|t&63):t<65536?(e[r++]=224|t>>>12,e[r++]=128|t>>>6&63,e[r++]=128|t&63):(e[r++]=240|t>>>18,e[r++]=128|t>>>12&63,e[r++]=128|t>>>6&63,e[r++]=128|t&63);return e},$m=(n,e)=>{if(e<65534&&n.subarray&&oA)return String.fromCharCode.apply(null,n.length===e?n:n.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(n[i]);return t},e_=(n,e)=>{let t=e||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,e));let i,s,r=new Array(t*2);for(s=0,i=0;i<t;){let o=n[i++];if(o<128){r[s++]=o;continue}let a=Tr[o];if(a>4){r[s++]=65533,i+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&i<t;)o=o<<6|n[i++]&63,a--;if(a>1){r[s++]=65533;continue}o<65536?r[s++]=o:(o-=65536,r[s++]=55296|o>>10&1023,r[s++]=56320|o&1023)}return $m(r,s)},t_=(n,e)=>{e=e||n.length,e>n.length&&(e=n.length);let t=e-1;for(;t>=0&&(n[t]&192)===128;)t--;return t<0||t===0?e:t+Tr[n[t]]>e?t:e},Br={string2buf:jm,buf2string:e_,utf8border:t_};function n_(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var cA=n_,lA=Object.prototype.toString,{Z_NO_FLUSH:i_,Z_SYNC_FLUSH:s_,Z_FULL_FLUSH:r_,Z_FINISH:a_,Z_OK:mo,Z_STREAM_END:o_,Z_DEFAULT_COMPRESSION:c_,Z_DEFAULT_STRATEGY:l_,Z_DEFLATED:h_}=Wi;function Fr(n){this.options=vo.assign({level:c_,method:h_,chunkSize:16384,windowBits:15,memLevel:8,strategy:l_},n||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new cA,this.strm.avail_out=0;let t=yr.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==mo)throw new Error(Hi[t]);if(e.header&&yr.deflateSetHeader(this.strm,e.header),e.dictionary){let i;if(typeof e.dictionary=="string"?i=Br.string2buf(e.dictionary):lA.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=yr.deflateSetDictionary(this.strm,i),t!==mo)throw new Error(Hi[t]);this._dict_set=!0}}Fr.prototype.push=function(n,e){let t=this.strm,i=this.options.chunkSize,s,r;if(this.ended)return!1;for(e===~~e?r=e:r=e===!0?a_:i_,typeof n=="string"?t.input=Br.string2buf(n):lA.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(r===s_||r===r_)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(s=yr.deflate(t,r),s===o_)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),s=yr.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===mo;if(t.avail_out===0){this.onData(t.output);continue}if(r>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};Fr.prototype.onData=function(n){this.chunks.push(n)};Fr.prototype.onEnd=function(n){n===mo&&(this.result=vo.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function Il(n,e){let t=new Fr(e);if(t.push(n,!0),t.err)throw t.msg||Hi[t.err];return t.result}function u_(n,e){return e=e||{},e.raw=!0,Il(n,e)}function f_(n,e){return e=e||{},e.gzip=!0,Il(n,e)}var d_=Fr,A_=Il,p_=u_,g_=f_,m_=Wi,__={Deflate:d_,deflate:A_,deflateRaw:p_,gzip:g_,constants:m_},ho=16209,x_=16191,v_=function(e,t){let i,s,r,o,a,l,c,h,f,u,d,g,m,p,A,x,_,v,y,S,C,M,E,b,w=e.state;i=e.next_in,E=e.input,s=i+(e.avail_in-5),r=e.next_out,b=e.output,o=r-(t-e.avail_out),a=r+(e.avail_out-257),l=w.dmax,c=w.wsize,h=w.whave,f=w.wnext,u=w.window,d=w.hold,g=w.bits,m=w.lencode,p=w.distcode,A=(1<<w.lenbits)-1,x=(1<<w.distbits)-1;e:do{g<15&&(d+=E[i++]<<g,g+=8,d+=E[i++]<<g,g+=8),_=m[d&A];t:for(;;){if(v=_>>>24,d>>>=v,g-=v,v=_>>>16&255,v===0)b[r++]=_&65535;else if(v&16){y=_&65535,v&=15,v&&(g<v&&(d+=E[i++]<<g,g+=8),y+=d&(1<<v)-1,d>>>=v,g-=v),g<15&&(d+=E[i++]<<g,g+=8,d+=E[i++]<<g,g+=8),_=p[d&x];n:for(;;){if(v=_>>>24,d>>>=v,g-=v,v=_>>>16&255,v&16){if(S=_&65535,v&=15,g<v&&(d+=E[i++]<<g,g+=8,g<v&&(d+=E[i++]<<g,g+=8)),S+=d&(1<<v)-1,S>l){e.msg="invalid distance too far back",w.mode=ho;break e}if(d>>>=v,g-=v,v=r-o,S>v){if(v=S-v,v>h&&w.sane){e.msg="invalid distance too far back",w.mode=ho;break e}if(C=0,M=u,f===0){if(C+=c-v,v<y){y-=v;do b[r++]=u[C++];while(--v);C=r-S,M=b}}else if(f<v){if(C+=c+f-v,v-=f,v<y){y-=v;do b[r++]=u[C++];while(--v);if(C=0,f<y){v=f,y-=v;do b[r++]=u[C++];while(--v);C=r-S,M=b}}}else if(C+=f-v,v<y){y-=v;do b[r++]=u[C++];while(--v);C=r-S,M=b}for(;y>2;)b[r++]=M[C++],b[r++]=M[C++],b[r++]=M[C++],y-=3;y&&(b[r++]=M[C++],y>1&&(b[r++]=M[C++]))}else{C=r-S;do b[r++]=b[C++],b[r++]=b[C++],b[r++]=b[C++],y-=3;while(y>2);y&&(b[r++]=b[C++],y>1&&(b[r++]=b[C++]))}}else if((v&64)===0){_=p[(_&65535)+(d&(1<<v)-1)];continue n}else{e.msg="invalid distance code",w.mode=ho;break e}break}}else if((v&64)===0){_=m[(_&65535)+(d&(1<<v)-1)];continue t}else if(v&32){w.mode=x_;break e}else{e.msg="invalid literal/length code",w.mode=ho;break e}break}}while(i<s&&r<a);y=g>>3,i-=y,g-=y<<3,d&=(1<<g)-1,e.next_in=i,e.next_out=r,e.avail_in=i<s?5+(s-i):5-(i-s),e.avail_out=r<a?257+(a-r):257-(r-a),w.hold=d,w.bits=g},gs=15,ud=852,fd=592,dd=0,sl=1,Ad=2,E_=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),y_=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),C_=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),S_=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),b_=(n,e,t,i,s,r,o,a)=>{let l=a.bits,c=0,h=0,f=0,u=0,d=0,g=0,m=0,p=0,A=0,x=0,_,v,y,S,C,M=null,E,b=new Uint16Array(gs+1),w=new Uint16Array(gs+1),G=null,U,D,O;for(c=0;c<=gs;c++)b[c]=0;for(h=0;h<i;h++)b[e[t+h]]++;for(d=l,u=gs;u>=1&&b[u]===0;u--);if(d>u&&(d=u),u===0)return s[r++]=1<<24|64<<16|0,s[r++]=1<<24|64<<16|0,a.bits=1,0;for(f=1;f<u&&b[f]===0;f++);for(d<f&&(d=f),p=1,c=1;c<=gs;c++)if(p<<=1,p-=b[c],p<0)return-1;if(p>0&&(n===dd||u!==1))return-1;for(w[1]=0,c=1;c<gs;c++)w[c+1]=w[c]+b[c];for(h=0;h<i;h++)e[t+h]!==0&&(o[w[e[t+h]]++]=h);if(n===dd?(M=G=o,E=20):n===sl?(M=E_,G=y_,E=257):(M=C_,G=S_,E=0),x=0,h=0,c=f,C=r,g=d,m=0,y=-1,A=1<<d,S=A-1,n===sl&&A>ud||n===Ad&&A>fd)return 1;for(;;){U=c-m,o[h]+1<E?(D=0,O=o[h]):o[h]>=E?(D=G[o[h]-E],O=M[o[h]-E]):(D=32+64,O=0),_=1<<c-m,v=1<<g,f=v;do v-=_,s[C+(x>>m)+v]=U<<24|D<<16|O|0;while(v!==0);for(_=1<<c-1;x&_;)_>>=1;if(_!==0?(x&=_-1,x+=_):x=0,h++,--b[c]===0){if(c===u)break;c=e[t+o[h]]}if(c>d&&(x&S)!==y){for(m===0&&(m=d),C+=f,g=c-m,p=1<<g;g+m<u&&(p-=b[g+m],!(p<=0));)g++,p<<=1;if(A+=1<<g,n===sl&&A>ud||n===Ad&&A>fd)return 1;y=x&S,s[y]=d<<24|g<<16|C-r|0}}return x!==0&&(s[C+x]=c-m<<24|64<<16|0),a.bits=d,0},Cr=b_,I_=0,hA=1,uA=2,{Z_FINISH:pd,Z_BLOCK:w_,Z_TREES:uo,Z_OK:Vi,Z_STREAM_END:M_,Z_NEED_DICT:T_,Z_STREAM_ERROR:hn,Z_DATA_ERROR:fA,Z_MEM_ERROR:dA,Z_BUF_ERROR:B_,Z_DEFLATED:gd}=Wi,Eo=16180,md=16181,_d=16182,xd=16183,vd=16184,Ed=16185,yd=16186,Cd=16187,Sd=16188,bd=16189,_o=16190,Xn=16191,rl=16192,Id=16193,al=16194,wd=16195,Md=16196,Td=16197,Bd=16198,fo=16199,Ao=16200,Rd=16201,Dd=16202,Ld=16203,Fd=16204,Pd=16205,ol=16206,Ud=16207,Nd=16208,ht=16209,AA=16210,pA=16211,R_=852,D_=592,L_=15,F_=L_,Od=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function P_(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Ki=n=>{if(!n)return 1;let e=n.state;return!e||e.strm!==n||e.mode<Eo||e.mode>pA?1:0},gA=n=>{if(Ki(n))return hn;let e=n.state;return n.total_in=n.total_out=e.total=0,n.msg="",e.wrap&&(n.adler=e.wrap&1),e.mode=Eo,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(R_),e.distcode=e.distdyn=new Int32Array(D_),e.sane=1,e.back=-1,Vi},mA=n=>{if(Ki(n))return hn;let e=n.state;return e.wsize=0,e.whave=0,e.wnext=0,gA(n)},_A=(n,e)=>{let t;if(Ki(n))return hn;let i=n.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?hn:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,mA(n))},xA=(n,e)=>{if(!n)return hn;let t=new P_;n.state=t,t.strm=n,t.window=null,t.mode=Eo;let i=_A(n,e);return i!==Vi&&(n.state=null),i},U_=n=>xA(n,F_),kd=!0,cl,ll,N_=n=>{if(kd){cl=new Int32Array(512),ll=new Int32Array(32);let e=0;for(;e<144;)n.lens[e++]=8;for(;e<256;)n.lens[e++]=9;for(;e<280;)n.lens[e++]=7;for(;e<288;)n.lens[e++]=8;for(Cr(hA,n.lens,0,288,cl,0,n.work,{bits:9}),e=0;e<32;)n.lens[e++]=5;Cr(uA,n.lens,0,32,ll,0,n.work,{bits:5}),kd=!1}n.lencode=cl,n.lenbits=9,n.distcode=ll,n.distbits=5},vA=(n,e,t,i)=>{let s,r=n.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>i&&(s=i),r.window.set(e.subarray(t-i,t-i+s),r.wnext),i-=s,i?(r.window.set(e.subarray(t-i,t),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0},O_=(n,e)=>{let t,i,s,r,o,a,l,c,h,f,u,d,g,m,p=0,A,x,_,v,y,S,C,M,E=new Uint8Array(4),b,w,G=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ki(n)||!n.output||!n.input&&n.avail_in!==0)return hn;t=n.state,t.mode===Xn&&(t.mode=rl),o=n.next_out,s=n.output,l=n.avail_out,r=n.next_in,i=n.input,a=n.avail_in,c=t.hold,h=t.bits,f=a,u=l,M=Vi;e:for(;;)switch(t.mode){case Eo:if(t.wrap===0){t.mode=rl;break}for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.wrap&2&&c===35615){t.wbits===0&&(t.wbits=15),t.check=0,E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0),c=0,h=0,t.mode=md;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg="incorrect header check",t.mode=ht;break}if((c&15)!==gd){n.msg="unknown compression method",t.mode=ht;break}if(c>>>=4,h-=4,C=(c&15)+8,t.wbits===0&&(t.wbits=C),C>15||C>t.wbits){n.msg="invalid window size",t.mode=ht;break}t.dmax=1<<t.wbits,t.flags=0,n.adler=t.check=1,t.mode=c&512?bd:Xn,c=0,h=0;break;case md:for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.flags=c,(t.flags&255)!==gd){n.msg="unknown compression method",t.mode=ht;break}if(t.flags&57344){n.msg="unknown header flags set",t.mode=ht;break}t.head&&(t.head.text=c>>8&1),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0)),c=0,h=0,t.mode=_d;case _d:for(;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.head&&(t.head.time=c),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,E[2]=c>>>16&255,E[3]=c>>>24&255,t.check=Mt(t.check,E,4,0)),c=0,h=0,t.mode=xd;case xd:for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.head&&(t.head.xflags=c&255,t.head.os=c>>8),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0)),c=0,h=0,t.mode=vd;case vd:if(t.flags&1024){for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.length=c,t.head&&(t.head.extra_len=c),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0)),c=0,h=0}else t.head&&(t.head.extra=null);t.mode=Ed;case Ed:if(t.flags&1024&&(d=t.length,d>a&&(d=a),d&&(t.head&&(C=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(r,r+d),C)),t.flags&512&&t.wrap&4&&(t.check=Mt(t.check,i,d,r)),a-=d,r+=d,t.length-=d),t.length))break e;t.length=0,t.mode=yd;case yd:if(t.flags&2048){if(a===0)break e;d=0;do C=i[r+d++],t.head&&C&&t.length<65536&&(t.head.name+=String.fromCharCode(C));while(C&&d<a);if(t.flags&512&&t.wrap&4&&(t.check=Mt(t.check,i,d,r)),a-=d,r+=d,C)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=Cd;case Cd:if(t.flags&4096){if(a===0)break e;d=0;do C=i[r+d++],t.head&&C&&t.length<65536&&(t.head.comment+=String.fromCharCode(C));while(C&&d<a);if(t.flags&512&&t.wrap&4&&(t.check=Mt(t.check,i,d,r)),a-=d,r+=d,C)break e}else t.head&&(t.head.comment=null);t.mode=Sd;case Sd:if(t.flags&512){for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.wrap&4&&c!==(t.check&65535)){n.msg="header crc mismatch",t.mode=ht;break}c=0,h=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),n.adler=t.check=0,t.mode=Xn;break;case bd:for(;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}n.adler=t.check=Od(c),c=0,h=0,t.mode=_o;case _o:if(t.havedict===0)return n.next_out=o,n.avail_out=l,n.next_in=r,n.avail_in=a,t.hold=c,t.bits=h,T_;n.adler=t.check=1,t.mode=Xn;case Xn:if(e===w_||e===uo)break e;case rl:if(t.last){c>>>=h&7,h-=h&7,t.mode=ol;break}for(;h<3;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}switch(t.last=c&1,c>>>=1,h-=1,c&3){case 0:t.mode=Id;break;case 1:if(N_(t),t.mode=fo,e===uo){c>>>=2,h-=2;break e}break;case 2:t.mode=Md;break;case 3:n.msg="invalid block type",t.mode=ht}c>>>=2,h-=2;break;case Id:for(c>>>=h&7,h-=h&7;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if((c&65535)!==(c>>>16^65535)){n.msg="invalid stored block lengths",t.mode=ht;break}if(t.length=c&65535,c=0,h=0,t.mode=al,e===uo)break e;case al:t.mode=wd;case wd:if(d=t.length,d){if(d>a&&(d=a),d>l&&(d=l),d===0)break e;s.set(i.subarray(r,r+d),o),a-=d,r+=d,l-=d,o+=d,t.length-=d;break}t.mode=Xn;break;case Md:for(;h<14;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.nlen=(c&31)+257,c>>>=5,h-=5,t.ndist=(c&31)+1,c>>>=5,h-=5,t.ncode=(c&15)+4,c>>>=4,h-=4,t.nlen>286||t.ndist>30){n.msg="too many length or distance symbols",t.mode=ht;break}t.have=0,t.mode=Td;case Td:for(;t.have<t.ncode;){for(;h<3;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.lens[G[t.have++]]=c&7,c>>>=3,h-=3}for(;t.have<19;)t.lens[G[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,b={bits:t.lenbits},M=Cr(I_,t.lens,0,19,t.lencode,0,t.work,b),t.lenbits=b.bits,M){n.msg="invalid code lengths set",t.mode=ht;break}t.have=0,t.mode=Bd;case Bd:for(;t.have<t.nlen+t.ndist;){for(;p=t.lencode[c&(1<<t.lenbits)-1],A=p>>>24,x=p>>>16&255,_=p&65535,!(A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(_<16)c>>>=A,h-=A,t.lens[t.have++]=_;else{if(_===16){for(w=A+2;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(c>>>=A,h-=A,t.have===0){n.msg="invalid bit length repeat",t.mode=ht;break}C=t.lens[t.have-1],d=3+(c&3),c>>>=2,h-=2}else if(_===17){for(w=A+3;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=A,h-=A,C=0,d=3+(c&7),c>>>=3,h-=3}else{for(w=A+7;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=A,h-=A,C=0,d=11+(c&127),c>>>=7,h-=7}if(t.have+d>t.nlen+t.ndist){n.msg="invalid bit length repeat",t.mode=ht;break}for(;d--;)t.lens[t.have++]=C}}if(t.mode===ht)break;if(t.lens[256]===0){n.msg="invalid code -- missing end-of-block",t.mode=ht;break}if(t.lenbits=9,b={bits:t.lenbits},M=Cr(hA,t.lens,0,t.nlen,t.lencode,0,t.work,b),t.lenbits=b.bits,M){n.msg="invalid literal/lengths set",t.mode=ht;break}if(t.distbits=6,t.distcode=t.distdyn,b={bits:t.distbits},M=Cr(uA,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,b),t.distbits=b.bits,M){n.msg="invalid distances set",t.mode=ht;break}if(t.mode=fo,e===uo)break e;case fo:t.mode=Ao;case Ao:if(a>=6&&l>=258){n.next_out=o,n.avail_out=l,n.next_in=r,n.avail_in=a,t.hold=c,t.bits=h,v_(n,u),o=n.next_out,s=n.output,l=n.avail_out,r=n.next_in,i=n.input,a=n.avail_in,c=t.hold,h=t.bits,t.mode===Xn&&(t.back=-1);break}for(t.back=0;p=t.lencode[c&(1<<t.lenbits)-1],A=p>>>24,x=p>>>16&255,_=p&65535,!(A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(x&&(x&240)===0){for(v=A,y=x,S=_;p=t.lencode[S+((c&(1<<v+y)-1)>>v)],A=p>>>24,x=p>>>16&255,_=p&65535,!(v+A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=v,h-=v,t.back+=v}if(c>>>=A,h-=A,t.back+=A,t.length=_,x===0){t.mode=Pd;break}if(x&32){t.back=-1,t.mode=Xn;break}if(x&64){n.msg="invalid literal/length code",t.mode=ht;break}t.extra=x&15,t.mode=Rd;case Rd:if(t.extra){for(w=t.extra;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.length+=c&(1<<t.extra)-1,c>>>=t.extra,h-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=Dd;case Dd:for(;p=t.distcode[c&(1<<t.distbits)-1],A=p>>>24,x=p>>>16&255,_=p&65535,!(A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if((x&240)===0){for(v=A,y=x,S=_;p=t.distcode[S+((c&(1<<v+y)-1)>>v)],A=p>>>24,x=p>>>16&255,_=p&65535,!(v+A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=v,h-=v,t.back+=v}if(c>>>=A,h-=A,t.back+=A,x&64){n.msg="invalid distance code",t.mode=ht;break}t.offset=_,t.extra=x&15,t.mode=Ld;case Ld:if(t.extra){for(w=t.extra;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.offset+=c&(1<<t.extra)-1,c>>>=t.extra,h-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){n.msg="invalid distance too far back",t.mode=ht;break}t.mode=Fd;case Fd:if(l===0)break e;if(d=u-l,t.offset>d){if(d=t.offset-d,d>t.whave&&t.sane){n.msg="invalid distance too far back",t.mode=ht;break}d>t.wnext?(d-=t.wnext,g=t.wsize-d):g=t.wnext-d,d>t.length&&(d=t.length),m=t.window}else m=s,g=o-t.offset,d=t.length;d>l&&(d=l),l-=d,t.length-=d;do s[o++]=m[g++];while(--d);t.length===0&&(t.mode=Ao);break;case Pd:if(l===0)break e;s[o++]=t.length,l--,t.mode=Ao;break;case ol:if(t.wrap){for(;h<32;){if(a===0)break e;a--,c|=i[r++]<<h,h+=8}if(u-=l,n.total_out+=u,t.total+=u,t.wrap&4&&u&&(n.adler=t.check=t.flags?Mt(t.check,s,u,o-u):Mr(t.check,s,u,o-u)),u=l,t.wrap&4&&(t.flags?c:Od(c))!==t.check){n.msg="incorrect data check",t.mode=ht;break}c=0,h=0}t.mode=Ud;case Ud:if(t.wrap&&t.flags){for(;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.wrap&4&&c!==(t.total&4294967295)){n.msg="incorrect length check",t.mode=ht;break}c=0,h=0}t.mode=Nd;case Nd:M=M_;break e;case ht:M=fA;break e;case AA:return dA;case pA:default:return hn}return n.next_out=o,n.avail_out=l,n.next_in=r,n.avail_in=a,t.hold=c,t.bits=h,(t.wsize||u!==n.avail_out&&t.mode<ht&&(t.mode<ol||e!==pd))&&vA(n,n.output,n.next_out,u-n.avail_out),f-=n.avail_in,u-=n.avail_out,n.total_in+=f,n.total_out+=u,t.total+=u,t.wrap&4&&u&&(n.adler=t.check=t.flags?Mt(t.check,s,u,n.next_out-u):Mr(t.check,s,u,n.next_out-u)),n.data_type=t.bits+(t.last?64:0)+(t.mode===Xn?128:0)+(t.mode===fo||t.mode===al?256:0),(f===0&&u===0||e===pd)&&M===Vi&&(M=B_),M},k_=n=>{if(Ki(n))return hn;let e=n.state;return e.window&&(e.window=null),n.state=null,Vi},Q_=(n,e)=>{if(Ki(n))return hn;let t=n.state;return(t.wrap&2)===0?hn:(t.head=e,e.done=!1,Vi)},G_=(n,e)=>{let t=e.length,i,s,r;return Ki(n)||(i=n.state,i.wrap!==0&&i.mode!==_o)?hn:i.mode===_o&&(s=1,s=Mr(s,e,t,0),s!==i.check)?fA:(r=vA(n,e,t,t),r?(i.mode=AA,dA):(i.havedict=1,Vi))},H_=mA,z_=_A,V_=gA,W_=U_,K_=xA,q_=O_,X_=k_,Y_=Q_,J_=G_,Z_="pako inflate (from Nodeca project)",Jn={inflateReset:H_,inflateReset2:z_,inflateResetKeep:V_,inflateInit:W_,inflateInit2:K_,inflate:q_,inflateEnd:X_,inflateGetHeader:Y_,inflateSetDictionary:J_,inflateInfo:Z_};function j_(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var $_=j_,EA=Object.prototype.toString,{Z_NO_FLUSH:ex,Z_FINISH:tx,Z_OK:Rr,Z_STREAM_END:hl,Z_NEED_DICT:ul,Z_STREAM_ERROR:nx,Z_DATA_ERROR:Qd,Z_MEM_ERROR:ix}=Wi;function Pr(n){this.options=vo.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(n&&n.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new cA,this.strm.avail_out=0;let t=Jn.inflateInit2(this.strm,e.windowBits);if(t!==Rr)throw new Error(Hi[t]);if(this.header=new $_,Jn.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Br.string2buf(e.dictionary):EA.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Jn.inflateSetDictionary(this.strm,e.dictionary),t!==Rr)))throw new Error(Hi[t])}Pr.prototype.push=function(n,e){let t=this.strm,i=this.options.chunkSize,s=this.options.dictionary,r,o,a;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?tx:ex,EA.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),r=Jn.inflate(t,o),r===ul&&s&&(r=Jn.inflateSetDictionary(t,s),r===Rr?r=Jn.inflate(t,o):r===Qd&&(r=ul));t.avail_in>0&&r===hl&&t.state.wrap>0&&n[t.next_in]!==0;)Jn.inflateReset(t),r=Jn.inflate(t,o);switch(r){case nx:case Qd:case ul:case ix:return this.onEnd(r),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||r===hl))if(this.options.to==="string"){let l=Br.utf8border(t.output,t.next_out),c=t.next_out-l,h=Br.buf2string(t.output,l);t.next_out=c,t.avail_out=i-c,c&&t.output.set(t.output.subarray(l,l+c),0),this.onData(h)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(r===Rr&&a===0)){if(r===hl)return r=Jn.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};Pr.prototype.onData=function(n){this.chunks.push(n)};Pr.prototype.onEnd=function(n){n===Rr&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=vo.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function wl(n,e){let t=new Pr(e);if(t.push(n),t.err)throw t.msg||Hi[t.err];return t.result}function sx(n,e){return e=e||{},e.raw=!0,wl(n,e)}var rx=Pr,ax=wl,ox=sx,cx=wl,lx=Wi,hx={Inflate:rx,inflate:ax,inflateRaw:ox,ungzip:cx,constants:lx},{Deflate:ux,deflate:fx,deflateRaw:dx,gzip:Ax}=__,{Inflate:px,inflate:gx,inflateRaw:mx,ungzip:_x}=hx,xx=ux,vx=fx,Ex=dx,yx=Ax,Cx=px,Sx=gx,bx=mx,Ix=_x,wx=Wi,yA={Deflate:xx,deflate:vx,deflateRaw:Ex,gzip:yx,Inflate:Cx,inflate:Sx,inflateRaw:bx,ungzip:Ix,constants:wx};var Mx=n=>{if(n===""||!n)return"";let e=n.split("/"),t=`$$${e[1].slice(-10)}${e[3].slice(-9)}`;return String(yo.default.MD5(t))};async function Tx(n){return await(await fetch(n,{method:"GET"})).arrayBuffer()}function Bx(n){return yA.ungzip(n,{to:"string"})}var Rx=n=>{let e=window.atob(n),t=e.length,i=new Uint8Array(t);for(let s=0;s<t;s+=1)i[s]=e.charCodeAt(s);return i.buffer};async function Dx(n,e){let t=Mx(e),i=yo.default.AES.decrypt(n,t).toString(yo.default.enc.Latin1);return Rx(i)}async function Lx(n,e){let t=e||`org/${n.split("org/")[1].split("/universal")[0]}`,i=Date.now(),s=await Tx(n),r=Date.now()-i;i=Date.now();let o=Bx(s),a=Date.now()-i;i=Date.now();let l=await Dx(o,t),c=Date.now()-i;return{decodedData:l,events:{fileDownloadTime:r,fileUnzipTime:a,fileDecryptionTime:c}}}var CA=Lx;function Fx(n){if(!!n&&!(typeof window>"u")){var e=document.createElement("style");return e.setAttribute("type","text/css"),e.innerHTML=n,document.head.appendChild(e),n}}function bs(n,e){var t=n.__state.conversionName.toString(),i=Math.round(n.r),s=Math.round(n.g),r=Math.round(n.b),o=n.a,a=Math.round(n.h),l=n.s.toFixed(1),c=n.v.toFixed(1);if(e||t==="THREE_CHAR_HEX"||t==="SIX_CHAR_HEX"){for(var h=n.hex.toString(16);h.length<6;)h="0"+h;return"#"+h}else{if(t==="CSS_RGB")return"rgb("+i+","+s+","+r+")";if(t==="CSS_RGBA")return"rgba("+i+","+s+","+r+","+o+")";if(t==="HEX")return"0x"+n.hex.toString(16);if(t==="RGB_ARRAY")return"["+i+","+s+","+r+"]";if(t==="RGBA_ARRAY")return"["+i+","+s+","+r+","+o+"]";if(t==="RGB_OBJ")return"{r:"+i+",g:"+s+",b:"+r+"}";if(t==="RGBA_OBJ")return"{r:"+i+",g:"+s+",b:"+r+",a:"+o+"}";if(t==="HSV_OBJ")return"{h:"+a+",s:"+l+",v:"+c+"}";if(t==="HSVA_OBJ")return"{h:"+a+",s:"+l+",v:"+c+",a:"+o+"}"}return"unknown format"}var SA=Array.prototype.forEach,Ur=Array.prototype.slice,te={BREAK:{},extend:function(e){return this.each(Ur.call(arguments,1),function(t){var i=this.isObject(t)?Object.keys(t):[];i.forEach(function(s){this.isUndefined(t[s])||(e[s]=t[s])}.bind(this))},this),e},defaults:function(e){return this.each(Ur.call(arguments,1),function(t){var i=this.isObject(t)?Object.keys(t):[];i.forEach(function(s){this.isUndefined(e[s])&&(e[s]=t[s])}.bind(this))},this),e},compose:function(){var e=Ur.call(arguments);return function(){for(var t=Ur.call(arguments),i=e.length-1;i>=0;i--)t=[e[i].apply(this,t)];return t[0]}},each:function(e,t,i){if(!!e){if(SA&&e.forEach&&e.forEach===SA)e.forEach(t,i);else if(e.length===e.length+0){var s=void 0,r=void 0;for(s=0,r=e.length;s<r;s++)if(s in e&&t.call(i,e[s],s)===this.BREAK)return}else for(var o in e)if(t.call(i,e[o],o)===this.BREAK)return}},defer:function(e){setTimeout(e,0)},debounce:function(e,t,i){var s=void 0;return function(){var r=this,o=arguments;function a(){s=null,i||e.apply(r,o)}var l=i||!s;clearTimeout(s),s=setTimeout(a,t),l&&e.apply(r,o)}},toArray:function(e){return e.toArray?e.toArray():Ur.call(e)},isUndefined:function(e){return e===void 0},isNull:function(e){return e===null},isNaN:function(n){function e(t){return n.apply(this,arguments)}return e.toString=function(){return n.toString()},e}(function(n){return isNaN(n)}),isArray:Array.isArray||function(n){return n.constructor===Array},isObject:function(e){return e===Object(e)},isNumber:function(e){return e===e+0},isString:function(e){return e===e+""},isBoolean:function(e){return e===!1||e===!0},isFunction:function(e){return e instanceof Function}},Px=[{litmus:te.isString,conversions:{THREE_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);return t===null?!1:{space:"HEX",hex:parseInt("0x"+t[1].toString()+t[1].toString()+t[2].toString()+t[2].toString()+t[3].toString()+t[3].toString(),0)}},write:bs},SIX_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9]{6})$/i);return t===null?!1:{space:"HEX",hex:parseInt("0x"+t[1].toString(),0)}},write:bs},CSS_RGB:{read:function(e){var t=e.match(/^rgb\(\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*\)/);return t===null?!1:{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3])}},write:bs},CSS_RGBA:{read:function(e){var t=e.match(/^rgba\(\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*\)/);return t===null?!1:{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3]),a:parseFloat(t[4])}},write:bs}}},{litmus:te.isNumber,conversions:{HEX:{read:function(e){return{space:"HEX",hex:e,conversionName:"HEX"}},write:function(e){return e.hex}}}},{litmus:te.isArray,conversions:{RGB_ARRAY:{read:function(e){return e.length!==3?!1:{space:"RGB",r:e[0],g:e[1],b:e[2]}},write:function(e){return[e.r,e.g,e.b]}},RGBA_ARRAY:{read:function(e){return e.length!==4?!1:{space:"RGB",r:e[0],g:e[1],b:e[2],a:e[3]}},write:function(e){return[e.r,e.g,e.b,e.a]}}}},{litmus:te.isObject,conversions:{RGBA_OBJ:{read:function(e){return te.isNumber(e.r)&&te.isNumber(e.g)&&te.isNumber(e.b)&&te.isNumber(e.a)?{space:"RGB",r:e.r,g:e.g,b:e.b,a:e.a}:!1},write:function(e){return{r:e.r,g:e.g,b:e.b,a:e.a}}},RGB_OBJ:{read:function(e){return te.isNumber(e.r)&&te.isNumber(e.g)&&te.isNumber(e.b)?{space:"RGB",r:e.r,g:e.g,b:e.b}:!1},write:function(e){return{r:e.r,g:e.g,b:e.b}}},HSVA_OBJ:{read:function(e){return te.isNumber(e.h)&&te.isNumber(e.s)&&te.isNumber(e.v)&&te.isNumber(e.a)?{space:"HSV",h:e.h,s:e.s,v:e.v,a:e.a}:!1},write:function(e){return{h:e.h,s:e.s,v:e.v,a:e.a}}},HSV_OBJ:{read:function(e){return te.isNumber(e.h)&&te.isNumber(e.s)&&te.isNumber(e.v)?{space:"HSV",h:e.h,s:e.s,v:e.v}:!1},write:function(e){return{h:e.h,s:e.s,v:e.v}}}}}],Nr=void 0,Co=void 0,Tl=function(){Co=!1;var e=arguments.length>1?te.toArray(arguments):arguments[0];return te.each(Px,function(t){if(t.litmus(e))return te.each(t.conversions,function(i,s){if(Nr=i.read(e),Co===!1&&Nr!==!1)return Co=Nr,Nr.conversionName=s,Nr.conversion=i,te.BREAK}),te.BREAK}),Co},bA=void 0,bo={hsv_to_rgb:function(e,t,i){var s=Math.floor(e/60)%6,r=e/60-Math.floor(e/60),o=i*(1-t),a=i*(1-r*t),l=i*(1-(1-r)*t),c=[[i,l,o],[a,i,o],[o,i,l],[o,a,i],[l,o,i],[i,o,a]][s];return{r:c[0]*255,g:c[1]*255,b:c[2]*255}},rgb_to_hsv:function(e,t,i){var s=Math.min(e,t,i),r=Math.max(e,t,i),o=r-s,a=void 0,l=void 0;if(r!==0)l=o/r;else return{h:NaN,s:0,v:0};return e===r?a=(t-i)/o:t===r?a=2+(i-e)/o:a=4+(e-t)/o,a/=6,a<0&&(a+=1),{h:a*360,s:l,v:r/255}},rgb_to_hex:function(e,t,i){var s=this.hex_with_component(0,2,e);return s=this.hex_with_component(s,1,t),s=this.hex_with_component(s,0,i),s},component_from_hex:function(e,t){return e>>t*8&255},hex_with_component:function(e,t,i){return i<<(bA=t*8)|e&~(255<<bA)}},Ux=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},bn=function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")},In=function(){function n(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(e,t,i){return t&&n(e.prototype,t),i&&n(e,i),e}}(),mi=function n(e,t,i){e===null&&(e=Function.prototype);var s=Object.getOwnPropertyDescriptor(e,t);if(s===void 0){var r=Object.getPrototypeOf(e);return r===null?void 0:n(r,t,i)}else{if("value"in s)return s.value;var o=s.get;return o===void 0?void 0:o.call(i)}},_i=function(n,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)},xi=function(n,e){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:n},Tt=function(){function n(){if(bn(this,n),this.__state=Tl.apply(this,arguments),this.__state===!1)throw new Error("Failed to interpret color arguments");this.__state.a=this.__state.a||1}return In(n,[{key:"toString",value:function(){return bs(this)}},{key:"toHexString",value:function(){return bs(this,!0)}},{key:"toOriginal",value:function(){return this.__state.conversion.write(this)}}]),n}();function Pl(n,e,t){Object.defineProperty(n,e,{get:function(){return this.__state.space==="RGB"?this.__state[e]:(Tt.recalculateRGB(this,e,t),this.__state[e])},set:function(s){this.__state.space!=="RGB"&&(Tt.recalculateRGB(this,e,t),this.__state.space="RGB"),this.__state[e]=s}})}function Ul(n,e){Object.defineProperty(n,e,{get:function(){return this.__state.space==="HSV"?this.__state[e]:(Tt.recalculateHSV(this),this.__state[e])},set:function(i){this.__state.space!=="HSV"&&(Tt.recalculateHSV(this),this.__state.space="HSV"),this.__state[e]=i}})}Tt.recalculateRGB=function(n,e,t){if(n.__state.space==="HEX")n.__state[e]=bo.component_from_hex(n.__state.hex,t);else if(n.__state.space==="HSV")te.extend(n.__state,bo.hsv_to_rgb(n.__state.h,n.__state.s,n.__state.v));else throw new Error("Corrupted color state")};Tt.recalculateHSV=function(n){var e=bo.rgb_to_hsv(n.r,n.g,n.b);te.extend(n.__state,{s:e.s,v:e.v}),te.isNaN(e.h)?te.isUndefined(n.__state.h)&&(n.__state.h=0):n.__state.h=e.h};Tt.COMPONENTS=["r","g","b","h","s","v","hex","a"];Pl(Tt.prototype,"r",2);Pl(Tt.prototype,"g",1);Pl(Tt.prototype,"b",0);Ul(Tt.prototype,"h");Ul(Tt.prototype,"s");Ul(Tt.prototype,"v");Object.defineProperty(Tt.prototype,"a",{get:function(){return this.__state.a},set:function(e){this.__state.a=e}});Object.defineProperty(Tt.prototype,"hex",{get:function(){return this.__state.space!=="HEX"&&(this.__state.hex=bo.rgb_to_hex(this.r,this.g,this.b),this.__state.space="HEX"),this.__state.hex},set:function(e){this.__state.space="HEX",this.__state.hex=e}});var qi=function(){function n(e,t){bn(this,n),this.initialValue=e[t],this.domElement=document.createElement("div"),this.object=e,this.property=t,this.__onChange=void 0,this.__onFinishChange=void 0}return In(n,[{key:"onChange",value:function(t){return this.__onChange=t,this}},{key:"onFinishChange",value:function(t){return this.__onFinishChange=t,this}},{key:"setValue",value:function(t){return this.object[this.property]=t,this.__onChange&&this.__onChange.call(this,t),this.updateDisplay(),this}},{key:"getValue",value:function(){return this.object[this.property]}},{key:"updateDisplay",value:function(){return this}},{key:"isModified",value:function(){return this.initialValue!==this.getValue()}}]),n}(),Nx={HTMLEvents:["change"],MouseEvents:["click","mousemove","mousedown","mouseup","mouseover"],KeyboardEvents:["keydown"]},PA={};te.each(Nx,function(n,e){te.each(n,function(t){PA[t]=e})});var Ox=/(\d+(\.\d+)?)px/;function kn(n){if(n==="0"||te.isUndefined(n))return 0;var e=n.match(Ox);return te.isNull(e)?0:parseFloat(e[1])}var Y={makeSelectable:function(e,t){e===void 0||e.style===void 0||(e.onselectstart=t?function(){return!1}:function(){},e.style.MozUserSelect=t?"auto":"none",e.style.KhtmlUserSelect=t?"auto":"none",e.unselectable=t?"on":"off")},makeFullscreen:function(e,t,i){var s=i,r=t;te.isUndefined(r)&&(r=!0),te.isUndefined(s)&&(s=!0),e.style.position="absolute",r&&(e.style.left=0,e.style.right=0),s&&(e.style.top=0,e.style.bottom=0)},fakeEvent:function(e,t,i,s){var r=i||{},o=PA[t];if(!o)throw new Error("Event type "+t+" not supported.");var a=document.createEvent(o);switch(o){case"MouseEvents":{var l=r.x||r.clientX||0,c=r.y||r.clientY||0;a.initMouseEvent(t,r.bubbles||!1,r.cancelable||!0,window,r.clickCount||1,0,0,l,c,!1,!1,!1,!1,0,null);break}case"KeyboardEvents":{var h=a.initKeyboardEvent||a.initKeyEvent;te.defaults(r,{cancelable:!0,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,keyCode:void 0,charCode:void 0}),h(t,r.bubbles||!1,r.cancelable,window,r.ctrlKey,r.altKey,r.shiftKey,r.metaKey,r.keyCode,r.charCode);break}default:{a.initEvent(t,r.bubbles||!1,r.cancelable||!0);break}}te.defaults(a,s),e.dispatchEvent(a)},bind:function(e,t,i,s){var r=s||!1;return e.addEventListener?e.addEventListener(t,i,r):e.attachEvent&&e.attachEvent("on"+t,i),Y},unbind:function(e,t,i,s){var r=s||!1;return e.removeEventListener?e.removeEventListener(t,i,r):e.detachEvent&&e.detachEvent("on"+t,i),Y},addClass:function(e,t){if(e.className===void 0)e.className=t;else if(e.className!==t){var i=e.className.split(/ +/);i.indexOf(t)===-1&&(i.push(t),e.className=i.join(" ").replace(/^\s+/,"").replace(/\s+$/,""))}return Y},removeClass:function(e,t){if(t)if(e.className===t)e.removeAttribute("class");else{var i=e.className.split(/ +/),s=i.indexOf(t);s!==-1&&(i.splice(s,1),e.className=i.join(" "))}else e.className=void 0;return Y},hasClass:function(e,t){return new RegExp("(?:^|\\s+)"+t+"(?:\\s+|$)").test(e.className)||!1},getWidth:function(e){var t=getComputedStyle(e);return kn(t["border-left-width"])+kn(t["border-right-width"])+kn(t["padding-left"])+kn(t["padding-right"])+kn(t.width)},getHeight:function(e){var t=getComputedStyle(e);return kn(t["border-top-width"])+kn(t["border-bottom-width"])+kn(t["padding-top"])+kn(t["padding-bottom"])+kn(t.height)},getOffset:function(e){var t=e,i={left:0,top:0};if(t.offsetParent)do i.left+=t.offsetLeft,i.top+=t.offsetTop,t=t.offsetParent;while(t);return i},isActive:function(e){return e===document.activeElement&&(e.type||e.href)}},UA=function(n){_i(e,n);function e(t,i){bn(this,e);var s=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),r=s;s.__prev=s.getValue(),s.__checkbox=document.createElement("input"),s.__checkbox.setAttribute("type","checkbox");function o(){r.setValue(!r.__prev)}return Y.bind(s.__checkbox,"change",o,!1),s.domElement.appendChild(s.__checkbox),s.updateDisplay(),s}return In(e,[{key:"setValue",value:function(i){var s=mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,i);return this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),this.__prev=this.getValue(),s}},{key:"updateDisplay",value:function(){return this.getValue()===!0?(this.__checkbox.setAttribute("checked","checked"),this.__checkbox.checked=!0,this.__prev=!0):(this.__checkbox.checked=!1,this.__prev=!1),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(qi),kx=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=s,a=r;if(r.__select=document.createElement("select"),te.isArray(o)){var l={};te.each(o,function(c){l[c]=c}),o=l}return te.each(o,function(c,h){var f=document.createElement("option");f.innerHTML=h,f.setAttribute("value",c),a.__select.appendChild(f)}),r.updateDisplay(),Y.bind(r.__select,"change",function(){var c=this.options[this.selectedIndex].value;a.setValue(c)}),r.domElement.appendChild(r.__select),r}return In(e,[{key:"setValue",value:function(i){var s=mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,i);return this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),s}},{key:"updateDisplay",value:function(){return Y.isActive(this.__select)?this:(this.__select.value=this.getValue(),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this))}}]),e}(qi),Qx=function(n){_i(e,n);function e(t,i){bn(this,e);var s=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),r=s;function o(){r.setValue(r.__input.value)}function a(){r.__onFinishChange&&r.__onFinishChange.call(r,r.getValue())}return s.__input=document.createElement("input"),s.__input.setAttribute("type","text"),Y.bind(s.__input,"keyup",o),Y.bind(s.__input,"change",o),Y.bind(s.__input,"blur",a),Y.bind(s.__input,"keydown",function(l){l.keyCode===13&&this.blur()}),s.updateDisplay(),s.domElement.appendChild(s.__input),s}return In(e,[{key:"updateDisplay",value:function(){return Y.isActive(this.__input)||(this.__input.value=this.getValue()),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(qi);function IA(n){var e=n.toString();return e.indexOf(".")>-1?e.length-e.indexOf(".")-1:0}var NA=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=s||{};return r.__min=o.min,r.__max=o.max,r.__step=o.step,te.isUndefined(r.__step)?r.initialValue===0?r.__impliedStep=1:r.__impliedStep=Math.pow(10,Math.floor(Math.log(Math.abs(r.initialValue))/Math.LN10))/10:r.__impliedStep=r.__step,r.__precision=IA(r.__impliedStep),r}return In(e,[{key:"setValue",value:function(i){var s=i;return this.__min!==void 0&&s<this.__min?s=this.__min:this.__max!==void 0&&s>this.__max&&(s=this.__max),this.__step!==void 0&&s%this.__step!==0&&(s=Math.round(s/this.__step)*this.__step),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,s)}},{key:"min",value:function(i){return this.__min=i,this}},{key:"max",value:function(i){return this.__max=i,this}},{key:"step",value:function(i){return this.__step=i,this.__impliedStep=i,this.__precision=IA(i),this}}]),e}(qi);function Gx(n,e){var t=Math.pow(10,e);return Math.round(n*t)/t}var Io=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,s));r.__truncationSuspended=!1;var o=r,a=void 0;function l(){var g=parseFloat(o.__input.value);te.isNaN(g)||o.setValue(g)}function c(){o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}function h(){c()}function f(g){var m=a-g.clientY;o.setValue(o.getValue()+m*o.__impliedStep),a=g.clientY}function u(){Y.unbind(window,"mousemove",f),Y.unbind(window,"mouseup",u),c()}function d(g){Y.bind(window,"mousemove",f),Y.bind(window,"mouseup",u),a=g.clientY}return r.__input=document.createElement("input"),r.__input.setAttribute("type","text"),Y.bind(r.__input,"change",l),Y.bind(r.__input,"blur",h),Y.bind(r.__input,"mousedown",d),Y.bind(r.__input,"keydown",function(g){g.keyCode===13&&(o.__truncationSuspended=!0,this.blur(),o.__truncationSuspended=!1,c())}),r.updateDisplay(),r.domElement.appendChild(r.__input),r}return In(e,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():Gx(this.getValue(),this.__precision),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(NA);function wA(n,e,t,i,s){return i+(s-i)*((n-e)/(t-e))}var Bl=function(n){_i(e,n);function e(t,i,s,r,o){bn(this,e);var a=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,{min:s,max:r,step:o})),l=a;a.__background=document.createElement("div"),a.__foreground=document.createElement("div"),Y.bind(a.__background,"mousedown",c),Y.bind(a.__background,"touchstart",u),Y.addClass(a.__background,"slider"),Y.addClass(a.__foreground,"slider-fg");function c(m){document.activeElement.blur(),Y.bind(window,"mousemove",h),Y.bind(window,"mouseup",f),h(m)}function h(m){m.preventDefault();var p=l.__background.getBoundingClientRect();return l.setValue(wA(m.clientX,p.left,p.right,l.__min,l.__max)),!1}function f(){Y.unbind(window,"mousemove",h),Y.unbind(window,"mouseup",f),l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())}function u(m){m.touches.length===1&&(Y.bind(window,"touchmove",d),Y.bind(window,"touchend",g),d(m))}function d(m){var p=m.touches[0].clientX,A=l.__background.getBoundingClientRect();l.setValue(wA(p,A.left,A.right,l.__min,l.__max))}function g(){Y.unbind(window,"touchmove",d),Y.unbind(window,"touchend",g),l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())}return a.updateDisplay(),a.__background.appendChild(a.__foreground),a.domElement.appendChild(a.__background),a}return In(e,[{key:"updateDisplay",value:function(){var i=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=i*100+"%",mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(NA),OA=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=r;return r.__button=document.createElement("div"),r.__button.innerHTML=s===void 0?"Fire":s,Y.bind(r.__button,"click",function(a){return a.preventDefault(),o.fire(),!1}),Y.addClass(r.__button,"button"),r.domElement.appendChild(r.__button),r}return In(e,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),e}(qi),Rl=function(n){_i(e,n);function e(t,i){bn(this,e);var s=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i));s.__color=new Tt(s.getValue()),s.__temp=new Tt(0);var r=s;s.domElement=document.createElement("div"),Y.makeSelectable(s.domElement,!1),s.__selector=document.createElement("div"),s.__selector.className="selector",s.__saturation_field=document.createElement("div"),s.__saturation_field.className="saturation-field",s.__field_knob=document.createElement("div"),s.__field_knob.className="field-knob",s.__field_knob_border="2px solid ",s.__hue_knob=document.createElement("div"),s.__hue_knob.className="hue-knob",s.__hue_field=document.createElement("div"),s.__hue_field.className="hue-field",s.__input=document.createElement("input"),s.__input.type="text",s.__input_textShadow="0 1px 1px ",Y.bind(s.__input,"keydown",function(m){m.keyCode===13&&f.call(this)}),Y.bind(s.__input,"blur",f),Y.bind(s.__selector,"mousedown",function(){Y.addClass(this,"drag").bind(window,"mouseup",function(){Y.removeClass(r.__selector,"drag")})}),Y.bind(s.__selector,"touchstart",function(){Y.addClass(this,"drag").bind(window,"touchend",function(){Y.removeClass(r.__selector,"drag")})});var o=document.createElement("div");te.extend(s.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),te.extend(s.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:s.__field_knob_border+(s.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),te.extend(s.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),te.extend(s.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),te.extend(o.style,{width:"100%",height:"100%",background:"none"}),MA(o,"top","rgba(0,0,0,0)","#000"),te.extend(s.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),zx(s.__hue_field),te.extend(s.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:s.__input_textShadow+"rgba(0,0,0,0.7)"}),Y.bind(s.__saturation_field,"mousedown",a),Y.bind(s.__saturation_field,"touchstart",a),Y.bind(s.__field_knob,"mousedown",a),Y.bind(s.__field_knob,"touchstart",a),Y.bind(s.__hue_field,"mousedown",l),Y.bind(s.__hue_field,"touchstart",l);function a(m){d(m),Y.bind(window,"mousemove",d),Y.bind(window,"touchmove",d),Y.bind(window,"mouseup",c),Y.bind(window,"touchend",c)}function l(m){g(m),Y.bind(window,"mousemove",g),Y.bind(window,"touchmove",g),Y.bind(window,"mouseup",h),Y.bind(window,"touchend",h)}function c(){Y.unbind(window,"mousemove",d),Y.unbind(window,"touchmove",d),Y.unbind(window,"mouseup",c),Y.unbind(window,"touchend",c),u()}function h(){Y.unbind(window,"mousemove",g),Y.unbind(window,"touchmove",g),Y.unbind(window,"mouseup",h),Y.unbind(window,"touchend",h),u()}function f(){var m=Tl(this.value);m!==!1?(r.__color.__state=m,r.setValue(r.__color.toOriginal())):this.value=r.__color.toString()}function u(){r.__onFinishChange&&r.__onFinishChange.call(r,r.__color.toOriginal())}s.__saturation_field.appendChild(o),s.__selector.appendChild(s.__field_knob),s.__selector.appendChild(s.__saturation_field),s.__selector.appendChild(s.__hue_field),s.__hue_field.appendChild(s.__hue_knob),s.domElement.appendChild(s.__input),s.domElement.appendChild(s.__selector),s.updateDisplay();function d(m){m.type.indexOf("touch")===-1&&m.preventDefault();var p=r.__saturation_field.getBoundingClientRect(),A=m.touches&&m.touches[0]||m,x=A.clientX,_=A.clientY,v=(x-p.left)/(p.right-p.left),y=1-(_-p.top)/(p.bottom-p.top);return y>1?y=1:y<0&&(y=0),v>1?v=1:v<0&&(v=0),r.__color.v=y,r.__color.s=v,r.setValue(r.__color.toOriginal()),!1}function g(m){m.type.indexOf("touch")===-1&&m.preventDefault();var p=r.__hue_field.getBoundingClientRect(),A=m.touches&&m.touches[0]||m,x=A.clientY,_=1-(x-p.top)/(p.bottom-p.top);return _>1?_=1:_<0&&(_=0),r.__color.h=_*360,r.setValue(r.__color.toOriginal()),!1}return s}return In(e,[{key:"updateDisplay",value:function(){var i=Tl(this.getValue());if(i!==!1){var s=!1;te.each(Tt.COMPONENTS,function(a){if(!te.isUndefined(i[a])&&!te.isUndefined(this.__color.__state[a])&&i[a]!==this.__color.__state[a])return s=!0,{}},this),s&&te.extend(this.__color.__state,i)}te.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var r=this.__color.v<.5||this.__color.s>.5?255:0,o=255-r;te.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+r+","+r+","+r+")"}),this.__hue_knob.style.marginTop=(1-this.__color.h/360)*100+"px",this.__temp.s=1,this.__temp.v=1,MA(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),te.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+r+","+r+","+r+")",textShadow:this.__input_textShadow+"rgba("+o+","+o+","+o+",.7)"})}}]),e}(qi),Hx=["-moz-","-o-","-webkit-","-ms-",""];function MA(n,e,t,i){n.style.background="",te.each(Hx,function(s){n.style.cssText+="background: "+s+"linear-gradient("+e+", "+t+" 0%, "+i+" 100%); "})}function zx(n){n.style.background="",n.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",n.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}var Vx={load:function(e,t){var i=t||document,s=i.createElement("link");s.type="text/css",s.rel="stylesheet",s.href=e,i.getElementsByTagName("head")[0].appendChild(s)},inject:function(e,t){var i=t||document,s=document.createElement("style");s.type="text/css",s.innerHTML=e;var r=i.getElementsByTagName("head")[0];try{r.appendChild(s)}catch{}}},Wx=`<div id="dg-save" class="dg dialogue">
2
+ "use strict";var SprieEmbed=(()=>{var vg=Object.create;var Yc=Object.defineProperty,Eg=Object.defineProperties,yg=Object.getOwnPropertyDescriptor,Cg=Object.getOwnPropertyDescriptors,Sg=Object.getOwnPropertyNames,zu=Object.getOwnPropertySymbols,bg=Object.getPrototypeOf,Wu=Object.prototype.hasOwnProperty,Ig=Object.prototype.propertyIsEnumerable;var Vu=(n,e,t)=>e in n?Yc(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,hi=(n,e)=>{for(var t in e||={})Wu.call(e,t)&&Vu(n,t,e[t]);if(zu)for(var t of zu(e))Ig.call(e,t)&&Vu(n,t,e[t]);return n},Ku=(n,e)=>Eg(n,Cg(e));var qu=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+n+'" is not supported')});var Ke=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var wg=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Sg(e))!Wu.call(n,s)&&s!==t&&Yc(n,s,{get:()=>e[s],enumerable:!(i=yg(e,s))||i.enumerable});return n};var Mg=(n,e,t)=>(t=n!=null?vg(bg(n)):{},wg(e||!n||!n.__esModule?Yc(t,"default",{value:n,enumerable:!0}):t,n));var it=(n,e,t)=>new Promise((i,s)=>{var r=l=>{try{a(t.next(l))}catch(c){s(c)}},o=l=>{try{a(t.throw(l))}catch(c){s(c)}},a=l=>l.done?i(l.value):Promise.resolve(l.value).then(r,o);a((t=t.apply(n,e)).next())});var Yu=Ke(()=>{});var qe=Ke((Ia,Ju)=>{(function(n,e){typeof Ia=="object"?Ju.exports=Ia=e():typeof define=="function"&&define.amd?define([],e):n.CryptoJS=e()})(Ia,function(){var n=n||function(e,t){var i;if(typeof window<"u"&&window.crypto&&(i=window.crypto),typeof self<"u"&&self.crypto&&(i=self.crypto),typeof globalThis<"u"&&globalThis.crypto&&(i=globalThis.crypto),!i&&typeof window<"u"&&window.msCrypto&&(i=window.msCrypto),!i&&typeof global<"u"&&global.crypto&&(i=global.crypto),!i&&typeof qu=="function")try{i=Yu()}catch{}var s=function(){if(i){if(typeof i.getRandomValues=="function")try{return i.getRandomValues(new Uint32Array(1))[0]}catch{}if(typeof i.randomBytes=="function")try{return i.randomBytes(4).readInt32LE()}catch{}}throw new Error("Native crypto module could not be used to get secure random number.")},r=Object.create||function(){function A(){}return function(x){var _;return A.prototype=x,_=new A,A.prototype=null,_}}(),o={},a=o.lib={},l=a.Base=function(){return{extend:function(A){var x=r(this);return A&&x.mixIn(A),(!x.hasOwnProperty("init")||this.init===x.init)&&(x.init=function(){x.$super.init.apply(this,arguments)}),x.init.prototype=x,x.$super=this,x},create:function(){var A=this.extend();return A.init.apply(A,arguments),A},init:function(){},mixIn:function(A){for(var x in A)A.hasOwnProperty(x)&&(this[x]=A[x]);A.hasOwnProperty("toString")&&(this.toString=A.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),c=a.WordArray=l.extend({init:function(A,x){A=this.words=A||[],x!=t?this.sigBytes=x:this.sigBytes=A.length*4},toString:function(A){return(A||f).stringify(this)},concat:function(A){var x=this.words,_=A.words,v=this.sigBytes,y=A.sigBytes;if(this.clamp(),v%4)for(var S=0;S<y;S++){var C=_[S>>>2]>>>24-S%4*8&255;x[v+S>>>2]|=C<<24-(v+S)%4*8}else for(var M=0;M<y;M+=4)x[v+M>>>2]=_[M>>>2];return this.sigBytes+=y,this},clamp:function(){var A=this.words,x=this.sigBytes;A[x>>>2]&=4294967295<<32-x%4*8,A.length=e.ceil(x/4)},clone:function(){var A=l.clone.call(this);return A.words=this.words.slice(0),A},random:function(A){for(var x=[],_=0;_<A;_+=4)x.push(s());return new c.init(x,A)}}),h=o.enc={},f=h.Hex={stringify:function(A){for(var x=A.words,_=A.sigBytes,v=[],y=0;y<_;y++){var S=x[y>>>2]>>>24-y%4*8&255;v.push((S>>>4).toString(16)),v.push((S&15).toString(16))}return v.join("")},parse:function(A){for(var x=A.length,_=[],v=0;v<x;v+=2)_[v>>>3]|=parseInt(A.substr(v,2),16)<<24-v%8*4;return new c.init(_,x/2)}},u=h.Latin1={stringify:function(A){for(var x=A.words,_=A.sigBytes,v=[],y=0;y<_;y++){var S=x[y>>>2]>>>24-y%4*8&255;v.push(String.fromCharCode(S))}return v.join("")},parse:function(A){for(var x=A.length,_=[],v=0;v<x;v++)_[v>>>2]|=(A.charCodeAt(v)&255)<<24-v%4*8;return new c.init(_,x)}},d=h.Utf8={stringify:function(A){try{return decodeURIComponent(escape(u.stringify(A)))}catch{throw new Error("Malformed UTF-8 data")}},parse:function(A){return u.parse(unescape(encodeURIComponent(A)))}},g=a.BufferedBlockAlgorithm=l.extend({reset:function(){this._data=new c.init,this._nDataBytes=0},_append:function(A){typeof A=="string"&&(A=d.parse(A)),this._data.concat(A),this._nDataBytes+=A.sigBytes},_process:function(A){var x,_=this._data,v=_.words,y=_.sigBytes,S=this.blockSize,C=S*4,M=y/C;A?M=e.ceil(M):M=e.max((M|0)-this._minBufferSize,0);var E=M*S,b=e.min(E*4,y);if(E){for(var w=0;w<E;w+=S)this._doProcessBlock(v,w);x=v.splice(0,E),_.sigBytes-=b}return new c.init(x,b)},clone:function(){var A=l.clone.call(this);return A._data=this._data.clone(),A},_minBufferSize:0}),m=a.Hasher=g.extend({cfg:l.extend(),init:function(A){this.cfg=this.cfg.extend(A),this.reset()},reset:function(){g.reset.call(this),this._doReset()},update:function(A){return this._append(A),this._process(),this},finalize:function(A){A&&this._append(A);var x=this._doFinalize();return x},blockSize:512/32,_createHelper:function(A){return function(x,_){return new A.init(_).finalize(x)}},_createHmacHelper:function(A){return function(x,_){return new p.HMAC.init(A,_).finalize(x)}}}),p=o.algo={};return o}(Math);return n})});var mr=Ke((wa,Zu)=>{(function(n,e){typeof wa=="object"?Zu.exports=wa=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(wa,function(n){return function(e){var t=n,i=t.lib,s=i.Base,r=i.WordArray,o=t.x64={},a=o.Word=s.extend({init:function(c,h){this.high=c,this.low=h}}),l=o.WordArray=s.extend({init:function(c,h){c=this.words=c||[],h!=e?this.sigBytes=h:this.sigBytes=c.length*8},toX32:function(){for(var c=this.words,h=c.length,f=[],u=0;u<h;u++){var d=c[u];f.push(d.high),f.push(d.low)}return r.create(f,this.sigBytes)},clone:function(){for(var c=s.clone.call(this),h=c.words=this.words.slice(0),f=h.length,u=0;u<f;u++)h[u]=h[u].clone();return c}})}(),n})});var $u=Ke((Ma,ju)=>{(function(n,e){typeof Ma=="object"?ju.exports=Ma=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ma,function(n){return function(){if(typeof ArrayBuffer=="function"){var e=n,t=e.lib,i=t.WordArray,s=i.init,r=i.init=function(o){if(o instanceof ArrayBuffer&&(o=new Uint8Array(o)),(o instanceof Int8Array||typeof Uint8ClampedArray<"u"&&o instanceof Uint8ClampedArray||o instanceof Int16Array||o instanceof Uint16Array||o instanceof Int32Array||o instanceof Uint32Array||o instanceof Float32Array||o instanceof Float64Array)&&(o=new Uint8Array(o.buffer,o.byteOffset,o.byteLength)),o instanceof Uint8Array){for(var a=o.byteLength,l=[],c=0;c<a;c++)l[c>>>2]|=o[c]<<24-c%4*8;s.call(this,l,a)}else s.apply(this,arguments)};r.prototype=i}}(),n.lib.WordArray})});var tf=Ke((Ta,ef)=>{(function(n,e){typeof Ta=="object"?ef.exports=Ta=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ta,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.enc,r=s.Utf16=s.Utf16BE={stringify:function(a){for(var l=a.words,c=a.sigBytes,h=[],f=0;f<c;f+=2){var u=l[f>>>2]>>>16-f%4*8&65535;h.push(String.fromCharCode(u))}return h.join("")},parse:function(a){for(var l=a.length,c=[],h=0;h<l;h++)c[h>>>1]|=a.charCodeAt(h)<<16-h%2*16;return i.create(c,l*2)}};s.Utf16LE={stringify:function(a){for(var l=a.words,c=a.sigBytes,h=[],f=0;f<c;f+=2){var u=o(l[f>>>2]>>>16-f%4*8&65535);h.push(String.fromCharCode(u))}return h.join("")},parse:function(a){for(var l=a.length,c=[],h=0;h<l;h++)c[h>>>1]|=o(a.charCodeAt(h)<<16-h%2*16);return i.create(c,l*2)}};function o(a){return a<<8&4278255360|a>>>8&16711935}}(),n.enc.Utf16})});var Ni=Ke((Ba,nf)=>{(function(n,e){typeof Ba=="object"?nf.exports=Ba=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ba,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.enc,r=s.Base64={stringify:function(a){var l=a.words,c=a.sigBytes,h=this._map;a.clamp();for(var f=[],u=0;u<c;u+=3)for(var d=l[u>>>2]>>>24-u%4*8&255,g=l[u+1>>>2]>>>24-(u+1)%4*8&255,m=l[u+2>>>2]>>>24-(u+2)%4*8&255,p=d<<16|g<<8|m,A=0;A<4&&u+A*.75<c;A++)f.push(h.charAt(p>>>6*(3-A)&63));var x=h.charAt(64);if(x)for(;f.length%4;)f.push(x);return f.join("")},parse:function(a){var l=a.length,c=this._map,h=this._reverseMap;if(!h){h=this._reverseMap=[];for(var f=0;f<c.length;f++)h[c.charCodeAt(f)]=f}var u=c.charAt(64);if(u){var d=a.indexOf(u);d!==-1&&(l=d)}return o(a,l,h)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="};function o(a,l,c){for(var h=[],f=0,u=0;u<l;u++)if(u%4){var d=c[a.charCodeAt(u-1)]<<u%4*2,g=c[a.charCodeAt(u)]>>>6-u%4*2,m=d|g;h[f>>>2]|=m<<24-f%4*8,f++}return i.create(h,f)}}(),n.enc.Base64})});var rf=Ke((Ra,sf)=>{(function(n,e){typeof Ra=="object"?sf.exports=Ra=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ra,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.enc,r=s.Base64url={stringify:function(a,l=!0){var c=a.words,h=a.sigBytes,f=l?this._safe_map:this._map;a.clamp();for(var u=[],d=0;d<h;d+=3)for(var g=c[d>>>2]>>>24-d%4*8&255,m=c[d+1>>>2]>>>24-(d+1)%4*8&255,p=c[d+2>>>2]>>>24-(d+2)%4*8&255,A=g<<16|m<<8|p,x=0;x<4&&d+x*.75<h;x++)u.push(f.charAt(A>>>6*(3-x)&63));var _=f.charAt(64);if(_)for(;u.length%4;)u.push(_);return u.join("")},parse:function(a,l=!0){var c=a.length,h=l?this._safe_map:this._map,f=this._reverseMap;if(!f){f=this._reverseMap=[];for(var u=0;u<h.length;u++)f[h.charCodeAt(u)]=u}var d=h.charAt(64);if(d){var g=a.indexOf(d);g!==-1&&(c=g)}return o(a,c,f)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"};function o(a,l,c){for(var h=[],f=0,u=0;u<l;u++)if(u%4){var d=c[a.charCodeAt(u-1)]<<u%4*2,g=c[a.charCodeAt(u)]>>>6-u%4*2,m=d|g;h[f>>>2]|=m<<24-f%4*8,f++}return i.create(h,f)}}(),n.enc.Base64url})});var Oi=Ke((Da,af)=>{(function(n,e){typeof Da=="object"?af.exports=Da=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Da,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[];(function(){for(var d=0;d<64;d++)a[d]=e.abs(e.sin(d+1))*4294967296|0})();var l=o.MD5=r.extend({_doReset:function(){this._hash=new s.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(d,g){for(var m=0;m<16;m++){var p=g+m,A=d[p];d[p]=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360}var x=this._hash.words,_=d[g+0],v=d[g+1],y=d[g+2],S=d[g+3],C=d[g+4],M=d[g+5],E=d[g+6],b=d[g+7],w=d[g+8],G=d[g+9],U=d[g+10],D=d[g+11],O=d[g+12],K=d[g+13],H=d[g+14],z=d[g+15],F=x[0],N=x[1],R=x[2],L=x[3];F=c(F,N,R,L,_,7,a[0]),L=c(L,F,N,R,v,12,a[1]),R=c(R,L,F,N,y,17,a[2]),N=c(N,R,L,F,S,22,a[3]),F=c(F,N,R,L,C,7,a[4]),L=c(L,F,N,R,M,12,a[5]),R=c(R,L,F,N,E,17,a[6]),N=c(N,R,L,F,b,22,a[7]),F=c(F,N,R,L,w,7,a[8]),L=c(L,F,N,R,G,12,a[9]),R=c(R,L,F,N,U,17,a[10]),N=c(N,R,L,F,D,22,a[11]),F=c(F,N,R,L,O,7,a[12]),L=c(L,F,N,R,K,12,a[13]),R=c(R,L,F,N,H,17,a[14]),N=c(N,R,L,F,z,22,a[15]),F=h(F,N,R,L,v,5,a[16]),L=h(L,F,N,R,E,9,a[17]),R=h(R,L,F,N,D,14,a[18]),N=h(N,R,L,F,_,20,a[19]),F=h(F,N,R,L,M,5,a[20]),L=h(L,F,N,R,U,9,a[21]),R=h(R,L,F,N,z,14,a[22]),N=h(N,R,L,F,C,20,a[23]),F=h(F,N,R,L,G,5,a[24]),L=h(L,F,N,R,H,9,a[25]),R=h(R,L,F,N,S,14,a[26]),N=h(N,R,L,F,w,20,a[27]),F=h(F,N,R,L,K,5,a[28]),L=h(L,F,N,R,y,9,a[29]),R=h(R,L,F,N,b,14,a[30]),N=h(N,R,L,F,O,20,a[31]),F=f(F,N,R,L,M,4,a[32]),L=f(L,F,N,R,w,11,a[33]),R=f(R,L,F,N,D,16,a[34]),N=f(N,R,L,F,H,23,a[35]),F=f(F,N,R,L,v,4,a[36]),L=f(L,F,N,R,C,11,a[37]),R=f(R,L,F,N,b,16,a[38]),N=f(N,R,L,F,U,23,a[39]),F=f(F,N,R,L,K,4,a[40]),L=f(L,F,N,R,_,11,a[41]),R=f(R,L,F,N,S,16,a[42]),N=f(N,R,L,F,E,23,a[43]),F=f(F,N,R,L,G,4,a[44]),L=f(L,F,N,R,O,11,a[45]),R=f(R,L,F,N,z,16,a[46]),N=f(N,R,L,F,y,23,a[47]),F=u(F,N,R,L,_,6,a[48]),L=u(L,F,N,R,b,10,a[49]),R=u(R,L,F,N,H,15,a[50]),N=u(N,R,L,F,M,21,a[51]),F=u(F,N,R,L,O,6,a[52]),L=u(L,F,N,R,S,10,a[53]),R=u(R,L,F,N,U,15,a[54]),N=u(N,R,L,F,v,21,a[55]),F=u(F,N,R,L,w,6,a[56]),L=u(L,F,N,R,z,10,a[57]),R=u(R,L,F,N,E,15,a[58]),N=u(N,R,L,F,K,21,a[59]),F=u(F,N,R,L,C,6,a[60]),L=u(L,F,N,R,D,10,a[61]),R=u(R,L,F,N,y,15,a[62]),N=u(N,R,L,F,G,21,a[63]),x[0]=x[0]+F|0,x[1]=x[1]+N|0,x[2]=x[2]+R|0,x[3]=x[3]+L|0},_doFinalize:function(){var d=this._data,g=d.words,m=this._nDataBytes*8,p=d.sigBytes*8;g[p>>>5]|=128<<24-p%32;var A=e.floor(m/4294967296),x=m;g[(p+64>>>9<<4)+15]=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360,g[(p+64>>>9<<4)+14]=(x<<8|x>>>24)&16711935|(x<<24|x>>>8)&4278255360,d.sigBytes=(g.length+1)*4,this._process();for(var _=this._hash,v=_.words,y=0;y<4;y++){var S=v[y];v[y]=(S<<8|S>>>24)&16711935|(S<<24|S>>>8)&4278255360}return _},clone:function(){var d=r.clone.call(this);return d._hash=this._hash.clone(),d}});function c(d,g,m,p,A,x,_){var v=d+(g&m|~g&p)+A+_;return(v<<x|v>>>32-x)+g}function h(d,g,m,p,A,x,_){var v=d+(g&p|m&~p)+A+_;return(v<<x|v>>>32-x)+g}function f(d,g,m,p,A,x,_){var v=d+(g^m^p)+A+_;return(v<<x|v>>>32-x)+g}function u(d,g,m,p,A,x,_){var v=d+(m^(g|~p))+A+_;return(v<<x|v>>>32-x)+g}t.MD5=r._createHelper(l),t.HmacMD5=r._createHmacHelper(l)}(Math),n.MD5})});var Fa=Ke((La,of)=>{(function(n,e){typeof La=="object"?of.exports=La=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(La,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=t.Hasher,r=e.algo,o=[],a=r.SHA1=s.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(l,c){for(var h=this._hash.words,f=h[0],u=h[1],d=h[2],g=h[3],m=h[4],p=0;p<80;p++){if(p<16)o[p]=l[c+p]|0;else{var A=o[p-3]^o[p-8]^o[p-14]^o[p-16];o[p]=A<<1|A>>>31}var x=(f<<5|f>>>27)+m+o[p];p<20?x+=(u&d|~u&g)+1518500249:p<40?x+=(u^d^g)+1859775393:p<60?x+=(u&d|u&g|d&g)-1894007588:x+=(u^d^g)-899497514,m=g,g=d,d=u<<30|u>>>2,u=f,f=x}h[0]=h[0]+f|0,h[1]=h[1]+u|0,h[2]=h[2]+d|0,h[3]=h[3]+g|0,h[4]=h[4]+m|0},_doFinalize:function(){var l=this._data,c=l.words,h=this._nDataBytes*8,f=l.sigBytes*8;return c[f>>>5]|=128<<24-f%32,c[(f+64>>>9<<4)+14]=Math.floor(h/4294967296),c[(f+64>>>9<<4)+15]=h,l.sigBytes=c.length*4,this._process(),this._hash},clone:function(){var l=s.clone.call(this);return l._hash=this._hash.clone(),l}});e.SHA1=s._createHelper(a),e.HmacSHA1=s._createHmacHelper(a)}(),n.SHA1})});var Jc=Ke((Pa,cf)=>{(function(n,e){typeof Pa=="object"?cf.exports=Pa=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Pa,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=[],l=[];(function(){function f(m){for(var p=e.sqrt(m),A=2;A<=p;A++)if(!(m%A))return!1;return!0}function u(m){return(m-(m|0))*4294967296|0}for(var d=2,g=0;g<64;)f(d)&&(g<8&&(a[g]=u(e.pow(d,1/2))),l[g]=u(e.pow(d,1/3)),g++),d++})();var c=[],h=o.SHA256=r.extend({_doReset:function(){this._hash=new s.init(a.slice(0))},_doProcessBlock:function(f,u){for(var d=this._hash.words,g=d[0],m=d[1],p=d[2],A=d[3],x=d[4],_=d[5],v=d[6],y=d[7],S=0;S<64;S++){if(S<16)c[S]=f[u+S]|0;else{var C=c[S-15],M=(C<<25|C>>>7)^(C<<14|C>>>18)^C>>>3,E=c[S-2],b=(E<<15|E>>>17)^(E<<13|E>>>19)^E>>>10;c[S]=M+c[S-7]+b+c[S-16]}var w=x&_^~x&v,G=g&m^g&p^m&p,U=(g<<30|g>>>2)^(g<<19|g>>>13)^(g<<10|g>>>22),D=(x<<26|x>>>6)^(x<<21|x>>>11)^(x<<7|x>>>25),O=y+D+w+l[S]+c[S],K=U+G;y=v,v=_,_=x,x=A+O|0,A=p,p=m,m=g,g=O+K|0}d[0]=d[0]+g|0,d[1]=d[1]+m|0,d[2]=d[2]+p|0,d[3]=d[3]+A|0,d[4]=d[4]+x|0,d[5]=d[5]+_|0,d[6]=d[6]+v|0,d[7]=d[7]+y|0},_doFinalize:function(){var f=this._data,u=f.words,d=this._nDataBytes*8,g=f.sigBytes*8;return u[g>>>5]|=128<<24-g%32,u[(g+64>>>9<<4)+14]=e.floor(d/4294967296),u[(g+64>>>9<<4)+15]=d,f.sigBytes=u.length*4,this._process(),this._hash},clone:function(){var f=r.clone.call(this);return f._hash=this._hash.clone(),f}});t.SHA256=r._createHelper(h),t.HmacSHA256=r._createHmacHelper(h)}(Math),n.SHA256})});var hf=Ke((Ua,lf)=>{(function(n,e,t){typeof Ua=="object"?lf.exports=Ua=e(qe(),Jc()):typeof define=="function"&&define.amd?define(["./core","./sha256"],e):e(n.CryptoJS)})(Ua,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=e.algo,r=s.SHA256,o=s.SHA224=r.extend({_doReset:function(){this._hash=new i.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var a=r._doFinalize.call(this);return a.sigBytes-=4,a}});e.SHA224=r._createHelper(o),e.HmacSHA224=r._createHmacHelper(o)}(),n.SHA224})});var Zc=Ke((Na,uf)=>{(function(n,e,t){typeof Na=="object"?uf.exports=Na=e(qe(),mr()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(n.CryptoJS)})(Na,function(n){return function(){var e=n,t=e.lib,i=t.Hasher,s=e.x64,r=s.Word,o=s.WordArray,a=e.algo;function l(){return r.create.apply(r,arguments)}var c=[l(1116352408,3609767458),l(1899447441,602891725),l(3049323471,3964484399),l(3921009573,2173295548),l(961987163,4081628472),l(1508970993,3053834265),l(2453635748,2937671579),l(2870763221,3664609560),l(3624381080,2734883394),l(310598401,1164996542),l(607225278,1323610764),l(1426881987,3590304994),l(1925078388,4068182383),l(2162078206,991336113),l(2614888103,633803317),l(3248222580,3479774868),l(3835390401,2666613458),l(4022224774,944711139),l(264347078,2341262773),l(604807628,2007800933),l(770255983,1495990901),l(1249150122,1856431235),l(1555081692,3175218132),l(1996064986,2198950837),l(2554220882,3999719339),l(2821834349,766784016),l(2952996808,2566594879),l(3210313671,3203337956),l(3336571891,1034457026),l(3584528711,2466948901),l(113926993,3758326383),l(338241895,168717936),l(666307205,1188179964),l(773529912,1546045734),l(1294757372,1522805485),l(1396182291,2643833823),l(1695183700,2343527390),l(1986661051,1014477480),l(2177026350,1206759142),l(2456956037,344077627),l(2730485921,1290863460),l(2820302411,3158454273),l(3259730800,3505952657),l(3345764771,106217008),l(3516065817,3606008344),l(3600352804,1432725776),l(4094571909,1467031594),l(275423344,851169720),l(430227734,3100823752),l(506948616,1363258195),l(659060556,3750685593),l(883997877,3785050280),l(958139571,3318307427),l(1322822218,3812723403),l(1537002063,2003034995),l(1747873779,3602036899),l(1955562222,1575990012),l(2024104815,1125592928),l(2227730452,2716904306),l(2361852424,442776044),l(2428436474,593698344),l(2756734187,3733110249),l(3204031479,2999351573),l(3329325298,3815920427),l(3391569614,3928383900),l(3515267271,566280711),l(3940187606,3454069534),l(4118630271,4000239992),l(116418474,1914138554),l(174292421,2731055270),l(289380356,3203993006),l(460393269,320620315),l(685471733,587496836),l(852142971,1086792851),l(1017036298,365543100),l(1126000580,2618297676),l(1288033470,3409855158),l(1501505948,4234509866),l(1607167915,987167468),l(1816402316,1246189591)],h=[];(function(){for(var u=0;u<80;u++)h[u]=l()})();var f=a.SHA512=i.extend({_doReset:function(){this._hash=new o.init([new r.init(1779033703,4089235720),new r.init(3144134277,2227873595),new r.init(1013904242,4271175723),new r.init(2773480762,1595750129),new r.init(1359893119,2917565137),new r.init(2600822924,725511199),new r.init(528734635,4215389547),new r.init(1541459225,327033209)])},_doProcessBlock:function(u,d){for(var g=this._hash.words,m=g[0],p=g[1],A=g[2],x=g[3],_=g[4],v=g[5],y=g[6],S=g[7],C=m.high,M=m.low,E=p.high,b=p.low,w=A.high,G=A.low,U=x.high,D=x.low,O=_.high,K=_.low,H=v.high,z=v.low,F=y.high,N=y.low,R=S.high,L=S.low,ne=C,ie=M,he=E,ae=b,we=w,xe=G,Ve=U,ft=D,Ce=O,V=K,lt=H,Ee=z,Te=F,Se=N,$e=R,Pe=L,ye=0;ye<80;ye++){var Be,nt,dt=h[ye];if(ye<16)nt=dt.high=u[d+ye*2]|0,Be=dt.low=u[d+ye*2+1]|0;else{var B=h[ye-15],I=B.high,X=B.low,le=(I>>>1|X<<31)^(I>>>8|X<<24)^I>>>7,se=(X>>>1|I<<31)^(X>>>8|I<<24)^(X>>>7|I<<25),ce=h[ye-2],me=ce.high,oe=ce.low,Z=(me>>>19|oe<<13)^(me<<3|oe>>>29)^me>>>6,P=(oe>>>19|me<<13)^(oe<<3|me>>>29)^(oe>>>6|me<<26),ee=h[ye-7],ge=ee.high,ue=ee.low,Ae=h[ye-16],Re=Ae.high,He=Ae.low;Be=se+ue,nt=le+ge+(Be>>>0<se>>>0?1:0),Be=Be+P,nt=nt+Z+(Be>>>0<P>>>0?1:0),Be=Be+He,nt=nt+Re+(Be>>>0<He>>>0?1:0),dt.high=nt,dt.low=Be}var k=Ce&lt^~Ce&Te,fe=V&Ee^~V&Se,J=ne&he^ne&we^he&we,re=ie&ae^ie&xe^ae&xe,de=(ne>>>28|ie<<4)^(ne<<30|ie>>>2)^(ne<<25|ie>>>7),Ne=(ie>>>28|ne<<4)^(ie<<30|ne>>>2)^(ie<<25|ne>>>7),Ze=(Ce>>>14|V<<18)^(Ce>>>18|V<<14)^(Ce<<23|V>>>9),rt=(V>>>14|Ce<<18)^(V>>>18|Ce<<14)^(V<<23|Ce>>>9),yn=c[ye],at=yn.high,Jt=yn.low,et=Pe+rt,Cn=$e+Ze+(et>>>0<Pe>>>0?1:0),et=et+fe,Cn=Cn+k+(et>>>0<fe>>>0?1:0),et=et+Jt,Cn=Cn+at+(et>>>0<Jt>>>0?1:0),et=et+Be,Cn=Cn+nt+(et>>>0<Be>>>0?1:0),dr=Ne+re,Vc=de+J+(dr>>>0<Ne>>>0?1:0);$e=Te,Pe=Se,Te=lt,Se=Ee,lt=Ce,Ee=V,V=ft+et|0,Ce=Ve+Cn+(V>>>0<ft>>>0?1:0)|0,Ve=we,ft=xe,we=he,xe=ae,he=ne,ae=ie,ie=et+dr|0,ne=Cn+Vc+(ie>>>0<et>>>0?1:0)|0}M=m.low=M+ie,m.high=C+ne+(M>>>0<ie>>>0?1:0),b=p.low=b+ae,p.high=E+he+(b>>>0<ae>>>0?1:0),G=A.low=G+xe,A.high=w+we+(G>>>0<xe>>>0?1:0),D=x.low=D+ft,x.high=U+Ve+(D>>>0<ft>>>0?1:0),K=_.low=K+V,_.high=O+Ce+(K>>>0<V>>>0?1:0),z=v.low=z+Ee,v.high=H+lt+(z>>>0<Ee>>>0?1:0),N=y.low=N+Se,y.high=F+Te+(N>>>0<Se>>>0?1:0),L=S.low=L+Pe,S.high=R+$e+(L>>>0<Pe>>>0?1:0)},_doFinalize:function(){var u=this._data,d=u.words,g=this._nDataBytes*8,m=u.sigBytes*8;d[m>>>5]|=128<<24-m%32,d[(m+128>>>10<<5)+30]=Math.floor(g/4294967296),d[(m+128>>>10<<5)+31]=g,u.sigBytes=d.length*4,this._process();var p=this._hash.toX32();return p},clone:function(){var u=i.clone.call(this);return u._hash=this._hash.clone(),u},blockSize:1024/32});e.SHA512=i._createHelper(f),e.HmacSHA512=i._createHmacHelper(f)}(),n.SHA512})});var df=Ke((Oa,ff)=>{(function(n,e,t){typeof Oa=="object"?ff.exports=Oa=e(qe(),mr(),Zc()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./sha512"],e):e(n.CryptoJS)})(Oa,function(n){return function(){var e=n,t=e.x64,i=t.Word,s=t.WordArray,r=e.algo,o=r.SHA512,a=r.SHA384=o.extend({_doReset:function(){this._hash=new s.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var l=o._doFinalize.call(this);return l.sigBytes-=16,l}});e.SHA384=o._createHelper(a),e.HmacSHA384=o._createHmacHelper(a)}(),n.SHA384})});var pf=Ke((ka,Af)=>{(function(n,e,t){typeof ka=="object"?Af.exports=ka=e(qe(),mr()):typeof define=="function"&&define.amd?define(["./core","./x64-core"],e):e(n.CryptoJS)})(ka,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.x64,a=o.Word,l=t.algo,c=[],h=[],f=[];(function(){for(var g=1,m=0,p=0;p<24;p++){c[g+5*m]=(p+1)*(p+2)/2%64;var A=m%5,x=(2*g+3*m)%5;g=A,m=x}for(var g=0;g<5;g++)for(var m=0;m<5;m++)h[g+5*m]=m+(2*g+3*m)%5*5;for(var _=1,v=0;v<24;v++){for(var y=0,S=0,C=0;C<7;C++){if(_&1){var M=(1<<C)-1;M<32?S^=1<<M:y^=1<<M-32}_&128?_=_<<1^113:_<<=1}f[v]=a.create(y,S)}})();var u=[];(function(){for(var g=0;g<25;g++)u[g]=a.create()})();var d=l.SHA3=r.extend({cfg:r.cfg.extend({outputLength:512}),_doReset:function(){for(var g=this._state=[],m=0;m<25;m++)g[m]=new a.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(g,m){for(var p=this._state,A=this.blockSize/2,x=0;x<A;x++){var _=g[m+2*x],v=g[m+2*x+1];_=(_<<8|_>>>24)&16711935|(_<<24|_>>>8)&4278255360,v=(v<<8|v>>>24)&16711935|(v<<24|v>>>8)&4278255360;var y=p[x];y.high^=v,y.low^=_}for(var S=0;S<24;S++){for(var C=0;C<5;C++){for(var M=0,E=0,b=0;b<5;b++){var y=p[C+5*b];M^=y.high,E^=y.low}var w=u[C];w.high=M,w.low=E}for(var C=0;C<5;C++)for(var G=u[(C+4)%5],U=u[(C+1)%5],D=U.high,O=U.low,M=G.high^(D<<1|O>>>31),E=G.low^(O<<1|D>>>31),b=0;b<5;b++){var y=p[C+5*b];y.high^=M,y.low^=E}for(var K=1;K<25;K++){var M,E,y=p[K],H=y.high,z=y.low,F=c[K];F<32?(M=H<<F|z>>>32-F,E=z<<F|H>>>32-F):(M=z<<F-32|H>>>64-F,E=H<<F-32|z>>>64-F);var N=u[h[K]];N.high=M,N.low=E}var R=u[0],L=p[0];R.high=L.high,R.low=L.low;for(var C=0;C<5;C++)for(var b=0;b<5;b++){var K=C+5*b,y=p[K],ne=u[K],ie=u[(C+1)%5+5*b],he=u[(C+2)%5+5*b];y.high=ne.high^~ie.high&he.high,y.low=ne.low^~ie.low&he.low}var y=p[0],ae=f[S];y.high^=ae.high,y.low^=ae.low}},_doFinalize:function(){var g=this._data,m=g.words,p=this._nDataBytes*8,A=g.sigBytes*8,x=this.blockSize*32;m[A>>>5]|=1<<24-A%32,m[(e.ceil((A+1)/x)*x>>>5)-1]|=128,g.sigBytes=m.length*4,this._process();for(var _=this._state,v=this.cfg.outputLength/8,y=v/8,S=[],C=0;C<y;C++){var M=_[C],E=M.high,b=M.low;E=(E<<8|E>>>24)&16711935|(E<<24|E>>>8)&4278255360,b=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360,S.push(b),S.push(E)}return new s.init(S,v)},clone:function(){for(var g=r.clone.call(this),m=g._state=this._state.slice(0),p=0;p<25;p++)m[p]=m[p].clone();return g}});t.SHA3=r._createHelper(d),t.HmacSHA3=r._createHmacHelper(d)}(Math),n.SHA3})});var mf=Ke((Qa,gf)=>{(function(n,e){typeof Qa=="object"?gf.exports=Qa=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Qa,function(n){return function(e){var t=n,i=t.lib,s=i.WordArray,r=i.Hasher,o=t.algo,a=s.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),l=s.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=s.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),h=s.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),f=s.create([0,1518500249,1859775393,2400959708,2840853838]),u=s.create([1352829926,1548603684,1836072691,2053994217,0]),d=o.RIPEMD160=r.extend({_doReset:function(){this._hash=s.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(v,y){for(var S=0;S<16;S++){var C=y+S,M=v[C];v[C]=(M<<8|M>>>24)&16711935|(M<<24|M>>>8)&4278255360}var E=this._hash.words,b=f.words,w=u.words,G=a.words,U=l.words,D=c.words,O=h.words,K,H,z,F,N,R,L,ne,ie,he;R=K=E[0],L=H=E[1],ne=z=E[2],ie=F=E[3],he=N=E[4];for(var ae,S=0;S<80;S+=1)ae=K+v[y+G[S]]|0,S<16?ae+=g(H,z,F)+b[0]:S<32?ae+=m(H,z,F)+b[1]:S<48?ae+=p(H,z,F)+b[2]:S<64?ae+=A(H,z,F)+b[3]:ae+=x(H,z,F)+b[4],ae=ae|0,ae=_(ae,D[S]),ae=ae+N|0,K=N,N=F,F=_(z,10),z=H,H=ae,ae=R+v[y+U[S]]|0,S<16?ae+=x(L,ne,ie)+w[0]:S<32?ae+=A(L,ne,ie)+w[1]:S<48?ae+=p(L,ne,ie)+w[2]:S<64?ae+=m(L,ne,ie)+w[3]:ae+=g(L,ne,ie)+w[4],ae=ae|0,ae=_(ae,O[S]),ae=ae+he|0,R=he,he=ie,ie=_(ne,10),ne=L,L=ae;ae=E[1]+z+ie|0,E[1]=E[2]+F+he|0,E[2]=E[3]+N+R|0,E[3]=E[4]+K+L|0,E[4]=E[0]+H+ne|0,E[0]=ae},_doFinalize:function(){var v=this._data,y=v.words,S=this._nDataBytes*8,C=v.sigBytes*8;y[C>>>5]|=128<<24-C%32,y[(C+64>>>9<<4)+14]=(S<<8|S>>>24)&16711935|(S<<24|S>>>8)&4278255360,v.sigBytes=(y.length+1)*4,this._process();for(var M=this._hash,E=M.words,b=0;b<5;b++){var w=E[b];E[b]=(w<<8|w>>>24)&16711935|(w<<24|w>>>8)&4278255360}return M},clone:function(){var v=r.clone.call(this);return v._hash=this._hash.clone(),v}});function g(v,y,S){return v^y^S}function m(v,y,S){return v&y|~v&S}function p(v,y,S){return(v|~y)^S}function A(v,y,S){return v&S|y&~S}function x(v,y,S){return v^(y|~S)}function _(v,y){return v<<y|v>>>32-y}t.RIPEMD160=r._createHelper(d),t.HmacRIPEMD160=r._createHmacHelper(d)}(Math),n.RIPEMD160})});var Ha=Ke((Ga,_f)=>{(function(n,e){typeof Ga=="object"?_f.exports=Ga=e(qe()):typeof define=="function"&&define.amd?define(["./core"],e):e(n.CryptoJS)})(Ga,function(n){(function(){var e=n,t=e.lib,i=t.Base,s=e.enc,r=s.Utf8,o=e.algo,a=o.HMAC=i.extend({init:function(l,c){l=this._hasher=new l.init,typeof c=="string"&&(c=r.parse(c));var h=l.blockSize,f=h*4;c.sigBytes>f&&(c=l.finalize(c)),c.clamp();for(var u=this._oKey=c.clone(),d=this._iKey=c.clone(),g=u.words,m=d.words,p=0;p<h;p++)g[p]^=1549556828,m[p]^=909522486;u.sigBytes=d.sigBytes=f,this.reset()},reset:function(){var l=this._hasher;l.reset(),l.update(this._iKey)},update:function(l){return this._hasher.update(l),this},finalize:function(l){var c=this._hasher,h=c.finalize(l);c.reset();var f=c.finalize(this._oKey.clone().concat(h));return f}})})()})});var vf=Ke((za,xf)=>{(function(n,e,t){typeof za=="object"?xf.exports=za=e(qe(),Fa(),Ha()):typeof define=="function"&&define.amd?define(["./core","./sha1","./hmac"],e):e(n.CryptoJS)})(za,function(n){return function(){var e=n,t=e.lib,i=t.Base,s=t.WordArray,r=e.algo,o=r.SHA1,a=r.HMAC,l=r.PBKDF2=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:1}),init:function(c){this.cfg=this.cfg.extend(c)},compute:function(c,h){for(var f=this.cfg,u=a.create(f.hasher,c),d=s.create(),g=s.create([1]),m=d.words,p=g.words,A=f.keySize,x=f.iterations;m.length<A;){var _=u.update(h).finalize(g);u.reset();for(var v=_.words,y=v.length,S=_,C=1;C<x;C++){S=u.finalize(S),u.reset();for(var M=S.words,E=0;E<y;E++)v[E]^=M[E]}d.concat(_),p[0]++}return d.sigBytes=A*4,d}});e.PBKDF2=function(c,h,f){return l.create(f).compute(c,h)}}(),n.PBKDF2})});var ui=Ke((Va,Ef)=>{(function(n,e,t){typeof Va=="object"?Ef.exports=Va=e(qe(),Fa(),Ha()):typeof define=="function"&&define.amd?define(["./core","./sha1","./hmac"],e):e(n.CryptoJS)})(Va,function(n){return function(){var e=n,t=e.lib,i=t.Base,s=t.WordArray,r=e.algo,o=r.MD5,a=r.EvpKDF=i.extend({cfg:i.extend({keySize:128/32,hasher:o,iterations:1}),init:function(l){this.cfg=this.cfg.extend(l)},compute:function(l,c){for(var h,f=this.cfg,u=f.hasher.create(),d=s.create(),g=d.words,m=f.keySize,p=f.iterations;g.length<m;){h&&u.update(h),h=u.update(l).finalize(c),u.reset();for(var A=1;A<p;A++)h=u.finalize(h),u.reset();d.concat(h)}return d.sigBytes=m*4,d}});e.EvpKDF=function(l,c,h){return a.create(h).compute(l,c)}}(),n.EvpKDF})});var wt=Ke((Wa,yf)=>{(function(n,e,t){typeof Wa=="object"?yf.exports=Wa=e(qe(),ui()):typeof define=="function"&&define.amd?define(["./core","./evpkdf"],e):e(n.CryptoJS)})(Wa,function(n){n.lib.Cipher||function(e){var t=n,i=t.lib,s=i.Base,r=i.WordArray,o=i.BufferedBlockAlgorithm,a=t.enc,l=a.Utf8,c=a.Base64,h=t.algo,f=h.EvpKDF,u=i.Cipher=o.extend({cfg:s.extend(),createEncryptor:function(w,G){return this.create(this._ENC_XFORM_MODE,w,G)},createDecryptor:function(w,G){return this.create(this._DEC_XFORM_MODE,w,G)},init:function(w,G,U){this.cfg=this.cfg.extend(U),this._xformMode=w,this._key=G,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(w){return this._append(w),this._process()},finalize:function(w){w&&this._append(w);var G=this._doFinalize();return G},keySize:128/32,ivSize:128/32,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function w(G){return typeof G=="string"?b:C}return function(G){return{encrypt:function(U,D,O){return w(D).encrypt(G,U,D,O)},decrypt:function(U,D,O){return w(D).decrypt(G,U,D,O)}}}}()}),d=i.StreamCipher=u.extend({_doFinalize:function(){var w=this._process(!0);return w},blockSize:1}),g=t.mode={},m=i.BlockCipherMode=s.extend({createEncryptor:function(w,G){return this.Encryptor.create(w,G)},createDecryptor:function(w,G){return this.Decryptor.create(w,G)},init:function(w,G){this._cipher=w,this._iv=G}}),p=g.CBC=function(){var w=m.extend();w.Encryptor=w.extend({processBlock:function(U,D){var O=this._cipher,K=O.blockSize;G.call(this,U,D,K),O.encryptBlock(U,D),this._prevBlock=U.slice(D,D+K)}}),w.Decryptor=w.extend({processBlock:function(U,D){var O=this._cipher,K=O.blockSize,H=U.slice(D,D+K);O.decryptBlock(U,D),G.call(this,U,D,K),this._prevBlock=H}});function G(U,D,O){var K,H=this._iv;H?(K=H,this._iv=e):K=this._prevBlock;for(var z=0;z<O;z++)U[D+z]^=K[z]}return w}(),A=t.pad={},x=A.Pkcs7={pad:function(w,G){for(var U=G*4,D=U-w.sigBytes%U,O=D<<24|D<<16|D<<8|D,K=[],H=0;H<D;H+=4)K.push(O);var z=r.create(K,D);w.concat(z)},unpad:function(w){var G=w.words[w.sigBytes-1>>>2]&255;w.sigBytes-=G}},_=i.BlockCipher=u.extend({cfg:u.cfg.extend({mode:p,padding:x}),reset:function(){var w;u.reset.call(this);var G=this.cfg,U=G.iv,D=G.mode;this._xformMode==this._ENC_XFORM_MODE?w=D.createEncryptor:(w=D.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==w?this._mode.init(this,U&&U.words):(this._mode=w.call(D,this,U&&U.words),this._mode.__creator=w)},_doProcessBlock:function(w,G){this._mode.processBlock(w,G)},_doFinalize:function(){var w,G=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(G.pad(this._data,this.blockSize),w=this._process(!0)):(w=this._process(!0),G.unpad(w)),w},blockSize:128/32}),v=i.CipherParams=s.extend({init:function(w){this.mixIn(w)},toString:function(w){return(w||this.formatter).stringify(this)}}),y=t.format={},S=y.OpenSSL={stringify:function(w){var G,U=w.ciphertext,D=w.salt;return D?G=r.create([1398893684,1701076831]).concat(D).concat(U):G=U,G.toString(c)},parse:function(w){var G,U=c.parse(w),D=U.words;return D[0]==1398893684&&D[1]==1701076831&&(G=r.create(D.slice(2,4)),D.splice(0,4),U.sigBytes-=16),v.create({ciphertext:U,salt:G})}},C=i.SerializableCipher=s.extend({cfg:s.extend({format:S}),encrypt:function(w,G,U,D){D=this.cfg.extend(D);var O=w.createEncryptor(U,D),K=O.finalize(G),H=O.cfg;return v.create({ciphertext:K,key:U,iv:H.iv,algorithm:w,mode:H.mode,padding:H.padding,blockSize:w.blockSize,formatter:D.format})},decrypt:function(w,G,U,D){D=this.cfg.extend(D),G=this._parse(G,D.format);var O=w.createDecryptor(U,D).finalize(G.ciphertext);return O},_parse:function(w,G){return typeof w=="string"?G.parse(w,this):w}}),M=t.kdf={},E=M.OpenSSL={execute:function(w,G,U,D){D||(D=r.random(64/8));var O=f.create({keySize:G+U}).compute(w,D),K=r.create(O.words.slice(G),U*4);return O.sigBytes=G*4,v.create({key:O,iv:K,salt:D})}},b=i.PasswordBasedCipher=C.extend({cfg:C.cfg.extend({kdf:E}),encrypt:function(w,G,U,D){D=this.cfg.extend(D);var O=D.kdf.execute(U,w.keySize,w.ivSize);D.iv=O.iv;var K=C.encrypt.call(this,w,G,O.key,D);return K.mixIn(O),K},decrypt:function(w,G,U,D){D=this.cfg.extend(D),G=this._parse(G,D.format);var O=D.kdf.execute(U,w.keySize,w.ivSize,G.salt);D.iv=O.iv;var K=C.decrypt.call(this,w,G,O.key,D);return K}})}()})});var Sf=Ke((Ka,Cf)=>{(function(n,e,t){typeof Ka=="object"?Cf.exports=Ka=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ka,function(n){return n.mode.CFB=function(){var e=n.lib.BlockCipherMode.extend();e.Encryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize;t.call(this,i,s,o,r),this._prevBlock=i.slice(s,s+o)}}),e.Decryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize,a=i.slice(s,s+o);t.call(this,i,s,o,r),this._prevBlock=a}});function t(i,s,r,o){var a,l=this._iv;l?(a=l.slice(0),this._iv=void 0):a=this._prevBlock,o.encryptBlock(a,0);for(var c=0;c<r;c++)i[s+c]^=a[c]}return e}(),n.mode.CFB})});var If=Ke((qa,bf)=>{(function(n,e,t){typeof qa=="object"?bf.exports=qa=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(qa,function(n){return n.mode.CTR=function(){var e=n.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize,a=this._iv,l=this._counter;a&&(l=this._counter=a.slice(0),this._iv=void 0);var c=l.slice(0);r.encryptBlock(c,0),l[o-1]=l[o-1]+1|0;for(var h=0;h<o;h++)i[s+h]^=c[h]}});return e.Decryptor=t,e}(),n.mode.CTR})});var Mf=Ke((Xa,wf)=>{(function(n,e,t){typeof Xa=="object"?wf.exports=Xa=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Xa,function(n){return n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(r){if((r>>24&255)===255){var o=r>>16&255,a=r>>8&255,l=r&255;o===255?(o=0,a===255?(a=0,l===255?l=0:++l):++a):++o,r=0,r+=o<<16,r+=a<<8,r+=l}else r+=1<<24;return r}function i(r){return(r[0]=t(r[0]))===0&&(r[1]=t(r[1])),r}var s=e.Encryptor=e.extend({processBlock:function(r,o){var a=this._cipher,l=a.blockSize,c=this._iv,h=this._counter;c&&(h=this._counter=c.slice(0),this._iv=void 0),i(h);var f=h.slice(0);a.encryptBlock(f,0);for(var u=0;u<l;u++)r[o+u]^=f[u]}});return e.Decryptor=s,e}(),n.mode.CTRGladman})});var Bf=Ke((Ya,Tf)=>{(function(n,e,t){typeof Ya=="object"?Tf.exports=Ya=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ya,function(n){return n.mode.OFB=function(){var e=n.lib.BlockCipherMode.extend(),t=e.Encryptor=e.extend({processBlock:function(i,s){var r=this._cipher,o=r.blockSize,a=this._iv,l=this._keystream;a&&(l=this._keystream=a.slice(0),this._iv=void 0),r.encryptBlock(l,0);for(var c=0;c<o;c++)i[s+c]^=l[c]}});return e.Decryptor=t,e}(),n.mode.OFB})});var Df=Ke((Ja,Rf)=>{(function(n,e,t){typeof Ja=="object"?Rf.exports=Ja=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Ja,function(n){return n.mode.ECB=function(){var e=n.lib.BlockCipherMode.extend();return e.Encryptor=e.extend({processBlock:function(t,i){this._cipher.encryptBlock(t,i)}}),e.Decryptor=e.extend({processBlock:function(t,i){this._cipher.decryptBlock(t,i)}}),e}(),n.mode.ECB})});var Ff=Ke((Za,Lf)=>{(function(n,e,t){typeof Za=="object"?Lf.exports=Za=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(Za,function(n){return n.pad.AnsiX923={pad:function(e,t){var i=e.sigBytes,s=t*4,r=s-i%s,o=i+r-1;e.clamp(),e.words[o>>>2]|=r<<24-o%4*8,e.sigBytes+=r},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},n.pad.Ansix923})});var Uf=Ke((ja,Pf)=>{(function(n,e,t){typeof ja=="object"?Pf.exports=ja=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(ja,function(n){return n.pad.Iso10126={pad:function(e,t){var i=t*4,s=i-e.sigBytes%i;e.concat(n.lib.WordArray.random(s-1)).concat(n.lib.WordArray.create([s<<24],1))},unpad:function(e){var t=e.words[e.sigBytes-1>>>2]&255;e.sigBytes-=t}},n.pad.Iso10126})});var Of=Ke(($a,Nf)=>{(function(n,e,t){typeof $a=="object"?Nf.exports=$a=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})($a,function(n){return n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971})});var Qf=Ke((eo,kf)=>{(function(n,e,t){typeof eo=="object"?kf.exports=eo=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(eo,function(n){return n.pad.ZeroPadding={pad:function(e,t){var i=t*4;e.clamp(),e.sigBytes+=i-(e.sigBytes%i||i)},unpad:function(e){for(var t=e.words,i=e.sigBytes-1,i=e.sigBytes-1;i>=0;i--)if(t[i>>>2]>>>24-i%4*8&255){e.sigBytes=i+1;break}}},n.pad.ZeroPadding})});var Hf=Ke((to,Gf)=>{(function(n,e,t){typeof to=="object"?Gf.exports=to=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(to,function(n){return n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding})});var Vf=Ke((no,zf)=>{(function(n,e,t){typeof no=="object"?zf.exports=no=e(qe(),wt()):typeof define=="function"&&define.amd?define(["./core","./cipher-core"],e):e(n.CryptoJS)})(no,function(n){return function(e){var t=n,i=t.lib,s=i.CipherParams,r=t.enc,o=r.Hex,a=t.format,l=a.Hex={stringify:function(c){return c.ciphertext.toString(o)},parse:function(c){var h=o.parse(c);return s.create({ciphertext:h})}}}(),n.format.Hex})});var Kf=Ke((io,Wf)=>{(function(n,e,t){typeof io=="object"?Wf.exports=io=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(io,function(n){return function(){var e=n,t=e.lib,i=t.BlockCipher,s=e.algo,r=[],o=[],a=[],l=[],c=[],h=[],f=[],u=[],d=[],g=[];(function(){for(var A=[],x=0;x<256;x++)x<128?A[x]=x<<1:A[x]=x<<1^283;for(var _=0,v=0,x=0;x<256;x++){var y=v^v<<1^v<<2^v<<3^v<<4;y=y>>>8^y&255^99,r[_]=y,o[y]=_;var S=A[_],C=A[S],M=A[C],E=A[y]*257^y*16843008;a[_]=E<<24|E>>>8,l[_]=E<<16|E>>>16,c[_]=E<<8|E>>>24,h[_]=E;var E=M*16843009^C*65537^S*257^_*16843008;f[y]=E<<24|E>>>8,u[y]=E<<16|E>>>16,d[y]=E<<8|E>>>24,g[y]=E,_?(_=S^A[A[A[M^S]]],v^=A[A[v]]):_=v=1}})();var m=[0,1,2,4,8,16,32,64,128,27,54],p=s.AES=i.extend({_doReset:function(){var A;if(!(this._nRounds&&this._keyPriorReset===this._key)){for(var x=this._keyPriorReset=this._key,_=x.words,v=x.sigBytes/4,y=this._nRounds=v+6,S=(y+1)*4,C=this._keySchedule=[],M=0;M<S;M++)M<v?C[M]=_[M]:(A=C[M-1],M%v?v>6&&M%v==4&&(A=r[A>>>24]<<24|r[A>>>16&255]<<16|r[A>>>8&255]<<8|r[A&255]):(A=A<<8|A>>>24,A=r[A>>>24]<<24|r[A>>>16&255]<<16|r[A>>>8&255]<<8|r[A&255],A^=m[M/v|0]<<24),C[M]=C[M-v]^A);for(var E=this._invKeySchedule=[],b=0;b<S;b++){var M=S-b;if(b%4)var A=C[M];else var A=C[M-4];b<4||M<=4?E[b]=A:E[b]=f[r[A>>>24]]^u[r[A>>>16&255]]^d[r[A>>>8&255]]^g[r[A&255]]}}},encryptBlock:function(A,x){this._doCryptBlock(A,x,this._keySchedule,a,l,c,h,r)},decryptBlock:function(A,x){var _=A[x+1];A[x+1]=A[x+3],A[x+3]=_,this._doCryptBlock(A,x,this._invKeySchedule,f,u,d,g,o);var _=A[x+1];A[x+1]=A[x+3],A[x+3]=_},_doCryptBlock:function(A,x,_,v,y,S,C,M){for(var E=this._nRounds,b=A[x]^_[0],w=A[x+1]^_[1],G=A[x+2]^_[2],U=A[x+3]^_[3],D=4,O=1;O<E;O++){var K=v[b>>>24]^y[w>>>16&255]^S[G>>>8&255]^C[U&255]^_[D++],H=v[w>>>24]^y[G>>>16&255]^S[U>>>8&255]^C[b&255]^_[D++],z=v[G>>>24]^y[U>>>16&255]^S[b>>>8&255]^C[w&255]^_[D++],F=v[U>>>24]^y[b>>>16&255]^S[w>>>8&255]^C[G&255]^_[D++];b=K,w=H,G=z,U=F}var K=(M[b>>>24]<<24|M[w>>>16&255]<<16|M[G>>>8&255]<<8|M[U&255])^_[D++],H=(M[w>>>24]<<24|M[G>>>16&255]<<16|M[U>>>8&255]<<8|M[b&255])^_[D++],z=(M[G>>>24]<<24|M[U>>>16&255]<<16|M[b>>>8&255]<<8|M[w&255])^_[D++],F=(M[U>>>24]<<24|M[b>>>16&255]<<16|M[w>>>8&255]<<8|M[G&255])^_[D++];A[x]=K,A[x+1]=H,A[x+2]=z,A[x+3]=F},keySize:256/32});e.AES=i._createHelper(p)}(),n.AES})});var Xf=Ke((so,qf)=>{(function(n,e,t){typeof so=="object"?qf.exports=so=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(so,function(n){return function(){var e=n,t=e.lib,i=t.WordArray,s=t.BlockCipher,r=e.algo,o=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],a=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],l=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],c=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],h=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],f=r.DES=s.extend({_doReset:function(){for(var m=this._key,p=m.words,A=[],x=0;x<56;x++){var _=o[x]-1;A[x]=p[_>>>5]>>>31-_%32&1}for(var v=this._subKeys=[],y=0;y<16;y++){for(var S=v[y]=[],C=l[y],x=0;x<24;x++)S[x/6|0]|=A[(a[x]-1+C)%28]<<31-x%6,S[4+(x/6|0)]|=A[28+(a[x+24]-1+C)%28]<<31-x%6;S[0]=S[0]<<1|S[0]>>>31;for(var x=1;x<7;x++)S[x]=S[x]>>>(x-1)*4+3;S[7]=S[7]<<5|S[7]>>>27}for(var M=this._invSubKeys=[],x=0;x<16;x++)M[x]=v[15-x]},encryptBlock:function(m,p){this._doCryptBlock(m,p,this._subKeys)},decryptBlock:function(m,p){this._doCryptBlock(m,p,this._invSubKeys)},_doCryptBlock:function(m,p,A){this._lBlock=m[p],this._rBlock=m[p+1],u.call(this,4,252645135),u.call(this,16,65535),d.call(this,2,858993459),d.call(this,8,16711935),u.call(this,1,1431655765);for(var x=0;x<16;x++){for(var _=A[x],v=this._lBlock,y=this._rBlock,S=0,C=0;C<8;C++)S|=c[C][((y^_[C])&h[C])>>>0];this._lBlock=y,this._rBlock=v^S}var M=this._lBlock;this._lBlock=this._rBlock,this._rBlock=M,u.call(this,1,1431655765),d.call(this,8,16711935),d.call(this,2,858993459),u.call(this,16,65535),u.call(this,4,252645135),m[p]=this._lBlock,m[p+1]=this._rBlock},keySize:64/32,ivSize:64/32,blockSize:64/32});function u(m,p){var A=(this._lBlock>>>m^this._rBlock)&p;this._rBlock^=A,this._lBlock^=A<<m}function d(m,p){var A=(this._rBlock>>>m^this._lBlock)&p;this._lBlock^=A,this._rBlock^=A<<m}e.DES=s._createHelper(f);var g=r.TripleDES=s.extend({_doReset:function(){var m=this._key,p=m.words;if(p.length!==2&&p.length!==4&&p.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var A=p.slice(0,2),x=p.length<4?p.slice(0,2):p.slice(2,4),_=p.length<6?p.slice(0,2):p.slice(4,6);this._des1=f.createEncryptor(i.create(A)),this._des2=f.createEncryptor(i.create(x)),this._des3=f.createEncryptor(i.create(_))},encryptBlock:function(m,p){this._des1.encryptBlock(m,p),this._des2.decryptBlock(m,p),this._des3.encryptBlock(m,p)},decryptBlock:function(m,p){this._des3.decryptBlock(m,p),this._des2.encryptBlock(m,p),this._des1.decryptBlock(m,p)},keySize:192/32,ivSize:64/32,blockSize:64/32});e.TripleDES=s._createHelper(g)}(),n.TripleDES})});var Jf=Ke((ro,Yf)=>{(function(n,e,t){typeof ro=="object"?Yf.exports=ro=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(ro,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,s=e.algo,r=s.RC4=i.extend({_doReset:function(){for(var l=this._key,c=l.words,h=l.sigBytes,f=this._S=[],u=0;u<256;u++)f[u]=u;for(var u=0,d=0;u<256;u++){var g=u%h,m=c[g>>>2]>>>24-g%4*8&255;d=(d+f[u]+m)%256;var p=f[u];f[u]=f[d],f[d]=p}this._i=this._j=0},_doProcessBlock:function(l,c){l[c]^=o.call(this)},keySize:256/32,ivSize:0});function o(){for(var l=this._S,c=this._i,h=this._j,f=0,u=0;u<4;u++){c=(c+1)%256,h=(h+l[c])%256;var d=l[c];l[c]=l[h],l[h]=d,f|=l[(l[c]+l[h])%256]<<24-u*8}return this._i=c,this._j=h,f}e.RC4=i._createHelper(r);var a=s.RC4Drop=r.extend({cfg:r.cfg.extend({drop:192}),_doReset:function(){r._doReset.call(this);for(var l=this.cfg.drop;l>0;l--)o.call(this)}});e.RC4Drop=i._createHelper(a)}(),n.RC4})});var jf=Ke((ao,Zf)=>{(function(n,e,t){typeof ao=="object"?Zf.exports=ao=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(ao,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,s=e.algo,r=[],o=[],a=[],l=s.Rabbit=i.extend({_doReset:function(){for(var h=this._key.words,f=this.cfg.iv,u=0;u<4;u++)h[u]=(h[u]<<8|h[u]>>>24)&16711935|(h[u]<<24|h[u]>>>8)&4278255360;var d=this._X=[h[0],h[3]<<16|h[2]>>>16,h[1],h[0]<<16|h[3]>>>16,h[2],h[1]<<16|h[0]>>>16,h[3],h[2]<<16|h[1]>>>16],g=this._C=[h[2]<<16|h[2]>>>16,h[0]&4294901760|h[1]&65535,h[3]<<16|h[3]>>>16,h[1]&4294901760|h[2]&65535,h[0]<<16|h[0]>>>16,h[2]&4294901760|h[3]&65535,h[1]<<16|h[1]>>>16,h[3]&4294901760|h[0]&65535];this._b=0;for(var u=0;u<4;u++)c.call(this);for(var u=0;u<8;u++)g[u]^=d[u+4&7];if(f){var m=f.words,p=m[0],A=m[1],x=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360,_=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360,v=x>>>16|_&4294901760,y=_<<16|x&65535;g[0]^=x,g[1]^=v,g[2]^=_,g[3]^=y,g[4]^=x,g[5]^=v,g[6]^=_,g[7]^=y;for(var u=0;u<4;u++)c.call(this)}},_doProcessBlock:function(h,f){var u=this._X;c.call(this),r[0]=u[0]^u[5]>>>16^u[3]<<16,r[1]=u[2]^u[7]>>>16^u[5]<<16,r[2]=u[4]^u[1]>>>16^u[7]<<16,r[3]=u[6]^u[3]>>>16^u[1]<<16;for(var d=0;d<4;d++)r[d]=(r[d]<<8|r[d]>>>24)&16711935|(r[d]<<24|r[d]>>>8)&4278255360,h[f+d]^=r[d]},blockSize:128/32,ivSize:64/32});function c(){for(var h=this._X,f=this._C,u=0;u<8;u++)o[u]=f[u];f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0<o[0]>>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0<o[1]>>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0<o[2]>>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0<o[3]>>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0<o[4]>>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0<o[5]>>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0<o[6]>>>0?1:0)|0,this._b=f[7]>>>0<o[7]>>>0?1:0;for(var u=0;u<8;u++){var d=h[u]+f[u],g=d&65535,m=d>>>16,p=((g*g>>>17)+g*m>>>15)+m*m,A=((d&4294901760)*d|0)+((d&65535)*d|0);a[u]=p^A}h[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,h[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,h[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,h[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,h[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,h[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,h[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,h[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.Rabbit=i._createHelper(l)}(),n.Rabbit})});var ed=Ke((oo,$f)=>{(function(n,e,t){typeof oo=="object"?$f.exports=oo=e(qe(),Ni(),Oi(),ui(),wt()):typeof define=="function"&&define.amd?define(["./core","./enc-base64","./md5","./evpkdf","./cipher-core"],e):e(n.CryptoJS)})(oo,function(n){return function(){var e=n,t=e.lib,i=t.StreamCipher,s=e.algo,r=[],o=[],a=[],l=s.RabbitLegacy=i.extend({_doReset:function(){var h=this._key.words,f=this.cfg.iv,u=this._X=[h[0],h[3]<<16|h[2]>>>16,h[1],h[0]<<16|h[3]>>>16,h[2],h[1]<<16|h[0]>>>16,h[3],h[2]<<16|h[1]>>>16],d=this._C=[h[2]<<16|h[2]>>>16,h[0]&4294901760|h[1]&65535,h[3]<<16|h[3]>>>16,h[1]&4294901760|h[2]&65535,h[0]<<16|h[0]>>>16,h[2]&4294901760|h[3]&65535,h[1]<<16|h[1]>>>16,h[3]&4294901760|h[0]&65535];this._b=0;for(var g=0;g<4;g++)c.call(this);for(var g=0;g<8;g++)d[g]^=u[g+4&7];if(f){var m=f.words,p=m[0],A=m[1],x=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360,_=(A<<8|A>>>24)&16711935|(A<<24|A>>>8)&4278255360,v=x>>>16|_&4294901760,y=_<<16|x&65535;d[0]^=x,d[1]^=v,d[2]^=_,d[3]^=y,d[4]^=x,d[5]^=v,d[6]^=_,d[7]^=y;for(var g=0;g<4;g++)c.call(this)}},_doProcessBlock:function(h,f){var u=this._X;c.call(this),r[0]=u[0]^u[5]>>>16^u[3]<<16,r[1]=u[2]^u[7]>>>16^u[5]<<16,r[2]=u[4]^u[1]>>>16^u[7]<<16,r[3]=u[6]^u[3]>>>16^u[1]<<16;for(var d=0;d<4;d++)r[d]=(r[d]<<8|r[d]>>>24)&16711935|(r[d]<<24|r[d]>>>8)&4278255360,h[f+d]^=r[d]},blockSize:128/32,ivSize:64/32});function c(){for(var h=this._X,f=this._C,u=0;u<8;u++)o[u]=f[u];f[0]=f[0]+1295307597+this._b|0,f[1]=f[1]+3545052371+(f[0]>>>0<o[0]>>>0?1:0)|0,f[2]=f[2]+886263092+(f[1]>>>0<o[1]>>>0?1:0)|0,f[3]=f[3]+1295307597+(f[2]>>>0<o[2]>>>0?1:0)|0,f[4]=f[4]+3545052371+(f[3]>>>0<o[3]>>>0?1:0)|0,f[5]=f[5]+886263092+(f[4]>>>0<o[4]>>>0?1:0)|0,f[6]=f[6]+1295307597+(f[5]>>>0<o[5]>>>0?1:0)|0,f[7]=f[7]+3545052371+(f[6]>>>0<o[6]>>>0?1:0)|0,this._b=f[7]>>>0<o[7]>>>0?1:0;for(var u=0;u<8;u++){var d=h[u]+f[u],g=d&65535,m=d>>>16,p=((g*g>>>17)+g*m>>>15)+m*m,A=((d&4294901760)*d|0)+((d&65535)*d|0);a[u]=p^A}h[0]=a[0]+(a[7]<<16|a[7]>>>16)+(a[6]<<16|a[6]>>>16)|0,h[1]=a[1]+(a[0]<<8|a[0]>>>24)+a[7]|0,h[2]=a[2]+(a[1]<<16|a[1]>>>16)+(a[0]<<16|a[0]>>>16)|0,h[3]=a[3]+(a[2]<<8|a[2]>>>24)+a[1]|0,h[4]=a[4]+(a[3]<<16|a[3]>>>16)+(a[2]<<16|a[2]>>>16)|0,h[5]=a[5]+(a[4]<<8|a[4]>>>24)+a[3]|0,h[6]=a[6]+(a[5]<<16|a[5]>>>16)+(a[4]<<16|a[4]>>>16)|0,h[7]=a[7]+(a[6]<<8|a[6]>>>24)+a[5]|0}e.RabbitLegacy=i._createHelper(l)}(),n.RabbitLegacy})});var nd=Ke((co,td)=>{(function(n,e,t){typeof co=="object"?td.exports=co=e(qe(),mr(),$u(),tf(),Ni(),rf(),Oi(),Fa(),Jc(),hf(),Zc(),df(),pf(),mf(),Ha(),vf(),ui(),wt(),Sf(),If(),Mf(),Bf(),Df(),Ff(),Uf(),Of(),Qf(),Hf(),Vf(),Kf(),Xf(),Jf(),jf(),ed()):typeof define=="function"&&define.amd?define(["./core","./x64-core","./lib-typedarrays","./enc-utf16","./enc-base64","./enc-base64url","./md5","./sha1","./sha256","./sha224","./sha512","./sha384","./sha3","./ripemd160","./hmac","./pbkdf2","./evpkdf","./cipher-core","./mode-cfb","./mode-ctr","./mode-ctr-gladman","./mode-ofb","./mode-ecb","./pad-ansix923","./pad-iso10126","./pad-iso97971","./pad-zeropadding","./pad-nopadding","./format-hex","./aes","./tripledes","./rc4","./rabbit","./rabbit-legacy"],e):n.CryptoJS=e(n.CryptoJS)})(co,function(n){return n})});var pr=class{constructor(e){this.config=e}IsTokenExpired(){if(!this.config.EXPIRES)return!1;let e=this.config.EXPIRES;if(!e)return!0;let t=new Date().getTime(),s=new Date(e).getTime()-t;return e===""||s<=0}IsConfigExpired(){return this.LoadConfig(),!this.config.JWT||!this.config.ORGID}RequestOptions(e,t){return hi({method:e,headers:hi(hi({},{Accept:"application/json","Content-Type":"application/json"}),this.config.JWT&&{Authorization:this.config.JWT})},e==="POST"&&{body:JSON.stringify(t)})}Get(e){return it(this,null,function*(){return yield(yield fetch(this.config.HOST+e,this.RequestOptions("GET"))).json()})}Post(e,t){return it(this,null,function*(){return yield(yield fetch(this.config.HOST+e,this.RequestOptions("POST",t||{}))).json()})}StoreConfig(e){e.JWT&&(localStorage.setItem(`${this.config.STORE_PREFIX}jwtToken`,e.JWT),this.config.JWT=e.JWT),e.EXPIRES&&(localStorage.setItem(`${this.config.STORE_PREFIX}expires`,e.EXPIRES),this.config.EXPIRES=e.EXPIRES),e.ORGID&&(localStorage.setItem(`${this.config.STORE_PREFIX}orgId`,e.ORGID),this.config.ORGID=e.ORGID)}LoadConfig(){let e=localStorage.getItem(`${this.config.STORE_PREFIX}jwtToken`);e&&(this.config.JWT=e);let t=localStorage.getItem(`${this.config.STORE_PREFIX}orgId`);t&&(this.config.ORGID=t);let i=localStorage.getItem(`${this.config.STORE_PREFIX}expires`);return i&&(this.config.EXPIRES=i),this.config}};var Tg={storePrefix:"sprie-embed-",host:"https://api.sprie.io"},ba=Object.freeze(Tg);var Xu="0.1.3001";var As=class{constructor(e){this.isAuthenticated=!1,this.fetcher=e}Authenticate(e){return it(this,null,function*(){if(this.fetcher.LoadConfig(),console.log(this.fetcher.LoadConfig()),(this.fetcher.IsTokenExpired()||this.fetcher.IsConfigExpired())&&(yield this.AuthServiceApi(e)),this.isAuthenticated=!(this.fetcher.IsTokenExpired()&&this.fetcher.IsConfigExpired()),this.org=this.fetcher.config.ORGID,this.apiKey=e,!this.isAuthenticated)throw new Error("Sprie Authentication failed!")})}AuthServiceApi(e){return it(this,null,function*(){let t=`/v1/widget/auth?api=${e}`,i=yield this.fetcher.Get(t);if(!i.access||!i.orgId)throw new Error("SPRIE key Not Authorised");this.fetcher.StoreConfig(Ku(hi({},this.fetcher.config),{JWT:i.access,ORGID:i.orgId,EXPIRES:i.expires}))})}FetchAssetBySKUOrBarcode(e){return it(this,null,function*(){let t="/v1/widget/variants/";if(e.barcode)t+=`${e.barcode}`;else if(e.sku)t+=`${e.sku}`;else throw new Error("Need either sku or barcode.");return t+="?populate-customisation=true",yield this.fetcher.Get(t)})}FetchCustomisationList(){return it(this,null,function*(){let e="/v1/widget/list-customisation?search=type:Lens&limit=50";return yield this.fetcher.Get(e)})}DownloadMA(e){return it(this,null,function*(){try{let t=`/v1/widget/org/${e.orgId}/asset/${e.assetsId}/universal-full-encrypted`,i=yield this.fetcher.Get(t),s=`org/${e.orgId}/asset/${e.assetsId}`;if(!i)throw new Error("Failed to download model asset.");return{asset:i,decryptionKey:s}}catch(t){throw new Error("Failed to download model asset.")}})}HandleAssetUsage(e){return it(this,null,function*(){if(!this.fetcher.IsConfigExpired()&&e){let t={org:this.fetcher.config.ORGID,asset:e,timestamp:new Date().toISOString()},i="/v1/analytics/trigger";yield this.fetcher.Post(i,t)}})}};var Rg="SprieEmbedEvent";function gr(n,e){let t=`${Rg}:on${n}`,i=e?new CustomEvent(t,{detail:e}):new Event(t);document.dispatchEvent(i)}var Dg={AuthLoading:n=>gr("AuthLoading",n),AuthDone:()=>gr("AuthDone"),AuthErr:n=>gr("AuthErr",n),FetchingData:()=>gr("FetchingData"),EmbedLoaded:()=>gr("EmbedLoaded")},Sn=Dg;var yo=Mg(nd());function vs(n){let e=n.length;for(;--e>=0;)n[e]=0}var Lg=0,Gd=1,Fg=2,Pg=3,Ug=258,El=29,Dr=256,Sr=Dr+1+El,ms=30,yl=19,Hd=2*Sr+1,ki=15,jc=16,Ng=7,Cl=256,zd=16,Vd=17,Wd=18,fl=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),po=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Og=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Kd=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),kg=512,Yn=new Array((Sr+2)*2);vs(Yn);var Er=new Array(ms*2);vs(Er);var br=new Array(kg);vs(br);var Ir=new Array(Ug-Pg+1);vs(Ir);var Sl=new Array(El);vs(Sl);var go=new Array(ms);vs(go);function $c(n,e,t,i,s){this.static_tree=n,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=s,this.has_stree=n&&n.length}var qd,Xd,Yd;function el(n,e){this.dyn_tree=n,this.max_code=0,this.stat_desc=e}var Jd=n=>n<256?br[n]:br[256+(n>>>7)],wr=(n,e)=>{n.pending_buf[n.pending++]=e&255,n.pending_buf[n.pending++]=e>>>8&255},qt=(n,e,t)=>{n.bi_valid>jc-t?(n.bi_buf|=e<<n.bi_valid&65535,wr(n,n.bi_buf),n.bi_buf=e>>jc-n.bi_valid,n.bi_valid+=t-jc):(n.bi_buf|=e<<n.bi_valid&65535,n.bi_valid+=t)},Un=(n,e,t)=>{qt(n,t[e*2],t[e*2+1])},Zd=(n,e)=>{let t=0;do t|=n&1,n>>>=1,t<<=1;while(--e>0);return t>>>1},Qg=n=>{n.bi_valid===16?(wr(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},Gg=(n,e)=>{let t=e.dyn_tree,i=e.max_code,s=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length,c,h,f,u,d,g,m=0;for(u=0;u<=ki;u++)n.bl_count[u]=0;for(t[n.heap[n.heap_max]*2+1]=0,c=n.heap_max+1;c<Hd;c++)h=n.heap[c],u=t[t[h*2+1]*2+1]+1,u>l&&(u=l,m++),t[h*2+1]=u,!(h>i)&&(n.bl_count[u]++,d=0,h>=a&&(d=o[h-a]),g=t[h*2],n.opt_len+=g*(u+d),r&&(n.static_len+=g*(s[h*2+1]+d)));if(m!==0){do{for(u=l-1;n.bl_count[u]===0;)u--;n.bl_count[u]--,n.bl_count[u+1]+=2,n.bl_count[l]--,m-=2}while(m>0);for(u=l;u!==0;u--)for(h=n.bl_count[u];h!==0;)f=n.heap[--c],!(f>i)&&(t[f*2+1]!==u&&(n.opt_len+=(u-t[f*2+1])*t[f*2],t[f*2+1]=u),h--)}},jd=(n,e,t)=>{let i=new Array(ki+1),s=0,r,o;for(r=1;r<=ki;r++)s=s+t[r-1]<<1,i[r]=s;for(o=0;o<=e;o++){let a=n[o*2+1];a!==0&&(n[o*2]=Zd(i[a]++,a))}},Hg=()=>{let n,e,t,i,s,r=new Array(ki+1);for(t=0,i=0;i<El-1;i++)for(Sl[i]=t,n=0;n<1<<fl[i];n++)Ir[t++]=i;for(Ir[t-1]=i,s=0,i=0;i<16;i++)for(go[i]=s,n=0;n<1<<po[i];n++)br[s++]=i;for(s>>=7;i<ms;i++)for(go[i]=s<<7,n=0;n<1<<po[i]-7;n++)br[256+s++]=i;for(e=0;e<=ki;e++)r[e]=0;for(n=0;n<=143;)Yn[n*2+1]=8,n++,r[8]++;for(;n<=255;)Yn[n*2+1]=9,n++,r[9]++;for(;n<=279;)Yn[n*2+1]=7,n++,r[7]++;for(;n<=287;)Yn[n*2+1]=8,n++,r[8]++;for(jd(Yn,Sr+1,r),n=0;n<ms;n++)Er[n*2+1]=5,Er[n*2]=Zd(n,5);qd=new $c(Yn,fl,Dr+1,Sr,ki),Xd=new $c(Er,po,0,ms,ki),Yd=new $c(new Array(0),Og,0,yl,Ng)},$d=n=>{let e;for(e=0;e<Sr;e++)n.dyn_ltree[e*2]=0;for(e=0;e<ms;e++)n.dyn_dtree[e*2]=0;for(e=0;e<yl;e++)n.bl_tree[e*2]=0;n.dyn_ltree[Cl*2]=1,n.opt_len=n.static_len=0,n.sym_next=n.matches=0},eA=n=>{n.bi_valid>8?wr(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},id=(n,e,t,i)=>{let s=e*2,r=t*2;return n[s]<n[r]||n[s]===n[r]&&i[e]<=i[t]},tl=(n,e,t)=>{let i=n.heap[t],s=t<<1;for(;s<=n.heap_len&&(s<n.heap_len&&id(e,n.heap[s+1],n.heap[s],n.depth)&&s++,!id(e,i,n.heap[s],n.depth));)n.heap[t]=n.heap[s],t=s,s<<=1;n.heap[t]=i},sd=(n,e,t)=>{let i,s,r=0,o,a;if(n.sym_next!==0)do i=n.pending_buf[n.sym_buf+r++]&255,i+=(n.pending_buf[n.sym_buf+r++]&255)<<8,s=n.pending_buf[n.sym_buf+r++],i===0?Un(n,s,e):(o=Ir[s],Un(n,o+Dr+1,e),a=fl[o],a!==0&&(s-=Sl[o],qt(n,s,a)),i--,o=Jd(i),Un(n,o,t),a=po[o],a!==0&&(i-=go[o],qt(n,i,a)));while(r<n.sym_next);Un(n,Cl,e)},dl=(n,e)=>{let t=e.dyn_tree,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.elems,o,a,l=-1,c;for(n.heap_len=0,n.heap_max=Hd,o=0;o<r;o++)t[o*2]!==0?(n.heap[++n.heap_len]=l=o,n.depth[o]=0):t[o*2+1]=0;for(;n.heap_len<2;)c=n.heap[++n.heap_len]=l<2?++l:0,t[c*2]=1,n.depth[c]=0,n.opt_len--,s&&(n.static_len-=i[c*2+1]);for(e.max_code=l,o=n.heap_len>>1;o>=1;o--)tl(n,t,o);c=r;do o=n.heap[1],n.heap[1]=n.heap[n.heap_len--],tl(n,t,1),a=n.heap[1],n.heap[--n.heap_max]=o,n.heap[--n.heap_max]=a,t[c*2]=t[o*2]+t[a*2],n.depth[c]=(n.depth[o]>=n.depth[a]?n.depth[o]:n.depth[a])+1,t[o*2+1]=t[a*2+1]=c,n.heap[1]=c++,tl(n,t,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],Gg(n,e),jd(t,l,n.bl_count)},rd=(n,e,t)=>{let i,s=-1,r,o=e[0*2+1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)r=o,o=e[(i+1)*2+1],!(++a<l&&r===o)&&(a<c?n.bl_tree[r*2]+=a:r!==0?(r!==s&&n.bl_tree[r*2]++,n.bl_tree[zd*2]++):a<=10?n.bl_tree[Vd*2]++:n.bl_tree[Wd*2]++,a=0,s=r,o===0?(l=138,c=3):r===o?(l=6,c=3):(l=7,c=4))},ad=(n,e,t)=>{let i,s=-1,r,o=e[0*2+1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),i=0;i<=t;i++)if(r=o,o=e[(i+1)*2+1],!(++a<l&&r===o)){if(a<c)do Un(n,r,n.bl_tree);while(--a!==0);else r!==0?(r!==s&&(Un(n,r,n.bl_tree),a--),Un(n,zd,n.bl_tree),qt(n,a-3,2)):a<=10?(Un(n,Vd,n.bl_tree),qt(n,a-3,3)):(Un(n,Wd,n.bl_tree),qt(n,a-11,7));a=0,s=r,o===0?(l=138,c=3):r===o?(l=6,c=3):(l=7,c=4)}},zg=n=>{let e;for(rd(n,n.dyn_ltree,n.l_desc.max_code),rd(n,n.dyn_dtree,n.d_desc.max_code),dl(n,n.bl_desc),e=yl-1;e>=3&&n.bl_tree[Kd[e]*2+1]===0;e--);return n.opt_len+=3*(e+1)+5+5+4,e},Vg=(n,e,t,i)=>{let s;for(qt(n,e-257,5),qt(n,t-1,5),qt(n,i-4,4),s=0;s<i;s++)qt(n,n.bl_tree[Kd[s]*2+1],3);ad(n,n.dyn_ltree,e-1),ad(n,n.dyn_dtree,t-1)},Wg=n=>{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&n.dyn_ltree[t*2]!==0)return 0;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return 1;for(t=32;t<Dr;t++)if(n.dyn_ltree[t*2]!==0)return 1;return 0},od=!1,Kg=n=>{od||(Hg(),od=!0),n.l_desc=new el(n.dyn_ltree,qd),n.d_desc=new el(n.dyn_dtree,Xd),n.bl_desc=new el(n.bl_tree,Yd),n.bi_buf=0,n.bi_valid=0,$d(n)},tA=(n,e,t,i)=>{qt(n,(Lg<<1)+(i?1:0),3),eA(n),wr(n,t),wr(n,~t),t&&n.pending_buf.set(n.window.subarray(e,e+t),n.pending),n.pending+=t},qg=n=>{qt(n,Gd<<1,3),Un(n,Cl,Yn),Qg(n)},Xg=(n,e,t,i)=>{let s,r,o=0;n.level>0?(n.strm.data_type===2&&(n.strm.data_type=Wg(n)),dl(n,n.l_desc),dl(n,n.d_desc),o=zg(n),s=n.opt_len+3+7>>>3,r=n.static_len+3+7>>>3,r<=s&&(s=r)):s=r=t+5,t+4<=s&&e!==-1?tA(n,e,t,i):n.strategy===4||r===s?(qt(n,(Gd<<1)+(i?1:0),3),sd(n,Yn,Er)):(qt(n,(Fg<<1)+(i?1:0),3),Vg(n,n.l_desc.max_code+1,n.d_desc.max_code+1,o+1),sd(n,n.dyn_ltree,n.dyn_dtree)),$d(n),i&&eA(n)},Yg=(n,e,t)=>(n.pending_buf[n.sym_buf+n.sym_next++]=e,n.pending_buf[n.sym_buf+n.sym_next++]=e>>8,n.pending_buf[n.sym_buf+n.sym_next++]=t,e===0?n.dyn_ltree[t*2]++:(n.matches++,e--,n.dyn_ltree[(Ir[t]+Dr+1)*2]++,n.dyn_dtree[Jd(e)*2]++),n.sym_next===n.sym_end),Jg=Kg,Zg=tA,jg=Xg,$g=Yg,em=qg,tm={_tr_init:Jg,_tr_stored_block:Zg,_tr_flush_block:jg,_tr_tally:$g,_tr_align:em},nm=(n,e,t,i)=>{let s=n&65535|0,r=n>>>16&65535|0,o=0;for(;t!==0;){o=t>2e3?2e3:t,t-=o;do s=s+e[i++]|0,r=r+s|0;while(--o);s%=65521,r%=65521}return s|r<<16|0},Mr=nm,im=()=>{let n,e=[];for(var t=0;t<256;t++){n=t;for(var i=0;i<8;i++)n=n&1?3988292384^n>>>1:n>>>1;e[t]=n}return e},sm=new Uint32Array(im()),rm=(n,e,t,i)=>{let s=sm,r=i+t;n^=-1;for(let o=i;o<r;o++)n=n>>>8^s[(n^e[o])&255];return n^-1},Mt=rm,Hi={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Wi={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:am,_tr_stored_block:Al,_tr_flush_block:om,_tr_tally:Ai,_tr_align:cm}=tm,{Z_NO_FLUSH:pi,Z_PARTIAL_FLUSH:lm,Z_FULL_FLUSH:hm,Z_FINISH:ln,Z_BLOCK:cd,Z_OK:Ut,Z_STREAM_END:ld,Z_STREAM_ERROR:Nn,Z_DATA_ERROR:um,Z_BUF_ERROR:nl,Z_DEFAULT_COMPRESSION:fm,Z_FILTERED:dm,Z_HUFFMAN_ONLY:lo,Z_RLE:Am,Z_FIXED:pm,Z_DEFAULT_STRATEGY:gm,Z_UNKNOWN:mm,Z_DEFLATED:xo}=Wi,_m=9,xm=15,vm=8,Em=29,ym=256,pl=ym+1+Em,Cm=30,Sm=19,bm=2*pl+1,Im=15,Xe=3,di=258,On=di+Xe+1,wm=32,_s=42,bl=57,gl=69,ml=73,_l=91,xl=103,Qi=113,xr=666,Ht=1,Es=2,zi=3,ys=4,Mm=3,Gi=(n,e)=>(n.msg=Hi[e],e),hd=n=>n*2-(n>4?9:0),fi=n=>{let e=n.length;for(;--e>=0;)n[e]=0},Tm=n=>{let e,t,i,s=n.w_size;e=n.hash_size,i=e;do t=n.head[--i],n.head[i]=t>=s?t-s:0;while(--e);e=s,i=e;do t=n.prev[--i],n.prev[i]=t>=s?t-s:0;while(--e)},Bm=(n,e,t)=>(e<<n.hash_shift^t)&n.hash_mask,gi=Bm,jt=n=>{let e=n.state,t=e.pending;t>n.avail_out&&(t=n.avail_out),t!==0&&(n.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),n.next_out),n.next_out+=t,e.pending_out+=t,n.total_out+=t,n.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},$t=(n,e)=>{om(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,e),n.block_start=n.strstart,jt(n.strm)},je=(n,e)=>{n.pending_buf[n.pending++]=e},_r=(n,e)=>{n.pending_buf[n.pending++]=e>>>8&255,n.pending_buf[n.pending++]=e&255},vl=(n,e,t,i)=>{let s=n.avail_in;return s>i&&(s=i),s===0?0:(n.avail_in-=s,e.set(n.input.subarray(n.next_in,n.next_in+s),t),n.state.wrap===1?n.adler=Mr(n.adler,e,s,t):n.state.wrap===2&&(n.adler=Mt(n.adler,e,s,t)),n.next_in+=s,n.total_in+=s,s)},nA=(n,e)=>{let t=n.max_chain_length,i=n.strstart,s,r,o=n.prev_length,a=n.nice_match,l=n.strstart>n.w_size-On?n.strstart-(n.w_size-On):0,c=n.window,h=n.w_mask,f=n.prev,u=n.strstart+di,d=c[i+o-1],g=c[i+o];n.prev_length>=n.good_match&&(t>>=2),a>n.lookahead&&(a=n.lookahead);do if(s=e,!(c[s+o]!==g||c[s+o-1]!==d||c[s]!==c[i]||c[++s]!==c[i+1])){i+=2,s++;do;while(c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&c[++i]===c[++s]&&i<u);if(r=di-(u-i),i=u-di,r>o){if(n.match_start=e,o=r,r>=a)break;d=c[i+o-1],g=c[i+o]}}while((e=f[e&h])>l&&--t!==0);return o<=n.lookahead?o:n.lookahead},xs=n=>{let e=n.w_size,t,i,s;do{if(i=n.window_size-n.lookahead-n.strstart,n.strstart>=e+(e-On)&&(n.window.set(n.window.subarray(e,e+e-i),0),n.match_start-=e,n.strstart-=e,n.block_start-=e,n.insert>n.strstart&&(n.insert=n.strstart),Tm(n),i+=e),n.strm.avail_in===0)break;if(t=vl(n.strm,n.window,n.strstart+n.lookahead,i),n.lookahead+=t,n.lookahead+n.insert>=Xe)for(s=n.strstart-n.insert,n.ins_h=n.window[s],n.ins_h=gi(n,n.ins_h,n.window[s+1]);n.insert&&(n.ins_h=gi(n,n.ins_h,n.window[s+Xe-1]),n.prev[s&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=s,s++,n.insert--,!(n.lookahead+n.insert<Xe)););}while(n.lookahead<On&&n.strm.avail_in!==0)},iA=(n,e)=>{let t=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,i,s,r,o=0,a=n.strm.avail_in;do{if(i=65535,r=n.bi_valid+42>>3,n.strm.avail_out<r||(r=n.strm.avail_out-r,s=n.strstart-n.block_start,i>s+n.strm.avail_in&&(i=s+n.strm.avail_in),i>r&&(i=r),i<t&&(i===0&&e!==ln||e===pi||i!==s+n.strm.avail_in)))break;o=e===ln&&i===s+n.strm.avail_in?1:0,Al(n,0,0,o),n.pending_buf[n.pending-4]=i,n.pending_buf[n.pending-3]=i>>8,n.pending_buf[n.pending-2]=~i,n.pending_buf[n.pending-1]=~i>>8,jt(n.strm),s&&(s>i&&(s=i),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+s),n.strm.next_out),n.strm.next_out+=s,n.strm.avail_out-=s,n.strm.total_out+=s,n.block_start+=s,i-=s),i&&(vl(n.strm,n.strm.output,n.strm.next_out,i),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i)}while(o===0);return a-=n.strm.avail_in,a&&(a>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=a&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-a,n.strm.next_in),n.strstart),n.strstart+=a,n.insert+=a>n.w_size-n.insert?n.w_size-n.insert:a),n.block_start=n.strstart),n.high_water<n.strstart&&(n.high_water=n.strstart),o?ys:e!==pi&&e!==ln&&n.strm.avail_in===0&&n.strstart===n.block_start?Es:(r=n.window_size-n.strstart,n.strm.avail_in>r&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,r+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),r>n.strm.avail_in&&(r=n.strm.avail_in),r&&(vl(n.strm,n.window,n.strstart,r),n.strstart+=r,n.insert+=r>n.w_size-n.insert?n.w_size-n.insert:r),n.high_water<n.strstart&&(n.high_water=n.strstart),r=n.bi_valid+42>>3,r=n.pending_buf_size-r>65535?65535:n.pending_buf_size-r,t=r>n.w_size?n.w_size:r,s=n.strstart-n.block_start,(s>=t||(s||e===ln)&&e!==pi&&n.strm.avail_in===0&&s<=r)&&(i=s>r?r:s,o=e===ln&&n.strm.avail_in===0&&i===s?1:0,Al(n,n.block_start,i,o),n.block_start+=i,jt(n.strm)),o?zi:Ht)},il=(n,e)=>{let t,i;for(;;){if(n.lookahead<On){if(xs(n),n.lookahead<On&&e===pi)return Ht;if(n.lookahead===0)break}if(t=0,n.lookahead>=Xe&&(n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),t!==0&&n.strstart-t<=n.w_size-On&&(n.match_length=nA(n,t)),n.match_length>=Xe)if(i=Ai(n,n.strstart-n.match_start,n.match_length-Xe),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=Xe){n.match_length--;do n.strstart++,n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=gi(n,n.ins_h,n.window[n.strstart+1]);else i=Ai(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(i&&($t(n,!1),n.strm.avail_out===0))return Ht}return n.insert=n.strstart<Xe-1?n.strstart:Xe-1,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es},ps=(n,e)=>{let t,i,s;for(;;){if(n.lookahead<On){if(xs(n),n.lookahead<On&&e===pi)return Ht;if(n.lookahead===0)break}if(t=0,n.lookahead>=Xe&&(n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=Xe-1,t!==0&&n.prev_length<n.max_lazy_match&&n.strstart-t<=n.w_size-On&&(n.match_length=nA(n,t),n.match_length<=5&&(n.strategy===dm||n.match_length===Xe&&n.strstart-n.match_start>4096)&&(n.match_length=Xe-1)),n.prev_length>=Xe&&n.match_length<=n.prev_length){s=n.strstart+n.lookahead-Xe,i=Ai(n,n.strstart-1-n.prev_match,n.prev_length-Xe),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=s&&(n.ins_h=gi(n,n.ins_h,n.window[n.strstart+Xe-1]),t=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=Xe-1,n.strstart++,i&&($t(n,!1),n.strm.avail_out===0))return Ht}else if(n.match_available){if(i=Ai(n,0,n.window[n.strstart-1]),i&&$t(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return Ht}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(i=Ai(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<Xe-1?n.strstart:Xe-1,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es},Rm=(n,e)=>{let t,i,s,r,o=n.window;for(;;){if(n.lookahead<=di){if(xs(n),n.lookahead<=di&&e===pi)return Ht;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=Xe&&n.strstart>0&&(s=n.strstart-1,i=o[s],i===o[++s]&&i===o[++s]&&i===o[++s])){r=n.strstart+di;do;while(i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&i===o[++s]&&s<r);n.match_length=di-(r-s),n.match_length>n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=Xe?(t=Ai(n,1,n.match_length-Xe),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(t=Ai(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),t&&($t(n,!1),n.strm.avail_out===0))return Ht}return n.insert=0,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es},Dm=(n,e)=>{let t;for(;;){if(n.lookahead===0&&(xs(n),n.lookahead===0)){if(e===pi)return Ht;break}if(n.match_length=0,t=Ai(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,t&&($t(n,!1),n.strm.avail_out===0))return Ht}return n.insert=0,e===ln?($t(n,!0),n.strm.avail_out===0?zi:ys):n.sym_next&&($t(n,!1),n.strm.avail_out===0)?Ht:Es};function Pn(n,e,t,i,s){this.good_length=n,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=s}var vr=[new Pn(0,0,0,0,iA),new Pn(4,4,8,4,il),new Pn(4,5,16,8,il),new Pn(4,6,32,32,il),new Pn(4,4,16,16,ps),new Pn(8,16,32,32,ps),new Pn(8,16,128,128,ps),new Pn(8,32,128,256,ps),new Pn(32,128,258,1024,ps),new Pn(32,258,258,4096,ps)],Lm=n=>{n.window_size=2*n.w_size,fi(n.head),n.max_lazy_match=vr[n.level].max_lazy,n.good_match=vr[n.level].good_length,n.nice_match=vr[n.level].nice_length,n.max_chain_length=vr[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=Xe-1,n.match_available=0,n.ins_h=0};function Fm(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=xo,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(bm*2),this.dyn_dtree=new Uint16Array((2*Cm+1)*2),this.bl_tree=new Uint16Array((2*Sm+1)*2),fi(this.dyn_ltree),fi(this.dyn_dtree),fi(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Im+1),this.heap=new Uint16Array(2*pl+1),fi(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*pl+1),fi(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var Lr=n=>{if(!n)return 1;let e=n.state;return!e||e.strm!==n||e.status!==_s&&e.status!==bl&&e.status!==gl&&e.status!==ml&&e.status!==_l&&e.status!==xl&&e.status!==Qi&&e.status!==xr?1:0},sA=n=>{if(Lr(n))return Gi(n,Nn);n.total_in=n.total_out=0,n.data_type=mm;let e=n.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?bl:e.wrap?_s:Qi,n.adler=e.wrap===2?0:1,e.last_flush=-2,am(e),Ut},rA=n=>{let e=sA(n);return e===Ut&&Lm(n.state),e},Pm=(n,e)=>Lr(n)||n.state.wrap!==2?Nn:(n.state.gzhead=e,Ut),aA=(n,e,t,i,s,r)=>{if(!n)return Nn;let o=1;if(e===fm&&(e=6),i<0?(o=0,i=-i):i>15&&(o=2,i-=16),s<1||s>_m||t!==xo||i<8||i>15||e<0||e>9||r<0||r>pm||i===8&&o!==1)return Gi(n,Nn);i===8&&(i=9);let a=new Fm;return n.state=a,a.strm=n,a.status=_s,a.wrap=o,a.gzhead=null,a.w_bits=i,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=s+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+Xe-1)/Xe),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<s+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=e,a.strategy=r,a.method=t,rA(n)},Um=(n,e)=>aA(n,e,xo,xm,vm,gm),Nm=(n,e)=>{if(Lr(n)||e>cd||e<0)return n?Gi(n,Nn):Nn;let t=n.state;if(!n.output||n.avail_in!==0&&!n.input||t.status===xr&&e!==ln)return Gi(n,n.avail_out===0?nl:Nn);let i=t.last_flush;if(t.last_flush=e,t.pending!==0){if(jt(n),n.avail_out===0)return t.last_flush=-1,Ut}else if(n.avail_in===0&&hd(e)<=hd(i)&&e!==ln)return Gi(n,nl);if(t.status===xr&&n.avail_in!==0)return Gi(n,nl);if(t.status===_s&&t.wrap===0&&(t.status=Qi),t.status===_s){let s=xo+(t.w_bits-8<<4)<<8,r=-1;if(t.strategy>=lo||t.level<2?r=0:t.level<6?r=1:t.level===6?r=2:r=3,s|=r<<6,t.strstart!==0&&(s|=wm),s+=31-s%31,_r(t,s),t.strstart!==0&&(_r(t,n.adler>>>16),_r(t,n.adler&65535)),n.adler=1,t.status=Qi,jt(n),t.pending!==0)return t.last_flush=-1,Ut}if(t.status===bl){if(n.adler=0,je(t,31),je(t,139),je(t,8),t.gzhead)je(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),je(t,t.gzhead.time&255),je(t,t.gzhead.time>>8&255),je(t,t.gzhead.time>>16&255),je(t,t.gzhead.time>>24&255),je(t,t.level===9?2:t.strategy>=lo||t.level<2?4:0),je(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(je(t,t.gzhead.extra.length&255),je(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(n.adler=Mt(n.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=gl;else if(je(t,0),je(t,0),je(t,0),je(t,0),je(t,0),je(t,t.level===9?2:t.strategy>=lo||t.level<2?4:0),je(t,Mm),t.status=Qi,jt(n),t.pending!==0)return t.last_flush=-1,Ut}if(t.status===gl){if(t.gzhead.extra){let s=t.pending,r=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+r>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex+=a,jt(n),t.pending!==0)return t.last_flush=-1,Ut;s=0,r-=a}let o=new Uint8Array(t.gzhead.extra);t.pending_buf.set(o.subarray(t.gzindex,t.gzindex+r),t.pending),t.pending+=r,t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=ml}if(t.status===ml){if(t.gzhead.name){let s=t.pending,r;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),jt(n),t.pending!==0)return t.last_flush=-1,Ut;s=0}t.gzindex<t.gzhead.name.length?r=t.gzhead.name.charCodeAt(t.gzindex++)&255:r=0,je(t,r)}while(r!==0);t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),t.gzindex=0}t.status=_l}if(t.status===_l){if(t.gzhead.comment){let s=t.pending,r;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s)),jt(n),t.pending!==0)return t.last_flush=-1,Ut;s=0}t.gzindex<t.gzhead.comment.length?r=t.gzhead.comment.charCodeAt(t.gzindex++)&255:r=0,je(t,r)}while(r!==0);t.gzhead.hcrc&&t.pending>s&&(n.adler=Mt(n.adler,t.pending_buf,t.pending-s,s))}t.status=xl}if(t.status===xl){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(jt(n),t.pending!==0))return t.last_flush=-1,Ut;je(t,n.adler&255),je(t,n.adler>>8&255),n.adler=0}if(t.status=Qi,jt(n),t.pending!==0)return t.last_flush=-1,Ut}if(n.avail_in!==0||t.lookahead!==0||e!==pi&&t.status!==xr){let s=t.level===0?iA(t,e):t.strategy===lo?Dm(t,e):t.strategy===Am?Rm(t,e):vr[t.level].func(t,e);if((s===zi||s===ys)&&(t.status=xr),s===Ht||s===zi)return n.avail_out===0&&(t.last_flush=-1),Ut;if(s===Es&&(e===lm?cm(t):e!==cd&&(Al(t,0,0,!1),e===hm&&(fi(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),jt(n),n.avail_out===0))return t.last_flush=-1,Ut}return e!==ln?Ut:t.wrap<=0?ld:(t.wrap===2?(je(t,n.adler&255),je(t,n.adler>>8&255),je(t,n.adler>>16&255),je(t,n.adler>>24&255),je(t,n.total_in&255),je(t,n.total_in>>8&255),je(t,n.total_in>>16&255),je(t,n.total_in>>24&255)):(_r(t,n.adler>>>16),_r(t,n.adler&65535)),jt(n),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?Ut:ld)},Om=n=>{if(Lr(n))return Nn;let e=n.state.status;return n.state=null,e===Qi?Gi(n,um):Ut},km=(n,e)=>{let t=e.length;if(Lr(n))return Nn;let i=n.state,s=i.wrap;if(s===2||s===1&&i.status!==_s||i.lookahead)return Nn;if(s===1&&(n.adler=Mr(n.adler,e,t,0)),i.wrap=0,t>=i.w_size){s===0&&(fi(i.head),i.strstart=0,i.block_start=0,i.insert=0);let l=new Uint8Array(i.w_size);l.set(e.subarray(t-i.w_size,t),0),e=l,t=i.w_size}let r=n.avail_in,o=n.next_in,a=n.input;for(n.avail_in=t,n.next_in=0,n.input=e,xs(i);i.lookahead>=Xe;){let l=i.strstart,c=i.lookahead-(Xe-1);do i.ins_h=gi(i,i.ins_h,i.window[l+Xe-1]),i.prev[l&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=l,l++;while(--c);i.strstart=l,i.lookahead=Xe-1,xs(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=Xe-1,i.match_available=0,n.next_in=o,n.input=a,n.avail_in=r,i.wrap=s,Ut},Qm=Um,Gm=aA,Hm=rA,zm=sA,Vm=Pm,Wm=Nm,Km=Om,qm=km,Xm="pako deflate (from Nodeca project)",yr={deflateInit:Qm,deflateInit2:Gm,deflateReset:Hm,deflateResetKeep:zm,deflateSetHeader:Vm,deflate:Wm,deflateEnd:Km,deflateSetDictionary:qm,deflateInfo:Xm},Ym=(n,e)=>Object.prototype.hasOwnProperty.call(n,e),Jm=function(n){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(!!t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let i in t)Ym(t,i)&&(n[i]=t[i])}}return n},Zm=n=>{let e=0;for(let i=0,s=n.length;i<s;i++)e+=n[i].length;let t=new Uint8Array(e);for(let i=0,s=0,r=n.length;i<r;i++){let o=n[i];t.set(o,s),s+=o.length}return t},vo={assign:Jm,flattenChunks:Zm},oA=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{oA=!1}var Tr=new Uint8Array(256);for(let n=0;n<256;n++)Tr[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Tr[254]=Tr[254]=1;var jm=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let e,t,i,s,r,o=n.length,a=0;for(s=0;s<o;s++)t=n.charCodeAt(s),(t&64512)===55296&&s+1<o&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),s++)),a+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(a),r=0,s=0;r<a;s++)t=n.charCodeAt(s),(t&64512)===55296&&s+1<o&&(i=n.charCodeAt(s+1),(i&64512)===56320&&(t=65536+(t-55296<<10)+(i-56320),s++)),t<128?e[r++]=t:t<2048?(e[r++]=192|t>>>6,e[r++]=128|t&63):t<65536?(e[r++]=224|t>>>12,e[r++]=128|t>>>6&63,e[r++]=128|t&63):(e[r++]=240|t>>>18,e[r++]=128|t>>>12&63,e[r++]=128|t>>>6&63,e[r++]=128|t&63);return e},$m=(n,e)=>{if(e<65534&&n.subarray&&oA)return String.fromCharCode.apply(null,n.length===e?n:n.subarray(0,e));let t="";for(let i=0;i<e;i++)t+=String.fromCharCode(n[i]);return t},e_=(n,e)=>{let t=e||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,e));let i,s,r=new Array(t*2);for(s=0,i=0;i<t;){let o=n[i++];if(o<128){r[s++]=o;continue}let a=Tr[o];if(a>4){r[s++]=65533,i+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&i<t;)o=o<<6|n[i++]&63,a--;if(a>1){r[s++]=65533;continue}o<65536?r[s++]=o:(o-=65536,r[s++]=55296|o>>10&1023,r[s++]=56320|o&1023)}return $m(r,s)},t_=(n,e)=>{e=e||n.length,e>n.length&&(e=n.length);let t=e-1;for(;t>=0&&(n[t]&192)===128;)t--;return t<0||t===0?e:t+Tr[n[t]]>e?t:e},Br={string2buf:jm,buf2string:e_,utf8border:t_};function n_(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var cA=n_,lA=Object.prototype.toString,{Z_NO_FLUSH:i_,Z_SYNC_FLUSH:s_,Z_FULL_FLUSH:r_,Z_FINISH:a_,Z_OK:mo,Z_STREAM_END:o_,Z_DEFAULT_COMPRESSION:c_,Z_DEFAULT_STRATEGY:l_,Z_DEFLATED:h_}=Wi;function Fr(n){this.options=vo.assign({level:c_,method:h_,chunkSize:16384,windowBits:15,memLevel:8,strategy:l_},n||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new cA,this.strm.avail_out=0;let t=yr.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==mo)throw new Error(Hi[t]);if(e.header&&yr.deflateSetHeader(this.strm,e.header),e.dictionary){let i;if(typeof e.dictionary=="string"?i=Br.string2buf(e.dictionary):lA.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=yr.deflateSetDictionary(this.strm,i),t!==mo)throw new Error(Hi[t]);this._dict_set=!0}}Fr.prototype.push=function(n,e){let t=this.strm,i=this.options.chunkSize,s,r;if(this.ended)return!1;for(e===~~e?r=e:r=e===!0?a_:i_,typeof n=="string"?t.input=Br.string2buf(n):lA.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),(r===s_||r===r_)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(s=yr.deflate(t,r),s===o_)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),s=yr.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===mo;if(t.avail_out===0){this.onData(t.output);continue}if(r>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};Fr.prototype.onData=function(n){this.chunks.push(n)};Fr.prototype.onEnd=function(n){n===mo&&(this.result=vo.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function Il(n,e){let t=new Fr(e);if(t.push(n,!0),t.err)throw t.msg||Hi[t.err];return t.result}function u_(n,e){return e=e||{},e.raw=!0,Il(n,e)}function f_(n,e){return e=e||{},e.gzip=!0,Il(n,e)}var d_=Fr,A_=Il,p_=u_,g_=f_,m_=Wi,__={Deflate:d_,deflate:A_,deflateRaw:p_,gzip:g_,constants:m_},ho=16209,x_=16191,v_=function(e,t){let i,s,r,o,a,l,c,h,f,u,d,g,m,p,A,x,_,v,y,S,C,M,E,b,w=e.state;i=e.next_in,E=e.input,s=i+(e.avail_in-5),r=e.next_out,b=e.output,o=r-(t-e.avail_out),a=r+(e.avail_out-257),l=w.dmax,c=w.wsize,h=w.whave,f=w.wnext,u=w.window,d=w.hold,g=w.bits,m=w.lencode,p=w.distcode,A=(1<<w.lenbits)-1,x=(1<<w.distbits)-1;e:do{g<15&&(d+=E[i++]<<g,g+=8,d+=E[i++]<<g,g+=8),_=m[d&A];t:for(;;){if(v=_>>>24,d>>>=v,g-=v,v=_>>>16&255,v===0)b[r++]=_&65535;else if(v&16){y=_&65535,v&=15,v&&(g<v&&(d+=E[i++]<<g,g+=8),y+=d&(1<<v)-1,d>>>=v,g-=v),g<15&&(d+=E[i++]<<g,g+=8,d+=E[i++]<<g,g+=8),_=p[d&x];n:for(;;){if(v=_>>>24,d>>>=v,g-=v,v=_>>>16&255,v&16){if(S=_&65535,v&=15,g<v&&(d+=E[i++]<<g,g+=8,g<v&&(d+=E[i++]<<g,g+=8)),S+=d&(1<<v)-1,S>l){e.msg="invalid distance too far back",w.mode=ho;break e}if(d>>>=v,g-=v,v=r-o,S>v){if(v=S-v,v>h&&w.sane){e.msg="invalid distance too far back",w.mode=ho;break e}if(C=0,M=u,f===0){if(C+=c-v,v<y){y-=v;do b[r++]=u[C++];while(--v);C=r-S,M=b}}else if(f<v){if(C+=c+f-v,v-=f,v<y){y-=v;do b[r++]=u[C++];while(--v);if(C=0,f<y){v=f,y-=v;do b[r++]=u[C++];while(--v);C=r-S,M=b}}}else if(C+=f-v,v<y){y-=v;do b[r++]=u[C++];while(--v);C=r-S,M=b}for(;y>2;)b[r++]=M[C++],b[r++]=M[C++],b[r++]=M[C++],y-=3;y&&(b[r++]=M[C++],y>1&&(b[r++]=M[C++]))}else{C=r-S;do b[r++]=b[C++],b[r++]=b[C++],b[r++]=b[C++],y-=3;while(y>2);y&&(b[r++]=b[C++],y>1&&(b[r++]=b[C++]))}}else if((v&64)===0){_=p[(_&65535)+(d&(1<<v)-1)];continue n}else{e.msg="invalid distance code",w.mode=ho;break e}break}}else if((v&64)===0){_=m[(_&65535)+(d&(1<<v)-1)];continue t}else if(v&32){w.mode=x_;break e}else{e.msg="invalid literal/length code",w.mode=ho;break e}break}}while(i<s&&r<a);y=g>>3,i-=y,g-=y<<3,d&=(1<<g)-1,e.next_in=i,e.next_out=r,e.avail_in=i<s?5+(s-i):5-(i-s),e.avail_out=r<a?257+(a-r):257-(r-a),w.hold=d,w.bits=g},gs=15,ud=852,fd=592,dd=0,sl=1,Ad=2,E_=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),y_=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),C_=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),S_=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),b_=(n,e,t,i,s,r,o,a)=>{let l=a.bits,c=0,h=0,f=0,u=0,d=0,g=0,m=0,p=0,A=0,x=0,_,v,y,S,C,M=null,E,b=new Uint16Array(gs+1),w=new Uint16Array(gs+1),G=null,U,D,O;for(c=0;c<=gs;c++)b[c]=0;for(h=0;h<i;h++)b[e[t+h]]++;for(d=l,u=gs;u>=1&&b[u]===0;u--);if(d>u&&(d=u),u===0)return s[r++]=1<<24|64<<16|0,s[r++]=1<<24|64<<16|0,a.bits=1,0;for(f=1;f<u&&b[f]===0;f++);for(d<f&&(d=f),p=1,c=1;c<=gs;c++)if(p<<=1,p-=b[c],p<0)return-1;if(p>0&&(n===dd||u!==1))return-1;for(w[1]=0,c=1;c<gs;c++)w[c+1]=w[c]+b[c];for(h=0;h<i;h++)e[t+h]!==0&&(o[w[e[t+h]]++]=h);if(n===dd?(M=G=o,E=20):n===sl?(M=E_,G=y_,E=257):(M=C_,G=S_,E=0),x=0,h=0,c=f,C=r,g=d,m=0,y=-1,A=1<<d,S=A-1,n===sl&&A>ud||n===Ad&&A>fd)return 1;for(;;){U=c-m,o[h]+1<E?(D=0,O=o[h]):o[h]>=E?(D=G[o[h]-E],O=M[o[h]-E]):(D=32+64,O=0),_=1<<c-m,v=1<<g,f=v;do v-=_,s[C+(x>>m)+v]=U<<24|D<<16|O|0;while(v!==0);for(_=1<<c-1;x&_;)_>>=1;if(_!==0?(x&=_-1,x+=_):x=0,h++,--b[c]===0){if(c===u)break;c=e[t+o[h]]}if(c>d&&(x&S)!==y){for(m===0&&(m=d),C+=f,g=c-m,p=1<<g;g+m<u&&(p-=b[g+m],!(p<=0));)g++,p<<=1;if(A+=1<<g,n===sl&&A>ud||n===Ad&&A>fd)return 1;y=x&S,s[y]=d<<24|g<<16|C-r|0}}return x!==0&&(s[C+x]=c-m<<24|64<<16|0),a.bits=d,0},Cr=b_,I_=0,hA=1,uA=2,{Z_FINISH:pd,Z_BLOCK:w_,Z_TREES:uo,Z_OK:Vi,Z_STREAM_END:M_,Z_NEED_DICT:T_,Z_STREAM_ERROR:hn,Z_DATA_ERROR:fA,Z_MEM_ERROR:dA,Z_BUF_ERROR:B_,Z_DEFLATED:gd}=Wi,Eo=16180,md=16181,_d=16182,xd=16183,vd=16184,Ed=16185,yd=16186,Cd=16187,Sd=16188,bd=16189,_o=16190,Xn=16191,rl=16192,Id=16193,al=16194,wd=16195,Md=16196,Td=16197,Bd=16198,fo=16199,Ao=16200,Rd=16201,Dd=16202,Ld=16203,Fd=16204,Pd=16205,ol=16206,Ud=16207,Nd=16208,ht=16209,AA=16210,pA=16211,R_=852,D_=592,L_=15,F_=L_,Od=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function P_(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Ki=n=>{if(!n)return 1;let e=n.state;return!e||e.strm!==n||e.mode<Eo||e.mode>pA?1:0},gA=n=>{if(Ki(n))return hn;let e=n.state;return n.total_in=n.total_out=e.total=0,n.msg="",e.wrap&&(n.adler=e.wrap&1),e.mode=Eo,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(R_),e.distcode=e.distdyn=new Int32Array(D_),e.sane=1,e.back=-1,Vi},mA=n=>{if(Ki(n))return hn;let e=n.state;return e.wsize=0,e.whave=0,e.wnext=0,gA(n)},_A=(n,e)=>{let t;if(Ki(n))return hn;let i=n.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?hn:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,mA(n))},xA=(n,e)=>{if(!n)return hn;let t=new P_;n.state=t,t.strm=n,t.window=null,t.mode=Eo;let i=_A(n,e);return i!==Vi&&(n.state=null),i},U_=n=>xA(n,F_),kd=!0,cl,ll,N_=n=>{if(kd){cl=new Int32Array(512),ll=new Int32Array(32);let e=0;for(;e<144;)n.lens[e++]=8;for(;e<256;)n.lens[e++]=9;for(;e<280;)n.lens[e++]=7;for(;e<288;)n.lens[e++]=8;for(Cr(hA,n.lens,0,288,cl,0,n.work,{bits:9}),e=0;e<32;)n.lens[e++]=5;Cr(uA,n.lens,0,32,ll,0,n.work,{bits:5}),kd=!1}n.lencode=cl,n.lenbits=9,n.distcode=ll,n.distbits=5},vA=(n,e,t,i)=>{let s,r=n.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),i>=r.wsize?(r.window.set(e.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>i&&(s=i),r.window.set(e.subarray(t-i,t-i+s),r.wnext),i-=s,i?(r.window.set(e.subarray(t-i,t),0),r.wnext=i,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0},O_=(n,e)=>{let t,i,s,r,o,a,l,c,h,f,u,d,g,m,p=0,A,x,_,v,y,S,C,M,E=new Uint8Array(4),b,w,G=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ki(n)||!n.output||!n.input&&n.avail_in!==0)return hn;t=n.state,t.mode===Xn&&(t.mode=rl),o=n.next_out,s=n.output,l=n.avail_out,r=n.next_in,i=n.input,a=n.avail_in,c=t.hold,h=t.bits,f=a,u=l,M=Vi;e:for(;;)switch(t.mode){case Eo:if(t.wrap===0){t.mode=rl;break}for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.wrap&2&&c===35615){t.wbits===0&&(t.wbits=15),t.check=0,E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0),c=0,h=0,t.mode=md;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((c&255)<<8)+(c>>8))%31){n.msg="incorrect header check",t.mode=ht;break}if((c&15)!==gd){n.msg="unknown compression method",t.mode=ht;break}if(c>>>=4,h-=4,C=(c&15)+8,t.wbits===0&&(t.wbits=C),C>15||C>t.wbits){n.msg="invalid window size",t.mode=ht;break}t.dmax=1<<t.wbits,t.flags=0,n.adler=t.check=1,t.mode=c&512?bd:Xn,c=0,h=0;break;case md:for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.flags=c,(t.flags&255)!==gd){n.msg="unknown compression method",t.mode=ht;break}if(t.flags&57344){n.msg="unknown header flags set",t.mode=ht;break}t.head&&(t.head.text=c>>8&1),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0)),c=0,h=0,t.mode=_d;case _d:for(;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.head&&(t.head.time=c),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,E[2]=c>>>16&255,E[3]=c>>>24&255,t.check=Mt(t.check,E,4,0)),c=0,h=0,t.mode=xd;case xd:for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.head&&(t.head.xflags=c&255,t.head.os=c>>8),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0)),c=0,h=0,t.mode=vd;case vd:if(t.flags&1024){for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.length=c,t.head&&(t.head.extra_len=c),t.flags&512&&t.wrap&4&&(E[0]=c&255,E[1]=c>>>8&255,t.check=Mt(t.check,E,2,0)),c=0,h=0}else t.head&&(t.head.extra=null);t.mode=Ed;case Ed:if(t.flags&1024&&(d=t.length,d>a&&(d=a),d&&(t.head&&(C=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(r,r+d),C)),t.flags&512&&t.wrap&4&&(t.check=Mt(t.check,i,d,r)),a-=d,r+=d,t.length-=d),t.length))break e;t.length=0,t.mode=yd;case yd:if(t.flags&2048){if(a===0)break e;d=0;do C=i[r+d++],t.head&&C&&t.length<65536&&(t.head.name+=String.fromCharCode(C));while(C&&d<a);if(t.flags&512&&t.wrap&4&&(t.check=Mt(t.check,i,d,r)),a-=d,r+=d,C)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=Cd;case Cd:if(t.flags&4096){if(a===0)break e;d=0;do C=i[r+d++],t.head&&C&&t.length<65536&&(t.head.comment+=String.fromCharCode(C));while(C&&d<a);if(t.flags&512&&t.wrap&4&&(t.check=Mt(t.check,i,d,r)),a-=d,r+=d,C)break e}else t.head&&(t.head.comment=null);t.mode=Sd;case Sd:if(t.flags&512){for(;h<16;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.wrap&4&&c!==(t.check&65535)){n.msg="header crc mismatch",t.mode=ht;break}c=0,h=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),n.adler=t.check=0,t.mode=Xn;break;case bd:for(;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}n.adler=t.check=Od(c),c=0,h=0,t.mode=_o;case _o:if(t.havedict===0)return n.next_out=o,n.avail_out=l,n.next_in=r,n.avail_in=a,t.hold=c,t.bits=h,T_;n.adler=t.check=1,t.mode=Xn;case Xn:if(e===w_||e===uo)break e;case rl:if(t.last){c>>>=h&7,h-=h&7,t.mode=ol;break}for(;h<3;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}switch(t.last=c&1,c>>>=1,h-=1,c&3){case 0:t.mode=Id;break;case 1:if(N_(t),t.mode=fo,e===uo){c>>>=2,h-=2;break e}break;case 2:t.mode=Md;break;case 3:n.msg="invalid block type",t.mode=ht}c>>>=2,h-=2;break;case Id:for(c>>>=h&7,h-=h&7;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if((c&65535)!==(c>>>16^65535)){n.msg="invalid stored block lengths",t.mode=ht;break}if(t.length=c&65535,c=0,h=0,t.mode=al,e===uo)break e;case al:t.mode=wd;case wd:if(d=t.length,d){if(d>a&&(d=a),d>l&&(d=l),d===0)break e;s.set(i.subarray(r,r+d),o),a-=d,r+=d,l-=d,o+=d,t.length-=d;break}t.mode=Xn;break;case Md:for(;h<14;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.nlen=(c&31)+257,c>>>=5,h-=5,t.ndist=(c&31)+1,c>>>=5,h-=5,t.ncode=(c&15)+4,c>>>=4,h-=4,t.nlen>286||t.ndist>30){n.msg="too many length or distance symbols",t.mode=ht;break}t.have=0,t.mode=Td;case Td:for(;t.have<t.ncode;){for(;h<3;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.lens[G[t.have++]]=c&7,c>>>=3,h-=3}for(;t.have<19;)t.lens[G[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,b={bits:t.lenbits},M=Cr(I_,t.lens,0,19,t.lencode,0,t.work,b),t.lenbits=b.bits,M){n.msg="invalid code lengths set",t.mode=ht;break}t.have=0,t.mode=Bd;case Bd:for(;t.have<t.nlen+t.ndist;){for(;p=t.lencode[c&(1<<t.lenbits)-1],A=p>>>24,x=p>>>16&255,_=p&65535,!(A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(_<16)c>>>=A,h-=A,t.lens[t.have++]=_;else{if(_===16){for(w=A+2;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(c>>>=A,h-=A,t.have===0){n.msg="invalid bit length repeat",t.mode=ht;break}C=t.lens[t.have-1],d=3+(c&3),c>>>=2,h-=2}else if(_===17){for(w=A+3;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=A,h-=A,C=0,d=3+(c&7),c>>>=3,h-=3}else{for(w=A+7;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=A,h-=A,C=0,d=11+(c&127),c>>>=7,h-=7}if(t.have+d>t.nlen+t.ndist){n.msg="invalid bit length repeat",t.mode=ht;break}for(;d--;)t.lens[t.have++]=C}}if(t.mode===ht)break;if(t.lens[256]===0){n.msg="invalid code -- missing end-of-block",t.mode=ht;break}if(t.lenbits=9,b={bits:t.lenbits},M=Cr(hA,t.lens,0,t.nlen,t.lencode,0,t.work,b),t.lenbits=b.bits,M){n.msg="invalid literal/lengths set",t.mode=ht;break}if(t.distbits=6,t.distcode=t.distdyn,b={bits:t.distbits},M=Cr(uA,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,b),t.distbits=b.bits,M){n.msg="invalid distances set",t.mode=ht;break}if(t.mode=fo,e===uo)break e;case fo:t.mode=Ao;case Ao:if(a>=6&&l>=258){n.next_out=o,n.avail_out=l,n.next_in=r,n.avail_in=a,t.hold=c,t.bits=h,v_(n,u),o=n.next_out,s=n.output,l=n.avail_out,r=n.next_in,i=n.input,a=n.avail_in,c=t.hold,h=t.bits,t.mode===Xn&&(t.back=-1);break}for(t.back=0;p=t.lencode[c&(1<<t.lenbits)-1],A=p>>>24,x=p>>>16&255,_=p&65535,!(A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(x&&(x&240)===0){for(v=A,y=x,S=_;p=t.lencode[S+((c&(1<<v+y)-1)>>v)],A=p>>>24,x=p>>>16&255,_=p&65535,!(v+A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=v,h-=v,t.back+=v}if(c>>>=A,h-=A,t.back+=A,t.length=_,x===0){t.mode=Pd;break}if(x&32){t.back=-1,t.mode=Xn;break}if(x&64){n.msg="invalid literal/length code",t.mode=ht;break}t.extra=x&15,t.mode=Rd;case Rd:if(t.extra){for(w=t.extra;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.length+=c&(1<<t.extra)-1,c>>>=t.extra,h-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=Dd;case Dd:for(;p=t.distcode[c&(1<<t.distbits)-1],A=p>>>24,x=p>>>16&255,_=p&65535,!(A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if((x&240)===0){for(v=A,y=x,S=_;p=t.distcode[S+((c&(1<<v+y)-1)>>v)],A=p>>>24,x=p>>>16&255,_=p&65535,!(v+A<=h);){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}c>>>=v,h-=v,t.back+=v}if(c>>>=A,h-=A,t.back+=A,x&64){n.msg="invalid distance code",t.mode=ht;break}t.offset=_,t.extra=x&15,t.mode=Ld;case Ld:if(t.extra){for(w=t.extra;h<w;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}t.offset+=c&(1<<t.extra)-1,c>>>=t.extra,h-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){n.msg="invalid distance too far back",t.mode=ht;break}t.mode=Fd;case Fd:if(l===0)break e;if(d=u-l,t.offset>d){if(d=t.offset-d,d>t.whave&&t.sane){n.msg="invalid distance too far back",t.mode=ht;break}d>t.wnext?(d-=t.wnext,g=t.wsize-d):g=t.wnext-d,d>t.length&&(d=t.length),m=t.window}else m=s,g=o-t.offset,d=t.length;d>l&&(d=l),l-=d,t.length-=d;do s[o++]=m[g++];while(--d);t.length===0&&(t.mode=Ao);break;case Pd:if(l===0)break e;s[o++]=t.length,l--,t.mode=Ao;break;case ol:if(t.wrap){for(;h<32;){if(a===0)break e;a--,c|=i[r++]<<h,h+=8}if(u-=l,n.total_out+=u,t.total+=u,t.wrap&4&&u&&(n.adler=t.check=t.flags?Mt(t.check,s,u,o-u):Mr(t.check,s,u,o-u)),u=l,t.wrap&4&&(t.flags?c:Od(c))!==t.check){n.msg="incorrect data check",t.mode=ht;break}c=0,h=0}t.mode=Ud;case Ud:if(t.wrap&&t.flags){for(;h<32;){if(a===0)break e;a--,c+=i[r++]<<h,h+=8}if(t.wrap&4&&c!==(t.total&4294967295)){n.msg="incorrect length check",t.mode=ht;break}c=0,h=0}t.mode=Nd;case Nd:M=M_;break e;case ht:M=fA;break e;case AA:return dA;case pA:default:return hn}return n.next_out=o,n.avail_out=l,n.next_in=r,n.avail_in=a,t.hold=c,t.bits=h,(t.wsize||u!==n.avail_out&&t.mode<ht&&(t.mode<ol||e!==pd))&&vA(n,n.output,n.next_out,u-n.avail_out),f-=n.avail_in,u-=n.avail_out,n.total_in+=f,n.total_out+=u,t.total+=u,t.wrap&4&&u&&(n.adler=t.check=t.flags?Mt(t.check,s,u,n.next_out-u):Mr(t.check,s,u,n.next_out-u)),n.data_type=t.bits+(t.last?64:0)+(t.mode===Xn?128:0)+(t.mode===fo||t.mode===al?256:0),(f===0&&u===0||e===pd)&&M===Vi&&(M=B_),M},k_=n=>{if(Ki(n))return hn;let e=n.state;return e.window&&(e.window=null),n.state=null,Vi},Q_=(n,e)=>{if(Ki(n))return hn;let t=n.state;return(t.wrap&2)===0?hn:(t.head=e,e.done=!1,Vi)},G_=(n,e)=>{let t=e.length,i,s,r;return Ki(n)||(i=n.state,i.wrap!==0&&i.mode!==_o)?hn:i.mode===_o&&(s=1,s=Mr(s,e,t,0),s!==i.check)?fA:(r=vA(n,e,t,t),r?(i.mode=AA,dA):(i.havedict=1,Vi))},H_=mA,z_=_A,V_=gA,W_=U_,K_=xA,q_=O_,X_=k_,Y_=Q_,J_=G_,Z_="pako inflate (from Nodeca project)",Jn={inflateReset:H_,inflateReset2:z_,inflateResetKeep:V_,inflateInit:W_,inflateInit2:K_,inflate:q_,inflateEnd:X_,inflateGetHeader:Y_,inflateSetDictionary:J_,inflateInfo:Z_};function j_(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var $_=j_,EA=Object.prototype.toString,{Z_NO_FLUSH:ex,Z_FINISH:tx,Z_OK:Rr,Z_STREAM_END:hl,Z_NEED_DICT:ul,Z_STREAM_ERROR:nx,Z_DATA_ERROR:Qd,Z_MEM_ERROR:ix}=Wi;function Pr(n){this.options=vo.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(n&&n.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new cA,this.strm.avail_out=0;let t=Jn.inflateInit2(this.strm,e.windowBits);if(t!==Rr)throw new Error(Hi[t]);if(this.header=new $_,Jn.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Br.string2buf(e.dictionary):EA.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Jn.inflateSetDictionary(this.strm,e.dictionary),t!==Rr)))throw new Error(Hi[t])}Pr.prototype.push=function(n,e){let t=this.strm,i=this.options.chunkSize,s=this.options.dictionary,r,o,a;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?tx:ex,EA.call(n)==="[object ArrayBuffer]"?t.input=new Uint8Array(n):t.input=n,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(i),t.next_out=0,t.avail_out=i),r=Jn.inflate(t,o),r===ul&&s&&(r=Jn.inflateSetDictionary(t,s),r===Rr?r=Jn.inflate(t,o):r===Qd&&(r=ul));t.avail_in>0&&r===hl&&t.state.wrap>0&&n[t.next_in]!==0;)Jn.inflateReset(t),r=Jn.inflate(t,o);switch(r){case nx:case Qd:case ul:case ix:return this.onEnd(r),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||r===hl))if(this.options.to==="string"){let l=Br.utf8border(t.output,t.next_out),c=t.next_out-l,h=Br.buf2string(t.output,l);t.next_out=c,t.avail_out=i-c,c&&t.output.set(t.output.subarray(l,l+c),0),this.onData(h)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(r===Rr&&a===0)){if(r===hl)return r=Jn.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};Pr.prototype.onData=function(n){this.chunks.push(n)};Pr.prototype.onEnd=function(n){n===Rr&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=vo.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function wl(n,e){let t=new Pr(e);if(t.push(n),t.err)throw t.msg||Hi[t.err];return t.result}function sx(n,e){return e=e||{},e.raw=!0,wl(n,e)}var rx=Pr,ax=wl,ox=sx,cx=wl,lx=Wi,hx={Inflate:rx,inflate:ax,inflateRaw:ox,ungzip:cx,constants:lx},{Deflate:ux,deflate:fx,deflateRaw:dx,gzip:Ax}=__,{Inflate:px,inflate:gx,inflateRaw:mx,ungzip:_x}=hx,xx=ux,vx=fx,Ex=dx,yx=Ax,Cx=px,Sx=gx,bx=mx,Ix=_x,wx=Wi,yA={Deflate:xx,deflate:vx,deflateRaw:Ex,gzip:yx,Inflate:Cx,inflate:Sx,inflateRaw:bx,ungzip:Ix,constants:wx};var Mx=n=>{if(n===""||!n)return"";let e=n.split("/"),t=`$$${e[1].slice(-10)}${e[3].slice(-9)}`;return String(yo.default.MD5(t))};async function Tx(n){return await(await fetch(n,{method:"GET"})).arrayBuffer()}function Bx(n){return yA.ungzip(n,{to:"string"})}var Rx=n=>{let e=window.atob(n),t=e.length,i=new Uint8Array(t);for(let s=0;s<t;s+=1)i[s]=e.charCodeAt(s);return i.buffer};async function Dx(n,e){let t=Mx(e),i=yo.default.AES.decrypt(n,t).toString(yo.default.enc.Latin1);return Rx(i)}async function Lx(n,e){let t=e||`org/${n.split("org/")[1].split("/universal")[0]}`,i=Date.now(),s=await Tx(n),r=Date.now()-i;i=Date.now();let o=Bx(s),a=Date.now()-i;i=Date.now();let l=await Dx(o,t),c=Date.now()-i;return{decodedData:l,events:{fileDownloadTime:r,fileUnzipTime:a,fileDecryptionTime:c}}}var CA=Lx;function Fx(n){if(!!n&&!(typeof window>"u")){var e=document.createElement("style");return e.setAttribute("type","text/css"),e.innerHTML=n,document.head.appendChild(e),n}}function bs(n,e){var t=n.__state.conversionName.toString(),i=Math.round(n.r),s=Math.round(n.g),r=Math.round(n.b),o=n.a,a=Math.round(n.h),l=n.s.toFixed(1),c=n.v.toFixed(1);if(e||t==="THREE_CHAR_HEX"||t==="SIX_CHAR_HEX"){for(var h=n.hex.toString(16);h.length<6;)h="0"+h;return"#"+h}else{if(t==="CSS_RGB")return"rgb("+i+","+s+","+r+")";if(t==="CSS_RGBA")return"rgba("+i+","+s+","+r+","+o+")";if(t==="HEX")return"0x"+n.hex.toString(16);if(t==="RGB_ARRAY")return"["+i+","+s+","+r+"]";if(t==="RGBA_ARRAY")return"["+i+","+s+","+r+","+o+"]";if(t==="RGB_OBJ")return"{r:"+i+",g:"+s+",b:"+r+"}";if(t==="RGBA_OBJ")return"{r:"+i+",g:"+s+",b:"+r+",a:"+o+"}";if(t==="HSV_OBJ")return"{h:"+a+",s:"+l+",v:"+c+"}";if(t==="HSVA_OBJ")return"{h:"+a+",s:"+l+",v:"+c+",a:"+o+"}"}return"unknown format"}var SA=Array.prototype.forEach,Ur=Array.prototype.slice,te={BREAK:{},extend:function(e){return this.each(Ur.call(arguments,1),function(t){var i=this.isObject(t)?Object.keys(t):[];i.forEach(function(s){this.isUndefined(t[s])||(e[s]=t[s])}.bind(this))},this),e},defaults:function(e){return this.each(Ur.call(arguments,1),function(t){var i=this.isObject(t)?Object.keys(t):[];i.forEach(function(s){this.isUndefined(e[s])&&(e[s]=t[s])}.bind(this))},this),e},compose:function(){var e=Ur.call(arguments);return function(){for(var t=Ur.call(arguments),i=e.length-1;i>=0;i--)t=[e[i].apply(this,t)];return t[0]}},each:function(e,t,i){if(!!e){if(SA&&e.forEach&&e.forEach===SA)e.forEach(t,i);else if(e.length===e.length+0){var s=void 0,r=void 0;for(s=0,r=e.length;s<r;s++)if(s in e&&t.call(i,e[s],s)===this.BREAK)return}else for(var o in e)if(t.call(i,e[o],o)===this.BREAK)return}},defer:function(e){setTimeout(e,0)},debounce:function(e,t,i){var s=void 0;return function(){var r=this,o=arguments;function a(){s=null,i||e.apply(r,o)}var l=i||!s;clearTimeout(s),s=setTimeout(a,t),l&&e.apply(r,o)}},toArray:function(e){return e.toArray?e.toArray():Ur.call(e)},isUndefined:function(e){return e===void 0},isNull:function(e){return e===null},isNaN:function(n){function e(t){return n.apply(this,arguments)}return e.toString=function(){return n.toString()},e}(function(n){return isNaN(n)}),isArray:Array.isArray||function(n){return n.constructor===Array},isObject:function(e){return e===Object(e)},isNumber:function(e){return e===e+0},isString:function(e){return e===e+""},isBoolean:function(e){return e===!1||e===!0},isFunction:function(e){return e instanceof Function}},Px=[{litmus:te.isString,conversions:{THREE_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);return t===null?!1:{space:"HEX",hex:parseInt("0x"+t[1].toString()+t[1].toString()+t[2].toString()+t[2].toString()+t[3].toString()+t[3].toString(),0)}},write:bs},SIX_CHAR_HEX:{read:function(e){var t=e.match(/^#([A-F0-9]{6})$/i);return t===null?!1:{space:"HEX",hex:parseInt("0x"+t[1].toString(),0)}},write:bs},CSS_RGB:{read:function(e){var t=e.match(/^rgb\(\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*\)/);return t===null?!1:{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3])}},write:bs},CSS_RGBA:{read:function(e){var t=e.match(/^rgba\(\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*,\s*(\S+)\s*\)/);return t===null?!1:{space:"RGB",r:parseFloat(t[1]),g:parseFloat(t[2]),b:parseFloat(t[3]),a:parseFloat(t[4])}},write:bs}}},{litmus:te.isNumber,conversions:{HEX:{read:function(e){return{space:"HEX",hex:e,conversionName:"HEX"}},write:function(e){return e.hex}}}},{litmus:te.isArray,conversions:{RGB_ARRAY:{read:function(e){return e.length!==3?!1:{space:"RGB",r:e[0],g:e[1],b:e[2]}},write:function(e){return[e.r,e.g,e.b]}},RGBA_ARRAY:{read:function(e){return e.length!==4?!1:{space:"RGB",r:e[0],g:e[1],b:e[2],a:e[3]}},write:function(e){return[e.r,e.g,e.b,e.a]}}}},{litmus:te.isObject,conversions:{RGBA_OBJ:{read:function(e){return te.isNumber(e.r)&&te.isNumber(e.g)&&te.isNumber(e.b)&&te.isNumber(e.a)?{space:"RGB",r:e.r,g:e.g,b:e.b,a:e.a}:!1},write:function(e){return{r:e.r,g:e.g,b:e.b,a:e.a}}},RGB_OBJ:{read:function(e){return te.isNumber(e.r)&&te.isNumber(e.g)&&te.isNumber(e.b)?{space:"RGB",r:e.r,g:e.g,b:e.b}:!1},write:function(e){return{r:e.r,g:e.g,b:e.b}}},HSVA_OBJ:{read:function(e){return te.isNumber(e.h)&&te.isNumber(e.s)&&te.isNumber(e.v)&&te.isNumber(e.a)?{space:"HSV",h:e.h,s:e.s,v:e.v,a:e.a}:!1},write:function(e){return{h:e.h,s:e.s,v:e.v,a:e.a}}},HSV_OBJ:{read:function(e){return te.isNumber(e.h)&&te.isNumber(e.s)&&te.isNumber(e.v)?{space:"HSV",h:e.h,s:e.s,v:e.v}:!1},write:function(e){return{h:e.h,s:e.s,v:e.v}}}}}],Nr=void 0,Co=void 0,Tl=function(){Co=!1;var e=arguments.length>1?te.toArray(arguments):arguments[0];return te.each(Px,function(t){if(t.litmus(e))return te.each(t.conversions,function(i,s){if(Nr=i.read(e),Co===!1&&Nr!==!1)return Co=Nr,Nr.conversionName=s,Nr.conversion=i,te.BREAK}),te.BREAK}),Co},bA=void 0,bo={hsv_to_rgb:function(e,t,i){var s=Math.floor(e/60)%6,r=e/60-Math.floor(e/60),o=i*(1-t),a=i*(1-r*t),l=i*(1-(1-r)*t),c=[[i,l,o],[a,i,o],[o,i,l],[o,a,i],[l,o,i],[i,o,a]][s];return{r:c[0]*255,g:c[1]*255,b:c[2]*255}},rgb_to_hsv:function(e,t,i){var s=Math.min(e,t,i),r=Math.max(e,t,i),o=r-s,a=void 0,l=void 0;if(r!==0)l=o/r;else return{h:NaN,s:0,v:0};return e===r?a=(t-i)/o:t===r?a=2+(i-e)/o:a=4+(e-t)/o,a/=6,a<0&&(a+=1),{h:a*360,s:l,v:r/255}},rgb_to_hex:function(e,t,i){var s=this.hex_with_component(0,2,e);return s=this.hex_with_component(s,1,t),s=this.hex_with_component(s,0,i),s},component_from_hex:function(e,t){return e>>t*8&255},hex_with_component:function(e,t,i){return i<<(bA=t*8)|e&~(255<<bA)}},Ux=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},bn=function(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")},In=function(){function n(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}return function(e,t,i){return t&&n(e.prototype,t),i&&n(e,i),e}}(),mi=function n(e,t,i){e===null&&(e=Function.prototype);var s=Object.getOwnPropertyDescriptor(e,t);if(s===void 0){var r=Object.getPrototypeOf(e);return r===null?void 0:n(r,t,i)}else{if("value"in s)return s.value;var o=s.get;return o===void 0?void 0:o.call(i)}},_i=function(n,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof e);n.prototype=Object.create(e&&e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(n,e):n.__proto__=e)},xi=function(n,e){if(!n)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e&&(typeof e=="object"||typeof e=="function")?e:n},Tt=function(){function n(){if(bn(this,n),this.__state=Tl.apply(this,arguments),this.__state===!1)throw new Error("Failed to interpret color arguments");this.__state.a=this.__state.a||1}return In(n,[{key:"toString",value:function(){return bs(this)}},{key:"toHexString",value:function(){return bs(this,!0)}},{key:"toOriginal",value:function(){return this.__state.conversion.write(this)}}]),n}();function Pl(n,e,t){Object.defineProperty(n,e,{get:function(){return this.__state.space==="RGB"?this.__state[e]:(Tt.recalculateRGB(this,e,t),this.__state[e])},set:function(s){this.__state.space!=="RGB"&&(Tt.recalculateRGB(this,e,t),this.__state.space="RGB"),this.__state[e]=s}})}function Ul(n,e){Object.defineProperty(n,e,{get:function(){return this.__state.space==="HSV"?this.__state[e]:(Tt.recalculateHSV(this),this.__state[e])},set:function(i){this.__state.space!=="HSV"&&(Tt.recalculateHSV(this),this.__state.space="HSV"),this.__state[e]=i}})}Tt.recalculateRGB=function(n,e,t){if(n.__state.space==="HEX")n.__state[e]=bo.component_from_hex(n.__state.hex,t);else if(n.__state.space==="HSV")te.extend(n.__state,bo.hsv_to_rgb(n.__state.h,n.__state.s,n.__state.v));else throw new Error("Corrupted color state")};Tt.recalculateHSV=function(n){var e=bo.rgb_to_hsv(n.r,n.g,n.b);te.extend(n.__state,{s:e.s,v:e.v}),te.isNaN(e.h)?te.isUndefined(n.__state.h)&&(n.__state.h=0):n.__state.h=e.h};Tt.COMPONENTS=["r","g","b","h","s","v","hex","a"];Pl(Tt.prototype,"r",2);Pl(Tt.prototype,"g",1);Pl(Tt.prototype,"b",0);Ul(Tt.prototype,"h");Ul(Tt.prototype,"s");Ul(Tt.prototype,"v");Object.defineProperty(Tt.prototype,"a",{get:function(){return this.__state.a},set:function(e){this.__state.a=e}});Object.defineProperty(Tt.prototype,"hex",{get:function(){return this.__state.space!=="HEX"&&(this.__state.hex=bo.rgb_to_hex(this.r,this.g,this.b),this.__state.space="HEX"),this.__state.hex},set:function(e){this.__state.space="HEX",this.__state.hex=e}});var qi=function(){function n(e,t){bn(this,n),this.initialValue=e[t],this.domElement=document.createElement("div"),this.object=e,this.property=t,this.__onChange=void 0,this.__onFinishChange=void 0}return In(n,[{key:"onChange",value:function(t){return this.__onChange=t,this}},{key:"onFinishChange",value:function(t){return this.__onFinishChange=t,this}},{key:"setValue",value:function(t){return this.object[this.property]=t,this.__onChange&&this.__onChange.call(this,t),this.updateDisplay(),this}},{key:"getValue",value:function(){return this.object[this.property]}},{key:"updateDisplay",value:function(){return this}},{key:"isModified",value:function(){return this.initialValue!==this.getValue()}}]),n}(),Nx={HTMLEvents:["change"],MouseEvents:["click","mousemove","mousedown","mouseup","mouseover"],KeyboardEvents:["keydown"]},PA={};te.each(Nx,function(n,e){te.each(n,function(t){PA[t]=e})});var Ox=/(\d+(\.\d+)?)px/;function kn(n){if(n==="0"||te.isUndefined(n))return 0;var e=n.match(Ox);return te.isNull(e)?0:parseFloat(e[1])}var Y={makeSelectable:function(e,t){e===void 0||e.style===void 0||(e.onselectstart=t?function(){return!1}:function(){},e.style.MozUserSelect=t?"auto":"none",e.style.KhtmlUserSelect=t?"auto":"none",e.unselectable=t?"on":"off")},makeFullscreen:function(e,t,i){var s=i,r=t;te.isUndefined(r)&&(r=!0),te.isUndefined(s)&&(s=!0),e.style.position="absolute",r&&(e.style.left=0,e.style.right=0),s&&(e.style.top=0,e.style.bottom=0)},fakeEvent:function(e,t,i,s){var r=i||{},o=PA[t];if(!o)throw new Error("Event type "+t+" not supported.");var a=document.createEvent(o);switch(o){case"MouseEvents":{var l=r.x||r.clientX||0,c=r.y||r.clientY||0;a.initMouseEvent(t,r.bubbles||!1,r.cancelable||!0,window,r.clickCount||1,0,0,l,c,!1,!1,!1,!1,0,null);break}case"KeyboardEvents":{var h=a.initKeyboardEvent||a.initKeyEvent;te.defaults(r,{cancelable:!0,ctrlKey:!1,altKey:!1,shiftKey:!1,metaKey:!1,keyCode:void 0,charCode:void 0}),h(t,r.bubbles||!1,r.cancelable,window,r.ctrlKey,r.altKey,r.shiftKey,r.metaKey,r.keyCode,r.charCode);break}default:{a.initEvent(t,r.bubbles||!1,r.cancelable||!0);break}}te.defaults(a,s),e.dispatchEvent(a)},bind:function(e,t,i,s){var r=s||!1;return e.addEventListener?e.addEventListener(t,i,r):e.attachEvent&&e.attachEvent("on"+t,i),Y},unbind:function(e,t,i,s){var r=s||!1;return e.removeEventListener?e.removeEventListener(t,i,r):e.detachEvent&&e.detachEvent("on"+t,i),Y},addClass:function(e,t){if(e.className===void 0)e.className=t;else if(e.className!==t){var i=e.className.split(/ +/);i.indexOf(t)===-1&&(i.push(t),e.className=i.join(" ").replace(/^\s+/,"").replace(/\s+$/,""))}return Y},removeClass:function(e,t){if(t)if(e.className===t)e.removeAttribute("class");else{var i=e.className.split(/ +/),s=i.indexOf(t);s!==-1&&(i.splice(s,1),e.className=i.join(" "))}else e.className=void 0;return Y},hasClass:function(e,t){return new RegExp("(?:^|\\s+)"+t+"(?:\\s+|$)").test(e.className)||!1},getWidth:function(e){var t=getComputedStyle(e);return kn(t["border-left-width"])+kn(t["border-right-width"])+kn(t["padding-left"])+kn(t["padding-right"])+kn(t.width)},getHeight:function(e){var t=getComputedStyle(e);return kn(t["border-top-width"])+kn(t["border-bottom-width"])+kn(t["padding-top"])+kn(t["padding-bottom"])+kn(t.height)},getOffset:function(e){var t=e,i={left:0,top:0};if(t.offsetParent)do i.left+=t.offsetLeft,i.top+=t.offsetTop,t=t.offsetParent;while(t);return i},isActive:function(e){return e===document.activeElement&&(e.type||e.href)}},UA=function(n){_i(e,n);function e(t,i){bn(this,e);var s=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),r=s;s.__prev=s.getValue(),s.__checkbox=document.createElement("input"),s.__checkbox.setAttribute("type","checkbox");function o(){r.setValue(!r.__prev)}return Y.bind(s.__checkbox,"change",o,!1),s.domElement.appendChild(s.__checkbox),s.updateDisplay(),s}return In(e,[{key:"setValue",value:function(i){var s=mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,i);return this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),this.__prev=this.getValue(),s}},{key:"updateDisplay",value:function(){return this.getValue()===!0?(this.__checkbox.setAttribute("checked","checked"),this.__checkbox.checked=!0,this.__prev=!0):(this.__checkbox.checked=!1,this.__prev=!1),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(qi),kx=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=s,a=r;if(r.__select=document.createElement("select"),te.isArray(o)){var l={};te.each(o,function(c){l[c]=c}),o=l}return te.each(o,function(c,h){var f=document.createElement("option");f.innerHTML=h,f.setAttribute("value",c),a.__select.appendChild(f)}),r.updateDisplay(),Y.bind(r.__select,"change",function(){var c=this.options[this.selectedIndex].value;a.setValue(c)}),r.domElement.appendChild(r.__select),r}return In(e,[{key:"setValue",value:function(i){var s=mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,i);return this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue()),s}},{key:"updateDisplay",value:function(){return Y.isActive(this.__select)?this:(this.__select.value=this.getValue(),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this))}}]),e}(qi),Qx=function(n){_i(e,n);function e(t,i){bn(this,e);var s=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),r=s;function o(){r.setValue(r.__input.value)}function a(){r.__onFinishChange&&r.__onFinishChange.call(r,r.getValue())}return s.__input=document.createElement("input"),s.__input.setAttribute("type","text"),Y.bind(s.__input,"keyup",o),Y.bind(s.__input,"change",o),Y.bind(s.__input,"blur",a),Y.bind(s.__input,"keydown",function(l){l.keyCode===13&&this.blur()}),s.updateDisplay(),s.domElement.appendChild(s.__input),s}return In(e,[{key:"updateDisplay",value:function(){return Y.isActive(this.__input)||(this.__input.value=this.getValue()),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(qi);function IA(n){var e=n.toString();return e.indexOf(".")>-1?e.length-e.indexOf(".")-1:0}var NA=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=s||{};return r.__min=o.min,r.__max=o.max,r.__step=o.step,te.isUndefined(r.__step)?r.initialValue===0?r.__impliedStep=1:r.__impliedStep=Math.pow(10,Math.floor(Math.log(Math.abs(r.initialValue))/Math.LN10))/10:r.__impliedStep=r.__step,r.__precision=IA(r.__impliedStep),r}return In(e,[{key:"setValue",value:function(i){var s=i;return this.__min!==void 0&&s<this.__min?s=this.__min:this.__max!==void 0&&s>this.__max&&(s=this.__max),this.__step!==void 0&&s%this.__step!==0&&(s=Math.round(s/this.__step)*this.__step),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"setValue",this).call(this,s)}},{key:"min",value:function(i){return this.__min=i,this}},{key:"max",value:function(i){return this.__max=i,this}},{key:"step",value:function(i){return this.__step=i,this.__impliedStep=i,this.__precision=IA(i),this}}]),e}(qi);function Gx(n,e){var t=Math.pow(10,e);return Math.round(n*t)/t}var Io=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,s));r.__truncationSuspended=!1;var o=r,a=void 0;function l(){var g=parseFloat(o.__input.value);te.isNaN(g)||o.setValue(g)}function c(){o.__onFinishChange&&o.__onFinishChange.call(o,o.getValue())}function h(){c()}function f(g){var m=a-g.clientY;o.setValue(o.getValue()+m*o.__impliedStep),a=g.clientY}function u(){Y.unbind(window,"mousemove",f),Y.unbind(window,"mouseup",u),c()}function d(g){Y.bind(window,"mousemove",f),Y.bind(window,"mouseup",u),a=g.clientY}return r.__input=document.createElement("input"),r.__input.setAttribute("type","text"),Y.bind(r.__input,"change",l),Y.bind(r.__input,"blur",h),Y.bind(r.__input,"mousedown",d),Y.bind(r.__input,"keydown",function(g){g.keyCode===13&&(o.__truncationSuspended=!0,this.blur(),o.__truncationSuspended=!1,c())}),r.updateDisplay(),r.domElement.appendChild(r.__input),r}return In(e,[{key:"updateDisplay",value:function(){return this.__input.value=this.__truncationSuspended?this.getValue():Gx(this.getValue(),this.__precision),mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(NA);function wA(n,e,t,i,s){return i+(s-i)*((n-e)/(t-e))}var Bl=function(n){_i(e,n);function e(t,i,s,r,o){bn(this,e);var a=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i,{min:s,max:r,step:o})),l=a;a.__background=document.createElement("div"),a.__foreground=document.createElement("div"),Y.bind(a.__background,"mousedown",c),Y.bind(a.__background,"touchstart",u),Y.addClass(a.__background,"slider"),Y.addClass(a.__foreground,"slider-fg");function c(m){document.activeElement.blur(),Y.bind(window,"mousemove",h),Y.bind(window,"mouseup",f),h(m)}function h(m){m.preventDefault();var p=l.__background.getBoundingClientRect();return l.setValue(wA(m.clientX,p.left,p.right,l.__min,l.__max)),!1}function f(){Y.unbind(window,"mousemove",h),Y.unbind(window,"mouseup",f),l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())}function u(m){m.touches.length===1&&(Y.bind(window,"touchmove",d),Y.bind(window,"touchend",g),d(m))}function d(m){var p=m.touches[0].clientX,A=l.__background.getBoundingClientRect();l.setValue(wA(p,A.left,A.right,l.__min,l.__max))}function g(){Y.unbind(window,"touchmove",d),Y.unbind(window,"touchend",g),l.__onFinishChange&&l.__onFinishChange.call(l,l.getValue())}return a.updateDisplay(),a.__background.appendChild(a.__foreground),a.domElement.appendChild(a.__background),a}return In(e,[{key:"updateDisplay",value:function(){var i=(this.getValue()-this.__min)/(this.__max-this.__min);return this.__foreground.style.width=i*100+"%",mi(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"updateDisplay",this).call(this)}}]),e}(NA),OA=function(n){_i(e,n);function e(t,i,s){bn(this,e);var r=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i)),o=r;return r.__button=document.createElement("div"),r.__button.innerHTML=s===void 0?"Fire":s,Y.bind(r.__button,"click",function(a){return a.preventDefault(),o.fire(),!1}),Y.addClass(r.__button,"button"),r.domElement.appendChild(r.__button),r}return In(e,[{key:"fire",value:function(){this.__onChange&&this.__onChange.call(this),this.getValue().call(this.object),this.__onFinishChange&&this.__onFinishChange.call(this,this.getValue())}}]),e}(qi),Rl=function(n){_i(e,n);function e(t,i){bn(this,e);var s=xi(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i));s.__color=new Tt(s.getValue()),s.__temp=new Tt(0);var r=s;s.domElement=document.createElement("div"),Y.makeSelectable(s.domElement,!1),s.__selector=document.createElement("div"),s.__selector.className="selector",s.__saturation_field=document.createElement("div"),s.__saturation_field.className="saturation-field",s.__field_knob=document.createElement("div"),s.__field_knob.className="field-knob",s.__field_knob_border="2px solid ",s.__hue_knob=document.createElement("div"),s.__hue_knob.className="hue-knob",s.__hue_field=document.createElement("div"),s.__hue_field.className="hue-field",s.__input=document.createElement("input"),s.__input.type="text",s.__input_textShadow="0 1px 1px ",Y.bind(s.__input,"keydown",function(m){m.keyCode===13&&f.call(this)}),Y.bind(s.__input,"blur",f),Y.bind(s.__selector,"mousedown",function(){Y.addClass(this,"drag").bind(window,"mouseup",function(){Y.removeClass(r.__selector,"drag")})}),Y.bind(s.__selector,"touchstart",function(){Y.addClass(this,"drag").bind(window,"touchend",function(){Y.removeClass(r.__selector,"drag")})});var o=document.createElement("div");te.extend(s.__selector.style,{width:"122px",height:"102px",padding:"3px",backgroundColor:"#222",boxShadow:"0px 1px 3px rgba(0,0,0,0.3)"}),te.extend(s.__field_knob.style,{position:"absolute",width:"12px",height:"12px",border:s.__field_knob_border+(s.__color.v<.5?"#fff":"#000"),boxShadow:"0px 1px 3px rgba(0,0,0,0.5)",borderRadius:"12px",zIndex:1}),te.extend(s.__hue_knob.style,{position:"absolute",width:"15px",height:"2px",borderRight:"4px solid #fff",zIndex:1}),te.extend(s.__saturation_field.style,{width:"100px",height:"100px",border:"1px solid #555",marginRight:"3px",display:"inline-block",cursor:"pointer"}),te.extend(o.style,{width:"100%",height:"100%",background:"none"}),MA(o,"top","rgba(0,0,0,0)","#000"),te.extend(s.__hue_field.style,{width:"15px",height:"100px",border:"1px solid #555",cursor:"ns-resize",position:"absolute",top:"3px",right:"3px"}),zx(s.__hue_field),te.extend(s.__input.style,{outline:"none",textAlign:"center",color:"#fff",border:0,fontWeight:"bold",textShadow:s.__input_textShadow+"rgba(0,0,0,0.7)"}),Y.bind(s.__saturation_field,"mousedown",a),Y.bind(s.__saturation_field,"touchstart",a),Y.bind(s.__field_knob,"mousedown",a),Y.bind(s.__field_knob,"touchstart",a),Y.bind(s.__hue_field,"mousedown",l),Y.bind(s.__hue_field,"touchstart",l);function a(m){d(m),Y.bind(window,"mousemove",d),Y.bind(window,"touchmove",d),Y.bind(window,"mouseup",c),Y.bind(window,"touchend",c)}function l(m){g(m),Y.bind(window,"mousemove",g),Y.bind(window,"touchmove",g),Y.bind(window,"mouseup",h),Y.bind(window,"touchend",h)}function c(){Y.unbind(window,"mousemove",d),Y.unbind(window,"touchmove",d),Y.unbind(window,"mouseup",c),Y.unbind(window,"touchend",c),u()}function h(){Y.unbind(window,"mousemove",g),Y.unbind(window,"touchmove",g),Y.unbind(window,"mouseup",h),Y.unbind(window,"touchend",h),u()}function f(){var m=Tl(this.value);m!==!1?(r.__color.__state=m,r.setValue(r.__color.toOriginal())):this.value=r.__color.toString()}function u(){r.__onFinishChange&&r.__onFinishChange.call(r,r.__color.toOriginal())}s.__saturation_field.appendChild(o),s.__selector.appendChild(s.__field_knob),s.__selector.appendChild(s.__saturation_field),s.__selector.appendChild(s.__hue_field),s.__hue_field.appendChild(s.__hue_knob),s.domElement.appendChild(s.__input),s.domElement.appendChild(s.__selector),s.updateDisplay();function d(m){m.type.indexOf("touch")===-1&&m.preventDefault();var p=r.__saturation_field.getBoundingClientRect(),A=m.touches&&m.touches[0]||m,x=A.clientX,_=A.clientY,v=(x-p.left)/(p.right-p.left),y=1-(_-p.top)/(p.bottom-p.top);return y>1?y=1:y<0&&(y=0),v>1?v=1:v<0&&(v=0),r.__color.v=y,r.__color.s=v,r.setValue(r.__color.toOriginal()),!1}function g(m){m.type.indexOf("touch")===-1&&m.preventDefault();var p=r.__hue_field.getBoundingClientRect(),A=m.touches&&m.touches[0]||m,x=A.clientY,_=1-(x-p.top)/(p.bottom-p.top);return _>1?_=1:_<0&&(_=0),r.__color.h=_*360,r.setValue(r.__color.toOriginal()),!1}return s}return In(e,[{key:"updateDisplay",value:function(){var i=Tl(this.getValue());if(i!==!1){var s=!1;te.each(Tt.COMPONENTS,function(a){if(!te.isUndefined(i[a])&&!te.isUndefined(this.__color.__state[a])&&i[a]!==this.__color.__state[a])return s=!0,{}},this),s&&te.extend(this.__color.__state,i)}te.extend(this.__temp.__state,this.__color.__state),this.__temp.a=1;var r=this.__color.v<.5||this.__color.s>.5?255:0,o=255-r;te.extend(this.__field_knob.style,{marginLeft:100*this.__color.s-7+"px",marginTop:100*(1-this.__color.v)-7+"px",backgroundColor:this.__temp.toHexString(),border:this.__field_knob_border+"rgb("+r+","+r+","+r+")"}),this.__hue_knob.style.marginTop=(1-this.__color.h/360)*100+"px",this.__temp.s=1,this.__temp.v=1,MA(this.__saturation_field,"left","#fff",this.__temp.toHexString()),this.__input.value=this.__color.toString(),te.extend(this.__input.style,{backgroundColor:this.__color.toHexString(),color:"rgb("+r+","+r+","+r+")",textShadow:this.__input_textShadow+"rgba("+o+","+o+","+o+",.7)"})}}]),e}(qi),Hx=["-moz-","-o-","-webkit-","-ms-",""];function MA(n,e,t,i){n.style.background="",te.each(Hx,function(s){n.style.cssText+="background: "+s+"linear-gradient("+e+", "+t+" 0%, "+i+" 100%); "})}function zx(n){n.style.background="",n.style.cssText+="background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);",n.style.cssText+="background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);",n.style.cssText+="background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);"}var Vx={load:function(e,t){var i=t||document,s=i.createElement("link");s.type="text/css",s.rel="stylesheet",s.href=e,i.getElementsByTagName("head")[0].appendChild(s)},inject:function(e,t){var i=t||document,s=document.createElement("style");s.type="text/css",s.innerHTML=e;var r=i.getElementsByTagName("head")[0];try{r.appendChild(s)}catch{}}},Wx=`<div id="dg-save" class="dg dialogue">
3
3
 
4
4
  Here's the new load parameter for your <code>GUI</code>'s constructor:
5
5
 
@@ -20,11 +20,11 @@
20
20
  </div>
21
21
 
22
22
  </div>`,Kx=function(e,t){var i=e[t];return te.isArray(arguments[2])||te.isObject(arguments[2])?new kx(e,t,arguments[2]):te.isNumber(i)?te.isNumber(arguments[2])&&te.isNumber(arguments[3])?te.isNumber(arguments[4])?new Bl(e,t,arguments[2],arguments[3],arguments[4]):new Bl(e,t,arguments[2],arguments[3]):te.isNumber(arguments[4])?new Io(e,t,{min:arguments[2],max:arguments[3],step:arguments[4]}):new Io(e,t,{min:arguments[2],max:arguments[3]}):te.isString(i)?new Qx(e,t):te.isFunction(i)?new OA(e,t,""):te.isBoolean(i)?new UA(e,t):null};function qx(n){setTimeout(n,1e3/60)}var Xx=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||qx,Yx=function(){function n(){bn(this,n),this.backgroundElement=document.createElement("div"),te.extend(this.backgroundElement.style,{backgroundColor:"rgba(0,0,0,0.8)",top:0,left:0,display:"none",zIndex:"1000",opacity:0,WebkitTransition:"opacity 0.2s linear",transition:"opacity 0.2s linear"}),Y.makeFullscreen(this.backgroundElement),this.backgroundElement.style.position="fixed",this.domElement=document.createElement("div"),te.extend(this.domElement.style,{position:"fixed",display:"none",zIndex:"1001",opacity:0,WebkitTransition:"-webkit-transform 0.2s ease-out, opacity 0.2s linear",transition:"transform 0.2s ease-out, opacity 0.2s linear"}),document.body.appendChild(this.backgroundElement),document.body.appendChild(this.domElement);var e=this;Y.bind(this.backgroundElement,"click",function(){e.hide()})}return In(n,[{key:"show",value:function(){var t=this;this.backgroundElement.style.display="block",this.domElement.style.display="block",this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)",this.layout(),te.defer(function(){t.backgroundElement.style.opacity=1,t.domElement.style.opacity=1,t.domElement.style.webkitTransform="scale(1)"})}},{key:"hide",value:function(){var t=this,i=function s(){t.domElement.style.display="none",t.backgroundElement.style.display="none",Y.unbind(t.domElement,"webkitTransitionEnd",s),Y.unbind(t.domElement,"transitionend",s),Y.unbind(t.domElement,"oTransitionEnd",s)};Y.bind(this.domElement,"webkitTransitionEnd",i),Y.bind(this.domElement,"transitionend",i),Y.bind(this.domElement,"oTransitionEnd",i),this.backgroundElement.style.opacity=0,this.domElement.style.opacity=0,this.domElement.style.webkitTransform="scale(1.1)"}},{key:"layout",value:function(){this.domElement.style.left=window.innerWidth/2-Y.getWidth(this.domElement)/2+"px",this.domElement.style.top=window.innerHeight/2-Y.getHeight(this.domElement)/2+"px"}}]),n}(),Jx=Fx(`.dg ul{list-style:none;margin:0;padding:0;width:100%;clear:both}.dg.ac{position:fixed;top:0;left:0;right:0;height:0;z-index:0}.dg:not(.ac) .main{overflow:hidden}.dg.main{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear}.dg.main.taller-than-window{overflow-y:auto}.dg.main.taller-than-window .close-button{opacity:1;margin-top:-1px;border-top:1px solid #2c2c2c}.dg.main ul.closed .close-button{opacity:1 !important}.dg.main:hover .close-button,.dg.main .close-button.drag{opacity:1}.dg.main .close-button{-webkit-transition:opacity .1s linear;-o-transition:opacity .1s linear;-moz-transition:opacity .1s linear;transition:opacity .1s linear;border:0;line-height:19px;height:20px;cursor:pointer;text-align:center;background-color:#000}.dg.main .close-button.close-top{position:relative}.dg.main .close-button.close-bottom{position:absolute}.dg.main .close-button:hover{background-color:#111}.dg.a{float:right;margin-right:15px;overflow-y:visible}.dg.a.has-save>ul.close-top{margin-top:0}.dg.a.has-save>ul.close-bottom{margin-top:27px}.dg.a.has-save>ul.closed{margin-top:0}.dg.a .save-row{top:0;z-index:1002}.dg.a .save-row.close-top{position:relative}.dg.a .save-row.close-bottom{position:fixed}.dg li{-webkit-transition:height .1s ease-out;-o-transition:height .1s ease-out;-moz-transition:height .1s ease-out;transition:height .1s ease-out;-webkit-transition:overflow .1s linear;-o-transition:overflow .1s linear;-moz-transition:overflow .1s linear;transition:overflow .1s linear}.dg li:not(.folder){cursor:auto;height:27px;line-height:27px;padding:0 4px 0 5px}.dg li.folder{padding:0;border-left:4px solid rgba(0,0,0,0)}.dg li.title{cursor:pointer;margin-left:-4px}.dg .closed li:not(.title),.dg .closed ul li,.dg .closed ul li>*{height:0;overflow:hidden;border:0}.dg .cr{clear:both;padding-left:3px;height:27px;overflow:hidden}.dg .property-name{cursor:default;float:left;clear:left;width:40%;overflow:hidden;text-overflow:ellipsis}.dg .cr.function .property-name{width:100%}.dg .c{float:left;width:60%;position:relative}.dg .c input[type=text]{border:0;margin-top:4px;padding:3px;width:100%;float:right}.dg .has-slider input[type=text]{width:30%;margin-left:0}.dg .slider{float:left;width:66%;margin-left:-5px;margin-right:0;height:19px;margin-top:4px}.dg .slider-fg{height:100%}.dg .c input[type=checkbox]{margin-top:7px}.dg .c select{margin-top:5px}.dg .cr.function,.dg .cr.function .property-name,.dg .cr.function *,.dg .cr.boolean,.dg .cr.boolean *{cursor:pointer}.dg .cr.color{overflow:visible}.dg .selector{display:none;position:absolute;margin-left:-9px;margin-top:23px;z-index:10}.dg .c:hover .selector,.dg .selector.drag{display:block}.dg li.save-row{padding:0}.dg li.save-row .button{display:inline-block;padding:0px 6px}.dg.dialogue{background-color:#222;width:460px;padding:15px;font-size:13px;line-height:15px}#dg-new-constructor{padding:10px;color:#222;font-family:Monaco, monospace;font-size:10px;border:0;resize:none;box-shadow:inset 1px 1px 1px #888;word-wrap:break-word;margin:12px 0;display:block;width:440px;overflow-y:scroll;height:100px;position:relative}#dg-local-explain{display:none;font-size:11px;line-height:17px;border-radius:3px;background-color:#333;padding:8px;margin-top:10px}#dg-local-explain code{font-size:10px}#dat-gui-save-locally{display:none}.dg{color:#eee;font:11px 'Lucida Grande', sans-serif;text-shadow:0 -1px 0 #111}.dg.main::-webkit-scrollbar{width:5px;background:#1a1a1a}.dg.main::-webkit-scrollbar-corner{height:0;display:none}.dg.main::-webkit-scrollbar-thumb{border-radius:5px;background:#676767}.dg li:not(.folder){background:#1a1a1a;border-bottom:1px solid #2c2c2c}.dg li.save-row{line-height:25px;background:#dad5cb;border:0}.dg li.save-row select{margin-left:5px;width:108px}.dg li.save-row .button{margin-left:5px;margin-top:1px;border-radius:2px;font-size:9px;line-height:7px;padding:4px 4px 5px 4px;background:#c5bdad;color:#fff;text-shadow:0 1px 0 #b0a58f;box-shadow:0 -1px 0 #b0a58f;cursor:pointer}.dg li.save-row .button.gears{background:#c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;height:7px;width:8px}.dg li.save-row .button:hover{background-color:#bab19e;box-shadow:0 -1px 0 #b0a58f}.dg li.folder{border-bottom:0}.dg li.title{padding-left:16px;background:#000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;cursor:pointer;border-bottom:1px solid rgba(255,255,255,0.2)}.dg .closed li.title{background-image:url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==)}.dg .cr.boolean{border-left:3px solid #806787}.dg .cr.color{border-left:3px solid}.dg .cr.function{border-left:3px solid #e61d5f}.dg .cr.number{border-left:3px solid #2FA1D6}.dg .cr.number input[type=text]{color:#2FA1D6}.dg .cr.string{border-left:3px solid #1ed36f}.dg .cr.string input[type=text]{color:#1ed36f}.dg .cr.function:hover,.dg .cr.boolean:hover{background:#111}.dg .c input[type=text]{background:#303030;outline:none}.dg .c input[type=text]:hover{background:#3c3c3c}.dg .c input[type=text]:focus{background:#494949;color:#fff}.dg .c .slider{background:#303030;cursor:ew-resize}.dg .c .slider-fg{background:#2FA1D6;max-width:100%}.dg .c .slider:hover{background:#3c3c3c}.dg .c .slider:hover .slider-fg{background:#44abda}
23
- `);Vx.inject(Jx);var TA="dg",BA=72,RA=20,Gr="Default",Or=function(){try{return!!window.localStorage}catch{return!1}}(),kr=void 0,DA=!0,Cs=void 0,Ml=!1,kA=[],ot=function n(e){var t=this,i=e||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),Y.addClass(this.domElement,TA),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],i=te.defaults(i,{closeOnTop:!1,autoPlace:!0,width:n.DEFAULT_WIDTH}),i=te.defaults(i,{resizable:i.autoPlace,hideable:i.autoPlace}),te.isUndefined(i.load)?i.load={preset:Gr}:i.preset&&(i.load.preset=i.preset),te.isUndefined(i.parent)&&i.hideable&&kA.push(this),i.resizable=te.isUndefined(i.parent)&&i.resizable,i.autoPlace&&te.isUndefined(i.scrollable)&&(i.scrollable=!0);var s=Or&&localStorage.getItem(Ss(this,"isLocal"))==="true",r=void 0,o=void 0;if(Object.defineProperties(this,{parent:{get:function(){return i.parent}},scrollable:{get:function(){return i.scrollable}},autoPlace:{get:function(){return i.autoPlace}},closeOnTop:{get:function(){return i.closeOnTop}},preset:{get:function(){return t.parent?t.getRoot().preset:i.load.preset},set:function(u){t.parent?t.getRoot().preset=u:i.load.preset=u,ev(this),t.revert()}},width:{get:function(){return i.width},set:function(u){i.width=u,Fl(t,u)}},name:{get:function(){return i.name},set:function(u){i.name=u,o&&(o.innerHTML=i.name)}},closed:{get:function(){return i.closed},set:function(u){i.closed=u,i.closed?Y.addClass(t.__ul,n.CLASS_CLOSED):Y.removeClass(t.__ul,n.CLASS_CLOSED),this.onResize(),t.__closeButton&&(t.__closeButton.innerHTML=u?n.TEXT_OPEN:n.TEXT_CLOSED)}},load:{get:function(){return i.load}},useLocalStorage:{get:function(){return s},set:function(u){Or&&(s=u,u?Y.bind(window,"unload",r):Y.unbind(window,"unload",r),localStorage.setItem(Ss(t,"isLocal"),u))}}}),te.isUndefined(i.parent)){if(this.closed=i.closed||!1,Y.addClass(this.domElement,n.CLASS_MAIN),Y.makeSelectable(this.domElement,!1),Or&&s){t.useLocalStorage=!0;var a=localStorage.getItem(Ss(this,"gui"));a&&(i.load=JSON.parse(a))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=n.TEXT_CLOSED,Y.addClass(this.__closeButton,n.CLASS_CLOSE_BUTTON),i.closeOnTop?(Y.addClass(this.__closeButton,n.CLASS_CLOSE_TOP),this.domElement.insertBefore(this.__closeButton,this.domElement.childNodes[0])):(Y.addClass(this.__closeButton,n.CLASS_CLOSE_BOTTOM),this.domElement.appendChild(this.__closeButton)),Y.bind(this.__closeButton,"click",function(){t.closed=!t.closed})}else{i.closed===void 0&&(i.closed=!0);var l=document.createTextNode(i.name);Y.addClass(l,"controller-name"),o=Nl(t,l);var c=function(u){return u.preventDefault(),t.closed=!t.closed,!1};Y.addClass(this.__ul,n.CLASS_CLOSED),Y.addClass(o,"title"),Y.bind(o,"click",c),i.closed||(this.closed=!1)}i.autoPlace&&(te.isUndefined(i.parent)&&(DA&&(Cs=document.createElement("div"),Y.addClass(Cs,TA),Y.addClass(Cs,n.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(Cs),DA=!1),Cs.appendChild(this.domElement),Y.addClass(this.domElement,n.CLASS_AUTO_PLACE)),this.parent||Fl(t,i.width)),this.__resizeHandler=function(){t.onResizeDebounced()},Y.bind(window,"resize",this.__resizeHandler),Y.bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),Y.bind(this.__ul,"transitionend",this.__resizeHandler),Y.bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),i.resizable&&$x(this),r=function(){Or&&localStorage.getItem(Ss(t,"isLocal"))==="true"&&localStorage.setItem(Ss(t,"gui"),JSON.stringify(t.getSaveObject()))},this.saveToLocalStorageIfPossible=r;function h(){var f=t.getRoot();f.width+=1,te.defer(function(){f.width-=1})}i.parent||h()};ot.toggleHide=function(){Ml=!Ml,te.each(kA,function(n){n.domElement.style.display=Ml?"none":""})};ot.CLASS_AUTO_PLACE="a";ot.CLASS_AUTO_PLACE_CONTAINER="ac";ot.CLASS_MAIN="main";ot.CLASS_CONTROLLER_ROW="cr";ot.CLASS_TOO_TALL="taller-than-window";ot.CLASS_CLOSED="closed";ot.CLASS_CLOSE_BUTTON="close-button";ot.CLASS_CLOSE_TOP="close-top";ot.CLASS_CLOSE_BOTTOM="close-bottom";ot.CLASS_DRAG="drag";ot.DEFAULT_WIDTH=245;ot.TEXT_CLOSED="Close Controls";ot.TEXT_OPEN="Open Controls";ot._keydownHandler=function(n){document.activeElement.type!=="text"&&(n.which===BA||n.keyCode===BA)&&ot.toggleHide()};Y.bind(window,"keydown",ot._keydownHandler,!1);te.extend(ot.prototype,{add:function(e,t){return Qr(this,e,t,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(e,t){return Qr(this,e,t,{color:!0})},remove:function(e){this.__ul.removeChild(e.__li),this.__controllers.splice(this.__controllers.indexOf(e),1);var t=this;te.defer(function(){t.onResize()})},destroy:function(){if(this.parent)throw new Error("Only the root GUI should be removed with .destroy(). For subfolders, use gui.removeFolder(folder) instead.");this.autoPlace&&Cs.removeChild(this.domElement);var e=this;te.each(this.__folders,function(t){e.removeFolder(t)}),Y.unbind(window,"keydown",ot._keydownHandler,!1),LA(this)},addFolder:function(e){if(this.__folders[e]!==void 0)throw new Error('You already have a folder in this GUI by the name "'+e+'"');var t={name:e,parent:this};t.autoPlace=this.autoPlace,this.load&&this.load.folders&&this.load.folders[e]&&(t.closed=this.load.folders[e].closed,t.load=this.load.folders[e]);var i=new ot(t);this.__folders[e]=i;var s=Nl(this,i.domElement);return Y.addClass(s,"folder"),i},removeFolder:function(e){this.__ul.removeChild(e.domElement.parentElement),delete this.__folders[e.name],this.load&&this.load.folders&&this.load.folders[e.name]&&delete this.load.folders[e.name],LA(e);var t=this;te.each(e.__folders,function(i){e.removeFolder(i)}),te.defer(function(){t.onResize()})},open:function(){this.closed=!1},close:function(){this.closed=!0},hide:function(){this.domElement.style.display="none"},show:function(){this.domElement.style.display=""},onResize:function(){var e=this.getRoot();if(e.scrollable){var t=Y.getOffset(e.__ul).top,i=0;te.each(e.__ul.childNodes,function(s){e.autoPlace&&s===e.__save_row||(i+=Y.getHeight(s))}),window.innerHeight-t-RA<i?(Y.addClass(e.domElement,ot.CLASS_TOO_TALL),e.__ul.style.height=window.innerHeight-t-RA+"px"):(Y.removeClass(e.domElement,ot.CLASS_TOO_TALL),e.__ul.style.height="auto")}e.__resize_handle&&te.defer(function(){e.__resize_handle.style.height=e.__ul.offsetHeight+"px"}),e.__closeButton&&(e.__closeButton.style.width=e.width+"px")},onResizeDebounced:te.debounce(function(){this.onResize()},50),remember:function(){if(te.isUndefined(kr)&&(kr=new Yx,kr.domElement.innerHTML=Wx),this.parent)throw new Error("You can only call remember on a top level GUI.");var e=this;te.each(Array.prototype.slice.call(arguments),function(t){e.__rememberedObjects.length===0&&jx(e),e.__rememberedObjects.indexOf(t)===-1&&e.__rememberedObjects.push(t)}),this.autoPlace&&Fl(this,this.width)},getRoot:function(){for(var e=this;e.parent;)e=e.parent;return e},getSaveObject:function(){var e=this.load;return e.closed=this.closed,this.__rememberedObjects.length>0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=So(this)),e.folders={},te.each(this.__folders,function(t,i){e.folders[i]=t.getSaveObject()}),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=So(this),Dl(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[Gr]=So(this,!0)),this.load.remembered[e]=So(this),this.preset=e,Ll(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){te.each(this.__controllers,function(t){this.getRoot().load.remembered?QA(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())},this),te.each(this.__folders,function(t){t.revert(t)}),e||Dl(this.getRoot(),!1)},listen:function(e){var t=this.__listening.length===0;this.__listening.push(e),t&&GA(this.__listening)},updateDisplay:function(){te.each(this.__controllers,function(e){e.updateDisplay()}),te.each(this.__folders,function(e){e.updateDisplay()})}});function Nl(n,e,t){var i=document.createElement("li");return e&&i.appendChild(e),t?n.__ul.insertBefore(i,t):n.__ul.appendChild(i),n.onResize(),i}function LA(n){Y.unbind(window,"resize",n.__resizeHandler),n.saveToLocalStorageIfPossible&&Y.unbind(window,"unload",n.saveToLocalStorageIfPossible)}function Dl(n,e){var t=n.__preset_select[n.__preset_select.selectedIndex];e?t.innerHTML=t.value+"*":t.innerHTML=t.value}function Zx(n,e,t){if(t.__li=e,t.__gui=n,te.extend(t,{options:function(o){if(arguments.length>1){var a=t.__li.nextElementSibling;return t.remove(),Qr(n,t.object,t.property,{before:a,factoryArgs:[te.toArray(arguments)]})}if(te.isArray(o)||te.isObject(o)){var l=t.__li.nextElementSibling;return t.remove(),Qr(n,t.object,t.property,{before:l,factoryArgs:[o]})}},name:function(o){return t.__li.firstElementChild.firstElementChild.innerHTML=o,t},listen:function(){return t.__gui.listen(t),t},remove:function(){return t.__gui.remove(t),t}}),t instanceof Bl){var i=new Io(t.object,t.property,{min:t.__min,max:t.__max,step:t.__step});te.each(["updateDisplay","onChange","onFinishChange","step","min","max"],function(r){var o=t[r],a=i[r];t[r]=i[r]=function(){var l=Array.prototype.slice.call(arguments);return a.apply(i,l),o.apply(t,l)}}),Y.addClass(e,"has-slider"),t.domElement.insertBefore(i.domElement,t.domElement.firstElementChild)}else if(t instanceof Io){var s=function(o){if(te.isNumber(t.__min)&&te.isNumber(t.__max)){var a=t.__li.firstElementChild.firstElementChild.innerHTML,l=t.__gui.__listening.indexOf(t)>-1;t.remove();var c=Qr(n,t.object,t.property,{before:t.__li.nextElementSibling,factoryArgs:[t.__min,t.__max,t.__step]});return c.name(a),l&&c.listen(),c}return o};t.min=te.compose(s,t.min),t.max=te.compose(s,t.max)}else t instanceof UA?(Y.bind(e,"click",function(){Y.fakeEvent(t.__checkbox,"click")}),Y.bind(t.__checkbox,"click",function(r){r.stopPropagation()})):t instanceof OA?(Y.bind(e,"click",function(){Y.fakeEvent(t.__button,"click")}),Y.bind(e,"mouseover",function(){Y.addClass(t.__button,"hover")}),Y.bind(e,"mouseout",function(){Y.removeClass(t.__button,"hover")})):t instanceof Rl&&(Y.addClass(e,"color"),t.updateDisplay=te.compose(function(r){return e.style.borderLeftColor=t.__color.toString(),r},t.updateDisplay),t.updateDisplay());t.setValue=te.compose(function(r){return n.getRoot().__preset_select&&t.isModified()&&Dl(n.getRoot(),!0),r},t.setValue)}function QA(n,e){var t=n.getRoot(),i=t.__rememberedObjects.indexOf(e.object);if(i!==-1){var s=t.__rememberedObjectIndecesToControllers[i];if(s===void 0&&(s={},t.__rememberedObjectIndecesToControllers[i]=s),s[e.property]=e,t.load&&t.load.remembered){var r=t.load.remembered,o=void 0;if(r[n.preset])o=r[n.preset];else if(r[Gr])o=r[Gr];else return;if(o[i]&&o[i][e.property]!==void 0){var a=o[i][e.property];e.initialValue=a,e.setValue(a)}}}}function Qr(n,e,t,i){if(e[t]===void 0)throw new Error('Object "'+e+'" has no property "'+t+'"');var s=void 0;if(i.color)s=new Rl(e,t);else{var r=[e,t].concat(i.factoryArgs);s=Kx.apply(n,r)}i.before instanceof qi&&(i.before=i.before.__li),QA(n,s),Y.addClass(s.domElement,"c");var o=document.createElement("span");Y.addClass(o,"property-name"),o.innerHTML=s.property;var a=document.createElement("div");a.appendChild(o),a.appendChild(s.domElement);var l=Nl(n,a,i.before);return Y.addClass(l,ot.CLASS_CONTROLLER_ROW),s instanceof Rl?Y.addClass(l,"color"):Y.addClass(l,Ux(s.getValue())),Zx(n,l,s),n.__controllers.push(s),s}function Ss(n,e){return document.location.href+"."+e}function Ll(n,e,t){var i=document.createElement("option");i.innerHTML=e,i.value=e,n.__preset_select.appendChild(i),t&&(n.__preset_select.selectedIndex=n.__preset_select.length-1)}function FA(n,e){e.style.display=n.useLocalStorage?"block":"none"}function jx(n){var e=n.__save_row=document.createElement("li");Y.addClass(n.domElement,"has-save"),n.__ul.insertBefore(e,n.__ul.firstChild),Y.addClass(e,"save-row");var t=document.createElement("span");t.innerHTML="&nbsp;",Y.addClass(t,"button gears");var i=document.createElement("span");i.innerHTML="Save",Y.addClass(i,"button"),Y.addClass(i,"save");var s=document.createElement("span");s.innerHTML="New",Y.addClass(s,"button"),Y.addClass(s,"save-as");var r=document.createElement("span");r.innerHTML="Revert",Y.addClass(r,"button"),Y.addClass(r,"revert");var o=n.__preset_select=document.createElement("select");if(n.load&&n.load.remembered?te.each(n.load.remembered,function(f,u){Ll(n,u,u===n.preset)}):Ll(n,Gr,!1),Y.bind(o,"change",function(){for(var f=0;f<n.__preset_select.length;f++)n.__preset_select[f].innerHTML=n.__preset_select[f].value;n.preset=this.value}),e.appendChild(o),e.appendChild(t),e.appendChild(i),e.appendChild(s),e.appendChild(r),Or){var a=document.getElementById("dg-local-explain"),l=document.getElementById("dg-local-storage"),c=document.getElementById("dg-save-locally");c.style.display="block",localStorage.getItem(Ss(n,"isLocal"))==="true"&&l.setAttribute("checked","checked"),FA(n,a),Y.bind(l,"change",function(){n.useLocalStorage=!n.useLocalStorage,FA(n,a)})}var h=document.getElementById("dg-new-constructor");Y.bind(h,"keydown",function(f){f.metaKey&&(f.which===67||f.keyCode===67)&&kr.hide()}),Y.bind(t,"click",function(){h.innerHTML=JSON.stringify(n.getSaveObject(),void 0,2),kr.show(),h.focus(),h.select()}),Y.bind(i,"click",function(){n.save()}),Y.bind(s,"click",function(){var f=prompt("Enter a new preset name.");f&&n.saveAs(f)}),Y.bind(r,"click",function(){n.revert()})}function $x(n){var e=void 0;n.__resize_handle=document.createElement("div"),te.extend(n.__resize_handle.style,{width:"6px",marginLeft:"-3px",height:"200px",cursor:"ew-resize",position:"absolute"});function t(r){return r.preventDefault(),n.width+=e-r.clientX,n.onResize(),e=r.clientX,!1}function i(){Y.removeClass(n.__closeButton,ot.CLASS_DRAG),Y.unbind(window,"mousemove",t),Y.unbind(window,"mouseup",i)}function s(r){return r.preventDefault(),e=r.clientX,Y.addClass(n.__closeButton,ot.CLASS_DRAG),Y.bind(window,"mousemove",t),Y.bind(window,"mouseup",i),!1}Y.bind(n.__resize_handle,"mousedown",s),Y.bind(n.__closeButton,"mousedown",s),n.domElement.insertBefore(n.__resize_handle,n.domElement.firstElementChild)}function Fl(n,e){n.domElement.style.width=e+"px",n.__save_row&&n.autoPlace&&(n.__save_row.style.width=e+"px"),n.__closeButton&&(n.__closeButton.style.width=e+"px")}function So(n,e){var t={};return te.each(n.__rememberedObjects,function(i,s){var r={},o=n.__rememberedObjectIndecesToControllers[s];te.each(o,function(a,l){r[l]=e?a.initialValue:a.getValue()}),t[s]=r}),t}function ev(n){for(var e=0;e<n.__preset_select.length;e++)n.__preset_select[e].value===n.preset&&(n.__preset_select.selectedIndex=e)}function GA(n){n.length!==0&&Xx.call(window,function(){GA(n)}),te.each(n,function(e){e.updateDisplay()})}var wo=ot;var zh="155",ls={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},hs={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},tv=0,HA=1,nv=2;var _0=1,iv=2,si=3,zn=0,Qt=1,Dn=2;var Ii=0,Ks=1,zA=2,VA=3,WA=4,sv=5,Vs=100,rv=101,av=102,KA=103,qA=104,ov=200,cv=201,lv=202,hv=203,x0=204,v0=205,uv=206,fv=207,dv=208,Av=209,pv=210,gv=0,mv=1,_v=2,dh=3,xv=4,vv=5,Ev=6,yv=7,E0=0,Cv=1,Sv=2,wi=0,bv=1,Iv=2,wv=3,Vh=4,Mv=5,y0=300,is=301,Ys=302,sa=303,Ah=304,Dc=306,ss=1e3,kt=1001,ra=1002,Et=1003,$o=1004;var Jr=1005;var ut=1006,Wh=1007;var Fn=1008;var Pt=1009,Tv=1010,Bv=1011,Kh=1012,C0=1013,bi=1014,Lt=1015,Wt=1016,S0=1017,b0=1018,es=1020,Rv=1021,Dt=1023,Dv=1024,Lv=1025,ts=1026,Js=1027,cr=1028,I0=1029,lr=1030,w0=1031,M0=1033,Zr=33776,Ol=33777,kl=33778,jr=33779,ec=35840,XA=35841,tc=35842,YA=35843,qh=36196,nc=37492,ic=37496,sc=37808,JA=37809,ZA=37810,jA=37811,$A=37812,ep=37813,tp=37814,np=37815,ip=37816,sp=37817,rp=37818,ap=37819,op=37820,cp=37821,$r=36492,Fv=36283,lp=36284,hp=36285,up=36286;var Zs=2300,rs=2301,Ql=2302,fp=2400,dp=2401,Ap=2402,Pv=2500;var T0=0,Lc=1,va=2,B0=3e3,ns=3001,Uv=3200,Nv=3201,R0=0,Ov=1,Hn="",be="srgb",An="srgb-linear",D0="display-p3";var Gl=7680;var kv=519,Qv=512,Gv=513,Hv=514,zv=515,Vv=516,Wv=517,Kv=518,qv=519,ph=35044;var pp="300 es",gh=1035,ai=2e3,rc=2001,Vn=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;let i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;let s=this._listeners[e];if(s!==void 0){let r=s.indexOf(t);r!==-1&&s.splice(r,1)}}dispatchEvent(e){if(this._listeners===void 0)return;let i=this._listeners[e.type];if(i!==void 0){e.target=this;let s=i.slice(0);for(let r=0,o=s.length;r<o;r++)s[r].call(this,e);e.target=null}}},Nt=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],gp=1234567,ea=Math.PI/180,js=180/Math.PI;function Ln(){let n=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(Nt[n&255]+Nt[n>>8&255]+Nt[n>>16&255]+Nt[n>>24&255]+"-"+Nt[e&255]+Nt[e>>8&255]+"-"+Nt[e>>16&15|64]+Nt[e>>24&255]+"-"+Nt[t&63|128]+Nt[t>>8&255]+"-"+Nt[t>>16&255]+Nt[t>>24&255]+Nt[i&255]+Nt[i>>8&255]+Nt[i>>16&255]+Nt[i>>24&255]).toLowerCase()}function Rt(n,e,t){return Math.max(e,Math.min(t,n))}function Xh(n,e){return(n%e+e)%e}function Xv(n,e,t,i,s){return i+(n-e)*(s-i)/(t-e)}function Yv(n,e,t){return n!==e?(t-n)/(e-n):0}function ta(n,e,t){return(1-t)*n+t*e}function Jv(n,e,t,i){return ta(n,e,1-Math.exp(-t*i))}function Zv(n,e=1){return e-Math.abs(Xh(n,e*2)-e)}function jv(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function $v(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function eE(n,e){return n+Math.floor(Math.random()*(e-n+1))}function tE(n,e){return n+Math.random()*(e-n)}function nE(n){return n*(.5-Math.random())}function iE(n){n!==void 0&&(gp=n);let e=gp+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function sE(n){return n*ea}function rE(n){return n*js}function mh(n){return(n&n-1)===0&&n!==0}function L0(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function ac(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function aE(n,e,t,i,s){let r=Math.cos,o=Math.sin,a=r(t/2),l=o(t/2),c=r((e+i)/2),h=o((e+i)/2),f=r((e-i)/2),u=o((e-i)/2),d=r((i-e)/2),g=o((i-e)/2);switch(s){case"XYX":n.set(a*h,l*f,l*u,a*c);break;case"YZY":n.set(l*u,a*h,l*f,a*c);break;case"ZXZ":n.set(l*f,l*u,a*h,a*c);break;case"XZX":n.set(a*h,l*g,l*d,a*c);break;case"YXY":n.set(l*d,a*h,l*g,a*c);break;case"ZYZ":n.set(l*g,l*d,a*h,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+s)}}function Gn(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function st(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}var Fc={DEG2RAD:ea,RAD2DEG:js,generateUUID:Ln,clamp:Rt,euclideanModulo:Xh,mapLinear:Xv,inverseLerp:Yv,lerp:ta,damp:Jv,pingpong:Zv,smoothstep:jv,smootherstep:$v,randInt:eE,randFloat:tE,randFloatSpread:nE,seededRandom:iE,degToRad:sE,radToDeg:rE,isPowerOfTwo:mh,ceilPowerOfTwo:L0,floorPowerOfTwo:ac,setQuaternionFromProperEuler:aE,normalize:st,denormalize:Gn},Ie=class{constructor(e=0,t=0){Ie.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,i=this.y,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6],this.y=s[1]*t+s[4]*i+s[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Rt(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let i=Math.cos(t),s=Math.sin(t),r=this.x-e.x,o=this.y-e.y;return this.x=r*i-o*s+e.x,this.y=r*s+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ge=class{constructor(e,t,i,s,r,o,a,l,c){Ge.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,s,r,o,a,l,c)}set(e,t,i,s,r,o,a,l,c){let h=this.elements;return h[0]=e,h[1]=s,h[2]=a,h[3]=t,h[4]=r,h[5]=l,h[6]=i,h[7]=o,h[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,s=t.elements,r=this.elements,o=i[0],a=i[3],l=i[6],c=i[1],h=i[4],f=i[7],u=i[2],d=i[5],g=i[8],m=s[0],p=s[3],A=s[6],x=s[1],_=s[4],v=s[7],y=s[2],S=s[5],C=s[8];return r[0]=o*m+a*x+l*y,r[3]=o*p+a*_+l*S,r[6]=o*A+a*v+l*C,r[1]=c*m+h*x+f*y,r[4]=c*p+h*_+f*S,r[7]=c*A+h*v+f*C,r[2]=u*m+d*x+g*y,r[5]=u*p+d*_+g*S,r[8]=u*A+d*v+g*C,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[1],s=e[2],r=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8];return t*o*h-t*a*c-i*r*h+i*a*l+s*r*c-s*o*l}invert(){let e=this.elements,t=e[0],i=e[1],s=e[2],r=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8],f=h*o-a*c,u=a*l-h*r,d=c*r-o*l,g=t*f+i*u+s*d;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);let m=1/g;return e[0]=f*m,e[1]=(s*c-h*i)*m,e[2]=(a*i-s*o)*m,e[3]=u*m,e[4]=(h*t-s*l)*m,e[5]=(s*r-a*t)*m,e[6]=d*m,e[7]=(i*l-c*t)*m,e[8]=(o*t-i*r)*m,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,s,r,o,a){let l=Math.cos(r),c=Math.sin(r);return this.set(i*l,i*c,-i*(l*o+c*a)+o+e,-s*c,s*l,-s*(-c*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(Hl.makeScale(e,t)),this}rotate(e){return this.premultiply(Hl.makeRotation(-e)),this}translate(e,t){return this.premultiply(Hl.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,i=e.elements;for(let s=0;s<9;s++)if(t[s]!==i[s])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}},Hl=new Ge;function F0(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}function aa(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}var mp={};function na(n){n in mp||(mp[n]=!0,console.warn(n))}function qs(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function zl(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}var oE=new Ge().fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),cE=new Ge().fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);function lE(n){return n.convertSRGBToLinear().applyMatrix3(cE)}function hE(n){return n.applyMatrix3(oE).convertLinearToSRGB()}var uE={[An]:n=>n,[be]:n=>n.convertSRGBToLinear(),[D0]:lE},fE={[An]:n=>n,[be]:n=>n.convertLinearToSRGB(),[D0]:hE},wn={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(n){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!n},get workingColorSpace(){return An},set workingColorSpace(n){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;let i=uE[e],s=fE[t];if(i===void 0||s===void 0)throw new Error(`Unsupported color space conversion, "${e}" to "${t}".`);return s(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this.workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this.workingColorSpace)}},Is,oc=class{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Is===void 0&&(Is=aa("canvas")),Is.width=e.width,Is.height=e.height;let i=Is.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=Is}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){let t=aa("canvas");t.width=e.width,t.height=e.height;let i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);let s=i.getImageData(0,0,e.width,e.height),r=s.data;for(let o=0;o<r.length;o++)r[o]=qs(r[o]/255)*255;return i.putImageData(s,0,0),t}else if(e.data){let t=e.data.slice(0);for(let i=0;i<t.length;i++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[i]=Math.floor(qs(t[i]/255)*255):t[i]=qs(t[i]);return{data:t,width:e.width,height:e.height}}else return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}},dE=0,cc=class{constructor(e=null){this.isSource=!0,Object.defineProperty(this,"id",{value:dE++}),this.uuid=Ln(),this.data=e,this.version=0}set needsUpdate(e){e===!0&&this.version++}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.images[this.uuid]!==void 0)return e.images[this.uuid];let i={uuid:this.uuid,url:""},s=this.data;if(s!==null){let r;if(Array.isArray(s)){r=[];for(let o=0,a=s.length;o<a;o++)s[o].isDataTexture?r.push(Vl(s[o].image)):r.push(Vl(s[o]))}else r=Vl(s);i.url=r}return t||(e.images[this.uuid]=i),i}};function Vl(n){return typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&n instanceof ImageBitmap?oc.getDataURL(n):n.data?{data:Array.from(n.data),width:n.width,height:n.height,type:n.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}var AE=0,gt=class extends Vn{constructor(e=gt.DEFAULT_IMAGE,t=gt.DEFAULT_MAPPING,i=kt,s=kt,r=ut,o=Fn,a=Dt,l=Pt,c=gt.DEFAULT_ANISOTROPY,h=Hn){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:AE++}),this.uuid=Ln(),this.name="",this.source=new cc(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=i,this.wrapT=s,this.magFilter=r,this.minFilter=o,this.anisotropy=c,this.format=a,this.internalFormat=null,this.type=l,this.offset=new Ie(0,0),this.repeat=new Ie(1,1),this.center=new Ie(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ge,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,typeof h=="string"?this.colorSpace=h:(na("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=h===ns?be:Hn),this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let i={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==y0)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ss:e.x=e.x-Math.floor(e.x);break;case kt:e.x=e.x<0?0:1;break;case ra:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case ss:e.y=e.y-Math.floor(e.y);break;case kt:e.y=e.y<0?0:1;break;case ra:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return na("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===be?ns:B0}set encoding(e){na("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===ns?be:Hn}};gt.DEFAULT_IMAGE=null;gt.DEFAULT_MAPPING=y0;gt.DEFAULT_ANISOTROPY=1;var tt=class{constructor(e=0,t=0,i=0,s=1){tt.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=s}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,s){return this.x=e,this.y=t,this.z=i,this.w=s,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,i=this.y,s=this.z,r=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*s+o[12]*r,this.y=o[1]*t+o[5]*i+o[9]*s+o[13]*r,this.z=o[2]*t+o[6]*i+o[10]*s+o[14]*r,this.w=o[3]*t+o[7]*i+o[11]*s+o[15]*r,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,s,r,l=e.elements,c=l[0],h=l[4],f=l[8],u=l[1],d=l[5],g=l[9],m=l[2],p=l[6],A=l[10];if(Math.abs(h-u)<.01&&Math.abs(f-m)<.01&&Math.abs(g-p)<.01){if(Math.abs(h+u)<.1&&Math.abs(f+m)<.1&&Math.abs(g+p)<.1&&Math.abs(c+d+A-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let _=(c+1)/2,v=(d+1)/2,y=(A+1)/2,S=(h+u)/4,C=(f+m)/4,M=(g+p)/4;return _>v&&_>y?_<.01?(i=0,s=.707106781,r=.707106781):(i=Math.sqrt(_),s=S/i,r=C/i):v>y?v<.01?(i=.707106781,s=0,r=.707106781):(s=Math.sqrt(v),i=S/s,r=M/s):y<.01?(i=.707106781,s=.707106781,r=0):(r=Math.sqrt(y),i=C/r,s=M/r),this.set(i,s,r,t),this}let x=Math.sqrt((p-g)*(p-g)+(f-m)*(f-m)+(u-h)*(u-h));return Math.abs(x)<.001&&(x=1),this.x=(p-g)/x,this.y=(f-m)/x,this.z=(u-h)/x,this.w=Math.acos((c+d+A-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},_h=class extends Vn{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new tt(0,0,e,t),this.scissorTest=!1,this.viewport=new tt(0,0,e,t);let s={width:e,height:t,depth:1};i.encoding!==void 0&&(na("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===ns?be:Hn),this.texture=new gt(s,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps!==void 0?i.generateMipmaps:!1,this.texture.internalFormat=i.internalFormat!==void 0?i.internalFormat:null,this.texture.minFilter=i.minFilter!==void 0?i.minFilter:ut,this.depthBuffer=i.depthBuffer!==void 0?i.depthBuffer:!0,this.stencilBuffer=i.stencilBuffer!==void 0?i.stencilBuffer:!1,this.depthTexture=i.depthTexture!==void 0?i.depthTexture:null,this.samples=i.samples!==void 0?i.samples:0}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;let t=Object.assign({},e.texture.image);return this.texture.source=new cc(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},pn=class extends _h{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}},lc=class extends gt{constructor(e=null,t=1,i=1,s=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:s},this.magFilter=Et,this.minFilter=Et,this.wrapR=kt,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var oa=class extends gt{constructor(e=null,t=1,i=1,s=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:s},this.magFilter=Et,this.minFilter=Et,this.wrapR=kt,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Xt=class{constructor(e=0,t=0,i=0,s=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=i,this._w=s}static slerpFlat(e,t,i,s,r,o,a){let l=i[s+0],c=i[s+1],h=i[s+2],f=i[s+3],u=r[o+0],d=r[o+1],g=r[o+2],m=r[o+3];if(a===0){e[t+0]=l,e[t+1]=c,e[t+2]=h,e[t+3]=f;return}if(a===1){e[t+0]=u,e[t+1]=d,e[t+2]=g,e[t+3]=m;return}if(f!==m||l!==u||c!==d||h!==g){let p=1-a,A=l*u+c*d+h*g+f*m,x=A>=0?1:-1,_=1-A*A;if(_>Number.EPSILON){let y=Math.sqrt(_),S=Math.atan2(y,A*x);p=Math.sin(p*S)/y,a=Math.sin(a*S)/y}let v=a*x;if(l=l*p+u*v,c=c*p+d*v,h=h*p+g*v,f=f*p+m*v,p===1-a){let y=1/Math.sqrt(l*l+c*c+h*h+f*f);l*=y,c*=y,h*=y,f*=y}}e[t]=l,e[t+1]=c,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,s,r,o){let a=i[s],l=i[s+1],c=i[s+2],h=i[s+3],f=r[o],u=r[o+1],d=r[o+2],g=r[o+3];return e[t]=a*g+h*f+l*d-c*u,e[t+1]=l*g+h*u+c*f-a*d,e[t+2]=c*g+h*d+a*u-l*f,e[t+3]=h*g-a*f-l*u-c*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,s){return this._x=e,this._y=t,this._z=i,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){let i=e._x,s=e._y,r=e._z,o=e._order,a=Math.cos,l=Math.sin,c=a(i/2),h=a(s/2),f=a(r/2),u=l(i/2),d=l(s/2),g=l(r/2);switch(o){case"XYZ":this._x=u*h*f+c*d*g,this._y=c*d*f-u*h*g,this._z=c*h*g+u*d*f,this._w=c*h*f-u*d*g;break;case"YXZ":this._x=u*h*f+c*d*g,this._y=c*d*f-u*h*g,this._z=c*h*g-u*d*f,this._w=c*h*f+u*d*g;break;case"ZXY":this._x=u*h*f-c*d*g,this._y=c*d*f+u*h*g,this._z=c*h*g+u*d*f,this._w=c*h*f-u*d*g;break;case"ZYX":this._x=u*h*f-c*d*g,this._y=c*d*f+u*h*g,this._z=c*h*g-u*d*f,this._w=c*h*f+u*d*g;break;case"YZX":this._x=u*h*f+c*d*g,this._y=c*d*f+u*h*g,this._z=c*h*g-u*d*f,this._w=c*h*f-u*d*g;break;case"XZY":this._x=u*h*f-c*d*g,this._y=c*d*f-u*h*g,this._z=c*h*g+u*d*f,this._w=c*h*f+u*d*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let i=t/2,s=Math.sin(i);return this._x=e.x*s,this._y=e.y*s,this._z=e.z*s,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,i=t[0],s=t[4],r=t[8],o=t[1],a=t[5],l=t[9],c=t[2],h=t[6],f=t[10],u=i+a+f;if(u>0){let d=.5/Math.sqrt(u+1);this._w=.25/d,this._x=(h-l)*d,this._y=(r-c)*d,this._z=(o-s)*d}else if(i>a&&i>f){let d=2*Math.sqrt(1+i-a-f);this._w=(h-l)/d,this._x=.25*d,this._y=(s+o)/d,this._z=(r+c)/d}else if(a>f){let d=2*Math.sqrt(1+a-i-f);this._w=(r-c)/d,this._x=(s+o)/d,this._y=.25*d,this._z=(l+h)/d}else{let d=2*Math.sqrt(1+f-i-a);this._w=(o-s)/d,this._x=(r+c)/d,this._y=(l+h)/d,this._z=.25*d}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return i<Number.EPSILON?(i=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Rt(this.dot(e),-1,1)))}rotateTowards(e,t){let i=this.angleTo(e);if(i===0)return this;let s=Math.min(1,t/i);return this.slerp(e,s),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let i=e._x,s=e._y,r=e._z,o=e._w,a=t._x,l=t._y,c=t._z,h=t._w;return this._x=i*h+o*a+s*c-r*l,this._y=s*h+o*l+r*a-i*c,this._z=r*h+o*c+i*l-s*a,this._w=o*h-i*a-s*l-r*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);let i=this._x,s=this._y,r=this._z,o=this._w,a=o*e._w+i*e._x+s*e._y+r*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=s,this._z=r,this;let l=1-a*a;if(l<=Number.EPSILON){let d=1-t;return this._w=d*o+t*this._w,this._x=d*i+t*this._x,this._y=d*s+t*this._y,this._z=d*r+t*this._z,this.normalize(),this._onChangeCallback(),this}let c=Math.sqrt(l),h=Math.atan2(c,a),f=Math.sin((1-t)*h)/c,u=Math.sin(t*h)/c;return this._w=o*f+this._w*u,this._x=i*f+this._x*u,this._y=s*f+this._y*u,this._z=r*f+this._z*u,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){let e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),s=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(t*Math.cos(s),i*Math.sin(r),i*Math.cos(r),t*Math.sin(s))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},Q=class{constructor(e=0,t=0,i=0){Q.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(_p.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(_p.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,i=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6]*s,this.y=r[1]*t+r[4]*i+r[7]*s,this.z=r[2]*t+r[5]*i+r[8]*s,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,i=this.y,s=this.z,r=e.elements,o=1/(r[3]*t+r[7]*i+r[11]*s+r[15]);return this.x=(r[0]*t+r[4]*i+r[8]*s+r[12])*o,this.y=(r[1]*t+r[5]*i+r[9]*s+r[13])*o,this.z=(r[2]*t+r[6]*i+r[10]*s+r[14])*o,this}applyQuaternion(e){let t=this.x,i=this.y,s=this.z,r=e.x,o=e.y,a=e.z,l=e.w,c=l*t+o*s-a*i,h=l*i+a*t-r*s,f=l*s+r*i-o*t,u=-r*t-o*i-a*s;return this.x=c*l+u*-r+h*-a-f*-o,this.y=h*l+u*-o+f*-r-c*-a,this.z=f*l+u*-a+c*-o-h*-r,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,i=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[4]*i+r[8]*s,this.y=r[1]*t+r[5]*i+r[9]*s,this.z=r[2]*t+r[6]*i+r[10]*s,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let i=e.x,s=e.y,r=e.z,o=t.x,a=t.y,l=t.z;return this.x=s*l-r*a,this.y=r*o-i*l,this.z=i*a-s*o,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return Wl.copy(this).projectOnVector(e),this.sub(Wl)}reflect(e){return this.sub(Wl.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Rt(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y,s=this.z-e.z;return t*t+i*i+s*s}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){let s=Math.sin(t)*e;return this.x=s*Math.sin(i),this.y=Math.cos(t)*e,this.z=s*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),s=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=s,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},Wl=new Q,_p=new Xt,gn=class{constructor(e=new Q(1/0,1/0,1/0),t=new Q(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t+=3)this.expandByPoint(jn.fromArray(e,t));return this}setFromBufferAttribute(e){this.makeEmpty();for(let t=0,i=e.count;t<i;t++)this.expandByPoint(jn.fromBufferAttribute(e,t));return this}setFromPoints(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){let i=jn.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,t=!1){if(e.updateWorldMatrix(!1,!1),e.boundingBox!==void 0)e.boundingBox===null&&e.computeBoundingBox(),ws.copy(e.boundingBox),ws.applyMatrix4(e.matrixWorld),this.union(ws);else{let s=e.geometry;if(s!==void 0)if(t&&s.attributes!==void 0&&s.attributes.position!==void 0){let r=s.attributes.position;for(let o=0,a=r.count;o<a;o++)jn.fromBufferAttribute(r,o).applyMatrix4(e.matrixWorld),this.expandByPoint(jn)}else s.boundingBox===null&&s.computeBoundingBox(),ws.copy(s.boundingBox),ws.applyMatrix4(e.matrixWorld),this.union(ws)}let i=e.children;for(let s=0,r=i.length;s<r;s++)this.expandByObject(i[s],t);return this}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)}intersectsSphere(e){return this.clampPoint(e.center,jn),jn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Hr),Mo.subVectors(this.max,Hr),Ms.subVectors(e.a,Hr),Ts.subVectors(e.b,Hr),Bs.subVectors(e.c,Hr),vi.subVectors(Ts,Ms),Ei.subVectors(Bs,Ts),Xi.subVectors(Ms,Bs);let t=[0,-vi.z,vi.y,0,-Ei.z,Ei.y,0,-Xi.z,Xi.y,vi.z,0,-vi.x,Ei.z,0,-Ei.x,Xi.z,0,-Xi.x,-vi.y,vi.x,0,-Ei.y,Ei.x,0,-Xi.y,Xi.x,0];return!Kl(t,Ms,Ts,Bs,Mo)||(t=[1,0,0,0,1,0,0,0,1],!Kl(t,Ms,Ts,Bs,Mo))?!1:(To.crossVectors(vi,Ei),t=[To.x,To.y,To.z],Kl(t,Ms,Ts,Bs,Mo))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,jn).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(jn).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Zn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Zn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Zn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Zn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Zn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Zn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Zn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Zn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Zn),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Zn=[new Q,new Q,new Q,new Q,new Q,new Q,new Q,new Q],jn=new Q,ws=new gn,Ms=new Q,Ts=new Q,Bs=new Q,vi=new Q,Ei=new Q,Xi=new Q,Hr=new Q,Mo=new Q,To=new Q,Yi=new Q;function Kl(n,e,t,i,s){for(let r=0,o=n.length-3;r<=o;r+=3){Yi.fromArray(n,r);let a=s.x*Math.abs(Yi.x)+s.y*Math.abs(Yi.y)+s.z*Math.abs(Yi.z),l=e.dot(Yi),c=t.dot(Yi),h=i.dot(Yi);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>a)return!1}return!0}var pE=new gn,zr=new Q,ql=new Q,sn=class{constructor(e=new Q,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let i=this.center;t!==void 0?i.copy(t):pE.setFromPoints(e).getCenter(i);let s=0;for(let r=0,o=e.length;r<o;r++)s=Math.max(s,i.distanceToSquared(e[r]));return this.radius=Math.sqrt(s),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){let t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){let i=this.center.distanceToSquared(e);return t.copy(e),i>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;zr.subVectors(e,this.center);let t=zr.lengthSq();if(t>this.radius*this.radius){let i=Math.sqrt(t),s=(i-this.radius)*.5;this.center.addScaledVector(zr,s/i),this.radius+=s}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(ql.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(zr.copy(e.center).add(ql)),this.expandByPoint(zr.copy(e.center).sub(ql))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}},$n=new Q,Xl=new Q,Bo=new Q,yi=new Q,Yl=new Q,Ro=new Q,Jl=new Q,Mi=class{constructor(e=new Q,t=new Q(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,$n)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=$n.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):($n.copy(this.origin).addScaledVector(this.direction,t),$n.distanceToSquared(e))}distanceSqToSegment(e,t,i,s){Xl.copy(e).add(t).multiplyScalar(.5),Bo.copy(t).sub(e).normalize(),yi.copy(this.origin).sub(Xl);let r=e.distanceTo(t)*.5,o=-this.direction.dot(Bo),a=yi.dot(this.direction),l=-yi.dot(Bo),c=yi.lengthSq(),h=Math.abs(1-o*o),f,u,d,g;if(h>0)if(f=o*l-a,u=o*a-l,g=r*h,f>=0)if(u>=-g)if(u<=g){let m=1/h;f*=m,u*=m,d=f*(f+o*u+2*a)+u*(o*f+u+2*l)+c}else u=r,f=Math.max(0,-(o*u+a)),d=-f*f+u*(u+2*l)+c;else u=-r,f=Math.max(0,-(o*u+a)),d=-f*f+u*(u+2*l)+c;else u<=-g?(f=Math.max(0,-(-o*r+a)),u=f>0?-r:Math.min(Math.max(-r,-l),r),d=-f*f+u*(u+2*l)+c):u<=g?(f=0,u=Math.min(Math.max(-r,-l),r),d=u*(u+2*l)+c):(f=Math.max(0,-(o*r+a)),u=f>0?r:Math.min(Math.max(-r,-l),r),d=-f*f+u*(u+2*l)+c);else u=o>0?-r:r,f=Math.max(0,-(o*u+a)),d=-f*f+u*(u+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,f),s&&s.copy(Xl).addScaledVector(Bo,u),d}intersectSphere(e,t){$n.subVectors(e.center,this.origin);let i=$n.dot(this.direction),s=$n.dot($n)-i*i,r=e.radius*e.radius;if(s>r)return null;let o=Math.sqrt(r-s),a=i-o,l=i+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){let i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,s,r,o,a,l,c=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,u=this.origin;return c>=0?(i=(e.min.x-u.x)*c,s=(e.max.x-u.x)*c):(i=(e.max.x-u.x)*c,s=(e.min.x-u.x)*c),h>=0?(r=(e.min.y-u.y)*h,o=(e.max.y-u.y)*h):(r=(e.max.y-u.y)*h,o=(e.min.y-u.y)*h),i>o||r>s||((r>i||isNaN(i))&&(i=r),(o<s||isNaN(s))&&(s=o),f>=0?(a=(e.min.z-u.z)*f,l=(e.max.z-u.z)*f):(a=(e.max.z-u.z)*f,l=(e.min.z-u.z)*f),i>l||a>s)||((a>i||i!==i)&&(i=a),(l<s||s!==s)&&(s=l),s<0)?null:this.at(i>=0?i:s,t)}intersectsBox(e){return this.intersectBox(e,$n)!==null}intersectTriangle(e,t,i,s,r){Yl.subVectors(t,e),Ro.subVectors(i,e),Jl.crossVectors(Yl,Ro);let o=this.direction.dot(Jl),a;if(o>0){if(s)return null;a=1}else if(o<0)a=-1,o=-o;else return null;yi.subVectors(this.origin,e);let l=a*this.direction.dot(Ro.crossVectors(yi,Ro));if(l<0)return null;let c=a*this.direction.dot(Yl.cross(yi));if(c<0||l+c>o)return null;let h=-a*yi.dot(Jl);return h<0?null:this.at(h/o,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Oe=class{constructor(e,t,i,s,r,o,a,l,c,h,f,u,d,g,m,p){Oe.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,s,r,o,a,l,c,h,f,u,d,g,m,p)}set(e,t,i,s,r,o,a,l,c,h,f,u,d,g,m,p){let A=this.elements;return A[0]=e,A[4]=t,A[8]=i,A[12]=s,A[1]=r,A[5]=o,A[9]=a,A[13]=l,A[2]=c,A[6]=h,A[10]=f,A[14]=u,A[3]=d,A[7]=g,A[11]=m,A[15]=p,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Oe().fromArray(this.elements)}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){let t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,i=e.elements,s=1/Rs.setFromMatrixColumn(e,0).length(),r=1/Rs.setFromMatrixColumn(e,1).length(),o=1/Rs.setFromMatrixColumn(e,2).length();return t[0]=i[0]*s,t[1]=i[1]*s,t[2]=i[2]*s,t[3]=0,t[4]=i[4]*r,t[5]=i[5]*r,t[6]=i[6]*r,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,i=e.x,s=e.y,r=e.z,o=Math.cos(i),a=Math.sin(i),l=Math.cos(s),c=Math.sin(s),h=Math.cos(r),f=Math.sin(r);if(e.order==="XYZ"){let u=o*h,d=o*f,g=a*h,m=a*f;t[0]=l*h,t[4]=-l*f,t[8]=c,t[1]=d+g*c,t[5]=u-m*c,t[9]=-a*l,t[2]=m-u*c,t[6]=g+d*c,t[10]=o*l}else if(e.order==="YXZ"){let u=l*h,d=l*f,g=c*h,m=c*f;t[0]=u+m*a,t[4]=g*a-d,t[8]=o*c,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=d*a-g,t[6]=m+u*a,t[10]=o*l}else if(e.order==="ZXY"){let u=l*h,d=l*f,g=c*h,m=c*f;t[0]=u-m*a,t[4]=-o*f,t[8]=g+d*a,t[1]=d+g*a,t[5]=o*h,t[9]=m-u*a,t[2]=-o*c,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){let u=o*h,d=o*f,g=a*h,m=a*f;t[0]=l*h,t[4]=g*c-d,t[8]=u*c+m,t[1]=l*f,t[5]=m*c+u,t[9]=d*c-g,t[2]=-c,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){let u=o*l,d=o*c,g=a*l,m=a*c;t[0]=l*h,t[4]=m-u*f,t[8]=g*f+d,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-c*h,t[6]=d*f+g,t[10]=u-m*f}else if(e.order==="XZY"){let u=o*l,d=o*c,g=a*l,m=a*c;t[0]=l*h,t[4]=-f,t[8]=c*h,t[1]=u*f+m,t[5]=o*h,t[9]=d*f-g,t[2]=g*f-d,t[6]=a*h,t[10]=m*f+u}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(gE,e,mE)}lookAt(e,t,i){let s=this.elements;return en.subVectors(e,t),en.lengthSq()===0&&(en.z=1),en.normalize(),Ci.crossVectors(i,en),Ci.lengthSq()===0&&(Math.abs(i.z)===1?en.x+=1e-4:en.z+=1e-4,en.normalize(),Ci.crossVectors(i,en)),Ci.normalize(),Do.crossVectors(en,Ci),s[0]=Ci.x,s[4]=Do.x,s[8]=en.x,s[1]=Ci.y,s[5]=Do.y,s[9]=en.y,s[2]=Ci.z,s[6]=Do.z,s[10]=en.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,s=t.elements,r=this.elements,o=i[0],a=i[4],l=i[8],c=i[12],h=i[1],f=i[5],u=i[9],d=i[13],g=i[2],m=i[6],p=i[10],A=i[14],x=i[3],_=i[7],v=i[11],y=i[15],S=s[0],C=s[4],M=s[8],E=s[12],b=s[1],w=s[5],G=s[9],U=s[13],D=s[2],O=s[6],K=s[10],H=s[14],z=s[3],F=s[7],N=s[11],R=s[15];return r[0]=o*S+a*b+l*D+c*z,r[4]=o*C+a*w+l*O+c*F,r[8]=o*M+a*G+l*K+c*N,r[12]=o*E+a*U+l*H+c*R,r[1]=h*S+f*b+u*D+d*z,r[5]=h*C+f*w+u*O+d*F,r[9]=h*M+f*G+u*K+d*N,r[13]=h*E+f*U+u*H+d*R,r[2]=g*S+m*b+p*D+A*z,r[6]=g*C+m*w+p*O+A*F,r[10]=g*M+m*G+p*K+A*N,r[14]=g*E+m*U+p*H+A*R,r[3]=x*S+_*b+v*D+y*z,r[7]=x*C+_*w+v*O+y*F,r[11]=x*M+_*G+v*K+y*N,r[15]=x*E+_*U+v*H+y*R,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[4],s=e[8],r=e[12],o=e[1],a=e[5],l=e[9],c=e[13],h=e[2],f=e[6],u=e[10],d=e[14],g=e[3],m=e[7],p=e[11],A=e[15];return g*(+r*l*f-s*c*f-r*a*u+i*c*u+s*a*d-i*l*d)+m*(+t*l*d-t*c*u+r*o*u-s*o*d+s*c*h-r*l*h)+p*(+t*c*f-t*a*d-r*o*f+i*o*d+r*a*h-i*c*h)+A*(-s*a*h-t*l*f+t*a*u+s*o*f-i*o*u+i*l*h)}transpose(){let e=this.elements,t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){let s=this.elements;return e.isVector3?(s[12]=e.x,s[13]=e.y,s[14]=e.z):(s[12]=e,s[13]=t,s[14]=i),this}invert(){let e=this.elements,t=e[0],i=e[1],s=e[2],r=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8],f=e[9],u=e[10],d=e[11],g=e[12],m=e[13],p=e[14],A=e[15],x=f*p*c-m*u*c+m*l*d-a*p*d-f*l*A+a*u*A,_=g*u*c-h*p*c-g*l*d+o*p*d+h*l*A-o*u*A,v=h*m*c-g*f*c+g*a*d-o*m*d-h*a*A+o*f*A,y=g*f*l-h*m*l-g*a*u+o*m*u+h*a*p-o*f*p,S=t*x+i*_+s*v+r*y;if(S===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let C=1/S;return e[0]=x*C,e[1]=(m*u*r-f*p*r-m*s*d+i*p*d+f*s*A-i*u*A)*C,e[2]=(a*p*r-m*l*r+m*s*c-i*p*c-a*s*A+i*l*A)*C,e[3]=(f*l*r-a*u*r-f*s*c+i*u*c+a*s*d-i*l*d)*C,e[4]=_*C,e[5]=(h*p*r-g*u*r+g*s*d-t*p*d-h*s*A+t*u*A)*C,e[6]=(g*l*r-o*p*r-g*s*c+t*p*c+o*s*A-t*l*A)*C,e[7]=(o*u*r-h*l*r+h*s*c-t*u*c-o*s*d+t*l*d)*C,e[8]=v*C,e[9]=(g*f*r-h*m*r-g*i*d+t*m*d+h*i*A-t*f*A)*C,e[10]=(o*m*r-g*a*r+g*i*c-t*m*c-o*i*A+t*a*A)*C,e[11]=(h*a*r-o*f*r-h*i*c+t*f*c+o*i*d-t*a*d)*C,e[12]=y*C,e[13]=(h*m*s-g*f*s+g*i*u-t*m*u-h*i*p+t*f*p)*C,e[14]=(g*a*s-o*m*s-g*i*l+t*m*l+o*i*p-t*a*p)*C,e[15]=(o*f*s-h*a*s+h*i*l-t*f*l-o*i*u+t*a*u)*C,this}scale(e){let t=this.elements,i=e.x,s=e.y,r=e.z;return t[0]*=i,t[4]*=s,t[8]*=r,t[1]*=i,t[5]*=s,t[9]*=r,t[2]*=i,t[6]*=s,t[10]*=r,t[3]*=i,t[7]*=s,t[11]*=r,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],s=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,s))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let i=Math.cos(t),s=Math.sin(t),r=1-i,o=e.x,a=e.y,l=e.z,c=r*o,h=r*a;return this.set(c*o+i,c*a-s*l,c*l+s*a,0,c*a+s*l,h*a+i,h*l-s*o,0,c*l-s*a,h*l+s*o,r*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,s,r,o){return this.set(1,i,r,0,e,1,o,0,t,s,1,0,0,0,0,1),this}compose(e,t,i){let s=this.elements,r=t._x,o=t._y,a=t._z,l=t._w,c=r+r,h=o+o,f=a+a,u=r*c,d=r*h,g=r*f,m=o*h,p=o*f,A=a*f,x=l*c,_=l*h,v=l*f,y=i.x,S=i.y,C=i.z;return s[0]=(1-(m+A))*y,s[1]=(d+v)*y,s[2]=(g-_)*y,s[3]=0,s[4]=(d-v)*S,s[5]=(1-(u+A))*S,s[6]=(p+x)*S,s[7]=0,s[8]=(g+_)*C,s[9]=(p-x)*C,s[10]=(1-(u+m))*C,s[11]=0,s[12]=e.x,s[13]=e.y,s[14]=e.z,s[15]=1,this}decompose(e,t,i){let s=this.elements,r=Rs.set(s[0],s[1],s[2]).length(),o=Rs.set(s[4],s[5],s[6]).length(),a=Rs.set(s[8],s[9],s[10]).length();this.determinant()<0&&(r=-r),e.x=s[12],e.y=s[13],e.z=s[14],Mn.copy(this);let c=1/r,h=1/o,f=1/a;return Mn.elements[0]*=c,Mn.elements[1]*=c,Mn.elements[2]*=c,Mn.elements[4]*=h,Mn.elements[5]*=h,Mn.elements[6]*=h,Mn.elements[8]*=f,Mn.elements[9]*=f,Mn.elements[10]*=f,t.setFromRotationMatrix(Mn),i.x=r,i.y=o,i.z=a,this}makePerspective(e,t,i,s,r,o,a=ai){let l=this.elements,c=2*r/(t-e),h=2*r/(i-s),f=(t+e)/(t-e),u=(i+s)/(i-s),d,g;if(a===ai)d=-(o+r)/(o-r),g=-2*o*r/(o-r);else if(a===rc)d=-o/(o-r),g=-o*r/(o-r);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=c,l[4]=0,l[8]=f,l[12]=0,l[1]=0,l[5]=h,l[9]=u,l[13]=0,l[2]=0,l[6]=0,l[10]=d,l[14]=g,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,s,r,o,a=ai){let l=this.elements,c=1/(t-e),h=1/(i-s),f=1/(o-r),u=(t+e)*c,d=(i+s)*h,g,m;if(a===ai)g=(o+r)*f,m=-2*f;else if(a===rc)g=r*f,m=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-u,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-d,l[2]=0,l[6]=0,l[10]=m,l[14]=-g,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){let t=this.elements,i=e.elements;for(let s=0;s<16;s++)if(t[s]!==i[s])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}},Rs=new Q,Mn=new Oe,gE=new Q(0,0,0),mE=new Q(1,1,1),Ci=new Q,Do=new Q,en=new Q,xp=new Oe,vp=new Xt,$s=class{constructor(e=0,t=0,i=0,s=$s.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=s}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,s=this._order){return this._x=e,this._y=t,this._z=i,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){let s=e.elements,r=s[0],o=s[4],a=s[8],l=s[1],c=s[5],h=s[9],f=s[2],u=s[6],d=s[10];switch(t){case"XYZ":this._y=Math.asin(Rt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,d),this._z=Math.atan2(-o,r)):(this._x=Math.atan2(u,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Rt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-f,r),this._z=0);break;case"ZXY":this._x=Math.asin(Rt(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-f,d),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,r));break;case"ZYX":this._y=Math.asin(-Rt(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(l,r)):(this._x=0,this._z=Math.atan2(-o,c));break;case"YZX":this._z=Math.asin(Rt(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-f,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Rt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(u,c),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-h,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return xp.makeRotationFromQuaternion(e),this.setFromRotationMatrix(xp,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return vp.setFromEuler(this),this.setFromQuaternion(vp,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};$s.DEFAULT_ORDER="XYZ";var hc=class{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}},_E=0,Ep=new Q,Ds=new Xt,ei=new Oe,Lo=new Q,Vr=new Q,xE=new Q,vE=new Xt,yp=new Q(1,0,0),Cp=new Q(0,1,0),Sp=new Q(0,0,1),EE={type:"added"},bp={type:"removed"},ct=class extends Vn{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:_E++}),this.uuid=Ln(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=ct.DEFAULT_UP.clone();let e=new Q,t=new $s,i=new Xt,s=new Q(1,1,1);function r(){i.setFromEuler(t,!1)}function o(){t.setFromQuaternion(i,void 0,!1)}t._onChange(r),i._onChange(o),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:s},modelViewMatrix:{value:new Oe},normalMatrix:{value:new Ge}}),this.matrix=new Oe,this.matrixWorld=new Oe,this.matrixAutoUpdate=ct.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.matrixWorldAutoUpdate=ct.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.layers=new hc,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){return Ds.setFromAxisAngle(e,t),this.quaternion.multiply(Ds),this}rotateOnWorldAxis(e,t){return Ds.setFromAxisAngle(e,t),this.quaternion.premultiply(Ds),this}rotateX(e){return this.rotateOnAxis(yp,e)}rotateY(e){return this.rotateOnAxis(Cp,e)}rotateZ(e){return this.rotateOnAxis(Sp,e)}translateOnAxis(e,t){return Ep.copy(e).applyQuaternion(this.quaternion),this.position.add(Ep.multiplyScalar(t)),this}translateX(e){return this.translateOnAxis(yp,e)}translateY(e){return this.translateOnAxis(Cp,e)}translateZ(e){return this.translateOnAxis(Sp,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(ei.copy(this.matrixWorld).invert())}lookAt(e,t,i){e.isVector3?Lo.copy(e):Lo.set(e,t,i);let s=this.parent;this.updateWorldMatrix(!0,!1),Vr.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?ei.lookAt(Vr,Lo,this.up):ei.lookAt(Lo,Vr,this.up),this.quaternion.setFromRotationMatrix(ei),s&&(ei.extractRotation(s.matrixWorld),Ds.setFromRotationMatrix(ei),this.quaternion.premultiply(Ds.invert()))}add(e){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.parent!==null&&e.parent.remove(e),e.parent=this,this.children.push(e),e.dispatchEvent(EE)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}let t=this.children.indexOf(e);return t!==-1&&(e.parent=null,this.children.splice(t,1),e.dispatchEvent(bp)),this}removeFromParent(){let e=this.parent;return e!==null&&e.remove(this),this}clear(){for(let e=0;e<this.children.length;e++){let t=this.children[e];t.parent=null,t.dispatchEvent(bp)}return this.children.length=0,this}attach(e){return this.updateWorldMatrix(!0,!1),ei.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),ei.multiply(e.parent.matrixWorld)),e.applyMatrix4(ei),this.add(e),e.updateWorldMatrix(!1,!0),this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let i=0,s=this.children.length;i<s;i++){let o=this.children[i].getObjectByProperty(e,t);if(o!==void 0)return o}}getObjectsByProperty(e,t){let i=[];this[e]===t&&i.push(this);for(let s=0,r=this.children.length;s<r;s++){let o=this.children[s].getObjectsByProperty(e,t);o.length>0&&(i=i.concat(o))}return i}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Vr,e,xE),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Vr,vE,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);let t=this.children;for(let i=0,s=t.length;i<s;i++)t[i].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);let t=this.children;for(let i=0,s=t.length;i<s;i++)t[i].traverseVisible(e)}traverseAncestors(e){let t=this.parent;t!==null&&(e(t),t.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);let t=this.children;for(let i=0,s=t.length;i<s;i++){let r=t[i];(r.matrixWorldAutoUpdate===!0||e===!0)&&r.updateMatrixWorld(e)}}updateWorldMatrix(e,t){let i=this.parent;if(e===!0&&i!==null&&i.matrixWorldAutoUpdate===!0&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),t===!0){let s=this.children;for(let r=0,o=s.length;r<o;r++){let a=s[r];a.matrixWorldAutoUpdate===!0&&a.updateWorldMatrix(!1,!0)}}}toJSON(e){let t=e===void 0||typeof e=="string",i={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.6,type:"Object",generator:"Object3D.toJSON"});let s={};s.uuid=this.uuid,s.type=this.type,this.name!==""&&(s.name=this.name),this.castShadow===!0&&(s.castShadow=!0),this.receiveShadow===!0&&(s.receiveShadow=!0),this.visible===!1&&(s.visible=!1),this.frustumCulled===!1&&(s.frustumCulled=!1),this.renderOrder!==0&&(s.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(s.instanceColor=this.instanceColor.toJSON()));function r(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=r(e.geometries,this.geometry);let a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){let l=a.shapes;if(Array.isArray(l))for(let c=0,h=l.length;c<h;c++){let f=l[c];r(e.shapes,f)}else r(e.shapes,l)}}if(this.isSkinnedMesh&&(s.bindMode=this.bindMode,s.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(r(e.skeletons,this.skeleton),s.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){let a=[];for(let l=0,c=this.material.length;l<c;l++)a.push(r(e.materials,this.material[l]));s.material=a}else s.material=r(e.materials,this.material);if(this.children.length>0){s.children=[];for(let a=0;a<this.children.length;a++)s.children.push(this.children[a].toJSON(e).object)}if(this.animations.length>0){s.animations=[];for(let a=0;a<this.animations.length;a++){let l=this.animations[a];s.animations.push(r(e.animations,l))}}if(t){let a=o(e.geometries),l=o(e.materials),c=o(e.textures),h=o(e.images),f=o(e.shapes),u=o(e.skeletons),d=o(e.animations),g=o(e.nodes);a.length>0&&(i.geometries=a),l.length>0&&(i.materials=l),c.length>0&&(i.textures=c),h.length>0&&(i.images=h),f.length>0&&(i.shapes=f),u.length>0&&(i.skeletons=u),d.length>0&&(i.animations=d),g.length>0&&(i.nodes=g)}return i.object=s,i;function o(a){let l=[];for(let c in a){let h=a[c];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i<e.children.length;i++){let s=e.children[i];this.add(s.clone())}return this}};ct.DEFAULT_UP=new Q(0,1,0);ct.DEFAULT_MATRIX_AUTO_UPDATE=!0;ct.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;var Tn=new Q,ti=new Q,Zl=new Q,ni=new Q,Ls=new Q,Fs=new Q,Ip=new Q,jl=new Q,$l=new Q,eh=new Q,Fo=!1,nn=class{constructor(e=new Q,t=new Q,i=new Q){this.a=e,this.b=t,this.c=i}static getNormal(e,t,i,s){s.subVectors(i,t),Tn.subVectors(e,t),s.cross(Tn);let r=s.lengthSq();return r>0?s.multiplyScalar(1/Math.sqrt(r)):s.set(0,0,0)}static getBarycoord(e,t,i,s,r){Tn.subVectors(s,t),ti.subVectors(i,t),Zl.subVectors(e,t);let o=Tn.dot(Tn),a=Tn.dot(ti),l=Tn.dot(Zl),c=ti.dot(ti),h=ti.dot(Zl),f=o*c-a*a;if(f===0)return r.set(-2,-1,-1);let u=1/f,d=(c*l-a*h)*u,g=(o*h-a*l)*u;return r.set(1-d-g,g,d)}static containsPoint(e,t,i,s){return this.getBarycoord(e,t,i,s,ni),ni.x>=0&&ni.y>=0&&ni.x+ni.y<=1}static getUV(e,t,i,s,r,o,a,l){return Fo===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Fo=!0),this.getInterpolation(e,t,i,s,r,o,a,l)}static getInterpolation(e,t,i,s,r,o,a,l){return this.getBarycoord(e,t,i,s,ni),l.setScalar(0),l.addScaledVector(r,ni.x),l.addScaledVector(o,ni.y),l.addScaledVector(a,ni.z),l}static isFrontFacing(e,t,i,s){return Tn.subVectors(i,t),ti.subVectors(e,t),Tn.cross(ti).dot(s)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,s){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[s]),this}setFromAttributeAndIndices(e,t,i,s){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,s),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Tn.subVectors(this.c,this.b),ti.subVectors(this.a,this.b),Tn.cross(ti).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return nn.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return nn.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,i,s,r){return Fo===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Fo=!0),nn.getInterpolation(e,this.a,this.b,this.c,t,i,s,r)}getInterpolation(e,t,i,s,r){return nn.getInterpolation(e,this.a,this.b,this.c,t,i,s,r)}containsPoint(e){return nn.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return nn.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let i=this.a,s=this.b,r=this.c,o,a;Ls.subVectors(s,i),Fs.subVectors(r,i),jl.subVectors(e,i);let l=Ls.dot(jl),c=Fs.dot(jl);if(l<=0&&c<=0)return t.copy(i);$l.subVectors(e,s);let h=Ls.dot($l),f=Fs.dot($l);if(h>=0&&f<=h)return t.copy(s);let u=l*f-h*c;if(u<=0&&l>=0&&h<=0)return o=l/(l-h),t.copy(i).addScaledVector(Ls,o);eh.subVectors(e,r);let d=Ls.dot(eh),g=Fs.dot(eh);if(g>=0&&d<=g)return t.copy(r);let m=d*c-l*g;if(m<=0&&c>=0&&g<=0)return a=c/(c-g),t.copy(i).addScaledVector(Fs,a);let p=h*g-d*f;if(p<=0&&f-h>=0&&d-g>=0)return Ip.subVectors(r,s),a=(f-h)/(f-h+(d-g)),t.copy(s).addScaledVector(Ip,a);let A=1/(p+m+u);return o=m*A,a=u*A,t.copy(i).addScaledVector(Ls,o).addScaledVector(Fs,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},yE=0,rn=class extends Vn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:yE++}),this.uuid=Ln(),this.name="",this.type="Material",this.blending=Ks,this.side=zn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=x0,this.blendDst=v0,this.blendEquation=Vs,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=dh,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=kv,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Gl,this.stencilZFail=Gl,this.stencilZPass=Gl,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let s=this[t];if(s===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(i):s&&s.isVector3&&i&&i.isVector3?s.copy(i):this[t]=i}}toJSON(e){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Ks&&(i.blending=this.blending),this.side!==zn&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=this.alphaHash),this.alphaToCoverage===!0&&(i.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(i.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=this.flatShading),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function s(r){let o=[];for(let a in r){let l=r[a];delete l.metadata,o.push(l)}return o}if(t){let r=s(e.textures),o=s(e.images);r.length>0&&(i.textures=r),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,i=null;if(t!==null){let s=t.length;i=new Array(s);for(let r=0;r!==s;++r)i[r]=t[r].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},P0={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Bn={h:0,s:0,l:0},Po={h:0,s:0,l:0};function th(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}var Ee=class{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){let s=e;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=be){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,wn.toWorkingColorSpace(this,t),this}setRGB(e,t,i,s=wn.workingColorSpace){return this.r=e,this.g=t,this.b=i,wn.toWorkingColorSpace(this,s),this}setHSL(e,t,i,s=wn.workingColorSpace){if(e=Xh(e,1),t=Rt(t,0,1),i=Rt(i,0,1),t===0)this.r=this.g=this.b=i;else{let r=i<=.5?i*(1+t):i+t-i*t,o=2*i-r;this.r=th(o,r,e+1/3),this.g=th(o,r,e),this.b=th(o,r,e-1/3)}return wn.toWorkingColorSpace(this,s),this}setStyle(e,t=be){function i(r){r!==void 0&&parseFloat(r)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,o=s[1],a=s[2];switch(o){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(e)){let r=s[1],o=r.length;if(o===3)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(r,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=be){let i=P0[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=qs(e.r),this.g=qs(e.g),this.b=qs(e.b),this}copyLinearToSRGB(e){return this.r=zl(e.r),this.g=zl(e.g),this.b=zl(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=be){return wn.fromWorkingColorSpace(Ot.copy(this),e),Math.round(Rt(Ot.r*255,0,255))*65536+Math.round(Rt(Ot.g*255,0,255))*256+Math.round(Rt(Ot.b*255,0,255))}getHexString(e=be){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=wn.workingColorSpace){wn.fromWorkingColorSpace(Ot.copy(this),t);let i=Ot.r,s=Ot.g,r=Ot.b,o=Math.max(i,s,r),a=Math.min(i,s,r),l,c,h=(a+o)/2;if(a===o)l=0,c=0;else{let f=o-a;switch(c=h<=.5?f/(o+a):f/(2-o-a),o){case i:l=(s-r)/f+(s<r?6:0);break;case s:l=(r-i)/f+2;break;case r:l=(i-s)/f+4;break}l/=6}return e.h=l,e.s=c,e.l=h,e}getRGB(e,t=wn.workingColorSpace){return wn.fromWorkingColorSpace(Ot.copy(this),t),e.r=Ot.r,e.g=Ot.g,e.b=Ot.b,e}getStyle(e=be){wn.fromWorkingColorSpace(Ot.copy(this),e);let t=Ot.r,i=Ot.g,s=Ot.b;return e!==be?`color(${e} ${t.toFixed(3)} ${i.toFixed(3)} ${s.toFixed(3)})`:`rgb(${Math.round(t*255)},${Math.round(i*255)},${Math.round(s*255)})`}offsetHSL(e,t,i){return this.getHSL(Bn),Bn.h+=e,Bn.s+=t,Bn.l+=i,this.setHSL(Bn.h,Bn.s,Bn.l),this}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this}lerpColors(e,t,i){return this.r=e.r+(t.r-e.r)*i,this.g=e.g+(t.g-e.g)*i,this.b=e.b+(t.b-e.b)*i,this}lerpHSL(e,t){this.getHSL(Bn),e.getHSL(Po);let i=ta(Bn.h,Po.h,t),s=ta(Bn.s,Po.s,t),r=ta(Bn.l,Po.l,t);return this.setHSL(i,s,r),this}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this}applyMatrix3(e){let t=this.r,i=this.g,s=this.b,r=e.elements;return this.r=r[0]*t+r[3]*i+r[6]*s,this.g=r[1]*t+r[4]*i+r[7]*s,this.b=r[2]*t+r[5]*i+r[8]*s,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}},Ot=new Ee;Ee.NAMES=P0;var mn=class extends rn{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ee(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=E0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},ri=CE();function CE(){let n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),s=new Uint32Array(512);for(let l=0;l<256;++l){let c=l-127;c<-27?(i[l]=0,i[l|256]=32768,s[l]=24,s[l|256]=24):c<-14?(i[l]=1024>>-c-14,i[l|256]=1024>>-c-14|32768,s[l]=-c-1,s[l|256]=-c-1):c<=15?(i[l]=c+15<<10,i[l|256]=c+15<<10|32768,s[l]=13,s[l|256]=13):c<128?(i[l]=31744,i[l|256]=64512,s[l]=24,s[l|256]=24):(i[l]=31744,i[l|256]=64512,s[l]=13,s[l|256]=13)}let r=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let l=1;l<1024;++l){let c=l<<13,h=0;for(;(c&8388608)===0;)c<<=1,h-=8388608;c&=-8388609,h+=947912704,r[l]=c|h}for(let l=1024;l<2048;++l)r[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)o[l]=l<<23;o[31]=1199570944,o[32]=2147483648;for(let l=33;l<63;++l)o[l]=2147483648+(l-32<<23);o[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(a[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:s,mantissaTable:r,exponentTable:o,offsetTable:a}}function SE(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Rt(n,-65504,65504),ri.floatView[0]=n;let e=ri.uint32View[0],t=e>>23&511;return ri.baseTable[t]+((e&8388607)>>ri.shiftTable[t])}function bE(n){let e=n>>10;return ri.uint32View[0]=ri.mantissaTable[ri.offsetTable[e]+(n&1023)]+ri.exponentTable[e],ri.floatView[0]}var Ea={toHalfFloat:SE,fromHalfFloat:bE},xt=new Q,Uo=new Ie,Ct=class{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=ph,this.updateRange={offset:0,count:-1},this.gpuType=Lt,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let s=0,r=this.itemSize;s<r;s++)this.array[e+s]=t.array[i+s];return this}copyArray(e){return this.array.set(e),this}applyMatrix3(e){if(this.itemSize===2)for(let t=0,i=this.count;t<i;t++)Uo.fromBufferAttribute(this,t),Uo.applyMatrix3(e),this.setXY(t,Uo.x,Uo.y);else if(this.itemSize===3)for(let t=0,i=this.count;t<i;t++)xt.fromBufferAttribute(this,t),xt.applyMatrix3(e),this.setXYZ(t,xt.x,xt.y,xt.z);return this}applyMatrix4(e){for(let t=0,i=this.count;t<i;t++)xt.fromBufferAttribute(this,t),xt.applyMatrix4(e),this.setXYZ(t,xt.x,xt.y,xt.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)xt.fromBufferAttribute(this,t),xt.applyNormalMatrix(e),this.setXYZ(t,xt.x,xt.y,xt.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)xt.fromBufferAttribute(this,t),xt.transformDirection(e),this.setXYZ(t,xt.x,xt.y,xt.z);return this}set(e,t=0){return this.array.set(e,t),this}getComponent(e,t){let i=this.array[e*this.itemSize+t];return this.normalized&&(i=Gn(i,this.array)),i}setComponent(e,t,i){return this.normalized&&(i=st(i,this.array)),this.array[e*this.itemSize+t]=i,this}getX(e){let t=this.array[e*this.itemSize];return this.normalized&&(t=Gn(t,this.array)),t}setX(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize]=t,this}getY(e){let t=this.array[e*this.itemSize+1];return this.normalized&&(t=Gn(t,this.array)),t}setY(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize+1]=t,this}getZ(e){let t=this.array[e*this.itemSize+2];return this.normalized&&(t=Gn(t,this.array)),t}setZ(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize+2]=t,this}getW(e){let t=this.array[e*this.itemSize+3];return this.normalized&&(t=Gn(t,this.array)),t}setW(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize+3]=t,this}setXY(e,t,i){return e*=this.itemSize,this.normalized&&(t=st(t,this.array),i=st(i,this.array)),this.array[e+0]=t,this.array[e+1]=i,this}setXYZ(e,t,i,s){return e*=this.itemSize,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array)),this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=s,this}setXYZW(e,t,i,s,r){return e*=this.itemSize,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array),r=st(r,this.array)),this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=s,this.array[e+3]=r,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){let e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==ph&&(e.usage=this.usage),(this.updateRange.offset!==0||this.updateRange.count!==-1)&&(e.updateRange=this.updateRange),e}};var uc=class extends Ct{constructor(e,t,i){super(new Uint16Array(e),t,i)}};var fc=class extends Ct{constructor(e,t,i){super(new Uint32Array(e),t,i)}};var dn=class extends Ct{constructor(e,t,i){super(new Float32Array(e),t,i)}};var IE=0,un=new Oe,nh=new ct,Ps=new Q,tn=new gn,Wr=new gn,Bt=new Q,Yt=class extends Vn{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:IE++}),this.uuid=Ln(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(F0(e)?fc:uc)(e,1):this.index=e,this}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,i=0){this.groups.push({start:e,count:t,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let i=this.attributes.normal;if(i!==void 0){let r=new Ge().getNormalMatrix(e);i.applyNormalMatrix(r),i.needsUpdate=!0}let s=this.attributes.tangent;return s!==void 0&&(s.transformDirection(e),s.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return un.makeRotationFromQuaternion(e),this.applyMatrix4(un),this}rotateX(e){return un.makeRotationX(e),this.applyMatrix4(un),this}rotateY(e){return un.makeRotationY(e),this.applyMatrix4(un),this}rotateZ(e){return un.makeRotationZ(e),this.applyMatrix4(un),this}translate(e,t,i){return un.makeTranslation(e,t,i),this.applyMatrix4(un),this}scale(e,t,i){return un.makeScale(e,t,i),this.applyMatrix4(un),this}lookAt(e){return nh.lookAt(e),nh.updateMatrix(),this.applyMatrix4(nh.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Ps).negate(),this.translate(Ps.x,Ps.y,Ps.z),this}setFromPoints(e){let t=[];for(let i=0,s=e.length;i<s;i++){let r=e[i];t.push(r.x,r.y,r.z||0)}return this.setAttribute("position",new dn(t,3)),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new gn);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingBox.set(new Q(-1/0,-1/0,-1/0),new Q(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let i=0,s=t.length;i<s;i++){let r=t[i];tn.setFromBufferAttribute(r),this.morphTargetsRelative?(Bt.addVectors(this.boundingBox.min,tn.min),this.boundingBox.expandByPoint(Bt),Bt.addVectors(this.boundingBox.max,tn.max),this.boundingBox.expandByPoint(Bt)):(this.boundingBox.expandByPoint(tn.min),this.boundingBox.expandByPoint(tn.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new sn);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingSphere.set(new Q,1/0);return}if(e){let i=this.boundingSphere.center;if(tn.setFromBufferAttribute(e),t)for(let r=0,o=t.length;r<o;r++){let a=t[r];Wr.setFromBufferAttribute(a),this.morphTargetsRelative?(Bt.addVectors(tn.min,Wr.min),tn.expandByPoint(Bt),Bt.addVectors(tn.max,Wr.max),tn.expandByPoint(Bt)):(tn.expandByPoint(Wr.min),tn.expandByPoint(Wr.max))}tn.getCenter(i);let s=0;for(let r=0,o=e.count;r<o;r++)Bt.fromBufferAttribute(e,r),s=Math.max(s,i.distanceToSquared(Bt));if(t)for(let r=0,o=t.length;r<o;r++){let a=t[r],l=this.morphTargetsRelative;for(let c=0,h=a.count;c<h;c++)Bt.fromBufferAttribute(a,c),l&&(Ps.fromBufferAttribute(e,c),Bt.add(Ps)),s=Math.max(s,i.distanceToSquared(Bt))}this.boundingSphere.radius=Math.sqrt(s),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){let e=this.index,t=this.attributes;if(e===null||t.position===void 0||t.normal===void 0||t.uv===void 0){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}let i=e.array,s=t.position.array,r=t.normal.array,o=t.uv.array,a=s.length/3;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new Ct(new Float32Array(4*a),4));let l=this.getAttribute("tangent").array,c=[],h=[];for(let b=0;b<a;b++)c[b]=new Q,h[b]=new Q;let f=new Q,u=new Q,d=new Q,g=new Ie,m=new Ie,p=new Ie,A=new Q,x=new Q;function _(b,w,G){f.fromArray(s,b*3),u.fromArray(s,w*3),d.fromArray(s,G*3),g.fromArray(o,b*2),m.fromArray(o,w*2),p.fromArray(o,G*2),u.sub(f),d.sub(f),m.sub(g),p.sub(g);let U=1/(m.x*p.y-p.x*m.y);!isFinite(U)||(A.copy(u).multiplyScalar(p.y).addScaledVector(d,-m.y).multiplyScalar(U),x.copy(d).multiplyScalar(m.x).addScaledVector(u,-p.x).multiplyScalar(U),c[b].add(A),c[w].add(A),c[G].add(A),h[b].add(x),h[w].add(x),h[G].add(x))}let v=this.groups;v.length===0&&(v=[{start:0,count:i.length}]);for(let b=0,w=v.length;b<w;++b){let G=v[b],U=G.start,D=G.count;for(let O=U,K=U+D;O<K;O+=3)_(i[O+0],i[O+1],i[O+2])}let y=new Q,S=new Q,C=new Q,M=new Q;function E(b){C.fromArray(r,b*3),M.copy(C);let w=c[b];y.copy(w),y.sub(C.multiplyScalar(C.dot(w))).normalize(),S.crossVectors(M,w);let U=S.dot(h[b])<0?-1:1;l[b*4]=y.x,l[b*4+1]=y.y,l[b*4+2]=y.z,l[b*4+3]=U}for(let b=0,w=v.length;b<w;++b){let G=v[b],U=G.start,D=G.count;for(let O=U,K=U+D;O<K;O+=3)E(i[O+0]),E(i[O+1]),E(i[O+2])}}computeVertexNormals(){let e=this.index,t=this.getAttribute("position");if(t!==void 0){let i=this.getAttribute("normal");if(i===void 0)i=new Ct(new Float32Array(t.count*3),3),this.setAttribute("normal",i);else for(let u=0,d=i.count;u<d;u++)i.setXYZ(u,0,0,0);let s=new Q,r=new Q,o=new Q,a=new Q,l=new Q,c=new Q,h=new Q,f=new Q;if(e)for(let u=0,d=e.count;u<d;u+=3){let g=e.getX(u+0),m=e.getX(u+1),p=e.getX(u+2);s.fromBufferAttribute(t,g),r.fromBufferAttribute(t,m),o.fromBufferAttribute(t,p),h.subVectors(o,r),f.subVectors(s,r),h.cross(f),a.fromBufferAttribute(i,g),l.fromBufferAttribute(i,m),c.fromBufferAttribute(i,p),a.add(h),l.add(h),c.add(h),i.setXYZ(g,a.x,a.y,a.z),i.setXYZ(m,l.x,l.y,l.z),i.setXYZ(p,c.x,c.y,c.z)}else for(let u=0,d=t.count;u<d;u+=3)s.fromBufferAttribute(t,u+0),r.fromBufferAttribute(t,u+1),o.fromBufferAttribute(t,u+2),h.subVectors(o,r),f.subVectors(s,r),h.cross(f),i.setXYZ(u+0,h.x,h.y,h.z),i.setXYZ(u+1,h.x,h.y,h.z),i.setXYZ(u+2,h.x,h.y,h.z);this.normalizeNormals(),i.needsUpdate=!0}}normalizeNormals(){let e=this.attributes.normal;for(let t=0,i=e.count;t<i;t++)Bt.fromBufferAttribute(e,t),Bt.normalize(),e.setXYZ(t,Bt.x,Bt.y,Bt.z)}toNonIndexed(){function e(a,l){let c=a.array,h=a.itemSize,f=a.normalized,u=new c.constructor(l.length*h),d=0,g=0;for(let m=0,p=l.length;m<p;m++){a.isInterleavedBufferAttribute?d=l[m]*a.data.stride+a.offset:d=l[m]*h;for(let A=0;A<h;A++)u[g++]=c[d++]}return new Ct(u,h,f)}if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;let t=new Yt,i=this.index.array,s=this.attributes;for(let a in s){let l=s[a],c=e(l,i);t.setAttribute(a,c)}let r=this.morphAttributes;for(let a in r){let l=[],c=r[a];for(let h=0,f=c.length;h<f;h++){let u=c[h],d=e(u,i);l.push(d)}t.morphAttributes[a]=l}t.morphTargetsRelative=this.morphTargetsRelative;let o=this.groups;for(let a=0,l=o.length;a<l;a++){let c=o[a];t.addGroup(c.start,c.count,c.materialIndex)}return t}toJSON(){let e={metadata:{version:4.6,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){let l=this.parameters;for(let c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let i=this.attributes;for(let l in i){let c=i[l];e.data.attributes[l]=c.toJSON(e.data)}let s={},r=!1;for(let l in this.morphAttributes){let c=this.morphAttributes[l],h=[];for(let f=0,u=c.length;f<u;f++){let d=c[f];h.push(d.toJSON(e.data))}h.length>0&&(s[l]=h,r=!0)}r&&(e.data.morphAttributes=s,e.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));let a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let i=e.index;i!==null&&this.setIndex(i.clone(t));let s=e.attributes;for(let c in s){let h=s[c];this.setAttribute(c,h.clone(t))}let r=e.morphAttributes;for(let c in r){let h=[],f=r[c];for(let u=0,d=f.length;u<d;u++)h.push(f[u].clone(t));this.morphAttributes[c]=h}this.morphTargetsRelative=e.morphTargetsRelative;let o=e.groups;for(let c=0,h=o.length;c<h;c++){let f=o[c];this.addGroup(f.start,f.count,f.materialIndex)}let a=e.boundingBox;a!==null&&(this.boundingBox=a.clone());let l=e.boundingSphere;return l!==null&&(this.boundingSphere=l.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}},wp=new Oe,Ji=new Mi,No=new sn,Mp=new Q,Us=new Q,Ns=new Q,Os=new Q,ih=new Q,Oo=new Q,ko=new Ie,Qo=new Ie,Go=new Ie,Tp=new Q,Bp=new Q,Rp=new Q,Ho=new Q,zo=new Q,Ft=class extends ct{constructor(e=new Yt,t=new mn){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=e.material,this.geometry=e.geometry,this}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let s=t[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}getVertexPosition(e,t){let i=this.geometry,s=i.attributes.position,r=i.morphAttributes.position,o=i.morphTargetsRelative;t.fromBufferAttribute(s,e);let a=this.morphTargetInfluences;if(r&&a){Oo.set(0,0,0);for(let l=0,c=r.length;l<c;l++){let h=a[l],f=r[l];h!==0&&(ih.fromBufferAttribute(f,e),o?Oo.addScaledVector(ih,h):Oo.addScaledVector(ih.sub(t),h))}t.add(Oo)}return t}raycast(e,t){let i=this.geometry,s=this.material,r=this.matrixWorld;s!==void 0&&(i.boundingSphere===null&&i.computeBoundingSphere(),No.copy(i.boundingSphere),No.applyMatrix4(r),Ji.copy(e.ray).recast(e.near),!(No.containsPoint(Ji.origin)===!1&&(Ji.intersectSphere(No,Mp)===null||Ji.origin.distanceToSquared(Mp)>(e.far-e.near)**2))&&(wp.copy(r).invert(),Ji.copy(e.ray).applyMatrix4(wp),!(i.boundingBox!==null&&Ji.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Ji)))}_computeIntersections(e,t,i){let s,r=this.geometry,o=this.material,a=r.index,l=r.attributes.position,c=r.attributes.uv,h=r.attributes.uv1,f=r.attributes.normal,u=r.groups,d=r.drawRange;if(a!==null)if(Array.isArray(o))for(let g=0,m=u.length;g<m;g++){let p=u[g],A=o[p.materialIndex],x=Math.max(p.start,d.start),_=Math.min(a.count,Math.min(p.start+p.count,d.start+d.count));for(let v=x,y=_;v<y;v+=3){let S=a.getX(v),C=a.getX(v+1),M=a.getX(v+2);s=Vo(this,A,e,i,c,h,f,S,C,M),s&&(s.faceIndex=Math.floor(v/3),s.face.materialIndex=p.materialIndex,t.push(s))}}else{let g=Math.max(0,d.start),m=Math.min(a.count,d.start+d.count);for(let p=g,A=m;p<A;p+=3){let x=a.getX(p),_=a.getX(p+1),v=a.getX(p+2);s=Vo(this,o,e,i,c,h,f,x,_,v),s&&(s.faceIndex=Math.floor(p/3),t.push(s))}}else if(l!==void 0)if(Array.isArray(o))for(let g=0,m=u.length;g<m;g++){let p=u[g],A=o[p.materialIndex],x=Math.max(p.start,d.start),_=Math.min(l.count,Math.min(p.start+p.count,d.start+d.count));for(let v=x,y=_;v<y;v+=3){let S=v,C=v+1,M=v+2;s=Vo(this,A,e,i,c,h,f,S,C,M),s&&(s.faceIndex=Math.floor(v/3),s.face.materialIndex=p.materialIndex,t.push(s))}}else{let g=Math.max(0,d.start),m=Math.min(l.count,d.start+d.count);for(let p=g,A=m;p<A;p+=3){let x=p,_=p+1,v=p+2;s=Vo(this,o,e,i,c,h,f,x,_,v),s&&(s.faceIndex=Math.floor(p/3),t.push(s))}}}};function wE(n,e,t,i,s,r,o,a){let l;if(e.side===Qt?l=i.intersectTriangle(o,r,s,!0,a):l=i.intersectTriangle(s,r,o,e.side===zn,a),l===null)return null;zo.copy(a),zo.applyMatrix4(n.matrixWorld);let c=t.ray.origin.distanceTo(zo);return c<t.near||c>t.far?null:{distance:c,point:zo.clone(),object:n}}function Vo(n,e,t,i,s,r,o,a,l,c){n.getVertexPosition(a,Us),n.getVertexPosition(l,Ns),n.getVertexPosition(c,Os);let h=wE(n,e,t,i,Us,Ns,Os,Ho);if(h){s&&(ko.fromBufferAttribute(s,a),Qo.fromBufferAttribute(s,l),Go.fromBufferAttribute(s,c),h.uv=nn.getInterpolation(Ho,Us,Ns,Os,ko,Qo,Go,new Ie)),r&&(ko.fromBufferAttribute(r,a),Qo.fromBufferAttribute(r,l),Go.fromBufferAttribute(r,c),h.uv1=nn.getInterpolation(Ho,Us,Ns,Os,ko,Qo,Go,new Ie),h.uv2=h.uv1),o&&(Tp.fromBufferAttribute(o,a),Bp.fromBufferAttribute(o,l),Rp.fromBufferAttribute(o,c),h.normal=nn.getInterpolation(Ho,Us,Ns,Os,Tp,Bp,Rp,new Q),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));let f={a,b:l,c,normal:new Q,materialIndex:0};nn.getNormal(Us,Ns,Os,f.normal),h.face=f}return h}var as=class extends Yt{constructor(e=1,t=1,i=1,s=1,r=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:s,heightSegments:r,depthSegments:o};let a=this;s=Math.floor(s),r=Math.floor(r),o=Math.floor(o);let l=[],c=[],h=[],f=[],u=0,d=0;g("z","y","x",-1,-1,i,t,e,o,r,0),g("z","y","x",1,-1,i,t,-e,o,r,1),g("x","z","y",1,1,e,i,t,s,o,2),g("x","z","y",1,-1,e,i,-t,s,o,3),g("x","y","z",1,-1,e,t,i,s,r,4),g("x","y","z",-1,-1,e,t,-i,s,r,5),this.setIndex(l),this.setAttribute("position",new dn(c,3)),this.setAttribute("normal",new dn(h,3)),this.setAttribute("uv",new dn(f,2));function g(m,p,A,x,_,v,y,S,C,M,E){let b=v/C,w=y/M,G=v/2,U=y/2,D=S/2,O=C+1,K=M+1,H=0,z=0,F=new Q;for(let N=0;N<K;N++){let R=N*w-U;for(let L=0;L<O;L++){let ne=L*b-G;F[m]=ne*x,F[p]=R*_,F[A]=D,c.push(F.x,F.y,F.z),F[m]=0,F[p]=0,F[A]=S>0?1:-1,h.push(F.x,F.y,F.z),f.push(L/C),f.push(1-N/M),H+=1}}for(let N=0;N<M;N++)for(let R=0;R<C;R++){let L=u+R+O*N,ne=u+R+O*(N+1),ie=u+(R+1)+O*(N+1),he=u+(R+1)+O*N;l.push(L,ne,he),l.push(ne,ie,he),z+=6}a.addGroup(d,z,E),d+=z,u+=H}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new as(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}};function er(n){let e={};for(let t in n){e[t]={};for(let i in n[t]){let s=n[t][i];s&&(s.isColor||s.isMatrix3||s.isMatrix4||s.isVector2||s.isVector3||s.isVector4||s.isTexture||s.isQuaternion)?s.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[t][i]=null):e[t][i]=s.clone():Array.isArray(s)?e[t][i]=s.slice():e[t][i]=s}}return e}function Vt(n){let e={};for(let t=0;t<n.length;t++){let i=er(n[t]);for(let s in i)e[s]=i[s]}return e}function ME(n){let e=[];for(let t=0;t<n.length;t++)e.push(n[t].clone());return e}function U0(n){return n.getRenderTarget()===null?n.outputColorSpace:An}var TE={clone:er,merge:Vt},BE=`void main() {
23
+ `);Vx.inject(Jx);var TA="dg",BA=72,RA=20,Gr="Default",Or=function(){try{return!!window.localStorage}catch{return!1}}(),kr=void 0,DA=!0,Cs=void 0,Ml=!1,kA=[],ot=function n(e){var t=this,i=e||{};this.domElement=document.createElement("div"),this.__ul=document.createElement("ul"),this.domElement.appendChild(this.__ul),Y.addClass(this.domElement,TA),this.__folders={},this.__controllers=[],this.__rememberedObjects=[],this.__rememberedObjectIndecesToControllers=[],this.__listening=[],i=te.defaults(i,{closeOnTop:!1,autoPlace:!0,width:n.DEFAULT_WIDTH}),i=te.defaults(i,{resizable:i.autoPlace,hideable:i.autoPlace}),te.isUndefined(i.load)?i.load={preset:Gr}:i.preset&&(i.load.preset=i.preset),te.isUndefined(i.parent)&&i.hideable&&kA.push(this),i.resizable=te.isUndefined(i.parent)&&i.resizable,i.autoPlace&&te.isUndefined(i.scrollable)&&(i.scrollable=!0);var s=Or&&localStorage.getItem(Ss(this,"isLocal"))==="true",r=void 0,o=void 0;if(Object.defineProperties(this,{parent:{get:function(){return i.parent}},scrollable:{get:function(){return i.scrollable}},autoPlace:{get:function(){return i.autoPlace}},closeOnTop:{get:function(){return i.closeOnTop}},preset:{get:function(){return t.parent?t.getRoot().preset:i.load.preset},set:function(u){t.parent?t.getRoot().preset=u:i.load.preset=u,ev(this),t.revert()}},width:{get:function(){return i.width},set:function(u){i.width=u,Fl(t,u)}},name:{get:function(){return i.name},set:function(u){i.name=u,o&&(o.innerHTML=i.name)}},closed:{get:function(){return i.closed},set:function(u){i.closed=u,i.closed?Y.addClass(t.__ul,n.CLASS_CLOSED):Y.removeClass(t.__ul,n.CLASS_CLOSED),this.onResize(),t.__closeButton&&(t.__closeButton.innerHTML=u?n.TEXT_OPEN:n.TEXT_CLOSED)}},load:{get:function(){return i.load}},useLocalStorage:{get:function(){return s},set:function(u){Or&&(s=u,u?Y.bind(window,"unload",r):Y.unbind(window,"unload",r),localStorage.setItem(Ss(t,"isLocal"),u))}}}),te.isUndefined(i.parent)){if(this.closed=i.closed||!1,Y.addClass(this.domElement,n.CLASS_MAIN),Y.makeSelectable(this.domElement,!1),Or&&s){t.useLocalStorage=!0;var a=localStorage.getItem(Ss(this,"gui"));a&&(i.load=JSON.parse(a))}this.__closeButton=document.createElement("div"),this.__closeButton.innerHTML=n.TEXT_CLOSED,Y.addClass(this.__closeButton,n.CLASS_CLOSE_BUTTON),i.closeOnTop?(Y.addClass(this.__closeButton,n.CLASS_CLOSE_TOP),this.domElement.insertBefore(this.__closeButton,this.domElement.childNodes[0])):(Y.addClass(this.__closeButton,n.CLASS_CLOSE_BOTTOM),this.domElement.appendChild(this.__closeButton)),Y.bind(this.__closeButton,"click",function(){t.closed=!t.closed})}else{i.closed===void 0&&(i.closed=!0);var l=document.createTextNode(i.name);Y.addClass(l,"controller-name"),o=Nl(t,l);var c=function(u){return u.preventDefault(),t.closed=!t.closed,!1};Y.addClass(this.__ul,n.CLASS_CLOSED),Y.addClass(o,"title"),Y.bind(o,"click",c),i.closed||(this.closed=!1)}i.autoPlace&&(te.isUndefined(i.parent)&&(DA&&(Cs=document.createElement("div"),Y.addClass(Cs,TA),Y.addClass(Cs,n.CLASS_AUTO_PLACE_CONTAINER),document.body.appendChild(Cs),DA=!1),Cs.appendChild(this.domElement),Y.addClass(this.domElement,n.CLASS_AUTO_PLACE)),this.parent||Fl(t,i.width)),this.__resizeHandler=function(){t.onResizeDebounced()},Y.bind(window,"resize",this.__resizeHandler),Y.bind(this.__ul,"webkitTransitionEnd",this.__resizeHandler),Y.bind(this.__ul,"transitionend",this.__resizeHandler),Y.bind(this.__ul,"oTransitionEnd",this.__resizeHandler),this.onResize(),i.resizable&&$x(this),r=function(){Or&&localStorage.getItem(Ss(t,"isLocal"))==="true"&&localStorage.setItem(Ss(t,"gui"),JSON.stringify(t.getSaveObject()))},this.saveToLocalStorageIfPossible=r;function h(){var f=t.getRoot();f.width+=1,te.defer(function(){f.width-=1})}i.parent||h()};ot.toggleHide=function(){Ml=!Ml,te.each(kA,function(n){n.domElement.style.display=Ml?"none":""})};ot.CLASS_AUTO_PLACE="a";ot.CLASS_AUTO_PLACE_CONTAINER="ac";ot.CLASS_MAIN="main";ot.CLASS_CONTROLLER_ROW="cr";ot.CLASS_TOO_TALL="taller-than-window";ot.CLASS_CLOSED="closed";ot.CLASS_CLOSE_BUTTON="close-button";ot.CLASS_CLOSE_TOP="close-top";ot.CLASS_CLOSE_BOTTOM="close-bottom";ot.CLASS_DRAG="drag";ot.DEFAULT_WIDTH=245;ot.TEXT_CLOSED="Close Controls";ot.TEXT_OPEN="Open Controls";ot._keydownHandler=function(n){document.activeElement.type!=="text"&&(n.which===BA||n.keyCode===BA)&&ot.toggleHide()};Y.bind(window,"keydown",ot._keydownHandler,!1);te.extend(ot.prototype,{add:function(e,t){return Qr(this,e,t,{factoryArgs:Array.prototype.slice.call(arguments,2)})},addColor:function(e,t){return Qr(this,e,t,{color:!0})},remove:function(e){this.__ul.removeChild(e.__li),this.__controllers.splice(this.__controllers.indexOf(e),1);var t=this;te.defer(function(){t.onResize()})},destroy:function(){if(this.parent)throw new Error("Only the root GUI should be removed with .destroy(). For subfolders, use gui.removeFolder(folder) instead.");this.autoPlace&&Cs.removeChild(this.domElement);var e=this;te.each(this.__folders,function(t){e.removeFolder(t)}),Y.unbind(window,"keydown",ot._keydownHandler,!1),LA(this)},addFolder:function(e){if(this.__folders[e]!==void 0)throw new Error('You already have a folder in this GUI by the name "'+e+'"');var t={name:e,parent:this};t.autoPlace=this.autoPlace,this.load&&this.load.folders&&this.load.folders[e]&&(t.closed=this.load.folders[e].closed,t.load=this.load.folders[e]);var i=new ot(t);this.__folders[e]=i;var s=Nl(this,i.domElement);return Y.addClass(s,"folder"),i},removeFolder:function(e){this.__ul.removeChild(e.domElement.parentElement),delete this.__folders[e.name],this.load&&this.load.folders&&this.load.folders[e.name]&&delete this.load.folders[e.name],LA(e);var t=this;te.each(e.__folders,function(i){e.removeFolder(i)}),te.defer(function(){t.onResize()})},open:function(){this.closed=!1},close:function(){this.closed=!0},hide:function(){this.domElement.style.display="none"},show:function(){this.domElement.style.display=""},onResize:function(){var e=this.getRoot();if(e.scrollable){var t=Y.getOffset(e.__ul).top,i=0;te.each(e.__ul.childNodes,function(s){e.autoPlace&&s===e.__save_row||(i+=Y.getHeight(s))}),window.innerHeight-t-RA<i?(Y.addClass(e.domElement,ot.CLASS_TOO_TALL),e.__ul.style.height=window.innerHeight-t-RA+"px"):(Y.removeClass(e.domElement,ot.CLASS_TOO_TALL),e.__ul.style.height="auto")}e.__resize_handle&&te.defer(function(){e.__resize_handle.style.height=e.__ul.offsetHeight+"px"}),e.__closeButton&&(e.__closeButton.style.width=e.width+"px")},onResizeDebounced:te.debounce(function(){this.onResize()},50),remember:function(){if(te.isUndefined(kr)&&(kr=new Yx,kr.domElement.innerHTML=Wx),this.parent)throw new Error("You can only call remember on a top level GUI.");var e=this;te.each(Array.prototype.slice.call(arguments),function(t){e.__rememberedObjects.length===0&&jx(e),e.__rememberedObjects.indexOf(t)===-1&&e.__rememberedObjects.push(t)}),this.autoPlace&&Fl(this,this.width)},getRoot:function(){for(var e=this;e.parent;)e=e.parent;return e},getSaveObject:function(){var e=this.load;return e.closed=this.closed,this.__rememberedObjects.length>0&&(e.preset=this.preset,e.remembered||(e.remembered={}),e.remembered[this.preset]=So(this)),e.folders={},te.each(this.__folders,function(t,i){e.folders[i]=t.getSaveObject()}),e},save:function(){this.load.remembered||(this.load.remembered={}),this.load.remembered[this.preset]=So(this),Dl(this,!1),this.saveToLocalStorageIfPossible()},saveAs:function(e){this.load.remembered||(this.load.remembered={},this.load.remembered[Gr]=So(this,!0)),this.load.remembered[e]=So(this),this.preset=e,Ll(this,e,!0),this.saveToLocalStorageIfPossible()},revert:function(e){te.each(this.__controllers,function(t){this.getRoot().load.remembered?QA(e||this.getRoot(),t):t.setValue(t.initialValue),t.__onFinishChange&&t.__onFinishChange.call(t,t.getValue())},this),te.each(this.__folders,function(t){t.revert(t)}),e||Dl(this.getRoot(),!1)},listen:function(e){var t=this.__listening.length===0;this.__listening.push(e),t&&GA(this.__listening)},updateDisplay:function(){te.each(this.__controllers,function(e){e.updateDisplay()}),te.each(this.__folders,function(e){e.updateDisplay()})}});function Nl(n,e,t){var i=document.createElement("li");return e&&i.appendChild(e),t?n.__ul.insertBefore(i,t):n.__ul.appendChild(i),n.onResize(),i}function LA(n){Y.unbind(window,"resize",n.__resizeHandler),n.saveToLocalStorageIfPossible&&Y.unbind(window,"unload",n.saveToLocalStorageIfPossible)}function Dl(n,e){var t=n.__preset_select[n.__preset_select.selectedIndex];e?t.innerHTML=t.value+"*":t.innerHTML=t.value}function Zx(n,e,t){if(t.__li=e,t.__gui=n,te.extend(t,{options:function(o){if(arguments.length>1){var a=t.__li.nextElementSibling;return t.remove(),Qr(n,t.object,t.property,{before:a,factoryArgs:[te.toArray(arguments)]})}if(te.isArray(o)||te.isObject(o)){var l=t.__li.nextElementSibling;return t.remove(),Qr(n,t.object,t.property,{before:l,factoryArgs:[o]})}},name:function(o){return t.__li.firstElementChild.firstElementChild.innerHTML=o,t},listen:function(){return t.__gui.listen(t),t},remove:function(){return t.__gui.remove(t),t}}),t instanceof Bl){var i=new Io(t.object,t.property,{min:t.__min,max:t.__max,step:t.__step});te.each(["updateDisplay","onChange","onFinishChange","step","min","max"],function(r){var o=t[r],a=i[r];t[r]=i[r]=function(){var l=Array.prototype.slice.call(arguments);return a.apply(i,l),o.apply(t,l)}}),Y.addClass(e,"has-slider"),t.domElement.insertBefore(i.domElement,t.domElement.firstElementChild)}else if(t instanceof Io){var s=function(o){if(te.isNumber(t.__min)&&te.isNumber(t.__max)){var a=t.__li.firstElementChild.firstElementChild.innerHTML,l=t.__gui.__listening.indexOf(t)>-1;t.remove();var c=Qr(n,t.object,t.property,{before:t.__li.nextElementSibling,factoryArgs:[t.__min,t.__max,t.__step]});return c.name(a),l&&c.listen(),c}return o};t.min=te.compose(s,t.min),t.max=te.compose(s,t.max)}else t instanceof UA?(Y.bind(e,"click",function(){Y.fakeEvent(t.__checkbox,"click")}),Y.bind(t.__checkbox,"click",function(r){r.stopPropagation()})):t instanceof OA?(Y.bind(e,"click",function(){Y.fakeEvent(t.__button,"click")}),Y.bind(e,"mouseover",function(){Y.addClass(t.__button,"hover")}),Y.bind(e,"mouseout",function(){Y.removeClass(t.__button,"hover")})):t instanceof Rl&&(Y.addClass(e,"color"),t.updateDisplay=te.compose(function(r){return e.style.borderLeftColor=t.__color.toString(),r},t.updateDisplay),t.updateDisplay());t.setValue=te.compose(function(r){return n.getRoot().__preset_select&&t.isModified()&&Dl(n.getRoot(),!0),r},t.setValue)}function QA(n,e){var t=n.getRoot(),i=t.__rememberedObjects.indexOf(e.object);if(i!==-1){var s=t.__rememberedObjectIndecesToControllers[i];if(s===void 0&&(s={},t.__rememberedObjectIndecesToControllers[i]=s),s[e.property]=e,t.load&&t.load.remembered){var r=t.load.remembered,o=void 0;if(r[n.preset])o=r[n.preset];else if(r[Gr])o=r[Gr];else return;if(o[i]&&o[i][e.property]!==void 0){var a=o[i][e.property];e.initialValue=a,e.setValue(a)}}}}function Qr(n,e,t,i){if(e[t]===void 0)throw new Error('Object "'+e+'" has no property "'+t+'"');var s=void 0;if(i.color)s=new Rl(e,t);else{var r=[e,t].concat(i.factoryArgs);s=Kx.apply(n,r)}i.before instanceof qi&&(i.before=i.before.__li),QA(n,s),Y.addClass(s.domElement,"c");var o=document.createElement("span");Y.addClass(o,"property-name"),o.innerHTML=s.property;var a=document.createElement("div");a.appendChild(o),a.appendChild(s.domElement);var l=Nl(n,a,i.before);return Y.addClass(l,ot.CLASS_CONTROLLER_ROW),s instanceof Rl?Y.addClass(l,"color"):Y.addClass(l,Ux(s.getValue())),Zx(n,l,s),n.__controllers.push(s),s}function Ss(n,e){return document.location.href+"."+e}function Ll(n,e,t){var i=document.createElement("option");i.innerHTML=e,i.value=e,n.__preset_select.appendChild(i),t&&(n.__preset_select.selectedIndex=n.__preset_select.length-1)}function FA(n,e){e.style.display=n.useLocalStorage?"block":"none"}function jx(n){var e=n.__save_row=document.createElement("li");Y.addClass(n.domElement,"has-save"),n.__ul.insertBefore(e,n.__ul.firstChild),Y.addClass(e,"save-row");var t=document.createElement("span");t.innerHTML="&nbsp;",Y.addClass(t,"button gears");var i=document.createElement("span");i.innerHTML="Save",Y.addClass(i,"button"),Y.addClass(i,"save");var s=document.createElement("span");s.innerHTML="New",Y.addClass(s,"button"),Y.addClass(s,"save-as");var r=document.createElement("span");r.innerHTML="Revert",Y.addClass(r,"button"),Y.addClass(r,"revert");var o=n.__preset_select=document.createElement("select");if(n.load&&n.load.remembered?te.each(n.load.remembered,function(f,u){Ll(n,u,u===n.preset)}):Ll(n,Gr,!1),Y.bind(o,"change",function(){for(var f=0;f<n.__preset_select.length;f++)n.__preset_select[f].innerHTML=n.__preset_select[f].value;n.preset=this.value}),e.appendChild(o),e.appendChild(t),e.appendChild(i),e.appendChild(s),e.appendChild(r),Or){var a=document.getElementById("dg-local-explain"),l=document.getElementById("dg-local-storage"),c=document.getElementById("dg-save-locally");c.style.display="block",localStorage.getItem(Ss(n,"isLocal"))==="true"&&l.setAttribute("checked","checked"),FA(n,a),Y.bind(l,"change",function(){n.useLocalStorage=!n.useLocalStorage,FA(n,a)})}var h=document.getElementById("dg-new-constructor");Y.bind(h,"keydown",function(f){f.metaKey&&(f.which===67||f.keyCode===67)&&kr.hide()}),Y.bind(t,"click",function(){h.innerHTML=JSON.stringify(n.getSaveObject(),void 0,2),kr.show(),h.focus(),h.select()}),Y.bind(i,"click",function(){n.save()}),Y.bind(s,"click",function(){var f=prompt("Enter a new preset name.");f&&n.saveAs(f)}),Y.bind(r,"click",function(){n.revert()})}function $x(n){var e=void 0;n.__resize_handle=document.createElement("div"),te.extend(n.__resize_handle.style,{width:"6px",marginLeft:"-3px",height:"200px",cursor:"ew-resize",position:"absolute"});function t(r){return r.preventDefault(),n.width+=e-r.clientX,n.onResize(),e=r.clientX,!1}function i(){Y.removeClass(n.__closeButton,ot.CLASS_DRAG),Y.unbind(window,"mousemove",t),Y.unbind(window,"mouseup",i)}function s(r){return r.preventDefault(),e=r.clientX,Y.addClass(n.__closeButton,ot.CLASS_DRAG),Y.bind(window,"mousemove",t),Y.bind(window,"mouseup",i),!1}Y.bind(n.__resize_handle,"mousedown",s),Y.bind(n.__closeButton,"mousedown",s),n.domElement.insertBefore(n.__resize_handle,n.domElement.firstElementChild)}function Fl(n,e){n.domElement.style.width=e+"px",n.__save_row&&n.autoPlace&&(n.__save_row.style.width=e+"px"),n.__closeButton&&(n.__closeButton.style.width=e+"px")}function So(n,e){var t={};return te.each(n.__rememberedObjects,function(i,s){var r={},o=n.__rememberedObjectIndecesToControllers[s];te.each(o,function(a,l){r[l]=e?a.initialValue:a.getValue()}),t[s]=r}),t}function ev(n){for(var e=0;e<n.__preset_select.length;e++)n.__preset_select[e].value===n.preset&&(n.__preset_select.selectedIndex=e)}function GA(n){n.length!==0&&Xx.call(window,function(){GA(n)}),te.each(n,function(e){e.updateDisplay()})}var wo=ot;var zh="155",ls={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},hs={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},tv=0,HA=1,nv=2;var _0=1,iv=2,si=3,zn=0,Qt=1,Dn=2;var Ii=0,Ks=1,zA=2,VA=3,WA=4,sv=5,Vs=100,rv=101,av=102,KA=103,qA=104,ov=200,cv=201,lv=202,hv=203,x0=204,v0=205,uv=206,fv=207,dv=208,Av=209,pv=210,gv=0,mv=1,_v=2,dh=3,xv=4,vv=5,Ev=6,yv=7,E0=0,Cv=1,Sv=2,wi=0,bv=1,Iv=2,wv=3,Vh=4,Mv=5,y0=300,is=301,Ys=302,sa=303,Ah=304,Dc=306,ss=1e3,kt=1001,ra=1002,yt=1003,$o=1004;var Jr=1005;var ut=1006,Wh=1007;var Fn=1008;var Pt=1009,Tv=1010,Bv=1011,Kh=1012,C0=1013,bi=1014,Lt=1015,Wt=1016,S0=1017,b0=1018,es=1020,Rv=1021,Dt=1023,Dv=1024,Lv=1025,ts=1026,Js=1027,cr=1028,I0=1029,lr=1030,w0=1031,M0=1033,Zr=33776,Ol=33777,kl=33778,jr=33779,ec=35840,XA=35841,tc=35842,YA=35843,qh=36196,nc=37492,ic=37496,sc=37808,JA=37809,ZA=37810,jA=37811,$A=37812,ep=37813,tp=37814,np=37815,ip=37816,sp=37817,rp=37818,ap=37819,op=37820,cp=37821,$r=36492,Fv=36283,lp=36284,hp=36285,up=36286;var Zs=2300,rs=2301,Ql=2302,fp=2400,dp=2401,Ap=2402,Pv=2500;var T0=0,Lc=1,va=2,B0=3e3,ns=3001,Uv=3200,Nv=3201,R0=0,Ov=1,Hn="",be="srgb",An="srgb-linear",D0="display-p3";var Gl=7680;var kv=519,Qv=512,Gv=513,Hv=514,zv=515,Vv=516,Wv=517,Kv=518,qv=519,ph=35044;var pp="300 es",gh=1035,ai=2e3,rc=2001,Vn=class{addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}hasEventListener(e,t){if(this._listeners===void 0)return!1;let i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}removeEventListener(e,t){if(this._listeners===void 0)return;let s=this._listeners[e];if(s!==void 0){let r=s.indexOf(t);r!==-1&&s.splice(r,1)}}dispatchEvent(e){if(this._listeners===void 0)return;let i=this._listeners[e.type];if(i!==void 0){e.target=this;let s=i.slice(0);for(let r=0,o=s.length;r<o;r++)s[r].call(this,e);e.target=null}}},Nt=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],gp=1234567,ea=Math.PI/180,js=180/Math.PI;function Ln(){let n=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(Nt[n&255]+Nt[n>>8&255]+Nt[n>>16&255]+Nt[n>>24&255]+"-"+Nt[e&255]+Nt[e>>8&255]+"-"+Nt[e>>16&15|64]+Nt[e>>24&255]+"-"+Nt[t&63|128]+Nt[t>>8&255]+"-"+Nt[t>>16&255]+Nt[t>>24&255]+Nt[i&255]+Nt[i>>8&255]+Nt[i>>16&255]+Nt[i>>24&255]).toLowerCase()}function Rt(n,e,t){return Math.max(e,Math.min(t,n))}function Xh(n,e){return(n%e+e)%e}function Xv(n,e,t,i,s){return i+(n-e)*(s-i)/(t-e)}function Yv(n,e,t){return n!==e?(t-n)/(e-n):0}function ta(n,e,t){return(1-t)*n+t*e}function Jv(n,e,t,i){return ta(n,e,1-Math.exp(-t*i))}function Zv(n,e=1){return e-Math.abs(Xh(n,e*2)-e)}function jv(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*(3-2*n))}function $v(n,e,t){return n<=e?0:n>=t?1:(n=(n-e)/(t-e),n*n*n*(n*(n*6-15)+10))}function eE(n,e){return n+Math.floor(Math.random()*(e-n+1))}function tE(n,e){return n+Math.random()*(e-n)}function nE(n){return n*(.5-Math.random())}function iE(n){n!==void 0&&(gp=n);let e=gp+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function sE(n){return n*ea}function rE(n){return n*js}function mh(n){return(n&n-1)===0&&n!==0}function L0(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function ac(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function aE(n,e,t,i,s){let r=Math.cos,o=Math.sin,a=r(t/2),l=o(t/2),c=r((e+i)/2),h=o((e+i)/2),f=r((e-i)/2),u=o((e-i)/2),d=r((i-e)/2),g=o((i-e)/2);switch(s){case"XYX":n.set(a*h,l*f,l*u,a*c);break;case"YZY":n.set(l*u,a*h,l*f,a*c);break;case"ZXZ":n.set(l*f,l*u,a*h,a*c);break;case"XZX":n.set(a*h,l*g,l*d,a*c);break;case"YXY":n.set(l*d,a*h,l*g,a*c);break;case"ZYZ":n.set(l*g,l*d,a*h,a*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+s)}}function Gn(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error("Invalid component type.")}}function st(n,e){switch(e.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error("Invalid component type.")}}var Fc={DEG2RAD:ea,RAD2DEG:js,generateUUID:Ln,clamp:Rt,euclideanModulo:Xh,mapLinear:Xv,inverseLerp:Yv,lerp:ta,damp:Jv,pingpong:Zv,smoothstep:jv,smootherstep:$v,randInt:eE,randFloat:tE,randFloatSpread:nE,seededRandom:iE,degToRad:sE,radToDeg:rE,isPowerOfTwo:mh,ceilPowerOfTwo:L0,floorPowerOfTwo:ac,setQuaternionFromProperEuler:aE,normalize:st,denormalize:Gn},Ie=class{constructor(e=0,t=0){Ie.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){let t=this.x,i=this.y,s=e.elements;return this.x=s[0]*t+s[3]*i+s[6],this.y=s[1]*t+s[4]*i+s[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Rt(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y;return t*t+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){let i=Math.cos(t),s=Math.sin(t),r=this.x-e.x,o=this.y-e.y;return this.x=r*i-o*s+e.x,this.y=r*s+o*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},Ge=class{constructor(e,t,i,s,r,o,a,l,c){Ge.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,s,r,o,a,l,c)}set(e,t,i,s,r,o,a,l,c){let h=this.elements;return h[0]=e,h[1]=s,h[2]=a,h[3]=t,h[4]=r,h[5]=l,h[6]=i,h[7]=o,h[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,s=t.elements,r=this.elements,o=i[0],a=i[3],l=i[6],c=i[1],h=i[4],f=i[7],u=i[2],d=i[5],g=i[8],m=s[0],p=s[3],A=s[6],x=s[1],_=s[4],v=s[7],y=s[2],S=s[5],C=s[8];return r[0]=o*m+a*x+l*y,r[3]=o*p+a*_+l*S,r[6]=o*A+a*v+l*C,r[1]=c*m+h*x+f*y,r[4]=c*p+h*_+f*S,r[7]=c*A+h*v+f*C,r[2]=u*m+d*x+g*y,r[5]=u*p+d*_+g*S,r[8]=u*A+d*v+g*C,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[1],s=e[2],r=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8];return t*o*h-t*a*c-i*r*h+i*a*l+s*r*c-s*o*l}invert(){let e=this.elements,t=e[0],i=e[1],s=e[2],r=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8],f=h*o-a*c,u=a*l-h*r,d=c*r-o*l,g=t*f+i*u+s*d;if(g===0)return this.set(0,0,0,0,0,0,0,0,0);let m=1/g;return e[0]=f*m,e[1]=(s*c-h*i)*m,e[2]=(a*i-s*o)*m,e[3]=u*m,e[4]=(h*t-s*l)*m,e[5]=(s*r-a*t)*m,e[6]=d*m,e[7]=(i*l-c*t)*m,e[8]=(o*t-i*r)*m,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){let t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,s,r,o,a){let l=Math.cos(r),c=Math.sin(r);return this.set(i*l,i*c,-i*(l*o+c*a)+o+e,-s*c,s*l,-s*(-c*o+l*a)+a+t,0,0,1),this}scale(e,t){return this.premultiply(Hl.makeScale(e,t)),this}rotate(e){return this.premultiply(Hl.makeRotation(-e)),this}translate(e,t){return this.premultiply(Hl.makeTranslation(e,t)),this}makeTranslation(e,t){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,t,0,0,1),this}makeRotation(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,i,t,0,0,0,1),this}makeScale(e,t){return this.set(e,0,0,0,t,0,0,0,1),this}equals(e){let t=this.elements,i=e.elements;for(let s=0;s<9;s++)if(t[s]!==i[s])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}},Hl=new Ge;function F0(n){for(let e=n.length-1;e>=0;--e)if(n[e]>=65535)return!0;return!1}function aa(n){return document.createElementNS("http://www.w3.org/1999/xhtml",n)}var mp={};function na(n){n in mp||(mp[n]=!0,console.warn(n))}function qs(n){return n<.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function zl(n){return n<.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}var oE=new Ge().fromArray([.8224621,.0331941,.0170827,.177538,.9668058,.0723974,-1e-7,1e-7,.9105199]),cE=new Ge().fromArray([1.2249401,-.0420569,-.0196376,-.2249404,1.0420571,-.0786361,1e-7,0,1.0982735]);function lE(n){return n.convertSRGBToLinear().applyMatrix3(cE)}function hE(n){return n.applyMatrix3(oE).convertLinearToSRGB()}var uE={[An]:n=>n,[be]:n=>n.convertSRGBToLinear(),[D0]:lE},fE={[An]:n=>n,[be]:n=>n.convertLinearToSRGB(),[D0]:hE},wn={enabled:!0,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(n){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!n},get workingColorSpace(){return An},set workingColorSpace(n){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(n,e,t){if(this.enabled===!1||e===t||!e||!t)return n;let i=uE[e],s=fE[t];if(i===void 0||s===void 0)throw new Error(`Unsupported color space conversion, "${e}" to "${t}".`);return s(i(n))},fromWorkingColorSpace:function(n,e){return this.convert(n,this.workingColorSpace,e)},toWorkingColorSpace:function(n,e){return this.convert(n,e,this.workingColorSpace)}},Is,oc=class{static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{Is===void 0&&(Is=aa("canvas")),Is.width=e.width,Is.height=e.height;let i=Is.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=Is}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){let t=aa("canvas");t.width=e.width,t.height=e.height;let i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);let s=i.getImageData(0,0,e.width,e.height),r=s.data;for(let o=0;o<r.length;o++)r[o]=qs(r[o]/255)*255;return i.putImageData(s,0,0),t}else if(e.data){let t=e.data.slice(0);for(let i=0;i<t.length;i++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[i]=Math.floor(qs(t[i]/255)*255):t[i]=qs(t[i]);return{data:t,width:e.width,height:e.height}}else return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}},dE=0,cc=class{constructor(e=null){this.isSource=!0,Object.defineProperty(this,"id",{value:dE++}),this.uuid=Ln(),this.data=e,this.version=0}set needsUpdate(e){e===!0&&this.version++}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.images[this.uuid]!==void 0)return e.images[this.uuid];let i={uuid:this.uuid,url:""},s=this.data;if(s!==null){let r;if(Array.isArray(s)){r=[];for(let o=0,a=s.length;o<a;o++)s[o].isDataTexture?r.push(Vl(s[o].image)):r.push(Vl(s[o]))}else r=Vl(s);i.url=r}return t||(e.images[this.uuid]=i),i}};function Vl(n){return typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&n instanceof ImageBitmap?oc.getDataURL(n):n.data?{data:Array.from(n.data),width:n.width,height:n.height,type:n.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}var AE=0,mt=class extends Vn{constructor(e=mt.DEFAULT_IMAGE,t=mt.DEFAULT_MAPPING,i=kt,s=kt,r=ut,o=Fn,a=Dt,l=Pt,c=mt.DEFAULT_ANISOTROPY,h=Hn){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:AE++}),this.uuid=Ln(),this.name="",this.source=new cc(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=i,this.wrapT=s,this.magFilter=r,this.minFilter=o,this.anisotropy=c,this.format=a,this.internalFormat=null,this.type=l,this.offset=new Ie(0,0),this.repeat=new Ie(1,1),this.center=new Ie(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Ge,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,typeof h=="string"?this.colorSpace=h:(na("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=h===ns?be:Hn),this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){let t=e===void 0||typeof e=="string";if(!t&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];let i={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==y0)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case ss:e.x=e.x-Math.floor(e.x);break;case kt:e.x=e.x<0?0:1;break;case ra:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case ss:e.y=e.y-Math.floor(e.y);break;case kt:e.y=e.y<0?0:1;break;case ra:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return na("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===be?ns:B0}set encoding(e){na("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===ns?be:Hn}};mt.DEFAULT_IMAGE=null;mt.DEFAULT_MAPPING=y0;mt.DEFAULT_ANISOTROPY=1;var tt=class{constructor(e=0,t=0,i=0,s=1){tt.prototype.isVector4=!0,this.x=e,this.y=t,this.z=i,this.w=s}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,t,i,s){return this.x=e,this.y=t,this.z=i,this.w=s,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){let t=this.x,i=this.y,s=this.z,r=this.w,o=e.elements;return this.x=o[0]*t+o[4]*i+o[8]*s+o[12]*r,this.y=o[1]*t+o[5]*i+o[9]*s+o[13]*r,this.z=o[2]*t+o[6]*i+o[10]*s+o[14]*r,this.w=o[3]*t+o[7]*i+o[11]*s+o[15]*r,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);let t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,s,r,l=e.elements,c=l[0],h=l[4],f=l[8],u=l[1],d=l[5],g=l[9],m=l[2],p=l[6],A=l[10];if(Math.abs(h-u)<.01&&Math.abs(f-m)<.01&&Math.abs(g-p)<.01){if(Math.abs(h+u)<.1&&Math.abs(f+m)<.1&&Math.abs(g+p)<.1&&Math.abs(c+d+A-3)<.1)return this.set(1,0,0,0),this;t=Math.PI;let _=(c+1)/2,v=(d+1)/2,y=(A+1)/2,S=(h+u)/4,C=(f+m)/4,M=(g+p)/4;return _>v&&_>y?_<.01?(i=0,s=.707106781,r=.707106781):(i=Math.sqrt(_),s=S/i,r=C/i):v>y?v<.01?(i=.707106781,s=0,r=.707106781):(s=Math.sqrt(v),i=S/s,r=M/s):y<.01?(i=.707106781,s=.707106781,r=0):(r=Math.sqrt(y),i=C/r,s=M/r),this.set(i,s,r,t),this}let x=Math.sqrt((p-g)*(p-g)+(f-m)*(f-m)+(u-h)*(u-h));return Math.abs(x)<.001&&(x=1),this.x=(p-g)/x,this.y=(f-m)/x,this.z=(u-h)/x,this.w=Math.acos((c+d+A-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},_h=class extends Vn{constructor(e=1,t=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new tt(0,0,e,t),this.scissorTest=!1,this.viewport=new tt(0,0,e,t);let s={width:e,height:t,depth:1};i.encoding!==void 0&&(na("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===ns?be:Hn),this.texture=new mt(s,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps!==void 0?i.generateMipmaps:!1,this.texture.internalFormat=i.internalFormat!==void 0?i.internalFormat:null,this.texture.minFilter=i.minFilter!==void 0?i.minFilter:ut,this.depthBuffer=i.depthBuffer!==void 0?i.depthBuffer:!0,this.stencilBuffer=i.stencilBuffer!==void 0?i.stencilBuffer:!1,this.depthTexture=i.depthTexture!==void 0?i.depthTexture:null,this.samples=i.samples!==void 0?i.samples:0}setSize(e,t,i=1){(this.width!==e||this.height!==t||this.depth!==i)&&(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;let t=Object.assign({},e.texture.image);return this.texture.source=new cc(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},pn=class extends _h{constructor(e=1,t=1,i={}){super(e,t,i),this.isWebGLRenderTarget=!0}},lc=class extends mt{constructor(e=null,t=1,i=1,s=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:s},this.magFilter=yt,this.minFilter=yt,this.wrapR=kt,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var oa=class extends mt{constructor(e=null,t=1,i=1,s=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:s},this.magFilter=yt,this.minFilter=yt,this.wrapR=kt,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};var Xt=class{constructor(e=0,t=0,i=0,s=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=i,this._w=s}static slerpFlat(e,t,i,s,r,o,a){let l=i[s+0],c=i[s+1],h=i[s+2],f=i[s+3],u=r[o+0],d=r[o+1],g=r[o+2],m=r[o+3];if(a===0){e[t+0]=l,e[t+1]=c,e[t+2]=h,e[t+3]=f;return}if(a===1){e[t+0]=u,e[t+1]=d,e[t+2]=g,e[t+3]=m;return}if(f!==m||l!==u||c!==d||h!==g){let p=1-a,A=l*u+c*d+h*g+f*m,x=A>=0?1:-1,_=1-A*A;if(_>Number.EPSILON){let y=Math.sqrt(_),S=Math.atan2(y,A*x);p=Math.sin(p*S)/y,a=Math.sin(a*S)/y}let v=a*x;if(l=l*p+u*v,c=c*p+d*v,h=h*p+g*v,f=f*p+m*v,p===1-a){let y=1/Math.sqrt(l*l+c*c+h*h+f*f);l*=y,c*=y,h*=y,f*=y}}e[t]=l,e[t+1]=c,e[t+2]=h,e[t+3]=f}static multiplyQuaternionsFlat(e,t,i,s,r,o){let a=i[s],l=i[s+1],c=i[s+2],h=i[s+3],f=r[o],u=r[o+1],d=r[o+2],g=r[o+3];return e[t]=a*g+h*f+l*d-c*u,e[t+1]=l*g+h*u+c*f-a*d,e[t+2]=c*g+h*d+a*u-l*f,e[t+3]=h*g-a*f-l*u-c*d,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,s){return this._x=e,this._y=t,this._z=i,this._w=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){let i=e._x,s=e._y,r=e._z,o=e._order,a=Math.cos,l=Math.sin,c=a(i/2),h=a(s/2),f=a(r/2),u=l(i/2),d=l(s/2),g=l(r/2);switch(o){case"XYZ":this._x=u*h*f+c*d*g,this._y=c*d*f-u*h*g,this._z=c*h*g+u*d*f,this._w=c*h*f-u*d*g;break;case"YXZ":this._x=u*h*f+c*d*g,this._y=c*d*f-u*h*g,this._z=c*h*g-u*d*f,this._w=c*h*f+u*d*g;break;case"ZXY":this._x=u*h*f-c*d*g,this._y=c*d*f+u*h*g,this._z=c*h*g+u*d*f,this._w=c*h*f-u*d*g;break;case"ZYX":this._x=u*h*f-c*d*g,this._y=c*d*f+u*h*g,this._z=c*h*g-u*d*f,this._w=c*h*f+u*d*g;break;case"YZX":this._x=u*h*f+c*d*g,this._y=c*d*f+u*h*g,this._z=c*h*g-u*d*f,this._w=c*h*f-u*d*g;break;case"XZY":this._x=u*h*f-c*d*g,this._y=c*d*f-u*h*g,this._z=c*h*g+u*d*f,this._w=c*h*f+u*d*g;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+o)}return t!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,t){let i=t/2,s=Math.sin(i);return this._x=e.x*s,this._y=e.y*s,this._z=e.z*s,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,i=t[0],s=t[4],r=t[8],o=t[1],a=t[5],l=t[9],c=t[2],h=t[6],f=t[10],u=i+a+f;if(u>0){let d=.5/Math.sqrt(u+1);this._w=.25/d,this._x=(h-l)*d,this._y=(r-c)*d,this._z=(o-s)*d}else if(i>a&&i>f){let d=2*Math.sqrt(1+i-a-f);this._w=(h-l)/d,this._x=.25*d,this._y=(s+o)/d,this._z=(r+c)/d}else if(a>f){let d=2*Math.sqrt(1+a-i-f);this._w=(r-c)/d,this._x=(s+o)/d,this._y=.25*d,this._z=(l+h)/d}else{let d=2*Math.sqrt(1+f-i-a);this._w=(o-s)/d,this._x=(r+c)/d,this._y=(l+h)/d,this._z=.25*d}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+1;return i<Number.EPSILON?(i=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Rt(this.dot(e),-1,1)))}rotateTowards(e,t){let i=this.angleTo(e);if(i===0)return this;let s=Math.min(1,t/i);return this.slerp(e,s),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let i=e._x,s=e._y,r=e._z,o=e._w,a=t._x,l=t._y,c=t._z,h=t._w;return this._x=i*h+o*a+s*c-r*l,this._y=s*h+o*l+r*a-i*c,this._z=r*h+o*c+i*l-s*a,this._w=o*h-i*a-s*l-r*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);let i=this._x,s=this._y,r=this._z,o=this._w,a=o*e._w+i*e._x+s*e._y+r*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=o,this._x=i,this._y=s,this._z=r,this;let l=1-a*a;if(l<=Number.EPSILON){let d=1-t;return this._w=d*o+t*this._w,this._x=d*i+t*this._x,this._y=d*s+t*this._y,this._z=d*r+t*this._z,this.normalize(),this._onChangeCallback(),this}let c=Math.sqrt(l),h=Math.atan2(c,a),f=Math.sin((1-t)*h)/c,u=Math.sin(t*h)/c;return this._w=o*f+this._w*u,this._x=i*f+this._x*u,this._y=s*f+this._y*u,this._z=r*f+this._z*u,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){let e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),s=2*Math.PI*Math.random(),r=2*Math.PI*Math.random();return this.set(t*Math.cos(s),i*Math.sin(r),i*Math.cos(r),t*Math.sin(s))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},Q=class{constructor(e=0,t=0,i=0){Q.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(_p.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(_p.setFromAxisAngle(e,t))}applyMatrix3(e){let t=this.x,i=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6]*s,this.y=r[1]*t+r[4]*i+r[7]*s,this.z=r[2]*t+r[5]*i+r[8]*s,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,i=this.y,s=this.z,r=e.elements,o=1/(r[3]*t+r[7]*i+r[11]*s+r[15]);return this.x=(r[0]*t+r[4]*i+r[8]*s+r[12])*o,this.y=(r[1]*t+r[5]*i+r[9]*s+r[13])*o,this.z=(r[2]*t+r[6]*i+r[10]*s+r[14])*o,this}applyQuaternion(e){let t=this.x,i=this.y,s=this.z,r=e.x,o=e.y,a=e.z,l=e.w,c=l*t+o*s-a*i,h=l*i+a*t-r*s,f=l*s+r*i-o*t,u=-r*t-o*i-a*s;return this.x=c*l+u*-r+h*-a-f*-o,this.y=h*l+u*-o+f*-r-c*-a,this.z=f*l+u*-a+c*-o-h*-r,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){let t=this.x,i=this.y,s=this.z,r=e.elements;return this.x=r[0]*t+r[4]*i+r[8]*s,this.y=r[1]*t+r[5]*i+r[9]*s,this.z=r[2]*t+r[6]*i+r[10]*s,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){let i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let i=e.x,s=e.y,r=e.z,o=t.x,a=t.y,l=t.z;return this.x=s*l-r*a,this.y=r*o-i*l,this.z=i*a-s*o,this}projectOnVector(e){let t=e.lengthSq();if(t===0)return this.set(0,0,0);let i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return Wl.copy(this).projectOnVector(e),this.sub(Wl)}reflect(e){return this.sub(Wl.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){let t=Math.sqrt(this.lengthSq()*e.lengthSq());if(t===0)return Math.PI/2;let i=this.dot(e)/t;return Math.acos(Rt(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y,s=this.z-e.z;return t*t+i*i+s*s}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,t,i){let s=Math.sin(t)*e;return this.x=s*Math.sin(i),this.y=Math.cos(t)*e,this.z=s*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){let t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),s=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=s,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,t*4)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,t*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let e=(Math.random()-.5)*2,t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},Wl=new Q,_p=new Xt,gn=class{constructor(e=new Q(1/0,1/0,1/0),t=new Q(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t+=3)this.expandByPoint(jn.fromArray(e,t));return this}setFromBufferAttribute(e){this.makeEmpty();for(let t=0,i=e.count;t<i;t++)this.expandByPoint(jn.fromBufferAttribute(e,t));return this}setFromPoints(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){let i=jn.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,t=!1){if(e.updateWorldMatrix(!1,!1),e.boundingBox!==void 0)e.boundingBox===null&&e.computeBoundingBox(),ws.copy(e.boundingBox),ws.applyMatrix4(e.matrixWorld),this.union(ws);else{let s=e.geometry;if(s!==void 0)if(t&&s.attributes!==void 0&&s.attributes.position!==void 0){let r=s.attributes.position;for(let o=0,a=r.count;o<a;o++)jn.fromBufferAttribute(r,o).applyMatrix4(e.matrixWorld),this.expandByPoint(jn)}else s.boundingBox===null&&s.computeBoundingBox(),ws.copy(s.boundingBox),ws.applyMatrix4(e.matrixWorld),this.union(ws)}let i=e.children;for(let s=0,r=i.length;s<r;s++)this.expandByObject(i[s],t);return this}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)}intersectsSphere(e){return this.clampPoint(e.center,jn),jn.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Hr),Mo.subVectors(this.max,Hr),Ms.subVectors(e.a,Hr),Ts.subVectors(e.b,Hr),Bs.subVectors(e.c,Hr),vi.subVectors(Ts,Ms),Ei.subVectors(Bs,Ts),Xi.subVectors(Ms,Bs);let t=[0,-vi.z,vi.y,0,-Ei.z,Ei.y,0,-Xi.z,Xi.y,vi.z,0,-vi.x,Ei.z,0,-Ei.x,Xi.z,0,-Xi.x,-vi.y,vi.x,0,-Ei.y,Ei.x,0,-Xi.y,Xi.x,0];return!Kl(t,Ms,Ts,Bs,Mo)||(t=[1,0,0,0,1,0,0,0,1],!Kl(t,Ms,Ts,Bs,Mo))?!1:(To.crossVectors(vi,Ei),t=[To.x,To.y,To.z],Kl(t,Ms,Ts,Bs,Mo))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,jn).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(jn).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Zn[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Zn[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Zn[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Zn[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Zn[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Zn[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Zn[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Zn[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Zn),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}},Zn=[new Q,new Q,new Q,new Q,new Q,new Q,new Q,new Q],jn=new Q,ws=new gn,Ms=new Q,Ts=new Q,Bs=new Q,vi=new Q,Ei=new Q,Xi=new Q,Hr=new Q,Mo=new Q,To=new Q,Yi=new Q;function Kl(n,e,t,i,s){for(let r=0,o=n.length-3;r<=o;r+=3){Yi.fromArray(n,r);let a=s.x*Math.abs(Yi.x)+s.y*Math.abs(Yi.y)+s.z*Math.abs(Yi.z),l=e.dot(Yi),c=t.dot(Yi),h=i.dot(Yi);if(Math.max(-Math.max(l,c,h),Math.min(l,c,h))>a)return!1}return!0}var pE=new gn,zr=new Q,ql=new Q,sn=class{constructor(e=new Q,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){let i=this.center;t!==void 0?i.copy(t):pE.setFromPoints(e).getCenter(i);let s=0;for(let r=0,o=e.length;r<o;r++)s=Math.max(s,i.distanceToSquared(e[r]));return this.radius=Math.sqrt(s),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){let t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){let i=this.center.distanceToSquared(e);return t.copy(e),i>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;zr.subVectors(e,this.center);let t=zr.lengthSq();if(t>this.radius*this.radius){let i=Math.sqrt(t),s=(i-this.radius)*.5;this.center.addScaledVector(zr,s/i),this.radius+=s}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(ql.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(zr.copy(e.center).add(ql)),this.expandByPoint(zr.copy(e.center).sub(ql))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}},$n=new Q,Xl=new Q,Bo=new Q,yi=new Q,Yl=new Q,Ro=new Q,Jl=new Q,Mi=class{constructor(e=new Q,t=new Q(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,$n)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);let i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){let t=$n.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):($n.copy(this.origin).addScaledVector(this.direction,t),$n.distanceToSquared(e))}distanceSqToSegment(e,t,i,s){Xl.copy(e).add(t).multiplyScalar(.5),Bo.copy(t).sub(e).normalize(),yi.copy(this.origin).sub(Xl);let r=e.distanceTo(t)*.5,o=-this.direction.dot(Bo),a=yi.dot(this.direction),l=-yi.dot(Bo),c=yi.lengthSq(),h=Math.abs(1-o*o),f,u,d,g;if(h>0)if(f=o*l-a,u=o*a-l,g=r*h,f>=0)if(u>=-g)if(u<=g){let m=1/h;f*=m,u*=m,d=f*(f+o*u+2*a)+u*(o*f+u+2*l)+c}else u=r,f=Math.max(0,-(o*u+a)),d=-f*f+u*(u+2*l)+c;else u=-r,f=Math.max(0,-(o*u+a)),d=-f*f+u*(u+2*l)+c;else u<=-g?(f=Math.max(0,-(-o*r+a)),u=f>0?-r:Math.min(Math.max(-r,-l),r),d=-f*f+u*(u+2*l)+c):u<=g?(f=0,u=Math.min(Math.max(-r,-l),r),d=u*(u+2*l)+c):(f=Math.max(0,-(o*r+a)),u=f>0?r:Math.min(Math.max(-r,-l),r),d=-f*f+u*(u+2*l)+c);else u=o>0?-r:r,f=Math.max(0,-(o*u+a)),d=-f*f+u*(u+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,f),s&&s.copy(Xl).addScaledVector(Bo,u),d}intersectSphere(e,t){$n.subVectors(e.center,this.origin);let i=$n.dot(this.direction),s=$n.dot($n)-i*i,r=e.radius*e.radius;if(s>r)return null;let o=Math.sqrt(r-s),a=i-o,l=i+o;return l<0?null:a<0?this.at(l,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){let t=e.normal.dot(this.direction);if(t===0)return e.distanceToPoint(this.origin)===0?0:null;let i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){let i=this.distanceToPlane(e);return i===null?null:this.at(i,t)}intersectsPlane(e){let t=e.distanceToPoint(this.origin);return t===0||e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,s,r,o,a,l,c=1/this.direction.x,h=1/this.direction.y,f=1/this.direction.z,u=this.origin;return c>=0?(i=(e.min.x-u.x)*c,s=(e.max.x-u.x)*c):(i=(e.max.x-u.x)*c,s=(e.min.x-u.x)*c),h>=0?(r=(e.min.y-u.y)*h,o=(e.max.y-u.y)*h):(r=(e.max.y-u.y)*h,o=(e.min.y-u.y)*h),i>o||r>s||((r>i||isNaN(i))&&(i=r),(o<s||isNaN(s))&&(s=o),f>=0?(a=(e.min.z-u.z)*f,l=(e.max.z-u.z)*f):(a=(e.max.z-u.z)*f,l=(e.min.z-u.z)*f),i>l||a>s)||((a>i||i!==i)&&(i=a),(l<s||s!==s)&&(s=l),s<0)?null:this.at(i>=0?i:s,t)}intersectsBox(e){return this.intersectBox(e,$n)!==null}intersectTriangle(e,t,i,s,r){Yl.subVectors(t,e),Ro.subVectors(i,e),Jl.crossVectors(Yl,Ro);let o=this.direction.dot(Jl),a;if(o>0){if(s)return null;a=1}else if(o<0)a=-1,o=-o;else return null;yi.subVectors(this.origin,e);let l=a*this.direction.dot(Ro.crossVectors(yi,Ro));if(l<0)return null;let c=a*this.direction.dot(Yl.cross(yi));if(c<0||l+c>o)return null;let h=-a*yi.dot(Jl);return h<0?null:this.at(h/o,r)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Oe=class{constructor(e,t,i,s,r,o,a,l,c,h,f,u,d,g,m,p){Oe.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,s,r,o,a,l,c,h,f,u,d,g,m,p)}set(e,t,i,s,r,o,a,l,c,h,f,u,d,g,m,p){let A=this.elements;return A[0]=e,A[4]=t,A[8]=i,A[12]=s,A[1]=r,A[5]=o,A[9]=a,A[13]=l,A[2]=c,A[6]=h,A[10]=f,A[14]=u,A[3]=d,A[7]=g,A[11]=m,A[15]=p,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Oe().fromArray(this.elements)}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){let t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){let t=this.elements,i=e.elements,s=1/Rs.setFromMatrixColumn(e,0).length(),r=1/Rs.setFromMatrixColumn(e,1).length(),o=1/Rs.setFromMatrixColumn(e,2).length();return t[0]=i[0]*s,t[1]=i[1]*s,t[2]=i[2]*s,t[3]=0,t[4]=i[4]*r,t[5]=i[5]*r,t[6]=i[6]*r,t[7]=0,t[8]=i[8]*o,t[9]=i[9]*o,t[10]=i[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,i=e.x,s=e.y,r=e.z,o=Math.cos(i),a=Math.sin(i),l=Math.cos(s),c=Math.sin(s),h=Math.cos(r),f=Math.sin(r);if(e.order==="XYZ"){let u=o*h,d=o*f,g=a*h,m=a*f;t[0]=l*h,t[4]=-l*f,t[8]=c,t[1]=d+g*c,t[5]=u-m*c,t[9]=-a*l,t[2]=m-u*c,t[6]=g+d*c,t[10]=o*l}else if(e.order==="YXZ"){let u=l*h,d=l*f,g=c*h,m=c*f;t[0]=u+m*a,t[4]=g*a-d,t[8]=o*c,t[1]=o*f,t[5]=o*h,t[9]=-a,t[2]=d*a-g,t[6]=m+u*a,t[10]=o*l}else if(e.order==="ZXY"){let u=l*h,d=l*f,g=c*h,m=c*f;t[0]=u-m*a,t[4]=-o*f,t[8]=g+d*a,t[1]=d+g*a,t[5]=o*h,t[9]=m-u*a,t[2]=-o*c,t[6]=a,t[10]=o*l}else if(e.order==="ZYX"){let u=o*h,d=o*f,g=a*h,m=a*f;t[0]=l*h,t[4]=g*c-d,t[8]=u*c+m,t[1]=l*f,t[5]=m*c+u,t[9]=d*c-g,t[2]=-c,t[6]=a*l,t[10]=o*l}else if(e.order==="YZX"){let u=o*l,d=o*c,g=a*l,m=a*c;t[0]=l*h,t[4]=m-u*f,t[8]=g*f+d,t[1]=f,t[5]=o*h,t[9]=-a*h,t[2]=-c*h,t[6]=d*f+g,t[10]=u-m*f}else if(e.order==="XZY"){let u=o*l,d=o*c,g=a*l,m=a*c;t[0]=l*h,t[4]=-f,t[8]=c*h,t[1]=u*f+m,t[5]=o*h,t[9]=d*f-g,t[2]=g*f-d,t[6]=a*h,t[10]=m*f+u}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(gE,e,mE)}lookAt(e,t,i){let s=this.elements;return en.subVectors(e,t),en.lengthSq()===0&&(en.z=1),en.normalize(),Ci.crossVectors(i,en),Ci.lengthSq()===0&&(Math.abs(i.z)===1?en.x+=1e-4:en.z+=1e-4,en.normalize(),Ci.crossVectors(i,en)),Ci.normalize(),Do.crossVectors(en,Ci),s[0]=Ci.x,s[4]=Do.x,s[8]=en.x,s[1]=Ci.y,s[5]=Do.y,s[9]=en.y,s[2]=Ci.z,s[6]=Do.z,s[10]=en.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){let i=e.elements,s=t.elements,r=this.elements,o=i[0],a=i[4],l=i[8],c=i[12],h=i[1],f=i[5],u=i[9],d=i[13],g=i[2],m=i[6],p=i[10],A=i[14],x=i[3],_=i[7],v=i[11],y=i[15],S=s[0],C=s[4],M=s[8],E=s[12],b=s[1],w=s[5],G=s[9],U=s[13],D=s[2],O=s[6],K=s[10],H=s[14],z=s[3],F=s[7],N=s[11],R=s[15];return r[0]=o*S+a*b+l*D+c*z,r[4]=o*C+a*w+l*O+c*F,r[8]=o*M+a*G+l*K+c*N,r[12]=o*E+a*U+l*H+c*R,r[1]=h*S+f*b+u*D+d*z,r[5]=h*C+f*w+u*O+d*F,r[9]=h*M+f*G+u*K+d*N,r[13]=h*E+f*U+u*H+d*R,r[2]=g*S+m*b+p*D+A*z,r[6]=g*C+m*w+p*O+A*F,r[10]=g*M+m*G+p*K+A*N,r[14]=g*E+m*U+p*H+A*R,r[3]=x*S+_*b+v*D+y*z,r[7]=x*C+_*w+v*O+y*F,r[11]=x*M+_*G+v*K+y*N,r[15]=x*E+_*U+v*H+y*R,this}multiplyScalar(e){let t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){let e=this.elements,t=e[0],i=e[4],s=e[8],r=e[12],o=e[1],a=e[5],l=e[9],c=e[13],h=e[2],f=e[6],u=e[10],d=e[14],g=e[3],m=e[7],p=e[11],A=e[15];return g*(+r*l*f-s*c*f-r*a*u+i*c*u+s*a*d-i*l*d)+m*(+t*l*d-t*c*u+r*o*u-s*o*d+s*c*h-r*l*h)+p*(+t*c*f-t*a*d-r*o*f+i*o*d+r*a*h-i*c*h)+A*(-s*a*h-t*l*f+t*a*u+s*o*f-i*o*u+i*l*h)}transpose(){let e=this.elements,t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,i){let s=this.elements;return e.isVector3?(s[12]=e.x,s[13]=e.y,s[14]=e.z):(s[12]=e,s[13]=t,s[14]=i),this}invert(){let e=this.elements,t=e[0],i=e[1],s=e[2],r=e[3],o=e[4],a=e[5],l=e[6],c=e[7],h=e[8],f=e[9],u=e[10],d=e[11],g=e[12],m=e[13],p=e[14],A=e[15],x=f*p*c-m*u*c+m*l*d-a*p*d-f*l*A+a*u*A,_=g*u*c-h*p*c-g*l*d+o*p*d+h*l*A-o*u*A,v=h*m*c-g*f*c+g*a*d-o*m*d-h*a*A+o*f*A,y=g*f*l-h*m*l-g*a*u+o*m*u+h*a*p-o*f*p,S=t*x+i*_+s*v+r*y;if(S===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let C=1/S;return e[0]=x*C,e[1]=(m*u*r-f*p*r-m*s*d+i*p*d+f*s*A-i*u*A)*C,e[2]=(a*p*r-m*l*r+m*s*c-i*p*c-a*s*A+i*l*A)*C,e[3]=(f*l*r-a*u*r-f*s*c+i*u*c+a*s*d-i*l*d)*C,e[4]=_*C,e[5]=(h*p*r-g*u*r+g*s*d-t*p*d-h*s*A+t*u*A)*C,e[6]=(g*l*r-o*p*r-g*s*c+t*p*c+o*s*A-t*l*A)*C,e[7]=(o*u*r-h*l*r+h*s*c-t*u*c-o*s*d+t*l*d)*C,e[8]=v*C,e[9]=(g*f*r-h*m*r-g*i*d+t*m*d+h*i*A-t*f*A)*C,e[10]=(o*m*r-g*a*r+g*i*c-t*m*c-o*i*A+t*a*A)*C,e[11]=(h*a*r-o*f*r-h*i*c+t*f*c+o*i*d-t*a*d)*C,e[12]=y*C,e[13]=(h*m*s-g*f*s+g*i*u-t*m*u-h*i*p+t*f*p)*C,e[14]=(g*a*s-o*m*s-g*i*l+t*m*l+o*i*p-t*a*p)*C,e[15]=(o*f*s-h*a*s+h*i*l-t*f*l-o*i*u+t*a*u)*C,this}scale(e){let t=this.elements,i=e.x,s=e.y,r=e.z;return t[0]*=i,t[4]*=s,t[8]*=r,t[1]*=i,t[5]*=s,t[9]*=r,t[2]*=i,t[6]*=s,t[10]*=r,t[3]*=i,t[7]*=s,t[11]*=r,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],s=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,s))}makeTranslation(e,t,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){let t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){let i=Math.cos(t),s=Math.sin(t),r=1-i,o=e.x,a=e.y,l=e.z,c=r*o,h=r*a;return this.set(c*o+i,c*a-s*l,c*l+s*a,0,c*a+s*l,h*a+i,h*l-s*o,0,c*l-s*a,h*l+s*o,r*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,s,r,o){return this.set(1,i,r,0,e,1,o,0,t,s,1,0,0,0,0,1),this}compose(e,t,i){let s=this.elements,r=t._x,o=t._y,a=t._z,l=t._w,c=r+r,h=o+o,f=a+a,u=r*c,d=r*h,g=r*f,m=o*h,p=o*f,A=a*f,x=l*c,_=l*h,v=l*f,y=i.x,S=i.y,C=i.z;return s[0]=(1-(m+A))*y,s[1]=(d+v)*y,s[2]=(g-_)*y,s[3]=0,s[4]=(d-v)*S,s[5]=(1-(u+A))*S,s[6]=(p+x)*S,s[7]=0,s[8]=(g+_)*C,s[9]=(p-x)*C,s[10]=(1-(u+m))*C,s[11]=0,s[12]=e.x,s[13]=e.y,s[14]=e.z,s[15]=1,this}decompose(e,t,i){let s=this.elements,r=Rs.set(s[0],s[1],s[2]).length(),o=Rs.set(s[4],s[5],s[6]).length(),a=Rs.set(s[8],s[9],s[10]).length();this.determinant()<0&&(r=-r),e.x=s[12],e.y=s[13],e.z=s[14],Mn.copy(this);let c=1/r,h=1/o,f=1/a;return Mn.elements[0]*=c,Mn.elements[1]*=c,Mn.elements[2]*=c,Mn.elements[4]*=h,Mn.elements[5]*=h,Mn.elements[6]*=h,Mn.elements[8]*=f,Mn.elements[9]*=f,Mn.elements[10]*=f,t.setFromRotationMatrix(Mn),i.x=r,i.y=o,i.z=a,this}makePerspective(e,t,i,s,r,o,a=ai){let l=this.elements,c=2*r/(t-e),h=2*r/(i-s),f=(t+e)/(t-e),u=(i+s)/(i-s),d,g;if(a===ai)d=-(o+r)/(o-r),g=-2*o*r/(o-r);else if(a===rc)d=-o/(o-r),g=-o*r/(o-r);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+a);return l[0]=c,l[4]=0,l[8]=f,l[12]=0,l[1]=0,l[5]=h,l[9]=u,l[13]=0,l[2]=0,l[6]=0,l[10]=d,l[14]=g,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,s,r,o,a=ai){let l=this.elements,c=1/(t-e),h=1/(i-s),f=1/(o-r),u=(t+e)*c,d=(i+s)*h,g,m;if(a===ai)g=(o+r)*f,m=-2*f;else if(a===rc)g=r*f,m=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+a);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-u,l[1]=0,l[5]=2*h,l[9]=0,l[13]=-d,l[2]=0,l[6]=0,l[10]=m,l[14]=-g,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){let t=this.elements,i=e.elements;for(let s=0;s<16;s++)if(t[s]!==i[s])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}},Rs=new Q,Mn=new Oe,gE=new Q(0,0,0),mE=new Q(1,1,1),Ci=new Q,Do=new Q,en=new Q,xp=new Oe,vp=new Xt,$s=class{constructor(e=0,t=0,i=0,s=$s.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=t,this._z=i,this._order=s}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,s=this._order){return this._x=e,this._y=t,this._z=i,this._order=s,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){let s=e.elements,r=s[0],o=s[4],a=s[8],l=s[1],c=s[5],h=s[9],f=s[2],u=s[6],d=s[10];switch(t){case"XYZ":this._y=Math.asin(Rt(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-h,d),this._z=Math.atan2(-o,r)):(this._x=Math.atan2(u,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Rt(h,-1,1)),Math.abs(h)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-f,r),this._z=0);break;case"ZXY":this._x=Math.asin(Rt(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-f,d),this._z=Math.atan2(-o,c)):(this._y=0,this._z=Math.atan2(l,r));break;case"ZYX":this._y=Math.asin(-Rt(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(l,r)):(this._x=0,this._z=Math.atan2(-o,c));break;case"YZX":this._z=Math.asin(Rt(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-h,c),this._y=Math.atan2(-f,r)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-Rt(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(u,c),this._y=Math.atan2(a,r)):(this._x=Math.atan2(-h,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return xp.makeRotationFromQuaternion(e),this.setFromRotationMatrix(xp,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return vp.setFromEuler(this),this.setFromQuaternion(vp,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};$s.DEFAULT_ORDER="XYZ";var hc=class{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}},_E=0,Ep=new Q,Ds=new Xt,ei=new Oe,Lo=new Q,Vr=new Q,xE=new Q,vE=new Xt,yp=new Q(1,0,0),Cp=new Q(0,1,0),Sp=new Q(0,0,1),EE={type:"added"},bp={type:"removed"},ct=class extends Vn{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:_E++}),this.uuid=Ln(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=ct.DEFAULT_UP.clone();let e=new Q,t=new $s,i=new Xt,s=new Q(1,1,1);function r(){i.setFromEuler(t,!1)}function o(){t.setFromQuaternion(i,void 0,!1)}t._onChange(r),i._onChange(o),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:s},modelViewMatrix:{value:new Oe},normalMatrix:{value:new Ge}}),this.matrix=new Oe,this.matrixWorld=new Oe,this.matrixAutoUpdate=ct.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.matrixWorldAutoUpdate=ct.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.layers=new hc,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){return Ds.setFromAxisAngle(e,t),this.quaternion.multiply(Ds),this}rotateOnWorldAxis(e,t){return Ds.setFromAxisAngle(e,t),this.quaternion.premultiply(Ds),this}rotateX(e){return this.rotateOnAxis(yp,e)}rotateY(e){return this.rotateOnAxis(Cp,e)}rotateZ(e){return this.rotateOnAxis(Sp,e)}translateOnAxis(e,t){return Ep.copy(e).applyQuaternion(this.quaternion),this.position.add(Ep.multiplyScalar(t)),this}translateX(e){return this.translateOnAxis(yp,e)}translateY(e){return this.translateOnAxis(Cp,e)}translateZ(e){return this.translateOnAxis(Sp,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(ei.copy(this.matrixWorld).invert())}lookAt(e,t,i){e.isVector3?Lo.copy(e):Lo.set(e,t,i);let s=this.parent;this.updateWorldMatrix(!0,!1),Vr.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?ei.lookAt(Vr,Lo,this.up):ei.lookAt(Lo,Vr,this.up),this.quaternion.setFromRotationMatrix(ei),s&&(ei.extractRotation(s.matrixWorld),Ds.setFromRotationMatrix(ei),this.quaternion.premultiply(Ds.invert()))}add(e){if(arguments.length>1){for(let t=0;t<arguments.length;t++)this.add(arguments[t]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.parent!==null&&e.parent.remove(e),e.parent=this,this.children.push(e),e.dispatchEvent(EE)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}let t=this.children.indexOf(e);return t!==-1&&(e.parent=null,this.children.splice(t,1),e.dispatchEvent(bp)),this}removeFromParent(){let e=this.parent;return e!==null&&e.remove(this),this}clear(){for(let e=0;e<this.children.length;e++){let t=this.children[e];t.parent=null,t.dispatchEvent(bp)}return this.children.length=0,this}attach(e){return this.updateWorldMatrix(!0,!1),ei.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),ei.multiply(e.parent.matrixWorld)),e.applyMatrix4(ei),this.add(e),e.updateWorldMatrix(!1,!0),this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let i=0,s=this.children.length;i<s;i++){let o=this.children[i].getObjectByProperty(e,t);if(o!==void 0)return o}}getObjectsByProperty(e,t){let i=[];this[e]===t&&i.push(this);for(let s=0,r=this.children.length;s<r;s++){let o=this.children[s].getObjectsByProperty(e,t);o.length>0&&(i=i.concat(o))}return i}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Vr,e,xE),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Vr,vE,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);let t=this.children;for(let i=0,s=t.length;i<s;i++)t[i].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);let t=this.children;for(let i=0,s=t.length;i<s;i++)t[i].traverseVisible(e)}traverseAncestors(e){let t=this.parent;t!==null&&(e(t),t.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);let t=this.children;for(let i=0,s=t.length;i<s;i++){let r=t[i];(r.matrixWorldAutoUpdate===!0||e===!0)&&r.updateMatrixWorld(e)}}updateWorldMatrix(e,t){let i=this.parent;if(e===!0&&i!==null&&i.matrixWorldAutoUpdate===!0&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),t===!0){let s=this.children;for(let r=0,o=s.length;r<o;r++){let a=s[r];a.matrixWorldAutoUpdate===!0&&a.updateWorldMatrix(!1,!0)}}}toJSON(e){let t=e===void 0||typeof e=="string",i={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.6,type:"Object",generator:"Object3D.toJSON"});let s={};s.uuid=this.uuid,s.type=this.type,this.name!==""&&(s.name=this.name),this.castShadow===!0&&(s.castShadow=!0),this.receiveShadow===!0&&(s.receiveShadow=!0),this.visible===!1&&(s.visible=!1),this.frustumCulled===!1&&(s.frustumCulled=!1),this.renderOrder!==0&&(s.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(s.userData=this.userData),s.layers=this.layers.mask,s.matrix=this.matrix.toArray(),s.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(s.matrixAutoUpdate=!1),this.isInstancedMesh&&(s.type="InstancedMesh",s.count=this.count,s.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(s.instanceColor=this.instanceColor.toJSON()));function r(a,l){return a[l.uuid]===void 0&&(a[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?s.background=this.background.toJSON():this.background.isTexture&&(s.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(s.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){s.geometry=r(e.geometries,this.geometry);let a=this.geometry.parameters;if(a!==void 0&&a.shapes!==void 0){let l=a.shapes;if(Array.isArray(l))for(let c=0,h=l.length;c<h;c++){let f=l[c];r(e.shapes,f)}else r(e.shapes,l)}}if(this.isSkinnedMesh&&(s.bindMode=this.bindMode,s.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(r(e.skeletons,this.skeleton),s.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){let a=[];for(let l=0,c=this.material.length;l<c;l++)a.push(r(e.materials,this.material[l]));s.material=a}else s.material=r(e.materials,this.material);if(this.children.length>0){s.children=[];for(let a=0;a<this.children.length;a++)s.children.push(this.children[a].toJSON(e).object)}if(this.animations.length>0){s.animations=[];for(let a=0;a<this.animations.length;a++){let l=this.animations[a];s.animations.push(r(e.animations,l))}}if(t){let a=o(e.geometries),l=o(e.materials),c=o(e.textures),h=o(e.images),f=o(e.shapes),u=o(e.skeletons),d=o(e.animations),g=o(e.nodes);a.length>0&&(i.geometries=a),l.length>0&&(i.materials=l),c.length>0&&(i.textures=c),h.length>0&&(i.images=h),f.length>0&&(i.shapes=f),u.length>0&&(i.skeletons=u),d.length>0&&(i.animations=d),g.length>0&&(i.nodes=g)}return i.object=s,i;function o(a){let l=[];for(let c in a){let h=a[c];delete h.metadata,l.push(h)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,t=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),t===!0)for(let i=0;i<e.children.length;i++){let s=e.children[i];this.add(s.clone())}return this}};ct.DEFAULT_UP=new Q(0,1,0);ct.DEFAULT_MATRIX_AUTO_UPDATE=!0;ct.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;var Tn=new Q,ti=new Q,Zl=new Q,ni=new Q,Ls=new Q,Fs=new Q,Ip=new Q,jl=new Q,$l=new Q,eh=new Q,Fo=!1,nn=class{constructor(e=new Q,t=new Q,i=new Q){this.a=e,this.b=t,this.c=i}static getNormal(e,t,i,s){s.subVectors(i,t),Tn.subVectors(e,t),s.cross(Tn);let r=s.lengthSq();return r>0?s.multiplyScalar(1/Math.sqrt(r)):s.set(0,0,0)}static getBarycoord(e,t,i,s,r){Tn.subVectors(s,t),ti.subVectors(i,t),Zl.subVectors(e,t);let o=Tn.dot(Tn),a=Tn.dot(ti),l=Tn.dot(Zl),c=ti.dot(ti),h=ti.dot(Zl),f=o*c-a*a;if(f===0)return r.set(-2,-1,-1);let u=1/f,d=(c*l-a*h)*u,g=(o*h-a*l)*u;return r.set(1-d-g,g,d)}static containsPoint(e,t,i,s){return this.getBarycoord(e,t,i,s,ni),ni.x>=0&&ni.y>=0&&ni.x+ni.y<=1}static getUV(e,t,i,s,r,o,a,l){return Fo===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Fo=!0),this.getInterpolation(e,t,i,s,r,o,a,l)}static getInterpolation(e,t,i,s,r,o,a,l){return this.getBarycoord(e,t,i,s,ni),l.setScalar(0),l.addScaledVector(r,ni.x),l.addScaledVector(o,ni.y),l.addScaledVector(a,ni.z),l}static isFrontFacing(e,t,i,s){return Tn.subVectors(i,t),ti.subVectors(e,t),Tn.cross(ti).dot(s)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,s){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[s]),this}setFromAttributeAndIndices(e,t,i,s){return this.a.fromBufferAttribute(e,t),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,s),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Tn.subVectors(this.c,this.b),ti.subVectors(this.a,this.b),Tn.cross(ti).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return nn.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return nn.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,i,s,r){return Fo===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Fo=!0),nn.getInterpolation(e,this.a,this.b,this.c,t,i,s,r)}getInterpolation(e,t,i,s,r){return nn.getInterpolation(e,this.a,this.b,this.c,t,i,s,r)}containsPoint(e){return nn.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return nn.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){let i=this.a,s=this.b,r=this.c,o,a;Ls.subVectors(s,i),Fs.subVectors(r,i),jl.subVectors(e,i);let l=Ls.dot(jl),c=Fs.dot(jl);if(l<=0&&c<=0)return t.copy(i);$l.subVectors(e,s);let h=Ls.dot($l),f=Fs.dot($l);if(h>=0&&f<=h)return t.copy(s);let u=l*f-h*c;if(u<=0&&l>=0&&h<=0)return o=l/(l-h),t.copy(i).addScaledVector(Ls,o);eh.subVectors(e,r);let d=Ls.dot(eh),g=Fs.dot(eh);if(g>=0&&d<=g)return t.copy(r);let m=d*c-l*g;if(m<=0&&c>=0&&g<=0)return a=c/(c-g),t.copy(i).addScaledVector(Fs,a);let p=h*g-d*f;if(p<=0&&f-h>=0&&d-g>=0)return Ip.subVectors(r,s),a=(f-h)/(f-h+(d-g)),t.copy(s).addScaledVector(Ip,a);let A=1/(p+m+u);return o=m*A,a=u*A,t.copy(i).addScaledVector(Ls,o).addScaledVector(Fs,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}},yE=0,rn=class extends Vn{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:yE++}),this.uuid=Ln(),this.name="",this.type="Material",this.blending=Ks,this.side=zn,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=x0,this.blendDst=v0,this.blendEquation=Vs,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=dh,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=kv,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=Gl,this.stencilZFail=Gl,this.stencilZPass=Gl,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(let t in e){let i=e[t];if(i===void 0){console.warn(`THREE.Material: parameter '${t}' has value of undefined.`);continue}let s=this[t];if(s===void 0){console.warn(`THREE.Material: '${t}' is not a property of THREE.${this.type}.`);continue}s&&s.isColor?s.set(i):s&&s.isVector3&&i&&i.isVector3?s.copy(i):this[t]=i}}toJSON(e){let t=e===void 0||typeof e=="string";t&&(e={textures:{},images:{}});let i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==Ks&&(i.blending=this.blending),this.side!==zn&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=this.alphaHash),this.alphaToCoverage===!0&&(i.alphaToCoverage=this.alphaToCoverage),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=this.premultipliedAlpha),this.forceSinglePass===!0&&(i.forceSinglePass=this.forceSinglePass),this.wireframe===!0&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=this.flatShading),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function s(r){let o=[];for(let a in r){let l=r[a];delete l.metadata,o.push(l)}return o}if(t){let r=s(e.textures),o=s(e.images);r.length>0&&(i.textures=r),o.length>0&&(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;let t=e.clippingPlanes,i=null;if(t!==null){let s=t.length;i=new Array(s);for(let r=0;r!==s;++r)i[r]=t[r].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},P0={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Bn={h:0,s:0,l:0},Po={h:0,s:0,l:0};function th(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+(e-n)*6*t:t<1/2?e:t<2/3?n+(e-n)*6*(2/3-t):n}var ve=class{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,t,i)}set(e,t,i){if(t===void 0&&i===void 0){let s=e;s&&s.isColor?this.copy(s):typeof s=="number"?this.setHex(s):typeof s=="string"&&this.setStyle(s)}else this.setRGB(e,t,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=be){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,wn.toWorkingColorSpace(this,t),this}setRGB(e,t,i,s=wn.workingColorSpace){return this.r=e,this.g=t,this.b=i,wn.toWorkingColorSpace(this,s),this}setHSL(e,t,i,s=wn.workingColorSpace){if(e=Xh(e,1),t=Rt(t,0,1),i=Rt(i,0,1),t===0)this.r=this.g=this.b=i;else{let r=i<=.5?i*(1+t):i+t-i*t,o=2*i-r;this.r=th(o,r,e+1/3),this.g=th(o,r,e),this.b=th(o,r,e-1/3)}return wn.toWorkingColorSpace(this,s),this}setStyle(e,t=be){function i(r){r!==void 0&&parseFloat(r)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let s;if(s=/^(\w+)\(([^\)]*)\)/.exec(e)){let r,o=s[1],a=s[2];switch(o){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(r[4]),this.setRGB(Math.min(255,parseInt(r[1],10))/255,Math.min(255,parseInt(r[2],10))/255,Math.min(255,parseInt(r[3],10))/255,t);if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(r[4]),this.setRGB(Math.min(100,parseInt(r[1],10))/100,Math.min(100,parseInt(r[2],10))/100,Math.min(100,parseInt(r[3],10))/100,t);break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(a))return i(r[4]),this.setHSL(parseFloat(r[1])/360,parseFloat(r[2])/100,parseFloat(r[3])/100,t);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(s=/^\#([A-Fa-f\d]+)$/.exec(e)){let r=s[1],o=r.length;if(o===3)return this.setRGB(parseInt(r.charAt(0),16)/15,parseInt(r.charAt(1),16)/15,parseInt(r.charAt(2),16)/15,t);if(o===6)return this.setHex(parseInt(r,16),t);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,t);return this}setColorName(e,t=be){let i=P0[e.toLowerCase()];return i!==void 0?this.setHex(i,t):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=qs(e.r),this.g=qs(e.g),this.b=qs(e.b),this}copyLinearToSRGB(e){return this.r=zl(e.r),this.g=zl(e.g),this.b=zl(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=be){return wn.fromWorkingColorSpace(Ot.copy(this),e),Math.round(Rt(Ot.r*255,0,255))*65536+Math.round(Rt(Ot.g*255,0,255))*256+Math.round(Rt(Ot.b*255,0,255))}getHexString(e=be){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=wn.workingColorSpace){wn.fromWorkingColorSpace(Ot.copy(this),t);let i=Ot.r,s=Ot.g,r=Ot.b,o=Math.max(i,s,r),a=Math.min(i,s,r),l,c,h=(a+o)/2;if(a===o)l=0,c=0;else{let f=o-a;switch(c=h<=.5?f/(o+a):f/(2-o-a),o){case i:l=(s-r)/f+(s<r?6:0);break;case s:l=(r-i)/f+2;break;case r:l=(i-s)/f+4;break}l/=6}return e.h=l,e.s=c,e.l=h,e}getRGB(e,t=wn.workingColorSpace){return wn.fromWorkingColorSpace(Ot.copy(this),t),e.r=Ot.r,e.g=Ot.g,e.b=Ot.b,e}getStyle(e=be){wn.fromWorkingColorSpace(Ot.copy(this),e);let t=Ot.r,i=Ot.g,s=Ot.b;return e!==be?`color(${e} ${t.toFixed(3)} ${i.toFixed(3)} ${s.toFixed(3)})`:`rgb(${Math.round(t*255)},${Math.round(i*255)},${Math.round(s*255)})`}offsetHSL(e,t,i){return this.getHSL(Bn),Bn.h+=e,Bn.s+=t,Bn.l+=i,this.setHSL(Bn.h,Bn.s,Bn.l),this}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this}lerpColors(e,t,i){return this.r=e.r+(t.r-e.r)*i,this.g=e.g+(t.g-e.g)*i,this.b=e.b+(t.b-e.b)*i,this}lerpHSL(e,t){this.getHSL(Bn),e.getHSL(Po);let i=ta(Bn.h,Po.h,t),s=ta(Bn.s,Po.s,t),r=ta(Bn.l,Po.l,t);return this.setHSL(i,s,r),this}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this}applyMatrix3(e){let t=this.r,i=this.g,s=this.b,r=e.elements;return this.r=r[0]*t+r[3]*i+r[6]*s,this.g=r[1]*t+r[4]*i+r[7]*s,this.b=r[2]*t+r[5]*i+r[8]*s,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}},Ot=new ve;ve.NAMES=P0;var mn=class extends rn{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new ve(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=E0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}},ri=CE();function CE(){let n=new ArrayBuffer(4),e=new Float32Array(n),t=new Uint32Array(n),i=new Uint32Array(512),s=new Uint32Array(512);for(let l=0;l<256;++l){let c=l-127;c<-27?(i[l]=0,i[l|256]=32768,s[l]=24,s[l|256]=24):c<-14?(i[l]=1024>>-c-14,i[l|256]=1024>>-c-14|32768,s[l]=-c-1,s[l|256]=-c-1):c<=15?(i[l]=c+15<<10,i[l|256]=c+15<<10|32768,s[l]=13,s[l|256]=13):c<128?(i[l]=31744,i[l|256]=64512,s[l]=24,s[l|256]=24):(i[l]=31744,i[l|256]=64512,s[l]=13,s[l|256]=13)}let r=new Uint32Array(2048),o=new Uint32Array(64),a=new Uint32Array(64);for(let l=1;l<1024;++l){let c=l<<13,h=0;for(;(c&8388608)===0;)c<<=1,h-=8388608;c&=-8388609,h+=947912704,r[l]=c|h}for(let l=1024;l<2048;++l)r[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)o[l]=l<<23;o[31]=1199570944,o[32]=2147483648;for(let l=33;l<63;++l)o[l]=2147483648+(l-32<<23);o[63]=3347054592;for(let l=1;l<64;++l)l!==32&&(a[l]=1024);return{floatView:e,uint32View:t,baseTable:i,shiftTable:s,mantissaTable:r,exponentTable:o,offsetTable:a}}function SE(n){Math.abs(n)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),n=Rt(n,-65504,65504),ri.floatView[0]=n;let e=ri.uint32View[0],t=e>>23&511;return ri.baseTable[t]+((e&8388607)>>ri.shiftTable[t])}function bE(n){let e=n>>10;return ri.uint32View[0]=ri.mantissaTable[ri.offsetTable[e]+(n&1023)]+ri.exponentTable[e],ri.floatView[0]}var Ea={toHalfFloat:SE,fromHalfFloat:bE},vt=new Q,Uo=new Ie,St=class{constructor(e,t,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=ph,this.updateRange={offset:0,count:-1},this.gpuType=Lt,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let s=0,r=this.itemSize;s<r;s++)this.array[e+s]=t.array[i+s];return this}copyArray(e){return this.array.set(e),this}applyMatrix3(e){if(this.itemSize===2)for(let t=0,i=this.count;t<i;t++)Uo.fromBufferAttribute(this,t),Uo.applyMatrix3(e),this.setXY(t,Uo.x,Uo.y);else if(this.itemSize===3)for(let t=0,i=this.count;t<i;t++)vt.fromBufferAttribute(this,t),vt.applyMatrix3(e),this.setXYZ(t,vt.x,vt.y,vt.z);return this}applyMatrix4(e){for(let t=0,i=this.count;t<i;t++)vt.fromBufferAttribute(this,t),vt.applyMatrix4(e),this.setXYZ(t,vt.x,vt.y,vt.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)vt.fromBufferAttribute(this,t),vt.applyNormalMatrix(e),this.setXYZ(t,vt.x,vt.y,vt.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)vt.fromBufferAttribute(this,t),vt.transformDirection(e),this.setXYZ(t,vt.x,vt.y,vt.z);return this}set(e,t=0){return this.array.set(e,t),this}getComponent(e,t){let i=this.array[e*this.itemSize+t];return this.normalized&&(i=Gn(i,this.array)),i}setComponent(e,t,i){return this.normalized&&(i=st(i,this.array)),this.array[e*this.itemSize+t]=i,this}getX(e){let t=this.array[e*this.itemSize];return this.normalized&&(t=Gn(t,this.array)),t}setX(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize]=t,this}getY(e){let t=this.array[e*this.itemSize+1];return this.normalized&&(t=Gn(t,this.array)),t}setY(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize+1]=t,this}getZ(e){let t=this.array[e*this.itemSize+2];return this.normalized&&(t=Gn(t,this.array)),t}setZ(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize+2]=t,this}getW(e){let t=this.array[e*this.itemSize+3];return this.normalized&&(t=Gn(t,this.array)),t}setW(e,t){return this.normalized&&(t=st(t,this.array)),this.array[e*this.itemSize+3]=t,this}setXY(e,t,i){return e*=this.itemSize,this.normalized&&(t=st(t,this.array),i=st(i,this.array)),this.array[e+0]=t,this.array[e+1]=i,this}setXYZ(e,t,i,s){return e*=this.itemSize,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array)),this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=s,this}setXYZW(e,t,i,s,r){return e*=this.itemSize,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array),r=st(r,this.array)),this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=s,this.array[e+3]=r,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){let e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==ph&&(e.usage=this.usage),(this.updateRange.offset!==0||this.updateRange.count!==-1)&&(e.updateRange=this.updateRange),e}};var uc=class extends St{constructor(e,t,i){super(new Uint16Array(e),t,i)}};var fc=class extends St{constructor(e,t,i){super(new Uint32Array(e),t,i)}};var dn=class extends St{constructor(e,t,i){super(new Float32Array(e),t,i)}};var IE=0,un=new Oe,nh=new ct,Ps=new Q,tn=new gn,Wr=new gn,Bt=new Q,Yt=class extends Vn{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:IE++}),this.uuid=Ln(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(F0(e)?fc:uc)(e,1):this.index=e,this}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,t,i=0){this.groups.push({start:e,count:t,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){let t=this.attributes.position;t!==void 0&&(t.applyMatrix4(e),t.needsUpdate=!0);let i=this.attributes.normal;if(i!==void 0){let r=new Ge().getNormalMatrix(e);i.applyNormalMatrix(r),i.needsUpdate=!0}let s=this.attributes.tangent;return s!==void 0&&(s.transformDirection(e),s.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return un.makeRotationFromQuaternion(e),this.applyMatrix4(un),this}rotateX(e){return un.makeRotationX(e),this.applyMatrix4(un),this}rotateY(e){return un.makeRotationY(e),this.applyMatrix4(un),this}rotateZ(e){return un.makeRotationZ(e),this.applyMatrix4(un),this}translate(e,t,i){return un.makeTranslation(e,t,i),this.applyMatrix4(un),this}scale(e,t,i){return un.makeScale(e,t,i),this.applyMatrix4(un),this}lookAt(e){return nh.lookAt(e),nh.updateMatrix(),this.applyMatrix4(nh.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Ps).negate(),this.translate(Ps.x,Ps.y,Ps.z),this}setFromPoints(e){let t=[];for(let i=0,s=e.length;i<s;i++){let r=e[i];t.push(r.x,r.y,r.z||0)}return this.setAttribute("position",new dn(t,3)),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new gn);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingBox.set(new Q(-1/0,-1/0,-1/0),new Q(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),t)for(let i=0,s=t.length;i<s;i++){let r=t[i];tn.setFromBufferAttribute(r),this.morphTargetsRelative?(Bt.addVectors(this.boundingBox.min,tn.min),this.boundingBox.expandByPoint(Bt),Bt.addVectors(this.boundingBox.max,tn.max),this.boundingBox.expandByPoint(Bt)):(this.boundingBox.expandByPoint(tn.min),this.boundingBox.expandByPoint(tn.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new sn);let e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingSphere.set(new Q,1/0);return}if(e){let i=this.boundingSphere.center;if(tn.setFromBufferAttribute(e),t)for(let r=0,o=t.length;r<o;r++){let a=t[r];Wr.setFromBufferAttribute(a),this.morphTargetsRelative?(Bt.addVectors(tn.min,Wr.min),tn.expandByPoint(Bt),Bt.addVectors(tn.max,Wr.max),tn.expandByPoint(Bt)):(tn.expandByPoint(Wr.min),tn.expandByPoint(Wr.max))}tn.getCenter(i);let s=0;for(let r=0,o=e.count;r<o;r++)Bt.fromBufferAttribute(e,r),s=Math.max(s,i.distanceToSquared(Bt));if(t)for(let r=0,o=t.length;r<o;r++){let a=t[r],l=this.morphTargetsRelative;for(let c=0,h=a.count;c<h;c++)Bt.fromBufferAttribute(a,c),l&&(Ps.fromBufferAttribute(e,c),Bt.add(Ps)),s=Math.max(s,i.distanceToSquared(Bt))}this.boundingSphere.radius=Math.sqrt(s),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){let e=this.index,t=this.attributes;if(e===null||t.position===void 0||t.normal===void 0||t.uv===void 0){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}let i=e.array,s=t.position.array,r=t.normal.array,o=t.uv.array,a=s.length/3;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new St(new Float32Array(4*a),4));let l=this.getAttribute("tangent").array,c=[],h=[];for(let b=0;b<a;b++)c[b]=new Q,h[b]=new Q;let f=new Q,u=new Q,d=new Q,g=new Ie,m=new Ie,p=new Ie,A=new Q,x=new Q;function _(b,w,G){f.fromArray(s,b*3),u.fromArray(s,w*3),d.fromArray(s,G*3),g.fromArray(o,b*2),m.fromArray(o,w*2),p.fromArray(o,G*2),u.sub(f),d.sub(f),m.sub(g),p.sub(g);let U=1/(m.x*p.y-p.x*m.y);!isFinite(U)||(A.copy(u).multiplyScalar(p.y).addScaledVector(d,-m.y).multiplyScalar(U),x.copy(d).multiplyScalar(m.x).addScaledVector(u,-p.x).multiplyScalar(U),c[b].add(A),c[w].add(A),c[G].add(A),h[b].add(x),h[w].add(x),h[G].add(x))}let v=this.groups;v.length===0&&(v=[{start:0,count:i.length}]);for(let b=0,w=v.length;b<w;++b){let G=v[b],U=G.start,D=G.count;for(let O=U,K=U+D;O<K;O+=3)_(i[O+0],i[O+1],i[O+2])}let y=new Q,S=new Q,C=new Q,M=new Q;function E(b){C.fromArray(r,b*3),M.copy(C);let w=c[b];y.copy(w),y.sub(C.multiplyScalar(C.dot(w))).normalize(),S.crossVectors(M,w);let U=S.dot(h[b])<0?-1:1;l[b*4]=y.x,l[b*4+1]=y.y,l[b*4+2]=y.z,l[b*4+3]=U}for(let b=0,w=v.length;b<w;++b){let G=v[b],U=G.start,D=G.count;for(let O=U,K=U+D;O<K;O+=3)E(i[O+0]),E(i[O+1]),E(i[O+2])}}computeVertexNormals(){let e=this.index,t=this.getAttribute("position");if(t!==void 0){let i=this.getAttribute("normal");if(i===void 0)i=new St(new Float32Array(t.count*3),3),this.setAttribute("normal",i);else for(let u=0,d=i.count;u<d;u++)i.setXYZ(u,0,0,0);let s=new Q,r=new Q,o=new Q,a=new Q,l=new Q,c=new Q,h=new Q,f=new Q;if(e)for(let u=0,d=e.count;u<d;u+=3){let g=e.getX(u+0),m=e.getX(u+1),p=e.getX(u+2);s.fromBufferAttribute(t,g),r.fromBufferAttribute(t,m),o.fromBufferAttribute(t,p),h.subVectors(o,r),f.subVectors(s,r),h.cross(f),a.fromBufferAttribute(i,g),l.fromBufferAttribute(i,m),c.fromBufferAttribute(i,p),a.add(h),l.add(h),c.add(h),i.setXYZ(g,a.x,a.y,a.z),i.setXYZ(m,l.x,l.y,l.z),i.setXYZ(p,c.x,c.y,c.z)}else for(let u=0,d=t.count;u<d;u+=3)s.fromBufferAttribute(t,u+0),r.fromBufferAttribute(t,u+1),o.fromBufferAttribute(t,u+2),h.subVectors(o,r),f.subVectors(s,r),h.cross(f),i.setXYZ(u+0,h.x,h.y,h.z),i.setXYZ(u+1,h.x,h.y,h.z),i.setXYZ(u+2,h.x,h.y,h.z);this.normalizeNormals(),i.needsUpdate=!0}}normalizeNormals(){let e=this.attributes.normal;for(let t=0,i=e.count;t<i;t++)Bt.fromBufferAttribute(e,t),Bt.normalize(),e.setXYZ(t,Bt.x,Bt.y,Bt.z)}toNonIndexed(){function e(a,l){let c=a.array,h=a.itemSize,f=a.normalized,u=new c.constructor(l.length*h),d=0,g=0;for(let m=0,p=l.length;m<p;m++){a.isInterleavedBufferAttribute?d=l[m]*a.data.stride+a.offset:d=l[m]*h;for(let A=0;A<h;A++)u[g++]=c[d++]}return new St(u,h,f)}if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;let t=new Yt,i=this.index.array,s=this.attributes;for(let a in s){let l=s[a],c=e(l,i);t.setAttribute(a,c)}let r=this.morphAttributes;for(let a in r){let l=[],c=r[a];for(let h=0,f=c.length;h<f;h++){let u=c[h],d=e(u,i);l.push(d)}t.morphAttributes[a]=l}t.morphTargetsRelative=this.morphTargetsRelative;let o=this.groups;for(let a=0,l=o.length;a<l;a++){let c=o[a];t.addGroup(c.start,c.count,c.materialIndex)}return t}toJSON(){let e={metadata:{version:4.6,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){let l=this.parameters;for(let c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};let t=this.index;t!==null&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});let i=this.attributes;for(let l in i){let c=i[l];e.data.attributes[l]=c.toJSON(e.data)}let s={},r=!1;for(let l in this.morphAttributes){let c=this.morphAttributes[l],h=[];for(let f=0,u=c.length;f<u;f++){let d=c[f];h.push(d.toJSON(e.data))}h.length>0&&(s[l]=h,r=!0)}r&&(e.data.morphAttributes=s,e.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length>0&&(e.data.groups=JSON.parse(JSON.stringify(o)));let a=this.boundingSphere;return a!==null&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let t={};this.name=e.name;let i=e.index;i!==null&&this.setIndex(i.clone(t));let s=e.attributes;for(let c in s){let h=s[c];this.setAttribute(c,h.clone(t))}let r=e.morphAttributes;for(let c in r){let h=[],f=r[c];for(let u=0,d=f.length;u<d;u++)h.push(f[u].clone(t));this.morphAttributes[c]=h}this.morphTargetsRelative=e.morphTargetsRelative;let o=e.groups;for(let c=0,h=o.length;c<h;c++){let f=o[c];this.addGroup(f.start,f.count,f.materialIndex)}let a=e.boundingBox;a!==null&&(this.boundingBox=a.clone());let l=e.boundingSphere;return l!==null&&(this.boundingSphere=l.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}},wp=new Oe,Ji=new Mi,No=new sn,Mp=new Q,Us=new Q,Ns=new Q,Os=new Q,ih=new Q,Oo=new Q,ko=new Ie,Qo=new Ie,Go=new Ie,Tp=new Q,Bp=new Q,Rp=new Q,Ho=new Q,zo=new Q,Ft=class extends ct{constructor(e=new Yt,t=new mn){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=e.material,this.geometry=e.geometry,this}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let s=t[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}getVertexPosition(e,t){let i=this.geometry,s=i.attributes.position,r=i.morphAttributes.position,o=i.morphTargetsRelative;t.fromBufferAttribute(s,e);let a=this.morphTargetInfluences;if(r&&a){Oo.set(0,0,0);for(let l=0,c=r.length;l<c;l++){let h=a[l],f=r[l];h!==0&&(ih.fromBufferAttribute(f,e),o?Oo.addScaledVector(ih,h):Oo.addScaledVector(ih.sub(t),h))}t.add(Oo)}return t}raycast(e,t){let i=this.geometry,s=this.material,r=this.matrixWorld;s!==void 0&&(i.boundingSphere===null&&i.computeBoundingSphere(),No.copy(i.boundingSphere),No.applyMatrix4(r),Ji.copy(e.ray).recast(e.near),!(No.containsPoint(Ji.origin)===!1&&(Ji.intersectSphere(No,Mp)===null||Ji.origin.distanceToSquared(Mp)>(e.far-e.near)**2))&&(wp.copy(r).invert(),Ji.copy(e.ray).applyMatrix4(wp),!(i.boundingBox!==null&&Ji.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,t,Ji)))}_computeIntersections(e,t,i){let s,r=this.geometry,o=this.material,a=r.index,l=r.attributes.position,c=r.attributes.uv,h=r.attributes.uv1,f=r.attributes.normal,u=r.groups,d=r.drawRange;if(a!==null)if(Array.isArray(o))for(let g=0,m=u.length;g<m;g++){let p=u[g],A=o[p.materialIndex],x=Math.max(p.start,d.start),_=Math.min(a.count,Math.min(p.start+p.count,d.start+d.count));for(let v=x,y=_;v<y;v+=3){let S=a.getX(v),C=a.getX(v+1),M=a.getX(v+2);s=Vo(this,A,e,i,c,h,f,S,C,M),s&&(s.faceIndex=Math.floor(v/3),s.face.materialIndex=p.materialIndex,t.push(s))}}else{let g=Math.max(0,d.start),m=Math.min(a.count,d.start+d.count);for(let p=g,A=m;p<A;p+=3){let x=a.getX(p),_=a.getX(p+1),v=a.getX(p+2);s=Vo(this,o,e,i,c,h,f,x,_,v),s&&(s.faceIndex=Math.floor(p/3),t.push(s))}}else if(l!==void 0)if(Array.isArray(o))for(let g=0,m=u.length;g<m;g++){let p=u[g],A=o[p.materialIndex],x=Math.max(p.start,d.start),_=Math.min(l.count,Math.min(p.start+p.count,d.start+d.count));for(let v=x,y=_;v<y;v+=3){let S=v,C=v+1,M=v+2;s=Vo(this,A,e,i,c,h,f,S,C,M),s&&(s.faceIndex=Math.floor(v/3),s.face.materialIndex=p.materialIndex,t.push(s))}}else{let g=Math.max(0,d.start),m=Math.min(l.count,d.start+d.count);for(let p=g,A=m;p<A;p+=3){let x=p,_=p+1,v=p+2;s=Vo(this,o,e,i,c,h,f,x,_,v),s&&(s.faceIndex=Math.floor(p/3),t.push(s))}}}};function wE(n,e,t,i,s,r,o,a){let l;if(e.side===Qt?l=i.intersectTriangle(o,r,s,!0,a):l=i.intersectTriangle(s,r,o,e.side===zn,a),l===null)return null;zo.copy(a),zo.applyMatrix4(n.matrixWorld);let c=t.ray.origin.distanceTo(zo);return c<t.near||c>t.far?null:{distance:c,point:zo.clone(),object:n}}function Vo(n,e,t,i,s,r,o,a,l,c){n.getVertexPosition(a,Us),n.getVertexPosition(l,Ns),n.getVertexPosition(c,Os);let h=wE(n,e,t,i,Us,Ns,Os,Ho);if(h){s&&(ko.fromBufferAttribute(s,a),Qo.fromBufferAttribute(s,l),Go.fromBufferAttribute(s,c),h.uv=nn.getInterpolation(Ho,Us,Ns,Os,ko,Qo,Go,new Ie)),r&&(ko.fromBufferAttribute(r,a),Qo.fromBufferAttribute(r,l),Go.fromBufferAttribute(r,c),h.uv1=nn.getInterpolation(Ho,Us,Ns,Os,ko,Qo,Go,new Ie),h.uv2=h.uv1),o&&(Tp.fromBufferAttribute(o,a),Bp.fromBufferAttribute(o,l),Rp.fromBufferAttribute(o,c),h.normal=nn.getInterpolation(Ho,Us,Ns,Os,Tp,Bp,Rp,new Q),h.normal.dot(i.direction)>0&&h.normal.multiplyScalar(-1));let f={a,b:l,c,normal:new Q,materialIndex:0};nn.getNormal(Us,Ns,Os,f.normal),h.face=f}return h}var as=class extends Yt{constructor(e=1,t=1,i=1,s=1,r=1,o=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:s,heightSegments:r,depthSegments:o};let a=this;s=Math.floor(s),r=Math.floor(r),o=Math.floor(o);let l=[],c=[],h=[],f=[],u=0,d=0;g("z","y","x",-1,-1,i,t,e,o,r,0),g("z","y","x",1,-1,i,t,-e,o,r,1),g("x","z","y",1,1,e,i,t,s,o,2),g("x","z","y",1,-1,e,i,-t,s,o,3),g("x","y","z",1,-1,e,t,i,s,r,4),g("x","y","z",-1,-1,e,t,-i,s,r,5),this.setIndex(l),this.setAttribute("position",new dn(c,3)),this.setAttribute("normal",new dn(h,3)),this.setAttribute("uv",new dn(f,2));function g(m,p,A,x,_,v,y,S,C,M,E){let b=v/C,w=y/M,G=v/2,U=y/2,D=S/2,O=C+1,K=M+1,H=0,z=0,F=new Q;for(let N=0;N<K;N++){let R=N*w-U;for(let L=0;L<O;L++){let ne=L*b-G;F[m]=ne*x,F[p]=R*_,F[A]=D,c.push(F.x,F.y,F.z),F[m]=0,F[p]=0,F[A]=S>0?1:-1,h.push(F.x,F.y,F.z),f.push(L/C),f.push(1-N/M),H+=1}}for(let N=0;N<M;N++)for(let R=0;R<C;R++){let L=u+R+O*N,ne=u+R+O*(N+1),ie=u+(R+1)+O*(N+1),he=u+(R+1)+O*N;l.push(L,ne,he),l.push(ne,ie,he),z+=6}a.addGroup(d,z,E),d+=z,u+=H}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new as(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}};function er(n){let e={};for(let t in n){e[t]={};for(let i in n[t]){let s=n[t][i];s&&(s.isColor||s.isMatrix3||s.isMatrix4||s.isVector2||s.isVector3||s.isVector4||s.isTexture||s.isQuaternion)?s.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[t][i]=null):e[t][i]=s.clone():Array.isArray(s)?e[t][i]=s.slice():e[t][i]=s}}return e}function Vt(n){let e={};for(let t=0;t<n.length;t++){let i=er(n[t]);for(let s in i)e[s]=i[s]}return e}function ME(n){let e=[];for(let t=0;t<n.length;t++)e.push(n[t].clone());return e}function U0(n){return n.getRenderTarget()===null?n.outputColorSpace:An}var TE={clone:er,merge:Vt},BE=`void main() {
24
24
  gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
25
25
  }`,RE=`void main() {
26
26
  gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
27
- }`,_n=class extends rn{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=BE,this.fragmentShader=RE,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=er(e.uniforms),this.uniformsGroups=ME(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){let t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(let s in this.uniforms){let o=this.uniforms[s].value;o&&o.isTexture?t.uniforms[s]={type:"t",value:o.toJSON(e).uuid}:o&&o.isColor?t.uniforms[s]={type:"c",value:o.getHex()}:o&&o.isVector2?t.uniforms[s]={type:"v2",value:o.toArray()}:o&&o.isVector3?t.uniforms[s]={type:"v3",value:o.toArray()}:o&&o.isVector4?t.uniforms[s]={type:"v4",value:o.toArray()}:o&&o.isMatrix3?t.uniforms[s]={type:"m3",value:o.toArray()}:o&&o.isMatrix4?t.uniforms[s]={type:"m4",value:o.toArray()}:t.uniforms[s]={value:o}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let i={};for(let s in this.extensions)this.extensions[s]===!0&&(i[s]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}},dc=class extends ct{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Oe,this.projectionMatrix=new Oe,this.projectionMatrixInverse=new Oe,this.coordinateSystem=ai}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},yt=class extends dc{constructor(e=50,t=1,i=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=s,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=js*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(ea*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return js*2*Math.atan(Math.tan(ea*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,i,s,r,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=s,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(ea*.5*this.fov)/this.zoom,i=2*t,s=this.aspect*i,r=-.5*s,o=this.view;if(this.view!==null&&this.view.enabled){let l=o.fullWidth,c=o.fullHeight;r+=o.offsetX*s/l,t-=o.offsetY*i/c,s*=o.width/l,i*=o.height/c}let a=this.filmOffset;a!==0&&(r+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+s,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},ks=-90,Qs=1,xh=class extends ct{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null;let s=new yt(ks,Qs,e,t);s.layers=this.layers,this.add(s);let r=new yt(ks,Qs,e,t);r.layers=this.layers,this.add(r);let o=new yt(ks,Qs,e,t);o.layers=this.layers,this.add(o);let a=new yt(ks,Qs,e,t);a.layers=this.layers,this.add(a);let l=new yt(ks,Qs,e,t);l.layers=this.layers,this.add(l);let c=new yt(ks,Qs,e,t);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[i,s,r,o,a,l]=t;for(let c of t)this.remove(c);if(e===ai)i.up.set(0,1,0),i.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===rc)i.up.set(0,-1,0),i.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let c of t)this.add(c),c.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();let i=this.renderTarget;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[s,r,o,a,l,c]=this.children,h=e.getRenderTarget(),f=e.xr.enabled;e.xr.enabled=!1;let u=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0),e.render(t,s),e.setRenderTarget(i,1),e.render(t,r),e.setRenderTarget(i,2),e.render(t,o),e.setRenderTarget(i,3),e.render(t,a),e.setRenderTarget(i,4),e.render(t,l),i.texture.generateMipmaps=u,e.setRenderTarget(i,5),e.render(t,c),e.setRenderTarget(h),e.xr.enabled=f,i.texture.needsPMREMUpdate=!0}},Ac=class extends gt{constructor(e,t,i,s,r,o,a,l,c,h){e=e!==void 0?e:[],t=t!==void 0?t:is,super(e,t,i,s,r,o,a,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},vh=class extends pn{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let i={width:e,height:e,depth:1},s=[i,i,i,i,i,i];t.encoding!==void 0&&(na("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===ns?be:Hn),this.texture=new Ac(s,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:ut}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let i={uniforms:{tEquirect:{value:null}},vertexShader:`
27
+ }`,_n=class extends rn{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=BE,this.fragmentShader=RE,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=er(e.uniforms),this.uniformsGroups=ME(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){let t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(let s in this.uniforms){let o=this.uniforms[s].value;o&&o.isTexture?t.uniforms[s]={type:"t",value:o.toJSON(e).uuid}:o&&o.isColor?t.uniforms[s]={type:"c",value:o.getHex()}:o&&o.isVector2?t.uniforms[s]={type:"v2",value:o.toArray()}:o&&o.isVector3?t.uniforms[s]={type:"v3",value:o.toArray()}:o&&o.isVector4?t.uniforms[s]={type:"v4",value:o.toArray()}:o&&o.isMatrix3?t.uniforms[s]={type:"m3",value:o.toArray()}:o&&o.isMatrix4?t.uniforms[s]={type:"m4",value:o.toArray()}:t.uniforms[s]={value:o}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader,t.lights=this.lights,t.clipping=this.clipping;let i={};for(let s in this.extensions)this.extensions[s]===!0&&(i[s]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}},dc=class extends ct{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Oe,this.projectionMatrix=new Oe,this.projectionMatrixInverse=new Oe,this.coordinateSystem=ai}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);let t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},Ct=class extends dc{constructor(e=50,t=1,i=.1,s=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=s,this.focus=10,this.aspect=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){let t=.5*this.getFilmHeight()/e;this.fov=js*2*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){let e=Math.tan(ea*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return js*2*Math.atan(Math.tan(ea*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,i,s,r,o){this.aspect=e/t,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=s,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=this.near,t=e*Math.tan(ea*.5*this.fov)/this.zoom,i=2*t,s=this.aspect*i,r=-.5*s,o=this.view;if(this.view!==null&&this.view.enabled){let l=o.fullWidth,c=o.fullHeight;r+=o.offsetX*s/l,t-=o.offsetY*i/c,s*=o.width/l,i*=o.height/c}let a=this.filmOffset;a!==0&&(r+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(r,r+s,t,t-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,this.view!==null&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}},ks=-90,Qs=1,xh=class extends ct{constructor(e,t,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null;let s=new Ct(ks,Qs,e,t);s.layers=this.layers,this.add(s);let r=new Ct(ks,Qs,e,t);r.layers=this.layers,this.add(r);let o=new Ct(ks,Qs,e,t);o.layers=this.layers,this.add(o);let a=new Ct(ks,Qs,e,t);a.layers=this.layers,this.add(a);let l=new Ct(ks,Qs,e,t);l.layers=this.layers,this.add(l);let c=new Ct(ks,Qs,e,t);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){let e=this.coordinateSystem,t=this.children.concat(),[i,s,r,o,a,l]=t;for(let c of t)this.remove(c);if(e===ai)i.up.set(0,1,0),i.lookAt(1,0,0),s.up.set(0,1,0),s.lookAt(-1,0,0),r.up.set(0,0,-1),r.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),a.up.set(0,1,0),a.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===rc)i.up.set(0,-1,0),i.lookAt(-1,0,0),s.up.set(0,-1,0),s.lookAt(1,0,0),r.up.set(0,0,1),r.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),a.up.set(0,-1,0),a.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(let c of t)this.add(c),c.updateMatrixWorld()}update(e,t){this.parent===null&&this.updateMatrixWorld();let i=this.renderTarget;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());let[s,r,o,a,l,c]=this.children,h=e.getRenderTarget(),f=e.xr.enabled;e.xr.enabled=!1;let u=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0),e.render(t,s),e.setRenderTarget(i,1),e.render(t,r),e.setRenderTarget(i,2),e.render(t,o),e.setRenderTarget(i,3),e.render(t,a),e.setRenderTarget(i,4),e.render(t,l),i.texture.generateMipmaps=u,e.setRenderTarget(i,5),e.render(t,c),e.setRenderTarget(h),e.xr.enabled=f,i.texture.needsPMREMUpdate=!0}},Ac=class extends mt{constructor(e,t,i,s,r,o,a,l,c,h){e=e!==void 0?e:[],t=t!==void 0?t:is,super(e,t,i,s,r,o,a,l,c,h),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},vh=class extends pn{constructor(e=1,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;let i={width:e,height:e,depth:1},s=[i,i,i,i,i,i];t.encoding!==void 0&&(na("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),t.colorSpace=t.encoding===ns?be:Hn),this.texture=new Ac(s,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=t.generateMipmaps!==void 0?t.generateMipmaps:!1,this.texture.minFilter=t.minFilter!==void 0?t.minFilter:ut}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.colorSpace=t.colorSpace,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;let i={uniforms:{tEquirect:{value:null}},vertexShader:`
28
28
 
29
29
  varying vec3 vWorldDirection;
30
30
 
@@ -3361,7 +3361,7 @@ void main() {
3361
3361
  #include <tonemapping_fragment>
3362
3362
  #include <colorspace_fragment>
3363
3363
  #include <fog_fragment>
3364
- }`,Qe={alphahash_fragment:PE,alphahash_pars_fragment:UE,alphamap_fragment:NE,alphamap_pars_fragment:OE,alphatest_fragment:kE,alphatest_pars_fragment:QE,aomap_fragment:GE,aomap_pars_fragment:HE,begin_vertex:zE,beginnormal_vertex:VE,bsdfs:WE,iridescence_fragment:KE,bumpmap_pars_fragment:qE,clipping_planes_fragment:XE,clipping_planes_pars_fragment:YE,clipping_planes_pars_vertex:JE,clipping_planes_vertex:ZE,color_fragment:jE,color_pars_fragment:$E,color_pars_vertex:ey,color_vertex:ty,common:ny,cube_uv_reflection_fragment:iy,defaultnormal_vertex:sy,displacementmap_pars_vertex:ry,displacementmap_vertex:ay,emissivemap_fragment:oy,emissivemap_pars_fragment:cy,colorspace_fragment:ly,colorspace_pars_fragment:hy,envmap_fragment:uy,envmap_common_pars_fragment:fy,envmap_pars_fragment:dy,envmap_pars_vertex:Ay,envmap_physical_pars_fragment:Iy,envmap_vertex:py,fog_vertex:gy,fog_pars_vertex:my,fog_fragment:_y,fog_pars_fragment:xy,gradientmap_pars_fragment:vy,lightmap_fragment:Ey,lightmap_pars_fragment:yy,lights_lambert_fragment:Cy,lights_lambert_pars_fragment:Sy,lights_pars_begin:by,lights_toon_fragment:wy,lights_toon_pars_fragment:My,lights_phong_fragment:Ty,lights_phong_pars_fragment:By,lights_physical_fragment:Ry,lights_physical_pars_fragment:Dy,lights_fragment_begin:Ly,lights_fragment_maps:Fy,lights_fragment_end:Py,logdepthbuf_fragment:Uy,logdepthbuf_pars_fragment:Ny,logdepthbuf_pars_vertex:Oy,logdepthbuf_vertex:ky,map_fragment:Qy,map_pars_fragment:Gy,map_particle_fragment:Hy,map_particle_pars_fragment:zy,metalnessmap_fragment:Vy,metalnessmap_pars_fragment:Wy,morphcolor_vertex:Ky,morphnormal_vertex:qy,morphtarget_pars_vertex:Xy,morphtarget_vertex:Yy,normal_fragment_begin:Jy,normal_fragment_maps:Zy,normal_pars_fragment:jy,normal_pars_vertex:$y,normal_vertex:e1,normalmap_pars_fragment:t1,clearcoat_normal_fragment_begin:n1,clearcoat_normal_fragment_maps:i1,clearcoat_pars_fragment:s1,iridescence_pars_fragment:r1,opaque_fragment:a1,packing:o1,premultiplied_alpha_fragment:c1,project_vertex:l1,dithering_fragment:h1,dithering_pars_fragment:u1,roughnessmap_fragment:f1,roughnessmap_pars_fragment:d1,shadowmap_pars_fragment:A1,shadowmap_pars_vertex:p1,shadowmap_vertex:g1,shadowmask_pars_fragment:m1,skinbase_vertex:_1,skinning_pars_vertex:x1,skinning_vertex:v1,skinnormal_vertex:E1,specularmap_fragment:y1,specularmap_pars_fragment:C1,tonemapping_fragment:S1,tonemapping_pars_fragment:b1,transmission_fragment:I1,transmission_pars_fragment:w1,uv_pars_fragment:M1,uv_pars_vertex:T1,uv_vertex:B1,worldpos_vertex:R1,background_vert:D1,background_frag:L1,backgroundCube_vert:F1,backgroundCube_frag:P1,cube_vert:U1,cube_frag:N1,depth_vert:O1,depth_frag:k1,distanceRGBA_vert:Q1,distanceRGBA_frag:G1,equirect_vert:H1,equirect_frag:z1,linedashed_vert:V1,linedashed_frag:W1,meshbasic_vert:K1,meshbasic_frag:q1,meshlambert_vert:X1,meshlambert_frag:Y1,meshmatcap_vert:J1,meshmatcap_frag:Z1,meshnormal_vert:j1,meshnormal_frag:$1,meshphong_vert:eC,meshphong_frag:tC,meshphysical_vert:nC,meshphysical_frag:iC,meshtoon_vert:sC,meshtoon_frag:rC,points_vert:aC,points_frag:oC,shadow_vert:cC,shadow_frag:lC,sprite_vert:hC,sprite_frag:uC},pe={common:{diffuse:{value:new Ee(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ge},alphaMap:{value:null},alphaMapTransform:{value:new Ge},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ge}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ge}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ge}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ge},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ge},normalScale:{value:new Ie(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ge},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ge}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ge}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ge}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ee(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ee(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ge},alphaTest:{value:0},uvTransform:{value:new Ge}},sprite:{diffuse:{value:new Ee(16777215)},opacity:{value:1},center:{value:new Ie(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ge},alphaMap:{value:null},alphaMapTransform:{value:new Ge},alphaTest:{value:0}}},Qn={basic:{uniforms:Vt([pe.common,pe.specularmap,pe.envmap,pe.aomap,pe.lightmap,pe.fog]),vertexShader:Qe.meshbasic_vert,fragmentShader:Qe.meshbasic_frag},lambert:{uniforms:Vt([pe.common,pe.specularmap,pe.envmap,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.fog,pe.lights,{emissive:{value:new Ee(0)}}]),vertexShader:Qe.meshlambert_vert,fragmentShader:Qe.meshlambert_frag},phong:{uniforms:Vt([pe.common,pe.specularmap,pe.envmap,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.fog,pe.lights,{emissive:{value:new Ee(0)},specular:{value:new Ee(1118481)},shininess:{value:30}}]),vertexShader:Qe.meshphong_vert,fragmentShader:Qe.meshphong_frag},standard:{uniforms:Vt([pe.common,pe.envmap,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.roughnessmap,pe.metalnessmap,pe.fog,pe.lights,{emissive:{value:new Ee(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Qe.meshphysical_vert,fragmentShader:Qe.meshphysical_frag},toon:{uniforms:Vt([pe.common,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.gradientmap,pe.fog,pe.lights,{emissive:{value:new Ee(0)}}]),vertexShader:Qe.meshtoon_vert,fragmentShader:Qe.meshtoon_frag},matcap:{uniforms:Vt([pe.common,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.fog,{matcap:{value:null}}]),vertexShader:Qe.meshmatcap_vert,fragmentShader:Qe.meshmatcap_frag},points:{uniforms:Vt([pe.points,pe.fog]),vertexShader:Qe.points_vert,fragmentShader:Qe.points_frag},dashed:{uniforms:Vt([pe.common,pe.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Qe.linedashed_vert,fragmentShader:Qe.linedashed_frag},depth:{uniforms:Vt([pe.common,pe.displacementmap]),vertexShader:Qe.depth_vert,fragmentShader:Qe.depth_frag},normal:{uniforms:Vt([pe.common,pe.bumpmap,pe.normalmap,pe.displacementmap,{opacity:{value:1}}]),vertexShader:Qe.meshnormal_vert,fragmentShader:Qe.meshnormal_frag},sprite:{uniforms:Vt([pe.sprite,pe.fog]),vertexShader:Qe.sprite_vert,fragmentShader:Qe.sprite_frag},background:{uniforms:{uvTransform:{value:new Ge},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Qe.background_vert,fragmentShader:Qe.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Qe.backgroundCube_vert,fragmentShader:Qe.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Qe.cube_vert,fragmentShader:Qe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Qe.equirect_vert,fragmentShader:Qe.equirect_frag},distanceRGBA:{uniforms:Vt([pe.common,pe.displacementmap,{referencePosition:{value:new Q},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Qe.distanceRGBA_vert,fragmentShader:Qe.distanceRGBA_frag},shadow:{uniforms:Vt([pe.lights,pe.fog,{color:{value:new Ee(0)},opacity:{value:1}}]),vertexShader:Qe.shadow_vert,fragmentShader:Qe.shadow_frag}};Qn.physical={uniforms:Vt([Qn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ge},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ge},clearcoatNormalScale:{value:new Ie(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ge},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ge},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ge},sheen:{value:0},sheenColor:{value:new Ee(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ge},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ge},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ge},transmissionSamplerSize:{value:new Ie},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ge},attenuationDistance:{value:0},attenuationColor:{value:new Ee(0)},specularColor:{value:new Ee(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ge},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ge},anisotropyVector:{value:new Ie},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ge}}]),vertexShader:Qe.meshphysical_vert,fragmentShader:Qe.meshphysical_frag};var Ko={r:0,b:0,g:0};function fC(n,e,t,i,s,r,o){let a=new Ee(0),l=r===!0?0:1,c,h,f=null,u=0,d=null;function g(p,A){let x=!1,_=A.isScene===!0?A.background:null;switch(_&&_.isTexture&&(_=(A.backgroundBlurriness>0?t:e).get(_)),_===null?m(a,l):_&&_.isColor&&(m(_,1),x=!0),n.xr.getEnvironmentBlendMode()){case"opaque":x=!0;break;case"additive":i.buffers.color.setClear(0,0,0,1,o),x=!0;break;case"alpha-blend":i.buffers.color.setClear(0,0,0,0,o),x=!0;break}(n.autoClear||x)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),_&&(_.isCubeTexture||_.mapping===Dc)?(h===void 0&&(h=new Ft(new as(1,1,1),new _n({name:"BackgroundCubeMaterial",uniforms:er(Qn.backgroundCube.uniforms),vertexShader:Qn.backgroundCube.vertexShader,fragmentShader:Qn.backgroundCube.fragmentShader,side:Qt,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(S,C,M){this.matrixWorld.copyPosition(M.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&_.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=A.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,h.material.toneMapped=_.colorSpace!==be,(f!==_||u!==_.version||d!==n.toneMapping)&&(h.material.needsUpdate=!0,f=_,u=_.version,d=n.toneMapping),h.layers.enableAll(),p.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(c===void 0&&(c=new Ft(new os(2,2),new _n({name:"BackgroundMaterial",uniforms:er(Qn.background.uniforms),vertexShader:Qn.background.vertexShader,fragmentShader:Qn.background.fragmentShader,side:zn,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(c)),c.material.uniforms.t2D.value=_,c.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,c.material.toneMapped=_.colorSpace!==be,_.matrixAutoUpdate===!0&&_.updateMatrix(),c.material.uniforms.uvTransform.value.copy(_.matrix),(f!==_||u!==_.version||d!==n.toneMapping)&&(c.material.needsUpdate=!0,f=_,u=_.version,d=n.toneMapping),c.layers.enableAll(),p.unshift(c,c.geometry,c.material,0,0,null))}function m(p,A){p.getRGB(Ko,U0(n)),i.buffers.color.setClear(Ko.r,Ko.g,Ko.b,A,o)}return{getClearColor:function(){return a},setClearColor:function(p,A=1){a.set(p),l=A,m(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(p){l=p,m(a,l)},render:g}}function dC(n,e,t,i){let s=n.getParameter(n.MAX_VERTEX_ATTRIBS),r=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||r!==null,a={},l=p(null),c=l,h=!1;function f(D,O,K,H,z){let F=!1;if(o){let N=m(H,K,O);c!==N&&(c=N,d(c.object)),F=A(D,H,K,z),F&&x(D,H,K,z)}else{let N=O.wireframe===!0;(c.geometry!==H.id||c.program!==K.id||c.wireframe!==N)&&(c.geometry=H.id,c.program=K.id,c.wireframe=N,F=!0)}z!==null&&t.update(z,n.ELEMENT_ARRAY_BUFFER),(F||h)&&(h=!1,M(D,O,K,H),z!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(z).buffer))}function u(){return i.isWebGL2?n.createVertexArray():r.createVertexArrayOES()}function d(D){return i.isWebGL2?n.bindVertexArray(D):r.bindVertexArrayOES(D)}function g(D){return i.isWebGL2?n.deleteVertexArray(D):r.deleteVertexArrayOES(D)}function m(D,O,K){let H=K.wireframe===!0,z=a[D.id];z===void 0&&(z={},a[D.id]=z);let F=z[O.id];F===void 0&&(F={},z[O.id]=F);let N=F[H];return N===void 0&&(N=p(u()),F[H]=N),N}function p(D){let O=[],K=[],H=[];for(let z=0;z<s;z++)O[z]=0,K[z]=0,H[z]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:O,enabledAttributes:K,attributeDivisors:H,object:D,attributes:{},index:null}}function A(D,O,K,H){let z=c.attributes,F=O.attributes,N=0,R=K.getAttributes();for(let L in R)if(R[L].location>=0){let ie=z[L],he=F[L];if(he===void 0&&(L==="instanceMatrix"&&D.instanceMatrix&&(he=D.instanceMatrix),L==="instanceColor"&&D.instanceColor&&(he=D.instanceColor)),ie===void 0||ie.attribute!==he||he&&ie.data!==he.data)return!0;N++}return c.attributesNum!==N||c.index!==H}function x(D,O,K,H){let z={},F=O.attributes,N=0,R=K.getAttributes();for(let L in R)if(R[L].location>=0){let ie=F[L];ie===void 0&&(L==="instanceMatrix"&&D.instanceMatrix&&(ie=D.instanceMatrix),L==="instanceColor"&&D.instanceColor&&(ie=D.instanceColor));let he={};he.attribute=ie,ie&&ie.data&&(he.data=ie.data),z[L]=he,N++}c.attributes=z,c.attributesNum=N,c.index=H}function _(){let D=c.newAttributes;for(let O=0,K=D.length;O<K;O++)D[O]=0}function v(D){y(D,0)}function y(D,O){let K=c.newAttributes,H=c.enabledAttributes,z=c.attributeDivisors;K[D]=1,H[D]===0&&(n.enableVertexAttribArray(D),H[D]=1),z[D]!==O&&((i.isWebGL2?n:e.get("ANGLE_instanced_arrays"))[i.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](D,O),z[D]=O)}function S(){let D=c.newAttributes,O=c.enabledAttributes;for(let K=0,H=O.length;K<H;K++)O[K]!==D[K]&&(n.disableVertexAttribArray(K),O[K]=0)}function C(D,O,K,H,z,F,N){N===!0?n.vertexAttribIPointer(D,O,K,z,F):n.vertexAttribPointer(D,O,K,H,z,F)}function M(D,O,K,H){if(i.isWebGL2===!1&&(D.isInstancedMesh||H.isInstancedBufferGeometry)&&e.get("ANGLE_instanced_arrays")===null)return;_();let z=H.attributes,F=K.getAttributes(),N=O.defaultAttributeValues;for(let R in F){let L=F[R];if(L.location>=0){let ne=z[R];if(ne===void 0&&(R==="instanceMatrix"&&D.instanceMatrix&&(ne=D.instanceMatrix),R==="instanceColor"&&D.instanceColor&&(ne=D.instanceColor)),ne!==void 0){let ie=ne.normalized,he=ne.itemSize,ae=t.get(ne);if(ae===void 0)continue;let we=ae.buffer,xe=ae.type,Ve=ae.bytesPerElement,ft=i.isWebGL2===!0&&(xe===n.INT||xe===n.UNSIGNED_INT||ne.gpuType===C0);if(ne.isInterleavedBufferAttribute){let Ce=ne.data,V=Ce.stride,lt=ne.offset;if(Ce.isInstancedInterleavedBuffer){for(let ve=0;ve<L.locationSize;ve++)y(L.location+ve,Ce.meshPerAttribute);D.isInstancedMesh!==!0&&H._maxInstanceCount===void 0&&(H._maxInstanceCount=Ce.meshPerAttribute*Ce.count)}else for(let ve=0;ve<L.locationSize;ve++)v(L.location+ve);n.bindBuffer(n.ARRAY_BUFFER,we);for(let ve=0;ve<L.locationSize;ve++)C(L.location+ve,he/L.locationSize,xe,ie,V*Ve,(lt+he/L.locationSize*ve)*Ve,ft)}else{if(ne.isInstancedBufferAttribute){for(let Ce=0;Ce<L.locationSize;Ce++)y(L.location+Ce,ne.meshPerAttribute);D.isInstancedMesh!==!0&&H._maxInstanceCount===void 0&&(H._maxInstanceCount=ne.meshPerAttribute*ne.count)}else for(let Ce=0;Ce<L.locationSize;Ce++)v(L.location+Ce);n.bindBuffer(n.ARRAY_BUFFER,we);for(let Ce=0;Ce<L.locationSize;Ce++)C(L.location+Ce,he/L.locationSize,xe,ie,he*Ve,he/L.locationSize*Ce*Ve,ft)}}else if(N!==void 0){let ie=N[R];if(ie!==void 0)switch(ie.length){case 2:n.vertexAttrib2fv(L.location,ie);break;case 3:n.vertexAttrib3fv(L.location,ie);break;case 4:n.vertexAttrib4fv(L.location,ie);break;default:n.vertexAttrib1fv(L.location,ie)}}}}S()}function E(){G();for(let D in a){let O=a[D];for(let K in O){let H=O[K];for(let z in H)g(H[z].object),delete H[z];delete O[K]}delete a[D]}}function b(D){if(a[D.id]===void 0)return;let O=a[D.id];for(let K in O){let H=O[K];for(let z in H)g(H[z].object),delete H[z];delete O[K]}delete a[D.id]}function w(D){for(let O in a){let K=a[O];if(K[D.id]===void 0)continue;let H=K[D.id];for(let z in H)g(H[z].object),delete H[z];delete K[D.id]}}function G(){U(),h=!0,c!==l&&(c=l,d(c.object))}function U(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:f,reset:G,resetDefaultState:U,dispose:E,releaseStatesOfGeometry:b,releaseStatesOfProgram:w,initAttributes:_,enableAttribute:v,disableUnusedAttributes:S}}function AC(n,e,t,i){let s=i.isWebGL2,r;function o(c){r=c}function a(c,h){n.drawArrays(r,c,h),t.update(h,r,1)}function l(c,h,f){if(f===0)return;let u,d;if(s)u=n,d="drawArraysInstanced";else if(u=e.get("ANGLE_instanced_arrays"),d="drawArraysInstancedANGLE",u===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}u[d](r,c,h,f),t.update(h,r,f)}this.setMode=o,this.render=a,this.renderInstances=l}function pC(n,e,t){let i;function s(){if(i!==void 0)return i;if(e.has("EXT_texture_filter_anisotropic")===!0){let C=e.get("EXT_texture_filter_anisotropic");i=n.getParameter(C.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i}function r(C){if(C==="highp"){if(n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";C="mediump"}return C==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext",a=t.precision!==void 0?t.precision:"highp",l=r(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);let c=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),u=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=n.getParameter(n.MAX_TEXTURE_SIZE),g=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),m=n.getParameter(n.MAX_VERTEX_ATTRIBS),p=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),A=n.getParameter(n.MAX_VARYING_VECTORS),x=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,v=o||e.has("OES_texture_float"),y=_&&v,S=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:c,getMaxAnisotropy:s,getMaxPrecision:r,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:g,maxAttributes:m,maxVertexUniforms:p,maxVaryings:A,maxFragmentUniforms:x,vertexTextures:_,floatFragmentTextures:v,floatVertexTextures:y,maxSamples:S}}function gC(n){let e=this,t=null,i=0,s=!1,r=!1,o=new Rn,a=new Ge,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,u){let d=f.length!==0||u||i!==0||s;return s=u,i=f.length,d},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(f,u){t=h(f,u,0)},this.setState=function(f,u,d){let g=f.clippingPlanes,m=f.clipIntersection,p=f.clipShadows,A=n.get(f);if(!s||g===null||g.length===0||r&&!p)r?h(null):c();else{let x=r?0:i,_=x*4,v=A.clippingState||null;l.value=v,v=h(g,u,_,d);for(let y=0;y!==_;++y)v[y]=t[y];A.clippingState=v,this.numIntersection=m?this.numPlanes:0,this.numPlanes+=x}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(f,u,d,g){let m=f!==null?f.length:0,p=null;if(m!==0){if(p=l.value,g!==!0||p===null){let A=d+m*4,x=u.matrixWorldInverse;a.getNormalMatrix(x),(p===null||p.length<A)&&(p=new Float32Array(A));for(let _=0,v=d;_!==m;++_,v+=4)o.copy(f[_]).applyMatrix4(x,a),o.normal.toArray(p,v),p[v+3]=o.constant}l.value=p,l.needsUpdate=!0}return e.numPlanes=m,e.numIntersection=0,p}}function mC(n){let e=new WeakMap;function t(o,a){return a===sa?o.mapping=is:a===Ah&&(o.mapping=Ys),o}function i(o){if(o&&o.isTexture&&o.isRenderTargetTexture===!1){let a=o.mapping;if(a===sa||a===Ah)if(e.has(o)){let l=e.get(o).texture;return t(l,o.mapping)}else{let l=o.image;if(l&&l.height>0){let c=new vh(l.height/2);return c.fromEquirectangularTexture(n,o),e.set(o,c),o.addEventListener("dispose",s),t(c.texture,o.mapping)}else return null}}return o}function s(o){let a=o.target;a.removeEventListener("dispose",s);let l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function r(){e=new WeakMap}return{get:i,dispose:r}}var Ti=class extends dc{constructor(e=-1,t=1,i=1,s=-1,r=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=s,this.near=r,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,s,r,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=s,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,s=(this.top+this.bottom)/2,r=i-e,o=i+e,a=s+t,l=s-t;if(this.view!==null&&this.view.enabled){let c=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=c*this.view.offsetX,o=r+c*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(r,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}},Ws=4,Dp=[.125,.215,.35,.446,.526,.582],$i=20,rh=new Ti,Lp=new Ee,ah=null,ji=(1+Math.sqrt(5))/2,Gs=1/ji,Fp=[new Q(1,1,1),new Q(-1,1,1),new Q(1,1,-1),new Q(-1,1,-1),new Q(0,ji,Gs),new Q(0,ji,-Gs),new Q(Gs,0,ji),new Q(-Gs,0,ji),new Q(ji,Gs,0),new Q(-ji,Gs,0)],pc=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,s=100){ah=this._renderer.getRenderTarget(),this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,i,s,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Np(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Up(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodPlanes.length;e++)this._lodPlanes[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(ah),e.scissorTest=!1,qo(e,0,0,e.width,e.height)}_fromTexture(e,t){e.mapping===is||e.mapping===Ys?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),ah=this._renderer.getRenderTarget();let i=t||this._allocateTargets();return this._textureToCubeUV(e,i),this._applyPMREM(i),this._cleanup(i),i}_allocateTargets(){let e=3*Math.max(this._cubeSize,112),t=4*this._cubeSize,i={magFilter:ut,minFilter:ut,generateMipmaps:!1,type:Wt,format:Dt,colorSpace:An,depthBuffer:!1},s=Pp(e,t,i);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==t){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=Pp(e,t,i);let{_lodMax:r}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_C(r)),this._blurMaterial=xC(r,e,t)}return s}_compileMaterial(e){let t=new Ft(this._lodPlanes[0],e);this._renderer.compile(t,rh)}_sceneToCubeUV(e,t,i,s){let a=new yt(90,1,t,i),l=[1,-1,1,1,1,1],c=[1,1,1,-1,-1,-1],h=this._renderer,f=h.autoClear,u=h.toneMapping;h.getClearColor(Lp),h.toneMapping=wi,h.autoClear=!1;let d=new mn({name:"PMREM.Background",side:Qt,depthWrite:!1,depthTest:!1}),g=new Ft(new as,d),m=!1,p=e.background;p?p.isColor&&(d.color.copy(p),e.background=null,m=!0):(d.color.copy(Lp),m=!0);for(let A=0;A<6;A++){let x=A%3;x===0?(a.up.set(0,l[A],0),a.lookAt(c[A],0,0)):x===1?(a.up.set(0,0,l[A]),a.lookAt(0,c[A],0)):(a.up.set(0,l[A],0),a.lookAt(0,0,c[A]));let _=this._cubeSize;qo(s,x*_,A>2?_:0,_,_),h.setRenderTarget(s),m&&h.render(g,a),h.render(e,a)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=u,h.autoClear=f,e.background=p}_textureToCubeUV(e,t){let i=this._renderer,s=e.mapping===is||e.mapping===Ys;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=Np()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Up());let r=s?this._cubemapMaterial:this._equirectMaterial,o=new Ft(this._lodPlanes[0],r),a=r.uniforms;a.envMap.value=e;let l=this._cubeSize;qo(t,0,0,3*l,2*l),i.setRenderTarget(t),i.render(o,rh)}_applyPMREM(e){let t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let s=1;s<this._lodPlanes.length;s++){let r=Math.sqrt(this._sigmas[s]*this._sigmas[s]-this._sigmas[s-1]*this._sigmas[s-1]),o=Fp[(s-1)%Fp.length];this._blur(e,s-1,s,r,o)}t.autoClear=i}_blur(e,t,i,s,r){let o=this._pingPongRenderTarget;this._halfBlur(e,o,t,i,s,"latitudinal",r),this._halfBlur(o,e,i,i,s,"longitudinal",r)}_halfBlur(e,t,i,s,r,o,a){let l=this._renderer,c=this._blurMaterial;o!=="latitudinal"&&o!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");let h=3,f=new Ft(this._lodPlanes[s],c),u=c.uniforms,d=this._sizeLods[i]-1,g=isFinite(r)?Math.PI/(2*d):2*Math.PI/(2*$i-1),m=r/g,p=isFinite(r)?1+Math.floor(h*m):$i;p>$i&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${p} samples when the maximum is set to ${$i}`);let A=[],x=0;for(let C=0;C<$i;++C){let M=C/m,E=Math.exp(-M*M/2);A.push(E),C===0?x+=E:C<p&&(x+=2*E)}for(let C=0;C<A.length;C++)A[C]=A[C]/x;u.envMap.value=e.texture,u.samples.value=p,u.weights.value=A,u.latitudinal.value=o==="latitudinal",a&&(u.poleAxis.value=a);let{_lodMax:_}=this;u.dTheta.value=g,u.mipInt.value=_-i;let v=this._sizeLods[s],y=3*v*(s>_-Ws?s-_+Ws:0),S=4*(this._cubeSize-v);qo(t,y,S,3*v,2*v),l.setRenderTarget(t),l.render(f,rh)}};function _C(n){let e=[],t=[],i=[],s=n,r=n-Ws+1+Dp.length;for(let o=0;o<r;o++){let a=Math.pow(2,s);t.push(a);let l=1/a;o>n-Ws?l=Dp[o-n+Ws-1]:o===0&&(l=0),i.push(l);let c=1/(a-2),h=-c,f=1+c,u=[h,h,f,h,f,f,h,h,f,f,h,f],d=6,g=6,m=3,p=2,A=1,x=new Float32Array(m*g*d),_=new Float32Array(p*g*d),v=new Float32Array(A*g*d);for(let S=0;S<d;S++){let C=S%3*2/3-1,M=S>2?0:-1,E=[C,M,0,C+2/3,M,0,C+2/3,M+1,0,C,M,0,C+2/3,M+1,0,C,M+1,0];x.set(E,m*g*S),_.set(u,p*g*S);let b=[S,S,S,S,S,S];v.set(b,A*g*S)}let y=new Yt;y.setAttribute("position",new Ct(x,m)),y.setAttribute("uv",new Ct(_,p)),y.setAttribute("faceIndex",new Ct(v,A)),e.push(y),s>Ws&&s--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function Pp(n,e,t){let i=new pn(n,e,t);return i.texture.mapping=Dc,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function qo(n,e,t,i,s){n.viewport.set(e,t,i,s),n.scissor.set(e,t,i,s)}function xC(n,e,t){let i=new Float32Array($i),s=new Q(0,1,0);return new _n({name:"SphericalGaussianBlur",defines:{n:$i,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:Yh(),fragmentShader:`
3364
+ }`,Qe={alphahash_fragment:PE,alphahash_pars_fragment:UE,alphamap_fragment:NE,alphamap_pars_fragment:OE,alphatest_fragment:kE,alphatest_pars_fragment:QE,aomap_fragment:GE,aomap_pars_fragment:HE,begin_vertex:zE,beginnormal_vertex:VE,bsdfs:WE,iridescence_fragment:KE,bumpmap_pars_fragment:qE,clipping_planes_fragment:XE,clipping_planes_pars_fragment:YE,clipping_planes_pars_vertex:JE,clipping_planes_vertex:ZE,color_fragment:jE,color_pars_fragment:$E,color_pars_vertex:ey,color_vertex:ty,common:ny,cube_uv_reflection_fragment:iy,defaultnormal_vertex:sy,displacementmap_pars_vertex:ry,displacementmap_vertex:ay,emissivemap_fragment:oy,emissivemap_pars_fragment:cy,colorspace_fragment:ly,colorspace_pars_fragment:hy,envmap_fragment:uy,envmap_common_pars_fragment:fy,envmap_pars_fragment:dy,envmap_pars_vertex:Ay,envmap_physical_pars_fragment:Iy,envmap_vertex:py,fog_vertex:gy,fog_pars_vertex:my,fog_fragment:_y,fog_pars_fragment:xy,gradientmap_pars_fragment:vy,lightmap_fragment:Ey,lightmap_pars_fragment:yy,lights_lambert_fragment:Cy,lights_lambert_pars_fragment:Sy,lights_pars_begin:by,lights_toon_fragment:wy,lights_toon_pars_fragment:My,lights_phong_fragment:Ty,lights_phong_pars_fragment:By,lights_physical_fragment:Ry,lights_physical_pars_fragment:Dy,lights_fragment_begin:Ly,lights_fragment_maps:Fy,lights_fragment_end:Py,logdepthbuf_fragment:Uy,logdepthbuf_pars_fragment:Ny,logdepthbuf_pars_vertex:Oy,logdepthbuf_vertex:ky,map_fragment:Qy,map_pars_fragment:Gy,map_particle_fragment:Hy,map_particle_pars_fragment:zy,metalnessmap_fragment:Vy,metalnessmap_pars_fragment:Wy,morphcolor_vertex:Ky,morphnormal_vertex:qy,morphtarget_pars_vertex:Xy,morphtarget_vertex:Yy,normal_fragment_begin:Jy,normal_fragment_maps:Zy,normal_pars_fragment:jy,normal_pars_vertex:$y,normal_vertex:e1,normalmap_pars_fragment:t1,clearcoat_normal_fragment_begin:n1,clearcoat_normal_fragment_maps:i1,clearcoat_pars_fragment:s1,iridescence_pars_fragment:r1,opaque_fragment:a1,packing:o1,premultiplied_alpha_fragment:c1,project_vertex:l1,dithering_fragment:h1,dithering_pars_fragment:u1,roughnessmap_fragment:f1,roughnessmap_pars_fragment:d1,shadowmap_pars_fragment:A1,shadowmap_pars_vertex:p1,shadowmap_vertex:g1,shadowmask_pars_fragment:m1,skinbase_vertex:_1,skinning_pars_vertex:x1,skinning_vertex:v1,skinnormal_vertex:E1,specularmap_fragment:y1,specularmap_pars_fragment:C1,tonemapping_fragment:S1,tonemapping_pars_fragment:b1,transmission_fragment:I1,transmission_pars_fragment:w1,uv_pars_fragment:M1,uv_pars_vertex:T1,uv_vertex:B1,worldpos_vertex:R1,background_vert:D1,background_frag:L1,backgroundCube_vert:F1,backgroundCube_frag:P1,cube_vert:U1,cube_frag:N1,depth_vert:O1,depth_frag:k1,distanceRGBA_vert:Q1,distanceRGBA_frag:G1,equirect_vert:H1,equirect_frag:z1,linedashed_vert:V1,linedashed_frag:W1,meshbasic_vert:K1,meshbasic_frag:q1,meshlambert_vert:X1,meshlambert_frag:Y1,meshmatcap_vert:J1,meshmatcap_frag:Z1,meshnormal_vert:j1,meshnormal_frag:$1,meshphong_vert:eC,meshphong_frag:tC,meshphysical_vert:nC,meshphysical_frag:iC,meshtoon_vert:sC,meshtoon_frag:rC,points_vert:aC,points_frag:oC,shadow_vert:cC,shadow_frag:lC,sprite_vert:hC,sprite_frag:uC},pe={common:{diffuse:{value:new ve(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Ge},alphaMap:{value:null},alphaMapTransform:{value:new Ge},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Ge}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Ge}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Ge}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Ge},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Ge},normalScale:{value:new Ie(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Ge},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Ge}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Ge}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Ge}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new ve(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new ve(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Ge},alphaTest:{value:0},uvTransform:{value:new Ge}},sprite:{diffuse:{value:new ve(16777215)},opacity:{value:1},center:{value:new Ie(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Ge},alphaMap:{value:null},alphaMapTransform:{value:new Ge},alphaTest:{value:0}}},Qn={basic:{uniforms:Vt([pe.common,pe.specularmap,pe.envmap,pe.aomap,pe.lightmap,pe.fog]),vertexShader:Qe.meshbasic_vert,fragmentShader:Qe.meshbasic_frag},lambert:{uniforms:Vt([pe.common,pe.specularmap,pe.envmap,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.fog,pe.lights,{emissive:{value:new ve(0)}}]),vertexShader:Qe.meshlambert_vert,fragmentShader:Qe.meshlambert_frag},phong:{uniforms:Vt([pe.common,pe.specularmap,pe.envmap,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.fog,pe.lights,{emissive:{value:new ve(0)},specular:{value:new ve(1118481)},shininess:{value:30}}]),vertexShader:Qe.meshphong_vert,fragmentShader:Qe.meshphong_frag},standard:{uniforms:Vt([pe.common,pe.envmap,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.roughnessmap,pe.metalnessmap,pe.fog,pe.lights,{emissive:{value:new ve(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Qe.meshphysical_vert,fragmentShader:Qe.meshphysical_frag},toon:{uniforms:Vt([pe.common,pe.aomap,pe.lightmap,pe.emissivemap,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.gradientmap,pe.fog,pe.lights,{emissive:{value:new ve(0)}}]),vertexShader:Qe.meshtoon_vert,fragmentShader:Qe.meshtoon_frag},matcap:{uniforms:Vt([pe.common,pe.bumpmap,pe.normalmap,pe.displacementmap,pe.fog,{matcap:{value:null}}]),vertexShader:Qe.meshmatcap_vert,fragmentShader:Qe.meshmatcap_frag},points:{uniforms:Vt([pe.points,pe.fog]),vertexShader:Qe.points_vert,fragmentShader:Qe.points_frag},dashed:{uniforms:Vt([pe.common,pe.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Qe.linedashed_vert,fragmentShader:Qe.linedashed_frag},depth:{uniforms:Vt([pe.common,pe.displacementmap]),vertexShader:Qe.depth_vert,fragmentShader:Qe.depth_frag},normal:{uniforms:Vt([pe.common,pe.bumpmap,pe.normalmap,pe.displacementmap,{opacity:{value:1}}]),vertexShader:Qe.meshnormal_vert,fragmentShader:Qe.meshnormal_frag},sprite:{uniforms:Vt([pe.sprite,pe.fog]),vertexShader:Qe.sprite_vert,fragmentShader:Qe.sprite_frag},background:{uniforms:{uvTransform:{value:new Ge},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Qe.background_vert,fragmentShader:Qe.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Qe.backgroundCube_vert,fragmentShader:Qe.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Qe.cube_vert,fragmentShader:Qe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Qe.equirect_vert,fragmentShader:Qe.equirect_frag},distanceRGBA:{uniforms:Vt([pe.common,pe.displacementmap,{referencePosition:{value:new Q},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Qe.distanceRGBA_vert,fragmentShader:Qe.distanceRGBA_frag},shadow:{uniforms:Vt([pe.lights,pe.fog,{color:{value:new ve(0)},opacity:{value:1}}]),vertexShader:Qe.shadow_vert,fragmentShader:Qe.shadow_frag}};Qn.physical={uniforms:Vt([Qn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Ge},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Ge},clearcoatNormalScale:{value:new Ie(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Ge},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Ge},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Ge},sheen:{value:0},sheenColor:{value:new ve(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Ge},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Ge},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Ge},transmissionSamplerSize:{value:new Ie},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Ge},attenuationDistance:{value:0},attenuationColor:{value:new ve(0)},specularColor:{value:new ve(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Ge},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Ge},anisotropyVector:{value:new Ie},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Ge}}]),vertexShader:Qe.meshphysical_vert,fragmentShader:Qe.meshphysical_frag};var Ko={r:0,b:0,g:0};function fC(n,e,t,i,s,r,o){let a=new ve(0),l=r===!0?0:1,c,h,f=null,u=0,d=null;function g(p,A){let x=!1,_=A.isScene===!0?A.background:null;switch(_&&_.isTexture&&(_=(A.backgroundBlurriness>0?t:e).get(_)),_===null?m(a,l):_&&_.isColor&&(m(_,1),x=!0),n.xr.getEnvironmentBlendMode()){case"opaque":x=!0;break;case"additive":i.buffers.color.setClear(0,0,0,1,o),x=!0;break;case"alpha-blend":i.buffers.color.setClear(0,0,0,0,o),x=!0;break}(n.autoClear||x)&&n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil),_&&(_.isCubeTexture||_.mapping===Dc)?(h===void 0&&(h=new Ft(new as(1,1,1),new _n({name:"BackgroundCubeMaterial",uniforms:er(Qn.backgroundCube.uniforms),vertexShader:Qn.backgroundCube.vertexShader,fragmentShader:Qn.backgroundCube.fragmentShader,side:Qt,depthTest:!1,depthWrite:!1,fog:!1})),h.geometry.deleteAttribute("normal"),h.geometry.deleteAttribute("uv"),h.onBeforeRender=function(S,C,M){this.matrixWorld.copyPosition(M.matrixWorld)},Object.defineProperty(h.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),s.update(h)),h.material.uniforms.envMap.value=_,h.material.uniforms.flipEnvMap.value=_.isCubeTexture&&_.isRenderTargetTexture===!1?-1:1,h.material.uniforms.backgroundBlurriness.value=A.backgroundBlurriness,h.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,h.material.toneMapped=_.colorSpace!==be,(f!==_||u!==_.version||d!==n.toneMapping)&&(h.material.needsUpdate=!0,f=_,u=_.version,d=n.toneMapping),h.layers.enableAll(),p.unshift(h,h.geometry,h.material,0,0,null)):_&&_.isTexture&&(c===void 0&&(c=new Ft(new os(2,2),new _n({name:"BackgroundMaterial",uniforms:er(Qn.background.uniforms),vertexShader:Qn.background.vertexShader,fragmentShader:Qn.background.fragmentShader,side:zn,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),s.update(c)),c.material.uniforms.t2D.value=_,c.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,c.material.toneMapped=_.colorSpace!==be,_.matrixAutoUpdate===!0&&_.updateMatrix(),c.material.uniforms.uvTransform.value.copy(_.matrix),(f!==_||u!==_.version||d!==n.toneMapping)&&(c.material.needsUpdate=!0,f=_,u=_.version,d=n.toneMapping),c.layers.enableAll(),p.unshift(c,c.geometry,c.material,0,0,null))}function m(p,A){p.getRGB(Ko,U0(n)),i.buffers.color.setClear(Ko.r,Ko.g,Ko.b,A,o)}return{getClearColor:function(){return a},setClearColor:function(p,A=1){a.set(p),l=A,m(a,l)},getClearAlpha:function(){return l},setClearAlpha:function(p){l=p,m(a,l)},render:g}}function dC(n,e,t,i){let s=n.getParameter(n.MAX_VERTEX_ATTRIBS),r=i.isWebGL2?null:e.get("OES_vertex_array_object"),o=i.isWebGL2||r!==null,a={},l=p(null),c=l,h=!1;function f(D,O,K,H,z){let F=!1;if(o){let N=m(H,K,O);c!==N&&(c=N,d(c.object)),F=A(D,H,K,z),F&&x(D,H,K,z)}else{let N=O.wireframe===!0;(c.geometry!==H.id||c.program!==K.id||c.wireframe!==N)&&(c.geometry=H.id,c.program=K.id,c.wireframe=N,F=!0)}z!==null&&t.update(z,n.ELEMENT_ARRAY_BUFFER),(F||h)&&(h=!1,M(D,O,K,H),z!==null&&n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(z).buffer))}function u(){return i.isWebGL2?n.createVertexArray():r.createVertexArrayOES()}function d(D){return i.isWebGL2?n.bindVertexArray(D):r.bindVertexArrayOES(D)}function g(D){return i.isWebGL2?n.deleteVertexArray(D):r.deleteVertexArrayOES(D)}function m(D,O,K){let H=K.wireframe===!0,z=a[D.id];z===void 0&&(z={},a[D.id]=z);let F=z[O.id];F===void 0&&(F={},z[O.id]=F);let N=F[H];return N===void 0&&(N=p(u()),F[H]=N),N}function p(D){let O=[],K=[],H=[];for(let z=0;z<s;z++)O[z]=0,K[z]=0,H[z]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:O,enabledAttributes:K,attributeDivisors:H,object:D,attributes:{},index:null}}function A(D,O,K,H){let z=c.attributes,F=O.attributes,N=0,R=K.getAttributes();for(let L in R)if(R[L].location>=0){let ie=z[L],he=F[L];if(he===void 0&&(L==="instanceMatrix"&&D.instanceMatrix&&(he=D.instanceMatrix),L==="instanceColor"&&D.instanceColor&&(he=D.instanceColor)),ie===void 0||ie.attribute!==he||he&&ie.data!==he.data)return!0;N++}return c.attributesNum!==N||c.index!==H}function x(D,O,K,H){let z={},F=O.attributes,N=0,R=K.getAttributes();for(let L in R)if(R[L].location>=0){let ie=F[L];ie===void 0&&(L==="instanceMatrix"&&D.instanceMatrix&&(ie=D.instanceMatrix),L==="instanceColor"&&D.instanceColor&&(ie=D.instanceColor));let he={};he.attribute=ie,ie&&ie.data&&(he.data=ie.data),z[L]=he,N++}c.attributes=z,c.attributesNum=N,c.index=H}function _(){let D=c.newAttributes;for(let O=0,K=D.length;O<K;O++)D[O]=0}function v(D){y(D,0)}function y(D,O){let K=c.newAttributes,H=c.enabledAttributes,z=c.attributeDivisors;K[D]=1,H[D]===0&&(n.enableVertexAttribArray(D),H[D]=1),z[D]!==O&&((i.isWebGL2?n:e.get("ANGLE_instanced_arrays"))[i.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](D,O),z[D]=O)}function S(){let D=c.newAttributes,O=c.enabledAttributes;for(let K=0,H=O.length;K<H;K++)O[K]!==D[K]&&(n.disableVertexAttribArray(K),O[K]=0)}function C(D,O,K,H,z,F,N){N===!0?n.vertexAttribIPointer(D,O,K,z,F):n.vertexAttribPointer(D,O,K,H,z,F)}function M(D,O,K,H){if(i.isWebGL2===!1&&(D.isInstancedMesh||H.isInstancedBufferGeometry)&&e.get("ANGLE_instanced_arrays")===null)return;_();let z=H.attributes,F=K.getAttributes(),N=O.defaultAttributeValues;for(let R in F){let L=F[R];if(L.location>=0){let ne=z[R];if(ne===void 0&&(R==="instanceMatrix"&&D.instanceMatrix&&(ne=D.instanceMatrix),R==="instanceColor"&&D.instanceColor&&(ne=D.instanceColor)),ne!==void 0){let ie=ne.normalized,he=ne.itemSize,ae=t.get(ne);if(ae===void 0)continue;let we=ae.buffer,xe=ae.type,Ve=ae.bytesPerElement,ft=i.isWebGL2===!0&&(xe===n.INT||xe===n.UNSIGNED_INT||ne.gpuType===C0);if(ne.isInterleavedBufferAttribute){let Ce=ne.data,V=Ce.stride,lt=ne.offset;if(Ce.isInstancedInterleavedBuffer){for(let Ee=0;Ee<L.locationSize;Ee++)y(L.location+Ee,Ce.meshPerAttribute);D.isInstancedMesh!==!0&&H._maxInstanceCount===void 0&&(H._maxInstanceCount=Ce.meshPerAttribute*Ce.count)}else for(let Ee=0;Ee<L.locationSize;Ee++)v(L.location+Ee);n.bindBuffer(n.ARRAY_BUFFER,we);for(let Ee=0;Ee<L.locationSize;Ee++)C(L.location+Ee,he/L.locationSize,xe,ie,V*Ve,(lt+he/L.locationSize*Ee)*Ve,ft)}else{if(ne.isInstancedBufferAttribute){for(let Ce=0;Ce<L.locationSize;Ce++)y(L.location+Ce,ne.meshPerAttribute);D.isInstancedMesh!==!0&&H._maxInstanceCount===void 0&&(H._maxInstanceCount=ne.meshPerAttribute*ne.count)}else for(let Ce=0;Ce<L.locationSize;Ce++)v(L.location+Ce);n.bindBuffer(n.ARRAY_BUFFER,we);for(let Ce=0;Ce<L.locationSize;Ce++)C(L.location+Ce,he/L.locationSize,xe,ie,he*Ve,he/L.locationSize*Ce*Ve,ft)}}else if(N!==void 0){let ie=N[R];if(ie!==void 0)switch(ie.length){case 2:n.vertexAttrib2fv(L.location,ie);break;case 3:n.vertexAttrib3fv(L.location,ie);break;case 4:n.vertexAttrib4fv(L.location,ie);break;default:n.vertexAttrib1fv(L.location,ie)}}}}S()}function E(){G();for(let D in a){let O=a[D];for(let K in O){let H=O[K];for(let z in H)g(H[z].object),delete H[z];delete O[K]}delete a[D]}}function b(D){if(a[D.id]===void 0)return;let O=a[D.id];for(let K in O){let H=O[K];for(let z in H)g(H[z].object),delete H[z];delete O[K]}delete a[D.id]}function w(D){for(let O in a){let K=a[O];if(K[D.id]===void 0)continue;let H=K[D.id];for(let z in H)g(H[z].object),delete H[z];delete K[D.id]}}function G(){U(),h=!0,c!==l&&(c=l,d(c.object))}function U(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:f,reset:G,resetDefaultState:U,dispose:E,releaseStatesOfGeometry:b,releaseStatesOfProgram:w,initAttributes:_,enableAttribute:v,disableUnusedAttributes:S}}function AC(n,e,t,i){let s=i.isWebGL2,r;function o(c){r=c}function a(c,h){n.drawArrays(r,c,h),t.update(h,r,1)}function l(c,h,f){if(f===0)return;let u,d;if(s)u=n,d="drawArraysInstanced";else if(u=e.get("ANGLE_instanced_arrays"),d="drawArraysInstancedANGLE",u===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}u[d](r,c,h,f),t.update(h,r,f)}this.setMode=o,this.render=a,this.renderInstances=l}function pC(n,e,t){let i;function s(){if(i!==void 0)return i;if(e.has("EXT_texture_filter_anisotropic")===!0){let C=e.get("EXT_texture_filter_anisotropic");i=n.getParameter(C.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i}function r(C){if(C==="highp"){if(n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision>0)return"highp";C="mediump"}return C==="mediump"&&n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision>0&&n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let o=typeof WebGL2RenderingContext<"u"&&n.constructor.name==="WebGL2RenderingContext",a=t.precision!==void 0?t.precision:"highp",l=r(a);l!==a&&(console.warn("THREE.WebGLRenderer:",a,"not supported, using",l,"instead."),a=l);let c=o||e.has("WEBGL_draw_buffers"),h=t.logarithmicDepthBuffer===!0,f=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),u=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),d=n.getParameter(n.MAX_TEXTURE_SIZE),g=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),m=n.getParameter(n.MAX_VERTEX_ATTRIBS),p=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),A=n.getParameter(n.MAX_VARYING_VECTORS),x=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),_=u>0,v=o||e.has("OES_texture_float"),y=_&&v,S=o?n.getParameter(n.MAX_SAMPLES):0;return{isWebGL2:o,drawBuffers:c,getMaxAnisotropy:s,getMaxPrecision:r,precision:a,logarithmicDepthBuffer:h,maxTextures:f,maxVertexTextures:u,maxTextureSize:d,maxCubemapSize:g,maxAttributes:m,maxVertexUniforms:p,maxVaryings:A,maxFragmentUniforms:x,vertexTextures:_,floatFragmentTextures:v,floatVertexTextures:y,maxSamples:S}}function gC(n){let e=this,t=null,i=0,s=!1,r=!1,o=new Rn,a=new Ge,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,u){let d=f.length!==0||u||i!==0||s;return s=u,i=f.length,d},this.beginShadows=function(){r=!0,h(null)},this.endShadows=function(){r=!1},this.setGlobalState=function(f,u){t=h(f,u,0)},this.setState=function(f,u,d){let g=f.clippingPlanes,m=f.clipIntersection,p=f.clipShadows,A=n.get(f);if(!s||g===null||g.length===0||r&&!p)r?h(null):c();else{let x=r?0:i,_=x*4,v=A.clippingState||null;l.value=v,v=h(g,u,_,d);for(let y=0;y!==_;++y)v[y]=t[y];A.clippingState=v,this.numIntersection=m?this.numPlanes:0,this.numPlanes+=x}};function c(){l.value!==t&&(l.value=t,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function h(f,u,d,g){let m=f!==null?f.length:0,p=null;if(m!==0){if(p=l.value,g!==!0||p===null){let A=d+m*4,x=u.matrixWorldInverse;a.getNormalMatrix(x),(p===null||p.length<A)&&(p=new Float32Array(A));for(let _=0,v=d;_!==m;++_,v+=4)o.copy(f[_]).applyMatrix4(x,a),o.normal.toArray(p,v),p[v+3]=o.constant}l.value=p,l.needsUpdate=!0}return e.numPlanes=m,e.numIntersection=0,p}}function mC(n){let e=new WeakMap;function t(o,a){return a===sa?o.mapping=is:a===Ah&&(o.mapping=Ys),o}function i(o){if(o&&o.isTexture&&o.isRenderTargetTexture===!1){let a=o.mapping;if(a===sa||a===Ah)if(e.has(o)){let l=e.get(o).texture;return t(l,o.mapping)}else{let l=o.image;if(l&&l.height>0){let c=new vh(l.height/2);return c.fromEquirectangularTexture(n,o),e.set(o,c),o.addEventListener("dispose",s),t(c.texture,o.mapping)}else return null}}return o}function s(o){let a=o.target;a.removeEventListener("dispose",s);let l=e.get(a);l!==void 0&&(e.delete(a),l.dispose())}function r(){e=new WeakMap}return{get:i,dispose:r}}var Ti=class extends dc{constructor(e=-1,t=1,i=1,s=-1,r=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=s,this.near=r,this.far=o,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,t,i,s,r,o){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=s,this.view.width=r,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,s=(this.top+this.bottom)/2,r=i-e,o=i+e,a=s+t,l=s-t;if(this.view!==null&&this.view.enabled){let c=(this.right-this.left)/this.view.fullWidth/this.zoom,h=(this.top-this.bottom)/this.view.fullHeight/this.zoom;r+=c*this.view.offsetX,o=r+c*this.view.width,a-=h*this.view.offsetY,l=a-h*this.view.height}this.projectionMatrix.makeOrthographic(r,o,a,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){let t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,this.view!==null&&(t.object.view=Object.assign({},this.view)),t}},Ws=4,Dp=[.125,.215,.35,.446,.526,.582],$i=20,rh=new Ti,Lp=new ve,ah=null,ji=(1+Math.sqrt(5))/2,Gs=1/ji,Fp=[new Q(1,1,1),new Q(-1,1,1),new Q(1,1,-1),new Q(-1,1,-1),new Q(0,ji,Gs),new Q(0,ji,-Gs),new Q(Gs,0,ji),new Q(-Gs,0,ji),new Q(ji,Gs,0),new Q(-ji,Gs,0)],pc=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,t=0,i=.1,s=100){ah=this._renderer.getRenderTarget(),this._setSize(256);let r=this._allocateTargets();return r.depthBuffer=!0,this._sceneToCubeUV(e,i,s,r),t>0&&this._blur(r,0,0,t),this._applyPMREM(r),this._cleanup(r),r}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Np(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Up(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodPlanes.length;e++)this._lodPlanes[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(ah),e.scissorTest=!1,qo(e,0,0,e.width,e.height)}_fromTexture(e,t){e.mapping===is||e.mapping===Ys?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),ah=this._renderer.getRenderTarget();let i=t||this._allocateTargets();return this._textureToCubeUV(e,i),this._applyPMREM(i),this._cleanup(i),i}_allocateTargets(){let e=3*Math.max(this._cubeSize,112),t=4*this._cubeSize,i={magFilter:ut,minFilter:ut,generateMipmaps:!1,type:Wt,format:Dt,colorSpace:An,depthBuffer:!1},s=Pp(e,t,i);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==t){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=Pp(e,t,i);let{_lodMax:r}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=_C(r)),this._blurMaterial=xC(r,e,t)}return s}_compileMaterial(e){let t=new Ft(this._lodPlanes[0],e);this._renderer.compile(t,rh)}_sceneToCubeUV(e,t,i,s){let a=new Ct(90,1,t,i),l=[1,-1,1,1,1,1],c=[1,1,1,-1,-1,-1],h=this._renderer,f=h.autoClear,u=h.toneMapping;h.getClearColor(Lp),h.toneMapping=wi,h.autoClear=!1;let d=new mn({name:"PMREM.Background",side:Qt,depthWrite:!1,depthTest:!1}),g=new Ft(new as,d),m=!1,p=e.background;p?p.isColor&&(d.color.copy(p),e.background=null,m=!0):(d.color.copy(Lp),m=!0);for(let A=0;A<6;A++){let x=A%3;x===0?(a.up.set(0,l[A],0),a.lookAt(c[A],0,0)):x===1?(a.up.set(0,0,l[A]),a.lookAt(0,c[A],0)):(a.up.set(0,l[A],0),a.lookAt(0,0,c[A]));let _=this._cubeSize;qo(s,x*_,A>2?_:0,_,_),h.setRenderTarget(s),m&&h.render(g,a),h.render(e,a)}g.geometry.dispose(),g.material.dispose(),h.toneMapping=u,h.autoClear=f,e.background=p}_textureToCubeUV(e,t){let i=this._renderer,s=e.mapping===is||e.mapping===Ys;s?(this._cubemapMaterial===null&&(this._cubemapMaterial=Np()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Up());let r=s?this._cubemapMaterial:this._equirectMaterial,o=new Ft(this._lodPlanes[0],r),a=r.uniforms;a.envMap.value=e;let l=this._cubeSize;qo(t,0,0,3*l,2*l),i.setRenderTarget(t),i.render(o,rh)}_applyPMREM(e){let t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let s=1;s<this._lodPlanes.length;s++){let r=Math.sqrt(this._sigmas[s]*this._sigmas[s]-this._sigmas[s-1]*this._sigmas[s-1]),o=Fp[(s-1)%Fp.length];this._blur(e,s-1,s,r,o)}t.autoClear=i}_blur(e,t,i,s,r){let o=this._pingPongRenderTarget;this._halfBlur(e,o,t,i,s,"latitudinal",r),this._halfBlur(o,e,i,i,s,"longitudinal",r)}_halfBlur(e,t,i,s,r,o,a){let l=this._renderer,c=this._blurMaterial;o!=="latitudinal"&&o!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");let h=3,f=new Ft(this._lodPlanes[s],c),u=c.uniforms,d=this._sizeLods[i]-1,g=isFinite(r)?Math.PI/(2*d):2*Math.PI/(2*$i-1),m=r/g,p=isFinite(r)?1+Math.floor(h*m):$i;p>$i&&console.warn(`sigmaRadians, ${r}, is too large and will clip, as it requested ${p} samples when the maximum is set to ${$i}`);let A=[],x=0;for(let C=0;C<$i;++C){let M=C/m,E=Math.exp(-M*M/2);A.push(E),C===0?x+=E:C<p&&(x+=2*E)}for(let C=0;C<A.length;C++)A[C]=A[C]/x;u.envMap.value=e.texture,u.samples.value=p,u.weights.value=A,u.latitudinal.value=o==="latitudinal",a&&(u.poleAxis.value=a);let{_lodMax:_}=this;u.dTheta.value=g,u.mipInt.value=_-i;let v=this._sizeLods[s],y=3*v*(s>_-Ws?s-_+Ws:0),S=4*(this._cubeSize-v);qo(t,y,S,3*v,2*v),l.setRenderTarget(t),l.render(f,rh)}};function _C(n){let e=[],t=[],i=[],s=n,r=n-Ws+1+Dp.length;for(let o=0;o<r;o++){let a=Math.pow(2,s);t.push(a);let l=1/a;o>n-Ws?l=Dp[o-n+Ws-1]:o===0&&(l=0),i.push(l);let c=1/(a-2),h=-c,f=1+c,u=[h,h,f,h,f,f,h,h,f,f,h,f],d=6,g=6,m=3,p=2,A=1,x=new Float32Array(m*g*d),_=new Float32Array(p*g*d),v=new Float32Array(A*g*d);for(let S=0;S<d;S++){let C=S%3*2/3-1,M=S>2?0:-1,E=[C,M,0,C+2/3,M,0,C+2/3,M+1,0,C,M,0,C+2/3,M+1,0,C,M+1,0];x.set(E,m*g*S),_.set(u,p*g*S);let b=[S,S,S,S,S,S];v.set(b,A*g*S)}let y=new Yt;y.setAttribute("position",new St(x,m)),y.setAttribute("uv",new St(_,p)),y.setAttribute("faceIndex",new St(v,A)),e.push(y),s>Ws&&s--}return{lodPlanes:e,sizeLods:t,sigmas:i}}function Pp(n,e,t){let i=new pn(n,e,t);return i.texture.mapping=Dc,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function qo(n,e,t,i,s){n.viewport.set(e,t,i,s),n.scissor.set(e,t,i,s)}function xC(n,e,t){let i=new Float32Array($i),s=new Q(0,1,0);return new _n({name:"SphericalGaussianBlur",defines:{n:$i,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/t,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:s}},vertexShader:Yh(),fragmentShader:`
3365
3365
 
3366
3366
  precision mediump float;
3367
3367
  precision mediump int;
@@ -3511,7 +3511,7 @@ void main() {
3511
3511
  gl_Position = vec4( position, 1.0 );
3512
3512
 
3513
3513
  }
3514
- `}function vC(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){let l=a.mapping,c=l===sa||l===Ah,h=l===is||l===Ys;if(c||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=e.get(a);return t===null&&(t=new pc(n)),f=c?t.fromEquirectangular(a,f):t.fromCubemap(a,f),e.set(a,f),f.texture}else{if(e.has(a))return e.get(a).texture;{let f=a.image;if(c&&f&&f.height>0||h&&f&&s(f)){t===null&&(t=new pc(n));let u=c?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,u),a.addEventListener("dispose",r),u.texture}else return null}}}return a}function s(a){let l=0,c=6;for(let h=0;h<c;h++)a[h]!==void 0&&l++;return l===c}function r(a){let l=a.target;l.removeEventListener("dispose",r);let c=e.get(l);c!==void 0&&(e.delete(l),c.dispose())}function o(){e=new WeakMap,t!==null&&(t.dispose(),t=null)}return{get:i,dispose:o}}function EC(n){let e={};function t(i){if(e[i]!==void 0)return e[i];let s;switch(i){case"WEBGL_depth_texture":s=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":s=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":s=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:s=n.getExtension(i)}return e[i]=s,s}return{has:function(i){return t(i)!==null},init:function(i){i.isWebGL2?t("EXT_color_buffer_float"):(t("WEBGL_depth_texture"),t("OES_texture_float"),t("OES_texture_half_float"),t("OES_texture_half_float_linear"),t("OES_standard_derivatives"),t("OES_element_index_uint"),t("OES_vertex_array_object"),t("ANGLE_instanced_arrays")),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture")},get:function(i){let s=t(i);return s===null&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),s}}}function yC(n,e,t,i){let s={},r=new WeakMap;function o(f){let u=f.target;u.index!==null&&e.remove(u.index);for(let g in u.attributes)e.remove(u.attributes[g]);for(let g in u.morphAttributes){let m=u.morphAttributes[g];for(let p=0,A=m.length;p<A;p++)e.remove(m[p])}u.removeEventListener("dispose",o),delete s[u.id];let d=r.get(u);d&&(e.remove(d),r.delete(u)),i.releaseStatesOfGeometry(u),u.isInstancedBufferGeometry===!0&&delete u._maxInstanceCount,t.memory.geometries--}function a(f,u){return s[u.id]===!0||(u.addEventListener("dispose",o),s[u.id]=!0,t.memory.geometries++),u}function l(f){let u=f.attributes;for(let g in u)e.update(u[g],n.ARRAY_BUFFER);let d=f.morphAttributes;for(let g in d){let m=d[g];for(let p=0,A=m.length;p<A;p++)e.update(m[p],n.ARRAY_BUFFER)}}function c(f){let u=[],d=f.index,g=f.attributes.position,m=0;if(d!==null){let x=d.array;m=d.version;for(let _=0,v=x.length;_<v;_+=3){let y=x[_+0],S=x[_+1],C=x[_+2];u.push(y,S,S,C,C,y)}}else if(g!==void 0){let x=g.array;m=g.version;for(let _=0,v=x.length/3-1;_<v;_+=3){let y=_+0,S=_+1,C=_+2;u.push(y,S,S,C,C,y)}}else return;let p=new(F0(u)?fc:uc)(u,1);p.version=m;let A=r.get(f);A&&e.remove(A),r.set(f,p)}function h(f){let u=r.get(f);if(u){let d=f.index;d!==null&&u.version<d.version&&c(f)}else c(f);return r.get(f)}return{get:a,update:l,getWireframeAttribute:h}}function CC(n,e,t,i){let s=i.isWebGL2,r;function o(u){r=u}let a,l;function c(u){a=u.type,l=u.bytesPerElement}function h(u,d){n.drawElements(r,d,a,u*l),t.update(d,r,1)}function f(u,d,g){if(g===0)return;let m,p;if(s)m=n,p="drawElementsInstanced";else if(m=e.get("ANGLE_instanced_arrays"),p="drawElementsInstancedANGLE",m===null){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}m[p](r,d,a,u*l,g),t.update(d,r,g)}this.setMode=o,this.setIndex=c,this.render=h,this.renderInstances=f}function SC(n){let e={geometries:0,textures:0},t={frame:0,calls:0,triangles:0,points:0,lines:0};function i(r,o,a){switch(t.calls++,o){case n.TRIANGLES:t.triangles+=a*(r/3);break;case n.LINES:t.lines+=a*(r/2);break;case n.LINE_STRIP:t.lines+=a*(r-1);break;case n.LINE_LOOP:t.lines+=a*r;break;case n.POINTS:t.points+=a*r;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",o);break}}function s(){t.calls=0,t.triangles=0,t.points=0,t.lines=0}return{memory:e,render:t,programs:null,autoReset:!0,reset:s,update:i}}function bC(n,e){return n[0]-e[0]}function IC(n,e){return Math.abs(e[1])-Math.abs(n[1])}function wC(n,e,t){let i={},s=new Float32Array(8),r=new WeakMap,o=new tt,a=[];for(let c=0;c<8;c++)a[c]=[c,0];function l(c,h,f){let u=c.morphTargetInfluences;if(e.isWebGL2===!0){let d=h.morphAttributes.position||h.morphAttributes.normal||h.morphAttributes.color,g=d!==void 0?d.length:0,m=r.get(h);if(m===void 0||m.count!==g){let D=function(){G.dispose(),r.delete(h),h.removeEventListener("dispose",D)};m!==void 0&&m.texture.dispose();let x=h.morphAttributes.position!==void 0,_=h.morphAttributes.normal!==void 0,v=h.morphAttributes.color!==void 0,y=h.morphAttributes.position||[],S=h.morphAttributes.normal||[],C=h.morphAttributes.color||[],M=0;x===!0&&(M=1),_===!0&&(M=2),v===!0&&(M=3);let E=h.attributes.position.count*M,b=1;E>e.maxTextureSize&&(b=Math.ceil(E/e.maxTextureSize),E=e.maxTextureSize);let w=new Float32Array(E*b*4*g),G=new lc(w,E,b,g);G.type=Lt,G.needsUpdate=!0;let U=M*4;for(let O=0;O<g;O++){let K=y[O],H=S[O],z=C[O],F=E*b*4*O;for(let N=0;N<K.count;N++){let R=N*U;x===!0&&(o.fromBufferAttribute(K,N),w[F+R+0]=o.x,w[F+R+1]=o.y,w[F+R+2]=o.z,w[F+R+3]=0),_===!0&&(o.fromBufferAttribute(H,N),w[F+R+4]=o.x,w[F+R+5]=o.y,w[F+R+6]=o.z,w[F+R+7]=0),v===!0&&(o.fromBufferAttribute(z,N),w[F+R+8]=o.x,w[F+R+9]=o.y,w[F+R+10]=o.z,w[F+R+11]=z.itemSize===4?o.w:1)}}m={count:g,texture:G,size:new Ie(E,b)},r.set(h,m),h.addEventListener("dispose",D)}let p=0;for(let x=0;x<u.length;x++)p+=u[x];let A=h.morphTargetsRelative?1:1-p;f.getUniforms().setValue(n,"morphTargetBaseInfluence",A),f.getUniforms().setValue(n,"morphTargetInfluences",u),f.getUniforms().setValue(n,"morphTargetsTexture",m.texture,t),f.getUniforms().setValue(n,"morphTargetsTextureSize",m.size)}else{let d=u===void 0?0:u.length,g=i[h.id];if(g===void 0||g.length!==d){g=[];for(let _=0;_<d;_++)g[_]=[_,0];i[h.id]=g}for(let _=0;_<d;_++){let v=g[_];v[0]=_,v[1]=u[_]}g.sort(IC);for(let _=0;_<8;_++)_<d&&g[_][1]?(a[_][0]=g[_][0],a[_][1]=g[_][1]):(a[_][0]=Number.MAX_SAFE_INTEGER,a[_][1]=0);a.sort(bC);let m=h.morphAttributes.position,p=h.morphAttributes.normal,A=0;for(let _=0;_<8;_++){let v=a[_],y=v[0],S=v[1];y!==Number.MAX_SAFE_INTEGER&&S?(m&&h.getAttribute("morphTarget"+_)!==m[y]&&h.setAttribute("morphTarget"+_,m[y]),p&&h.getAttribute("morphNormal"+_)!==p[y]&&h.setAttribute("morphNormal"+_,p[y]),s[_]=S,A+=S):(m&&h.hasAttribute("morphTarget"+_)===!0&&h.deleteAttribute("morphTarget"+_),p&&h.hasAttribute("morphNormal"+_)===!0&&h.deleteAttribute("morphNormal"+_),s[_]=0)}let x=h.morphTargetsRelative?1:1-A;f.getUniforms().setValue(n,"morphTargetBaseInfluence",x),f.getUniforms().setValue(n,"morphTargetInfluences",s)}}return{update:l}}function MC(n,e,t,i){let s=new WeakMap;function r(l){let c=i.render.frame,h=l.geometry,f=e.get(l,h);if(s.get(f)!==c&&(e.update(f),s.set(f,c)),l.isInstancedMesh&&(l.hasEventListener("dispose",a)===!1&&l.addEventListener("dispose",a),s.get(l)!==c&&(t.update(l.instanceMatrix,n.ARRAY_BUFFER),l.instanceColor!==null&&t.update(l.instanceColor,n.ARRAY_BUFFER),s.set(l,c))),l.isSkinnedMesh){let u=l.skeleton;s.get(u)!==c&&(u.update(),s.set(u,c))}return f}function o(){s=new WeakMap}function a(l){let c=l.target;c.removeEventListener("dispose",a),t.remove(c.instanceMatrix),c.instanceColor!==null&&t.remove(c.instanceColor)}return{update:r,dispose:o}}var O0=new gt,k0=new lc,Q0=new oa,G0=new Ac,Op=[],kp=[],Qp=new Float32Array(16),Gp=new Float32Array(9),Hp=new Float32Array(4);function hr(n,e,t){let i=n[0];if(i<=0||i>0)return n;let s=e*t,r=Op[s];if(r===void 0&&(r=new Float32Array(s),Op[s]=r),e!==0){i.toArray(r,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(r,a)}return r}function St(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t<i;t++)if(n[t]!==e[t])return!1;return!0}function bt(n,e){for(let t=0,i=e.length;t<i;t++)n[t]=e[t]}function Pc(n,e){let t=kp[e];t===void 0&&(t=new Int32Array(e),kp[e]=t);for(let i=0;i!==e;++i)t[i]=n.allocateTextureUnit();return t}function TC(n,e){let t=this.cache;t[0]!==e&&(n.uniform1f(this.addr,e),t[0]=e)}function BC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2f(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(St(t,e))return;n.uniform2fv(this.addr,e),bt(t,e)}}function RC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3f(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else if(e.r!==void 0)(t[0]!==e.r||t[1]!==e.g||t[2]!==e.b)&&(n.uniform3f(this.addr,e.r,e.g,e.b),t[0]=e.r,t[1]=e.g,t[2]=e.b);else{if(St(t,e))return;n.uniform3fv(this.addr,e),bt(t,e)}}function DC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4f(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(St(t,e))return;n.uniform4fv(this.addr,e),bt(t,e)}}function LC(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(St(t,e))return;n.uniformMatrix2fv(this.addr,!1,e),bt(t,e)}else{if(St(t,i))return;Hp.set(i),n.uniformMatrix2fv(this.addr,!1,Hp),bt(t,i)}}function FC(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(St(t,e))return;n.uniformMatrix3fv(this.addr,!1,e),bt(t,e)}else{if(St(t,i))return;Gp.set(i),n.uniformMatrix3fv(this.addr,!1,Gp),bt(t,i)}}function PC(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(St(t,e))return;n.uniformMatrix4fv(this.addr,!1,e),bt(t,e)}else{if(St(t,i))return;Qp.set(i),n.uniformMatrix4fv(this.addr,!1,Qp),bt(t,i)}}function UC(n,e){let t=this.cache;t[0]!==e&&(n.uniform1i(this.addr,e),t[0]=e)}function NC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2i(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(St(t,e))return;n.uniform2iv(this.addr,e),bt(t,e)}}function OC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3i(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(St(t,e))return;n.uniform3iv(this.addr,e),bt(t,e)}}function kC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4i(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(St(t,e))return;n.uniform4iv(this.addr,e),bt(t,e)}}function QC(n,e){let t=this.cache;t[0]!==e&&(n.uniform1ui(this.addr,e),t[0]=e)}function GC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2ui(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(St(t,e))return;n.uniform2uiv(this.addr,e),bt(t,e)}}function HC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3ui(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(St(t,e))return;n.uniform3uiv(this.addr,e),bt(t,e)}}function zC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4ui(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(St(t,e))return;n.uniform4uiv(this.addr,e),bt(t,e)}}function VC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTexture2D(e||O0,s)}function WC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTexture3D(e||Q0,s)}function KC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTextureCube(e||G0,s)}function qC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTexture2DArray(e||k0,s)}function XC(n){switch(n){case 5126:return TC;case 35664:return BC;case 35665:return RC;case 35666:return DC;case 35674:return LC;case 35675:return FC;case 35676:return PC;case 5124:case 35670:return UC;case 35667:case 35671:return NC;case 35668:case 35672:return OC;case 35669:case 35673:return kC;case 5125:return QC;case 36294:return GC;case 36295:return HC;case 36296:return zC;case 35678:case 36198:case 36298:case 36306:case 35682:return VC;case 35679:case 36299:case 36307:return WC;case 35680:case 36300:case 36308:case 36293:return KC;case 36289:case 36303:case 36311:case 36292:return qC}}function YC(n,e){n.uniform1fv(this.addr,e)}function JC(n,e){let t=hr(e,this.size,2);n.uniform2fv(this.addr,t)}function ZC(n,e){let t=hr(e,this.size,3);n.uniform3fv(this.addr,t)}function jC(n,e){let t=hr(e,this.size,4);n.uniform4fv(this.addr,t)}function $C(n,e){let t=hr(e,this.size,4);n.uniformMatrix2fv(this.addr,!1,t)}function eS(n,e){let t=hr(e,this.size,9);n.uniformMatrix3fv(this.addr,!1,t)}function tS(n,e){let t=hr(e,this.size,16);n.uniformMatrix4fv(this.addr,!1,t)}function nS(n,e){n.uniform1iv(this.addr,e)}function iS(n,e){n.uniform2iv(this.addr,e)}function sS(n,e){n.uniform3iv(this.addr,e)}function rS(n,e){n.uniform4iv(this.addr,e)}function aS(n,e){n.uniform1uiv(this.addr,e)}function oS(n,e){n.uniform2uiv(this.addr,e)}function cS(n,e){n.uniform3uiv(this.addr,e)}function lS(n,e){n.uniform4uiv(this.addr,e)}function hS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);St(i,r)||(n.uniform1iv(this.addr,r),bt(i,r));for(let o=0;o!==s;++o)t.setTexture2D(e[o]||O0,r[o])}function uS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);St(i,r)||(n.uniform1iv(this.addr,r),bt(i,r));for(let o=0;o!==s;++o)t.setTexture3D(e[o]||Q0,r[o])}function fS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);St(i,r)||(n.uniform1iv(this.addr,r),bt(i,r));for(let o=0;o!==s;++o)t.setTextureCube(e[o]||G0,r[o])}function dS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);St(i,r)||(n.uniform1iv(this.addr,r),bt(i,r));for(let o=0;o!==s;++o)t.setTexture2DArray(e[o]||k0,r[o])}function AS(n){switch(n){case 5126:return YC;case 35664:return JC;case 35665:return ZC;case 35666:return jC;case 35674:return $C;case 35675:return eS;case 35676:return tS;case 5124:case 35670:return nS;case 35667:case 35671:return iS;case 35668:case 35672:return sS;case 35669:case 35673:return rS;case 5125:return aS;case 36294:return oS;case 36295:return cS;case 36296:return lS;case 35678:case 36198:case 36298:case 36306:case 35682:return hS;case 35679:case 36299:case 36307:return uS;case 35680:case 36300:case 36308:case 36293:return fS;case 36289:case 36303:case 36311:case 36292:return dS}}var Eh=class{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.setValue=XC(t.type)}},yh=class{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.size=t.size,this.setValue=AS(t.type)}},Ch=class{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,t,i){let s=this.seq;for(let r=0,o=s.length;r!==o;++r){let a=s[r];a.setValue(e,t[a.id],i)}}},oh=/(\w+)(\])?(\[|\.)?/g;function zp(n,e){n.seq.push(e),n.map[e.id]=e}function pS(n,e,t){let i=n.name,s=i.length;for(oh.lastIndex=0;;){let r=oh.exec(i),o=oh.lastIndex,a=r[1],l=r[2]==="]",c=r[3];if(l&&(a=a|0),c===void 0||c==="["&&o+2===s){zp(t,c===void 0?new Eh(a,n,e):new yh(a,n,e));break}else{let f=t.map[a];f===void 0&&(f=new Ch(a),zp(t,f)),t=f}}}var Xs=class{constructor(e,t){this.seq=[],this.map={};let i=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<i;++s){let r=e.getActiveUniform(t,s),o=e.getUniformLocation(t,r.name);pS(r,o,this)}}setValue(e,t,i,s){let r=this.map[t];r!==void 0&&r.setValue(e,i,s)}setOptional(e,t,i){let s=t[i];s!==void 0&&this.setValue(e,i,s)}static upload(e,t,i,s){for(let r=0,o=t.length;r!==o;++r){let a=t[r],l=i[a.id];l.needsUpdate!==!1&&a.setValue(e,l.value,s)}}static seqWithValue(e,t){let i=[];for(let s=0,r=e.length;s!==r;++s){let o=e[s];o.id in t&&i.push(o)}return i}};function Vp(n,e,t){let i=n.createShader(e);return n.shaderSource(i,t),n.compileShader(i),i}var gS=0;function mS(n,e){let t=n.split(`
3514
+ `}function vC(n){let e=new WeakMap,t=null;function i(a){if(a&&a.isTexture){let l=a.mapping,c=l===sa||l===Ah,h=l===is||l===Ys;if(c||h)if(a.isRenderTargetTexture&&a.needsPMREMUpdate===!0){a.needsPMREMUpdate=!1;let f=e.get(a);return t===null&&(t=new pc(n)),f=c?t.fromEquirectangular(a,f):t.fromCubemap(a,f),e.set(a,f),f.texture}else{if(e.has(a))return e.get(a).texture;{let f=a.image;if(c&&f&&f.height>0||h&&f&&s(f)){t===null&&(t=new pc(n));let u=c?t.fromEquirectangular(a):t.fromCubemap(a);return e.set(a,u),a.addEventListener("dispose",r),u.texture}else return null}}}return a}function s(a){let l=0,c=6;for(let h=0;h<c;h++)a[h]!==void 0&&l++;return l===c}function r(a){let l=a.target;l.removeEventListener("dispose",r);let c=e.get(l);c!==void 0&&(e.delete(l),c.dispose())}function o(){e=new WeakMap,t!==null&&(t.dispose(),t=null)}return{get:i,dispose:o}}function EC(n){let e={};function t(i){if(e[i]!==void 0)return e[i];let s;switch(i){case"WEBGL_depth_texture":s=n.getExtension("WEBGL_depth_texture")||n.getExtension("MOZ_WEBGL_depth_texture")||n.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":s=n.getExtension("EXT_texture_filter_anisotropic")||n.getExtension("MOZ_EXT_texture_filter_anisotropic")||n.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":s=n.getExtension("WEBGL_compressed_texture_s3tc")||n.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":s=n.getExtension("WEBGL_compressed_texture_pvrtc")||n.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:s=n.getExtension(i)}return e[i]=s,s}return{has:function(i){return t(i)!==null},init:function(i){i.isWebGL2?t("EXT_color_buffer_float"):(t("WEBGL_depth_texture"),t("OES_texture_float"),t("OES_texture_half_float"),t("OES_texture_half_float_linear"),t("OES_standard_derivatives"),t("OES_element_index_uint"),t("OES_vertex_array_object"),t("ANGLE_instanced_arrays")),t("OES_texture_float_linear"),t("EXT_color_buffer_half_float"),t("WEBGL_multisampled_render_to_texture")},get:function(i){let s=t(i);return s===null&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),s}}}function yC(n,e,t,i){let s={},r=new WeakMap;function o(f){let u=f.target;u.index!==null&&e.remove(u.index);for(let g in u.attributes)e.remove(u.attributes[g]);for(let g in u.morphAttributes){let m=u.morphAttributes[g];for(let p=0,A=m.length;p<A;p++)e.remove(m[p])}u.removeEventListener("dispose",o),delete s[u.id];let d=r.get(u);d&&(e.remove(d),r.delete(u)),i.releaseStatesOfGeometry(u),u.isInstancedBufferGeometry===!0&&delete u._maxInstanceCount,t.memory.geometries--}function a(f,u){return s[u.id]===!0||(u.addEventListener("dispose",o),s[u.id]=!0,t.memory.geometries++),u}function l(f){let u=f.attributes;for(let g in u)e.update(u[g],n.ARRAY_BUFFER);let d=f.morphAttributes;for(let g in d){let m=d[g];for(let p=0,A=m.length;p<A;p++)e.update(m[p],n.ARRAY_BUFFER)}}function c(f){let u=[],d=f.index,g=f.attributes.position,m=0;if(d!==null){let x=d.array;m=d.version;for(let _=0,v=x.length;_<v;_+=3){let y=x[_+0],S=x[_+1],C=x[_+2];u.push(y,S,S,C,C,y)}}else if(g!==void 0){let x=g.array;m=g.version;for(let _=0,v=x.length/3-1;_<v;_+=3){let y=_+0,S=_+1,C=_+2;u.push(y,S,S,C,C,y)}}else return;let p=new(F0(u)?fc:uc)(u,1);p.version=m;let A=r.get(f);A&&e.remove(A),r.set(f,p)}function h(f){let u=r.get(f);if(u){let d=f.index;d!==null&&u.version<d.version&&c(f)}else c(f);return r.get(f)}return{get:a,update:l,getWireframeAttribute:h}}function CC(n,e,t,i){let s=i.isWebGL2,r;function o(u){r=u}let a,l;function c(u){a=u.type,l=u.bytesPerElement}function h(u,d){n.drawElements(r,d,a,u*l),t.update(d,r,1)}function f(u,d,g){if(g===0)return;let m,p;if(s)m=n,p="drawElementsInstanced";else if(m=e.get("ANGLE_instanced_arrays"),p="drawElementsInstancedANGLE",m===null){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}m[p](r,d,a,u*l,g),t.update(d,r,g)}this.setMode=o,this.setIndex=c,this.render=h,this.renderInstances=f}function SC(n){let e={geometries:0,textures:0},t={frame:0,calls:0,triangles:0,points:0,lines:0};function i(r,o,a){switch(t.calls++,o){case n.TRIANGLES:t.triangles+=a*(r/3);break;case n.LINES:t.lines+=a*(r/2);break;case n.LINE_STRIP:t.lines+=a*(r-1);break;case n.LINE_LOOP:t.lines+=a*r;break;case n.POINTS:t.points+=a*r;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",o);break}}function s(){t.calls=0,t.triangles=0,t.points=0,t.lines=0}return{memory:e,render:t,programs:null,autoReset:!0,reset:s,update:i}}function bC(n,e){return n[0]-e[0]}function IC(n,e){return Math.abs(e[1])-Math.abs(n[1])}function wC(n,e,t){let i={},s=new Float32Array(8),r=new WeakMap,o=new tt,a=[];for(let c=0;c<8;c++)a[c]=[c,0];function l(c,h,f){let u=c.morphTargetInfluences;if(e.isWebGL2===!0){let d=h.morphAttributes.position||h.morphAttributes.normal||h.morphAttributes.color,g=d!==void 0?d.length:0,m=r.get(h);if(m===void 0||m.count!==g){let D=function(){G.dispose(),r.delete(h),h.removeEventListener("dispose",D)};m!==void 0&&m.texture.dispose();let x=h.morphAttributes.position!==void 0,_=h.morphAttributes.normal!==void 0,v=h.morphAttributes.color!==void 0,y=h.morphAttributes.position||[],S=h.morphAttributes.normal||[],C=h.morphAttributes.color||[],M=0;x===!0&&(M=1),_===!0&&(M=2),v===!0&&(M=3);let E=h.attributes.position.count*M,b=1;E>e.maxTextureSize&&(b=Math.ceil(E/e.maxTextureSize),E=e.maxTextureSize);let w=new Float32Array(E*b*4*g),G=new lc(w,E,b,g);G.type=Lt,G.needsUpdate=!0;let U=M*4;for(let O=0;O<g;O++){let K=y[O],H=S[O],z=C[O],F=E*b*4*O;for(let N=0;N<K.count;N++){let R=N*U;x===!0&&(o.fromBufferAttribute(K,N),w[F+R+0]=o.x,w[F+R+1]=o.y,w[F+R+2]=o.z,w[F+R+3]=0),_===!0&&(o.fromBufferAttribute(H,N),w[F+R+4]=o.x,w[F+R+5]=o.y,w[F+R+6]=o.z,w[F+R+7]=0),v===!0&&(o.fromBufferAttribute(z,N),w[F+R+8]=o.x,w[F+R+9]=o.y,w[F+R+10]=o.z,w[F+R+11]=z.itemSize===4?o.w:1)}}m={count:g,texture:G,size:new Ie(E,b)},r.set(h,m),h.addEventListener("dispose",D)}let p=0;for(let x=0;x<u.length;x++)p+=u[x];let A=h.morphTargetsRelative?1:1-p;f.getUniforms().setValue(n,"morphTargetBaseInfluence",A),f.getUniforms().setValue(n,"morphTargetInfluences",u),f.getUniforms().setValue(n,"morphTargetsTexture",m.texture,t),f.getUniforms().setValue(n,"morphTargetsTextureSize",m.size)}else{let d=u===void 0?0:u.length,g=i[h.id];if(g===void 0||g.length!==d){g=[];for(let _=0;_<d;_++)g[_]=[_,0];i[h.id]=g}for(let _=0;_<d;_++){let v=g[_];v[0]=_,v[1]=u[_]}g.sort(IC);for(let _=0;_<8;_++)_<d&&g[_][1]?(a[_][0]=g[_][0],a[_][1]=g[_][1]):(a[_][0]=Number.MAX_SAFE_INTEGER,a[_][1]=0);a.sort(bC);let m=h.morphAttributes.position,p=h.morphAttributes.normal,A=0;for(let _=0;_<8;_++){let v=a[_],y=v[0],S=v[1];y!==Number.MAX_SAFE_INTEGER&&S?(m&&h.getAttribute("morphTarget"+_)!==m[y]&&h.setAttribute("morphTarget"+_,m[y]),p&&h.getAttribute("morphNormal"+_)!==p[y]&&h.setAttribute("morphNormal"+_,p[y]),s[_]=S,A+=S):(m&&h.hasAttribute("morphTarget"+_)===!0&&h.deleteAttribute("morphTarget"+_),p&&h.hasAttribute("morphNormal"+_)===!0&&h.deleteAttribute("morphNormal"+_),s[_]=0)}let x=h.morphTargetsRelative?1:1-A;f.getUniforms().setValue(n,"morphTargetBaseInfluence",x),f.getUniforms().setValue(n,"morphTargetInfluences",s)}}return{update:l}}function MC(n,e,t,i){let s=new WeakMap;function r(l){let c=i.render.frame,h=l.geometry,f=e.get(l,h);if(s.get(f)!==c&&(e.update(f),s.set(f,c)),l.isInstancedMesh&&(l.hasEventListener("dispose",a)===!1&&l.addEventListener("dispose",a),s.get(l)!==c&&(t.update(l.instanceMatrix,n.ARRAY_BUFFER),l.instanceColor!==null&&t.update(l.instanceColor,n.ARRAY_BUFFER),s.set(l,c))),l.isSkinnedMesh){let u=l.skeleton;s.get(u)!==c&&(u.update(),s.set(u,c))}return f}function o(){s=new WeakMap}function a(l){let c=l.target;c.removeEventListener("dispose",a),t.remove(c.instanceMatrix),c.instanceColor!==null&&t.remove(c.instanceColor)}return{update:r,dispose:o}}var O0=new mt,k0=new lc,Q0=new oa,G0=new Ac,Op=[],kp=[],Qp=new Float32Array(16),Gp=new Float32Array(9),Hp=new Float32Array(4);function hr(n,e,t){let i=n[0];if(i<=0||i>0)return n;let s=e*t,r=Op[s];if(r===void 0&&(r=new Float32Array(s),Op[s]=r),e!==0){i.toArray(r,0);for(let o=1,a=0;o!==e;++o)a+=t,n[o].toArray(r,a)}return r}function bt(n,e){if(n.length!==e.length)return!1;for(let t=0,i=n.length;t<i;t++)if(n[t]!==e[t])return!1;return!0}function It(n,e){for(let t=0,i=e.length;t<i;t++)n[t]=e[t]}function Pc(n,e){let t=kp[e];t===void 0&&(t=new Int32Array(e),kp[e]=t);for(let i=0;i!==e;++i)t[i]=n.allocateTextureUnit();return t}function TC(n,e){let t=this.cache;t[0]!==e&&(n.uniform1f(this.addr,e),t[0]=e)}function BC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2f(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(bt(t,e))return;n.uniform2fv(this.addr,e),It(t,e)}}function RC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3f(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else if(e.r!==void 0)(t[0]!==e.r||t[1]!==e.g||t[2]!==e.b)&&(n.uniform3f(this.addr,e.r,e.g,e.b),t[0]=e.r,t[1]=e.g,t[2]=e.b);else{if(bt(t,e))return;n.uniform3fv(this.addr,e),It(t,e)}}function DC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4f(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(bt(t,e))return;n.uniform4fv(this.addr,e),It(t,e)}}function LC(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(bt(t,e))return;n.uniformMatrix2fv(this.addr,!1,e),It(t,e)}else{if(bt(t,i))return;Hp.set(i),n.uniformMatrix2fv(this.addr,!1,Hp),It(t,i)}}function FC(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(bt(t,e))return;n.uniformMatrix3fv(this.addr,!1,e),It(t,e)}else{if(bt(t,i))return;Gp.set(i),n.uniformMatrix3fv(this.addr,!1,Gp),It(t,i)}}function PC(n,e){let t=this.cache,i=e.elements;if(i===void 0){if(bt(t,e))return;n.uniformMatrix4fv(this.addr,!1,e),It(t,e)}else{if(bt(t,i))return;Qp.set(i),n.uniformMatrix4fv(this.addr,!1,Qp),It(t,i)}}function UC(n,e){let t=this.cache;t[0]!==e&&(n.uniform1i(this.addr,e),t[0]=e)}function NC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2i(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(bt(t,e))return;n.uniform2iv(this.addr,e),It(t,e)}}function OC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3i(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(bt(t,e))return;n.uniform3iv(this.addr,e),It(t,e)}}function kC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4i(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(bt(t,e))return;n.uniform4iv(this.addr,e),It(t,e)}}function QC(n,e){let t=this.cache;t[0]!==e&&(n.uniform1ui(this.addr,e),t[0]=e)}function GC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y)&&(n.uniform2ui(this.addr,e.x,e.y),t[0]=e.x,t[1]=e.y);else{if(bt(t,e))return;n.uniform2uiv(this.addr,e),It(t,e)}}function HC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z)&&(n.uniform3ui(this.addr,e.x,e.y,e.z),t[0]=e.x,t[1]=e.y,t[2]=e.z);else{if(bt(t,e))return;n.uniform3uiv(this.addr,e),It(t,e)}}function zC(n,e){let t=this.cache;if(e.x!==void 0)(t[0]!==e.x||t[1]!==e.y||t[2]!==e.z||t[3]!==e.w)&&(n.uniform4ui(this.addr,e.x,e.y,e.z,e.w),t[0]=e.x,t[1]=e.y,t[2]=e.z,t[3]=e.w);else{if(bt(t,e))return;n.uniform4uiv(this.addr,e),It(t,e)}}function VC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTexture2D(e||O0,s)}function WC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTexture3D(e||Q0,s)}function KC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTextureCube(e||G0,s)}function qC(n,e,t){let i=this.cache,s=t.allocateTextureUnit();i[0]!==s&&(n.uniform1i(this.addr,s),i[0]=s),t.setTexture2DArray(e||k0,s)}function XC(n){switch(n){case 5126:return TC;case 35664:return BC;case 35665:return RC;case 35666:return DC;case 35674:return LC;case 35675:return FC;case 35676:return PC;case 5124:case 35670:return UC;case 35667:case 35671:return NC;case 35668:case 35672:return OC;case 35669:case 35673:return kC;case 5125:return QC;case 36294:return GC;case 36295:return HC;case 36296:return zC;case 35678:case 36198:case 36298:case 36306:case 35682:return VC;case 35679:case 36299:case 36307:return WC;case 35680:case 36300:case 36308:case 36293:return KC;case 36289:case 36303:case 36311:case 36292:return qC}}function YC(n,e){n.uniform1fv(this.addr,e)}function JC(n,e){let t=hr(e,this.size,2);n.uniform2fv(this.addr,t)}function ZC(n,e){let t=hr(e,this.size,3);n.uniform3fv(this.addr,t)}function jC(n,e){let t=hr(e,this.size,4);n.uniform4fv(this.addr,t)}function $C(n,e){let t=hr(e,this.size,4);n.uniformMatrix2fv(this.addr,!1,t)}function eS(n,e){let t=hr(e,this.size,9);n.uniformMatrix3fv(this.addr,!1,t)}function tS(n,e){let t=hr(e,this.size,16);n.uniformMatrix4fv(this.addr,!1,t)}function nS(n,e){n.uniform1iv(this.addr,e)}function iS(n,e){n.uniform2iv(this.addr,e)}function sS(n,e){n.uniform3iv(this.addr,e)}function rS(n,e){n.uniform4iv(this.addr,e)}function aS(n,e){n.uniform1uiv(this.addr,e)}function oS(n,e){n.uniform2uiv(this.addr,e)}function cS(n,e){n.uniform3uiv(this.addr,e)}function lS(n,e){n.uniform4uiv(this.addr,e)}function hS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);bt(i,r)||(n.uniform1iv(this.addr,r),It(i,r));for(let o=0;o!==s;++o)t.setTexture2D(e[o]||O0,r[o])}function uS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);bt(i,r)||(n.uniform1iv(this.addr,r),It(i,r));for(let o=0;o!==s;++o)t.setTexture3D(e[o]||Q0,r[o])}function fS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);bt(i,r)||(n.uniform1iv(this.addr,r),It(i,r));for(let o=0;o!==s;++o)t.setTextureCube(e[o]||G0,r[o])}function dS(n,e,t){let i=this.cache,s=e.length,r=Pc(t,s);bt(i,r)||(n.uniform1iv(this.addr,r),It(i,r));for(let o=0;o!==s;++o)t.setTexture2DArray(e[o]||k0,r[o])}function AS(n){switch(n){case 5126:return YC;case 35664:return JC;case 35665:return ZC;case 35666:return jC;case 35674:return $C;case 35675:return eS;case 35676:return tS;case 5124:case 35670:return nS;case 35667:case 35671:return iS;case 35668:case 35672:return sS;case 35669:case 35673:return rS;case 5125:return aS;case 36294:return oS;case 36295:return cS;case 36296:return lS;case 35678:case 36198:case 36298:case 36306:case 35682:return hS;case 35679:case 36299:case 36307:return uS;case 35680:case 36300:case 36308:case 36293:return fS;case 36289:case 36303:case 36311:case 36292:return dS}}var Eh=class{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.setValue=XC(t.type)}},yh=class{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.size=t.size,this.setValue=AS(t.type)}},Ch=class{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,t,i){let s=this.seq;for(let r=0,o=s.length;r!==o;++r){let a=s[r];a.setValue(e,t[a.id],i)}}},oh=/(\w+)(\])?(\[|\.)?/g;function zp(n,e){n.seq.push(e),n.map[e.id]=e}function pS(n,e,t){let i=n.name,s=i.length;for(oh.lastIndex=0;;){let r=oh.exec(i),o=oh.lastIndex,a=r[1],l=r[2]==="]",c=r[3];if(l&&(a=a|0),c===void 0||c==="["&&o+2===s){zp(t,c===void 0?new Eh(a,n,e):new yh(a,n,e));break}else{let f=t.map[a];f===void 0&&(f=new Ch(a),zp(t,f)),t=f}}}var Xs=class{constructor(e,t){this.seq=[],this.map={};let i=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<i;++s){let r=e.getActiveUniform(t,s),o=e.getUniformLocation(t,r.name);pS(r,o,this)}}setValue(e,t,i,s){let r=this.map[t];r!==void 0&&r.setValue(e,i,s)}setOptional(e,t,i){let s=t[i];s!==void 0&&this.setValue(e,i,s)}static upload(e,t,i,s){for(let r=0,o=t.length;r!==o;++r){let a=t[r],l=i[a.id];l.needsUpdate!==!1&&a.setValue(e,l.value,s)}}static seqWithValue(e,t){let i=[];for(let s=0,r=e.length;s!==r;++s){let o=e[s];o.id in t&&i.push(o)}return i}};function Vp(n,e,t){let i=n.createShader(e);return n.shaderSource(i,t),n.compileShader(i),i}var gS=0;function mS(n,e){let t=n.split(`
3515
3515
  `),i=[],s=Math.max(e-6,0),r=Math.min(e+6,t.length);for(let o=s;o<r;o++){let a=o+1;i.push(`${a===e?">":" "} ${a}: ${t[o]}`)}return i.join(`
3516
3516
  `)}function _S(n){switch(n){case An:return["Linear","( value )"];case be:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",n),["Linear","( value )"]}}function Wp(n,e,t){let i=n.getShaderParameter(e,n.COMPILE_STATUS),s=n.getShaderInfoLog(e).trim();if(i&&s==="")return"";let r=/ERROR: 0:(\d+)/.exec(s);if(r){let o=parseInt(r[1]);return t.toUpperCase()+`
3517
3517
 
@@ -3541,7 +3541,7 @@ precision `+n.precision+" int;";return n.precision==="highp"?e+=`
3541
3541
 
3542
3542
  Program Info Log: `+E+`
3543
3543
  `+D+`
3544
- `+O)}else E!==""?console.warn("THREE.WebGLProgram: Program Info Log:",E):(b===""||w==="")&&(U=!1);U&&(this.diagnostics={runnable:G,programLog:E,vertexShader:{log:b,prefix:p},fragmentShader:{log:w,prefix:A}})}s.deleteShader(y),s.deleteShader(S);let C;this.getUniforms=function(){return C===void 0&&(C=new Xs(s,m)),C};let M;return this.getAttributes=function(){return M===void 0&&(M=CS(s,m)),M},this.destroy=function(){i.releaseStatesOfProgram(this),s.deleteProgram(m),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=gS++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=y,this.fragmentShader=S,this}var PS=0,bh=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){let t=e.vertexShader,i=e.fragmentShader,s=this._getShaderStage(t),r=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(s)===!1&&(o.add(s),s.usedTimes++),o.has(r)===!1&&(o.add(r),r.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){let t=this.shaderCache,i=t.get(e);return i===void 0&&(i=new Ih(e),t.set(e,i)),i}},Ih=class{constructor(e){this.id=PS++,this.code=e,this.usedTimes=0}};function US(n,e,t,i,s,r,o){let a=new hc,l=new bh,c=[],h=s.isWebGL2,f=s.logarithmicDepthBuffer,u=s.vertexTextures,d=s.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(E){return E===0?"uv":`uv${E}`}function p(E,b,w,G,U){let D=G.fog,O=U.geometry,K=E.isMeshStandardMaterial?G.environment:null,H=(E.isMeshStandardMaterial?t:e).get(E.envMap||K),z=!!H&&H.mapping===Dc?H.image.height:null,F=g[E.type];E.precision!==null&&(d=s.getMaxPrecision(E.precision),d!==E.precision&&console.warn("THREE.WebGLProgram.getParameters:",E.precision,"not supported, using",d,"instead."));let N=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,R=N!==void 0?N.length:0,L=0;O.morphAttributes.position!==void 0&&(L=1),O.morphAttributes.normal!==void 0&&(L=2),O.morphAttributes.color!==void 0&&(L=3);let ne,ie,he,ae;if(F){let at=Qn[F];ne=at.vertexShader,ie=at.fragmentShader}else ne=E.vertexShader,ie=E.fragmentShader,l.update(E),he=l.getVertexShaderID(E),ae=l.getFragmentShaderID(E);let we=n.getRenderTarget(),xe=U.isInstancedMesh===!0,Ve=!!E.map,ft=!!E.matcap,Ce=!!H,V=!!E.aoMap,lt=!!E.lightMap,ve=!!E.bumpMap,Te=!!E.normalMap,Se=!!E.displacementMap,$e=!!E.emissiveMap,Ue=!!E.metalnessMap,ye=!!E.roughnessMap,Be=E.anisotropy>0,nt=E.clearcoat>0,dt=E.iridescence>0,B=E.sheen>0,I=E.transmission>0,X=Be&&!!E.anisotropyMap,le=nt&&!!E.clearcoatMap,se=nt&&!!E.clearcoatNormalMap,ce=nt&&!!E.clearcoatRoughnessMap,me=dt&&!!E.iridescenceMap,oe=dt&&!!E.iridescenceThicknessMap,Z=B&&!!E.sheenColorMap,P=B&&!!E.sheenRoughnessMap,ee=!!E.specularMap,ge=!!E.specularColorMap,ue=!!E.specularIntensityMap,Ae=I&&!!E.transmissionMap,Re=I&&!!E.thicknessMap,He=!!E.gradientMap,k=!!E.alphaMap,fe=E.alphaTest>0,J=!!E.alphaHash,re=!!E.extensions,de=!!O.attributes.uv1,Ne=!!O.attributes.uv2,Ze=!!O.attributes.uv3,rt=wi;return E.toneMapped&&(we===null||we.isXRRenderTarget===!0)&&(rt=n.toneMapping),{isWebGL2:h,shaderID:F,shaderType:E.type,shaderName:E.name,vertexShader:ne,fragmentShader:ie,defines:E.defines,customVertexShaderID:he,customFragmentShaderID:ae,isRawShaderMaterial:E.isRawShaderMaterial===!0,glslVersion:E.glslVersion,precision:d,instancing:xe,instancingColor:xe&&U.instanceColor!==null,supportsVertexTextures:u,outputColorSpace:we===null?n.outputColorSpace:we.isXRRenderTarget===!0?we.texture.colorSpace:An,map:Ve,matcap:ft,envMap:Ce,envMapMode:Ce&&H.mapping,envMapCubeUVHeight:z,aoMap:V,lightMap:lt,bumpMap:ve,normalMap:Te,displacementMap:u&&Se,emissiveMap:$e,normalMapObjectSpace:Te&&E.normalMapType===Ov,normalMapTangentSpace:Te&&E.normalMapType===R0,metalnessMap:Ue,roughnessMap:ye,anisotropy:Be,anisotropyMap:X,clearcoat:nt,clearcoatMap:le,clearcoatNormalMap:se,clearcoatRoughnessMap:ce,iridescence:dt,iridescenceMap:me,iridescenceThicknessMap:oe,sheen:B,sheenColorMap:Z,sheenRoughnessMap:P,specularMap:ee,specularColorMap:ge,specularIntensityMap:ue,transmission:I,transmissionMap:Ae,thicknessMap:Re,gradientMap:He,opaque:E.transparent===!1&&E.blending===Ks,alphaMap:k,alphaTest:fe,alphaHash:J,combine:E.combine,mapUv:Ve&&m(E.map.channel),aoMapUv:V&&m(E.aoMap.channel),lightMapUv:lt&&m(E.lightMap.channel),bumpMapUv:ve&&m(E.bumpMap.channel),normalMapUv:Te&&m(E.normalMap.channel),displacementMapUv:Se&&m(E.displacementMap.channel),emissiveMapUv:$e&&m(E.emissiveMap.channel),metalnessMapUv:Ue&&m(E.metalnessMap.channel),roughnessMapUv:ye&&m(E.roughnessMap.channel),anisotropyMapUv:X&&m(E.anisotropyMap.channel),clearcoatMapUv:le&&m(E.clearcoatMap.channel),clearcoatNormalMapUv:se&&m(E.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ce&&m(E.clearcoatRoughnessMap.channel),iridescenceMapUv:me&&m(E.iridescenceMap.channel),iridescenceThicknessMapUv:oe&&m(E.iridescenceThicknessMap.channel),sheenColorMapUv:Z&&m(E.sheenColorMap.channel),sheenRoughnessMapUv:P&&m(E.sheenRoughnessMap.channel),specularMapUv:ee&&m(E.specularMap.channel),specularColorMapUv:ge&&m(E.specularColorMap.channel),specularIntensityMapUv:ue&&m(E.specularIntensityMap.channel),transmissionMapUv:Ae&&m(E.transmissionMap.channel),thicknessMapUv:Re&&m(E.thicknessMap.channel),alphaMapUv:k&&m(E.alphaMap.channel),vertexTangents:!!O.attributes.tangent&&(Te||Be),vertexColors:E.vertexColors,vertexAlphas:E.vertexColors===!0&&!!O.attributes.color&&O.attributes.color.itemSize===4,vertexUv1s:de,vertexUv2s:Ne,vertexUv3s:Ze,pointsUvs:U.isPoints===!0&&!!O.attributes.uv&&(Ve||k),fog:!!D,useFog:E.fog===!0,fogExp2:D&&D.isFogExp2,flatShading:E.flatShading===!0,sizeAttenuation:E.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:U.isSkinnedMesh===!0,morphTargets:O.morphAttributes.position!==void 0,morphNormals:O.morphAttributes.normal!==void 0,morphColors:O.morphAttributes.color!==void 0,morphTargetsCount:R,morphTextureStride:L,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:E.dithering,shadowMapEnabled:n.shadowMap.enabled&&w.length>0,shadowMapType:n.shadowMap.type,toneMapping:rt,useLegacyLights:n._useLegacyLights,premultipliedAlpha:E.premultipliedAlpha,doubleSided:E.side===Dn,flipSided:E.side===Qt,useDepthPacking:E.depthPacking>=0,depthPacking:E.depthPacking||0,index0AttributeName:E.index0AttributeName,extensionDerivatives:re&&E.extensions.derivatives===!0,extensionFragDepth:re&&E.extensions.fragDepth===!0,extensionDrawBuffers:re&&E.extensions.drawBuffers===!0,extensionShaderTextureLOD:re&&E.extensions.shaderTextureLOD===!0,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:E.customProgramCacheKey()}}function A(E){let b=[];if(E.shaderID?b.push(E.shaderID):(b.push(E.customVertexShaderID),b.push(E.customFragmentShaderID)),E.defines!==void 0)for(let w in E.defines)b.push(w),b.push(E.defines[w]);return E.isRawShaderMaterial===!1&&(x(b,E),_(b,E),b.push(n.outputColorSpace)),b.push(E.customProgramCacheKey),b.join()}function x(E,b){E.push(b.precision),E.push(b.outputColorSpace),E.push(b.envMapMode),E.push(b.envMapCubeUVHeight),E.push(b.mapUv),E.push(b.alphaMapUv),E.push(b.lightMapUv),E.push(b.aoMapUv),E.push(b.bumpMapUv),E.push(b.normalMapUv),E.push(b.displacementMapUv),E.push(b.emissiveMapUv),E.push(b.metalnessMapUv),E.push(b.roughnessMapUv),E.push(b.anisotropyMapUv),E.push(b.clearcoatMapUv),E.push(b.clearcoatNormalMapUv),E.push(b.clearcoatRoughnessMapUv),E.push(b.iridescenceMapUv),E.push(b.iridescenceThicknessMapUv),E.push(b.sheenColorMapUv),E.push(b.sheenRoughnessMapUv),E.push(b.specularMapUv),E.push(b.specularColorMapUv),E.push(b.specularIntensityMapUv),E.push(b.transmissionMapUv),E.push(b.thicknessMapUv),E.push(b.combine),E.push(b.fogExp2),E.push(b.sizeAttenuation),E.push(b.morphTargetsCount),E.push(b.morphAttributeCount),E.push(b.numDirLights),E.push(b.numPointLights),E.push(b.numSpotLights),E.push(b.numSpotLightMaps),E.push(b.numHemiLights),E.push(b.numRectAreaLights),E.push(b.numDirLightShadows),E.push(b.numPointLightShadows),E.push(b.numSpotLightShadows),E.push(b.numSpotLightShadowsWithMaps),E.push(b.shadowMapType),E.push(b.toneMapping),E.push(b.numClippingPlanes),E.push(b.numClipIntersection),E.push(b.depthPacking)}function _(E,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),E.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),E.push(a.mask)}function v(E){let b=g[E.type],w;if(b){let G=Qn[b];w=TE.clone(G.uniforms)}else w=E.uniforms;return w}function y(E,b){let w;for(let G=0,U=c.length;G<U;G++){let D=c[G];if(D.cacheKey===b){w=D,++w.usedTimes;break}}return w===void 0&&(w=new FS(n,b,E,r),c.push(w)),w}function S(E){if(--E.usedTimes===0){let b=c.indexOf(E);c[b]=c[c.length-1],c.pop(),E.destroy()}}function C(E){l.remove(E)}function M(){l.dispose()}return{getParameters:p,getProgramCacheKey:A,getUniforms:v,acquireProgram:y,releaseProgram:S,releaseShaderCache:C,programs:c,dispose:M}}function NS(){let n=new WeakMap;function e(r){let o=n.get(r);return o===void 0&&(o={},n.set(r,o)),o}function t(r){n.delete(r)}function i(r,o,a){n.get(r)[o]=a}function s(){n=new WeakMap}return{get:e,remove:t,update:i,dispose:s}}function OS(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.material.id!==e.material.id?n.material.id-e.material.id:n.z!==e.z?n.z-e.z:n.id-e.id}function Jp(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.z!==e.z?e.z-n.z:n.id-e.id}function Zp(){let n=[],e=0,t=[],i=[],s=[];function r(){e=0,t.length=0,i.length=0,s.length=0}function o(f,u,d,g,m,p){let A=n[e];return A===void 0?(A={id:f.id,object:f,geometry:u,material:d,groupOrder:g,renderOrder:f.renderOrder,z:m,group:p},n[e]=A):(A.id=f.id,A.object=f,A.geometry=u,A.material=d,A.groupOrder=g,A.renderOrder=f.renderOrder,A.z=m,A.group=p),e++,A}function a(f,u,d,g,m,p){let A=o(f,u,d,g,m,p);d.transmission>0?i.push(A):d.transparent===!0?s.push(A):t.push(A)}function l(f,u,d,g,m,p){let A=o(f,u,d,g,m,p);d.transmission>0?i.unshift(A):d.transparent===!0?s.unshift(A):t.unshift(A)}function c(f,u){t.length>1&&t.sort(f||OS),i.length>1&&i.sort(u||Jp),s.length>1&&s.sort(u||Jp)}function h(){for(let f=e,u=n.length;f<u;f++){let d=n[f];if(d.id===null)break;d.id=null,d.object=null,d.geometry=null,d.material=null,d.group=null}}return{opaque:t,transmissive:i,transparent:s,init:r,push:a,unshift:l,finish:h,sort:c}}function kS(){let n=new WeakMap;function e(i,s){let r=n.get(i),o;return r===void 0?(o=new Zp,n.set(i,[o])):s>=r.length?(o=new Zp,r.push(o)):o=r[s],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function QS(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new Q,color:new Ee};break;case"SpotLight":t={position:new Q,direction:new Q,color:new Ee,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new Q,color:new Ee,distance:0,decay:0};break;case"HemisphereLight":t={direction:new Q,skyColor:new Ee,groundColor:new Ee};break;case"RectAreaLight":t={color:new Ee,position:new Q,halfWidth:new Q,halfHeight:new Q};break}return n[e.id]=t,t}}}function GS(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ie};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ie};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ie,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}var HS=0;function zS(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function VS(n,e){let t=new QS,i=GS(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)s.probe.push(new Q);let r=new Q,o=new Oe,a=new Oe;function l(h,f){let u=0,d=0,g=0;for(let w=0;w<9;w++)s.probe[w].set(0,0,0);let m=0,p=0,A=0,x=0,_=0,v=0,y=0,S=0,C=0,M=0;h.sort(zS);let E=f===!0?Math.PI:1;for(let w=0,G=h.length;w<G;w++){let U=h[w],D=U.color,O=U.intensity,K=U.distance,H=U.shadow&&U.shadow.map?U.shadow.map.texture:null;if(U.isAmbientLight)u+=D.r*O*E,d+=D.g*O*E,g+=D.b*O*E;else if(U.isLightProbe)for(let z=0;z<9;z++)s.probe[z].addScaledVector(U.sh.coefficients[z],O);else if(U.isDirectionalLight){let z=t.get(U);if(z.color.copy(U.color).multiplyScalar(U.intensity*E),U.castShadow){let F=U.shadow,N=i.get(U);N.shadowBias=F.bias,N.shadowNormalBias=F.normalBias,N.shadowRadius=F.radius,N.shadowMapSize=F.mapSize,s.directionalShadow[m]=N,s.directionalShadowMap[m]=H,s.directionalShadowMatrix[m]=U.shadow.matrix,v++}s.directional[m]=z,m++}else if(U.isSpotLight){let z=t.get(U);z.position.setFromMatrixPosition(U.matrixWorld),z.color.copy(D).multiplyScalar(O*E),z.distance=K,z.coneCos=Math.cos(U.angle),z.penumbraCos=Math.cos(U.angle*(1-U.penumbra)),z.decay=U.decay,s.spot[A]=z;let F=U.shadow;if(U.map&&(s.spotLightMap[C]=U.map,C++,F.updateMatrices(U),U.castShadow&&M++),s.spotLightMatrix[A]=F.matrix,U.castShadow){let N=i.get(U);N.shadowBias=F.bias,N.shadowNormalBias=F.normalBias,N.shadowRadius=F.radius,N.shadowMapSize=F.mapSize,s.spotShadow[A]=N,s.spotShadowMap[A]=H,S++}A++}else if(U.isRectAreaLight){let z=t.get(U);z.color.copy(D).multiplyScalar(O),z.halfWidth.set(U.width*.5,0,0),z.halfHeight.set(0,U.height*.5,0),s.rectArea[x]=z,x++}else if(U.isPointLight){let z=t.get(U);if(z.color.copy(U.color).multiplyScalar(U.intensity*E),z.distance=U.distance,z.decay=U.decay,U.castShadow){let F=U.shadow,N=i.get(U);N.shadowBias=F.bias,N.shadowNormalBias=F.normalBias,N.shadowRadius=F.radius,N.shadowMapSize=F.mapSize,N.shadowCameraNear=F.camera.near,N.shadowCameraFar=F.camera.far,s.pointShadow[p]=N,s.pointShadowMap[p]=H,s.pointShadowMatrix[p]=U.shadow.matrix,y++}s.point[p]=z,p++}else if(U.isHemisphereLight){let z=t.get(U);z.skyColor.copy(U.color).multiplyScalar(O*E),z.groundColor.copy(U.groundColor).multiplyScalar(O*E),s.hemi[_]=z,_++}}x>0&&(e.isWebGL2||n.has("OES_texture_float_linear")===!0?(s.rectAreaLTC1=pe.LTC_FLOAT_1,s.rectAreaLTC2=pe.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(s.rectAreaLTC1=pe.LTC_HALF_1,s.rectAreaLTC2=pe.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),s.ambient[0]=u,s.ambient[1]=d,s.ambient[2]=g;let b=s.hash;(b.directionalLength!==m||b.pointLength!==p||b.spotLength!==A||b.rectAreaLength!==x||b.hemiLength!==_||b.numDirectionalShadows!==v||b.numPointShadows!==y||b.numSpotShadows!==S||b.numSpotMaps!==C)&&(s.directional.length=m,s.spot.length=A,s.rectArea.length=x,s.point.length=p,s.hemi.length=_,s.directionalShadow.length=v,s.directionalShadowMap.length=v,s.pointShadow.length=y,s.pointShadowMap.length=y,s.spotShadow.length=S,s.spotShadowMap.length=S,s.directionalShadowMatrix.length=v,s.pointShadowMatrix.length=y,s.spotLightMatrix.length=S+C-M,s.spotLightMap.length=C,s.numSpotLightShadowsWithMaps=M,b.directionalLength=m,b.pointLength=p,b.spotLength=A,b.rectAreaLength=x,b.hemiLength=_,b.numDirectionalShadows=v,b.numPointShadows=y,b.numSpotShadows=S,b.numSpotMaps=C,s.version=HS++)}function c(h,f){let u=0,d=0,g=0,m=0,p=0,A=f.matrixWorldInverse;for(let x=0,_=h.length;x<_;x++){let v=h[x];if(v.isDirectionalLight){let y=s.directional[u];y.direction.setFromMatrixPosition(v.matrixWorld),r.setFromMatrixPosition(v.target.matrixWorld),y.direction.sub(r),y.direction.transformDirection(A),u++}else if(v.isSpotLight){let y=s.spot[g];y.position.setFromMatrixPosition(v.matrixWorld),y.position.applyMatrix4(A),y.direction.setFromMatrixPosition(v.matrixWorld),r.setFromMatrixPosition(v.target.matrixWorld),y.direction.sub(r),y.direction.transformDirection(A),g++}else if(v.isRectAreaLight){let y=s.rectArea[m];y.position.setFromMatrixPosition(v.matrixWorld),y.position.applyMatrix4(A),a.identity(),o.copy(v.matrixWorld),o.premultiply(A),a.extractRotation(o),y.halfWidth.set(v.width*.5,0,0),y.halfHeight.set(0,v.height*.5,0),y.halfWidth.applyMatrix4(a),y.halfHeight.applyMatrix4(a),m++}else if(v.isPointLight){let y=s.point[d];y.position.setFromMatrixPosition(v.matrixWorld),y.position.applyMatrix4(A),d++}else if(v.isHemisphereLight){let y=s.hemi[p];y.direction.setFromMatrixPosition(v.matrixWorld),y.direction.transformDirection(A),p++}}}return{setup:l,setupView:c,state:s}}function jp(n,e){let t=new VS(n,e),i=[],s=[];function r(){i.length=0,s.length=0}function o(f){i.push(f)}function a(f){s.push(f)}function l(f){t.setup(i,f)}function c(f){t.setupView(i,f)}return{init:r,state:{lightsArray:i,shadowsArray:s,lights:t},setupLights:l,setupLightsView:c,pushLight:o,pushShadow:a}}function WS(n,e){let t=new WeakMap;function i(r,o=0){let a=t.get(r),l;return a===void 0?(l=new jp(n,e),t.set(r,[l])):o>=a.length?(l=new jp(n,e),a.push(l)):l=a[o],l}function s(){t=new WeakMap}return{get:i,dispose:s}}var la=class extends rn{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Uv,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},wh=class extends rn{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},KS=`void main() {
3544
+ `+O)}else E!==""?console.warn("THREE.WebGLProgram: Program Info Log:",E):(b===""||w==="")&&(U=!1);U&&(this.diagnostics={runnable:G,programLog:E,vertexShader:{log:b,prefix:p},fragmentShader:{log:w,prefix:A}})}s.deleteShader(y),s.deleteShader(S);let C;this.getUniforms=function(){return C===void 0&&(C=new Xs(s,m)),C};let M;return this.getAttributes=function(){return M===void 0&&(M=CS(s,m)),M},this.destroy=function(){i.releaseStatesOfProgram(this),s.deleteProgram(m),this.program=void 0},this.type=t.shaderType,this.name=t.shaderName,this.id=gS++,this.cacheKey=e,this.usedTimes=1,this.program=m,this.vertexShader=y,this.fragmentShader=S,this}var PS=0,bh=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){let t=e.vertexShader,i=e.fragmentShader,s=this._getShaderStage(t),r=this._getShaderStage(i),o=this._getShaderCacheForMaterial(e);return o.has(s)===!1&&(o.add(s),s.usedTimes++),o.has(r)===!1&&(o.add(r),r.usedTimes++),this}remove(e){let t=this.materialCache.get(e);for(let i of t)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){let t=this.materialCache,i=t.get(e);return i===void 0&&(i=new Set,t.set(e,i)),i}_getShaderStage(e){let t=this.shaderCache,i=t.get(e);return i===void 0&&(i=new Ih(e),t.set(e,i)),i}},Ih=class{constructor(e){this.id=PS++,this.code=e,this.usedTimes=0}};function US(n,e,t,i,s,r,o){let a=new hc,l=new bh,c=[],h=s.isWebGL2,f=s.logarithmicDepthBuffer,u=s.vertexTextures,d=s.precision,g={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function m(E){return E===0?"uv":`uv${E}`}function p(E,b,w,G,U){let D=G.fog,O=U.geometry,K=E.isMeshStandardMaterial?G.environment:null,H=(E.isMeshStandardMaterial?t:e).get(E.envMap||K),z=!!H&&H.mapping===Dc?H.image.height:null,F=g[E.type];E.precision!==null&&(d=s.getMaxPrecision(E.precision),d!==E.precision&&console.warn("THREE.WebGLProgram.getParameters:",E.precision,"not supported, using",d,"instead."));let N=O.morphAttributes.position||O.morphAttributes.normal||O.morphAttributes.color,R=N!==void 0?N.length:0,L=0;O.morphAttributes.position!==void 0&&(L=1),O.morphAttributes.normal!==void 0&&(L=2),O.morphAttributes.color!==void 0&&(L=3);let ne,ie,he,ae;if(F){let at=Qn[F];ne=at.vertexShader,ie=at.fragmentShader}else ne=E.vertexShader,ie=E.fragmentShader,l.update(E),he=l.getVertexShaderID(E),ae=l.getFragmentShaderID(E);let we=n.getRenderTarget(),xe=U.isInstancedMesh===!0,Ve=!!E.map,ft=!!E.matcap,Ce=!!H,V=!!E.aoMap,lt=!!E.lightMap,Ee=!!E.bumpMap,Te=!!E.normalMap,Se=!!E.displacementMap,$e=!!E.emissiveMap,Pe=!!E.metalnessMap,ye=!!E.roughnessMap,Be=E.anisotropy>0,nt=E.clearcoat>0,dt=E.iridescence>0,B=E.sheen>0,I=E.transmission>0,X=Be&&!!E.anisotropyMap,le=nt&&!!E.clearcoatMap,se=nt&&!!E.clearcoatNormalMap,ce=nt&&!!E.clearcoatRoughnessMap,me=dt&&!!E.iridescenceMap,oe=dt&&!!E.iridescenceThicknessMap,Z=B&&!!E.sheenColorMap,P=B&&!!E.sheenRoughnessMap,ee=!!E.specularMap,ge=!!E.specularColorMap,ue=!!E.specularIntensityMap,Ae=I&&!!E.transmissionMap,Re=I&&!!E.thicknessMap,He=!!E.gradientMap,k=!!E.alphaMap,fe=E.alphaTest>0,J=!!E.alphaHash,re=!!E.extensions,de=!!O.attributes.uv1,Ne=!!O.attributes.uv2,Ze=!!O.attributes.uv3,rt=wi;return E.toneMapped&&(we===null||we.isXRRenderTarget===!0)&&(rt=n.toneMapping),{isWebGL2:h,shaderID:F,shaderType:E.type,shaderName:E.name,vertexShader:ne,fragmentShader:ie,defines:E.defines,customVertexShaderID:he,customFragmentShaderID:ae,isRawShaderMaterial:E.isRawShaderMaterial===!0,glslVersion:E.glslVersion,precision:d,instancing:xe,instancingColor:xe&&U.instanceColor!==null,supportsVertexTextures:u,outputColorSpace:we===null?n.outputColorSpace:we.isXRRenderTarget===!0?we.texture.colorSpace:An,map:Ve,matcap:ft,envMap:Ce,envMapMode:Ce&&H.mapping,envMapCubeUVHeight:z,aoMap:V,lightMap:lt,bumpMap:Ee,normalMap:Te,displacementMap:u&&Se,emissiveMap:$e,normalMapObjectSpace:Te&&E.normalMapType===Ov,normalMapTangentSpace:Te&&E.normalMapType===R0,metalnessMap:Pe,roughnessMap:ye,anisotropy:Be,anisotropyMap:X,clearcoat:nt,clearcoatMap:le,clearcoatNormalMap:se,clearcoatRoughnessMap:ce,iridescence:dt,iridescenceMap:me,iridescenceThicknessMap:oe,sheen:B,sheenColorMap:Z,sheenRoughnessMap:P,specularMap:ee,specularColorMap:ge,specularIntensityMap:ue,transmission:I,transmissionMap:Ae,thicknessMap:Re,gradientMap:He,opaque:E.transparent===!1&&E.blending===Ks,alphaMap:k,alphaTest:fe,alphaHash:J,combine:E.combine,mapUv:Ve&&m(E.map.channel),aoMapUv:V&&m(E.aoMap.channel),lightMapUv:lt&&m(E.lightMap.channel),bumpMapUv:Ee&&m(E.bumpMap.channel),normalMapUv:Te&&m(E.normalMap.channel),displacementMapUv:Se&&m(E.displacementMap.channel),emissiveMapUv:$e&&m(E.emissiveMap.channel),metalnessMapUv:Pe&&m(E.metalnessMap.channel),roughnessMapUv:ye&&m(E.roughnessMap.channel),anisotropyMapUv:X&&m(E.anisotropyMap.channel),clearcoatMapUv:le&&m(E.clearcoatMap.channel),clearcoatNormalMapUv:se&&m(E.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:ce&&m(E.clearcoatRoughnessMap.channel),iridescenceMapUv:me&&m(E.iridescenceMap.channel),iridescenceThicknessMapUv:oe&&m(E.iridescenceThicknessMap.channel),sheenColorMapUv:Z&&m(E.sheenColorMap.channel),sheenRoughnessMapUv:P&&m(E.sheenRoughnessMap.channel),specularMapUv:ee&&m(E.specularMap.channel),specularColorMapUv:ge&&m(E.specularColorMap.channel),specularIntensityMapUv:ue&&m(E.specularIntensityMap.channel),transmissionMapUv:Ae&&m(E.transmissionMap.channel),thicknessMapUv:Re&&m(E.thicknessMap.channel),alphaMapUv:k&&m(E.alphaMap.channel),vertexTangents:!!O.attributes.tangent&&(Te||Be),vertexColors:E.vertexColors,vertexAlphas:E.vertexColors===!0&&!!O.attributes.color&&O.attributes.color.itemSize===4,vertexUv1s:de,vertexUv2s:Ne,vertexUv3s:Ze,pointsUvs:U.isPoints===!0&&!!O.attributes.uv&&(Ve||k),fog:!!D,useFog:E.fog===!0,fogExp2:D&&D.isFogExp2,flatShading:E.flatShading===!0,sizeAttenuation:E.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:U.isSkinnedMesh===!0,morphTargets:O.morphAttributes.position!==void 0,morphNormals:O.morphAttributes.normal!==void 0,morphColors:O.morphAttributes.color!==void 0,morphTargetsCount:R,morphTextureStride:L,numDirLights:b.directional.length,numPointLights:b.point.length,numSpotLights:b.spot.length,numSpotLightMaps:b.spotLightMap.length,numRectAreaLights:b.rectArea.length,numHemiLights:b.hemi.length,numDirLightShadows:b.directionalShadowMap.length,numPointLightShadows:b.pointShadowMap.length,numSpotLightShadows:b.spotShadowMap.length,numSpotLightShadowsWithMaps:b.numSpotLightShadowsWithMaps,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:E.dithering,shadowMapEnabled:n.shadowMap.enabled&&w.length>0,shadowMapType:n.shadowMap.type,toneMapping:rt,useLegacyLights:n._useLegacyLights,premultipliedAlpha:E.premultipliedAlpha,doubleSided:E.side===Dn,flipSided:E.side===Qt,useDepthPacking:E.depthPacking>=0,depthPacking:E.depthPacking||0,index0AttributeName:E.index0AttributeName,extensionDerivatives:re&&E.extensions.derivatives===!0,extensionFragDepth:re&&E.extensions.fragDepth===!0,extensionDrawBuffers:re&&E.extensions.drawBuffers===!0,extensionShaderTextureLOD:re&&E.extensions.shaderTextureLOD===!0,rendererExtensionFragDepth:h||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||i.has("EXT_shader_texture_lod"),customProgramCacheKey:E.customProgramCacheKey()}}function A(E){let b=[];if(E.shaderID?b.push(E.shaderID):(b.push(E.customVertexShaderID),b.push(E.customFragmentShaderID)),E.defines!==void 0)for(let w in E.defines)b.push(w),b.push(E.defines[w]);return E.isRawShaderMaterial===!1&&(x(b,E),_(b,E),b.push(n.outputColorSpace)),b.push(E.customProgramCacheKey),b.join()}function x(E,b){E.push(b.precision),E.push(b.outputColorSpace),E.push(b.envMapMode),E.push(b.envMapCubeUVHeight),E.push(b.mapUv),E.push(b.alphaMapUv),E.push(b.lightMapUv),E.push(b.aoMapUv),E.push(b.bumpMapUv),E.push(b.normalMapUv),E.push(b.displacementMapUv),E.push(b.emissiveMapUv),E.push(b.metalnessMapUv),E.push(b.roughnessMapUv),E.push(b.anisotropyMapUv),E.push(b.clearcoatMapUv),E.push(b.clearcoatNormalMapUv),E.push(b.clearcoatRoughnessMapUv),E.push(b.iridescenceMapUv),E.push(b.iridescenceThicknessMapUv),E.push(b.sheenColorMapUv),E.push(b.sheenRoughnessMapUv),E.push(b.specularMapUv),E.push(b.specularColorMapUv),E.push(b.specularIntensityMapUv),E.push(b.transmissionMapUv),E.push(b.thicknessMapUv),E.push(b.combine),E.push(b.fogExp2),E.push(b.sizeAttenuation),E.push(b.morphTargetsCount),E.push(b.morphAttributeCount),E.push(b.numDirLights),E.push(b.numPointLights),E.push(b.numSpotLights),E.push(b.numSpotLightMaps),E.push(b.numHemiLights),E.push(b.numRectAreaLights),E.push(b.numDirLightShadows),E.push(b.numPointLightShadows),E.push(b.numSpotLightShadows),E.push(b.numSpotLightShadowsWithMaps),E.push(b.shadowMapType),E.push(b.toneMapping),E.push(b.numClippingPlanes),E.push(b.numClipIntersection),E.push(b.depthPacking)}function _(E,b){a.disableAll(),b.isWebGL2&&a.enable(0),b.supportsVertexTextures&&a.enable(1),b.instancing&&a.enable(2),b.instancingColor&&a.enable(3),b.matcap&&a.enable(4),b.envMap&&a.enable(5),b.normalMapObjectSpace&&a.enable(6),b.normalMapTangentSpace&&a.enable(7),b.clearcoat&&a.enable(8),b.iridescence&&a.enable(9),b.alphaTest&&a.enable(10),b.vertexColors&&a.enable(11),b.vertexAlphas&&a.enable(12),b.vertexUv1s&&a.enable(13),b.vertexUv2s&&a.enable(14),b.vertexUv3s&&a.enable(15),b.vertexTangents&&a.enable(16),b.anisotropy&&a.enable(17),E.push(a.mask),a.disableAll(),b.fog&&a.enable(0),b.useFog&&a.enable(1),b.flatShading&&a.enable(2),b.logarithmicDepthBuffer&&a.enable(3),b.skinning&&a.enable(4),b.morphTargets&&a.enable(5),b.morphNormals&&a.enable(6),b.morphColors&&a.enable(7),b.premultipliedAlpha&&a.enable(8),b.shadowMapEnabled&&a.enable(9),b.useLegacyLights&&a.enable(10),b.doubleSided&&a.enable(11),b.flipSided&&a.enable(12),b.useDepthPacking&&a.enable(13),b.dithering&&a.enable(14),b.transmission&&a.enable(15),b.sheen&&a.enable(16),b.opaque&&a.enable(17),b.pointsUvs&&a.enable(18),E.push(a.mask)}function v(E){let b=g[E.type],w;if(b){let G=Qn[b];w=TE.clone(G.uniforms)}else w=E.uniforms;return w}function y(E,b){let w;for(let G=0,U=c.length;G<U;G++){let D=c[G];if(D.cacheKey===b){w=D,++w.usedTimes;break}}return w===void 0&&(w=new FS(n,b,E,r),c.push(w)),w}function S(E){if(--E.usedTimes===0){let b=c.indexOf(E);c[b]=c[c.length-1],c.pop(),E.destroy()}}function C(E){l.remove(E)}function M(){l.dispose()}return{getParameters:p,getProgramCacheKey:A,getUniforms:v,acquireProgram:y,releaseProgram:S,releaseShaderCache:C,programs:c,dispose:M}}function NS(){let n=new WeakMap;function e(r){let o=n.get(r);return o===void 0&&(o={},n.set(r,o)),o}function t(r){n.delete(r)}function i(r,o,a){n.get(r)[o]=a}function s(){n=new WeakMap}return{get:e,remove:t,update:i,dispose:s}}function OS(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.material.id!==e.material.id?n.material.id-e.material.id:n.z!==e.z?n.z-e.z:n.id-e.id}function Jp(n,e){return n.groupOrder!==e.groupOrder?n.groupOrder-e.groupOrder:n.renderOrder!==e.renderOrder?n.renderOrder-e.renderOrder:n.z!==e.z?e.z-n.z:n.id-e.id}function Zp(){let n=[],e=0,t=[],i=[],s=[];function r(){e=0,t.length=0,i.length=0,s.length=0}function o(f,u,d,g,m,p){let A=n[e];return A===void 0?(A={id:f.id,object:f,geometry:u,material:d,groupOrder:g,renderOrder:f.renderOrder,z:m,group:p},n[e]=A):(A.id=f.id,A.object=f,A.geometry=u,A.material=d,A.groupOrder=g,A.renderOrder=f.renderOrder,A.z=m,A.group=p),e++,A}function a(f,u,d,g,m,p){let A=o(f,u,d,g,m,p);d.transmission>0?i.push(A):d.transparent===!0?s.push(A):t.push(A)}function l(f,u,d,g,m,p){let A=o(f,u,d,g,m,p);d.transmission>0?i.unshift(A):d.transparent===!0?s.unshift(A):t.unshift(A)}function c(f,u){t.length>1&&t.sort(f||OS),i.length>1&&i.sort(u||Jp),s.length>1&&s.sort(u||Jp)}function h(){for(let f=e,u=n.length;f<u;f++){let d=n[f];if(d.id===null)break;d.id=null,d.object=null,d.geometry=null,d.material=null,d.group=null}}return{opaque:t,transmissive:i,transparent:s,init:r,push:a,unshift:l,finish:h,sort:c}}function kS(){let n=new WeakMap;function e(i,s){let r=n.get(i),o;return r===void 0?(o=new Zp,n.set(i,[o])):s>=r.length?(o=new Zp,r.push(o)):o=r[s],o}function t(){n=new WeakMap}return{get:e,dispose:t}}function QS(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={direction:new Q,color:new ve};break;case"SpotLight":t={position:new Q,direction:new Q,color:new ve,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":t={position:new Q,color:new ve,distance:0,decay:0};break;case"HemisphereLight":t={direction:new Q,skyColor:new ve,groundColor:new ve};break;case"RectAreaLight":t={color:new ve,position:new Q,halfWidth:new Q,halfHeight:new Q};break}return n[e.id]=t,t}}}function GS(){let n={};return{get:function(e){if(n[e.id]!==void 0)return n[e.id];let t;switch(e.type){case"DirectionalLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ie};break;case"SpotLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ie};break;case"PointLight":t={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ie,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[e.id]=t,t}}}var HS=0;function zS(n,e){return(e.castShadow?2:0)-(n.castShadow?2:0)+(e.map?1:0)-(n.map?1:0)}function VS(n,e){let t=new QS,i=GS(),s={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0};for(let h=0;h<9;h++)s.probe.push(new Q);let r=new Q,o=new Oe,a=new Oe;function l(h,f){let u=0,d=0,g=0;for(let w=0;w<9;w++)s.probe[w].set(0,0,0);let m=0,p=0,A=0,x=0,_=0,v=0,y=0,S=0,C=0,M=0;h.sort(zS);let E=f===!0?Math.PI:1;for(let w=0,G=h.length;w<G;w++){let U=h[w],D=U.color,O=U.intensity,K=U.distance,H=U.shadow&&U.shadow.map?U.shadow.map.texture:null;if(U.isAmbientLight)u+=D.r*O*E,d+=D.g*O*E,g+=D.b*O*E;else if(U.isLightProbe)for(let z=0;z<9;z++)s.probe[z].addScaledVector(U.sh.coefficients[z],O);else if(U.isDirectionalLight){let z=t.get(U);if(z.color.copy(U.color).multiplyScalar(U.intensity*E),U.castShadow){let F=U.shadow,N=i.get(U);N.shadowBias=F.bias,N.shadowNormalBias=F.normalBias,N.shadowRadius=F.radius,N.shadowMapSize=F.mapSize,s.directionalShadow[m]=N,s.directionalShadowMap[m]=H,s.directionalShadowMatrix[m]=U.shadow.matrix,v++}s.directional[m]=z,m++}else if(U.isSpotLight){let z=t.get(U);z.position.setFromMatrixPosition(U.matrixWorld),z.color.copy(D).multiplyScalar(O*E),z.distance=K,z.coneCos=Math.cos(U.angle),z.penumbraCos=Math.cos(U.angle*(1-U.penumbra)),z.decay=U.decay,s.spot[A]=z;let F=U.shadow;if(U.map&&(s.spotLightMap[C]=U.map,C++,F.updateMatrices(U),U.castShadow&&M++),s.spotLightMatrix[A]=F.matrix,U.castShadow){let N=i.get(U);N.shadowBias=F.bias,N.shadowNormalBias=F.normalBias,N.shadowRadius=F.radius,N.shadowMapSize=F.mapSize,s.spotShadow[A]=N,s.spotShadowMap[A]=H,S++}A++}else if(U.isRectAreaLight){let z=t.get(U);z.color.copy(D).multiplyScalar(O),z.halfWidth.set(U.width*.5,0,0),z.halfHeight.set(0,U.height*.5,0),s.rectArea[x]=z,x++}else if(U.isPointLight){let z=t.get(U);if(z.color.copy(U.color).multiplyScalar(U.intensity*E),z.distance=U.distance,z.decay=U.decay,U.castShadow){let F=U.shadow,N=i.get(U);N.shadowBias=F.bias,N.shadowNormalBias=F.normalBias,N.shadowRadius=F.radius,N.shadowMapSize=F.mapSize,N.shadowCameraNear=F.camera.near,N.shadowCameraFar=F.camera.far,s.pointShadow[p]=N,s.pointShadowMap[p]=H,s.pointShadowMatrix[p]=U.shadow.matrix,y++}s.point[p]=z,p++}else if(U.isHemisphereLight){let z=t.get(U);z.skyColor.copy(U.color).multiplyScalar(O*E),z.groundColor.copy(U.groundColor).multiplyScalar(O*E),s.hemi[_]=z,_++}}x>0&&(e.isWebGL2||n.has("OES_texture_float_linear")===!0?(s.rectAreaLTC1=pe.LTC_FLOAT_1,s.rectAreaLTC2=pe.LTC_FLOAT_2):n.has("OES_texture_half_float_linear")===!0?(s.rectAreaLTC1=pe.LTC_HALF_1,s.rectAreaLTC2=pe.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),s.ambient[0]=u,s.ambient[1]=d,s.ambient[2]=g;let b=s.hash;(b.directionalLength!==m||b.pointLength!==p||b.spotLength!==A||b.rectAreaLength!==x||b.hemiLength!==_||b.numDirectionalShadows!==v||b.numPointShadows!==y||b.numSpotShadows!==S||b.numSpotMaps!==C)&&(s.directional.length=m,s.spot.length=A,s.rectArea.length=x,s.point.length=p,s.hemi.length=_,s.directionalShadow.length=v,s.directionalShadowMap.length=v,s.pointShadow.length=y,s.pointShadowMap.length=y,s.spotShadow.length=S,s.spotShadowMap.length=S,s.directionalShadowMatrix.length=v,s.pointShadowMatrix.length=y,s.spotLightMatrix.length=S+C-M,s.spotLightMap.length=C,s.numSpotLightShadowsWithMaps=M,b.directionalLength=m,b.pointLength=p,b.spotLength=A,b.rectAreaLength=x,b.hemiLength=_,b.numDirectionalShadows=v,b.numPointShadows=y,b.numSpotShadows=S,b.numSpotMaps=C,s.version=HS++)}function c(h,f){let u=0,d=0,g=0,m=0,p=0,A=f.matrixWorldInverse;for(let x=0,_=h.length;x<_;x++){let v=h[x];if(v.isDirectionalLight){let y=s.directional[u];y.direction.setFromMatrixPosition(v.matrixWorld),r.setFromMatrixPosition(v.target.matrixWorld),y.direction.sub(r),y.direction.transformDirection(A),u++}else if(v.isSpotLight){let y=s.spot[g];y.position.setFromMatrixPosition(v.matrixWorld),y.position.applyMatrix4(A),y.direction.setFromMatrixPosition(v.matrixWorld),r.setFromMatrixPosition(v.target.matrixWorld),y.direction.sub(r),y.direction.transformDirection(A),g++}else if(v.isRectAreaLight){let y=s.rectArea[m];y.position.setFromMatrixPosition(v.matrixWorld),y.position.applyMatrix4(A),a.identity(),o.copy(v.matrixWorld),o.premultiply(A),a.extractRotation(o),y.halfWidth.set(v.width*.5,0,0),y.halfHeight.set(0,v.height*.5,0),y.halfWidth.applyMatrix4(a),y.halfHeight.applyMatrix4(a),m++}else if(v.isPointLight){let y=s.point[d];y.position.setFromMatrixPosition(v.matrixWorld),y.position.applyMatrix4(A),d++}else if(v.isHemisphereLight){let y=s.hemi[p];y.direction.setFromMatrixPosition(v.matrixWorld),y.direction.transformDirection(A),p++}}}return{setup:l,setupView:c,state:s}}function jp(n,e){let t=new VS(n,e),i=[],s=[];function r(){i.length=0,s.length=0}function o(f){i.push(f)}function a(f){s.push(f)}function l(f){t.setup(i,f)}function c(f){t.setupView(i,f)}return{init:r,state:{lightsArray:i,shadowsArray:s,lights:t},setupLights:l,setupLightsView:c,pushLight:o,pushShadow:a}}function WS(n,e){let t=new WeakMap;function i(r,o=0){let a=t.get(r),l;return a===void 0?(l=new jp(n,e),t.set(r,[l])):o>=a.length?(l=new jp(n,e),a.push(l)):l=a[o],l}function s(){t=new WeakMap}return{get:i,dispose:s}}var la=class extends rn{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Uv,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},wh=class extends rn{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},KS=`void main() {
3545
3545
  gl_Position = vec4( position, 1.0 );
3546
3546
  }`,qS=`uniform sampler2D shadow_pass;
3547
3547
  uniform vec2 resolution;
@@ -3569,7 +3569,7 @@ void main() {
3569
3569
  squared_mean = squared_mean / samples;
3570
3570
  float std_dev = sqrt( squared_mean - mean * mean );
3571
3571
  gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
3572
- }`;function XS(n,e,t){let i=new ca,s=new Ie,r=new Ie,o=new tt,a=new la({depthPacking:Nv}),l=new wh,c={},h=t.maxTextureSize,f={[zn]:Qt,[Qt]:zn,[Dn]:Dn},u=new _n({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ie},radius:{value:4}},vertexShader:KS,fragmentShader:qS}),d=u.clone();d.defines.HORIZONTAL_PASS=1;let g=new Yt;g.setAttribute("position",new Ct(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new Ft(g,u),p=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=_0;let A=this.type;this.render=function(y,S,C){if(p.enabled===!1||p.autoUpdate===!1&&p.needsUpdate===!1||y.length===0)return;let M=n.getRenderTarget(),E=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),w=n.state;w.setBlending(Ii),w.buffers.color.setClear(1,1,1,1),w.buffers.depth.setTest(!0),w.setScissorTest(!1);let G=A!==si&&this.type===si,U=A===si&&this.type!==si;for(let D=0,O=y.length;D<O;D++){let K=y[D],H=K.shadow;if(H===void 0){console.warn("THREE.WebGLShadowMap:",K,"has no shadow.");continue}if(H.autoUpdate===!1&&H.needsUpdate===!1)continue;s.copy(H.mapSize);let z=H.getFrameExtents();if(s.multiply(z),r.copy(H.mapSize),(s.x>h||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/z.x),s.x=r.x*z.x,H.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/z.y),s.y=r.y*z.y,H.mapSize.y=r.y)),H.map===null||G===!0||U===!0){let N=this.type!==si?{minFilter:Et,magFilter:Et}:{};H.map!==null&&H.map.dispose(),H.map=new pn(s.x,s.y,N),H.map.texture.name=K.name+".shadowMap",H.camera.updateProjectionMatrix()}n.setRenderTarget(H.map),n.clear();let F=H.getViewportCount();for(let N=0;N<F;N++){let R=H.getViewport(N);o.set(r.x*R.x,r.y*R.y,r.x*R.z,r.y*R.w),w.viewport(o),H.updateMatrices(K,N),i=H.getFrustum(),v(S,C,H.camera,K,this.type)}H.isPointLightShadow!==!0&&this.type===si&&x(H,C),H.needsUpdate=!1}A=this.type,p.needsUpdate=!1,n.setRenderTarget(M,E,b)};function x(y,S){let C=e.update(m);u.defines.VSM_SAMPLES!==y.blurSamples&&(u.defines.VSM_SAMPLES=y.blurSamples,d.defines.VSM_SAMPLES=y.blurSamples,u.needsUpdate=!0,d.needsUpdate=!0),y.mapPass===null&&(y.mapPass=new pn(s.x,s.y)),u.uniforms.shadow_pass.value=y.map.texture,u.uniforms.resolution.value=y.mapSize,u.uniforms.radius.value=y.radius,n.setRenderTarget(y.mapPass),n.clear(),n.renderBufferDirect(S,null,C,u,m,null),d.uniforms.shadow_pass.value=y.mapPass.texture,d.uniforms.resolution.value=y.mapSize,d.uniforms.radius.value=y.radius,n.setRenderTarget(y.map),n.clear(),n.renderBufferDirect(S,null,C,d,m,null)}function _(y,S,C,M){let E=null,b=C.isPointLight===!0?y.customDistanceMaterial:y.customDepthMaterial;if(b!==void 0)E=b;else if(E=C.isPointLight===!0?l:a,n.localClippingEnabled&&S.clipShadows===!0&&Array.isArray(S.clippingPlanes)&&S.clippingPlanes.length!==0||S.displacementMap&&S.displacementScale!==0||S.alphaMap&&S.alphaTest>0||S.map&&S.alphaTest>0){let w=E.uuid,G=S.uuid,U=c[w];U===void 0&&(U={},c[w]=U);let D=U[G];D===void 0&&(D=E.clone(),U[G]=D),E=D}if(E.visible=S.visible,E.wireframe=S.wireframe,M===si?E.side=S.shadowSide!==null?S.shadowSide:S.side:E.side=S.shadowSide!==null?S.shadowSide:f[S.side],E.alphaMap=S.alphaMap,E.alphaTest=S.alphaTest,E.map=S.map,E.clipShadows=S.clipShadows,E.clippingPlanes=S.clippingPlanes,E.clipIntersection=S.clipIntersection,E.displacementMap=S.displacementMap,E.displacementScale=S.displacementScale,E.displacementBias=S.displacementBias,E.wireframeLinewidth=S.wireframeLinewidth,E.linewidth=S.linewidth,C.isPointLight===!0&&E.isMeshDistanceMaterial===!0){let w=n.properties.get(E);w.light=C}return E}function v(y,S,C,M,E){if(y.visible===!1)return;if(y.layers.test(S.layers)&&(y.isMesh||y.isLine||y.isPoints)&&(y.castShadow||y.receiveShadow&&E===si)&&(!y.frustumCulled||i.intersectsObject(y))){y.modelViewMatrix.multiplyMatrices(C.matrixWorldInverse,y.matrixWorld);let G=e.update(y),U=y.material;if(Array.isArray(U)){let D=G.groups;for(let O=0,K=D.length;O<K;O++){let H=D[O],z=U[H.materialIndex];if(z&&z.visible){let F=_(y,z,M,E);n.renderBufferDirect(C,null,G,F,y,H)}}}else if(U.visible){let D=_(y,U,M,E);n.renderBufferDirect(C,null,G,D,y,null)}}let w=y.children;for(let G=0,U=w.length;G<U;G++)v(w[G],S,C,M,E)}}function YS(n,e,t){let i=t.isWebGL2;function s(){let k=!1,fe=new tt,J=null,re=new tt(0,0,0,0);return{setMask:function(de){J!==de&&!k&&(n.colorMask(de,de,de,de),J=de)},setLocked:function(de){k=de},setClear:function(de,Ne,Ze,rt,yn){yn===!0&&(de*=rt,Ne*=rt,Ze*=rt),fe.set(de,Ne,Ze,rt),re.equals(fe)===!1&&(n.clearColor(de,Ne,Ze,rt),re.copy(fe))},reset:function(){k=!1,J=null,re.set(-1,0,0,0)}}}function r(){let k=!1,fe=null,J=null,re=null;return{setTest:function(de){de?we(n.DEPTH_TEST):xe(n.DEPTH_TEST)},setMask:function(de){fe!==de&&!k&&(n.depthMask(de),fe=de)},setFunc:function(de){if(J!==de){switch(de){case gv:n.depthFunc(n.NEVER);break;case mv:n.depthFunc(n.ALWAYS);break;case _v:n.depthFunc(n.LESS);break;case dh:n.depthFunc(n.LEQUAL);break;case xv:n.depthFunc(n.EQUAL);break;case vv:n.depthFunc(n.GEQUAL);break;case Ev:n.depthFunc(n.GREATER);break;case yv:n.depthFunc(n.NOTEQUAL);break;default:n.depthFunc(n.LEQUAL)}J=de}},setLocked:function(de){k=de},setClear:function(de){re!==de&&(n.clearDepth(de),re=de)},reset:function(){k=!1,fe=null,J=null,re=null}}}function o(){let k=!1,fe=null,J=null,re=null,de=null,Ne=null,Ze=null,rt=null,yn=null;return{setTest:function(at){k||(at?we(n.STENCIL_TEST):xe(n.STENCIL_TEST))},setMask:function(at){fe!==at&&!k&&(n.stencilMask(at),fe=at)},setFunc:function(at,Jt,et){(J!==at||re!==Jt||de!==et)&&(n.stencilFunc(at,Jt,et),J=at,re=Jt,de=et)},setOp:function(at,Jt,et){(Ne!==at||Ze!==Jt||rt!==et)&&(n.stencilOp(at,Jt,et),Ne=at,Ze=Jt,rt=et)},setLocked:function(at){k=at},setClear:function(at){yn!==at&&(n.clearStencil(at),yn=at)},reset:function(){k=!1,fe=null,J=null,re=null,de=null,Ne=null,Ze=null,rt=null,yn=null}}}let a=new s,l=new r,c=new o,h=new WeakMap,f=new WeakMap,u={},d={},g=new WeakMap,m=[],p=null,A=!1,x=null,_=null,v=null,y=null,S=null,C=null,M=null,E=!1,b=null,w=null,G=null,U=null,D=null,O=n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS),K=!1,H=0,z=n.getParameter(n.VERSION);z.indexOf("WebGL")!==-1?(H=parseFloat(/^WebGL (\d)/.exec(z)[1]),K=H>=1):z.indexOf("OpenGL ES")!==-1&&(H=parseFloat(/^OpenGL ES (\d)/.exec(z)[1]),K=H>=2);let F=null,N={},R=n.getParameter(n.SCISSOR_BOX),L=n.getParameter(n.VIEWPORT),ne=new tt().fromArray(R),ie=new tt().fromArray(L);function he(k,fe,J,re){let de=new Uint8Array(4),Ne=n.createTexture();n.bindTexture(k,Ne),n.texParameteri(k,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(k,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Ze=0;Ze<J;Ze++)i&&(k===n.TEXTURE_3D||k===n.TEXTURE_2D_ARRAY)?n.texImage3D(fe,0,n.RGBA,1,1,re,0,n.RGBA,n.UNSIGNED_BYTE,de):n.texImage2D(fe+Ze,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,de);return Ne}let ae={};ae[n.TEXTURE_2D]=he(n.TEXTURE_2D,n.TEXTURE_2D,1),ae[n.TEXTURE_CUBE_MAP]=he(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),i&&(ae[n.TEXTURE_2D_ARRAY]=he(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),ae[n.TEXTURE_3D]=he(n.TEXTURE_3D,n.TEXTURE_3D,1,1)),a.setClear(0,0,0,1),l.setClear(1),c.setClear(0),we(n.DEPTH_TEST),l.setFunc(dh),Se(!1),$e(HA),we(n.CULL_FACE),ve(Ii);function we(k){u[k]!==!0&&(n.enable(k),u[k]=!0)}function xe(k){u[k]!==!1&&(n.disable(k),u[k]=!1)}function Ve(k,fe){return d[k]!==fe?(n.bindFramebuffer(k,fe),d[k]=fe,i&&(k===n.DRAW_FRAMEBUFFER&&(d[n.FRAMEBUFFER]=fe),k===n.FRAMEBUFFER&&(d[n.DRAW_FRAMEBUFFER]=fe)),!0):!1}function ft(k,fe){let J=m,re=!1;if(k)if(J=g.get(fe),J===void 0&&(J=[],g.set(fe,J)),k.isWebGLMultipleRenderTargets){let de=k.texture;if(J.length!==de.length||J[0]!==n.COLOR_ATTACHMENT0){for(let Ne=0,Ze=de.length;Ne<Ze;Ne++)J[Ne]=n.COLOR_ATTACHMENT0+Ne;J.length=de.length,re=!0}}else J[0]!==n.COLOR_ATTACHMENT0&&(J[0]=n.COLOR_ATTACHMENT0,re=!0);else J[0]!==n.BACK&&(J[0]=n.BACK,re=!0);re&&(t.isWebGL2?n.drawBuffers(J):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(J))}function Ce(k){return p!==k?(n.useProgram(k),p=k,!0):!1}let V={[Vs]:n.FUNC_ADD,[rv]:n.FUNC_SUBTRACT,[av]:n.FUNC_REVERSE_SUBTRACT};if(i)V[KA]=n.MIN,V[qA]=n.MAX;else{let k=e.get("EXT_blend_minmax");k!==null&&(V[KA]=k.MIN_EXT,V[qA]=k.MAX_EXT)}let lt={[ov]:n.ZERO,[cv]:n.ONE,[lv]:n.SRC_COLOR,[x0]:n.SRC_ALPHA,[pv]:n.SRC_ALPHA_SATURATE,[dv]:n.DST_COLOR,[uv]:n.DST_ALPHA,[hv]:n.ONE_MINUS_SRC_COLOR,[v0]:n.ONE_MINUS_SRC_ALPHA,[Av]:n.ONE_MINUS_DST_COLOR,[fv]:n.ONE_MINUS_DST_ALPHA};function ve(k,fe,J,re,de,Ne,Ze,rt){if(k===Ii){A===!0&&(xe(n.BLEND),A=!1);return}if(A===!1&&(we(n.BLEND),A=!0),k!==sv){if(k!==x||rt!==E){if((_!==Vs||S!==Vs)&&(n.blendEquation(n.FUNC_ADD),_=Vs,S=Vs),rt)switch(k){case Ks:n.blendFuncSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case zA:n.blendFunc(n.ONE,n.ONE);break;case VA:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case WA:n.blendFuncSeparate(n.ZERO,n.SRC_COLOR,n.ZERO,n.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",k);break}else switch(k){case Ks:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case zA:n.blendFunc(n.SRC_ALPHA,n.ONE);break;case VA:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case WA:n.blendFunc(n.ZERO,n.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",k);break}v=null,y=null,C=null,M=null,x=k,E=rt}return}de=de||fe,Ne=Ne||J,Ze=Ze||re,(fe!==_||de!==S)&&(n.blendEquationSeparate(V[fe],V[de]),_=fe,S=de),(J!==v||re!==y||Ne!==C||Ze!==M)&&(n.blendFuncSeparate(lt[J],lt[re],lt[Ne],lt[Ze]),v=J,y=re,C=Ne,M=Ze),x=k,E=!1}function Te(k,fe){k.side===Dn?xe(n.CULL_FACE):we(n.CULL_FACE);let J=k.side===Qt;fe&&(J=!J),Se(J),k.blending===Ks&&k.transparent===!1?ve(Ii):ve(k.blending,k.blendEquation,k.blendSrc,k.blendDst,k.blendEquationAlpha,k.blendSrcAlpha,k.blendDstAlpha,k.premultipliedAlpha),l.setFunc(k.depthFunc),l.setTest(k.depthTest),l.setMask(k.depthWrite),a.setMask(k.colorWrite);let re=k.stencilWrite;c.setTest(re),re&&(c.setMask(k.stencilWriteMask),c.setFunc(k.stencilFunc,k.stencilRef,k.stencilFuncMask),c.setOp(k.stencilFail,k.stencilZFail,k.stencilZPass)),ye(k.polygonOffset,k.polygonOffsetFactor,k.polygonOffsetUnits),k.alphaToCoverage===!0?we(n.SAMPLE_ALPHA_TO_COVERAGE):xe(n.SAMPLE_ALPHA_TO_COVERAGE)}function Se(k){b!==k&&(k?n.frontFace(n.CW):n.frontFace(n.CCW),b=k)}function $e(k){k!==tv?(we(n.CULL_FACE),k!==w&&(k===HA?n.cullFace(n.BACK):k===nv?n.cullFace(n.FRONT):n.cullFace(n.FRONT_AND_BACK))):xe(n.CULL_FACE),w=k}function Ue(k){k!==G&&(K&&n.lineWidth(k),G=k)}function ye(k,fe,J){k?(we(n.POLYGON_OFFSET_FILL),(U!==fe||D!==J)&&(n.polygonOffset(fe,J),U=fe,D=J)):xe(n.POLYGON_OFFSET_FILL)}function Be(k){k?we(n.SCISSOR_TEST):xe(n.SCISSOR_TEST)}function nt(k){k===void 0&&(k=n.TEXTURE0+O-1),F!==k&&(n.activeTexture(k),F=k)}function dt(k,fe,J){J===void 0&&(F===null?J=n.TEXTURE0+O-1:J=F);let re=N[J];re===void 0&&(re={type:void 0,texture:void 0},N[J]=re),(re.type!==k||re.texture!==fe)&&(F!==J&&(n.activeTexture(J),F=J),n.bindTexture(k,fe||ae[k]),re.type=k,re.texture=fe)}function B(){let k=N[F];k!==void 0&&k.type!==void 0&&(n.bindTexture(k.type,null),k.type=void 0,k.texture=void 0)}function I(){try{n.compressedTexImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function X(){try{n.compressedTexImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function le(){try{n.texSubImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function se(){try{n.texSubImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function ce(){try{n.compressedTexSubImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function me(){try{n.compressedTexSubImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function oe(){try{n.texStorage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function Z(){try{n.texStorage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function P(){try{n.texImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function ee(){try{n.texImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function ge(k){ne.equals(k)===!1&&(n.scissor(k.x,k.y,k.z,k.w),ne.copy(k))}function ue(k){ie.equals(k)===!1&&(n.viewport(k.x,k.y,k.z,k.w),ie.copy(k))}function Ae(k,fe){let J=f.get(fe);J===void 0&&(J=new WeakMap,f.set(fe,J));let re=J.get(k);re===void 0&&(re=n.getUniformBlockIndex(fe,k.name),J.set(k,re))}function Re(k,fe){let re=f.get(fe).get(k);h.get(fe)!==re&&(n.uniformBlockBinding(fe,re,k.__bindingPointIndex),h.set(fe,re))}function He(){n.disable(n.BLEND),n.disable(n.CULL_FACE),n.disable(n.DEPTH_TEST),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SCISSOR_TEST),n.disable(n.STENCIL_TEST),n.disable(n.SAMPLE_ALPHA_TO_COVERAGE),n.blendEquation(n.FUNC_ADD),n.blendFunc(n.ONE,n.ZERO),n.blendFuncSeparate(n.ONE,n.ZERO,n.ONE,n.ZERO),n.colorMask(!0,!0,!0,!0),n.clearColor(0,0,0,0),n.depthMask(!0),n.depthFunc(n.LESS),n.clearDepth(1),n.stencilMask(4294967295),n.stencilFunc(n.ALWAYS,0,4294967295),n.stencilOp(n.KEEP,n.KEEP,n.KEEP),n.clearStencil(0),n.cullFace(n.BACK),n.frontFace(n.CCW),n.polygonOffset(0,0),n.activeTexture(n.TEXTURE0),n.bindFramebuffer(n.FRAMEBUFFER,null),i===!0&&(n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),n.bindFramebuffer(n.READ_FRAMEBUFFER,null)),n.useProgram(null),n.lineWidth(1),n.scissor(0,0,n.canvas.width,n.canvas.height),n.viewport(0,0,n.canvas.width,n.canvas.height),u={},F=null,N={},d={},g=new WeakMap,m=[],p=null,A=!1,x=null,_=null,v=null,y=null,S=null,C=null,M=null,E=!1,b=null,w=null,G=null,U=null,D=null,ne.set(0,0,n.canvas.width,n.canvas.height),ie.set(0,0,n.canvas.width,n.canvas.height),a.reset(),l.reset(),c.reset()}return{buffers:{color:a,depth:l,stencil:c},enable:we,disable:xe,bindFramebuffer:Ve,drawBuffers:ft,useProgram:Ce,setBlending:ve,setMaterial:Te,setFlipSided:Se,setCullFace:$e,setLineWidth:Ue,setPolygonOffset:ye,setScissorTest:Be,activeTexture:nt,bindTexture:dt,unbindTexture:B,compressedTexImage2D:I,compressedTexImage3D:X,texImage2D:P,texImage3D:ee,updateUBOMapping:Ae,uniformBlockBinding:Re,texStorage2D:oe,texStorage3D:Z,texSubImage2D:le,texSubImage3D:se,compressedTexSubImage2D:ce,compressedTexSubImage3D:me,scissor:ge,viewport:ue,reset:He}}function JS(n,e,t,i,s,r,o){let a=s.isWebGL2,l=s.maxTextures,c=s.maxCubemapSize,h=s.maxTextureSize,f=s.maxSamples,u=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,d=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),g=new WeakMap,m,p=new WeakMap,A=!1;try{A=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function x(B,I){return A?new OffscreenCanvas(B,I):aa("canvas")}function _(B,I,X,le){let se=1;if((B.width>le||B.height>le)&&(se=le/Math.max(B.width,B.height)),se<1||I===!0)if(typeof HTMLImageElement<"u"&&B instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&B instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&B instanceof ImageBitmap){let ce=I?ac:Math.floor,me=ce(se*B.width),oe=ce(se*B.height);m===void 0&&(m=x(me,oe));let Z=X?x(me,oe):m;return Z.width=me,Z.height=oe,Z.getContext("2d").drawImage(B,0,0,me,oe),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+B.width+"x"+B.height+") to ("+me+"x"+oe+")."),Z}else return"data"in B&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+B.width+"x"+B.height+")."),B;return B}function v(B){return mh(B.width)&&mh(B.height)}function y(B){return a?!1:B.wrapS!==kt||B.wrapT!==kt||B.minFilter!==Et&&B.minFilter!==ut}function S(B,I){return B.generateMipmaps&&I&&B.minFilter!==Et&&B.minFilter!==ut}function C(B){n.generateMipmap(B)}function M(B,I,X,le,se=!1){if(a===!1)return I;if(B!==null){if(n[B]!==void 0)return n[B];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+B+"'")}let ce=I;return I===n.RED&&(X===n.FLOAT&&(ce=n.R32F),X===n.HALF_FLOAT&&(ce=n.R16F),X===n.UNSIGNED_BYTE&&(ce=n.R8)),I===n.RED_INTEGER&&(X===n.UNSIGNED_BYTE&&(ce=n.R8UI),X===n.UNSIGNED_SHORT&&(ce=n.R16UI),X===n.UNSIGNED_INT&&(ce=n.R32UI),X===n.BYTE&&(ce=n.R8I),X===n.SHORT&&(ce=n.R16I),X===n.INT&&(ce=n.R32I)),I===n.RG&&(X===n.FLOAT&&(ce=n.RG32F),X===n.HALF_FLOAT&&(ce=n.RG16F),X===n.UNSIGNED_BYTE&&(ce=n.RG8)),I===n.RGBA&&(X===n.FLOAT&&(ce=n.RGBA32F),X===n.HALF_FLOAT&&(ce=n.RGBA16F),X===n.UNSIGNED_BYTE&&(ce=le===be&&se===!1?n.SRGB8_ALPHA8:n.RGBA8),X===n.UNSIGNED_SHORT_4_4_4_4&&(ce=n.RGBA4),X===n.UNSIGNED_SHORT_5_5_5_1&&(ce=n.RGB5_A1)),(ce===n.R16F||ce===n.R32F||ce===n.RG16F||ce===n.RG32F||ce===n.RGBA16F||ce===n.RGBA32F)&&e.get("EXT_color_buffer_float"),ce}function E(B,I,X){return S(B,X)===!0||B.isFramebufferTexture&&B.minFilter!==Et&&B.minFilter!==ut?Math.log2(Math.max(I.width,I.height))+1:B.mipmaps!==void 0&&B.mipmaps.length>0?B.mipmaps.length:B.isCompressedTexture&&Array.isArray(B.image)?I.mipmaps.length:1}function b(B){return B===Et||B===$o||B===Jr?n.NEAREST:n.LINEAR}function w(B){let I=B.target;I.removeEventListener("dispose",w),U(I),I.isVideoTexture&&g.delete(I)}function G(B){let I=B.target;I.removeEventListener("dispose",G),O(I)}function U(B){let I=i.get(B);if(I.__webglInit===void 0)return;let X=B.source,le=p.get(X);if(le){let se=le[I.__cacheKey];se.usedTimes--,se.usedTimes===0&&D(B),Object.keys(le).length===0&&p.delete(X)}i.remove(B)}function D(B){let I=i.get(B);n.deleteTexture(I.__webglTexture);let X=B.source,le=p.get(X);delete le[I.__cacheKey],o.memory.textures--}function O(B){let I=B.texture,X=i.get(B),le=i.get(I);if(le.__webglTexture!==void 0&&(n.deleteTexture(le.__webglTexture),o.memory.textures--),B.depthTexture&&B.depthTexture.dispose(),B.isWebGLCubeRenderTarget)for(let se=0;se<6;se++){if(Array.isArray(X.__webglFramebuffer[se]))for(let ce=0;ce<X.__webglFramebuffer[se].length;ce++)n.deleteFramebuffer(X.__webglFramebuffer[se][ce]);else n.deleteFramebuffer(X.__webglFramebuffer[se]);X.__webglDepthbuffer&&n.deleteRenderbuffer(X.__webglDepthbuffer[se])}else{if(Array.isArray(X.__webglFramebuffer))for(let se=0;se<X.__webglFramebuffer.length;se++)n.deleteFramebuffer(X.__webglFramebuffer[se]);else n.deleteFramebuffer(X.__webglFramebuffer);if(X.__webglDepthbuffer&&n.deleteRenderbuffer(X.__webglDepthbuffer),X.__webglMultisampledFramebuffer&&n.deleteFramebuffer(X.__webglMultisampledFramebuffer),X.__webglColorRenderbuffer)for(let se=0;se<X.__webglColorRenderbuffer.length;se++)X.__webglColorRenderbuffer[se]&&n.deleteRenderbuffer(X.__webglColorRenderbuffer[se]);X.__webglDepthRenderbuffer&&n.deleteRenderbuffer(X.__webglDepthRenderbuffer)}if(B.isWebGLMultipleRenderTargets)for(let se=0,ce=I.length;se<ce;se++){let me=i.get(I[se]);me.__webglTexture&&(n.deleteTexture(me.__webglTexture),o.memory.textures--),i.remove(I[se])}i.remove(I),i.remove(B)}let K=0;function H(){K=0}function z(){let B=K;return B>=l&&console.warn("THREE.WebGLTextures: Trying to use "+B+" texture units while this GPU supports only "+l),K+=1,B}function F(B){let I=[];return I.push(B.wrapS),I.push(B.wrapT),I.push(B.wrapR||0),I.push(B.magFilter),I.push(B.minFilter),I.push(B.anisotropy),I.push(B.internalFormat),I.push(B.format),I.push(B.type),I.push(B.generateMipmaps),I.push(B.premultiplyAlpha),I.push(B.flipY),I.push(B.unpackAlignment),I.push(B.colorSpace),I.join()}function N(B,I){let X=i.get(B);if(B.isVideoTexture&&nt(B),B.isRenderTargetTexture===!1&&B.version>0&&X.__version!==B.version){let le=B.image;if(le===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(le.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Ve(X,B,I);return}}t.bindTexture(n.TEXTURE_2D,X.__webglTexture,n.TEXTURE0+I)}function R(B,I){let X=i.get(B);if(B.version>0&&X.__version!==B.version){Ve(X,B,I);return}t.bindTexture(n.TEXTURE_2D_ARRAY,X.__webglTexture,n.TEXTURE0+I)}function L(B,I){let X=i.get(B);if(B.version>0&&X.__version!==B.version){Ve(X,B,I);return}t.bindTexture(n.TEXTURE_3D,X.__webglTexture,n.TEXTURE0+I)}function ne(B,I){let X=i.get(B);if(B.version>0&&X.__version!==B.version){ft(X,B,I);return}t.bindTexture(n.TEXTURE_CUBE_MAP,X.__webglTexture,n.TEXTURE0+I)}let ie={[ss]:n.REPEAT,[kt]:n.CLAMP_TO_EDGE,[ra]:n.MIRRORED_REPEAT},he={[Et]:n.NEAREST,[$o]:n.NEAREST_MIPMAP_NEAREST,[Jr]:n.NEAREST_MIPMAP_LINEAR,[ut]:n.LINEAR,[Wh]:n.LINEAR_MIPMAP_NEAREST,[Fn]:n.LINEAR_MIPMAP_LINEAR},ae={[Qv]:n.NEVER,[qv]:n.ALWAYS,[Gv]:n.LESS,[zv]:n.LEQUAL,[Hv]:n.EQUAL,[Kv]:n.GEQUAL,[Vv]:n.GREATER,[Wv]:n.NOTEQUAL};function we(B,I,X){if(X?(n.texParameteri(B,n.TEXTURE_WRAP_S,ie[I.wrapS]),n.texParameteri(B,n.TEXTURE_WRAP_T,ie[I.wrapT]),(B===n.TEXTURE_3D||B===n.TEXTURE_2D_ARRAY)&&n.texParameteri(B,n.TEXTURE_WRAP_R,ie[I.wrapR]),n.texParameteri(B,n.TEXTURE_MAG_FILTER,he[I.magFilter]),n.texParameteri(B,n.TEXTURE_MIN_FILTER,he[I.minFilter])):(n.texParameteri(B,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(B,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(B===n.TEXTURE_3D||B===n.TEXTURE_2D_ARRAY)&&n.texParameteri(B,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(I.wrapS!==kt||I.wrapT!==kt)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(B,n.TEXTURE_MAG_FILTER,b(I.magFilter)),n.texParameteri(B,n.TEXTURE_MIN_FILTER,b(I.minFilter)),I.minFilter!==Et&&I.minFilter!==ut&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),I.compareFunction&&(n.texParameteri(B,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(B,n.TEXTURE_COMPARE_FUNC,ae[I.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){let le=e.get("EXT_texture_filter_anisotropic");if(I.magFilter===Et||I.minFilter!==Jr&&I.minFilter!==Fn||I.type===Lt&&e.has("OES_texture_float_linear")===!1||a===!1&&I.type===Wt&&e.has("OES_texture_half_float_linear")===!1)return;(I.anisotropy>1||i.get(I).__currentAnisotropy)&&(n.texParameterf(B,le.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(I.anisotropy,s.getMaxAnisotropy())),i.get(I).__currentAnisotropy=I.anisotropy)}}function xe(B,I){let X=!1;B.__webglInit===void 0&&(B.__webglInit=!0,I.addEventListener("dispose",w));let le=I.source,se=p.get(le);se===void 0&&(se={},p.set(le,se));let ce=F(I);if(ce!==B.__cacheKey){se[ce]===void 0&&(se[ce]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,X=!0),se[ce].usedTimes++;let me=se[B.__cacheKey];me!==void 0&&(se[B.__cacheKey].usedTimes--,me.usedTimes===0&&D(I)),B.__cacheKey=ce,B.__webglTexture=se[ce].texture}return X}function Ve(B,I,X){let le=n.TEXTURE_2D;(I.isDataArrayTexture||I.isCompressedArrayTexture)&&(le=n.TEXTURE_2D_ARRAY),I.isData3DTexture&&(le=n.TEXTURE_3D);let se=xe(B,I),ce=I.source;t.bindTexture(le,B.__webglTexture,n.TEXTURE0+X);let me=i.get(ce);if(ce.version!==me.__version||se===!0){t.activeTexture(n.TEXTURE0+X),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,I.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,I.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);let oe=y(I)&&v(I.image)===!1,Z=_(I.image,oe,!1,h);Z=dt(I,Z);let P=v(Z)||a,ee=r.convert(I.format,I.colorSpace),ge=r.convert(I.type),ue=M(I.internalFormat,ee,ge,I.colorSpace);we(le,I,P);let Ae,Re=I.mipmaps,He=a&&I.isVideoTexture!==!0,k=me.__version===void 0||se===!0,fe=E(I,Z,P);if(I.isDepthTexture)ue=n.DEPTH_COMPONENT,a?I.type===Lt?ue=n.DEPTH_COMPONENT32F:I.type===bi?ue=n.DEPTH_COMPONENT24:I.type===es?ue=n.DEPTH24_STENCIL8:ue=n.DEPTH_COMPONENT16:I.type===Lt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),I.format===ts&&ue===n.DEPTH_COMPONENT&&I.type!==Kh&&I.type!==bi&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),I.type=bi,ge=r.convert(I.type)),I.format===Js&&ue===n.DEPTH_COMPONENT&&(ue=n.DEPTH_STENCIL,I.type!==es&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),I.type=es,ge=r.convert(I.type))),k&&(He?t.texStorage2D(n.TEXTURE_2D,1,ue,Z.width,Z.height):t.texImage2D(n.TEXTURE_2D,0,ue,Z.width,Z.height,0,ee,ge,null));else if(I.isDataTexture)if(Re.length>0&&P){He&&k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Re[0].width,Re[0].height);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],He?t.texSubImage2D(n.TEXTURE_2D,J,0,0,Ae.width,Ae.height,ee,ge,Ae.data):t.texImage2D(n.TEXTURE_2D,J,ue,Ae.width,Ae.height,0,ee,ge,Ae.data);I.generateMipmaps=!1}else He?(k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Z.width,Z.height),t.texSubImage2D(n.TEXTURE_2D,0,0,0,Z.width,Z.height,ee,ge,Z.data)):t.texImage2D(n.TEXTURE_2D,0,ue,Z.width,Z.height,0,ee,ge,Z.data);else if(I.isCompressedTexture)if(I.isCompressedArrayTexture){He&&k&&t.texStorage3D(n.TEXTURE_2D_ARRAY,fe,ue,Re[0].width,Re[0].height,Z.depth);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],I.format!==Dt?ee!==null?He?t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,J,0,0,0,Ae.width,Ae.height,Z.depth,ee,Ae.data,0,0):t.compressedTexImage3D(n.TEXTURE_2D_ARRAY,J,ue,Ae.width,Ae.height,Z.depth,0,Ae.data,0,0):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):He?t.texSubImage3D(n.TEXTURE_2D_ARRAY,J,0,0,0,Ae.width,Ae.height,Z.depth,ee,ge,Ae.data):t.texImage3D(n.TEXTURE_2D_ARRAY,J,ue,Ae.width,Ae.height,Z.depth,0,ee,ge,Ae.data)}else{He&&k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Re[0].width,Re[0].height);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],I.format!==Dt?ee!==null?He?t.compressedTexSubImage2D(n.TEXTURE_2D,J,0,0,Ae.width,Ae.height,ee,Ae.data):t.compressedTexImage2D(n.TEXTURE_2D,J,ue,Ae.width,Ae.height,0,Ae.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):He?t.texSubImage2D(n.TEXTURE_2D,J,0,0,Ae.width,Ae.height,ee,ge,Ae.data):t.texImage2D(n.TEXTURE_2D,J,ue,Ae.width,Ae.height,0,ee,ge,Ae.data)}else if(I.isDataArrayTexture)He?(k&&t.texStorage3D(n.TEXTURE_2D_ARRAY,fe,ue,Z.width,Z.height,Z.depth),t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,Z.width,Z.height,Z.depth,ee,ge,Z.data)):t.texImage3D(n.TEXTURE_2D_ARRAY,0,ue,Z.width,Z.height,Z.depth,0,ee,ge,Z.data);else if(I.isData3DTexture)He?(k&&t.texStorage3D(n.TEXTURE_3D,fe,ue,Z.width,Z.height,Z.depth),t.texSubImage3D(n.TEXTURE_3D,0,0,0,0,Z.width,Z.height,Z.depth,ee,ge,Z.data)):t.texImage3D(n.TEXTURE_3D,0,ue,Z.width,Z.height,Z.depth,0,ee,ge,Z.data);else if(I.isFramebufferTexture){if(k)if(He)t.texStorage2D(n.TEXTURE_2D,fe,ue,Z.width,Z.height);else{let J=Z.width,re=Z.height;for(let de=0;de<fe;de++)t.texImage2D(n.TEXTURE_2D,de,ue,J,re,0,ee,ge,null),J>>=1,re>>=1}}else if(Re.length>0&&P){He&&k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Re[0].width,Re[0].height);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],He?t.texSubImage2D(n.TEXTURE_2D,J,0,0,ee,ge,Ae):t.texImage2D(n.TEXTURE_2D,J,ue,ee,ge,Ae);I.generateMipmaps=!1}else He?(k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Z.width,Z.height),t.texSubImage2D(n.TEXTURE_2D,0,0,0,ee,ge,Z)):t.texImage2D(n.TEXTURE_2D,0,ue,ee,ge,Z);S(I,P)&&C(le),me.__version=ce.version,I.onUpdate&&I.onUpdate(I)}B.__version=I.version}function ft(B,I,X){if(I.image.length!==6)return;let le=xe(B,I),se=I.source;t.bindTexture(n.TEXTURE_CUBE_MAP,B.__webglTexture,n.TEXTURE0+X);let ce=i.get(se);if(se.version!==ce.__version||le===!0){t.activeTexture(n.TEXTURE0+X),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,I.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,I.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);let me=I.isCompressedTexture||I.image[0].isCompressedTexture,oe=I.image[0]&&I.image[0].isDataTexture,Z=[];for(let J=0;J<6;J++)!me&&!oe?Z[J]=_(I.image[J],!1,!0,c):Z[J]=oe?I.image[J].image:I.image[J],Z[J]=dt(I,Z[J]);let P=Z[0],ee=v(P)||a,ge=r.convert(I.format,I.colorSpace),ue=r.convert(I.type),Ae=M(I.internalFormat,ge,ue,I.colorSpace),Re=a&&I.isVideoTexture!==!0,He=ce.__version===void 0||le===!0,k=E(I,P,ee);we(n.TEXTURE_CUBE_MAP,I,ee);let fe;if(me){Re&&He&&t.texStorage2D(n.TEXTURE_CUBE_MAP,k,Ae,P.width,P.height);for(let J=0;J<6;J++){fe=Z[J].mipmaps;for(let re=0;re<fe.length;re++){let de=fe[re];I.format!==Dt?ge!==null?Re?t.compressedTexSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,0,0,de.width,de.height,ge,de.data):t.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,Ae,de.width,de.height,0,de.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,0,0,de.width,de.height,ge,ue,de.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,Ae,de.width,de.height,0,ge,ue,de.data)}}}else{fe=I.mipmaps,Re&&He&&(fe.length>0&&k++,t.texStorage2D(n.TEXTURE_CUBE_MAP,k,Ae,Z[0].width,Z[0].height));for(let J=0;J<6;J++)if(oe){Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,0,0,Z[J].width,Z[J].height,ge,ue,Z[J].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,Ae,Z[J].width,Z[J].height,0,ge,ue,Z[J].data);for(let re=0;re<fe.length;re++){let Ne=fe[re].image[J].image;Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,0,0,Ne.width,Ne.height,ge,ue,Ne.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,Ae,Ne.width,Ne.height,0,ge,ue,Ne.data)}}else{Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,0,0,ge,ue,Z[J]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,Ae,ge,ue,Z[J]);for(let re=0;re<fe.length;re++){let de=fe[re];Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,0,0,ge,ue,de.image[J]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,Ae,ge,ue,de.image[J])}}}S(I,ee)&&C(n.TEXTURE_CUBE_MAP),ce.__version=se.version,I.onUpdate&&I.onUpdate(I)}B.__version=I.version}function Ce(B,I,X,le,se,ce){let me=r.convert(X.format,X.colorSpace),oe=r.convert(X.type),Z=M(X.internalFormat,me,oe,X.colorSpace);if(!i.get(I).__hasExternalTextures){let ee=Math.max(1,I.width>>ce),ge=Math.max(1,I.height>>ce);se===n.TEXTURE_3D||se===n.TEXTURE_2D_ARRAY?t.texImage3D(se,ce,Z,ee,ge,I.depth,0,me,oe,null):t.texImage2D(se,ce,Z,ee,ge,0,me,oe,null)}t.bindFramebuffer(n.FRAMEBUFFER,B),Be(I)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,le,se,i.get(X).__webglTexture,0,ye(I)):(se===n.TEXTURE_2D||se>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&se<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,le,se,i.get(X).__webglTexture,ce),t.bindFramebuffer(n.FRAMEBUFFER,null)}function V(B,I,X){if(n.bindRenderbuffer(n.RENDERBUFFER,B),I.depthBuffer&&!I.stencilBuffer){let le=n.DEPTH_COMPONENT16;if(X||Be(I)){let se=I.depthTexture;se&&se.isDepthTexture&&(se.type===Lt?le=n.DEPTH_COMPONENT32F:se.type===bi&&(le=n.DEPTH_COMPONENT24));let ce=ye(I);Be(I)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,ce,le,I.width,I.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,ce,le,I.width,I.height)}else n.renderbufferStorage(n.RENDERBUFFER,le,I.width,I.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,B)}else if(I.depthBuffer&&I.stencilBuffer){let le=ye(I);X&&Be(I)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,le,n.DEPTH24_STENCIL8,I.width,I.height):Be(I)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,le,n.DEPTH24_STENCIL8,I.width,I.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,I.width,I.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,B)}else{let le=I.isWebGLMultipleRenderTargets===!0?I.texture:[I.texture];for(let se=0;se<le.length;se++){let ce=le[se],me=r.convert(ce.format,ce.colorSpace),oe=r.convert(ce.type),Z=M(ce.internalFormat,me,oe,ce.colorSpace),P=ye(I);X&&Be(I)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,P,Z,I.width,I.height):Be(I)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,P,Z,I.width,I.height):n.renderbufferStorage(n.RENDERBUFFER,Z,I.width,I.height)}}n.bindRenderbuffer(n.RENDERBUFFER,null)}function lt(B,I){if(I&&I.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(n.FRAMEBUFFER,B),!(I.depthTexture&&I.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(I.depthTexture).__webglTexture||I.depthTexture.image.width!==I.width||I.depthTexture.image.height!==I.height)&&(I.depthTexture.image.width=I.width,I.depthTexture.image.height=I.height,I.depthTexture.needsUpdate=!0),N(I.depthTexture,0);let le=i.get(I.depthTexture).__webglTexture,se=ye(I);if(I.depthTexture.format===ts)Be(I)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,le,0,se):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,le,0);else if(I.depthTexture.format===Js)Be(I)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,le,0,se):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,le,0);else throw new Error("Unknown depthTexture format")}function ve(B){let I=i.get(B),X=B.isWebGLCubeRenderTarget===!0;if(B.depthTexture&&!I.__autoAllocateDepthBuffer){if(X)throw new Error("target.depthTexture not supported in Cube render targets");lt(I.__webglFramebuffer,B)}else if(X){I.__webglDepthbuffer=[];for(let le=0;le<6;le++)t.bindFramebuffer(n.FRAMEBUFFER,I.__webglFramebuffer[le]),I.__webglDepthbuffer[le]=n.createRenderbuffer(),V(I.__webglDepthbuffer[le],B,!1)}else t.bindFramebuffer(n.FRAMEBUFFER,I.__webglFramebuffer),I.__webglDepthbuffer=n.createRenderbuffer(),V(I.__webglDepthbuffer,B,!1);t.bindFramebuffer(n.FRAMEBUFFER,null)}function Te(B,I,X){let le=i.get(B);I!==void 0&&Ce(le.__webglFramebuffer,B,B.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),X!==void 0&&ve(B)}function Se(B){let I=B.texture,X=i.get(B),le=i.get(I);B.addEventListener("dispose",G),B.isWebGLMultipleRenderTargets!==!0&&(le.__webglTexture===void 0&&(le.__webglTexture=n.createTexture()),le.__version=I.version,o.memory.textures++);let se=B.isWebGLCubeRenderTarget===!0,ce=B.isWebGLMultipleRenderTargets===!0,me=v(B)||a;if(se){X.__webglFramebuffer=[];for(let oe=0;oe<6;oe++)if(a&&I.mipmaps&&I.mipmaps.length>0){X.__webglFramebuffer[oe]=[];for(let Z=0;Z<I.mipmaps.length;Z++)X.__webglFramebuffer[oe][Z]=n.createFramebuffer()}else X.__webglFramebuffer[oe]=n.createFramebuffer()}else{if(a&&I.mipmaps&&I.mipmaps.length>0){X.__webglFramebuffer=[];for(let oe=0;oe<I.mipmaps.length;oe++)X.__webglFramebuffer[oe]=n.createFramebuffer()}else X.__webglFramebuffer=n.createFramebuffer();if(ce)if(s.drawBuffers){let oe=B.texture;for(let Z=0,P=oe.length;Z<P;Z++){let ee=i.get(oe[Z]);ee.__webglTexture===void 0&&(ee.__webglTexture=n.createTexture(),o.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");if(a&&B.samples>0&&Be(B)===!1){let oe=ce?I:[I];X.__webglMultisampledFramebuffer=n.createFramebuffer(),X.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,X.__webglMultisampledFramebuffer);for(let Z=0;Z<oe.length;Z++){let P=oe[Z];X.__webglColorRenderbuffer[Z]=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,X.__webglColorRenderbuffer[Z]);let ee=r.convert(P.format,P.colorSpace),ge=r.convert(P.type),ue=M(P.internalFormat,ee,ge,P.colorSpace,B.isXRRenderTarget===!0),Ae=ye(B);n.renderbufferStorageMultisample(n.RENDERBUFFER,Ae,ue,B.width,B.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Z,n.RENDERBUFFER,X.__webglColorRenderbuffer[Z])}n.bindRenderbuffer(n.RENDERBUFFER,null),B.depthBuffer&&(X.__webglDepthRenderbuffer=n.createRenderbuffer(),V(X.__webglDepthRenderbuffer,B,!0)),t.bindFramebuffer(n.FRAMEBUFFER,null)}}if(se){t.bindTexture(n.TEXTURE_CUBE_MAP,le.__webglTexture),we(n.TEXTURE_CUBE_MAP,I,me);for(let oe=0;oe<6;oe++)if(a&&I.mipmaps&&I.mipmaps.length>0)for(let Z=0;Z<I.mipmaps.length;Z++)Ce(X.__webglFramebuffer[oe][Z],B,I,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+oe,Z);else Ce(X.__webglFramebuffer[oe],B,I,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+oe,0);S(I,me)&&C(n.TEXTURE_CUBE_MAP),t.unbindTexture()}else if(ce){let oe=B.texture;for(let Z=0,P=oe.length;Z<P;Z++){let ee=oe[Z],ge=i.get(ee);t.bindTexture(n.TEXTURE_2D,ge.__webglTexture),we(n.TEXTURE_2D,ee,me),Ce(X.__webglFramebuffer,B,ee,n.COLOR_ATTACHMENT0+Z,n.TEXTURE_2D,0),S(ee,me)&&C(n.TEXTURE_2D)}t.unbindTexture()}else{let oe=n.TEXTURE_2D;if((B.isWebGL3DRenderTarget||B.isWebGLArrayRenderTarget)&&(a?oe=B.isWebGL3DRenderTarget?n.TEXTURE_3D:n.TEXTURE_2D_ARRAY:console.error("THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.")),t.bindTexture(oe,le.__webglTexture),we(oe,I,me),a&&I.mipmaps&&I.mipmaps.length>0)for(let Z=0;Z<I.mipmaps.length;Z++)Ce(X.__webglFramebuffer[Z],B,I,n.COLOR_ATTACHMENT0,oe,Z);else Ce(X.__webglFramebuffer,B,I,n.COLOR_ATTACHMENT0,oe,0);S(I,me)&&C(oe),t.unbindTexture()}B.depthBuffer&&ve(B)}function $e(B){let I=v(B)||a,X=B.isWebGLMultipleRenderTargets===!0?B.texture:[B.texture];for(let le=0,se=X.length;le<se;le++){let ce=X[le];if(S(ce,I)){let me=B.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:n.TEXTURE_2D,oe=i.get(ce).__webglTexture;t.bindTexture(me,oe),C(me),t.unbindTexture()}}}function Ue(B){if(a&&B.samples>0&&Be(B)===!1){let I=B.isWebGLMultipleRenderTargets?B.texture:[B.texture],X=B.width,le=B.height,se=n.COLOR_BUFFER_BIT,ce=[],me=B.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,oe=i.get(B),Z=B.isWebGLMultipleRenderTargets===!0;if(Z)for(let P=0;P<I.length;P++)t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.RENDERBUFFER,null),t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.TEXTURE_2D,null,0);t.bindFramebuffer(n.READ_FRAMEBUFFER,oe.__webglMultisampledFramebuffer),t.bindFramebuffer(n.DRAW_FRAMEBUFFER,oe.__webglFramebuffer);for(let P=0;P<I.length;P++){ce.push(n.COLOR_ATTACHMENT0+P),B.depthBuffer&&ce.push(me);let ee=oe.__ignoreDepthValues!==void 0?oe.__ignoreDepthValues:!1;if(ee===!1&&(B.depthBuffer&&(se|=n.DEPTH_BUFFER_BIT),B.stencilBuffer&&(se|=n.STENCIL_BUFFER_BIT)),Z&&n.framebufferRenderbuffer(n.READ_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.RENDERBUFFER,oe.__webglColorRenderbuffer[P]),ee===!0&&(n.invalidateFramebuffer(n.READ_FRAMEBUFFER,[me]),n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,[me])),Z){let ge=i.get(I[P]).__webglTexture;n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,ge,0)}n.blitFramebuffer(0,0,X,le,0,0,X,le,se,n.NEAREST),d&&n.invalidateFramebuffer(n.READ_FRAMEBUFFER,ce)}if(t.bindFramebuffer(n.READ_FRAMEBUFFER,null),t.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),Z)for(let P=0;P<I.length;P++){t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.RENDERBUFFER,oe.__webglColorRenderbuffer[P]);let ee=i.get(I[P]).__webglTexture;t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.TEXTURE_2D,ee,0)}t.bindFramebuffer(n.DRAW_FRAMEBUFFER,oe.__webglMultisampledFramebuffer)}}function ye(B){return Math.min(f,B.samples)}function Be(B){let I=i.get(B);return a&&B.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&I.__useRenderToTexture!==!1}function nt(B){let I=o.render.frame;g.get(B)!==I&&(g.set(B,I),B.update())}function dt(B,I){let X=B.colorSpace,le=B.format,se=B.type;return B.isCompressedTexture===!0||B.format===gh||X!==An&&X!==Hn&&(X===be?a===!1?e.has("EXT_sRGB")===!0&&le===Dt?(B.format=gh,B.minFilter=ut,B.generateMipmaps=!1):I=oc.sRGBToLinear(I):(le!==Dt||se!==Pt)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",X)),I}this.allocateTextureUnit=z,this.resetTextureUnits=H,this.setTexture2D=N,this.setTexture2DArray=R,this.setTexture3D=L,this.setTextureCube=ne,this.rebindTextures=Te,this.setupRenderTarget=Se,this.updateRenderTargetMipmap=$e,this.updateMultisampleRenderTarget=Ue,this.setupDepthRenderbuffer=ve,this.setupFrameBufferTexture=Ce,this.useMultisampledRTT=Be}function ZS(n,e,t){let i=t.isWebGL2;function s(r,o=Hn){let a;if(r===Pt)return n.UNSIGNED_BYTE;if(r===S0)return n.UNSIGNED_SHORT_4_4_4_4;if(r===b0)return n.UNSIGNED_SHORT_5_5_5_1;if(r===Tv)return n.BYTE;if(r===Bv)return n.SHORT;if(r===Kh)return n.UNSIGNED_SHORT;if(r===C0)return n.INT;if(r===bi)return n.UNSIGNED_INT;if(r===Lt)return n.FLOAT;if(r===Wt)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(r===Rv)return n.ALPHA;if(r===Dt)return n.RGBA;if(r===Dv)return n.LUMINANCE;if(r===Lv)return n.LUMINANCE_ALPHA;if(r===ts)return n.DEPTH_COMPONENT;if(r===Js)return n.DEPTH_STENCIL;if(r===gh)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(r===cr)return n.RED;if(r===I0)return n.RED_INTEGER;if(r===lr)return n.RG;if(r===w0)return n.RG_INTEGER;if(r===M0)return n.RGBA_INTEGER;if(r===Zr||r===Ol||r===kl||r===jr)if(o===be)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(r===Zr)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===Ol)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===kl)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===jr)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(r===Zr)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===Ol)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===kl)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===jr)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===ec||r===XA||r===tc||r===YA)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(r===ec)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===XA)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===tc)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===YA)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===qh)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(r===nc||r===ic)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(r===nc)return o===be?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(r===ic)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(r===sc||r===JA||r===ZA||r===jA||r===$A||r===ep||r===tp||r===np||r===ip||r===sp||r===rp||r===ap||r===op||r===cp)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(r===sc)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===JA)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===ZA)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===jA)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===$A)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===ep)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===tp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===np)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===ip)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===sp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===rp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===ap)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===op)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===cp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===$r)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(r===$r)return o===be?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(r===Fv||r===lp||r===hp||r===up)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(r===$r)return a.COMPRESSED_RED_RGTC1_EXT;if(r===lp)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(r===hp)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(r===up)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return r===es?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[r]!==void 0?n[r]:null}return{convert:s}}var Mh=class extends yt{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}},fn=class extends ct{constructor(){super(),this.isGroup=!0,this.type="Group"}},jS={type:"move"},ia=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new fn,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new fn,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Q,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Q),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new fn,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Q,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Q),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){let t=this._hand;if(t)for(let i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let s=null,r=null,o=null,a=this._targetRay,l=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){o=!0;for(let m of e.hand.values()){let p=t.getJointPose(m,i),A=this._getHandJoint(c,m);p!==null&&(A.matrix.fromArray(p.transform.matrix),A.matrix.decompose(A.position,A.rotation,A.scale),A.matrixWorldNeedsUpdate=!0,A.jointRadius=p.radius),A.visible=p!==null}let h=c.joints["index-finger-tip"],f=c.joints["thumb-tip"],u=h.position.distanceTo(f.position),d=.02,g=.005;c.inputState.pinching&&u>d+g?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&u<=d-g&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(r=t.getPose(e.gripSpace,i),r!==null&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(s=t.getPose(e.targetRaySpace,i),s===null&&r!==null&&(s=r),s!==null&&(a.matrix.fromArray(s.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,s.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(s.linearVelocity)):a.hasLinearVelocity=!1,s.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(s.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(jS)))}return a!==null&&(a.visible=s!==null),l!==null&&(l.visible=r!==null),c!==null&&(c.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let i=new fn;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}},Th=class extends gt{constructor(e,t,i,s,r,o,a,l,c,h){if(h=h!==void 0?h:ts,h!==ts&&h!==Js)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&h===ts&&(i=bi),i===void 0&&h===Js&&(i=es),super(null,s,r,o,a,l,h,i,c),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=a!==void 0?a:Et,this.minFilter=l!==void 0?l:Et,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}},Bh=class extends Vn{constructor(e,t){super();let i=this,s=null,r=1,o=null,a="local-floor",l=1,c=null,h=null,f=null,u=null,d=null,g=null,m=t.getContextAttributes(),p=null,A=null,x=[],_=[],v=new yt;v.layers.enable(1),v.viewport=new tt;let y=new yt;y.layers.enable(2),y.viewport=new tt;let S=[v,y],C=new Mh;C.layers.enable(1),C.layers.enable(2);let M=null,E=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(R){let L=x[R];return L===void 0&&(L=new ia,x[R]=L),L.getTargetRaySpace()},this.getControllerGrip=function(R){let L=x[R];return L===void 0&&(L=new ia,x[R]=L),L.getGripSpace()},this.getHand=function(R){let L=x[R];return L===void 0&&(L=new ia,x[R]=L),L.getHandSpace()};function b(R){let L=_.indexOf(R.inputSource);if(L===-1)return;let ne=x[L];ne!==void 0&&(ne.update(R.inputSource,R.frame,c||o),ne.dispatchEvent({type:R.type,data:R.inputSource}))}function w(){s.removeEventListener("select",b),s.removeEventListener("selectstart",b),s.removeEventListener("selectend",b),s.removeEventListener("squeeze",b),s.removeEventListener("squeezestart",b),s.removeEventListener("squeezeend",b),s.removeEventListener("end",w),s.removeEventListener("inputsourceschange",G);for(let R=0;R<x.length;R++){let L=_[R];L!==null&&(_[R]=null,x[R].disconnect(L))}M=null,E=null,e.setRenderTarget(p),d=null,u=null,f=null,s=null,A=null,N.stop(),i.isPresenting=!1,i.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(R){r=R,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(R){a=R,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(R){c=R},this.getBaseLayer=function(){return u!==null?u:d},this.getBinding=function(){return f},this.getFrame=function(){return g},this.getSession=function(){return s},this.setSession=async function(R){if(s=R,s!==null){if(p=e.getRenderTarget(),s.addEventListener("select",b),s.addEventListener("selectstart",b),s.addEventListener("selectend",b),s.addEventListener("squeeze",b),s.addEventListener("squeezestart",b),s.addEventListener("squeezeend",b),s.addEventListener("end",w),s.addEventListener("inputsourceschange",G),m.xrCompatible!==!0&&await t.makeXRCompatible(),s.renderState.layers===void 0||e.capabilities.isWebGL2===!1){let L={antialias:s.renderState.layers===void 0?m.antialias:!0,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(s,t,L),s.updateRenderState({baseLayer:d}),A=new pn(d.framebufferWidth,d.framebufferHeight,{format:Dt,type:Pt,colorSpace:e.outputColorSpace,stencilBuffer:m.stencil})}else{let L=null,ne=null,ie=null;m.depth&&(ie=m.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,L=m.stencil?Js:ts,ne=m.stencil?es:bi);let he={colorFormat:t.RGBA8,depthFormat:ie,scaleFactor:r};f=new XRWebGLBinding(s,t),u=f.createProjectionLayer(he),s.updateRenderState({layers:[u]}),A=new pn(u.textureWidth,u.textureHeight,{format:Dt,type:Pt,depthTexture:new Th(u.textureWidth,u.textureHeight,ne,void 0,void 0,void 0,void 0,void 0,void 0,L),stencilBuffer:m.stencil,colorSpace:e.outputColorSpace,samples:m.antialias?4:0});let ae=e.properties.get(A);ae.__ignoreDepthValues=u.ignoreDepthValues}A.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=await s.requestReferenceSpace(a),N.setContext(s),N.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(s!==null)return s.environmentBlendMode};function G(R){for(let L=0;L<R.removed.length;L++){let ne=R.removed[L],ie=_.indexOf(ne);ie>=0&&(_[ie]=null,x[ie].disconnect(ne))}for(let L=0;L<R.added.length;L++){let ne=R.added[L],ie=_.indexOf(ne);if(ie===-1){for(let ae=0;ae<x.length;ae++)if(ae>=_.length){_.push(ne),ie=ae;break}else if(_[ae]===null){_[ae]=ne,ie=ae;break}if(ie===-1)break}let he=x[ie];he&&he.connect(ne)}}let U=new Q,D=new Q;function O(R,L,ne){U.setFromMatrixPosition(L.matrixWorld),D.setFromMatrixPosition(ne.matrixWorld);let ie=U.distanceTo(D),he=L.projectionMatrix.elements,ae=ne.projectionMatrix.elements,we=he[14]/(he[10]-1),xe=he[14]/(he[10]+1),Ve=(he[9]+1)/he[5],ft=(he[9]-1)/he[5],Ce=(he[8]-1)/he[0],V=(ae[8]+1)/ae[0],lt=we*Ce,ve=we*V,Te=ie/(-Ce+V),Se=Te*-Ce;L.matrixWorld.decompose(R.position,R.quaternion,R.scale),R.translateX(Se),R.translateZ(Te),R.matrixWorld.compose(R.position,R.quaternion,R.scale),R.matrixWorldInverse.copy(R.matrixWorld).invert();let $e=we+Te,Ue=xe+Te,ye=lt-Se,Be=ve+(ie-Se),nt=Ve*xe/Ue*$e,dt=ft*xe/Ue*$e;R.projectionMatrix.makePerspective(ye,Be,nt,dt,$e,Ue),R.projectionMatrixInverse.copy(R.projectionMatrix).invert()}function K(R,L){L===null?R.matrixWorld.copy(R.matrix):R.matrixWorld.multiplyMatrices(L.matrixWorld,R.matrix),R.matrixWorldInverse.copy(R.matrixWorld).invert()}this.updateCamera=function(R){if(s===null)return;C.near=y.near=v.near=R.near,C.far=y.far=v.far=R.far,(M!==C.near||E!==C.far)&&(s.updateRenderState({depthNear:C.near,depthFar:C.far}),M=C.near,E=C.far);let L=R.parent,ne=C.cameras;K(C,L);for(let ie=0;ie<ne.length;ie++)K(ne[ie],L);ne.length===2?O(C,v,y):C.projectionMatrix.copy(v.projectionMatrix),H(R,C,L)};function H(R,L,ne){ne===null?R.matrix.copy(L.matrixWorld):(R.matrix.copy(ne.matrixWorld),R.matrix.invert(),R.matrix.multiply(L.matrixWorld)),R.matrix.decompose(R.position,R.quaternion,R.scale),R.updateMatrixWorld(!0);let ie=R.children;for(let he=0,ae=ie.length;he<ae;he++)ie[he].updateMatrixWorld(!0);R.projectionMatrix.copy(L.projectionMatrix),R.projectionMatrixInverse.copy(L.projectionMatrixInverse),R.isPerspectiveCamera&&(R.fov=js*2*Math.atan(1/R.projectionMatrix.elements[5]),R.zoom=1)}this.getCamera=function(){return C},this.getFoveation=function(){if(!(u===null&&d===null))return l},this.setFoveation=function(R){l=R,u!==null&&(u.fixedFoveation=R),d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=R)};let z=null;function F(R,L){if(h=L.getViewerPose(c||o),g=L,h!==null){let ne=h.views;d!==null&&(e.setRenderTargetFramebuffer(A,d.framebuffer),e.setRenderTarget(A));let ie=!1;ne.length!==C.cameras.length&&(C.cameras.length=0,ie=!0);for(let he=0;he<ne.length;he++){let ae=ne[he],we=null;if(d!==null)we=d.getViewport(ae);else{let Ve=f.getViewSubImage(u,ae);we=Ve.viewport,he===0&&(e.setRenderTargetTextures(A,Ve.colorTexture,u.ignoreDepthValues?void 0:Ve.depthStencilTexture),e.setRenderTarget(A))}let xe=S[he];xe===void 0&&(xe=new yt,xe.layers.enable(he),xe.viewport=new tt,S[he]=xe),xe.matrix.fromArray(ae.transform.matrix),xe.matrix.decompose(xe.position,xe.quaternion,xe.scale),xe.projectionMatrix.fromArray(ae.projectionMatrix),xe.projectionMatrixInverse.copy(xe.projectionMatrix).invert(),xe.viewport.set(we.x,we.y,we.width,we.height),he===0&&(C.matrix.copy(xe.matrix),C.matrix.decompose(C.position,C.quaternion,C.scale)),ie===!0&&C.cameras.push(xe)}}for(let ne=0;ne<x.length;ne++){let ie=_[ne],he=x[ne];ie!==null&&he!==void 0&&he.update(ie,L,c||o)}z&&z(R,L),L.detectedPlanes&&i.dispatchEvent({type:"planesdetected",data:L}),g=null}let N=new N0;N.setAnimationLoop(F),this.setAnimationLoop=function(R){z=R},this.dispose=function(){}}};function $S(n,e){function t(p,A){p.matrixAutoUpdate===!0&&p.updateMatrix(),A.value.copy(p.matrix)}function i(p,A){A.color.getRGB(p.fogColor.value,U0(n)),A.isFog?(p.fogNear.value=A.near,p.fogFar.value=A.far):A.isFogExp2&&(p.fogDensity.value=A.density)}function s(p,A,x,_,v){A.isMeshBasicMaterial||A.isMeshLambertMaterial?r(p,A):A.isMeshToonMaterial?(r(p,A),f(p,A)):A.isMeshPhongMaterial?(r(p,A),h(p,A)):A.isMeshStandardMaterial?(r(p,A),u(p,A),A.isMeshPhysicalMaterial&&d(p,A,v)):A.isMeshMatcapMaterial?(r(p,A),g(p,A)):A.isMeshDepthMaterial?r(p,A):A.isMeshDistanceMaterial?(r(p,A),m(p,A)):A.isMeshNormalMaterial?r(p,A):A.isLineBasicMaterial?(o(p,A),A.isLineDashedMaterial&&a(p,A)):A.isPointsMaterial?l(p,A,x,_):A.isSpriteMaterial?c(p,A):A.isShadowMaterial?(p.color.value.copy(A.color),p.opacity.value=A.opacity):A.isShaderMaterial&&(A.uniformsNeedUpdate=!1)}function r(p,A){p.opacity.value=A.opacity,A.color&&p.diffuse.value.copy(A.color),A.emissive&&p.emissive.value.copy(A.emissive).multiplyScalar(A.emissiveIntensity),A.map&&(p.map.value=A.map,t(A.map,p.mapTransform)),A.alphaMap&&(p.alphaMap.value=A.alphaMap,t(A.alphaMap,p.alphaMapTransform)),A.bumpMap&&(p.bumpMap.value=A.bumpMap,t(A.bumpMap,p.bumpMapTransform),p.bumpScale.value=A.bumpScale,A.side===Qt&&(p.bumpScale.value*=-1)),A.normalMap&&(p.normalMap.value=A.normalMap,t(A.normalMap,p.normalMapTransform),p.normalScale.value.copy(A.normalScale),A.side===Qt&&p.normalScale.value.negate()),A.displacementMap&&(p.displacementMap.value=A.displacementMap,t(A.displacementMap,p.displacementMapTransform),p.displacementScale.value=A.displacementScale,p.displacementBias.value=A.displacementBias),A.emissiveMap&&(p.emissiveMap.value=A.emissiveMap,t(A.emissiveMap,p.emissiveMapTransform)),A.specularMap&&(p.specularMap.value=A.specularMap,t(A.specularMap,p.specularMapTransform)),A.alphaTest>0&&(p.alphaTest.value=A.alphaTest);let x=e.get(A).envMap;if(x&&(p.envMap.value=x,p.flipEnvMap.value=x.isCubeTexture&&x.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=A.reflectivity,p.ior.value=A.ior,p.refractionRatio.value=A.refractionRatio),A.lightMap){p.lightMap.value=A.lightMap;let _=n._useLegacyLights===!0?Math.PI:1;p.lightMapIntensity.value=A.lightMapIntensity*_,t(A.lightMap,p.lightMapTransform)}A.aoMap&&(p.aoMap.value=A.aoMap,p.aoMapIntensity.value=A.aoMapIntensity,t(A.aoMap,p.aoMapTransform))}function o(p,A){p.diffuse.value.copy(A.color),p.opacity.value=A.opacity,A.map&&(p.map.value=A.map,t(A.map,p.mapTransform))}function a(p,A){p.dashSize.value=A.dashSize,p.totalSize.value=A.dashSize+A.gapSize,p.scale.value=A.scale}function l(p,A,x,_){p.diffuse.value.copy(A.color),p.opacity.value=A.opacity,p.size.value=A.size*x,p.scale.value=_*.5,A.map&&(p.map.value=A.map,t(A.map,p.uvTransform)),A.alphaMap&&(p.alphaMap.value=A.alphaMap,t(A.alphaMap,p.alphaMapTransform)),A.alphaTest>0&&(p.alphaTest.value=A.alphaTest)}function c(p,A){p.diffuse.value.copy(A.color),p.opacity.value=A.opacity,p.rotation.value=A.rotation,A.map&&(p.map.value=A.map,t(A.map,p.mapTransform)),A.alphaMap&&(p.alphaMap.value=A.alphaMap,t(A.alphaMap,p.alphaMapTransform)),A.alphaTest>0&&(p.alphaTest.value=A.alphaTest)}function h(p,A){p.specular.value.copy(A.specular),p.shininess.value=Math.max(A.shininess,1e-4)}function f(p,A){A.gradientMap&&(p.gradientMap.value=A.gradientMap)}function u(p,A){p.metalness.value=A.metalness,A.metalnessMap&&(p.metalnessMap.value=A.metalnessMap,t(A.metalnessMap,p.metalnessMapTransform)),p.roughness.value=A.roughness,A.roughnessMap&&(p.roughnessMap.value=A.roughnessMap,t(A.roughnessMap,p.roughnessMapTransform)),e.get(A).envMap&&(p.envMapIntensity.value=A.envMapIntensity)}function d(p,A,x){p.ior.value=A.ior,A.sheen>0&&(p.sheenColor.value.copy(A.sheenColor).multiplyScalar(A.sheen),p.sheenRoughness.value=A.sheenRoughness,A.sheenColorMap&&(p.sheenColorMap.value=A.sheenColorMap,t(A.sheenColorMap,p.sheenColorMapTransform)),A.sheenRoughnessMap&&(p.sheenRoughnessMap.value=A.sheenRoughnessMap,t(A.sheenRoughnessMap,p.sheenRoughnessMapTransform))),A.clearcoat>0&&(p.clearcoat.value=A.clearcoat,p.clearcoatRoughness.value=A.clearcoatRoughness,A.clearcoatMap&&(p.clearcoatMap.value=A.clearcoatMap,t(A.clearcoatMap,p.clearcoatMapTransform)),A.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=A.clearcoatRoughnessMap,t(A.clearcoatRoughnessMap,p.clearcoatRoughnessMapTransform)),A.clearcoatNormalMap&&(p.clearcoatNormalMap.value=A.clearcoatNormalMap,t(A.clearcoatNormalMap,p.clearcoatNormalMapTransform),p.clearcoatNormalScale.value.copy(A.clearcoatNormalScale),A.side===Qt&&p.clearcoatNormalScale.value.negate())),A.iridescence>0&&(p.iridescence.value=A.iridescence,p.iridescenceIOR.value=A.iridescenceIOR,p.iridescenceThicknessMinimum.value=A.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=A.iridescenceThicknessRange[1],A.iridescenceMap&&(p.iridescenceMap.value=A.iridescenceMap,t(A.iridescenceMap,p.iridescenceMapTransform)),A.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=A.iridescenceThicknessMap,t(A.iridescenceThicknessMap,p.iridescenceThicknessMapTransform))),A.transmission>0&&(p.transmission.value=A.transmission,p.transmissionSamplerMap.value=x.texture,p.transmissionSamplerSize.value.set(x.width,x.height),A.transmissionMap&&(p.transmissionMap.value=A.transmissionMap,t(A.transmissionMap,p.transmissionMapTransform)),p.thickness.value=A.thickness,A.thicknessMap&&(p.thicknessMap.value=A.thicknessMap,t(A.thicknessMap,p.thicknessMapTransform)),p.attenuationDistance.value=A.attenuationDistance,p.attenuationColor.value.copy(A.attenuationColor)),A.anisotropy>0&&(p.anisotropyVector.value.set(A.anisotropy*Math.cos(A.anisotropyRotation),A.anisotropy*Math.sin(A.anisotropyRotation)),A.anisotropyMap&&(p.anisotropyMap.value=A.anisotropyMap,t(A.anisotropyMap,p.anisotropyMapTransform))),p.specularIntensity.value=A.specularIntensity,p.specularColor.value.copy(A.specularColor),A.specularColorMap&&(p.specularColorMap.value=A.specularColorMap,t(A.specularColorMap,p.specularColorMapTransform)),A.specularIntensityMap&&(p.specularIntensityMap.value=A.specularIntensityMap,t(A.specularIntensityMap,p.specularIntensityMapTransform))}function g(p,A){A.matcap&&(p.matcap.value=A.matcap)}function m(p,A){let x=e.get(A).light;p.referencePosition.value.setFromMatrixPosition(x.matrixWorld),p.nearDistance.value=x.shadow.camera.near,p.farDistance.value=x.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:s}}function eb(n,e,t,i){let s={},r={},o=[],a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(x,_){let v=_.program;i.uniformBlockBinding(x,v)}function c(x,_){let v=s[x.id];v===void 0&&(g(x),v=h(x),s[x.id]=v,x.addEventListener("dispose",p));let y=_.program;i.updateUBOMapping(x,y);let S=e.render.frame;r[x.id]!==S&&(u(x),r[x.id]=S)}function h(x){let _=f();x.__bindingPointIndex=_;let v=n.createBuffer(),y=x.__size,S=x.usage;return n.bindBuffer(n.UNIFORM_BUFFER,v),n.bufferData(n.UNIFORM_BUFFER,y,S),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,_,v),v}function f(){for(let x=0;x<a;x++)if(o.indexOf(x)===-1)return o.push(x),x;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function u(x){let _=s[x.id],v=x.uniforms,y=x.__cache;n.bindBuffer(n.UNIFORM_BUFFER,_);for(let S=0,C=v.length;S<C;S++){let M=v[S];if(d(M,S,y)===!0){let E=M.__offset,b=Array.isArray(M.value)?M.value:[M.value],w=0;for(let G=0;G<b.length;G++){let U=b[G],D=m(U);typeof U=="number"?(M.__data[0]=U,n.bufferSubData(n.UNIFORM_BUFFER,E+w,M.__data)):U.isMatrix3?(M.__data[0]=U.elements[0],M.__data[1]=U.elements[1],M.__data[2]=U.elements[2],M.__data[3]=U.elements[0],M.__data[4]=U.elements[3],M.__data[5]=U.elements[4],M.__data[6]=U.elements[5],M.__data[7]=U.elements[0],M.__data[8]=U.elements[6],M.__data[9]=U.elements[7],M.__data[10]=U.elements[8],M.__data[11]=U.elements[0]):(U.toArray(M.__data,w),w+=D.storage/Float32Array.BYTES_PER_ELEMENT)}n.bufferSubData(n.UNIFORM_BUFFER,E,M.__data)}}n.bindBuffer(n.UNIFORM_BUFFER,null)}function d(x,_,v){let y=x.value;if(v[_]===void 0){if(typeof y=="number")v[_]=y;else{let S=Array.isArray(y)?y:[y],C=[];for(let M=0;M<S.length;M++)C.push(S[M].clone());v[_]=C}return!0}else if(typeof y=="number"){if(v[_]!==y)return v[_]=y,!0}else{let S=Array.isArray(v[_])?v[_]:[v[_]],C=Array.isArray(y)?y:[y];for(let M=0;M<S.length;M++){let E=S[M];if(E.equals(C[M])===!1)return E.copy(C[M]),!0}}return!1}function g(x){let _=x.uniforms,v=0,y=16,S=0;for(let C=0,M=_.length;C<M;C++){let E=_[C],b={boundary:0,storage:0},w=Array.isArray(E.value)?E.value:[E.value];for(let G=0,U=w.length;G<U;G++){let D=w[G],O=m(D);b.boundary+=O.boundary,b.storage+=O.storage}if(E.__data=new Float32Array(b.storage/Float32Array.BYTES_PER_ELEMENT),E.__offset=v,C>0){S=v%y;let G=y-S;S!==0&&G-b.boundary<0&&(v+=y-S,E.__offset=v)}v+=b.storage}return S=v%y,S>0&&(v+=y-S),x.__size=v,x.__cache={},this}function m(x){let _={boundary:0,storage:0};return typeof x=="number"?(_.boundary=4,_.storage=4):x.isVector2?(_.boundary=8,_.storage=8):x.isVector3||x.isColor?(_.boundary=16,_.storage=12):x.isVector4?(_.boundary=16,_.storage=16):x.isMatrix3?(_.boundary=48,_.storage=48):x.isMatrix4?(_.boundary=64,_.storage=64):x.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",x),_}function p(x){let _=x.target;_.removeEventListener("dispose",p);let v=o.indexOf(_.__bindingPointIndex);o.splice(v,1),n.deleteBuffer(s[_.id]),delete s[_.id],delete r[_.id]}function A(){for(let x in s)n.deleteBuffer(s[x]);o=[],s={},r={}}return{bind:l,update:c,dispose:A}}function tb(){let n=aa("canvas");return n.style.display="block",n}var ha=class{constructor(e={}){let{canvas:t=tb(),context:i=null,depth:s=!0,stencil:r=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let u;i!==null?u=i.getContextAttributes().alpha:u=o;let d=new Uint32Array(4),g=new Int32Array(4),m=null,p=null,A=[],x=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputColorSpace=be,this._useLegacyLights=!1,this.toneMapping=wi,this.toneMappingExposure=1;let _=this,v=!1,y=0,S=0,C=null,M=-1,E=null,b=new tt,w=new tt,G=null,U=new Ee(0),D=0,O=t.width,K=t.height,H=1,z=null,F=null,N=new tt(0,0,O,K),R=new tt(0,0,O,K),L=!1,ne=new ca,ie=!1,he=!1,ae=null,we=new Oe,xe=new Ie,Ve=new Q,ft={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Ce(){return C===null?H:1}let V=i;function lt(T,q){for(let $=0;$<T.length;$++){let W=T[$],j=t.getContext(W,q);if(j!==null)return j}return null}try{let T={alpha:!0,depth:s,stencil:r,antialias:a,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:f};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${zh}`),t.addEventListener("webglcontextlost",fe,!1),t.addEventListener("webglcontextrestored",J,!1),t.addEventListener("webglcontextcreationerror",re,!1),V===null){let q=["webgl2","webgl","experimental-webgl"];if(_.isWebGL1Renderer===!0&&q.shift(),V=lt(q,T),V===null)throw lt(q)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}typeof WebGLRenderingContext<"u"&&V instanceof WebGLRenderingContext&&console.warn("THREE.WebGLRenderer: WebGL 1 support was deprecated in r153 and will be removed in r163."),V.getShaderPrecisionFormat===void 0&&(V.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(T){throw console.error("THREE.WebGLRenderer: "+T.message),T}let ve,Te,Se,$e,Ue,ye,Be,nt,dt,B,I,X,le,se,ce,me,oe,Z,P,ee,ge,ue,Ae,Re;function He(){ve=new EC(V),Te=new pC(V,ve,e),ve.init(Te),ue=new ZS(V,ve,Te),Se=new YS(V,ve,Te),$e=new SC(V),Ue=new NS,ye=new JS(V,ve,Se,Ue,Te,ue,$e),Be=new mC(_),nt=new vC(_),dt=new FE(V,Te),Ae=new dC(V,ve,dt,Te),B=new yC(V,dt,$e,Ae),I=new MC(V,B,dt,$e),P=new wC(V,Te,ye),me=new gC(Ue),X=new US(_,Be,nt,ve,Te,Ae,me),le=new $S(_,Ue),se=new kS,ce=new WS(ve,Te),Z=new fC(_,Be,nt,Se,I,u,l),oe=new XS(_,I,Te),Re=new eb(V,$e,Te,Se),ee=new AC(V,ve,$e,Te),ge=new CC(V,ve,$e,Te),$e.programs=X.programs,_.capabilities=Te,_.extensions=ve,_.properties=Ue,_.renderLists=se,_.shadowMap=oe,_.state=Se,_.info=$e}He();let k=new Bh(_,V);this.xr=k,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){let T=ve.get("WEBGL_lose_context");T&&T.loseContext()},this.forceContextRestore=function(){let T=ve.get("WEBGL_lose_context");T&&T.restoreContext()},this.getPixelRatio=function(){return H},this.setPixelRatio=function(T){T!==void 0&&(H=T,this.setSize(O,K,!1))},this.getSize=function(T){return T.set(O,K)},this.setSize=function(T,q,$=!0){if(k.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}O=T,K=q,t.width=Math.floor(T*H),t.height=Math.floor(q*H),$===!0&&(t.style.width=T+"px",t.style.height=q+"px"),this.setViewport(0,0,T,q)},this.getDrawingBufferSize=function(T){return T.set(O*H,K*H).floor()},this.setDrawingBufferSize=function(T,q,$){O=T,K=q,H=$,t.width=Math.floor(T*$),t.height=Math.floor(q*$),this.setViewport(0,0,T,q)},this.getCurrentViewport=function(T){return T.copy(b)},this.getViewport=function(T){return T.copy(N)},this.setViewport=function(T,q,$,W){T.isVector4?N.set(T.x,T.y,T.z,T.w):N.set(T,q,$,W),Se.viewport(b.copy(N).multiplyScalar(H).floor())},this.getScissor=function(T){return T.copy(R)},this.setScissor=function(T,q,$,W){T.isVector4?R.set(T.x,T.y,T.z,T.w):R.set(T,q,$,W),Se.scissor(w.copy(R).multiplyScalar(H).floor())},this.getScissorTest=function(){return L},this.setScissorTest=function(T){Se.setScissorTest(L=T)},this.setOpaqueSort=function(T){z=T},this.setTransparentSort=function(T){F=T},this.getClearColor=function(T){return T.copy(Z.getClearColor())},this.setClearColor=function(){Z.setClearColor.apply(Z,arguments)},this.getClearAlpha=function(){return Z.getClearAlpha()},this.setClearAlpha=function(){Z.setClearAlpha.apply(Z,arguments)},this.clear=function(T=!0,q=!0,$=!0){let W=0;if(T){let j=!1;if(C!==null){let _e=C.texture.format;j=_e===M0||_e===w0||_e===I0}if(j){let _e=C.texture.type,Me=_e===Pt||_e===bi||_e===Kh||_e===es||_e===S0||_e===b0,Le=Z.getClearColor(),Fe=Z.getClearAlpha(),ze=Le.r,De=Le.g,ke=Le.b;Me?(d[0]=ze,d[1]=De,d[2]=ke,d[3]=Fe,V.clearBufferuiv(V.COLOR,0,d)):(g[0]=ze,g[1]=De,g[2]=ke,g[3]=Fe,V.clearBufferiv(V.COLOR,0,g))}else W|=V.COLOR_BUFFER_BIT}q&&(W|=V.DEPTH_BUFFER_BIT),$&&(W|=V.STENCIL_BUFFER_BIT),V.clear(W)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",fe,!1),t.removeEventListener("webglcontextrestored",J,!1),t.removeEventListener("webglcontextcreationerror",re,!1),se.dispose(),ce.dispose(),Ue.dispose(),Be.dispose(),nt.dispose(),I.dispose(),Ae.dispose(),Re.dispose(),X.dispose(),k.dispose(),k.removeEventListener("sessionstart",at),k.removeEventListener("sessionend",Jt),ae&&(ae.dispose(),ae=null),et.stop()};function fe(T){T.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),v=!0}function J(){console.log("THREE.WebGLRenderer: Context Restored."),v=!1;let T=$e.autoReset,q=oe.enabled,$=oe.autoUpdate,W=oe.needsUpdate,j=oe.type;He(),$e.autoReset=T,oe.enabled=q,oe.autoUpdate=$,oe.needsUpdate=W,oe.type=j}function re(T){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",T.statusMessage)}function de(T){let q=T.target;q.removeEventListener("dispose",de),Ne(q)}function Ne(T){Ze(T),Ue.remove(T)}function Ze(T){let q=Ue.get(T).programs;q!==void 0&&(q.forEach(function($){X.releaseProgram($)}),T.isShaderMaterial&&X.releaseShaderCache(T))}this.renderBufferDirect=function(T,q,$,W,j,_e){q===null&&(q=ft);let Me=j.isMesh&&j.matrixWorld.determinant()<0,Le=gg(T,q,$,W,j);Se.setMaterial(W,Me);let Fe=$.index,ze=1;if(W.wireframe===!0){if(Fe=B.getWireframeAttribute($),Fe===void 0)return;ze=2}let De=$.drawRange,ke=$.attributes.position,At=De.start*ze,pt=(De.start+De.count)*ze;_e!==null&&(At=Math.max(At,_e.start*ze),pt=Math.min(pt,(_e.start+_e.count)*ze)),Fe!==null?(At=Math.max(At,0),pt=Math.min(pt,Fe.count)):ke!=null&&(At=Math.max(At,0),pt=Math.min(pt,ke.count));let cn=pt-At;if(cn<0||cn===1/0)return;Ae.setup(j,W,Le,$,Fe);let qn,mt=ee;if(Fe!==null&&(qn=dt.get(Fe),mt=ge,mt.setIndex(qn)),j.isMesh)W.wireframe===!0?(Se.setLineWidth(W.wireframeLinewidth*Ce()),mt.setMode(V.LINES)):mt.setMode(V.TRIANGLES);else if(j.isLine){let We=W.linewidth;We===void 0&&(We=1),Se.setLineWidth(We*Ce()),j.isLineSegments?mt.setMode(V.LINES):j.isLineLoop?mt.setMode(V.LINE_LOOP):mt.setMode(V.LINE_STRIP)}else j.isPoints?mt.setMode(V.POINTS):j.isSprite&&mt.setMode(V.TRIANGLES);if(j.isInstancedMesh)mt.renderInstances(At,cn,j.count);else if($.isInstancedBufferGeometry){let We=$._maxInstanceCount!==void 0?$._maxInstanceCount:1/0,Wc=Math.min($.instanceCount,We);mt.renderInstances(At,cn,Wc)}else mt.render(At,cn)},this.compile=function(T,q){function $(W,j,_e){W.transparent===!0&&W.side===Dn&&W.forceSinglePass===!1?(W.side=Qt,W.needsUpdate=!0,Sa(W,j,_e),W.side=zn,W.needsUpdate=!0,Sa(W,j,_e),W.side=Dn):Sa(W,j,_e)}p=ce.get(T),p.init(),x.push(p),T.traverseVisible(function(W){W.isLight&&W.layers.test(q.layers)&&(p.pushLight(W),W.castShadow&&p.pushShadow(W))}),p.setupLights(_._useLegacyLights),T.traverse(function(W){let j=W.material;if(j)if(Array.isArray(j))for(let _e=0;_e<j.length;_e++){let Me=j[_e];$(Me,T,W)}else $(j,T,W)}),x.pop(),p=null};let rt=null;function yn(T){rt&&rt(T)}function at(){et.stop()}function Jt(){et.start()}let et=new N0;et.setAnimationLoop(yn),typeof self<"u"&&et.setContext(self),this.setAnimationLoop=function(T){rt=T,k.setAnimationLoop(T),T===null?et.stop():et.start()},k.addEventListener("sessionstart",at),k.addEventListener("sessionend",Jt),this.render=function(T,q){if(q!==void 0&&q.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(v===!0)return;T.matrixWorldAutoUpdate===!0&&T.updateMatrixWorld(),q.parent===null&&q.matrixWorldAutoUpdate===!0&&q.updateMatrixWorld(),k.enabled===!0&&k.isPresenting===!0&&(k.cameraAutoUpdate===!0&&k.updateCamera(q),q=k.getCamera()),T.isScene===!0&&T.onBeforeRender(_,T,q,C),p=ce.get(T,x.length),p.init(),x.push(p),we.multiplyMatrices(q.projectionMatrix,q.matrixWorldInverse),ne.setFromProjectionMatrix(we),he=this.localClippingEnabled,ie=me.init(this.clippingPlanes,he),m=se.get(T,A.length),m.init(),A.push(m),Cn(T,q,0,_.sortObjects),m.finish(),_.sortObjects===!0&&m.sort(z,F),this.info.render.frame++,ie===!0&&me.beginShadows();let $=p.state.shadowsArray;if(oe.render($,T,q),ie===!0&&me.endShadows(),this.info.autoReset===!0&&this.info.reset(),Z.render(m,T),p.setupLights(_._useLegacyLights),q.isArrayCamera){let W=q.cameras;for(let j=0,_e=W.length;j<_e;j++){let Me=W[j];dr(m,T,Me,Me.viewport)}}else dr(m,T,q);C!==null&&(ye.updateMultisampleRenderTarget(C),ye.updateRenderTargetMipmap(C)),T.isScene===!0&&T.onAfterRender(_,T,q),Ae.resetDefaultState(),M=-1,E=null,x.pop(),x.length>0?p=x[x.length-1]:p=null,A.pop(),A.length>0?m=A[A.length-1]:m=null};function Cn(T,q,$,W){if(T.visible===!1)return;if(T.layers.test(q.layers)){if(T.isGroup)$=T.renderOrder;else if(T.isLOD)T.autoUpdate===!0&&T.update(q);else if(T.isLight)p.pushLight(T),T.castShadow&&p.pushShadow(T);else if(T.isSprite){if(!T.frustumCulled||ne.intersectsSprite(T)){W&&Ve.setFromMatrixPosition(T.matrixWorld).applyMatrix4(we);let Me=I.update(T),Le=T.material;Le.visible&&m.push(T,Me,Le,$,Ve.z,null)}}else if((T.isMesh||T.isLine||T.isPoints)&&(!T.frustumCulled||ne.intersectsObject(T))){let Me=I.update(T),Le=T.material;if(W&&(T.boundingSphere!==void 0?(T.boundingSphere===null&&T.computeBoundingSphere(),Ve.copy(T.boundingSphere.center)):(Me.boundingSphere===null&&Me.computeBoundingSphere(),Ve.copy(Me.boundingSphere.center)),Ve.applyMatrix4(T.matrixWorld).applyMatrix4(we)),Array.isArray(Le)){let Fe=Me.groups;for(let ze=0,De=Fe.length;ze<De;ze++){let ke=Fe[ze],At=Le[ke.materialIndex];At&&At.visible&&m.push(T,Me,At,$,Ve.z,ke)}}else Le.visible&&m.push(T,Me,Le,$,Ve.z,null)}}let _e=T.children;for(let Me=0,Le=_e.length;Me<Le;Me++)Cn(_e[Me],q,$,W)}function dr(T,q,$,W){let j=T.opaque,_e=T.transmissive,Me=T.transparent;p.setupLightsView($),ie===!0&&me.setGlobalState(_.clippingPlanes,$),_e.length>0&&Vc(j,_e,q,$),W&&Se.viewport(b.copy(W)),j.length>0&&Ca(j,q,$),_e.length>0&&Ca(_e,q,$),Me.length>0&&Ca(Me,q,$),Se.buffers.depth.setTest(!0),Se.buffers.depth.setMask(!0),Se.buffers.color.setMask(!0),Se.setPolygonOffset(!1)}function Vc(T,q,$,W){let j=Te.isWebGL2;ae===null&&(ae=new pn(1,1,{generateMipmaps:!0,type:ve.has("EXT_color_buffer_half_float")?Wt:Pt,minFilter:Fn,samples:j?4:0})),_.getDrawingBufferSize(xe),j?ae.setSize(xe.x,xe.y):ae.setSize(ac(xe.x),ac(xe.y));let _e=_.getRenderTarget();_.setRenderTarget(ae),_.getClearColor(U),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();let Me=_.toneMapping;_.toneMapping=wi,Ca(T,$,W),ye.updateMultisampleRenderTarget(ae),ye.updateRenderTargetMipmap(ae);let Le=!1;for(let Fe=0,ze=q.length;Fe<ze;Fe++){let De=q[Fe],ke=De.object,At=De.geometry,pt=De.material,cn=De.group;if(pt.side===Dn&&ke.layers.test(W.layers)){let qn=pt.side;pt.side=Qt,pt.needsUpdate=!0,ku(ke,$,W,At,pt,cn),pt.side=qn,pt.needsUpdate=!0,Le=!0}}Le===!0&&(ye.updateMultisampleRenderTarget(ae),ye.updateRenderTargetMipmap(ae)),_.setRenderTarget(_e),_.setClearColor(U,D),_.toneMapping=Me}function Ca(T,q,$){let W=q.isScene===!0?q.overrideMaterial:null;for(let j=0,_e=T.length;j<_e;j++){let Me=T[j],Le=Me.object,Fe=Me.geometry,ze=W===null?Me.material:W,De=Me.group;Le.layers.test($.layers)&&ku(Le,q,$,Fe,ze,De)}}function ku(T,q,$,W,j,_e){T.onBeforeRender(_,q,$,W,j,_e),T.modelViewMatrix.multiplyMatrices($.matrixWorldInverse,T.matrixWorld),T.normalMatrix.getNormalMatrix(T.modelViewMatrix),j.onBeforeRender(_,q,$,W,T,_e),j.transparent===!0&&j.side===Dn&&j.forceSinglePass===!1?(j.side=Qt,j.needsUpdate=!0,_.renderBufferDirect($,q,W,j,T,_e),j.side=zn,j.needsUpdate=!0,_.renderBufferDirect($,q,W,j,T,_e),j.side=Dn):_.renderBufferDirect($,q,W,j,T,_e),T.onAfterRender(_,q,$,W,j,_e)}function Sa(T,q,$){q.isScene!==!0&&(q=ft);let W=Ue.get(T),j=p.state.lights,_e=p.state.shadowsArray,Me=j.state.version,Le=X.getParameters(T,j.state,_e,q,$),Fe=X.getProgramCacheKey(Le),ze=W.programs;W.environment=T.isMeshStandardMaterial?q.environment:null,W.fog=q.fog,W.envMap=(T.isMeshStandardMaterial?nt:Be).get(T.envMap||W.environment),ze===void 0&&(T.addEventListener("dispose",de),ze=new Map,W.programs=ze);let De=ze.get(Fe);if(De!==void 0){if(W.currentProgram===De&&W.lightsStateVersion===Me)return Qu(T,Le),De}else Le.uniforms=X.getUniforms(T),T.onBuild($,Le,_),T.onBeforeCompile(Le,_),De=X.acquireProgram(Le,Fe),ze.set(Fe,De),W.uniforms=Le.uniforms;let ke=W.uniforms;(!T.isShaderMaterial&&!T.isRawShaderMaterial||T.clipping===!0)&&(ke.clippingPlanes=me.uniform),Qu(T,Le),W.needsLights=_g(T),W.lightsStateVersion=Me,W.needsLights&&(ke.ambientLightColor.value=j.state.ambient,ke.lightProbe.value=j.state.probe,ke.directionalLights.value=j.state.directional,ke.directionalLightShadows.value=j.state.directionalShadow,ke.spotLights.value=j.state.spot,ke.spotLightShadows.value=j.state.spotShadow,ke.rectAreaLights.value=j.state.rectArea,ke.ltc_1.value=j.state.rectAreaLTC1,ke.ltc_2.value=j.state.rectAreaLTC2,ke.pointLights.value=j.state.point,ke.pointLightShadows.value=j.state.pointShadow,ke.hemisphereLights.value=j.state.hemi,ke.directionalShadowMap.value=j.state.directionalShadowMap,ke.directionalShadowMatrix.value=j.state.directionalShadowMatrix,ke.spotShadowMap.value=j.state.spotShadowMap,ke.spotLightMatrix.value=j.state.spotLightMatrix,ke.spotLightMap.value=j.state.spotLightMap,ke.pointShadowMap.value=j.state.pointShadowMap,ke.pointShadowMatrix.value=j.state.pointShadowMatrix);let At=De.getUniforms(),pt=Xs.seqWithValue(At.seq,ke);return W.currentProgram=De,W.uniformsList=pt,De}function Qu(T,q){let $=Ue.get(T);$.outputColorSpace=q.outputColorSpace,$.instancing=q.instancing,$.instancingColor=q.instancingColor,$.skinning=q.skinning,$.morphTargets=q.morphTargets,$.morphNormals=q.morphNormals,$.morphColors=q.morphColors,$.morphTargetsCount=q.morphTargetsCount,$.numClippingPlanes=q.numClippingPlanes,$.numIntersection=q.numClipIntersection,$.vertexAlphas=q.vertexAlphas,$.vertexTangents=q.vertexTangents,$.toneMapping=q.toneMapping}function gg(T,q,$,W,j){q.isScene!==!0&&(q=ft),ye.resetTextureUnits();let _e=q.fog,Me=W.isMeshStandardMaterial?q.environment:null,Le=C===null?_.outputColorSpace:C.isXRRenderTarget===!0?C.texture.colorSpace:An,Fe=(W.isMeshStandardMaterial?nt:Be).get(W.envMap||Me),ze=W.vertexColors===!0&&!!$.attributes.color&&$.attributes.color.itemSize===4,De=!!$.attributes.tangent&&(!!W.normalMap||W.anisotropy>0),ke=!!$.morphAttributes.position,At=!!$.morphAttributes.normal,pt=!!$.morphAttributes.color,cn=wi;W.toneMapped&&(C===null||C.isXRRenderTarget===!0)&&(cn=_.toneMapping);let qn=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,mt=qn!==void 0?qn.length:0,We=Ue.get(W),Wc=p.state.lights;if(ie===!0&&(he===!0||T!==E)){let Zt=T===E&&W.id===M;me.setState(W,T,Zt)}let _t=!1;W.version===We.__version?(We.needsLights&&We.lightsStateVersion!==Wc.state.version||We.outputColorSpace!==Le||j.isInstancedMesh&&We.instancing===!1||!j.isInstancedMesh&&We.instancing===!0||j.isSkinnedMesh&&We.skinning===!1||!j.isSkinnedMesh&&We.skinning===!0||j.isInstancedMesh&&We.instancingColor===!0&&j.instanceColor===null||j.isInstancedMesh&&We.instancingColor===!1&&j.instanceColor!==null||We.envMap!==Fe||W.fog===!0&&We.fog!==_e||We.numClippingPlanes!==void 0&&(We.numClippingPlanes!==me.numPlanes||We.numIntersection!==me.numIntersection)||We.vertexAlphas!==ze||We.vertexTangents!==De||We.morphTargets!==ke||We.morphNormals!==At||We.morphColors!==pt||We.toneMapping!==cn||Te.isWebGL2===!0&&We.morphTargetsCount!==mt)&&(_t=!0):(_t=!0,We.__version=W.version);let Pi=We.currentProgram;_t===!0&&(Pi=Sa(W,q,j));let Gu=!1,Ar=!1,Kc=!1,Gt=Pi.getUniforms(),Ui=We.uniforms;if(Se.useProgram(Pi.program)&&(Gu=!0,Ar=!0,Kc=!0),W.id!==M&&(M=W.id,Ar=!0),Gu||E!==T){if(Gt.setValue(V,"projectionMatrix",T.projectionMatrix),Te.logarithmicDepthBuffer&&Gt.setValue(V,"logDepthBufFC",2/(Math.log(T.far+1)/Math.LN2)),E!==T&&(E=T,Ar=!0,Kc=!0),W.isShaderMaterial||W.isMeshPhongMaterial||W.isMeshToonMaterial||W.isMeshStandardMaterial||W.envMap){let Zt=Gt.map.cameraPosition;Zt!==void 0&&Zt.setValue(V,Ve.setFromMatrixPosition(T.matrixWorld))}(W.isMeshPhongMaterial||W.isMeshToonMaterial||W.isMeshLambertMaterial||W.isMeshBasicMaterial||W.isMeshStandardMaterial||W.isShaderMaterial)&&Gt.setValue(V,"isOrthographic",T.isOrthographicCamera===!0),(W.isMeshPhongMaterial||W.isMeshToonMaterial||W.isMeshLambertMaterial||W.isMeshBasicMaterial||W.isMeshStandardMaterial||W.isShaderMaterial||W.isShadowMaterial||j.isSkinnedMesh)&&Gt.setValue(V,"viewMatrix",T.matrixWorldInverse)}if(j.isSkinnedMesh){Gt.setOptional(V,j,"bindMatrix"),Gt.setOptional(V,j,"bindMatrixInverse");let Zt=j.skeleton;Zt&&(Te.floatVertexTextures?(Zt.boneTexture===null&&Zt.computeBoneTexture(),Gt.setValue(V,"boneTexture",Zt.boneTexture,ye),Gt.setValue(V,"boneTextureSize",Zt.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let qc=$.morphAttributes;if((qc.position!==void 0||qc.normal!==void 0||qc.color!==void 0&&Te.isWebGL2===!0)&&P.update(j,$,Pi),(Ar||We.receiveShadow!==j.receiveShadow)&&(We.receiveShadow=j.receiveShadow,Gt.setValue(V,"receiveShadow",j.receiveShadow)),W.isMeshGouraudMaterial&&W.envMap!==null&&(Ui.envMap.value=Fe,Ui.flipEnvMap.value=Fe.isCubeTexture&&Fe.isRenderTargetTexture===!1?-1:1),Ar&&(Gt.setValue(V,"toneMappingExposure",_.toneMappingExposure),We.needsLights&&mg(Ui,Kc),_e&&W.fog===!0&&le.refreshFogUniforms(Ui,_e),le.refreshMaterialUniforms(Ui,W,H,K,ae),Xs.upload(V,We.uniformsList,Ui,ye)),W.isShaderMaterial&&W.uniformsNeedUpdate===!0&&(Xs.upload(V,We.uniformsList,Ui,ye),W.uniformsNeedUpdate=!1),W.isSpriteMaterial&&Gt.setValue(V,"center",j.center),Gt.setValue(V,"modelViewMatrix",j.modelViewMatrix),Gt.setValue(V,"normalMatrix",j.normalMatrix),Gt.setValue(V,"modelMatrix",j.matrixWorld),W.isShaderMaterial||W.isRawShaderMaterial){let Zt=W.uniformsGroups;for(let Xc=0,xg=Zt.length;Xc<xg;Xc++)if(Te.isWebGL2){let Hu=Zt[Xc];Re.update(Hu,Pi),Re.bind(Hu,Pi)}else console.warn("THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.")}return Pi}function mg(T,q){T.ambientLightColor.needsUpdate=q,T.lightProbe.needsUpdate=q,T.directionalLights.needsUpdate=q,T.directionalLightShadows.needsUpdate=q,T.pointLights.needsUpdate=q,T.pointLightShadows.needsUpdate=q,T.spotLights.needsUpdate=q,T.spotLightShadows.needsUpdate=q,T.rectAreaLights.needsUpdate=q,T.hemisphereLights.needsUpdate=q}function _g(T){return T.isMeshLambertMaterial||T.isMeshToonMaterial||T.isMeshPhongMaterial||T.isMeshStandardMaterial||T.isShadowMaterial||T.isShaderMaterial&&T.lights===!0}this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return C},this.setRenderTargetTextures=function(T,q,$){Ue.get(T.texture).__webglTexture=q,Ue.get(T.depthTexture).__webglTexture=$;let W=Ue.get(T);W.__hasExternalTextures=!0,W.__hasExternalTextures&&(W.__autoAllocateDepthBuffer=$===void 0,W.__autoAllocateDepthBuffer||ve.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),W.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(T,q){let $=Ue.get(T);$.__webglFramebuffer=q,$.__useDefaultFramebuffer=q===void 0},this.setRenderTarget=function(T,q=0,$=0){C=T,y=q,S=$;let W=!0,j=null,_e=!1,Me=!1;if(T){let Fe=Ue.get(T);Fe.__useDefaultFramebuffer!==void 0?(Se.bindFramebuffer(V.FRAMEBUFFER,null),W=!1):Fe.__webglFramebuffer===void 0?ye.setupRenderTarget(T):Fe.__hasExternalTextures&&ye.rebindTextures(T,Ue.get(T.texture).__webglTexture,Ue.get(T.depthTexture).__webglTexture);let ze=T.texture;(ze.isData3DTexture||ze.isDataArrayTexture||ze.isCompressedArrayTexture)&&(Me=!0);let De=Ue.get(T).__webglFramebuffer;T.isWebGLCubeRenderTarget?(Array.isArray(De[q])?j=De[q][$]:j=De[q],_e=!0):Te.isWebGL2&&T.samples>0&&ye.useMultisampledRTT(T)===!1?j=Ue.get(T).__webglMultisampledFramebuffer:Array.isArray(De)?j=De[$]:j=De,b.copy(T.viewport),w.copy(T.scissor),G=T.scissorTest}else b.copy(N).multiplyScalar(H).floor(),w.copy(R).multiplyScalar(H).floor(),G=L;if(Se.bindFramebuffer(V.FRAMEBUFFER,j)&&Te.drawBuffers&&W&&Se.drawBuffers(T,j),Se.viewport(b),Se.scissor(w),Se.setScissorTest(G),_e){let Fe=Ue.get(T.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+q,Fe.__webglTexture,$)}else if(Me){let Fe=Ue.get(T.texture),ze=q||0;V.framebufferTextureLayer(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,Fe.__webglTexture,$||0,ze)}M=-1},this.readRenderTargetPixels=function(T,q,$,W,j,_e,Me){if(!(T&&T.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Le=Ue.get(T).__webglFramebuffer;if(T.isWebGLCubeRenderTarget&&Me!==void 0&&(Le=Le[Me]),Le){Se.bindFramebuffer(V.FRAMEBUFFER,Le);try{let Fe=T.texture,ze=Fe.format,De=Fe.type;if(ze!==Dt&&ue.convert(ze)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let ke=De===Wt&&(ve.has("EXT_color_buffer_half_float")||Te.isWebGL2&&ve.has("EXT_color_buffer_float"));if(De!==Pt&&ue.convert(De)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_TYPE)&&!(De===Lt&&(Te.isWebGL2||ve.has("OES_texture_float")||ve.has("WEBGL_color_buffer_float")))&&!ke){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}q>=0&&q<=T.width-W&&$>=0&&$<=T.height-j&&V.readPixels(q,$,W,j,ue.convert(ze),ue.convert(De),_e)}finally{let Fe=C!==null?Ue.get(C).__webglFramebuffer:null;Se.bindFramebuffer(V.FRAMEBUFFER,Fe)}}},this.copyFramebufferToTexture=function(T,q,$=0){let W=Math.pow(2,-$),j=Math.floor(q.image.width*W),_e=Math.floor(q.image.height*W);ye.setTexture2D(q,0),V.copyTexSubImage2D(V.TEXTURE_2D,$,0,0,T.x,T.y,j,_e),Se.unbindTexture()},this.copyTextureToTexture=function(T,q,$,W=0){let j=q.image.width,_e=q.image.height,Me=ue.convert($.format),Le=ue.convert($.type);ye.setTexture2D($,0),V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,$.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,$.unpackAlignment),q.isDataTexture?V.texSubImage2D(V.TEXTURE_2D,W,T.x,T.y,j,_e,Me,Le,q.image.data):q.isCompressedTexture?V.compressedTexSubImage2D(V.TEXTURE_2D,W,T.x,T.y,q.mipmaps[0].width,q.mipmaps[0].height,Me,q.mipmaps[0].data):V.texSubImage2D(V.TEXTURE_2D,W,T.x,T.y,Me,Le,q.image),W===0&&$.generateMipmaps&&V.generateMipmap(V.TEXTURE_2D),Se.unbindTexture()},this.copyTextureToTexture3D=function(T,q,$,W,j=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let _e=T.max.x-T.min.x+1,Me=T.max.y-T.min.y+1,Le=T.max.z-T.min.z+1,Fe=ue.convert(W.format),ze=ue.convert(W.type),De;if(W.isData3DTexture)ye.setTexture3D(W,0),De=V.TEXTURE_3D;else if(W.isDataArrayTexture)ye.setTexture2DArray(W,0),De=V.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,W.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,W.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,W.unpackAlignment);let ke=V.getParameter(V.UNPACK_ROW_LENGTH),At=V.getParameter(V.UNPACK_IMAGE_HEIGHT),pt=V.getParameter(V.UNPACK_SKIP_PIXELS),cn=V.getParameter(V.UNPACK_SKIP_ROWS),qn=V.getParameter(V.UNPACK_SKIP_IMAGES),mt=$.isCompressedTexture?$.mipmaps[0]:$.image;V.pixelStorei(V.UNPACK_ROW_LENGTH,mt.width),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,mt.height),V.pixelStorei(V.UNPACK_SKIP_PIXELS,T.min.x),V.pixelStorei(V.UNPACK_SKIP_ROWS,T.min.y),V.pixelStorei(V.UNPACK_SKIP_IMAGES,T.min.z),$.isDataTexture||$.isData3DTexture?V.texSubImage3D(De,j,q.x,q.y,q.z,_e,Me,Le,Fe,ze,mt.data):$.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(De,j,q.x,q.y,q.z,_e,Me,Le,Fe,mt.data)):V.texSubImage3D(De,j,q.x,q.y,q.z,_e,Me,Le,Fe,ze,mt),V.pixelStorei(V.UNPACK_ROW_LENGTH,ke),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,At),V.pixelStorei(V.UNPACK_SKIP_PIXELS,pt),V.pixelStorei(V.UNPACK_SKIP_ROWS,cn),V.pixelStorei(V.UNPACK_SKIP_IMAGES,qn),j===0&&W.generateMipmaps&&V.generateMipmap(De),Se.unbindTexture()},this.initTexture=function(T){T.isCubeTexture?ye.setTextureCube(T,0):T.isData3DTexture?ye.setTexture3D(T,0):T.isDataArrayTexture||T.isCompressedArrayTexture?ye.setTexture2DArray(T,0):ye.setTexture2D(T,0),Se.unbindTexture()},this.resetState=function(){y=0,S=0,C=null,Se.reset(),Ae.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ai}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===be?ns:B0}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===ns?be:An}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}},Rh=class extends ha{};Rh.prototype.isWebGL1Renderer=!0;var gc=class extends ct{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}},ua=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=ph,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ln()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let s=0,r=this.stride;s<r;s++)this.array[e+s]=t.array[i+s];return this}set(e,t=0){return this.array.set(e,t),this}clone(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Ln()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);let t=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),i=new this.constructor(t,this.stride);return i.setUsage(this.usage),i}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Ln()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}},zt=new Q,cs=class{constructor(e,t,i,s=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=t,this.offset=i,this.normalized=s}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let t=0,i=this.data.count;t<i;t++)zt.fromBufferAttribute(this,t),zt.applyMatrix4(e),this.setXYZ(t,zt.x,zt.y,zt.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)zt.fromBufferAttribute(this,t),zt.applyNormalMatrix(e),this.setXYZ(t,zt.x,zt.y,zt.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)zt.fromBufferAttribute(this,t),zt.transformDirection(e),this.setXYZ(t,zt.x,zt.y,zt.z);return this}setX(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){let t=this.data.array[e*this.data.stride+this.offset];return this.normalized&&(t=Gn(t,this.array)),t}getY(e){let t=this.data.array[e*this.data.stride+this.offset+1];return this.normalized&&(t=Gn(t,this.array)),t}getZ(e){let t=this.data.array[e*this.data.stride+this.offset+2];return this.normalized&&(t=Gn(t,this.array)),t}getW(e){let t=this.data.array[e*this.data.stride+this.offset+3];return this.normalized&&(t=Gn(t,this.array)),t}setXY(e,t,i){return e=e*this.data.stride+this.offset,this.normalized&&(t=st(t,this.array),i=st(i,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this}setXYZ(e,t,i,s){return e=e*this.data.stride+this.offset,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=s,this}setXYZW(e,t,i,s,r){return e=e*this.data.stride+this.offset,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array),r=st(r,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=s,this.data.array[e+3]=r,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");let t=[];for(let i=0;i<this.count;i++){let s=i*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[s+r])}return new Ct(new this.array.constructor(t),this.itemSize,this.normalized)}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new cs(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");let t=[];for(let i=0;i<this.count;i++){let s=i*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[s+r])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}};var $p=new Q,e0=new tt,t0=new tt,nb=new Q,n0=new Oe,Hs=new Q,ch=new sn,i0=new Oe,lh=new Mi,mc=class extends Ft{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new Oe,this.bindMatrixInverse=new Oe,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){let e=this.geometry;this.boundingBox===null&&(this.boundingBox=new gn),this.boundingBox.makeEmpty();let t=e.getAttribute("position");for(let i=0;i<t.count;i++)Hs.fromBufferAttribute(t,i),this.applyBoneTransform(i,Hs),this.boundingBox.expandByPoint(Hs)}computeBoundingSphere(){let e=this.geometry;this.boundingSphere===null&&(this.boundingSphere=new sn),this.boundingSphere.makeEmpty();let t=e.getAttribute("position");for(let i=0;i<t.count;i++)Hs.fromBufferAttribute(t,i),this.applyBoneTransform(i,Hs),this.boundingSphere.expandByPoint(Hs)}copy(e,t){return super.copy(e,t),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}raycast(e,t){let i=this.material,s=this.matrixWorld;i!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),ch.copy(this.boundingSphere),ch.applyMatrix4(s),e.ray.intersectsSphere(ch)!==!1&&(i0.copy(s).invert(),lh.copy(e.ray).applyMatrix4(i0),!(this.boundingBox!==null&&lh.intersectsBox(this.boundingBox)===!1)&&this._computeIntersections(e,t,lh)))}getVertexPosition(e,t){return super.getVertexPosition(e,t),this.applyBoneTransform(e,t),t}bind(e,t){this.skeleton=e,t===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){let e=new tt,t=this.geometry.attributes.skinWeight;for(let i=0,s=t.count;i<s;i++){e.fromBufferAttribute(t,i);let r=1/e.manhattanLength();r!==1/0?e.multiplyScalar(r):e.set(1,0,0,0),t.setXYZW(i,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode==="attached"?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode==="detached"?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(e,t){let i=this.skeleton,s=this.geometry;e0.fromBufferAttribute(s.attributes.skinIndex,e),t0.fromBufferAttribute(s.attributes.skinWeight,e),$p.copy(t).applyMatrix4(this.bindMatrix),t.set(0,0,0);for(let r=0;r<4;r++){let o=t0.getComponent(r);if(o!==0){let a=e0.getComponent(r);n0.multiplyMatrices(i.bones[a].matrixWorld,i.boneInverses[a]),t.addScaledVector(nb.copy($p).applyMatrix4(n0),o)}}return t.applyMatrix4(this.bindMatrixInverse)}boneTransform(e,t){return console.warn("THREE.SkinnedMesh: .boneTransform() was renamed to .applyBoneTransform() in r151."),this.applyBoneTransform(e,t)}},fa=class extends ct{constructor(){super(),this.isBone=!0,this.type="Bone"}},tr=class extends gt{constructor(e=null,t=1,i=1,s,r,o,a,l,c=Et,h=Et,f,u){super(null,o,a,l,c,h,s,r,f,u),this.isDataTexture=!0,this.image={data:e,width:t,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},s0=new Oe,ib=new Oe,nr=class{constructor(e=[],t=[]){this.uuid=Ln(),this.bones=e.slice(0),this.boneInverses=t,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.init()}init(){let e=this.bones,t=this.boneInverses;if(this.boneMatrices=new Float32Array(e.length*16),t.length===0)this.calculateInverses();else if(e.length!==t.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let i=0,s=this.bones.length;i<s;i++)this.boneInverses.push(new Oe)}}calculateInverses(){this.boneInverses.length=0;for(let e=0,t=this.bones.length;e<t;e++){let i=new Oe;this.bones[e]&&i.copy(this.bones[e].matrixWorld).invert(),this.boneInverses.push(i)}}pose(){for(let e=0,t=this.bones.length;e<t;e++){let i=this.bones[e];i&&i.matrixWorld.copy(this.boneInverses[e]).invert()}for(let e=0,t=this.bones.length;e<t;e++){let i=this.bones[e];i&&(i.parent&&i.parent.isBone?(i.matrix.copy(i.parent.matrixWorld).invert(),i.matrix.multiply(i.matrixWorld)):i.matrix.copy(i.matrixWorld),i.matrix.decompose(i.position,i.quaternion,i.scale))}}update(){let e=this.bones,t=this.boneInverses,i=this.boneMatrices,s=this.boneTexture;for(let r=0,o=e.length;r<o;r++){let a=e[r]?e[r].matrixWorld:ib;s0.multiplyMatrices(a,t[r]),s0.toArray(i,r*16)}s!==null&&(s.needsUpdate=!0)}clone(){return new nr(this.bones,this.boneInverses)}computeBoneTexture(){let e=Math.sqrt(this.bones.length*4);e=L0(e),e=Math.max(e,4);let t=new Float32Array(e*e*4);t.set(this.boneMatrices);let i=new tr(t,e,e,Dt,Lt);return i.needsUpdate=!0,this.boneMatrices=t,this.boneTexture=i,this.boneTextureSize=e,this}getBoneByName(e){for(let t=0,i=this.bones.length;t<i;t++){let s=this.bones[t];if(s.name===e)return s}}dispose(){this.boneTexture!==null&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(e,t){this.uuid=e.uuid;for(let i=0,s=e.bones.length;i<s;i++){let r=e.bones[i],o=t[r];o===void 0&&(console.warn("THREE.Skeleton: No bone found with UUID:",r),o=new fa),this.bones.push(o),this.boneInverses.push(new Oe().fromArray(e.boneInverses[i]))}return this.init(),this}toJSON(){let e={metadata:{version:4.6,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};e.uuid=this.uuid;let t=this.bones,i=this.boneInverses;for(let s=0,r=t.length;s<r;s++){let o=t[s];e.bones.push(o.uuid);let a=i[s];e.boneInverses.push(a.toArray())}return e}},da=class extends Ct{constructor(e,t,i,s=1){super(e,t,i),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=s}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}toJSON(){let e=super.toJSON();return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}},zs=new Oe,r0=new Oe,Xo=[],a0=new gn,sb=new Oe,Kr=new Ft,qr=new sn,_c=class extends Ft{constructor(e,t,i){super(e,t),this.isInstancedMesh=!0,this.instanceMatrix=new da(new Float32Array(i*16),16),this.instanceColor=null,this.count=i,this.boundingBox=null,this.boundingSphere=null;for(let s=0;s<i;s++)this.setMatrixAt(s,sb)}computeBoundingBox(){let e=this.geometry,t=this.count;this.boundingBox===null&&(this.boundingBox=new gn),e.boundingBox===null&&e.computeBoundingBox(),this.boundingBox.makeEmpty();for(let i=0;i<t;i++)this.getMatrixAt(i,zs),a0.copy(e.boundingBox).applyMatrix4(zs),this.boundingBox.union(a0)}computeBoundingSphere(){let e=this.geometry,t=this.count;this.boundingSphere===null&&(this.boundingSphere=new sn),e.boundingSphere===null&&e.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let i=0;i<t;i++)this.getMatrixAt(i,zs),qr.copy(e.boundingSphere).applyMatrix4(zs),this.boundingSphere.union(qr)}copy(e,t){return super.copy(e,t),this.instanceMatrix.copy(e.instanceMatrix),e.instanceColor!==null&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}getColorAt(e,t){t.fromArray(this.instanceColor.array,e*3)}getMatrixAt(e,t){t.fromArray(this.instanceMatrix.array,e*16)}raycast(e,t){let i=this.matrixWorld,s=this.count;if(Kr.geometry=this.geometry,Kr.material=this.material,Kr.material!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),qr.copy(this.boundingSphere),qr.applyMatrix4(i),e.ray.intersectsSphere(qr)!==!1))for(let r=0;r<s;r++){this.getMatrixAt(r,zs),r0.multiplyMatrices(i,zs),Kr.matrixWorld=r0,Kr.raycast(e,Xo);for(let o=0,a=Xo.length;o<a;o++){let l=Xo[o];l.instanceId=r,l.object=this,t.push(l)}Xo.length=0}}setColorAt(e,t){this.instanceColor===null&&(this.instanceColor=new da(new Float32Array(this.instanceMatrix.count*3),3)),t.toArray(this.instanceColor.array,e*3)}setMatrixAt(e,t){t.toArray(this.instanceMatrix.array,e*16)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"})}},Aa=class extends rn{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Ee(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}},o0=new Q,c0=new Q,l0=new Oe,hh=new Mi,Yo=new sn,ir=class extends ct{constructor(e=new Yt,t=new Aa){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,i=[0];for(let s=1,r=t.count;s<r;s++)o0.fromBufferAttribute(t,s-1),c0.fromBufferAttribute(t,s),i[s]=i[s-1],i[s]+=o0.distanceTo(c0);e.setAttribute("lineDistance",new dn(i,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,t){let i=this.geometry,s=this.matrixWorld,r=e.params.Line.threshold,o=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),Yo.copy(i.boundingSphere),Yo.applyMatrix4(s),Yo.radius+=r,e.ray.intersectsSphere(Yo)===!1)return;l0.copy(s).invert(),hh.copy(e.ray).applyMatrix4(l0);let a=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=a*a,c=new Q,h=new Q,f=new Q,u=new Q,d=this.isLineSegments?2:1,g=i.index,p=i.attributes.position;if(g!==null){let A=Math.max(0,o.start),x=Math.min(g.count,o.start+o.count);for(let _=A,v=x-1;_<v;_+=d){let y=g.getX(_),S=g.getX(_+1);if(c.fromBufferAttribute(p,y),h.fromBufferAttribute(p,S),hh.distanceSqToSegment(c,h,u,f)>l)continue;u.applyMatrix4(this.matrixWorld);let M=e.ray.origin.distanceTo(u);M<e.near||M>e.far||t.push({distance:M,point:f.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{let A=Math.max(0,o.start),x=Math.min(p.count,o.start+o.count);for(let _=A,v=x-1;_<v;_+=d){if(c.fromBufferAttribute(p,_),h.fromBufferAttribute(p,_+1),hh.distanceSqToSegment(c,h,u,f)>l)continue;u.applyMatrix4(this.matrixWorld);let S=e.ray.origin.distanceTo(u);S<e.near||S>e.far||t.push({distance:S,point:f.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let s=t[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}},h0=new Q,u0=new Q,xc=class extends ir{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,i=[];for(let s=0,r=t.count;s<r;s+=2)h0.fromBufferAttribute(t,s),u0.fromBufferAttribute(t,s+1),i[s]=s===0?0:i[s-1],i[s+1]=i[s]+h0.distanceTo(u0);e.setAttribute("lineDistance",new dn(i,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}},vc=class extends ir{constructor(e,t){super(e,t),this.isLineLoop=!0,this.type="LineLoop"}},pa=class extends rn{constructor(e){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Ee(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},f0=new Oe,Dh=new Mi,Jo=new sn,Zo=new Q,Ec=class extends ct{constructor(e=new Yt,t=new pa){super(),this.isPoints=!0,this.type="Points",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}raycast(e,t){let i=this.geometry,s=this.matrixWorld,r=e.params.Points.threshold,o=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),Jo.copy(i.boundingSphere),Jo.applyMatrix4(s),Jo.radius+=r,e.ray.intersectsSphere(Jo)===!1)return;f0.copy(s).invert(),Dh.copy(e.ray).applyMatrix4(f0);let a=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=a*a,c=i.index,f=i.attributes.position;if(c!==null){let u=Math.max(0,o.start),d=Math.min(c.count,o.start+o.count);for(let g=u,m=d;g<m;g++){let p=c.getX(g);Zo.fromBufferAttribute(f,p),d0(Zo,p,l,s,e,t,this)}}else{let u=Math.max(0,o.start),d=Math.min(f.count,o.start+o.count);for(let g=u,m=d;g<m;g++)Zo.fromBufferAttribute(f,g),d0(Zo,g,l,s,e,t,this)}}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let s=t[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}};function d0(n,e,t,i,s,r,o){let a=Dh.distanceSqToPoint(n);if(a<t){let l=new Q;Dh.closestPointToPoint(n,l),l.applyMatrix4(i);let c=s.ray.origin.distanceTo(l);if(c<s.near||c>s.far)return;r.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}var sr=class extends gt{constructor(e,t,i,s,r,o,a,l,c,h,f,u){super(null,o,a,l,c,h,s,r,f,u),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},yc=class extends sr{constructor(e,t,i,s,r,o){super(e,t,i,r,o),this.isCompressedArrayTexture=!0,this.image.depth=s,this.wrapR=kt}},Cc=class extends sr{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,is),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}};var rr=class extends rn{constructor(e){super(),this.isMeshStandardMaterial=!0,this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Ee(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ee(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=R0,this.normalScale=new Ie(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},an=class extends rr{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Ie(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return Rt(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Ee(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Ee(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Ee(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(e)}get anisotropy(){return this._anisotropy}set anisotropy(e){this._anisotropy>0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}};function Si(n,e,t){return H0(n)?new n.constructor(n.subarray(e,t!==void 0?t:n.length)):n.slice(e,t)}function jo(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function H0(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function rb(n){function e(s,r){return n[s]-n[r]}let t=n.length,i=new Array(t);for(let s=0;s!==t;++s)i[s]=s;return i.sort(e),i}function A0(n,e,t){let i=n.length,s=new n.constructor(i);for(let r=0,o=0;o!==i;++r){let a=t[r]*e;for(let l=0;l!==e;++l)s[o++]=n[a+l]}return s}function z0(n,e,t,i){let s=1,r=n[0];for(;r!==void 0&&r[i]===void 0;)r=n[s++];if(r===void 0)return;let o=r[i];if(o!==void 0)if(Array.isArray(o))do o=r[i],o!==void 0&&(e.push(r.time),t.push.apply(t,o)),r=n[s++];while(r!==void 0);else if(o.toArray!==void 0)do o=r[i],o!==void 0&&(e.push(r.time),o.toArray(t,t.length)),r=n[s++];while(r!==void 0);else do o=r[i],o!==void 0&&(e.push(r.time),t.push(o)),r=n[s++];while(r!==void 0)}var Bi=class{constructor(e,t,i,s){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=s!==void 0?s:new t.constructor(i),this.sampleValues=t,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(e){let t=this.parameterPositions,i=this._cachedIndex,s=t[i],r=t[i-1];e:{t:{let o;n:{i:if(!(e<s)){for(let a=i+2;;){if(s===void 0){if(e<r)break i;return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}if(i===a)break;if(r=s,s=t[++i],e<s)break t}o=t.length;break n}if(!(e>=r)){let a=t[1];e<a&&(i=2,r=a);for(let l=i-2;;){if(r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(i===l)break;if(s=r,r=t[--i-1],e>=r)break t}o=i,i=0;break n}break e}for(;i<o;){let a=i+o>>>1;e<t[a]?o=a:i=a+1}if(s=t[i],r=t[i-1],r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(s===void 0)return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}this._cachedIndex=i,this.intervalChanged_(i,r,s)}return this.interpolate_(i,r,e,s)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){let t=this.resultBuffer,i=this.sampleValues,s=this.valueSize,r=e*s;for(let o=0;o!==s;++o)t[o]=i[r+o];return t}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}},Lh=class extends Bi{constructor(e,t,i,s){super(e,t,i,s),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:fp,endingEnd:fp}}intervalChanged_(e,t,i){let s=this.parameterPositions,r=e-2,o=e+1,a=s[r],l=s[o];if(a===void 0)switch(this.getSettings_().endingStart){case dp:r=e,a=2*t-i;break;case Ap:r=s.length-2,a=t+s[r]-s[r+1];break;default:r=e,a=i}if(l===void 0)switch(this.getSettings_().endingEnd){case dp:o=e,l=2*i-t;break;case Ap:o=1,l=i+s[1]-s[0];break;default:o=e-1,l=t}let c=(i-t)*.5,h=this.valueSize;this._weightPrev=c/(t-a),this._weightNext=c/(l-i),this._offsetPrev=r*h,this._offsetNext=o*h}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=e*a,c=l-a,h=this._offsetPrev,f=this._offsetNext,u=this._weightPrev,d=this._weightNext,g=(i-t)/(s-t),m=g*g,p=m*g,A=-u*p+2*u*m-u*g,x=(1+u)*p+(-1.5-2*u)*m+(-.5+u)*g+1,_=(-1-d)*p+(1.5+d)*m+.5*g,v=d*p-d*m;for(let y=0;y!==a;++y)r[y]=A*o[h+y]+x*o[c+y]+_*o[l+y]+v*o[f+y];return r}},Fh=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=e*a,c=l-a,h=(i-t)/(s-t),f=1-h;for(let u=0;u!==a;++u)r[u]=o[c+u]*f+o[l+u]*h;return r}},Ph=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}interpolate_(e){return this.copySampleValue_(e-1)}},xn=class{constructor(e,t,i,s){if(e===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(t===void 0||t.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=jo(t,this.TimeBufferType),this.values=jo(i,this.ValueBufferType),this.setInterpolation(s||this.DefaultInterpolation)}static toJSON(e){let t=e.constructor,i;if(t.toJSON!==this.toJSON)i=t.toJSON(e);else{i={name:e.name,times:jo(e.times,Array),values:jo(e.values,Array)};let s=e.getInterpolation();s!==e.DefaultInterpolation&&(i.interpolation=s)}return i.type=e.ValueTypeName,i}InterpolantFactoryMethodDiscrete(e){return new Ph(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new Fh(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new Lh(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case Zs:t=this.InterpolantFactoryMethodDiscrete;break;case rs:t=this.InterpolantFactoryMethodLinear;break;case Ql:t=this.InterpolantFactoryMethodSmooth;break}if(t===void 0){let i="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(e!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(i);return console.warn("THREE.KeyframeTrack:",i),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Zs;case this.InterpolantFactoryMethodLinear:return rs;case this.InterpolantFactoryMethodSmooth:return Ql}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){let t=this.times;for(let i=0,s=t.length;i!==s;++i)t[i]+=e}return this}scale(e){if(e!==1){let t=this.times;for(let i=0,s=t.length;i!==s;++i)t[i]*=e}return this}trim(e,t){let i=this.times,s=i.length,r=0,o=s-1;for(;r!==s&&i[r]<e;)++r;for(;o!==-1&&i[o]>t;)--o;if(++o,r!==0||o!==s){r>=o&&(o=Math.max(o,1),r=o-1);let a=this.getValueSize();this.times=Si(i,r,o),this.values=Si(this.values,r*a,o*a)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let i=this.times,s=this.values,r=i.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==r;a++){let l=i[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(s!==void 0&&H0(s))for(let a=0,l=s.length;a!==l;++a){let c=s[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),e=!1;break}}return e}optimize(){let e=Si(this.times),t=Si(this.values),i=this.getValueSize(),s=this.getInterpolation()===Ql,r=e.length-1,o=1;for(let a=1;a<r;++a){let l=!1,c=e[a],h=e[a+1];if(c!==h&&(a!==1||c!==e[0]))if(s)l=!0;else{let f=a*i,u=f-i,d=f+i;for(let g=0;g!==i;++g){let m=t[f+g];if(m!==t[u+g]||m!==t[d+g]){l=!0;break}}}if(l){if(a!==o){e[o]=e[a];let f=a*i,u=o*i;for(let d=0;d!==i;++d)t[u+d]=t[f+d]}++o}}if(r>0){e[o]=e[r];for(let a=r*i,l=o*i,c=0;c!==i;++c)t[l+c]=t[a+c];++o}return o!==e.length?(this.times=Si(e,0,o),this.values=Si(t,0,o*i)):(this.times=e,this.values=t),this}clone(){let e=Si(this.times,0),t=Si(this.values,0),i=this.constructor,s=new i(this.name,e,t);return s.createInterpolant=this.createInterpolant,s}};xn.prototype.TimeBufferType=Float32Array;xn.prototype.ValueBufferType=Float32Array;xn.prototype.DefaultInterpolation=rs;var Ri=class extends xn{};Ri.prototype.ValueTypeName="bool";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Zs;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;var Sc=class extends xn{};Sc.prototype.ValueTypeName="color";var oi=class extends xn{};oi.prototype.ValueTypeName="number";var Uh=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(i-t)/(s-t),c=e*a;for(let h=c+a;c!==h;c+=4)Xt.slerpFlat(r,0,o,c-a,o,c,l);return r}},Wn=class extends xn{InterpolantFactoryMethodLinear(e){return new Uh(this.times,this.values,this.getValueSize(),e)}};Wn.prototype.ValueTypeName="quaternion";Wn.prototype.DefaultInterpolation=rs;Wn.prototype.InterpolantFactoryMethodSmooth=void 0;var Di=class extends xn{};Di.prototype.ValueTypeName="string";Di.prototype.ValueBufferType=Array;Di.prototype.DefaultInterpolation=Zs;Di.prototype.InterpolantFactoryMethodLinear=void 0;Di.prototype.InterpolantFactoryMethodSmooth=void 0;var ci=class extends xn{};ci.prototype.ValueTypeName="vector";var bc=class{constructor(e,t=-1,i,s=Pv){this.name=e,this.tracks=i,this.duration=t,this.blendMode=s,this.uuid=Ln(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],i=e.tracks,s=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(ob(i[o]).scale(s));let r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){let t=[],i=e.tracks,s={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,o=i.length;r!==o;++r)t.push(xn.toJSON(i[r]));return s}static CreateFromMorphTargetSequence(e,t,i,s){let r=t.length,o=[];for(let a=0;a<r;a++){let l=[],c=[];l.push((a+r-1)%r,a,(a+1)%r),c.push(0,1,0);let h=rb(l);l=A0(l,1,h),c=A0(c,1,h),!s&&l[0]===0&&(l.push(r),c.push(c[0])),o.push(new oi(".morphTargetInfluences["+t[a].name+"]",l,c).scale(1/i))}return new this(e,-1,o)}static findByName(e,t){let i=e;if(!Array.isArray(e)){let s=e;i=s.geometry&&s.geometry.animations||s.animations}for(let s=0;s<i.length;s++)if(i[s].name===t)return i[s];return null}static CreateClipsFromMorphTargetSequences(e,t,i){let s={},r=/^([\w-]*?)([\d]+)$/;for(let a=0,l=e.length;a<l;a++){let c=e[a],h=c.name.match(r);if(h&&h.length>1){let f=h[1],u=s[f];u||(s[f]=u=[]),u.push(c)}}let o=[];for(let a in s)o.push(this.CreateFromMorphTargetSequence(a,s[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let i=function(f,u,d,g,m){if(d.length!==0){let p=[],A=[];z0(d,p,A,g),p.length!==0&&m.push(new f(u,p,A))}},s=[],r=e.name||"default",o=e.fps||30,a=e.blendMode,l=e.length||-1,c=e.hierarchy||[];for(let f=0;f<c.length;f++){let u=c[f].keys;if(!(!u||u.length===0))if(u[0].morphTargets){let d={},g;for(g=0;g<u.length;g++)if(u[g].morphTargets)for(let m=0;m<u[g].morphTargets.length;m++)d[u[g].morphTargets[m]]=-1;for(let m in d){let p=[],A=[];for(let x=0;x!==u[g].morphTargets.length;++x){let _=u[g];p.push(_.time),A.push(_.morphTarget===m?1:0)}s.push(new oi(".morphTargetInfluence["+m+"]",p,A))}l=d.length*o}else{let d=".bones["+t[f].name+"]";i(ci,d+".position",u,"pos",s),i(Wn,d+".quaternion",u,"rot",s),i(ci,d+".scale",u,"scl",s)}}return s.length===0?null:new this(r,l,s,a)}resetDuration(){let e=this.tracks,t=0;for(let i=0,s=e.length;i!==s;++i){let r=this.tracks[i];t=Math.max(t,r.times[r.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=!0;for(let t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){let e=[];for(let t=0;t<this.tracks.length;t++)e.push(this.tracks[t].clone());return new this.constructor(this.name,this.duration,e,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}};function ab(n){switch(n.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return oi;case"vector":case"vector2":case"vector3":case"vector4":return ci;case"color":return Sc;case"quaternion":return Wn;case"bool":case"boolean":return Ri;case"string":return Di}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+n)}function ob(n){if(n.type===void 0)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");let e=ab(n.type);if(n.times===void 0){let t=[],i=[];z0(n.keys,t,i,"value"),n.times=t,n.values=i}return e.parse!==void 0?e.parse(n):new e(n.name,n.times,n.values,n.interpolation)}var ar={enabled:!1,files:{},add:function(n,e){this.enabled!==!1&&(this.files[n]=e)},get:function(n){if(this.enabled!==!1)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}},ga=class{constructor(e,t,i){let s=this,r=!1,o=0,a=0,l,c=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=i,this.itemStart=function(h){a++,r===!1&&s.onStart!==void 0&&s.onStart(h,o,a),r=!0},this.itemEnd=function(h){o++,s.onProgress!==void 0&&s.onProgress(h,o,a),o===a&&(r=!1,s.onLoad!==void 0&&s.onLoad())},this.itemError=function(h){s.onError!==void 0&&s.onError(h)},this.resolveURL=function(h){return l?l(h):h},this.setURLModifier=function(h){return l=h,this},this.addHandler=function(h,f){return c.push(h,f),this},this.removeHandler=function(h){let f=c.indexOf(h);return f!==-1&&c.splice(f,2),this},this.getHandler=function(h){for(let f=0,u=c.length;f<u;f+=2){let d=c[f],g=c[f+1];if(d.global&&(d.lastIndex=0),d.test(h))return g}return null}}},cb=new ga,vn=class{constructor(e){this.manager=e!==void 0?e:cb,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){let i=this;return new Promise(function(s,r){i.load(e,s,t,r)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}};vn.DEFAULT_MATERIAL_NAME="__DEFAULT";var ii={},Nh=class extends Error{constructor(e,t){super(e),this.response=t}},Kn=class extends vn{constructor(e){super(e)}load(e,t,i,s){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let r=ar.get(e);if(r!==void 0)return this.manager.itemStart(e),setTimeout(()=>{t&&t(r),this.manager.itemEnd(e)},0),r;if(ii[e]!==void 0){ii[e].push({onLoad:t,onProgress:i,onError:s});return}ii[e]=[],ii[e].push({onLoad:t,onProgress:i,onError:s});let o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;let h=ii[e],f=c.body.getReader(),u=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),d=u?parseInt(u):0,g=d!==0,m=0,p=new ReadableStream({start(A){x();function x(){f.read().then(({done:_,value:v})=>{if(_)A.close();else{m+=v.byteLength;let y=new ProgressEvent("progress",{lengthComputable:g,loaded:m,total:d});for(let S=0,C=h.length;S<C;S++){let M=h[S];M.onProgress&&M.onProgress(y)}A.enqueue(v),x()}})}}});return new Response(p)}else throw new Nh(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{let f=/charset="?([^;"\s]*)"?/i.exec(a),u=f&&f[1]?f[1].toLowerCase():void 0,d=new TextDecoder(u);return c.arrayBuffer().then(g=>d.decode(g))}}}).then(c=>{ar.add(e,c);let h=ii[e];delete ii[e];for(let f=0,u=h.length;f<u;f++){let d=h[f];d.onLoad&&d.onLoad(c)}}).catch(c=>{let h=ii[e];if(h===void 0)throw this.manager.itemError(e),c;delete ii[e];for(let f=0,u=h.length;f<u;f++){let d=h[f];d.onError&&d.onError(c)}this.manager.itemError(e)}).finally(()=>{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}};var Oh=class extends vn{constructor(e){super(e)}load(e,t,i,s){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let r=this,o=ar.get(e);if(o!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(o),r.manager.itemEnd(e)},0),o;let a=aa("img");function l(){h(),ar.add(e,this),t&&t(this),r.manager.itemEnd(e)}function c(f){h(),s&&s(f),r.manager.itemError(e),r.manager.itemEnd(e)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),e.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(e),a.src=e,a}};var Ic=class extends vn{constructor(e){super(e)}load(e,t,i,s){let r=this,o=new tr,a=new Kn(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(e,function(l){let c;try{c=r.parse(l)}catch(h){if(s!==void 0)s(h);else{console.error(h);return}}if(!c)return s();c.image!==void 0?o.image=c.image:c.data!==void 0&&(o.image.width=c.width,o.image.height=c.height,o.image.data=c.data),o.wrapS=c.wrapS!==void 0?c.wrapS:kt,o.wrapT=c.wrapT!==void 0?c.wrapT:kt,o.magFilter=c.magFilter!==void 0?c.magFilter:ut,o.minFilter=c.minFilter!==void 0?c.minFilter:ut,o.anisotropy=c.anisotropy!==void 0?c.anisotropy:1,c.colorSpace!==void 0?o.colorSpace=c.colorSpace:c.encoding!==void 0&&(o.encoding=c.encoding),c.flipY!==void 0&&(o.flipY=c.flipY),c.format!==void 0&&(o.format=c.format),c.type!==void 0&&(o.type=c.type),c.mipmaps!==void 0&&(o.mipmaps=c.mipmaps,o.minFilter=Fn),c.mipmapCount===1&&(o.minFilter=ut),c.generateMipmaps!==void 0&&(o.generateMipmaps=c.generateMipmaps),o.needsUpdate=!0,t&&t(o,c)},i,s),o}},wc=class extends vn{constructor(e){super(e)}load(e,t,i,s){let r=new gt,o=new Oh(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(e,function(a){r.image=a,r.needsUpdate=!0,t!==void 0&&t(r)},i,s),r}},ma=class extends ct{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Ee(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){let t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),t}};var uh=new Oe,p0=new Q,g0=new Q,_a=class{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Ie(512,512),this.map=null,this.mapPass=null,this.matrix=new Oe,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ca,this._frameExtents=new Ie(1,1),this._viewportCount=1,this._viewports=[new tt(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){let t=this.camera,i=this.matrix;p0.setFromMatrixPosition(e.matrixWorld),t.position.copy(p0),g0.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(g0),t.updateMatrixWorld(),uh.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(uh),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(uh)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){let e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}},kh=class extends _a{constructor(){super(new yt(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){let t=this.camera,i=js*2*e.angle*this.focus,s=this.mapSize.width/this.mapSize.height,r=e.distance||t.far;(i!==t.fov||s!==t.aspect||r!==t.far)&&(t.fov=i,t.aspect=s,t.far=r,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}},Mc=class extends ma{constructor(e,t,i=0,s=Math.PI/3,r=0,o=2){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ct.DEFAULT_UP),this.updateMatrix(),this.target=new ct,this.distance=i,this.angle=s,this.penumbra=r,this.decay=o,this.map=null,this.shadow=new kh}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}},m0=new Oe,Xr=new Q,fh=new Q,Qh=class extends _a{constructor(){super(new yt(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Ie(4,2),this._viewportCount=6,this._viewports=[new tt(2,1,1,1),new tt(0,1,1,1),new tt(3,1,1,1),new tt(1,1,1,1),new tt(3,0,1,1),new tt(1,0,1,1)],this._cubeDirections=[new Q(1,0,0),new Q(-1,0,0),new Q(0,0,1),new Q(0,0,-1),new Q(0,1,0),new Q(0,-1,0)],this._cubeUps=[new Q(0,1,0),new Q(0,1,0),new Q(0,1,0),new Q(0,1,0),new Q(0,0,1),new Q(0,0,-1)]}updateMatrices(e,t=0){let i=this.camera,s=this.matrix,r=e.distance||i.far;r!==i.far&&(i.far=r,i.updateProjectionMatrix()),Xr.setFromMatrixPosition(e.matrixWorld),i.position.copy(Xr),fh.copy(i.position),fh.add(this._cubeDirections[t]),i.up.copy(this._cubeUps[t]),i.lookAt(fh),i.updateMatrixWorld(),s.makeTranslation(-Xr.x,-Xr.y,-Xr.z),m0.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(m0)}},Tc=class extends ma{constructor(e,t,i=0,s=2){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=i,this.decay=s,this.shadow=new Qh}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}},Gh=class extends _a{constructor(){super(new Ti(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},Bc=class extends ma{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ct.DEFAULT_UP),this.updateMatrix(),this.target=new ct,this.shadow=new Gh}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}};var or=class{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,s=e.length;i<s;i++)t+=String.fromCharCode(e[i]);try{return decodeURIComponent(escape(t))}catch{return t}}static extractUrlBase(e){let t=e.lastIndexOf("/");return t===-1?"./":e.slice(0,t+1)}static resolveURL(e,t){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}};var Rc=class extends vn{constructor(e){super(e),this.isImageBitmapLoader=!0,typeof createImageBitmap>"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,s){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let r=this,o=ar.get(e);if(o!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(o),r.manager.itemEnd(e)},0),o;let a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader,fetch(e,a).then(function(l){return l.blob()}).then(function(l){return createImageBitmap(l,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(l){ar.add(e,l),t&&t(l),r.manager.itemEnd(e)}).catch(function(l){s&&s(l),r.manager.itemError(e),r.manager.itemEnd(e)}),r.manager.itemStart(e)}};var Jh="\\[\\]\\.:\\/",lb=new RegExp("["+Jh+"]","g"),Zh="[^"+Jh+"]",hb="[^"+Jh.replace("\\.","")+"]",ub=/((?:WC+[\/:])*)/.source.replace("WC",Zh),fb=/(WCOD+)?/.source.replace("WCOD",hb),db=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Zh),Ab=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Zh),pb=new RegExp("^"+ub+fb+db+Ab+"$"),gb=["material","materials","bones","map"],Hh=class{constructor(e,t,i){let s=i||Je.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,s)}getValue(e,t){this.bind();let i=this._targetGroup.nCachedObjects_,s=this._bindings[i];s!==void 0&&s.getValue(e,t)}setValue(e,t){let i=this._bindings;for(let s=this._targetGroup.nCachedObjects_,r=i.length;s!==r;++s)i[s].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}},Je=class{constructor(e,t,i){this.path=t,this.parsedPath=i||Je.parseTrackName(t),this.node=Je.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Je.Composite(e,t,i):new Je(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(lb,"")}static parseTrackName(e){let t=pb.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},s=i.nodeName&&i.nodeName.lastIndexOf(".");if(s!==void 0&&s!==-1){let r=i.nodeName.substring(s+1);gb.indexOf(r)!==-1&&(i.nodeName=i.nodeName.substring(0,s),i.objectName=r)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){let i=function(r){for(let o=0;o<r.length;o++){let a=r[o];if(a.name===t||a.uuid===t)return a;let l=i(a.children);if(l)return l}return null},s=i(e.children);if(s)return s}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName]}_getValue_array(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)e[t++]=i[s]}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t)}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t]}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)i[s]=e[t++]}_setValue_array_setNeedsUpdate(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)i[s]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)i[s]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t]}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t)}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(e,t){this.bind(),this.getValue(e,t)}_setValue_unbound(e,t){this.bind(),this.setValue(e,t)}bind(){let e=this.node,t=this.parsedPath,i=t.objectName,s=t.propertyName,r=t.propertyIndex;if(e||(e=Je.findNode(this.rootNode,t.nodeName),this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");return}if(i){let c=t.objectIndex;switch(i){case"materials":if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}e=e.material.materials;break;case"bones":if(!e.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let h=0;h<e.length;h++)if(e[h].name===c){c=h;break}break;case"map":if("map"in e){e=e.map;break}if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.map){console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);return}e=e.material.map;break;default:if(e[i]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[i]}if(c!==void 0){if(e[c]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[c]}}let o=e[s];if(o===void 0){let c=t.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+c+"."+s+" but it wasn't found.",e);return}let a=this.Versioning.None;this.targetObject=e,e.needsUpdate!==void 0?a=this.Versioning.NeedsUpdate:e.matrixWorldNeedsUpdate!==void 0&&(a=this.Versioning.MatrixWorldNeedsUpdate);let l=this.BindingType.Direct;if(r!==void 0){if(s==="morphTargetInfluences"){if(!e.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!e.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[r]!==void 0&&(r=e.morphTargetDictionary[r])}l=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=r}else o.fromArray!==void 0&&o.toArray!==void 0?(l=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(l=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=s;this.getValue=this.GetterByBindingType[l],this.setValue=this.SetterByBindingTypeAndVersioning[l][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}};Je.Composite=Hh;Je.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Je.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Je.prototype.GetterByBindingType=[Je.prototype._getValue_direct,Je.prototype._getValue_array,Je.prototype._getValue_arrayElement,Je.prototype._getValue_toArray];Je.prototype.SetterByBindingTypeAndVersioning=[[Je.prototype._setValue_direct,Je.prototype._setValue_direct_setNeedsUpdate,Je.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Je.prototype._setValue_array,Je.prototype._setValue_array_setNeedsUpdate,Je.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Je.prototype._setValue_arrayElement,Je.prototype._setValue_arrayElement_setNeedsUpdate,Je.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Je.prototype._setValue_fromArray,Je.prototype._setValue_fromArray_setNeedsUpdate,Je.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var oI=new Float32Array(1);var xa=class{constructor(e=1,t=0,i=0){return this.radius=e,this.phi=t,this.theta=i,this}set(e,t,i){return this.radius=e,this.phi=t,this.theta=i,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,i){return this.radius=Math.sqrt(e*e+t*t+i*i),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,i),this.phi=Math.acos(Rt(t/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:zh}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=zh);var V0={type:"change"},jh={type:"start"},W0={type:"end"},Uc=new Mi,K0=new Rn,_b=Math.cos(70*Fc.DEG2RAD),Nc=class extends Vn{constructor(e,t){super(),this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Q,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:ls.ROTATE,MIDDLE:ls.DOLLY,RIGHT:ls.PAN},this.touches={ONE:hs.ROTATE,TWO:hs.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(P){P.addEventListener("keydown",I),this._domElementKeyEvents=P},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",I),this._domElementKeyEvents=null},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(V0),i.update(),r=s.NONE},this.update=function(){let P=new Q,ee=new Xt().setFromUnitVectors(e.up,new Q(0,1,0)),ge=ee.clone().invert(),ue=new Q,Ae=new Xt,Re=new Q,He=2*Math.PI;return function(){let fe=i.object.position;P.copy(fe).sub(i.target),P.applyQuaternion(ee),a.setFromVector3(P),i.autoRotate&&r===s.NONE&&w(E()),i.enableDamping?(a.theta+=l.theta*i.dampingFactor,a.phi+=l.phi*i.dampingFactor):(a.theta+=l.theta,a.phi+=l.phi);let J=i.minAzimuthAngle,re=i.maxAzimuthAngle;isFinite(J)&&isFinite(re)&&(J<-Math.PI?J+=He:J>Math.PI&&(J-=He),re<-Math.PI?re+=He:re>Math.PI&&(re-=He),J<=re?a.theta=Math.max(J,Math.min(re,a.theta)):a.theta=a.theta>(J+re)/2?Math.max(J,a.theta):Math.min(re,a.theta)),a.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,a.phi)),a.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(h,i.dampingFactor):i.target.add(h),i.zoomToCursor&&S||i.object.isOrthographicCamera?a.radius=F(a.radius):a.radius=F(a.radius*c),P.setFromSpherical(a),P.applyQuaternion(ge),fe.copy(i.target).add(P),i.object.lookAt(i.target),i.enableDamping===!0?(l.theta*=1-i.dampingFactor,l.phi*=1-i.dampingFactor,h.multiplyScalar(1-i.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let de=!1;if(i.zoomToCursor&&S){let Ne=null;if(i.object.isPerspectiveCamera){let Ze=P.length();Ne=F(Ze*c);let rt=Ze-Ne;i.object.position.addScaledVector(v,rt),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){let Ze=new Q(y.x,y.y,0);Ze.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),de=!0;let rt=new Q(y.x,y.y,0);rt.unproject(i.object),i.object.position.sub(rt).add(Ze),i.object.updateMatrixWorld(),Ne=P.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;Ne!==null&&(this.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(Ne).add(i.object.position):(Uc.origin.copy(i.object.position),Uc.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(Uc.direction))<_b?e.lookAt(i.target):(K0.setFromNormalAndCoplanarPoint(i.object.up,i.target),Uc.intersectPlane(K0,i.target))))}else i.object.isOrthographicCamera&&(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),de=!0);return c=1,S=!1,de||ue.distanceToSquared(i.object.position)>o||8*(1-Ae.dot(i.object.quaternion))>o||Re.distanceToSquared(i.target)>0?(i.dispatchEvent(V0),ue.copy(i.object.position),Ae.copy(i.object.quaternion),Re.copy(i.target),de=!1,!0):!1}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",se),i.domElement.removeEventListener("pointerdown",Ue),i.domElement.removeEventListener("pointercancel",Be),i.domElement.removeEventListener("wheel",B),i.domElement.removeEventListener("pointermove",ye),i.domElement.removeEventListener("pointerup",Be),i._domElementKeyEvents!==null&&(i._domElementKeyEvents.removeEventListener("keydown",I),i._domElementKeyEvents=null)};let i=this,s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=s.NONE,o=1e-6,a=new xa,l=new xa,c=1,h=new Q,f=new Ie,u=new Ie,d=new Ie,g=new Ie,m=new Ie,p=new Ie,A=new Ie,x=new Ie,_=new Ie,v=new Q,y=new Ie,S=!1,C=[],M={};function E(){return 2*Math.PI/60/60*i.autoRotateSpeed}function b(){return Math.pow(.95,i.zoomSpeed)}function w(P){l.theta-=P}function G(P){l.phi-=P}let U=function(){let P=new Q;return function(ge,ue){P.setFromMatrixColumn(ue,0),P.multiplyScalar(-ge),h.add(P)}}(),D=function(){let P=new Q;return function(ge,ue){i.screenSpacePanning===!0?P.setFromMatrixColumn(ue,1):(P.setFromMatrixColumn(ue,0),P.crossVectors(i.object.up,P)),P.multiplyScalar(ge),h.add(P)}}(),O=function(){let P=new Q;return function(ge,ue){let Ae=i.domElement;if(i.object.isPerspectiveCamera){let Re=i.object.position;P.copy(Re).sub(i.target);let He=P.length();He*=Math.tan(i.object.fov/2*Math.PI/180),U(2*ge*He/Ae.clientHeight,i.object.matrix),D(2*ue*He/Ae.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(U(ge*(i.object.right-i.object.left)/i.object.zoom/Ae.clientWidth,i.object.matrix),D(ue*(i.object.top-i.object.bottom)/i.object.zoom/Ae.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function K(P){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c/=P:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function H(P){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c*=P:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function z(P){if(!i.zoomToCursor)return;S=!0;let ee=i.domElement.getBoundingClientRect(),ge=P.clientX-ee.left,ue=P.clientY-ee.top,Ae=ee.width,Re=ee.height;y.x=ge/Ae*2-1,y.y=-(ue/Re)*2+1,v.set(y.x,y.y,1).unproject(e).sub(e.position).normalize()}function F(P){return Math.max(i.minDistance,Math.min(i.maxDistance,P))}function N(P){f.set(P.clientX,P.clientY)}function R(P){z(P),A.set(P.clientX,P.clientY)}function L(P){g.set(P.clientX,P.clientY)}function ne(P){u.set(P.clientX,P.clientY),d.subVectors(u,f).multiplyScalar(i.rotateSpeed);let ee=i.domElement;w(2*Math.PI*d.x/ee.clientHeight),G(2*Math.PI*d.y/ee.clientHeight),f.copy(u),i.update()}function ie(P){x.set(P.clientX,P.clientY),_.subVectors(x,A),_.y>0?K(b()):_.y<0&&H(b()),A.copy(x),i.update()}function he(P){m.set(P.clientX,P.clientY),p.subVectors(m,g).multiplyScalar(i.panSpeed),O(p.x,p.y),g.copy(m),i.update()}function ae(P){z(P),P.deltaY<0?H(b()):P.deltaY>0&&K(b()),i.update()}function we(P){let ee=!1;switch(P.code){case i.keys.UP:P.ctrlKey||P.metaKey||P.shiftKey?G(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(0,i.keyPanSpeed),ee=!0;break;case i.keys.BOTTOM:P.ctrlKey||P.metaKey||P.shiftKey?G(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(0,-i.keyPanSpeed),ee=!0;break;case i.keys.LEFT:P.ctrlKey||P.metaKey||P.shiftKey?w(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(i.keyPanSpeed,0),ee=!0;break;case i.keys.RIGHT:P.ctrlKey||P.metaKey||P.shiftKey?w(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(-i.keyPanSpeed,0),ee=!0;break}ee&&(P.preventDefault(),i.update())}function xe(){if(C.length===1)f.set(C[0].pageX,C[0].pageY);else{let P=.5*(C[0].pageX+C[1].pageX),ee=.5*(C[0].pageY+C[1].pageY);f.set(P,ee)}}function Ve(){if(C.length===1)g.set(C[0].pageX,C[0].pageY);else{let P=.5*(C[0].pageX+C[1].pageX),ee=.5*(C[0].pageY+C[1].pageY);g.set(P,ee)}}function ft(){let P=C[0].pageX-C[1].pageX,ee=C[0].pageY-C[1].pageY,ge=Math.sqrt(P*P+ee*ee);A.set(0,ge)}function Ce(){i.enableZoom&&ft(),i.enablePan&&Ve()}function V(){i.enableZoom&&ft(),i.enableRotate&&xe()}function lt(P){if(C.length==1)u.set(P.pageX,P.pageY);else{let ge=Z(P),ue=.5*(P.pageX+ge.x),Ae=.5*(P.pageY+ge.y);u.set(ue,Ae)}d.subVectors(u,f).multiplyScalar(i.rotateSpeed);let ee=i.domElement;w(2*Math.PI*d.x/ee.clientHeight),G(2*Math.PI*d.y/ee.clientHeight),f.copy(u)}function ve(P){if(C.length===1)m.set(P.pageX,P.pageY);else{let ee=Z(P),ge=.5*(P.pageX+ee.x),ue=.5*(P.pageY+ee.y);m.set(ge,ue)}p.subVectors(m,g).multiplyScalar(i.panSpeed),O(p.x,p.y),g.copy(m)}function Te(P){let ee=Z(P),ge=P.pageX-ee.x,ue=P.pageY-ee.y,Ae=Math.sqrt(ge*ge+ue*ue);x.set(0,Ae),_.set(0,Math.pow(x.y/A.y,i.zoomSpeed)),K(_.y),A.copy(x)}function Se(P){i.enableZoom&&Te(P),i.enablePan&&ve(P)}function $e(P){i.enableZoom&&Te(P),i.enableRotate&&lt(P)}function Ue(P){i.enabled!==!1&&(C.length===0&&(i.domElement.setPointerCapture(P.pointerId),i.domElement.addEventListener("pointermove",ye),i.domElement.addEventListener("pointerup",Be)),ce(P),P.pointerType==="touch"?X(P):nt(P))}function ye(P){i.enabled!==!1&&(P.pointerType==="touch"?le(P):dt(P))}function Be(P){me(P),C.length===0&&(i.domElement.releasePointerCapture(P.pointerId),i.domElement.removeEventListener("pointermove",ye),i.domElement.removeEventListener("pointerup",Be)),i.dispatchEvent(W0),r=s.NONE}function nt(P){let ee;switch(P.button){case 0:ee=i.mouseButtons.LEFT;break;case 1:ee=i.mouseButtons.MIDDLE;break;case 2:ee=i.mouseButtons.RIGHT;break;default:ee=-1}switch(ee){case ls.DOLLY:if(i.enableZoom===!1)return;R(P),r=s.DOLLY;break;case ls.ROTATE:if(P.ctrlKey||P.metaKey||P.shiftKey){if(i.enablePan===!1)return;L(P),r=s.PAN}else{if(i.enableRotate===!1)return;N(P),r=s.ROTATE}break;case ls.PAN:if(P.ctrlKey||P.metaKey||P.shiftKey){if(i.enableRotate===!1)return;N(P),r=s.ROTATE}else{if(i.enablePan===!1)return;L(P),r=s.PAN}break;default:r=s.NONE}r!==s.NONE&&i.dispatchEvent(jh)}function dt(P){switch(r){case s.ROTATE:if(i.enableRotate===!1)return;ne(P);break;case s.DOLLY:if(i.enableZoom===!1)return;ie(P);break;case s.PAN:if(i.enablePan===!1)return;he(P);break}}function B(P){i.enabled===!1||i.enableZoom===!1||r!==s.NONE||(P.preventDefault(),i.dispatchEvent(jh),ae(P),i.dispatchEvent(W0))}function I(P){i.enabled===!1||i.enablePan===!1||we(P)}function X(P){switch(oe(P),C.length){case 1:switch(i.touches.ONE){case hs.ROTATE:if(i.enableRotate===!1)return;xe(),r=s.TOUCH_ROTATE;break;case hs.PAN:if(i.enablePan===!1)return;Ve(),r=s.TOUCH_PAN;break;default:r=s.NONE}break;case 2:switch(i.touches.TWO){case hs.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Ce(),r=s.TOUCH_DOLLY_PAN;break;case hs.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;V(),r=s.TOUCH_DOLLY_ROTATE;break;default:r=s.NONE}break;default:r=s.NONE}r!==s.NONE&&i.dispatchEvent(jh)}function le(P){switch(oe(P),r){case s.TOUCH_ROTATE:if(i.enableRotate===!1)return;lt(P),i.update();break;case s.TOUCH_PAN:if(i.enablePan===!1)return;ve(P),i.update();break;case s.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Se(P),i.update();break;case s.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;$e(P),i.update();break;default:r=s.NONE}}function se(P){i.enabled!==!1&&P.preventDefault()}function ce(P){C.push(P)}function me(P){delete M[P.pointerId];for(let ee=0;ee<C.length;ee++)if(C[ee].pointerId==P.pointerId){C.splice(ee,1);return}}function oe(P){let ee=M[P.pointerId];ee===void 0&&(ee=new Ie,M[P.pointerId]=ee),ee.set(P.pageX,P.pageY)}function Z(P){let ee=P.pointerId===C[0].pointerId?C[1]:C[0];return M[ee.pointerId]}i.domElement.addEventListener("contextmenu",se),i.domElement.addEventListener("pointerdown",Ue),i.domElement.addEventListener("pointercancel",Be),i.domElement.addEventListener("wheel",B,{passive:!1}),this.update()}};function $h(n,e){if(e===T0)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),n;if(e===va||e===Lc){let t=n.getIndex();if(t===null){let o=[],a=n.getAttribute("position");if(a!==void 0){for(let l=0;l<a.count;l++)o.push(l);n.setIndex(o),t=n.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),n}let i=t.count-2,s=[];if(e===va)for(let o=1;o<=i;o++)s.push(t.getX(0)),s.push(t.getX(o)),s.push(t.getX(o+1));else for(let o=0;o<i;o++)o%2===0?(s.push(t.getX(o)),s.push(t.getX(o+1)),s.push(t.getX(o+2))):(s.push(t.getX(o+2)),s.push(t.getX(o+1)),s.push(t.getX(o)));s.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");let r=n.clone();return r.setIndex(s),r.clearGroups(),r}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),n}var Oc=class extends vn{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(t){return new au(t)}),this.register(function(t){return new Au(t)}),this.register(function(t){return new pu(t)}),this.register(function(t){return new gu(t)}),this.register(function(t){return new cu(t)}),this.register(function(t){return new lu(t)}),this.register(function(t){return new hu(t)}),this.register(function(t){return new uu(t)}),this.register(function(t){return new ru(t)}),this.register(function(t){return new fu(t)}),this.register(function(t){return new ou(t)}),this.register(function(t){return new du(t)}),this.register(function(t){return new iu(t)}),this.register(function(t){return new mu(t)}),this.register(function(t){return new _u(t)})}load(e,t,i,s){let r=this,o;this.resourcePath!==""?o=this.resourcePath:this.path!==""?o=this.path:o=or.extractUrlBase(e),this.manager.itemStart(e);let a=function(c){s?s(c):console.error(c),r.manager.itemError(e),r.manager.itemEnd(e)},l=new Kn(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(c){try{r.parse(c,o,function(h){t(h),r.manager.itemEnd(e)},a)}catch(h){a(h)}},i,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,i,s){let r,o={},a={},l=new TextDecoder;if(typeof e=="string")r=JSON.parse(e);else if(e instanceof ArrayBuffer)if(l.decode(new Uint8Array(e,0,4))===Z0){try{o[Ye.KHR_BINARY_GLTF]=new xu(e)}catch(f){s&&s(f);return}r=JSON.parse(o[Ye.KHR_BINARY_GLTF].content)}else r=JSON.parse(l.decode(e));else r=e;if(r.asset===void 0||r.asset.version[0]<2){s&&s(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let c=new Iu(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let h=0;h<this.pluginCallbacks.length;h++){let f=this.pluginCallbacks[h](c);a[f.name]=f,o[f.name]=!0}if(r.extensionsUsed)for(let h=0;h<r.extensionsUsed.length;++h){let f=r.extensionsUsed[h],u=r.extensionsRequired||[];switch(f){case Ye.KHR_MATERIALS_UNLIT:o[f]=new su;break;case Ye.KHR_DRACO_MESH_COMPRESSION:o[f]=new vu(r,this.dracoLoader);break;case Ye.KHR_TEXTURE_TRANSFORM:o[f]=new Eu;break;case Ye.KHR_MESH_QUANTIZATION:o[f]=new yu;break;default:u.indexOf(f)>=0&&a[f]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+f+'".')}}c.setExtensions(o),c.setPlugins(a),c.parse(i,s)}parseAsync(e,t){let i=this;return new Promise(function(s,r){i.parse(e,t,s,r)})}};function xb(){let n={};return{get:function(e){return n[e]},add:function(e,t){n[e]=t},remove:function(e){delete n[e]},removeAll:function(){n={}}}}var Ye={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},iu=class{constructor(e){this.parser=e,this.name=Ye.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let i=0,s=t.length;i<s;i++){let r=t[i];r.extensions&&r.extensions[this.name]&&r.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(e){let t=this.parser,i="light:"+e,s=t.cache.get(i);if(s)return s;let r=t.json,l=((r.extensions&&r.extensions[this.name]||{}).lights||[])[e],c,h=new Ee(16777215);l.color!==void 0&&h.fromArray(l.color);let f=l.range!==void 0?l.range:0;switch(l.type){case"directional":c=new Bc(h),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new Tc(h),c.distance=f;break;case"spot":c=new Mc(h),c.distance=f,l.spot=l.spot||{},l.spot.innerConeAngle=l.spot.innerConeAngle!==void 0?l.spot.innerConeAngle:0,l.spot.outerConeAngle=l.spot.outerConeAngle!==void 0?l.spot.outerConeAngle:Math.PI/4,c.angle=l.spot.outerConeAngle,c.penumbra=1-l.spot.innerConeAngle/l.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+l.type)}return c.position.set(0,0,0),c.decay=2,Fi(c,l),l.intensity!==void 0&&(c.intensity=l.intensity),c.name=t.createUniqueName(l.name||"light_"+e),s=Promise.resolve(c),t.cache.add(i,s),s}getDependency(e,t){if(e==="light")return this._loadLight(t)}createNodeAttachment(e){let t=this,i=this.parser,r=i.json.nodes[e],a=(r.extensions&&r.extensions[this.name]||{}).light;return a===void 0?null:this._loadLight(a).then(function(l){return i._getNodeRef(t.cache,a,l)})}},su=class{constructor(){this.name=Ye.KHR_MATERIALS_UNLIT}getMaterialType(){return mn}extendParams(e,t,i){let s=[];e.color=new Ee(1,1,1),e.opacity=1;let r=t.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){let o=r.baseColorFactor;e.color.fromArray(o),e.opacity=o[3]}r.baseColorTexture!==void 0&&s.push(i.assignTexture(e,"map",r.baseColorTexture,be))}return Promise.all(s)}},ru=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){let s=this.parser.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=s.extensions[this.name].emissiveStrength;return r!==void 0&&(t.emissiveIntensity=r),Promise.resolve()}},au=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];if(o.clearcoatFactor!==void 0&&(t.clearcoat=o.clearcoatFactor),o.clearcoatTexture!==void 0&&r.push(i.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),o.clearcoatRoughnessFactor!==void 0&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),o.clearcoatRoughnessTexture!==void 0&&r.push(i.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),o.clearcoatNormalTexture!==void 0&&(r.push(i.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),o.clearcoatNormalTexture.scale!==void 0)){let a=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new Ie(a,a)}return Promise.all(r)}},ou=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];return o.iridescenceFactor!==void 0&&(t.iridescence=o.iridescenceFactor),o.iridescenceTexture!==void 0&&r.push(i.assignTexture(t,"iridescenceMap",o.iridescenceTexture)),o.iridescenceIor!==void 0&&(t.iridescenceIOR=o.iridescenceIor),t.iridescenceThicknessRange===void 0&&(t.iridescenceThicknessRange=[100,400]),o.iridescenceThicknessMinimum!==void 0&&(t.iridescenceThicknessRange[0]=o.iridescenceThicknessMinimum),o.iridescenceThicknessMaximum!==void 0&&(t.iridescenceThicknessRange[1]=o.iridescenceThicknessMaximum),o.iridescenceThicknessTexture!==void 0&&r.push(i.assignTexture(t,"iridescenceThicknessMap",o.iridescenceThicknessTexture)),Promise.all(r)}},cu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_SHEEN}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[];t.sheenColor=new Ee(0,0,0),t.sheenRoughness=0,t.sheen=1;let o=s.extensions[this.name];return o.sheenColorFactor!==void 0&&t.sheenColor.fromArray(o.sheenColorFactor),o.sheenRoughnessFactor!==void 0&&(t.sheenRoughness=o.sheenRoughnessFactor),o.sheenColorTexture!==void 0&&r.push(i.assignTexture(t,"sheenColorMap",o.sheenColorTexture,be)),o.sheenRoughnessTexture!==void 0&&r.push(i.assignTexture(t,"sheenRoughnessMap",o.sheenRoughnessTexture)),Promise.all(r)}},lu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];return o.transmissionFactor!==void 0&&(t.transmission=o.transmissionFactor),o.transmissionTexture!==void 0&&r.push(i.assignTexture(t,"transmissionMap",o.transmissionTexture)),Promise.all(r)}},hu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_VOLUME}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];t.thickness=o.thicknessFactor!==void 0?o.thicknessFactor:0,o.thicknessTexture!==void 0&&r.push(i.assignTexture(t,"thicknessMap",o.thicknessTexture)),t.attenuationDistance=o.attenuationDistance||1/0;let a=o.attenuationColor||[1,1,1];return t.attenuationColor=new Ee(a[0],a[1],a[2]),Promise.all(r)}},uu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_IOR}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let s=this.parser.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=s.extensions[this.name];return t.ior=r.ior!==void 0?r.ior:1.5,Promise.resolve()}},fu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_SPECULAR}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];t.specularIntensity=o.specularFactor!==void 0?o.specularFactor:1,o.specularTexture!==void 0&&r.push(i.assignTexture(t,"specularIntensityMap",o.specularTexture));let a=o.specularColorFactor||[1,1,1];return t.specularColor=new Ee(a[0],a[1],a[2]),o.specularColorTexture!==void 0&&r.push(i.assignTexture(t,"specularColorMap",o.specularColorTexture,be)),Promise.all(r)}},du=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];return o.anisotropyStrength!==void 0&&(t.anisotropy=o.anisotropyStrength),o.anisotropyRotation!==void 0&&(t.anisotropyRotation=o.anisotropyRotation),o.anisotropyTexture!==void 0&&r.push(i.assignTexture(t,"anisotropyMap",o.anisotropyTexture)),Promise.all(r)}},Au=class{constructor(e){this.parser=e,this.name=Ye.KHR_TEXTURE_BASISU}loadTexture(e){let t=this.parser,i=t.json,s=i.textures[e];if(!s.extensions||!s.extensions[this.name])return null;let r=s.extensions[this.name],o=t.options.ktx2Loader;if(!o){if(i.extensionsRequired&&i.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,o)}},pu=class{constructor(e){this.parser=e,this.name=Ye.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,i=this.parser,s=i.json,r=s.textures[e];if(!r.extensions||!r.extensions[t])return null;let o=r.extensions[t],a=s.images[o.source],l=i.textureLoader;if(a.uri){let c=i.options.manager.getHandler(a.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return i.loadTextureImage(e,o.source,l);if(s.extensionsRequired&&s.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}},gu=class{constructor(e){this.parser=e,this.name=Ye.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,i=this.parser,s=i.json,r=s.textures[e];if(!r.extensions||!r.extensions[t])return null;let o=r.extensions[t],a=s.images[o.source],l=i.textureLoader;if(a.uri){let c=i.options.manager.getHandler(a.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return i.loadTextureImage(e,o.source,l);if(s.extensionsRequired&&s.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}},mu=class{constructor(e){this.name=Ye.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,i=t.bufferViews[e];if(i.extensions&&i.extensions[this.name]){let s=i.extensions[this.name],r=this.parser.getDependency("buffer",s.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(a){let l=s.byteOffset||0,c=s.byteLength||0,h=s.count,f=s.byteStride,u=new Uint8Array(a,l,c);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(h,f,u,s.mode,s.filter).then(function(d){return d.buffer}):o.ready.then(function(){let d=new ArrayBuffer(h*f);return o.decodeGltfBuffer(new Uint8Array(d),h,f,u,s.mode,s.filter),d})})}else return null}},_u=class{constructor(e){this.name=Ye.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,i=t.nodes[e];if(!i.extensions||!i.extensions[this.name]||i.mesh===void 0)return null;let s=t.meshes[i.mesh];for(let c of s.primitives)if(c.mode!==En.TRIANGLES&&c.mode!==En.TRIANGLE_STRIP&&c.mode!==En.TRIANGLE_FAN&&c.mode!==void 0)return null;let o=i.extensions[this.name].attributes,a=[],l={};for(let c in o)a.push(this.parser.getDependency("accessor",o[c]).then(h=>(l[c]=h,l[c])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(c=>{let h=c.pop(),f=h.isGroup?h.children:[h],u=c[0].count,d=[];for(let g of f){let m=new Oe,p=new Q,A=new Xt,x=new Q(1,1,1),_=new _c(g.geometry,g.material,u);for(let v=0;v<u;v++)l.TRANSLATION&&p.fromBufferAttribute(l.TRANSLATION,v),l.ROTATION&&A.fromBufferAttribute(l.ROTATION,v),l.SCALE&&x.fromBufferAttribute(l.SCALE,v),_.setMatrixAt(v,m.compose(p,A,x));for(let v in l)v!=="TRANSLATION"&&v!=="ROTATION"&&v!=="SCALE"&&g.geometry.setAttribute(v,l[v]);ct.prototype.copy.call(_,g),this.parser.assignFinalMaterial(_),d.push(_)}return h.isGroup?(h.clear(),h.add(...d),h):d[0]}))}},Z0="glTF",ya=12,q0={JSON:1313821514,BIN:5130562},xu=class{constructor(e){this.name=Ye.KHR_BINARY_GLTF,this.content=null,this.body=null;let t=new DataView(e,0,ya),i=new TextDecoder;if(this.header={magic:i.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==Z0)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");let s=this.header.length-ya,r=new DataView(e,ya),o=0;for(;o<s;){let a=r.getUint32(o,!0);o+=4;let l=r.getUint32(o,!0);if(o+=4,l===q0.JSON){let c=new Uint8Array(e,ya+o,a);this.content=i.decode(c)}else if(l===q0.BIN){let c=ya+o;this.body=e.slice(c,c+a)}o+=a}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}},vu=class{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=Ye.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){let i=this.json,s=this.dracoLoader,r=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},l={},c={};for(let h in o){let f=Su[h]||h.toLowerCase();a[f]=o[h]}for(let h in e.attributes){let f=Su[h]||h.toLowerCase();if(o[h]!==void 0){let u=i.accessors[e.attributes[h]],d=ur[u.componentType];c[f]=d.name,l[f]=u.normalized===!0}}return t.getDependency("bufferView",r).then(function(h){return new Promise(function(f){s.decodeDracoFile(h,function(u){for(let d in u.attributes){let g=u.attributes[d],m=l[d];m!==void 0&&(g.normalized=m)}f(u)},a,c)})})}},Eu=class{constructor(){this.name=Ye.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return(t.texCoord===void 0||t.texCoord===e.channel)&&t.offset===void 0&&t.rotation===void 0&&t.scale===void 0||(e=e.clone(),t.texCoord!==void 0&&(e.channel=t.texCoord),t.offset!==void 0&&e.offset.fromArray(t.offset),t.rotation!==void 0&&(e.rotation=t.rotation),t.scale!==void 0&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}},yu=class{constructor(){this.name=Ye.KHR_MESH_QUANTIZATION}},kc=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}copySampleValue_(e){let t=this.resultBuffer,i=this.sampleValues,s=this.valueSize,r=e*s*3+s;for(let o=0;o!==s;o++)t[o]=i[r+o];return t}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=a*2,c=a*3,h=s-t,f=(i-t)/h,u=f*f,d=u*f,g=e*c,m=g-c,p=-2*d+3*u,A=d-u,x=1-p,_=A-u+f;for(let v=0;v!==a;v++){let y=o[m+v+a],S=o[m+v+l]*h,C=o[g+v+a],M=o[g+v]*h;r[v]=x*y+_*S+p*C+A*M}return r}},vb=new Xt,Cu=class extends kc{interpolate_(e,t,i,s){let r=super.interpolate_(e,t,i,s);return vb.fromArray(r).normalize().toArray(r),r}},En={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},ur={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},X0={9728:Et,9729:ut,9984:$o,9985:Wh,9986:Jr,9987:Fn},Y0={33071:kt,33648:ra,10497:ss},eu={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Su={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Li={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Eb={CUBICSPLINE:void 0,LINEAR:rs,STEP:Zs},tu={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function yb(n){return n.DefaultMaterial===void 0&&(n.DefaultMaterial=new rr({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:zn})),n.DefaultMaterial}function us(n,e,t){for(let i in t.extensions)n[i]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[i]=t.extensions[i])}function Fi(n,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(n.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function Cb(n,e,t){let i=!1,s=!1,r=!1;for(let c=0,h=e.length;c<h;c++){let f=e[c];if(f.POSITION!==void 0&&(i=!0),f.NORMAL!==void 0&&(s=!0),f.COLOR_0!==void 0&&(r=!0),i&&s&&r)break}if(!i&&!s&&!r)return Promise.resolve(n);let o=[],a=[],l=[];for(let c=0,h=e.length;c<h;c++){let f=e[c];if(i){let u=f.POSITION!==void 0?t.getDependency("accessor",f.POSITION):n.attributes.position;o.push(u)}if(s){let u=f.NORMAL!==void 0?t.getDependency("accessor",f.NORMAL):n.attributes.normal;a.push(u)}if(r){let u=f.COLOR_0!==void 0?t.getDependency("accessor",f.COLOR_0):n.attributes.color;l.push(u)}}return Promise.all([Promise.all(o),Promise.all(a),Promise.all(l)]).then(function(c){let h=c[0],f=c[1],u=c[2];return i&&(n.morphAttributes.position=h),s&&(n.morphAttributes.normal=f),r&&(n.morphAttributes.color=u),n.morphTargetsRelative=!0,n})}function Sb(n,e){if(n.updateMorphTargets(),e.weights!==void 0)for(let t=0,i=e.weights.length;t<i;t++)n.morphTargetInfluences[t]=e.weights[t];if(e.extras&&Array.isArray(e.extras.targetNames)){let t=e.extras.targetNames;if(n.morphTargetInfluences.length===t.length){n.morphTargetDictionary={};for(let i=0,s=t.length;i<s;i++)n.morphTargetDictionary[t[i]]=i}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function bb(n){let e,t=n.extensions&&n.extensions[Ye.KHR_DRACO_MESH_COMPRESSION];if(t?e="draco:"+t.bufferView+":"+t.indices+":"+nu(t.attributes):e=n.indices+":"+nu(n.attributes)+":"+n.mode,n.targets!==void 0)for(let i=0,s=n.targets.length;i<s;i++)e+=":"+nu(n.targets[i]);return e}function nu(n){let e="",t=Object.keys(n).sort();for(let i=0,s=t.length;i<s;i++)e+=t[i]+":"+n[t[i]]+";";return e}function bu(n){switch(n){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function Ib(n){return n.search(/\.jpe?g($|\?)/i)>0||n.search(/^data\:image\/jpeg/)===0?"image/jpeg":n.search(/\.webp($|\?)/i)>0||n.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}var wb=new Oe,Iu=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new xb,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let i=!1,s=!1,r=-1;typeof navigator<"u"&&(i=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,r=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||i||s&&r<98?this.textureLoader=new wc(this.options.manager):this.textureLoader=new Rc(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Kn(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let i=this,s=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(o){let a={scene:o[0][s.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:s.asset,parser:i,userData:{}};us(r,a,s),Fi(a,s),Promise.all(i._invokeAll(function(l){return l.afterRoot&&l.afterRoot(a)})).then(function(){e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let s=0,r=t.length;s<r;s++){let o=t[s].joints;for(let a=0,l=o.length;a<l;a++)e[o[a]].isBone=!0}for(let s=0,r=e.length;s<r;s++){let o=e[s];o.mesh!==void 0&&(this._addNodeRef(this.meshCache,o.mesh),o.skin!==void 0&&(i[o.mesh].isSkinnedMesh=!0)),o.camera!==void 0&&this._addNodeRef(this.cameraCache,o.camera)}}_addNodeRef(e,t){t!==void 0&&(e.refs[t]===void 0&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,i){if(e.refs[t]<=1)return i;let s=i.clone(),r=(o,a)=>{let l=this.associations.get(o);l!=null&&this.associations.set(a,l);for(let[c,h]of o.children.entries())r(h,a.children[c])};return r(i,s),s.name+="_instance_"+e.uses[t]++,s}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let i=0;i<t.length;i++){let s=e(t[i]);if(s)return s}return null}_invokeAll(e){let t=Object.values(this.plugins);t.unshift(this);let i=[];for(let s=0;s<t.length;s++){let r=e(t[s]);r&&i.push(r)}return i}getDependency(e,t){let i=e+":"+t,s=this.cache.get(i);if(!s){switch(e){case"scene":s=this.loadScene(t);break;case"node":s=this._invokeOne(function(r){return r.loadNode&&r.loadNode(t)});break;case"mesh":s=this._invokeOne(function(r){return r.loadMesh&&r.loadMesh(t)});break;case"accessor":s=this.loadAccessor(t);break;case"bufferView":s=this._invokeOne(function(r){return r.loadBufferView&&r.loadBufferView(t)});break;case"buffer":s=this.loadBuffer(t);break;case"material":s=this._invokeOne(function(r){return r.loadMaterial&&r.loadMaterial(t)});break;case"texture":s=this._invokeOne(function(r){return r.loadTexture&&r.loadTexture(t)});break;case"skin":s=this.loadSkin(t);break;case"animation":s=this._invokeOne(function(r){return r.loadAnimation&&r.loadAnimation(t)});break;case"camera":s=this.loadCamera(t);break;default:if(s=this._invokeOne(function(r){return r!=this&&r.getDependency&&r.getDependency(e,t)}),!s)throw new Error("Unknown type: "+e);break}this.cache.add(i,s)}return s}getDependencies(e){let t=this.cache.get(e);if(!t){let i=this,s=this.json[e+(e==="mesh"?"es":"s")]||[];t=Promise.all(s.map(function(r,o){return i.getDependency(e,o)})),this.cache.add(e,t)}return t}loadBuffer(e){let t=this.json.buffers[e],i=this.fileLoader;if(t.type&&t.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(t.uri===void 0&&e===0)return Promise.resolve(this.extensions[Ye.KHR_BINARY_GLTF].body);let s=this.options;return new Promise(function(r,o){i.load(or.resolveURL(t.uri,s.path),r,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){let t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(i){let s=t.byteLength||0,r=t.byteOffset||0;return i.slice(r,r+s)})}loadAccessor(e){let t=this,i=this.json,s=this.json.accessors[e];if(s.bufferView===void 0&&s.sparse===void 0){let o=eu[s.type],a=ur[s.componentType],l=s.normalized===!0,c=new a(s.count*o);return Promise.resolve(new Ct(c,o,l))}let r=[];return s.bufferView!==void 0?r.push(this.getDependency("bufferView",s.bufferView)):r.push(null),s.sparse!==void 0&&(r.push(this.getDependency("bufferView",s.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",s.sparse.values.bufferView))),Promise.all(r).then(function(o){let a=o[0],l=eu[s.type],c=ur[s.componentType],h=c.BYTES_PER_ELEMENT,f=h*l,u=s.byteOffset||0,d=s.bufferView!==void 0?i.bufferViews[s.bufferView].byteStride:void 0,g=s.normalized===!0,m,p;if(d&&d!==f){let A=Math.floor(u/d),x="InterleavedBuffer:"+s.bufferView+":"+s.componentType+":"+A+":"+s.count,_=t.cache.get(x);_||(m=new c(a,A*d,s.count*d/h),_=new ua(m,d/h),t.cache.add(x,_)),p=new cs(_,l,u%d/h,g)}else a===null?m=new c(s.count*l):m=new c(a,u,s.count*l),p=new Ct(m,l,g);if(s.sparse!==void 0){let A=eu.SCALAR,x=ur[s.sparse.indices.componentType],_=s.sparse.indices.byteOffset||0,v=s.sparse.values.byteOffset||0,y=new x(o[1],_,s.sparse.count*A),S=new c(o[2],v,s.sparse.count*l);a!==null&&(p=new Ct(p.array.slice(),p.itemSize,p.normalized));for(let C=0,M=y.length;C<M;C++){let E=y[C];if(p.setX(E,S[C*l]),l>=2&&p.setY(E,S[C*l+1]),l>=3&&p.setZ(E,S[C*l+2]),l>=4&&p.setW(E,S[C*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(e){let t=this.json,i=this.options,r=t.textures[e].source,o=t.images[r],a=this.textureLoader;if(o.uri){let l=i.manager.getHandler(o.uri);l!==null&&(a=l)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,t,i){let s=this,r=this.json,o=r.textures[e],a=r.images[t],l=(a.uri||a.bufferView)+":"+o.sampler;if(this.textureCache[l])return this.textureCache[l];let c=this.loadImageSource(t,i).then(function(h){h.flipY=!1,h.name=o.name||a.name||"",h.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(h.name=a.uri);let u=(r.samplers||{})[o.sampler]||{};return h.magFilter=X0[u.magFilter]||ut,h.minFilter=X0[u.minFilter]||Fn,h.wrapS=Y0[u.wrapS]||ss,h.wrapT=Y0[u.wrapT]||ss,s.associations.set(h,{textures:e}),h}).catch(function(){return null});return this.textureCache[l]=c,c}loadImageSource(e,t){let i=this,s=this.json,r=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(f=>f.clone());let o=s.images[e],a=self.URL||self.webkitURL,l=o.uri||"",c=!1;if(o.bufferView!==void 0)l=i.getDependency("bufferView",o.bufferView).then(function(f){c=!0;let u=new Blob([f],{type:o.mimeType});return l=a.createObjectURL(u),l});else if(o.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let h=Promise.resolve(l).then(function(f){return new Promise(function(u,d){let g=u;t.isImageBitmapLoader===!0&&(g=function(m){let p=new gt(m);p.needsUpdate=!0,u(p)}),t.load(or.resolveURL(f,r.path),g,void 0,d)})}).then(function(f){return c===!0&&a.revokeObjectURL(l),f.userData.mimeType=o.mimeType||Ib(o.uri),f}).catch(function(f){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),f});return this.sourceCache[e]=h,h}assignTexture(e,t,i,s){let r=this;return this.getDependency("texture",i.index).then(function(o){if(!o)return null;if(i.texCoord!==void 0&&i.texCoord>0&&(o=o.clone(),o.channel=i.texCoord),r.extensions[Ye.KHR_TEXTURE_TRANSFORM]){let a=i.extensions!==void 0?i.extensions[Ye.KHR_TEXTURE_TRANSFORM]:void 0;if(a){let l=r.associations.get(o);o=r.extensions[Ye.KHR_TEXTURE_TRANSFORM].extendTexture(o,a),r.associations.set(o,l)}}return s!==void 0&&(o.colorSpace=s),e[t]=o,o})}assignFinalMaterial(e){let t=e.geometry,i=e.material,s=t.attributes.tangent===void 0,r=t.attributes.color!==void 0,o=t.attributes.normal===void 0;if(e.isPoints){let a="PointsMaterial:"+i.uuid,l=this.cache.get(a);l||(l=new pa,rn.prototype.copy.call(l,i),l.color.copy(i.color),l.map=i.map,l.sizeAttenuation=!1,this.cache.add(a,l)),i=l}else if(e.isLine){let a="LineBasicMaterial:"+i.uuid,l=this.cache.get(a);l||(l=new Aa,rn.prototype.copy.call(l,i),l.color.copy(i.color),l.map=i.map,this.cache.add(a,l)),i=l}if(s||r||o){let a="ClonedMaterial:"+i.uuid+":";s&&(a+="derivative-tangents:"),r&&(a+="vertex-colors:"),o&&(a+="flat-shading:");let l=this.cache.get(a);l||(l=i.clone(),r&&(l.vertexColors=!0),o&&(l.flatShading=!0),s&&(l.normalScale&&(l.normalScale.y*=-1),l.clearcoatNormalScale&&(l.clearcoatNormalScale.y*=-1)),this.cache.add(a,l),this.associations.set(l,this.associations.get(i))),i=l}e.material=i}getMaterialType(){return rr}loadMaterial(e){let t=this,i=this.json,s=this.extensions,r=i.materials[e],o,a={},l=r.extensions||{},c=[];if(l[Ye.KHR_MATERIALS_UNLIT]){let f=s[Ye.KHR_MATERIALS_UNLIT];o=f.getMaterialType(),c.push(f.extendParams(a,r,t))}else{let f=r.pbrMetallicRoughness||{};if(a.color=new Ee(1,1,1),a.opacity=1,Array.isArray(f.baseColorFactor)){let u=f.baseColorFactor;a.color.fromArray(u),a.opacity=u[3]}f.baseColorTexture!==void 0&&c.push(t.assignTexture(a,"map",f.baseColorTexture,be)),a.metalness=f.metallicFactor!==void 0?f.metallicFactor:1,a.roughness=f.roughnessFactor!==void 0?f.roughnessFactor:1,f.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(a,"metalnessMap",f.metallicRoughnessTexture)),c.push(t.assignTexture(a,"roughnessMap",f.metallicRoughnessTexture))),o=this._invokeOne(function(u){return u.getMaterialType&&u.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(u){return u.extendMaterialParams&&u.extendMaterialParams(e,a)})))}r.doubleSided===!0&&(a.side=Dn);let h=r.alphaMode||tu.OPAQUE;if(h===tu.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,h===tu.MASK&&(a.alphaTest=r.alphaCutoff!==void 0?r.alphaCutoff:.5)),r.normalTexture!==void 0&&o!==mn&&(c.push(t.assignTexture(a,"normalMap",r.normalTexture)),a.normalScale=new Ie(1,1),r.normalTexture.scale!==void 0)){let f=r.normalTexture.scale;a.normalScale.set(f,f)}return r.occlusionTexture!==void 0&&o!==mn&&(c.push(t.assignTexture(a,"aoMap",r.occlusionTexture)),r.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=r.occlusionTexture.strength)),r.emissiveFactor!==void 0&&o!==mn&&(a.emissive=new Ee().fromArray(r.emissiveFactor)),r.emissiveTexture!==void 0&&o!==mn&&c.push(t.assignTexture(a,"emissiveMap",r.emissiveTexture,be)),Promise.all(c).then(function(){let f=new o(a);return r.name&&(f.name=r.name),Fi(f,r),t.associations.set(f,{materials:e}),r.extensions&&us(s,f,r),f})}createUniqueName(e){let t=Je.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,i=this.extensions,s=this.primitiveCache;function r(a){return i[Ye.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,t).then(function(l){return J0(l,a,t)})}let o=[];for(let a=0,l=e.length;a<l;a++){let c=e[a],h=bb(c),f=s[h];if(f)o.push(f.promise);else{let u;c.extensions&&c.extensions[Ye.KHR_DRACO_MESH_COMPRESSION]?u=r(c):u=J0(new Yt,c,t),s[h]={primitive:c,promise:u},o.push(u)}}return Promise.all(o)}loadMesh(e){let t=this,i=this.json,s=this.extensions,r=i.meshes[e],o=r.primitives,a=[];for(let l=0,c=o.length;l<c;l++){let h=o[l].material===void 0?yb(this.cache):this.getDependency("material",o[l].material);a.push(h)}return a.push(t.loadGeometries(o)),Promise.all(a).then(function(l){let c=l.slice(0,l.length-1),h=l[l.length-1],f=[];for(let d=0,g=h.length;d<g;d++){let m=h[d],p=o[d],A,x=c[d];if(p.mode===En.TRIANGLES||p.mode===En.TRIANGLE_STRIP||p.mode===En.TRIANGLE_FAN||p.mode===void 0)A=r.isSkinnedMesh===!0?new mc(m,x):new Ft(m,x),A.isSkinnedMesh===!0&&A.normalizeSkinWeights(),p.mode===En.TRIANGLE_STRIP?A.geometry=$h(A.geometry,Lc):p.mode===En.TRIANGLE_FAN&&(A.geometry=$h(A.geometry,va));else if(p.mode===En.LINES)A=new xc(m,x);else if(p.mode===En.LINE_STRIP)A=new ir(m,x);else if(p.mode===En.LINE_LOOP)A=new vc(m,x);else if(p.mode===En.POINTS)A=new Ec(m,x);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);Object.keys(A.geometry.morphAttributes).length>0&&Sb(A,r),A.name=t.createUniqueName(r.name||"mesh_"+e),Fi(A,r),p.extensions&&us(s,A,p),t.assignFinalMaterial(A),f.push(A)}for(let d=0,g=f.length;d<g;d++)t.associations.set(f[d],{meshes:e,primitives:d});if(f.length===1)return r.extensions&&us(s,f[0],r),f[0];let u=new fn;r.extensions&&us(s,u,r),t.associations.set(u,{meshes:e});for(let d=0,g=f.length;d<g;d++)u.add(f[d]);return u})}loadCamera(e){let t,i=this.json.cameras[e],s=i[i.type];if(!s){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return i.type==="perspective"?t=new yt(Fc.radToDeg(s.yfov),s.aspectRatio||1,s.znear||1,s.zfar||2e6):i.type==="orthographic"&&(t=new Ti(-s.xmag,s.xmag,s.ymag,-s.ymag,s.znear,s.zfar)),i.name&&(t.name=this.createUniqueName(i.name)),Fi(t,i),Promise.resolve(t)}loadSkin(e){let t=this.json.skins[e],i=[];for(let s=0,r=t.joints.length;s<r;s++)i.push(this._loadNodeShallow(t.joints[s]));return t.inverseBindMatrices!==void 0?i.push(this.getDependency("accessor",t.inverseBindMatrices)):i.push(null),Promise.all(i).then(function(s){let r=s.pop(),o=s,a=[],l=[];for(let c=0,h=o.length;c<h;c++){let f=o[c];if(f){a.push(f);let u=new Oe;r!==null&&u.fromArray(r.array,c*16),l.push(u)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[c])}return new nr(a,l)})}loadAnimation(e){let t=this.json,i=this,s=t.animations[e],r=s.name?s.name:"animation_"+e,o=[],a=[],l=[],c=[],h=[];for(let f=0,u=s.channels.length;f<u;f++){let d=s.channels[f],g=s.samplers[d.sampler],m=d.target,p=m.node,A=s.parameters!==void 0?s.parameters[g.input]:g.input,x=s.parameters!==void 0?s.parameters[g.output]:g.output;m.node!==void 0&&(o.push(this.getDependency("node",p)),a.push(this.getDependency("accessor",A)),l.push(this.getDependency("accessor",x)),c.push(g),h.push(m))}return Promise.all([Promise.all(o),Promise.all(a),Promise.all(l),Promise.all(c),Promise.all(h)]).then(function(f){let u=f[0],d=f[1],g=f[2],m=f[3],p=f[4],A=[];for(let x=0,_=u.length;x<_;x++){let v=u[x],y=d[x],S=g[x],C=m[x],M=p[x];if(v===void 0)continue;v.updateMatrix&&v.updateMatrix();let E=i._createAnimationTracks(v,y,S,C,M);if(E)for(let b=0;b<E.length;b++)A.push(E[b])}return new bc(r,void 0,A)})}createNodeMesh(e){let t=this.json,i=this,s=t.nodes[e];return s.mesh===void 0?null:i.getDependency("mesh",s.mesh).then(function(r){let o=i._getNodeRef(i.meshCache,s.mesh,r);return s.weights!==void 0&&o.traverse(function(a){if(!!a.isMesh)for(let l=0,c=s.weights.length;l<c;l++)a.morphTargetInfluences[l]=s.weights[l]}),o})}loadNode(e){let t=this.json,i=this,s=t.nodes[e],r=i._loadNodeShallow(e),o=[],a=s.children||[];for(let c=0,h=a.length;c<h;c++)o.push(i.getDependency("node",a[c]));let l=s.skin===void 0?Promise.resolve(null):i.getDependency("skin",s.skin);return Promise.all([r,Promise.all(o),l]).then(function(c){let h=c[0],f=c[1],u=c[2];u!==null&&h.traverse(function(d){!d.isSkinnedMesh||d.bind(u,wb)});for(let d=0,g=f.length;d<g;d++)h.add(f[d]);return h})}_loadNodeShallow(e){let t=this.json,i=this.extensions,s=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];let r=t.nodes[e],o=r.name?s.createUniqueName(r.name):"",a=[],l=s._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(e)});return l&&a.push(l),r.camera!==void 0&&a.push(s.getDependency("camera",r.camera).then(function(c){return s._getNodeRef(s.cameraCache,r.camera,c)})),s._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(e)}).forEach(function(c){a.push(c)}),this.nodeCache[e]=Promise.all(a).then(function(c){let h;if(r.isBone===!0?h=new fa:c.length>1?h=new fn:c.length===1?h=c[0]:h=new ct,h!==c[0])for(let f=0,u=c.length;f<u;f++)h.add(c[f]);if(r.name&&(h.userData.name=r.name,h.name=o),Fi(h,r),r.extensions&&us(i,h,r),r.matrix!==void 0){let f=new Oe;f.fromArray(r.matrix),h.applyMatrix4(f)}else r.translation!==void 0&&h.position.fromArray(r.translation),r.rotation!==void 0&&h.quaternion.fromArray(r.rotation),r.scale!==void 0&&h.scale.fromArray(r.scale);return s.associations.has(h)||s.associations.set(h,{}),s.associations.get(h).nodes=e,h}),this.nodeCache[e]}loadScene(e){let t=this.extensions,i=this.json.scenes[e],s=this,r=new fn;i.name&&(r.name=s.createUniqueName(i.name)),Fi(r,i),i.extensions&&us(t,r,i);let o=i.nodes||[],a=[];for(let l=0,c=o.length;l<c;l++)a.push(s.getDependency("node",o[l]));return Promise.all(a).then(function(l){for(let h=0,f=l.length;h<f;h++)r.add(l[h]);let c=h=>{let f=new Map;for(let[u,d]of s.associations)(u instanceof rn||u instanceof gt)&&f.set(u,d);return h.traverse(u=>{let d=s.associations.get(u);d!=null&&f.set(u,d)}),f};return s.associations=c(r),r})}_createAnimationTracks(e,t,i,s,r){let o=[],a=e.name?e.name:e.uuid,l=[];Li[r.path]===Li.weights?e.traverse(function(u){u.morphTargetInfluences&&l.push(u.name?u.name:u.uuid)}):l.push(a);let c;switch(Li[r.path]){case Li.weights:c=oi;break;case Li.rotation:c=Wn;break;case Li.position:case Li.scale:c=ci;break;default:switch(i.itemSize){case 1:c=oi;break;case 2:case 3:default:c=ci;break}break}let h=s.interpolation!==void 0?Eb[s.interpolation]:rs,f=this._getArrayFromAccessor(i);for(let u=0,d=l.length;u<d;u++){let g=new c(l[u]+"."+Li[r.path],t.array,f,h);s.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(g),o.push(g)}return o}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){let i=bu(t.constructor),s=new Float32Array(t.length);for(let r=0,o=t.length;r<o;r++)s[r]=t[r]*i;t=s}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(i){let s=this instanceof Wn?Cu:kc;return new s(this.times,this.values,this.getValueSize()/3,i)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}};function Mb(n,e,t){let i=e.attributes,s=new gn;if(i.POSITION!==void 0){let a=t.json.accessors[i.POSITION],l=a.min,c=a.max;if(l!==void 0&&c!==void 0){if(s.set(new Q(l[0],l[1],l[2]),new Q(c[0],c[1],c[2])),a.normalized){let h=bu(ur[a.componentType]);s.min.multiplyScalar(h),s.max.multiplyScalar(h)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;let r=e.targets;if(r!==void 0){let a=new Q,l=new Q;for(let c=0,h=r.length;c<h;c++){let f=r[c];if(f.POSITION!==void 0){let u=t.json.accessors[f.POSITION],d=u.min,g=u.max;if(d!==void 0&&g!==void 0){if(l.setX(Math.max(Math.abs(d[0]),Math.abs(g[0]))),l.setY(Math.max(Math.abs(d[1]),Math.abs(g[1]))),l.setZ(Math.max(Math.abs(d[2]),Math.abs(g[2]))),u.normalized){let m=bu(ur[u.componentType]);l.multiplyScalar(m)}a.max(l)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}s.expandByVector(a)}n.boundingBox=s;let o=new sn;s.getCenter(o.center),o.radius=s.min.distanceTo(s.max)/2,n.boundingSphere=o}function J0(n,e,t){let i=e.attributes,s=[];function r(o,a){return t.getDependency("accessor",o).then(function(l){n.setAttribute(a,l)})}for(let o in i){let a=Su[o]||o.toLowerCase();a in n.attributes||s.push(r(i[o],a))}if(e.indices!==void 0&&!n.index){let o=t.getDependency("accessor",e.indices).then(function(a){n.setIndex(a)});s.push(o)}return Fi(n,e),Mb(n,e,t),Promise.all(s).then(function(){return e.targets!==void 0?Cb(n,e.targets,t):n})}var Qc=class{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){let t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,t){let i=this.workersResolve[e];if(i&&i(t),this.queue.length){let{resolve:s,msg:r,transfer:o}=this.queue.shift();this.workersResolve[e]=s,this.workers[e].postMessage(r,o)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,t){return new Promise(i=>{let s=this._getIdleWorker();s!==-1?(this._initWorker(s),this.workerStatus|=1<<s,this.workersResolve[s]=i,this.workers[s].postMessage(e,t)):this.queue.push({resolve:i,msg:e,transfer:t})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}};var wu=class{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}},fs=class{constructor(e,t,i,s){this._dataView=new DataView(e.buffer,e.byteOffset+t,i),this._littleEndian=s,this._offset=0}_nextUint8(){let e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){let e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){let e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){let e=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){let e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_skip(e){return this._offset+=e,this}_scan(e,t=0){let i=this._offset,s=0;for(;this._dataView.getUint8(this._offset)!==t&&s<e;)s++,this._offset++;return s<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+i,s)}},gI=new Uint8Array([0]),Kt=[171,75,84,88,32,50,48,187,13,10,26,10];function j0(n){return typeof TextDecoder<"u"?new TextDecoder().decode(n):Buffer.from(n).toString("utf8")}function $0(n){let e=new Uint8Array(n.buffer,n.byteOffset,Kt.length);if(e[0]!==Kt[0]||e[1]!==Kt[1]||e[2]!==Kt[2]||e[3]!==Kt[3]||e[4]!==Kt[4]||e[5]!==Kt[5]||e[6]!==Kt[6]||e[7]!==Kt[7]||e[8]!==Kt[8]||e[9]!==Kt[9]||e[10]!==Kt[10]||e[11]!==Kt[11])throw new Error("Missing KTX 2.0 identifier.");let t=new wu,i=17*Uint32Array.BYTES_PER_ELEMENT,s=new fs(n,Kt.length,i,!0);t.vkFormat=s._nextUint32(),t.typeSize=s._nextUint32(),t.pixelWidth=s._nextUint32(),t.pixelHeight=s._nextUint32(),t.pixelDepth=s._nextUint32(),t.layerCount=s._nextUint32(),t.faceCount=s._nextUint32();let r=s._nextUint32();t.supercompressionScheme=s._nextUint32();let o=s._nextUint32(),a=s._nextUint32(),l=s._nextUint32(),c=s._nextUint32(),h=s._nextUint64(),f=s._nextUint64(),u=new fs(n,Kt.length+i,3*r*8,!0);for(let H=0;H<r;H++)t.levels.push({levelData:new Uint8Array(n.buffer,n.byteOffset+u._nextUint64(),u._nextUint64()),uncompressedByteLength:u._nextUint64()});let d=new fs(n,o,a,!0),g={vendorId:d._skip(4)._nextUint16(),descriptorType:d._nextUint16(),versionNumber:d._nextUint16(),descriptorBlockSize:d._nextUint16(),colorModel:d._nextUint8(),colorPrimaries:d._nextUint8(),transferFunction:d._nextUint8(),flags:d._nextUint8(),texelBlockDimension:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],bytesPlane:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],samples:[]},m=(g.descriptorBlockSize/4-6)/4;for(let H=0;H<m;H++){let z={bitOffset:d._nextUint16(),bitLength:d._nextUint8(),channelType:d._nextUint8(),samplePosition:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&z.channelType?(z.sampleLower=d._nextInt32(),z.sampleUpper=d._nextInt32()):(z.sampleLower=d._nextUint32(),z.sampleUpper=d._nextUint32()),g.samples[H]=z}t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(g);let p=new fs(n,l,c,!0);for(;p._offset<c;){let H=p._nextUint32(),z=p._scan(H),F=j0(z),N=p._scan(H-z.byteLength);t.keyValue[F]=F.match(/^ktx/i)?j0(N):N,p._offset%4&&p._skip(4-p._offset%4)}if(f<=0)return t;let A=new fs(n,h,f,!0),x=A._nextUint16(),_=A._nextUint16(),v=A._nextUint32(),y=A._nextUint32(),S=A._nextUint32(),C=A._nextUint32(),M=[];for(let H=0;H<r;H++)M.push({imageFlags:A._nextUint32(),rgbSliceByteOffset:A._nextUint32(),rgbSliceByteLength:A._nextUint32(),alphaSliceByteOffset:A._nextUint32(),alphaSliceByteLength:A._nextUint32()});let E=h+A._offset,b=E+v,w=b+y,G=w+S,U=new Uint8Array(n.buffer,n.byteOffset+E,v),D=new Uint8Array(n.buffer,n.byteOffset+b,y),O=new Uint8Array(n.buffer,n.byteOffset+w,S),K=new Uint8Array(n.buffer,n.byteOffset+G,C);return t.globalData={endpointCount:x,selectorCount:_,imageDescs:M,endpointsData:U,selectorsData:D,tablesData:O,extendedData:K},t}var Mu,li,Bu,Tu={env:{emscripten_notify_memory_growth:function(n){Bu=new Uint8Array(li.exports.memory.buffer)}}},Gc=class{init(){return Mu||(Mu=typeof fetch<"u"?fetch("data:application/wasm;base64,"+eg).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,Tu)).then(this._init):WebAssembly.instantiate(Buffer.from(eg,"base64"),Tu).then(this._init),Mu)}_init(e){li=e.instance,Tu.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!li)throw new Error("ZSTDDecoder: Await .init() before decoding.");let i=e.byteLength,s=li.exports.malloc(i);Bu.set(e,s),t=t||Number(li.exports.ZSTD_findDecompressedSize(s,i));let r=li.exports.malloc(t),o=li.exports.ZSTD_decompress(r,t,s,i),a=Bu.slice(r,r+o);return li.exports.free(s),li.exports.free(r),a}},eg="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var Ru=new WeakMap,Du=0,Lu,on=class extends vn{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new Qc,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}detectSupport(e){return e.isWebGPURenderer===!0?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),etc1Supported:!1,etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:!1,pvrtcSupported:!1}:(this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},e.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1)),this}init(){if(!this.transcoderPending){let e=new Kn(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);let t=e.loadAsync("basis_transcoder.js"),i=new Kn(this.manager);i.setPath(this.transcoderPath),i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials);let s=i.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,s]).then(([r,o])=>{let a=on.BasisWorker.toString(),l=["/* constants */","let _EngineFormat = "+JSON.stringify(on.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(on.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(on.BasisFormat),"/* basis_transcoder.js */",r,"/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join(`
3572
+ }`;function XS(n,e,t){let i=new ca,s=new Ie,r=new Ie,o=new tt,a=new la({depthPacking:Nv}),l=new wh,c={},h=t.maxTextureSize,f={[zn]:Qt,[Qt]:zn,[Dn]:Dn},u=new _n({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ie},radius:{value:4}},vertexShader:KS,fragmentShader:qS}),d=u.clone();d.defines.HORIZONTAL_PASS=1;let g=new Yt;g.setAttribute("position",new St(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let m=new Ft(g,u),p=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=_0;let A=this.type;this.render=function(y,S,C){if(p.enabled===!1||p.autoUpdate===!1&&p.needsUpdate===!1||y.length===0)return;let M=n.getRenderTarget(),E=n.getActiveCubeFace(),b=n.getActiveMipmapLevel(),w=n.state;w.setBlending(Ii),w.buffers.color.setClear(1,1,1,1),w.buffers.depth.setTest(!0),w.setScissorTest(!1);let G=A!==si&&this.type===si,U=A===si&&this.type!==si;for(let D=0,O=y.length;D<O;D++){let K=y[D],H=K.shadow;if(H===void 0){console.warn("THREE.WebGLShadowMap:",K,"has no shadow.");continue}if(H.autoUpdate===!1&&H.needsUpdate===!1)continue;s.copy(H.mapSize);let z=H.getFrameExtents();if(s.multiply(z),r.copy(H.mapSize),(s.x>h||s.y>h)&&(s.x>h&&(r.x=Math.floor(h/z.x),s.x=r.x*z.x,H.mapSize.x=r.x),s.y>h&&(r.y=Math.floor(h/z.y),s.y=r.y*z.y,H.mapSize.y=r.y)),H.map===null||G===!0||U===!0){let N=this.type!==si?{minFilter:yt,magFilter:yt}:{};H.map!==null&&H.map.dispose(),H.map=new pn(s.x,s.y,N),H.map.texture.name=K.name+".shadowMap",H.camera.updateProjectionMatrix()}n.setRenderTarget(H.map),n.clear();let F=H.getViewportCount();for(let N=0;N<F;N++){let R=H.getViewport(N);o.set(r.x*R.x,r.y*R.y,r.x*R.z,r.y*R.w),w.viewport(o),H.updateMatrices(K,N),i=H.getFrustum(),v(S,C,H.camera,K,this.type)}H.isPointLightShadow!==!0&&this.type===si&&x(H,C),H.needsUpdate=!1}A=this.type,p.needsUpdate=!1,n.setRenderTarget(M,E,b)};function x(y,S){let C=e.update(m);u.defines.VSM_SAMPLES!==y.blurSamples&&(u.defines.VSM_SAMPLES=y.blurSamples,d.defines.VSM_SAMPLES=y.blurSamples,u.needsUpdate=!0,d.needsUpdate=!0),y.mapPass===null&&(y.mapPass=new pn(s.x,s.y)),u.uniforms.shadow_pass.value=y.map.texture,u.uniforms.resolution.value=y.mapSize,u.uniforms.radius.value=y.radius,n.setRenderTarget(y.mapPass),n.clear(),n.renderBufferDirect(S,null,C,u,m,null),d.uniforms.shadow_pass.value=y.mapPass.texture,d.uniforms.resolution.value=y.mapSize,d.uniforms.radius.value=y.radius,n.setRenderTarget(y.map),n.clear(),n.renderBufferDirect(S,null,C,d,m,null)}function _(y,S,C,M){let E=null,b=C.isPointLight===!0?y.customDistanceMaterial:y.customDepthMaterial;if(b!==void 0)E=b;else if(E=C.isPointLight===!0?l:a,n.localClippingEnabled&&S.clipShadows===!0&&Array.isArray(S.clippingPlanes)&&S.clippingPlanes.length!==0||S.displacementMap&&S.displacementScale!==0||S.alphaMap&&S.alphaTest>0||S.map&&S.alphaTest>0){let w=E.uuid,G=S.uuid,U=c[w];U===void 0&&(U={},c[w]=U);let D=U[G];D===void 0&&(D=E.clone(),U[G]=D),E=D}if(E.visible=S.visible,E.wireframe=S.wireframe,M===si?E.side=S.shadowSide!==null?S.shadowSide:S.side:E.side=S.shadowSide!==null?S.shadowSide:f[S.side],E.alphaMap=S.alphaMap,E.alphaTest=S.alphaTest,E.map=S.map,E.clipShadows=S.clipShadows,E.clippingPlanes=S.clippingPlanes,E.clipIntersection=S.clipIntersection,E.displacementMap=S.displacementMap,E.displacementScale=S.displacementScale,E.displacementBias=S.displacementBias,E.wireframeLinewidth=S.wireframeLinewidth,E.linewidth=S.linewidth,C.isPointLight===!0&&E.isMeshDistanceMaterial===!0){let w=n.properties.get(E);w.light=C}return E}function v(y,S,C,M,E){if(y.visible===!1)return;if(y.layers.test(S.layers)&&(y.isMesh||y.isLine||y.isPoints)&&(y.castShadow||y.receiveShadow&&E===si)&&(!y.frustumCulled||i.intersectsObject(y))){y.modelViewMatrix.multiplyMatrices(C.matrixWorldInverse,y.matrixWorld);let G=e.update(y),U=y.material;if(Array.isArray(U)){let D=G.groups;for(let O=0,K=D.length;O<K;O++){let H=D[O],z=U[H.materialIndex];if(z&&z.visible){let F=_(y,z,M,E);n.renderBufferDirect(C,null,G,F,y,H)}}}else if(U.visible){let D=_(y,U,M,E);n.renderBufferDirect(C,null,G,D,y,null)}}let w=y.children;for(let G=0,U=w.length;G<U;G++)v(w[G],S,C,M,E)}}function YS(n,e,t){let i=t.isWebGL2;function s(){let k=!1,fe=new tt,J=null,re=new tt(0,0,0,0);return{setMask:function(de){J!==de&&!k&&(n.colorMask(de,de,de,de),J=de)},setLocked:function(de){k=de},setClear:function(de,Ne,Ze,rt,yn){yn===!0&&(de*=rt,Ne*=rt,Ze*=rt),fe.set(de,Ne,Ze,rt),re.equals(fe)===!1&&(n.clearColor(de,Ne,Ze,rt),re.copy(fe))},reset:function(){k=!1,J=null,re.set(-1,0,0,0)}}}function r(){let k=!1,fe=null,J=null,re=null;return{setTest:function(de){de?we(n.DEPTH_TEST):xe(n.DEPTH_TEST)},setMask:function(de){fe!==de&&!k&&(n.depthMask(de),fe=de)},setFunc:function(de){if(J!==de){switch(de){case gv:n.depthFunc(n.NEVER);break;case mv:n.depthFunc(n.ALWAYS);break;case _v:n.depthFunc(n.LESS);break;case dh:n.depthFunc(n.LEQUAL);break;case xv:n.depthFunc(n.EQUAL);break;case vv:n.depthFunc(n.GEQUAL);break;case Ev:n.depthFunc(n.GREATER);break;case yv:n.depthFunc(n.NOTEQUAL);break;default:n.depthFunc(n.LEQUAL)}J=de}},setLocked:function(de){k=de},setClear:function(de){re!==de&&(n.clearDepth(de),re=de)},reset:function(){k=!1,fe=null,J=null,re=null}}}function o(){let k=!1,fe=null,J=null,re=null,de=null,Ne=null,Ze=null,rt=null,yn=null;return{setTest:function(at){k||(at?we(n.STENCIL_TEST):xe(n.STENCIL_TEST))},setMask:function(at){fe!==at&&!k&&(n.stencilMask(at),fe=at)},setFunc:function(at,Jt,et){(J!==at||re!==Jt||de!==et)&&(n.stencilFunc(at,Jt,et),J=at,re=Jt,de=et)},setOp:function(at,Jt,et){(Ne!==at||Ze!==Jt||rt!==et)&&(n.stencilOp(at,Jt,et),Ne=at,Ze=Jt,rt=et)},setLocked:function(at){k=at},setClear:function(at){yn!==at&&(n.clearStencil(at),yn=at)},reset:function(){k=!1,fe=null,J=null,re=null,de=null,Ne=null,Ze=null,rt=null,yn=null}}}let a=new s,l=new r,c=new o,h=new WeakMap,f=new WeakMap,u={},d={},g=new WeakMap,m=[],p=null,A=!1,x=null,_=null,v=null,y=null,S=null,C=null,M=null,E=!1,b=null,w=null,G=null,U=null,D=null,O=n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS),K=!1,H=0,z=n.getParameter(n.VERSION);z.indexOf("WebGL")!==-1?(H=parseFloat(/^WebGL (\d)/.exec(z)[1]),K=H>=1):z.indexOf("OpenGL ES")!==-1&&(H=parseFloat(/^OpenGL ES (\d)/.exec(z)[1]),K=H>=2);let F=null,N={},R=n.getParameter(n.SCISSOR_BOX),L=n.getParameter(n.VIEWPORT),ne=new tt().fromArray(R),ie=new tt().fromArray(L);function he(k,fe,J,re){let de=new Uint8Array(4),Ne=n.createTexture();n.bindTexture(k,Ne),n.texParameteri(k,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(k,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let Ze=0;Ze<J;Ze++)i&&(k===n.TEXTURE_3D||k===n.TEXTURE_2D_ARRAY)?n.texImage3D(fe,0,n.RGBA,1,1,re,0,n.RGBA,n.UNSIGNED_BYTE,de):n.texImage2D(fe+Ze,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,de);return Ne}let ae={};ae[n.TEXTURE_2D]=he(n.TEXTURE_2D,n.TEXTURE_2D,1),ae[n.TEXTURE_CUBE_MAP]=he(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),i&&(ae[n.TEXTURE_2D_ARRAY]=he(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),ae[n.TEXTURE_3D]=he(n.TEXTURE_3D,n.TEXTURE_3D,1,1)),a.setClear(0,0,0,1),l.setClear(1),c.setClear(0),we(n.DEPTH_TEST),l.setFunc(dh),Se(!1),$e(HA),we(n.CULL_FACE),Ee(Ii);function we(k){u[k]!==!0&&(n.enable(k),u[k]=!0)}function xe(k){u[k]!==!1&&(n.disable(k),u[k]=!1)}function Ve(k,fe){return d[k]!==fe?(n.bindFramebuffer(k,fe),d[k]=fe,i&&(k===n.DRAW_FRAMEBUFFER&&(d[n.FRAMEBUFFER]=fe),k===n.FRAMEBUFFER&&(d[n.DRAW_FRAMEBUFFER]=fe)),!0):!1}function ft(k,fe){let J=m,re=!1;if(k)if(J=g.get(fe),J===void 0&&(J=[],g.set(fe,J)),k.isWebGLMultipleRenderTargets){let de=k.texture;if(J.length!==de.length||J[0]!==n.COLOR_ATTACHMENT0){for(let Ne=0,Ze=de.length;Ne<Ze;Ne++)J[Ne]=n.COLOR_ATTACHMENT0+Ne;J.length=de.length,re=!0}}else J[0]!==n.COLOR_ATTACHMENT0&&(J[0]=n.COLOR_ATTACHMENT0,re=!0);else J[0]!==n.BACK&&(J[0]=n.BACK,re=!0);re&&(t.isWebGL2?n.drawBuffers(J):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(J))}function Ce(k){return p!==k?(n.useProgram(k),p=k,!0):!1}let V={[Vs]:n.FUNC_ADD,[rv]:n.FUNC_SUBTRACT,[av]:n.FUNC_REVERSE_SUBTRACT};if(i)V[KA]=n.MIN,V[qA]=n.MAX;else{let k=e.get("EXT_blend_minmax");k!==null&&(V[KA]=k.MIN_EXT,V[qA]=k.MAX_EXT)}let lt={[ov]:n.ZERO,[cv]:n.ONE,[lv]:n.SRC_COLOR,[x0]:n.SRC_ALPHA,[pv]:n.SRC_ALPHA_SATURATE,[dv]:n.DST_COLOR,[uv]:n.DST_ALPHA,[hv]:n.ONE_MINUS_SRC_COLOR,[v0]:n.ONE_MINUS_SRC_ALPHA,[Av]:n.ONE_MINUS_DST_COLOR,[fv]:n.ONE_MINUS_DST_ALPHA};function Ee(k,fe,J,re,de,Ne,Ze,rt){if(k===Ii){A===!0&&(xe(n.BLEND),A=!1);return}if(A===!1&&(we(n.BLEND),A=!0),k!==sv){if(k!==x||rt!==E){if((_!==Vs||S!==Vs)&&(n.blendEquation(n.FUNC_ADD),_=Vs,S=Vs),rt)switch(k){case Ks:n.blendFuncSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case zA:n.blendFunc(n.ONE,n.ONE);break;case VA:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case WA:n.blendFuncSeparate(n.ZERO,n.SRC_COLOR,n.ZERO,n.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",k);break}else switch(k){case Ks:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case zA:n.blendFunc(n.SRC_ALPHA,n.ONE);break;case VA:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case WA:n.blendFunc(n.ZERO,n.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",k);break}v=null,y=null,C=null,M=null,x=k,E=rt}return}de=de||fe,Ne=Ne||J,Ze=Ze||re,(fe!==_||de!==S)&&(n.blendEquationSeparate(V[fe],V[de]),_=fe,S=de),(J!==v||re!==y||Ne!==C||Ze!==M)&&(n.blendFuncSeparate(lt[J],lt[re],lt[Ne],lt[Ze]),v=J,y=re,C=Ne,M=Ze),x=k,E=!1}function Te(k,fe){k.side===Dn?xe(n.CULL_FACE):we(n.CULL_FACE);let J=k.side===Qt;fe&&(J=!J),Se(J),k.blending===Ks&&k.transparent===!1?Ee(Ii):Ee(k.blending,k.blendEquation,k.blendSrc,k.blendDst,k.blendEquationAlpha,k.blendSrcAlpha,k.blendDstAlpha,k.premultipliedAlpha),l.setFunc(k.depthFunc),l.setTest(k.depthTest),l.setMask(k.depthWrite),a.setMask(k.colorWrite);let re=k.stencilWrite;c.setTest(re),re&&(c.setMask(k.stencilWriteMask),c.setFunc(k.stencilFunc,k.stencilRef,k.stencilFuncMask),c.setOp(k.stencilFail,k.stencilZFail,k.stencilZPass)),ye(k.polygonOffset,k.polygonOffsetFactor,k.polygonOffsetUnits),k.alphaToCoverage===!0?we(n.SAMPLE_ALPHA_TO_COVERAGE):xe(n.SAMPLE_ALPHA_TO_COVERAGE)}function Se(k){b!==k&&(k?n.frontFace(n.CW):n.frontFace(n.CCW),b=k)}function $e(k){k!==tv?(we(n.CULL_FACE),k!==w&&(k===HA?n.cullFace(n.BACK):k===nv?n.cullFace(n.FRONT):n.cullFace(n.FRONT_AND_BACK))):xe(n.CULL_FACE),w=k}function Pe(k){k!==G&&(K&&n.lineWidth(k),G=k)}function ye(k,fe,J){k?(we(n.POLYGON_OFFSET_FILL),(U!==fe||D!==J)&&(n.polygonOffset(fe,J),U=fe,D=J)):xe(n.POLYGON_OFFSET_FILL)}function Be(k){k?we(n.SCISSOR_TEST):xe(n.SCISSOR_TEST)}function nt(k){k===void 0&&(k=n.TEXTURE0+O-1),F!==k&&(n.activeTexture(k),F=k)}function dt(k,fe,J){J===void 0&&(F===null?J=n.TEXTURE0+O-1:J=F);let re=N[J];re===void 0&&(re={type:void 0,texture:void 0},N[J]=re),(re.type!==k||re.texture!==fe)&&(F!==J&&(n.activeTexture(J),F=J),n.bindTexture(k,fe||ae[k]),re.type=k,re.texture=fe)}function B(){let k=N[F];k!==void 0&&k.type!==void 0&&(n.bindTexture(k.type,null),k.type=void 0,k.texture=void 0)}function I(){try{n.compressedTexImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function X(){try{n.compressedTexImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function le(){try{n.texSubImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function se(){try{n.texSubImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function ce(){try{n.compressedTexSubImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function me(){try{n.compressedTexSubImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function oe(){try{n.texStorage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function Z(){try{n.texStorage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function P(){try{n.texImage2D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function ee(){try{n.texImage3D.apply(n,arguments)}catch(k){console.error("THREE.WebGLState:",k)}}function ge(k){ne.equals(k)===!1&&(n.scissor(k.x,k.y,k.z,k.w),ne.copy(k))}function ue(k){ie.equals(k)===!1&&(n.viewport(k.x,k.y,k.z,k.w),ie.copy(k))}function Ae(k,fe){let J=f.get(fe);J===void 0&&(J=new WeakMap,f.set(fe,J));let re=J.get(k);re===void 0&&(re=n.getUniformBlockIndex(fe,k.name),J.set(k,re))}function Re(k,fe){let re=f.get(fe).get(k);h.get(fe)!==re&&(n.uniformBlockBinding(fe,re,k.__bindingPointIndex),h.set(fe,re))}function He(){n.disable(n.BLEND),n.disable(n.CULL_FACE),n.disable(n.DEPTH_TEST),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SCISSOR_TEST),n.disable(n.STENCIL_TEST),n.disable(n.SAMPLE_ALPHA_TO_COVERAGE),n.blendEquation(n.FUNC_ADD),n.blendFunc(n.ONE,n.ZERO),n.blendFuncSeparate(n.ONE,n.ZERO,n.ONE,n.ZERO),n.colorMask(!0,!0,!0,!0),n.clearColor(0,0,0,0),n.depthMask(!0),n.depthFunc(n.LESS),n.clearDepth(1),n.stencilMask(4294967295),n.stencilFunc(n.ALWAYS,0,4294967295),n.stencilOp(n.KEEP,n.KEEP,n.KEEP),n.clearStencil(0),n.cullFace(n.BACK),n.frontFace(n.CCW),n.polygonOffset(0,0),n.activeTexture(n.TEXTURE0),n.bindFramebuffer(n.FRAMEBUFFER,null),i===!0&&(n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),n.bindFramebuffer(n.READ_FRAMEBUFFER,null)),n.useProgram(null),n.lineWidth(1),n.scissor(0,0,n.canvas.width,n.canvas.height),n.viewport(0,0,n.canvas.width,n.canvas.height),u={},F=null,N={},d={},g=new WeakMap,m=[],p=null,A=!1,x=null,_=null,v=null,y=null,S=null,C=null,M=null,E=!1,b=null,w=null,G=null,U=null,D=null,ne.set(0,0,n.canvas.width,n.canvas.height),ie.set(0,0,n.canvas.width,n.canvas.height),a.reset(),l.reset(),c.reset()}return{buffers:{color:a,depth:l,stencil:c},enable:we,disable:xe,bindFramebuffer:Ve,drawBuffers:ft,useProgram:Ce,setBlending:Ee,setMaterial:Te,setFlipSided:Se,setCullFace:$e,setLineWidth:Pe,setPolygonOffset:ye,setScissorTest:Be,activeTexture:nt,bindTexture:dt,unbindTexture:B,compressedTexImage2D:I,compressedTexImage3D:X,texImage2D:P,texImage3D:ee,updateUBOMapping:Ae,uniformBlockBinding:Re,texStorage2D:oe,texStorage3D:Z,texSubImage2D:le,texSubImage3D:se,compressedTexSubImage2D:ce,compressedTexSubImage3D:me,scissor:ge,viewport:ue,reset:He}}function JS(n,e,t,i,s,r,o){let a=s.isWebGL2,l=s.maxTextures,c=s.maxCubemapSize,h=s.maxTextureSize,f=s.maxSamples,u=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,d=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),g=new WeakMap,m,p=new WeakMap,A=!1;try{A=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function x(B,I){return A?new OffscreenCanvas(B,I):aa("canvas")}function _(B,I,X,le){let se=1;if((B.width>le||B.height>le)&&(se=le/Math.max(B.width,B.height)),se<1||I===!0)if(typeof HTMLImageElement<"u"&&B instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&B instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&B instanceof ImageBitmap){let ce=I?ac:Math.floor,me=ce(se*B.width),oe=ce(se*B.height);m===void 0&&(m=x(me,oe));let Z=X?x(me,oe):m;return Z.width=me,Z.height=oe,Z.getContext("2d").drawImage(B,0,0,me,oe),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+B.width+"x"+B.height+") to ("+me+"x"+oe+")."),Z}else return"data"in B&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+B.width+"x"+B.height+")."),B;return B}function v(B){return mh(B.width)&&mh(B.height)}function y(B){return a?!1:B.wrapS!==kt||B.wrapT!==kt||B.minFilter!==yt&&B.minFilter!==ut}function S(B,I){return B.generateMipmaps&&I&&B.minFilter!==yt&&B.minFilter!==ut}function C(B){n.generateMipmap(B)}function M(B,I,X,le,se=!1){if(a===!1)return I;if(B!==null){if(n[B]!==void 0)return n[B];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+B+"'")}let ce=I;return I===n.RED&&(X===n.FLOAT&&(ce=n.R32F),X===n.HALF_FLOAT&&(ce=n.R16F),X===n.UNSIGNED_BYTE&&(ce=n.R8)),I===n.RED_INTEGER&&(X===n.UNSIGNED_BYTE&&(ce=n.R8UI),X===n.UNSIGNED_SHORT&&(ce=n.R16UI),X===n.UNSIGNED_INT&&(ce=n.R32UI),X===n.BYTE&&(ce=n.R8I),X===n.SHORT&&(ce=n.R16I),X===n.INT&&(ce=n.R32I)),I===n.RG&&(X===n.FLOAT&&(ce=n.RG32F),X===n.HALF_FLOAT&&(ce=n.RG16F),X===n.UNSIGNED_BYTE&&(ce=n.RG8)),I===n.RGBA&&(X===n.FLOAT&&(ce=n.RGBA32F),X===n.HALF_FLOAT&&(ce=n.RGBA16F),X===n.UNSIGNED_BYTE&&(ce=le===be&&se===!1?n.SRGB8_ALPHA8:n.RGBA8),X===n.UNSIGNED_SHORT_4_4_4_4&&(ce=n.RGBA4),X===n.UNSIGNED_SHORT_5_5_5_1&&(ce=n.RGB5_A1)),(ce===n.R16F||ce===n.R32F||ce===n.RG16F||ce===n.RG32F||ce===n.RGBA16F||ce===n.RGBA32F)&&e.get("EXT_color_buffer_float"),ce}function E(B,I,X){return S(B,X)===!0||B.isFramebufferTexture&&B.minFilter!==yt&&B.minFilter!==ut?Math.log2(Math.max(I.width,I.height))+1:B.mipmaps!==void 0&&B.mipmaps.length>0?B.mipmaps.length:B.isCompressedTexture&&Array.isArray(B.image)?I.mipmaps.length:1}function b(B){return B===yt||B===$o||B===Jr?n.NEAREST:n.LINEAR}function w(B){let I=B.target;I.removeEventListener("dispose",w),U(I),I.isVideoTexture&&g.delete(I)}function G(B){let I=B.target;I.removeEventListener("dispose",G),O(I)}function U(B){let I=i.get(B);if(I.__webglInit===void 0)return;let X=B.source,le=p.get(X);if(le){let se=le[I.__cacheKey];se.usedTimes--,se.usedTimes===0&&D(B),Object.keys(le).length===0&&p.delete(X)}i.remove(B)}function D(B){let I=i.get(B);n.deleteTexture(I.__webglTexture);let X=B.source,le=p.get(X);delete le[I.__cacheKey],o.memory.textures--}function O(B){let I=B.texture,X=i.get(B),le=i.get(I);if(le.__webglTexture!==void 0&&(n.deleteTexture(le.__webglTexture),o.memory.textures--),B.depthTexture&&B.depthTexture.dispose(),B.isWebGLCubeRenderTarget)for(let se=0;se<6;se++){if(Array.isArray(X.__webglFramebuffer[se]))for(let ce=0;ce<X.__webglFramebuffer[se].length;ce++)n.deleteFramebuffer(X.__webglFramebuffer[se][ce]);else n.deleteFramebuffer(X.__webglFramebuffer[se]);X.__webglDepthbuffer&&n.deleteRenderbuffer(X.__webglDepthbuffer[se])}else{if(Array.isArray(X.__webglFramebuffer))for(let se=0;se<X.__webglFramebuffer.length;se++)n.deleteFramebuffer(X.__webglFramebuffer[se]);else n.deleteFramebuffer(X.__webglFramebuffer);if(X.__webglDepthbuffer&&n.deleteRenderbuffer(X.__webglDepthbuffer),X.__webglMultisampledFramebuffer&&n.deleteFramebuffer(X.__webglMultisampledFramebuffer),X.__webglColorRenderbuffer)for(let se=0;se<X.__webglColorRenderbuffer.length;se++)X.__webglColorRenderbuffer[se]&&n.deleteRenderbuffer(X.__webglColorRenderbuffer[se]);X.__webglDepthRenderbuffer&&n.deleteRenderbuffer(X.__webglDepthRenderbuffer)}if(B.isWebGLMultipleRenderTargets)for(let se=0,ce=I.length;se<ce;se++){let me=i.get(I[se]);me.__webglTexture&&(n.deleteTexture(me.__webglTexture),o.memory.textures--),i.remove(I[se])}i.remove(I),i.remove(B)}let K=0;function H(){K=0}function z(){let B=K;return B>=l&&console.warn("THREE.WebGLTextures: Trying to use "+B+" texture units while this GPU supports only "+l),K+=1,B}function F(B){let I=[];return I.push(B.wrapS),I.push(B.wrapT),I.push(B.wrapR||0),I.push(B.magFilter),I.push(B.minFilter),I.push(B.anisotropy),I.push(B.internalFormat),I.push(B.format),I.push(B.type),I.push(B.generateMipmaps),I.push(B.premultiplyAlpha),I.push(B.flipY),I.push(B.unpackAlignment),I.push(B.colorSpace),I.join()}function N(B,I){let X=i.get(B);if(B.isVideoTexture&&nt(B),B.isRenderTargetTexture===!1&&B.version>0&&X.__version!==B.version){let le=B.image;if(le===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(le.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{Ve(X,B,I);return}}t.bindTexture(n.TEXTURE_2D,X.__webglTexture,n.TEXTURE0+I)}function R(B,I){let X=i.get(B);if(B.version>0&&X.__version!==B.version){Ve(X,B,I);return}t.bindTexture(n.TEXTURE_2D_ARRAY,X.__webglTexture,n.TEXTURE0+I)}function L(B,I){let X=i.get(B);if(B.version>0&&X.__version!==B.version){Ve(X,B,I);return}t.bindTexture(n.TEXTURE_3D,X.__webglTexture,n.TEXTURE0+I)}function ne(B,I){let X=i.get(B);if(B.version>0&&X.__version!==B.version){ft(X,B,I);return}t.bindTexture(n.TEXTURE_CUBE_MAP,X.__webglTexture,n.TEXTURE0+I)}let ie={[ss]:n.REPEAT,[kt]:n.CLAMP_TO_EDGE,[ra]:n.MIRRORED_REPEAT},he={[yt]:n.NEAREST,[$o]:n.NEAREST_MIPMAP_NEAREST,[Jr]:n.NEAREST_MIPMAP_LINEAR,[ut]:n.LINEAR,[Wh]:n.LINEAR_MIPMAP_NEAREST,[Fn]:n.LINEAR_MIPMAP_LINEAR},ae={[Qv]:n.NEVER,[qv]:n.ALWAYS,[Gv]:n.LESS,[zv]:n.LEQUAL,[Hv]:n.EQUAL,[Kv]:n.GEQUAL,[Vv]:n.GREATER,[Wv]:n.NOTEQUAL};function we(B,I,X){if(X?(n.texParameteri(B,n.TEXTURE_WRAP_S,ie[I.wrapS]),n.texParameteri(B,n.TEXTURE_WRAP_T,ie[I.wrapT]),(B===n.TEXTURE_3D||B===n.TEXTURE_2D_ARRAY)&&n.texParameteri(B,n.TEXTURE_WRAP_R,ie[I.wrapR]),n.texParameteri(B,n.TEXTURE_MAG_FILTER,he[I.magFilter]),n.texParameteri(B,n.TEXTURE_MIN_FILTER,he[I.minFilter])):(n.texParameteri(B,n.TEXTURE_WRAP_S,n.CLAMP_TO_EDGE),n.texParameteri(B,n.TEXTURE_WRAP_T,n.CLAMP_TO_EDGE),(B===n.TEXTURE_3D||B===n.TEXTURE_2D_ARRAY)&&n.texParameteri(B,n.TEXTURE_WRAP_R,n.CLAMP_TO_EDGE),(I.wrapS!==kt||I.wrapT!==kt)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),n.texParameteri(B,n.TEXTURE_MAG_FILTER,b(I.magFilter)),n.texParameteri(B,n.TEXTURE_MIN_FILTER,b(I.minFilter)),I.minFilter!==yt&&I.minFilter!==ut&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),I.compareFunction&&(n.texParameteri(B,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(B,n.TEXTURE_COMPARE_FUNC,ae[I.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){let le=e.get("EXT_texture_filter_anisotropic");if(I.magFilter===yt||I.minFilter!==Jr&&I.minFilter!==Fn||I.type===Lt&&e.has("OES_texture_float_linear")===!1||a===!1&&I.type===Wt&&e.has("OES_texture_half_float_linear")===!1)return;(I.anisotropy>1||i.get(I).__currentAnisotropy)&&(n.texParameterf(B,le.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(I.anisotropy,s.getMaxAnisotropy())),i.get(I).__currentAnisotropy=I.anisotropy)}}function xe(B,I){let X=!1;B.__webglInit===void 0&&(B.__webglInit=!0,I.addEventListener("dispose",w));let le=I.source,se=p.get(le);se===void 0&&(se={},p.set(le,se));let ce=F(I);if(ce!==B.__cacheKey){se[ce]===void 0&&(se[ce]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,X=!0),se[ce].usedTimes++;let me=se[B.__cacheKey];me!==void 0&&(se[B.__cacheKey].usedTimes--,me.usedTimes===0&&D(I)),B.__cacheKey=ce,B.__webglTexture=se[ce].texture}return X}function Ve(B,I,X){let le=n.TEXTURE_2D;(I.isDataArrayTexture||I.isCompressedArrayTexture)&&(le=n.TEXTURE_2D_ARRAY),I.isData3DTexture&&(le=n.TEXTURE_3D);let se=xe(B,I),ce=I.source;t.bindTexture(le,B.__webglTexture,n.TEXTURE0+X);let me=i.get(ce);if(ce.version!==me.__version||se===!0){t.activeTexture(n.TEXTURE0+X),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,I.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,I.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);let oe=y(I)&&v(I.image)===!1,Z=_(I.image,oe,!1,h);Z=dt(I,Z);let P=v(Z)||a,ee=r.convert(I.format,I.colorSpace),ge=r.convert(I.type),ue=M(I.internalFormat,ee,ge,I.colorSpace);we(le,I,P);let Ae,Re=I.mipmaps,He=a&&I.isVideoTexture!==!0,k=me.__version===void 0||se===!0,fe=E(I,Z,P);if(I.isDepthTexture)ue=n.DEPTH_COMPONENT,a?I.type===Lt?ue=n.DEPTH_COMPONENT32F:I.type===bi?ue=n.DEPTH_COMPONENT24:I.type===es?ue=n.DEPTH24_STENCIL8:ue=n.DEPTH_COMPONENT16:I.type===Lt&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),I.format===ts&&ue===n.DEPTH_COMPONENT&&I.type!==Kh&&I.type!==bi&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),I.type=bi,ge=r.convert(I.type)),I.format===Js&&ue===n.DEPTH_COMPONENT&&(ue=n.DEPTH_STENCIL,I.type!==es&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),I.type=es,ge=r.convert(I.type))),k&&(He?t.texStorage2D(n.TEXTURE_2D,1,ue,Z.width,Z.height):t.texImage2D(n.TEXTURE_2D,0,ue,Z.width,Z.height,0,ee,ge,null));else if(I.isDataTexture)if(Re.length>0&&P){He&&k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Re[0].width,Re[0].height);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],He?t.texSubImage2D(n.TEXTURE_2D,J,0,0,Ae.width,Ae.height,ee,ge,Ae.data):t.texImage2D(n.TEXTURE_2D,J,ue,Ae.width,Ae.height,0,ee,ge,Ae.data);I.generateMipmaps=!1}else He?(k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Z.width,Z.height),t.texSubImage2D(n.TEXTURE_2D,0,0,0,Z.width,Z.height,ee,ge,Z.data)):t.texImage2D(n.TEXTURE_2D,0,ue,Z.width,Z.height,0,ee,ge,Z.data);else if(I.isCompressedTexture)if(I.isCompressedArrayTexture){He&&k&&t.texStorage3D(n.TEXTURE_2D_ARRAY,fe,ue,Re[0].width,Re[0].height,Z.depth);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],I.format!==Dt?ee!==null?He?t.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,J,0,0,0,Ae.width,Ae.height,Z.depth,ee,Ae.data,0,0):t.compressedTexImage3D(n.TEXTURE_2D_ARRAY,J,ue,Ae.width,Ae.height,Z.depth,0,Ae.data,0,0):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):He?t.texSubImage3D(n.TEXTURE_2D_ARRAY,J,0,0,0,Ae.width,Ae.height,Z.depth,ee,ge,Ae.data):t.texImage3D(n.TEXTURE_2D_ARRAY,J,ue,Ae.width,Ae.height,Z.depth,0,ee,ge,Ae.data)}else{He&&k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Re[0].width,Re[0].height);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],I.format!==Dt?ee!==null?He?t.compressedTexSubImage2D(n.TEXTURE_2D,J,0,0,Ae.width,Ae.height,ee,Ae.data):t.compressedTexImage2D(n.TEXTURE_2D,J,ue,Ae.width,Ae.height,0,Ae.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):He?t.texSubImage2D(n.TEXTURE_2D,J,0,0,Ae.width,Ae.height,ee,ge,Ae.data):t.texImage2D(n.TEXTURE_2D,J,ue,Ae.width,Ae.height,0,ee,ge,Ae.data)}else if(I.isDataArrayTexture)He?(k&&t.texStorage3D(n.TEXTURE_2D_ARRAY,fe,ue,Z.width,Z.height,Z.depth),t.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,Z.width,Z.height,Z.depth,ee,ge,Z.data)):t.texImage3D(n.TEXTURE_2D_ARRAY,0,ue,Z.width,Z.height,Z.depth,0,ee,ge,Z.data);else if(I.isData3DTexture)He?(k&&t.texStorage3D(n.TEXTURE_3D,fe,ue,Z.width,Z.height,Z.depth),t.texSubImage3D(n.TEXTURE_3D,0,0,0,0,Z.width,Z.height,Z.depth,ee,ge,Z.data)):t.texImage3D(n.TEXTURE_3D,0,ue,Z.width,Z.height,Z.depth,0,ee,ge,Z.data);else if(I.isFramebufferTexture){if(k)if(He)t.texStorage2D(n.TEXTURE_2D,fe,ue,Z.width,Z.height);else{let J=Z.width,re=Z.height;for(let de=0;de<fe;de++)t.texImage2D(n.TEXTURE_2D,de,ue,J,re,0,ee,ge,null),J>>=1,re>>=1}}else if(Re.length>0&&P){He&&k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Re[0].width,Re[0].height);for(let J=0,re=Re.length;J<re;J++)Ae=Re[J],He?t.texSubImage2D(n.TEXTURE_2D,J,0,0,ee,ge,Ae):t.texImage2D(n.TEXTURE_2D,J,ue,ee,ge,Ae);I.generateMipmaps=!1}else He?(k&&t.texStorage2D(n.TEXTURE_2D,fe,ue,Z.width,Z.height),t.texSubImage2D(n.TEXTURE_2D,0,0,0,ee,ge,Z)):t.texImage2D(n.TEXTURE_2D,0,ue,ee,ge,Z);S(I,P)&&C(le),me.__version=ce.version,I.onUpdate&&I.onUpdate(I)}B.__version=I.version}function ft(B,I,X){if(I.image.length!==6)return;let le=xe(B,I),se=I.source;t.bindTexture(n.TEXTURE_CUBE_MAP,B.__webglTexture,n.TEXTURE0+X);let ce=i.get(se);if(se.version!==ce.__version||le===!0){t.activeTexture(n.TEXTURE0+X),n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,I.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,I.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,I.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE);let me=I.isCompressedTexture||I.image[0].isCompressedTexture,oe=I.image[0]&&I.image[0].isDataTexture,Z=[];for(let J=0;J<6;J++)!me&&!oe?Z[J]=_(I.image[J],!1,!0,c):Z[J]=oe?I.image[J].image:I.image[J],Z[J]=dt(I,Z[J]);let P=Z[0],ee=v(P)||a,ge=r.convert(I.format,I.colorSpace),ue=r.convert(I.type),Ae=M(I.internalFormat,ge,ue,I.colorSpace),Re=a&&I.isVideoTexture!==!0,He=ce.__version===void 0||le===!0,k=E(I,P,ee);we(n.TEXTURE_CUBE_MAP,I,ee);let fe;if(me){Re&&He&&t.texStorage2D(n.TEXTURE_CUBE_MAP,k,Ae,P.width,P.height);for(let J=0;J<6;J++){fe=Z[J].mipmaps;for(let re=0;re<fe.length;re++){let de=fe[re];I.format!==Dt?ge!==null?Re?t.compressedTexSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,0,0,de.width,de.height,ge,de.data):t.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,Ae,de.width,de.height,0,de.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,0,0,de.width,de.height,ge,ue,de.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re,Ae,de.width,de.height,0,ge,ue,de.data)}}}else{fe=I.mipmaps,Re&&He&&(fe.length>0&&k++,t.texStorage2D(n.TEXTURE_CUBE_MAP,k,Ae,Z[0].width,Z[0].height));for(let J=0;J<6;J++)if(oe){Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,0,0,Z[J].width,Z[J].height,ge,ue,Z[J].data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,Ae,Z[J].width,Z[J].height,0,ge,ue,Z[J].data);for(let re=0;re<fe.length;re++){let Ne=fe[re].image[J].image;Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,0,0,Ne.width,Ne.height,ge,ue,Ne.data):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,Ae,Ne.width,Ne.height,0,ge,ue,Ne.data)}}else{Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,0,0,ge,ue,Z[J]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,0,Ae,ge,ue,Z[J]);for(let re=0;re<fe.length;re++){let de=fe[re];Re?t.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,0,0,ge,ue,de.image[J]):t.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+J,re+1,Ae,ge,ue,de.image[J])}}}S(I,ee)&&C(n.TEXTURE_CUBE_MAP),ce.__version=se.version,I.onUpdate&&I.onUpdate(I)}B.__version=I.version}function Ce(B,I,X,le,se,ce){let me=r.convert(X.format,X.colorSpace),oe=r.convert(X.type),Z=M(X.internalFormat,me,oe,X.colorSpace);if(!i.get(I).__hasExternalTextures){let ee=Math.max(1,I.width>>ce),ge=Math.max(1,I.height>>ce);se===n.TEXTURE_3D||se===n.TEXTURE_2D_ARRAY?t.texImage3D(se,ce,Z,ee,ge,I.depth,0,me,oe,null):t.texImage2D(se,ce,Z,ee,ge,0,me,oe,null)}t.bindFramebuffer(n.FRAMEBUFFER,B),Be(I)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,le,se,i.get(X).__webglTexture,0,ye(I)):(se===n.TEXTURE_2D||se>=n.TEXTURE_CUBE_MAP_POSITIVE_X&&se<=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&n.framebufferTexture2D(n.FRAMEBUFFER,le,se,i.get(X).__webglTexture,ce),t.bindFramebuffer(n.FRAMEBUFFER,null)}function V(B,I,X){if(n.bindRenderbuffer(n.RENDERBUFFER,B),I.depthBuffer&&!I.stencilBuffer){let le=n.DEPTH_COMPONENT16;if(X||Be(I)){let se=I.depthTexture;se&&se.isDepthTexture&&(se.type===Lt?le=n.DEPTH_COMPONENT32F:se.type===bi&&(le=n.DEPTH_COMPONENT24));let ce=ye(I);Be(I)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,ce,le,I.width,I.height):n.renderbufferStorageMultisample(n.RENDERBUFFER,ce,le,I.width,I.height)}else n.renderbufferStorage(n.RENDERBUFFER,le,I.width,I.height);n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.RENDERBUFFER,B)}else if(I.depthBuffer&&I.stencilBuffer){let le=ye(I);X&&Be(I)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,le,n.DEPTH24_STENCIL8,I.width,I.height):Be(I)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,le,n.DEPTH24_STENCIL8,I.width,I.height):n.renderbufferStorage(n.RENDERBUFFER,n.DEPTH_STENCIL,I.width,I.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.RENDERBUFFER,B)}else{let le=I.isWebGLMultipleRenderTargets===!0?I.texture:[I.texture];for(let se=0;se<le.length;se++){let ce=le[se],me=r.convert(ce.format,ce.colorSpace),oe=r.convert(ce.type),Z=M(ce.internalFormat,me,oe,ce.colorSpace),P=ye(I);X&&Be(I)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,P,Z,I.width,I.height):Be(I)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,P,Z,I.width,I.height):n.renderbufferStorage(n.RENDERBUFFER,Z,I.width,I.height)}}n.bindRenderbuffer(n.RENDERBUFFER,null)}function lt(B,I){if(I&&I.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(t.bindFramebuffer(n.FRAMEBUFFER,B),!(I.depthTexture&&I.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(I.depthTexture).__webglTexture||I.depthTexture.image.width!==I.width||I.depthTexture.image.height!==I.height)&&(I.depthTexture.image.width=I.width,I.depthTexture.image.height=I.height,I.depthTexture.needsUpdate=!0),N(I.depthTexture,0);let le=i.get(I.depthTexture).__webglTexture,se=ye(I);if(I.depthTexture.format===ts)Be(I)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,le,0,se):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,le,0);else if(I.depthTexture.format===Js)Be(I)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,le,0,se):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,le,0);else throw new Error("Unknown depthTexture format")}function Ee(B){let I=i.get(B),X=B.isWebGLCubeRenderTarget===!0;if(B.depthTexture&&!I.__autoAllocateDepthBuffer){if(X)throw new Error("target.depthTexture not supported in Cube render targets");lt(I.__webglFramebuffer,B)}else if(X){I.__webglDepthbuffer=[];for(let le=0;le<6;le++)t.bindFramebuffer(n.FRAMEBUFFER,I.__webglFramebuffer[le]),I.__webglDepthbuffer[le]=n.createRenderbuffer(),V(I.__webglDepthbuffer[le],B,!1)}else t.bindFramebuffer(n.FRAMEBUFFER,I.__webglFramebuffer),I.__webglDepthbuffer=n.createRenderbuffer(),V(I.__webglDepthbuffer,B,!1);t.bindFramebuffer(n.FRAMEBUFFER,null)}function Te(B,I,X){let le=i.get(B);I!==void 0&&Ce(le.__webglFramebuffer,B,B.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),X!==void 0&&Ee(B)}function Se(B){let I=B.texture,X=i.get(B),le=i.get(I);B.addEventListener("dispose",G),B.isWebGLMultipleRenderTargets!==!0&&(le.__webglTexture===void 0&&(le.__webglTexture=n.createTexture()),le.__version=I.version,o.memory.textures++);let se=B.isWebGLCubeRenderTarget===!0,ce=B.isWebGLMultipleRenderTargets===!0,me=v(B)||a;if(se){X.__webglFramebuffer=[];for(let oe=0;oe<6;oe++)if(a&&I.mipmaps&&I.mipmaps.length>0){X.__webglFramebuffer[oe]=[];for(let Z=0;Z<I.mipmaps.length;Z++)X.__webglFramebuffer[oe][Z]=n.createFramebuffer()}else X.__webglFramebuffer[oe]=n.createFramebuffer()}else{if(a&&I.mipmaps&&I.mipmaps.length>0){X.__webglFramebuffer=[];for(let oe=0;oe<I.mipmaps.length;oe++)X.__webglFramebuffer[oe]=n.createFramebuffer()}else X.__webglFramebuffer=n.createFramebuffer();if(ce)if(s.drawBuffers){let oe=B.texture;for(let Z=0,P=oe.length;Z<P;Z++){let ee=i.get(oe[Z]);ee.__webglTexture===void 0&&(ee.__webglTexture=n.createTexture(),o.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");if(a&&B.samples>0&&Be(B)===!1){let oe=ce?I:[I];X.__webglMultisampledFramebuffer=n.createFramebuffer(),X.__webglColorRenderbuffer=[],t.bindFramebuffer(n.FRAMEBUFFER,X.__webglMultisampledFramebuffer);for(let Z=0;Z<oe.length;Z++){let P=oe[Z];X.__webglColorRenderbuffer[Z]=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,X.__webglColorRenderbuffer[Z]);let ee=r.convert(P.format,P.colorSpace),ge=r.convert(P.type),ue=M(P.internalFormat,ee,ge,P.colorSpace,B.isXRRenderTarget===!0),Ae=ye(B);n.renderbufferStorageMultisample(n.RENDERBUFFER,Ae,ue,B.width,B.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Z,n.RENDERBUFFER,X.__webglColorRenderbuffer[Z])}n.bindRenderbuffer(n.RENDERBUFFER,null),B.depthBuffer&&(X.__webglDepthRenderbuffer=n.createRenderbuffer(),V(X.__webglDepthRenderbuffer,B,!0)),t.bindFramebuffer(n.FRAMEBUFFER,null)}}if(se){t.bindTexture(n.TEXTURE_CUBE_MAP,le.__webglTexture),we(n.TEXTURE_CUBE_MAP,I,me);for(let oe=0;oe<6;oe++)if(a&&I.mipmaps&&I.mipmaps.length>0)for(let Z=0;Z<I.mipmaps.length;Z++)Ce(X.__webglFramebuffer[oe][Z],B,I,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+oe,Z);else Ce(X.__webglFramebuffer[oe],B,I,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+oe,0);S(I,me)&&C(n.TEXTURE_CUBE_MAP),t.unbindTexture()}else if(ce){let oe=B.texture;for(let Z=0,P=oe.length;Z<P;Z++){let ee=oe[Z],ge=i.get(ee);t.bindTexture(n.TEXTURE_2D,ge.__webglTexture),we(n.TEXTURE_2D,ee,me),Ce(X.__webglFramebuffer,B,ee,n.COLOR_ATTACHMENT0+Z,n.TEXTURE_2D,0),S(ee,me)&&C(n.TEXTURE_2D)}t.unbindTexture()}else{let oe=n.TEXTURE_2D;if((B.isWebGL3DRenderTarget||B.isWebGLArrayRenderTarget)&&(a?oe=B.isWebGL3DRenderTarget?n.TEXTURE_3D:n.TEXTURE_2D_ARRAY:console.error("THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.")),t.bindTexture(oe,le.__webglTexture),we(oe,I,me),a&&I.mipmaps&&I.mipmaps.length>0)for(let Z=0;Z<I.mipmaps.length;Z++)Ce(X.__webglFramebuffer[Z],B,I,n.COLOR_ATTACHMENT0,oe,Z);else Ce(X.__webglFramebuffer,B,I,n.COLOR_ATTACHMENT0,oe,0);S(I,me)&&C(oe),t.unbindTexture()}B.depthBuffer&&Ee(B)}function $e(B){let I=v(B)||a,X=B.isWebGLMultipleRenderTargets===!0?B.texture:[B.texture];for(let le=0,se=X.length;le<se;le++){let ce=X[le];if(S(ce,I)){let me=B.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:n.TEXTURE_2D,oe=i.get(ce).__webglTexture;t.bindTexture(me,oe),C(me),t.unbindTexture()}}}function Pe(B){if(a&&B.samples>0&&Be(B)===!1){let I=B.isWebGLMultipleRenderTargets?B.texture:[B.texture],X=B.width,le=B.height,se=n.COLOR_BUFFER_BIT,ce=[],me=B.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,oe=i.get(B),Z=B.isWebGLMultipleRenderTargets===!0;if(Z)for(let P=0;P<I.length;P++)t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.RENDERBUFFER,null),t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.TEXTURE_2D,null,0);t.bindFramebuffer(n.READ_FRAMEBUFFER,oe.__webglMultisampledFramebuffer),t.bindFramebuffer(n.DRAW_FRAMEBUFFER,oe.__webglFramebuffer);for(let P=0;P<I.length;P++){ce.push(n.COLOR_ATTACHMENT0+P),B.depthBuffer&&ce.push(me);let ee=oe.__ignoreDepthValues!==void 0?oe.__ignoreDepthValues:!1;if(ee===!1&&(B.depthBuffer&&(se|=n.DEPTH_BUFFER_BIT),B.stencilBuffer&&(se|=n.STENCIL_BUFFER_BIT)),Z&&n.framebufferRenderbuffer(n.READ_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.RENDERBUFFER,oe.__webglColorRenderbuffer[P]),ee===!0&&(n.invalidateFramebuffer(n.READ_FRAMEBUFFER,[me]),n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,[me])),Z){let ge=i.get(I[P]).__webglTexture;n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,ge,0)}n.blitFramebuffer(0,0,X,le,0,0,X,le,se,n.NEAREST),d&&n.invalidateFramebuffer(n.READ_FRAMEBUFFER,ce)}if(t.bindFramebuffer(n.READ_FRAMEBUFFER,null),t.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),Z)for(let P=0;P<I.length;P++){t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.RENDERBUFFER,oe.__webglColorRenderbuffer[P]);let ee=i.get(I[P]).__webglTexture;t.bindFramebuffer(n.FRAMEBUFFER,oe.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+P,n.TEXTURE_2D,ee,0)}t.bindFramebuffer(n.DRAW_FRAMEBUFFER,oe.__webglMultisampledFramebuffer)}}function ye(B){return Math.min(f,B.samples)}function Be(B){let I=i.get(B);return a&&B.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&I.__useRenderToTexture!==!1}function nt(B){let I=o.render.frame;g.get(B)!==I&&(g.set(B,I),B.update())}function dt(B,I){let X=B.colorSpace,le=B.format,se=B.type;return B.isCompressedTexture===!0||B.format===gh||X!==An&&X!==Hn&&(X===be?a===!1?e.has("EXT_sRGB")===!0&&le===Dt?(B.format=gh,B.minFilter=ut,B.generateMipmaps=!1):I=oc.sRGBToLinear(I):(le!==Dt||se!==Pt)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",X)),I}this.allocateTextureUnit=z,this.resetTextureUnits=H,this.setTexture2D=N,this.setTexture2DArray=R,this.setTexture3D=L,this.setTextureCube=ne,this.rebindTextures=Te,this.setupRenderTarget=Se,this.updateRenderTargetMipmap=$e,this.updateMultisampleRenderTarget=Pe,this.setupDepthRenderbuffer=Ee,this.setupFrameBufferTexture=Ce,this.useMultisampledRTT=Be}function ZS(n,e,t){let i=t.isWebGL2;function s(r,o=Hn){let a;if(r===Pt)return n.UNSIGNED_BYTE;if(r===S0)return n.UNSIGNED_SHORT_4_4_4_4;if(r===b0)return n.UNSIGNED_SHORT_5_5_5_1;if(r===Tv)return n.BYTE;if(r===Bv)return n.SHORT;if(r===Kh)return n.UNSIGNED_SHORT;if(r===C0)return n.INT;if(r===bi)return n.UNSIGNED_INT;if(r===Lt)return n.FLOAT;if(r===Wt)return i?n.HALF_FLOAT:(a=e.get("OES_texture_half_float"),a!==null?a.HALF_FLOAT_OES:null);if(r===Rv)return n.ALPHA;if(r===Dt)return n.RGBA;if(r===Dv)return n.LUMINANCE;if(r===Lv)return n.LUMINANCE_ALPHA;if(r===ts)return n.DEPTH_COMPONENT;if(r===Js)return n.DEPTH_STENCIL;if(r===gh)return a=e.get("EXT_sRGB"),a!==null?a.SRGB_ALPHA_EXT:null;if(r===cr)return n.RED;if(r===I0)return n.RED_INTEGER;if(r===lr)return n.RG;if(r===w0)return n.RG_INTEGER;if(r===M0)return n.RGBA_INTEGER;if(r===Zr||r===Ol||r===kl||r===jr)if(o===be)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(r===Zr)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===Ol)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===kl)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===jr)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(r===Zr)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===Ol)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===kl)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===jr)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===ec||r===XA||r===tc||r===YA)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(r===ec)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===XA)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===tc)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===YA)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===qh)return a=e.get("WEBGL_compressed_texture_etc1"),a!==null?a.COMPRESSED_RGB_ETC1_WEBGL:null;if(r===nc||r===ic)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(r===nc)return o===be?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(r===ic)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(r===sc||r===JA||r===ZA||r===jA||r===$A||r===ep||r===tp||r===np||r===ip||r===sp||r===rp||r===ap||r===op||r===cp)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(r===sc)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===JA)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===ZA)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===jA)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===$A)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===ep)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===tp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===np)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===ip)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===sp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===rp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===ap)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===op)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===cp)return o===be?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===$r)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(r===$r)return o===be?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT}else return null;if(r===Fv||r===lp||r===hp||r===up)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(r===$r)return a.COMPRESSED_RED_RGTC1_EXT;if(r===lp)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(r===hp)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(r===up)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return r===es?i?n.UNSIGNED_INT_24_8:(a=e.get("WEBGL_depth_texture"),a!==null?a.UNSIGNED_INT_24_8_WEBGL:null):n[r]!==void 0?n[r]:null}return{convert:s}}var Mh=class extends Ct{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}},fn=class extends ct{constructor(){super(),this.isGroup=!0,this.type="Group"}},jS={type:"move"},ia=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new fn,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new fn,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Q,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Q),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new fn,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Q,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Q),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){let t=this._hand;if(t)for(let i of e.hand.values())this._getHandJoint(t,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,t,i){let s=null,r=null,o=null,a=this._targetRay,l=this._grip,c=this._hand;if(e&&t.session.visibilityState!=="visible-blurred"){if(c&&e.hand){o=!0;for(let m of e.hand.values()){let p=t.getJointPose(m,i),A=this._getHandJoint(c,m);p!==null&&(A.matrix.fromArray(p.transform.matrix),A.matrix.decompose(A.position,A.rotation,A.scale),A.matrixWorldNeedsUpdate=!0,A.jointRadius=p.radius),A.visible=p!==null}let h=c.joints["index-finger-tip"],f=c.joints["thumb-tip"],u=h.position.distanceTo(f.position),d=.02,g=.005;c.inputState.pinching&&u>d+g?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&u<=d-g&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(r=t.getPose(e.gripSpace,i),r!==null&&(l.matrix.fromArray(r.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,r.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(r.linearVelocity)):l.hasLinearVelocity=!1,r.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(r.angularVelocity)):l.hasAngularVelocity=!1));a!==null&&(s=t.getPose(e.targetRaySpace,i),s===null&&r!==null&&(s=r),s!==null&&(a.matrix.fromArray(s.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),a.matrixWorldNeedsUpdate=!0,s.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(s.linearVelocity)):a.hasLinearVelocity=!1,s.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(s.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(jS)))}return a!==null&&(a.visible=s!==null),l!==null&&(l.visible=r!==null),c!==null&&(c.visible=o!==null),this}_getHandJoint(e,t){if(e.joints[t.jointName]===void 0){let i=new fn;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[t.jointName]=i,e.add(i)}return e.joints[t.jointName]}},Th=class extends mt{constructor(e,t,i,s,r,o,a,l,c,h){if(h=h!==void 0?h:ts,h!==ts&&h!==Js)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&h===ts&&(i=bi),i===void 0&&h===Js&&(i=es),super(null,s,r,o,a,l,h,i,c),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=a!==void 0?a:yt,this.minFilter=l!==void 0?l:yt,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){let t=super.toJSON(e);return this.compareFunction!==null&&(t.compareFunction=this.compareFunction),t}},Bh=class extends Vn{constructor(e,t){super();let i=this,s=null,r=1,o=null,a="local-floor",l=1,c=null,h=null,f=null,u=null,d=null,g=null,m=t.getContextAttributes(),p=null,A=null,x=[],_=[],v=new Ct;v.layers.enable(1),v.viewport=new tt;let y=new Ct;y.layers.enable(2),y.viewport=new tt;let S=[v,y],C=new Mh;C.layers.enable(1),C.layers.enable(2);let M=null,E=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(R){let L=x[R];return L===void 0&&(L=new ia,x[R]=L),L.getTargetRaySpace()},this.getControllerGrip=function(R){let L=x[R];return L===void 0&&(L=new ia,x[R]=L),L.getGripSpace()},this.getHand=function(R){let L=x[R];return L===void 0&&(L=new ia,x[R]=L),L.getHandSpace()};function b(R){let L=_.indexOf(R.inputSource);if(L===-1)return;let ne=x[L];ne!==void 0&&(ne.update(R.inputSource,R.frame,c||o),ne.dispatchEvent({type:R.type,data:R.inputSource}))}function w(){s.removeEventListener("select",b),s.removeEventListener("selectstart",b),s.removeEventListener("selectend",b),s.removeEventListener("squeeze",b),s.removeEventListener("squeezestart",b),s.removeEventListener("squeezeend",b),s.removeEventListener("end",w),s.removeEventListener("inputsourceschange",G);for(let R=0;R<x.length;R++){let L=_[R];L!==null&&(_[R]=null,x[R].disconnect(L))}M=null,E=null,e.setRenderTarget(p),d=null,u=null,f=null,s=null,A=null,N.stop(),i.isPresenting=!1,i.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(R){r=R,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(R){a=R,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(R){c=R},this.getBaseLayer=function(){return u!==null?u:d},this.getBinding=function(){return f},this.getFrame=function(){return g},this.getSession=function(){return s},this.setSession=async function(R){if(s=R,s!==null){if(p=e.getRenderTarget(),s.addEventListener("select",b),s.addEventListener("selectstart",b),s.addEventListener("selectend",b),s.addEventListener("squeeze",b),s.addEventListener("squeezestart",b),s.addEventListener("squeezeend",b),s.addEventListener("end",w),s.addEventListener("inputsourceschange",G),m.xrCompatible!==!0&&await t.makeXRCompatible(),s.renderState.layers===void 0||e.capabilities.isWebGL2===!1){let L={antialias:s.renderState.layers===void 0?m.antialias:!0,alpha:!0,depth:m.depth,stencil:m.stencil,framebufferScaleFactor:r};d=new XRWebGLLayer(s,t,L),s.updateRenderState({baseLayer:d}),A=new pn(d.framebufferWidth,d.framebufferHeight,{format:Dt,type:Pt,colorSpace:e.outputColorSpace,stencilBuffer:m.stencil})}else{let L=null,ne=null,ie=null;m.depth&&(ie=m.stencil?t.DEPTH24_STENCIL8:t.DEPTH_COMPONENT24,L=m.stencil?Js:ts,ne=m.stencil?es:bi);let he={colorFormat:t.RGBA8,depthFormat:ie,scaleFactor:r};f=new XRWebGLBinding(s,t),u=f.createProjectionLayer(he),s.updateRenderState({layers:[u]}),A=new pn(u.textureWidth,u.textureHeight,{format:Dt,type:Pt,depthTexture:new Th(u.textureWidth,u.textureHeight,ne,void 0,void 0,void 0,void 0,void 0,void 0,L),stencilBuffer:m.stencil,colorSpace:e.outputColorSpace,samples:m.antialias?4:0});let ae=e.properties.get(A);ae.__ignoreDepthValues=u.ignoreDepthValues}A.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=await s.requestReferenceSpace(a),N.setContext(s),N.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(s!==null)return s.environmentBlendMode};function G(R){for(let L=0;L<R.removed.length;L++){let ne=R.removed[L],ie=_.indexOf(ne);ie>=0&&(_[ie]=null,x[ie].disconnect(ne))}for(let L=0;L<R.added.length;L++){let ne=R.added[L],ie=_.indexOf(ne);if(ie===-1){for(let ae=0;ae<x.length;ae++)if(ae>=_.length){_.push(ne),ie=ae;break}else if(_[ae]===null){_[ae]=ne,ie=ae;break}if(ie===-1)break}let he=x[ie];he&&he.connect(ne)}}let U=new Q,D=new Q;function O(R,L,ne){U.setFromMatrixPosition(L.matrixWorld),D.setFromMatrixPosition(ne.matrixWorld);let ie=U.distanceTo(D),he=L.projectionMatrix.elements,ae=ne.projectionMatrix.elements,we=he[14]/(he[10]-1),xe=he[14]/(he[10]+1),Ve=(he[9]+1)/he[5],ft=(he[9]-1)/he[5],Ce=(he[8]-1)/he[0],V=(ae[8]+1)/ae[0],lt=we*Ce,Ee=we*V,Te=ie/(-Ce+V),Se=Te*-Ce;L.matrixWorld.decompose(R.position,R.quaternion,R.scale),R.translateX(Se),R.translateZ(Te),R.matrixWorld.compose(R.position,R.quaternion,R.scale),R.matrixWorldInverse.copy(R.matrixWorld).invert();let $e=we+Te,Pe=xe+Te,ye=lt-Se,Be=Ee+(ie-Se),nt=Ve*xe/Pe*$e,dt=ft*xe/Pe*$e;R.projectionMatrix.makePerspective(ye,Be,nt,dt,$e,Pe),R.projectionMatrixInverse.copy(R.projectionMatrix).invert()}function K(R,L){L===null?R.matrixWorld.copy(R.matrix):R.matrixWorld.multiplyMatrices(L.matrixWorld,R.matrix),R.matrixWorldInverse.copy(R.matrixWorld).invert()}this.updateCamera=function(R){if(s===null)return;C.near=y.near=v.near=R.near,C.far=y.far=v.far=R.far,(M!==C.near||E!==C.far)&&(s.updateRenderState({depthNear:C.near,depthFar:C.far}),M=C.near,E=C.far);let L=R.parent,ne=C.cameras;K(C,L);for(let ie=0;ie<ne.length;ie++)K(ne[ie],L);ne.length===2?O(C,v,y):C.projectionMatrix.copy(v.projectionMatrix),H(R,C,L)};function H(R,L,ne){ne===null?R.matrix.copy(L.matrixWorld):(R.matrix.copy(ne.matrixWorld),R.matrix.invert(),R.matrix.multiply(L.matrixWorld)),R.matrix.decompose(R.position,R.quaternion,R.scale),R.updateMatrixWorld(!0);let ie=R.children;for(let he=0,ae=ie.length;he<ae;he++)ie[he].updateMatrixWorld(!0);R.projectionMatrix.copy(L.projectionMatrix),R.projectionMatrixInverse.copy(L.projectionMatrixInverse),R.isPerspectiveCamera&&(R.fov=js*2*Math.atan(1/R.projectionMatrix.elements[5]),R.zoom=1)}this.getCamera=function(){return C},this.getFoveation=function(){if(!(u===null&&d===null))return l},this.setFoveation=function(R){l=R,u!==null&&(u.fixedFoveation=R),d!==null&&d.fixedFoveation!==void 0&&(d.fixedFoveation=R)};let z=null;function F(R,L){if(h=L.getViewerPose(c||o),g=L,h!==null){let ne=h.views;d!==null&&(e.setRenderTargetFramebuffer(A,d.framebuffer),e.setRenderTarget(A));let ie=!1;ne.length!==C.cameras.length&&(C.cameras.length=0,ie=!0);for(let he=0;he<ne.length;he++){let ae=ne[he],we=null;if(d!==null)we=d.getViewport(ae);else{let Ve=f.getViewSubImage(u,ae);we=Ve.viewport,he===0&&(e.setRenderTargetTextures(A,Ve.colorTexture,u.ignoreDepthValues?void 0:Ve.depthStencilTexture),e.setRenderTarget(A))}let xe=S[he];xe===void 0&&(xe=new Ct,xe.layers.enable(he),xe.viewport=new tt,S[he]=xe),xe.matrix.fromArray(ae.transform.matrix),xe.matrix.decompose(xe.position,xe.quaternion,xe.scale),xe.projectionMatrix.fromArray(ae.projectionMatrix),xe.projectionMatrixInverse.copy(xe.projectionMatrix).invert(),xe.viewport.set(we.x,we.y,we.width,we.height),he===0&&(C.matrix.copy(xe.matrix),C.matrix.decompose(C.position,C.quaternion,C.scale)),ie===!0&&C.cameras.push(xe)}}for(let ne=0;ne<x.length;ne++){let ie=_[ne],he=x[ne];ie!==null&&he!==void 0&&he.update(ie,L,c||o)}z&&z(R,L),L.detectedPlanes&&i.dispatchEvent({type:"planesdetected",data:L}),g=null}let N=new N0;N.setAnimationLoop(F),this.setAnimationLoop=function(R){z=R},this.dispose=function(){}}};function $S(n,e){function t(p,A){p.matrixAutoUpdate===!0&&p.updateMatrix(),A.value.copy(p.matrix)}function i(p,A){A.color.getRGB(p.fogColor.value,U0(n)),A.isFog?(p.fogNear.value=A.near,p.fogFar.value=A.far):A.isFogExp2&&(p.fogDensity.value=A.density)}function s(p,A,x,_,v){A.isMeshBasicMaterial||A.isMeshLambertMaterial?r(p,A):A.isMeshToonMaterial?(r(p,A),f(p,A)):A.isMeshPhongMaterial?(r(p,A),h(p,A)):A.isMeshStandardMaterial?(r(p,A),u(p,A),A.isMeshPhysicalMaterial&&d(p,A,v)):A.isMeshMatcapMaterial?(r(p,A),g(p,A)):A.isMeshDepthMaterial?r(p,A):A.isMeshDistanceMaterial?(r(p,A),m(p,A)):A.isMeshNormalMaterial?r(p,A):A.isLineBasicMaterial?(o(p,A),A.isLineDashedMaterial&&a(p,A)):A.isPointsMaterial?l(p,A,x,_):A.isSpriteMaterial?c(p,A):A.isShadowMaterial?(p.color.value.copy(A.color),p.opacity.value=A.opacity):A.isShaderMaterial&&(A.uniformsNeedUpdate=!1)}function r(p,A){p.opacity.value=A.opacity,A.color&&p.diffuse.value.copy(A.color),A.emissive&&p.emissive.value.copy(A.emissive).multiplyScalar(A.emissiveIntensity),A.map&&(p.map.value=A.map,t(A.map,p.mapTransform)),A.alphaMap&&(p.alphaMap.value=A.alphaMap,t(A.alphaMap,p.alphaMapTransform)),A.bumpMap&&(p.bumpMap.value=A.bumpMap,t(A.bumpMap,p.bumpMapTransform),p.bumpScale.value=A.bumpScale,A.side===Qt&&(p.bumpScale.value*=-1)),A.normalMap&&(p.normalMap.value=A.normalMap,t(A.normalMap,p.normalMapTransform),p.normalScale.value.copy(A.normalScale),A.side===Qt&&p.normalScale.value.negate()),A.displacementMap&&(p.displacementMap.value=A.displacementMap,t(A.displacementMap,p.displacementMapTransform),p.displacementScale.value=A.displacementScale,p.displacementBias.value=A.displacementBias),A.emissiveMap&&(p.emissiveMap.value=A.emissiveMap,t(A.emissiveMap,p.emissiveMapTransform)),A.specularMap&&(p.specularMap.value=A.specularMap,t(A.specularMap,p.specularMapTransform)),A.alphaTest>0&&(p.alphaTest.value=A.alphaTest);let x=e.get(A).envMap;if(x&&(p.envMap.value=x,p.flipEnvMap.value=x.isCubeTexture&&x.isRenderTargetTexture===!1?-1:1,p.reflectivity.value=A.reflectivity,p.ior.value=A.ior,p.refractionRatio.value=A.refractionRatio),A.lightMap){p.lightMap.value=A.lightMap;let _=n._useLegacyLights===!0?Math.PI:1;p.lightMapIntensity.value=A.lightMapIntensity*_,t(A.lightMap,p.lightMapTransform)}A.aoMap&&(p.aoMap.value=A.aoMap,p.aoMapIntensity.value=A.aoMapIntensity,t(A.aoMap,p.aoMapTransform))}function o(p,A){p.diffuse.value.copy(A.color),p.opacity.value=A.opacity,A.map&&(p.map.value=A.map,t(A.map,p.mapTransform))}function a(p,A){p.dashSize.value=A.dashSize,p.totalSize.value=A.dashSize+A.gapSize,p.scale.value=A.scale}function l(p,A,x,_){p.diffuse.value.copy(A.color),p.opacity.value=A.opacity,p.size.value=A.size*x,p.scale.value=_*.5,A.map&&(p.map.value=A.map,t(A.map,p.uvTransform)),A.alphaMap&&(p.alphaMap.value=A.alphaMap,t(A.alphaMap,p.alphaMapTransform)),A.alphaTest>0&&(p.alphaTest.value=A.alphaTest)}function c(p,A){p.diffuse.value.copy(A.color),p.opacity.value=A.opacity,p.rotation.value=A.rotation,A.map&&(p.map.value=A.map,t(A.map,p.mapTransform)),A.alphaMap&&(p.alphaMap.value=A.alphaMap,t(A.alphaMap,p.alphaMapTransform)),A.alphaTest>0&&(p.alphaTest.value=A.alphaTest)}function h(p,A){p.specular.value.copy(A.specular),p.shininess.value=Math.max(A.shininess,1e-4)}function f(p,A){A.gradientMap&&(p.gradientMap.value=A.gradientMap)}function u(p,A){p.metalness.value=A.metalness,A.metalnessMap&&(p.metalnessMap.value=A.metalnessMap,t(A.metalnessMap,p.metalnessMapTransform)),p.roughness.value=A.roughness,A.roughnessMap&&(p.roughnessMap.value=A.roughnessMap,t(A.roughnessMap,p.roughnessMapTransform)),e.get(A).envMap&&(p.envMapIntensity.value=A.envMapIntensity)}function d(p,A,x){p.ior.value=A.ior,A.sheen>0&&(p.sheenColor.value.copy(A.sheenColor).multiplyScalar(A.sheen),p.sheenRoughness.value=A.sheenRoughness,A.sheenColorMap&&(p.sheenColorMap.value=A.sheenColorMap,t(A.sheenColorMap,p.sheenColorMapTransform)),A.sheenRoughnessMap&&(p.sheenRoughnessMap.value=A.sheenRoughnessMap,t(A.sheenRoughnessMap,p.sheenRoughnessMapTransform))),A.clearcoat>0&&(p.clearcoat.value=A.clearcoat,p.clearcoatRoughness.value=A.clearcoatRoughness,A.clearcoatMap&&(p.clearcoatMap.value=A.clearcoatMap,t(A.clearcoatMap,p.clearcoatMapTransform)),A.clearcoatRoughnessMap&&(p.clearcoatRoughnessMap.value=A.clearcoatRoughnessMap,t(A.clearcoatRoughnessMap,p.clearcoatRoughnessMapTransform)),A.clearcoatNormalMap&&(p.clearcoatNormalMap.value=A.clearcoatNormalMap,t(A.clearcoatNormalMap,p.clearcoatNormalMapTransform),p.clearcoatNormalScale.value.copy(A.clearcoatNormalScale),A.side===Qt&&p.clearcoatNormalScale.value.negate())),A.iridescence>0&&(p.iridescence.value=A.iridescence,p.iridescenceIOR.value=A.iridescenceIOR,p.iridescenceThicknessMinimum.value=A.iridescenceThicknessRange[0],p.iridescenceThicknessMaximum.value=A.iridescenceThicknessRange[1],A.iridescenceMap&&(p.iridescenceMap.value=A.iridescenceMap,t(A.iridescenceMap,p.iridescenceMapTransform)),A.iridescenceThicknessMap&&(p.iridescenceThicknessMap.value=A.iridescenceThicknessMap,t(A.iridescenceThicknessMap,p.iridescenceThicknessMapTransform))),A.transmission>0&&(p.transmission.value=A.transmission,p.transmissionSamplerMap.value=x.texture,p.transmissionSamplerSize.value.set(x.width,x.height),A.transmissionMap&&(p.transmissionMap.value=A.transmissionMap,t(A.transmissionMap,p.transmissionMapTransform)),p.thickness.value=A.thickness,A.thicknessMap&&(p.thicknessMap.value=A.thicknessMap,t(A.thicknessMap,p.thicknessMapTransform)),p.attenuationDistance.value=A.attenuationDistance,p.attenuationColor.value.copy(A.attenuationColor)),A.anisotropy>0&&(p.anisotropyVector.value.set(A.anisotropy*Math.cos(A.anisotropyRotation),A.anisotropy*Math.sin(A.anisotropyRotation)),A.anisotropyMap&&(p.anisotropyMap.value=A.anisotropyMap,t(A.anisotropyMap,p.anisotropyMapTransform))),p.specularIntensity.value=A.specularIntensity,p.specularColor.value.copy(A.specularColor),A.specularColorMap&&(p.specularColorMap.value=A.specularColorMap,t(A.specularColorMap,p.specularColorMapTransform)),A.specularIntensityMap&&(p.specularIntensityMap.value=A.specularIntensityMap,t(A.specularIntensityMap,p.specularIntensityMapTransform))}function g(p,A){A.matcap&&(p.matcap.value=A.matcap)}function m(p,A){let x=e.get(A).light;p.referencePosition.value.setFromMatrixPosition(x.matrixWorld),p.nearDistance.value=x.shadow.camera.near,p.farDistance.value=x.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:s}}function eb(n,e,t,i){let s={},r={},o=[],a=t.isWebGL2?n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(x,_){let v=_.program;i.uniformBlockBinding(x,v)}function c(x,_){let v=s[x.id];v===void 0&&(g(x),v=h(x),s[x.id]=v,x.addEventListener("dispose",p));let y=_.program;i.updateUBOMapping(x,y);let S=e.render.frame;r[x.id]!==S&&(u(x),r[x.id]=S)}function h(x){let _=f();x.__bindingPointIndex=_;let v=n.createBuffer(),y=x.__size,S=x.usage;return n.bindBuffer(n.UNIFORM_BUFFER,v),n.bufferData(n.UNIFORM_BUFFER,y,S),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,_,v),v}function f(){for(let x=0;x<a;x++)if(o.indexOf(x)===-1)return o.push(x),x;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function u(x){let _=s[x.id],v=x.uniforms,y=x.__cache;n.bindBuffer(n.UNIFORM_BUFFER,_);for(let S=0,C=v.length;S<C;S++){let M=v[S];if(d(M,S,y)===!0){let E=M.__offset,b=Array.isArray(M.value)?M.value:[M.value],w=0;for(let G=0;G<b.length;G++){let U=b[G],D=m(U);typeof U=="number"?(M.__data[0]=U,n.bufferSubData(n.UNIFORM_BUFFER,E+w,M.__data)):U.isMatrix3?(M.__data[0]=U.elements[0],M.__data[1]=U.elements[1],M.__data[2]=U.elements[2],M.__data[3]=U.elements[0],M.__data[4]=U.elements[3],M.__data[5]=U.elements[4],M.__data[6]=U.elements[5],M.__data[7]=U.elements[0],M.__data[8]=U.elements[6],M.__data[9]=U.elements[7],M.__data[10]=U.elements[8],M.__data[11]=U.elements[0]):(U.toArray(M.__data,w),w+=D.storage/Float32Array.BYTES_PER_ELEMENT)}n.bufferSubData(n.UNIFORM_BUFFER,E,M.__data)}}n.bindBuffer(n.UNIFORM_BUFFER,null)}function d(x,_,v){let y=x.value;if(v[_]===void 0){if(typeof y=="number")v[_]=y;else{let S=Array.isArray(y)?y:[y],C=[];for(let M=0;M<S.length;M++)C.push(S[M].clone());v[_]=C}return!0}else if(typeof y=="number"){if(v[_]!==y)return v[_]=y,!0}else{let S=Array.isArray(v[_])?v[_]:[v[_]],C=Array.isArray(y)?y:[y];for(let M=0;M<S.length;M++){let E=S[M];if(E.equals(C[M])===!1)return E.copy(C[M]),!0}}return!1}function g(x){let _=x.uniforms,v=0,y=16,S=0;for(let C=0,M=_.length;C<M;C++){let E=_[C],b={boundary:0,storage:0},w=Array.isArray(E.value)?E.value:[E.value];for(let G=0,U=w.length;G<U;G++){let D=w[G],O=m(D);b.boundary+=O.boundary,b.storage+=O.storage}if(E.__data=new Float32Array(b.storage/Float32Array.BYTES_PER_ELEMENT),E.__offset=v,C>0){S=v%y;let G=y-S;S!==0&&G-b.boundary<0&&(v+=y-S,E.__offset=v)}v+=b.storage}return S=v%y,S>0&&(v+=y-S),x.__size=v,x.__cache={},this}function m(x){let _={boundary:0,storage:0};return typeof x=="number"?(_.boundary=4,_.storage=4):x.isVector2?(_.boundary=8,_.storage=8):x.isVector3||x.isColor?(_.boundary=16,_.storage=12):x.isVector4?(_.boundary=16,_.storage=16):x.isMatrix3?(_.boundary=48,_.storage=48):x.isMatrix4?(_.boundary=64,_.storage=64):x.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",x),_}function p(x){let _=x.target;_.removeEventListener("dispose",p);let v=o.indexOf(_.__bindingPointIndex);o.splice(v,1),n.deleteBuffer(s[_.id]),delete s[_.id],delete r[_.id]}function A(){for(let x in s)n.deleteBuffer(s[x]);o=[],s={},r={}}return{bind:l,update:c,dispose:A}}function tb(){let n=aa("canvas");return n.style.display="block",n}var ha=class{constructor(e={}){let{canvas:t=tb(),context:i=null,depth:s=!0,stencil:r=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let u;i!==null?u=i.getContextAttributes().alpha:u=o;let d=new Uint32Array(4),g=new Int32Array(4),m=null,p=null,A=[],x=[];this.domElement=t,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputColorSpace=be,this._useLegacyLights=!1,this.toneMapping=wi,this.toneMappingExposure=1;let _=this,v=!1,y=0,S=0,C=null,M=-1,E=null,b=new tt,w=new tt,G=null,U=new ve(0),D=0,O=t.width,K=t.height,H=1,z=null,F=null,N=new tt(0,0,O,K),R=new tt(0,0,O,K),L=!1,ne=new ca,ie=!1,he=!1,ae=null,we=new Oe,xe=new Ie,Ve=new Q,ft={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Ce(){return C===null?H:1}let V=i;function lt(T,q){for(let $=0;$<T.length;$++){let W=T[$],j=t.getContext(W,q);if(j!==null)return j}return null}try{let T={alpha:!0,depth:s,stencil:r,antialias:a,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:h,failIfMajorPerformanceCaveat:f};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${zh}`),t.addEventListener("webglcontextlost",fe,!1),t.addEventListener("webglcontextrestored",J,!1),t.addEventListener("webglcontextcreationerror",re,!1),V===null){let q=["webgl2","webgl","experimental-webgl"];if(_.isWebGL1Renderer===!0&&q.shift(),V=lt(q,T),V===null)throw lt(q)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}typeof WebGLRenderingContext<"u"&&V instanceof WebGLRenderingContext&&console.warn("THREE.WebGLRenderer: WebGL 1 support was deprecated in r153 and will be removed in r163."),V.getShaderPrecisionFormat===void 0&&(V.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(T){throw console.error("THREE.WebGLRenderer: "+T.message),T}let Ee,Te,Se,$e,Pe,ye,Be,nt,dt,B,I,X,le,se,ce,me,oe,Z,P,ee,ge,ue,Ae,Re;function He(){Ee=new EC(V),Te=new pC(V,Ee,e),Ee.init(Te),ue=new ZS(V,Ee,Te),Se=new YS(V,Ee,Te),$e=new SC(V),Pe=new NS,ye=new JS(V,Ee,Se,Pe,Te,ue,$e),Be=new mC(_),nt=new vC(_),dt=new FE(V,Te),Ae=new dC(V,Ee,dt,Te),B=new yC(V,dt,$e,Ae),I=new MC(V,B,dt,$e),P=new wC(V,Te,ye),me=new gC(Pe),X=new US(_,Be,nt,Ee,Te,Ae,me),le=new $S(_,Pe),se=new kS,ce=new WS(Ee,Te),Z=new fC(_,Be,nt,Se,I,u,l),oe=new XS(_,I,Te),Re=new eb(V,$e,Te,Se),ee=new AC(V,Ee,$e,Te),ge=new CC(V,Ee,$e,Te),$e.programs=X.programs,_.capabilities=Te,_.extensions=Ee,_.properties=Pe,_.renderLists=se,_.shadowMap=oe,_.state=Se,_.info=$e}He();let k=new Bh(_,V);this.xr=k,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){let T=Ee.get("WEBGL_lose_context");T&&T.loseContext()},this.forceContextRestore=function(){let T=Ee.get("WEBGL_lose_context");T&&T.restoreContext()},this.getPixelRatio=function(){return H},this.setPixelRatio=function(T){T!==void 0&&(H=T,this.setSize(O,K,!1))},this.getSize=function(T){return T.set(O,K)},this.setSize=function(T,q,$=!0){if(k.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}O=T,K=q,t.width=Math.floor(T*H),t.height=Math.floor(q*H),$===!0&&(t.style.width=T+"px",t.style.height=q+"px"),this.setViewport(0,0,T,q)},this.getDrawingBufferSize=function(T){return T.set(O*H,K*H).floor()},this.setDrawingBufferSize=function(T,q,$){O=T,K=q,H=$,t.width=Math.floor(T*$),t.height=Math.floor(q*$),this.setViewport(0,0,T,q)},this.getCurrentViewport=function(T){return T.copy(b)},this.getViewport=function(T){return T.copy(N)},this.setViewport=function(T,q,$,W){T.isVector4?N.set(T.x,T.y,T.z,T.w):N.set(T,q,$,W),Se.viewport(b.copy(N).multiplyScalar(H).floor())},this.getScissor=function(T){return T.copy(R)},this.setScissor=function(T,q,$,W){T.isVector4?R.set(T.x,T.y,T.z,T.w):R.set(T,q,$,W),Se.scissor(w.copy(R).multiplyScalar(H).floor())},this.getScissorTest=function(){return L},this.setScissorTest=function(T){Se.setScissorTest(L=T)},this.setOpaqueSort=function(T){z=T},this.setTransparentSort=function(T){F=T},this.getClearColor=function(T){return T.copy(Z.getClearColor())},this.setClearColor=function(){Z.setClearColor.apply(Z,arguments)},this.getClearAlpha=function(){return Z.getClearAlpha()},this.setClearAlpha=function(){Z.setClearAlpha.apply(Z,arguments)},this.clear=function(T=!0,q=!0,$=!0){let W=0;if(T){let j=!1;if(C!==null){let _e=C.texture.format;j=_e===M0||_e===w0||_e===I0}if(j){let _e=C.texture.type,Me=_e===Pt||_e===bi||_e===Kh||_e===es||_e===S0||_e===b0,Le=Z.getClearColor(),Fe=Z.getClearAlpha(),ze=Le.r,De=Le.g,ke=Le.b;Me?(d[0]=ze,d[1]=De,d[2]=ke,d[3]=Fe,V.clearBufferuiv(V.COLOR,0,d)):(g[0]=ze,g[1]=De,g[2]=ke,g[3]=Fe,V.clearBufferiv(V.COLOR,0,g))}else W|=V.COLOR_BUFFER_BIT}q&&(W|=V.DEPTH_BUFFER_BIT),$&&(W|=V.STENCIL_BUFFER_BIT),V.clear(W)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){t.removeEventListener("webglcontextlost",fe,!1),t.removeEventListener("webglcontextrestored",J,!1),t.removeEventListener("webglcontextcreationerror",re,!1),se.dispose(),ce.dispose(),Pe.dispose(),Be.dispose(),nt.dispose(),I.dispose(),Ae.dispose(),Re.dispose(),X.dispose(),k.dispose(),k.removeEventListener("sessionstart",at),k.removeEventListener("sessionend",Jt),ae&&(ae.dispose(),ae=null),et.stop()};function fe(T){T.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),v=!0}function J(){console.log("THREE.WebGLRenderer: Context Restored."),v=!1;let T=$e.autoReset,q=oe.enabled,$=oe.autoUpdate,W=oe.needsUpdate,j=oe.type;He(),$e.autoReset=T,oe.enabled=q,oe.autoUpdate=$,oe.needsUpdate=W,oe.type=j}function re(T){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",T.statusMessage)}function de(T){let q=T.target;q.removeEventListener("dispose",de),Ne(q)}function Ne(T){Ze(T),Pe.remove(T)}function Ze(T){let q=Pe.get(T).programs;q!==void 0&&(q.forEach(function($){X.releaseProgram($)}),T.isShaderMaterial&&X.releaseShaderCache(T))}this.renderBufferDirect=function(T,q,$,W,j,_e){q===null&&(q=ft);let Me=j.isMesh&&j.matrixWorld.determinant()<0,Le=gg(T,q,$,W,j);Se.setMaterial(W,Me);let Fe=$.index,ze=1;if(W.wireframe===!0){if(Fe=B.getWireframeAttribute($),Fe===void 0)return;ze=2}let De=$.drawRange,ke=$.attributes.position,pt=De.start*ze,gt=(De.start+De.count)*ze;_e!==null&&(pt=Math.max(pt,_e.start*ze),gt=Math.min(gt,(_e.start+_e.count)*ze)),Fe!==null?(pt=Math.max(pt,0),gt=Math.min(gt,Fe.count)):ke!=null&&(pt=Math.max(pt,0),gt=Math.min(gt,ke.count));let cn=gt-pt;if(cn<0||cn===1/0)return;Ae.setup(j,W,Le,$,Fe);let qn,_t=ee;if(Fe!==null&&(qn=dt.get(Fe),_t=ge,_t.setIndex(qn)),j.isMesh)W.wireframe===!0?(Se.setLineWidth(W.wireframeLinewidth*Ce()),_t.setMode(V.LINES)):_t.setMode(V.TRIANGLES);else if(j.isLine){let We=W.linewidth;We===void 0&&(We=1),Se.setLineWidth(We*Ce()),j.isLineSegments?_t.setMode(V.LINES):j.isLineLoop?_t.setMode(V.LINE_LOOP):_t.setMode(V.LINE_STRIP)}else j.isPoints?_t.setMode(V.POINTS):j.isSprite&&_t.setMode(V.TRIANGLES);if(j.isInstancedMesh)_t.renderInstances(pt,cn,j.count);else if($.isInstancedBufferGeometry){let We=$._maxInstanceCount!==void 0?$._maxInstanceCount:1/0,Wc=Math.min($.instanceCount,We);_t.renderInstances(pt,cn,Wc)}else _t.render(pt,cn)},this.compile=function(T,q){function $(W,j,_e){W.transparent===!0&&W.side===Dn&&W.forceSinglePass===!1?(W.side=Qt,W.needsUpdate=!0,Sa(W,j,_e),W.side=zn,W.needsUpdate=!0,Sa(W,j,_e),W.side=Dn):Sa(W,j,_e)}p=ce.get(T),p.init(),x.push(p),T.traverseVisible(function(W){W.isLight&&W.layers.test(q.layers)&&(p.pushLight(W),W.castShadow&&p.pushShadow(W))}),p.setupLights(_._useLegacyLights),T.traverse(function(W){let j=W.material;if(j)if(Array.isArray(j))for(let _e=0;_e<j.length;_e++){let Me=j[_e];$(Me,T,W)}else $(j,T,W)}),x.pop(),p=null};let rt=null;function yn(T){rt&&rt(T)}function at(){et.stop()}function Jt(){et.start()}let et=new N0;et.setAnimationLoop(yn),typeof self<"u"&&et.setContext(self),this.setAnimationLoop=function(T){rt=T,k.setAnimationLoop(T),T===null?et.stop():et.start()},k.addEventListener("sessionstart",at),k.addEventListener("sessionend",Jt),this.render=function(T,q){if(q!==void 0&&q.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(v===!0)return;T.matrixWorldAutoUpdate===!0&&T.updateMatrixWorld(),q.parent===null&&q.matrixWorldAutoUpdate===!0&&q.updateMatrixWorld(),k.enabled===!0&&k.isPresenting===!0&&(k.cameraAutoUpdate===!0&&k.updateCamera(q),q=k.getCamera()),T.isScene===!0&&T.onBeforeRender(_,T,q,C),p=ce.get(T,x.length),p.init(),x.push(p),we.multiplyMatrices(q.projectionMatrix,q.matrixWorldInverse),ne.setFromProjectionMatrix(we),he=this.localClippingEnabled,ie=me.init(this.clippingPlanes,he),m=se.get(T,A.length),m.init(),A.push(m),Cn(T,q,0,_.sortObjects),m.finish(),_.sortObjects===!0&&m.sort(z,F),this.info.render.frame++,ie===!0&&me.beginShadows();let $=p.state.shadowsArray;if(oe.render($,T,q),ie===!0&&me.endShadows(),this.info.autoReset===!0&&this.info.reset(),Z.render(m,T),p.setupLights(_._useLegacyLights),q.isArrayCamera){let W=q.cameras;for(let j=0,_e=W.length;j<_e;j++){let Me=W[j];dr(m,T,Me,Me.viewport)}}else dr(m,T,q);C!==null&&(ye.updateMultisampleRenderTarget(C),ye.updateRenderTargetMipmap(C)),T.isScene===!0&&T.onAfterRender(_,T,q),Ae.resetDefaultState(),M=-1,E=null,x.pop(),x.length>0?p=x[x.length-1]:p=null,A.pop(),A.length>0?m=A[A.length-1]:m=null};function Cn(T,q,$,W){if(T.visible===!1)return;if(T.layers.test(q.layers)){if(T.isGroup)$=T.renderOrder;else if(T.isLOD)T.autoUpdate===!0&&T.update(q);else if(T.isLight)p.pushLight(T),T.castShadow&&p.pushShadow(T);else if(T.isSprite){if(!T.frustumCulled||ne.intersectsSprite(T)){W&&Ve.setFromMatrixPosition(T.matrixWorld).applyMatrix4(we);let Me=I.update(T),Le=T.material;Le.visible&&m.push(T,Me,Le,$,Ve.z,null)}}else if((T.isMesh||T.isLine||T.isPoints)&&(!T.frustumCulled||ne.intersectsObject(T))){let Me=I.update(T),Le=T.material;if(W&&(T.boundingSphere!==void 0?(T.boundingSphere===null&&T.computeBoundingSphere(),Ve.copy(T.boundingSphere.center)):(Me.boundingSphere===null&&Me.computeBoundingSphere(),Ve.copy(Me.boundingSphere.center)),Ve.applyMatrix4(T.matrixWorld).applyMatrix4(we)),Array.isArray(Le)){let Fe=Me.groups;for(let ze=0,De=Fe.length;ze<De;ze++){let ke=Fe[ze],pt=Le[ke.materialIndex];pt&&pt.visible&&m.push(T,Me,pt,$,Ve.z,ke)}}else Le.visible&&m.push(T,Me,Le,$,Ve.z,null)}}let _e=T.children;for(let Me=0,Le=_e.length;Me<Le;Me++)Cn(_e[Me],q,$,W)}function dr(T,q,$,W){let j=T.opaque,_e=T.transmissive,Me=T.transparent;p.setupLightsView($),ie===!0&&me.setGlobalState(_.clippingPlanes,$),_e.length>0&&Vc(j,_e,q,$),W&&Se.viewport(b.copy(W)),j.length>0&&Ca(j,q,$),_e.length>0&&Ca(_e,q,$),Me.length>0&&Ca(Me,q,$),Se.buffers.depth.setTest(!0),Se.buffers.depth.setMask(!0),Se.buffers.color.setMask(!0),Se.setPolygonOffset(!1)}function Vc(T,q,$,W){let j=Te.isWebGL2;ae===null&&(ae=new pn(1,1,{generateMipmaps:!0,type:Ee.has("EXT_color_buffer_half_float")?Wt:Pt,minFilter:Fn,samples:j?4:0})),_.getDrawingBufferSize(xe),j?ae.setSize(xe.x,xe.y):ae.setSize(ac(xe.x),ac(xe.y));let _e=_.getRenderTarget();_.setRenderTarget(ae),_.getClearColor(U),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();let Me=_.toneMapping;_.toneMapping=wi,Ca(T,$,W),ye.updateMultisampleRenderTarget(ae),ye.updateRenderTargetMipmap(ae);let Le=!1;for(let Fe=0,ze=q.length;Fe<ze;Fe++){let De=q[Fe],ke=De.object,pt=De.geometry,gt=De.material,cn=De.group;if(gt.side===Dn&&ke.layers.test(W.layers)){let qn=gt.side;gt.side=Qt,gt.needsUpdate=!0,ku(ke,$,W,pt,gt,cn),gt.side=qn,gt.needsUpdate=!0,Le=!0}}Le===!0&&(ye.updateMultisampleRenderTarget(ae),ye.updateRenderTargetMipmap(ae)),_.setRenderTarget(_e),_.setClearColor(U,D),_.toneMapping=Me}function Ca(T,q,$){let W=q.isScene===!0?q.overrideMaterial:null;for(let j=0,_e=T.length;j<_e;j++){let Me=T[j],Le=Me.object,Fe=Me.geometry,ze=W===null?Me.material:W,De=Me.group;Le.layers.test($.layers)&&ku(Le,q,$,Fe,ze,De)}}function ku(T,q,$,W,j,_e){T.onBeforeRender(_,q,$,W,j,_e),T.modelViewMatrix.multiplyMatrices($.matrixWorldInverse,T.matrixWorld),T.normalMatrix.getNormalMatrix(T.modelViewMatrix),j.onBeforeRender(_,q,$,W,T,_e),j.transparent===!0&&j.side===Dn&&j.forceSinglePass===!1?(j.side=Qt,j.needsUpdate=!0,_.renderBufferDirect($,q,W,j,T,_e),j.side=zn,j.needsUpdate=!0,_.renderBufferDirect($,q,W,j,T,_e),j.side=Dn):_.renderBufferDirect($,q,W,j,T,_e),T.onAfterRender(_,q,$,W,j,_e)}function Sa(T,q,$){q.isScene!==!0&&(q=ft);let W=Pe.get(T),j=p.state.lights,_e=p.state.shadowsArray,Me=j.state.version,Le=X.getParameters(T,j.state,_e,q,$),Fe=X.getProgramCacheKey(Le),ze=W.programs;W.environment=T.isMeshStandardMaterial?q.environment:null,W.fog=q.fog,W.envMap=(T.isMeshStandardMaterial?nt:Be).get(T.envMap||W.environment),ze===void 0&&(T.addEventListener("dispose",de),ze=new Map,W.programs=ze);let De=ze.get(Fe);if(De!==void 0){if(W.currentProgram===De&&W.lightsStateVersion===Me)return Qu(T,Le),De}else Le.uniforms=X.getUniforms(T),T.onBuild($,Le,_),T.onBeforeCompile(Le,_),De=X.acquireProgram(Le,Fe),ze.set(Fe,De),W.uniforms=Le.uniforms;let ke=W.uniforms;(!T.isShaderMaterial&&!T.isRawShaderMaterial||T.clipping===!0)&&(ke.clippingPlanes=me.uniform),Qu(T,Le),W.needsLights=_g(T),W.lightsStateVersion=Me,W.needsLights&&(ke.ambientLightColor.value=j.state.ambient,ke.lightProbe.value=j.state.probe,ke.directionalLights.value=j.state.directional,ke.directionalLightShadows.value=j.state.directionalShadow,ke.spotLights.value=j.state.spot,ke.spotLightShadows.value=j.state.spotShadow,ke.rectAreaLights.value=j.state.rectArea,ke.ltc_1.value=j.state.rectAreaLTC1,ke.ltc_2.value=j.state.rectAreaLTC2,ke.pointLights.value=j.state.point,ke.pointLightShadows.value=j.state.pointShadow,ke.hemisphereLights.value=j.state.hemi,ke.directionalShadowMap.value=j.state.directionalShadowMap,ke.directionalShadowMatrix.value=j.state.directionalShadowMatrix,ke.spotShadowMap.value=j.state.spotShadowMap,ke.spotLightMatrix.value=j.state.spotLightMatrix,ke.spotLightMap.value=j.state.spotLightMap,ke.pointShadowMap.value=j.state.pointShadowMap,ke.pointShadowMatrix.value=j.state.pointShadowMatrix);let pt=De.getUniforms(),gt=Xs.seqWithValue(pt.seq,ke);return W.currentProgram=De,W.uniformsList=gt,De}function Qu(T,q){let $=Pe.get(T);$.outputColorSpace=q.outputColorSpace,$.instancing=q.instancing,$.instancingColor=q.instancingColor,$.skinning=q.skinning,$.morphTargets=q.morphTargets,$.morphNormals=q.morphNormals,$.morphColors=q.morphColors,$.morphTargetsCount=q.morphTargetsCount,$.numClippingPlanes=q.numClippingPlanes,$.numIntersection=q.numClipIntersection,$.vertexAlphas=q.vertexAlphas,$.vertexTangents=q.vertexTangents,$.toneMapping=q.toneMapping}function gg(T,q,$,W,j){q.isScene!==!0&&(q=ft),ye.resetTextureUnits();let _e=q.fog,Me=W.isMeshStandardMaterial?q.environment:null,Le=C===null?_.outputColorSpace:C.isXRRenderTarget===!0?C.texture.colorSpace:An,Fe=(W.isMeshStandardMaterial?nt:Be).get(W.envMap||Me),ze=W.vertexColors===!0&&!!$.attributes.color&&$.attributes.color.itemSize===4,De=!!$.attributes.tangent&&(!!W.normalMap||W.anisotropy>0),ke=!!$.morphAttributes.position,pt=!!$.morphAttributes.normal,gt=!!$.morphAttributes.color,cn=wi;W.toneMapped&&(C===null||C.isXRRenderTarget===!0)&&(cn=_.toneMapping);let qn=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,_t=qn!==void 0?qn.length:0,We=Pe.get(W),Wc=p.state.lights;if(ie===!0&&(he===!0||T!==E)){let Zt=T===E&&W.id===M;me.setState(W,T,Zt)}let xt=!1;W.version===We.__version?(We.needsLights&&We.lightsStateVersion!==Wc.state.version||We.outputColorSpace!==Le||j.isInstancedMesh&&We.instancing===!1||!j.isInstancedMesh&&We.instancing===!0||j.isSkinnedMesh&&We.skinning===!1||!j.isSkinnedMesh&&We.skinning===!0||j.isInstancedMesh&&We.instancingColor===!0&&j.instanceColor===null||j.isInstancedMesh&&We.instancingColor===!1&&j.instanceColor!==null||We.envMap!==Fe||W.fog===!0&&We.fog!==_e||We.numClippingPlanes!==void 0&&(We.numClippingPlanes!==me.numPlanes||We.numIntersection!==me.numIntersection)||We.vertexAlphas!==ze||We.vertexTangents!==De||We.morphTargets!==ke||We.morphNormals!==pt||We.morphColors!==gt||We.toneMapping!==cn||Te.isWebGL2===!0&&We.morphTargetsCount!==_t)&&(xt=!0):(xt=!0,We.__version=W.version);let Pi=We.currentProgram;xt===!0&&(Pi=Sa(W,q,j));let Gu=!1,Ar=!1,Kc=!1,Gt=Pi.getUniforms(),Ui=We.uniforms;if(Se.useProgram(Pi.program)&&(Gu=!0,Ar=!0,Kc=!0),W.id!==M&&(M=W.id,Ar=!0),Gu||E!==T){if(Gt.setValue(V,"projectionMatrix",T.projectionMatrix),Te.logarithmicDepthBuffer&&Gt.setValue(V,"logDepthBufFC",2/(Math.log(T.far+1)/Math.LN2)),E!==T&&(E=T,Ar=!0,Kc=!0),W.isShaderMaterial||W.isMeshPhongMaterial||W.isMeshToonMaterial||W.isMeshStandardMaterial||W.envMap){let Zt=Gt.map.cameraPosition;Zt!==void 0&&Zt.setValue(V,Ve.setFromMatrixPosition(T.matrixWorld))}(W.isMeshPhongMaterial||W.isMeshToonMaterial||W.isMeshLambertMaterial||W.isMeshBasicMaterial||W.isMeshStandardMaterial||W.isShaderMaterial)&&Gt.setValue(V,"isOrthographic",T.isOrthographicCamera===!0),(W.isMeshPhongMaterial||W.isMeshToonMaterial||W.isMeshLambertMaterial||W.isMeshBasicMaterial||W.isMeshStandardMaterial||W.isShaderMaterial||W.isShadowMaterial||j.isSkinnedMesh)&&Gt.setValue(V,"viewMatrix",T.matrixWorldInverse)}if(j.isSkinnedMesh){Gt.setOptional(V,j,"bindMatrix"),Gt.setOptional(V,j,"bindMatrixInverse");let Zt=j.skeleton;Zt&&(Te.floatVertexTextures?(Zt.boneTexture===null&&Zt.computeBoneTexture(),Gt.setValue(V,"boneTexture",Zt.boneTexture,ye),Gt.setValue(V,"boneTextureSize",Zt.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}let qc=$.morphAttributes;if((qc.position!==void 0||qc.normal!==void 0||qc.color!==void 0&&Te.isWebGL2===!0)&&P.update(j,$,Pi),(Ar||We.receiveShadow!==j.receiveShadow)&&(We.receiveShadow=j.receiveShadow,Gt.setValue(V,"receiveShadow",j.receiveShadow)),W.isMeshGouraudMaterial&&W.envMap!==null&&(Ui.envMap.value=Fe,Ui.flipEnvMap.value=Fe.isCubeTexture&&Fe.isRenderTargetTexture===!1?-1:1),Ar&&(Gt.setValue(V,"toneMappingExposure",_.toneMappingExposure),We.needsLights&&mg(Ui,Kc),_e&&W.fog===!0&&le.refreshFogUniforms(Ui,_e),le.refreshMaterialUniforms(Ui,W,H,K,ae),Xs.upload(V,We.uniformsList,Ui,ye)),W.isShaderMaterial&&W.uniformsNeedUpdate===!0&&(Xs.upload(V,We.uniformsList,Ui,ye),W.uniformsNeedUpdate=!1),W.isSpriteMaterial&&Gt.setValue(V,"center",j.center),Gt.setValue(V,"modelViewMatrix",j.modelViewMatrix),Gt.setValue(V,"normalMatrix",j.normalMatrix),Gt.setValue(V,"modelMatrix",j.matrixWorld),W.isShaderMaterial||W.isRawShaderMaterial){let Zt=W.uniformsGroups;for(let Xc=0,xg=Zt.length;Xc<xg;Xc++)if(Te.isWebGL2){let Hu=Zt[Xc];Re.update(Hu,Pi),Re.bind(Hu,Pi)}else console.warn("THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.")}return Pi}function mg(T,q){T.ambientLightColor.needsUpdate=q,T.lightProbe.needsUpdate=q,T.directionalLights.needsUpdate=q,T.directionalLightShadows.needsUpdate=q,T.pointLights.needsUpdate=q,T.pointLightShadows.needsUpdate=q,T.spotLights.needsUpdate=q,T.spotLightShadows.needsUpdate=q,T.rectAreaLights.needsUpdate=q,T.hemisphereLights.needsUpdate=q}function _g(T){return T.isMeshLambertMaterial||T.isMeshToonMaterial||T.isMeshPhongMaterial||T.isMeshStandardMaterial||T.isShadowMaterial||T.isShaderMaterial&&T.lights===!0}this.getActiveCubeFace=function(){return y},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return C},this.setRenderTargetTextures=function(T,q,$){Pe.get(T.texture).__webglTexture=q,Pe.get(T.depthTexture).__webglTexture=$;let W=Pe.get(T);W.__hasExternalTextures=!0,W.__hasExternalTextures&&(W.__autoAllocateDepthBuffer=$===void 0,W.__autoAllocateDepthBuffer||Ee.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),W.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(T,q){let $=Pe.get(T);$.__webglFramebuffer=q,$.__useDefaultFramebuffer=q===void 0},this.setRenderTarget=function(T,q=0,$=0){C=T,y=q,S=$;let W=!0,j=null,_e=!1,Me=!1;if(T){let Fe=Pe.get(T);Fe.__useDefaultFramebuffer!==void 0?(Se.bindFramebuffer(V.FRAMEBUFFER,null),W=!1):Fe.__webglFramebuffer===void 0?ye.setupRenderTarget(T):Fe.__hasExternalTextures&&ye.rebindTextures(T,Pe.get(T.texture).__webglTexture,Pe.get(T.depthTexture).__webglTexture);let ze=T.texture;(ze.isData3DTexture||ze.isDataArrayTexture||ze.isCompressedArrayTexture)&&(Me=!0);let De=Pe.get(T).__webglFramebuffer;T.isWebGLCubeRenderTarget?(Array.isArray(De[q])?j=De[q][$]:j=De[q],_e=!0):Te.isWebGL2&&T.samples>0&&ye.useMultisampledRTT(T)===!1?j=Pe.get(T).__webglMultisampledFramebuffer:Array.isArray(De)?j=De[$]:j=De,b.copy(T.viewport),w.copy(T.scissor),G=T.scissorTest}else b.copy(N).multiplyScalar(H).floor(),w.copy(R).multiplyScalar(H).floor(),G=L;if(Se.bindFramebuffer(V.FRAMEBUFFER,j)&&Te.drawBuffers&&W&&Se.drawBuffers(T,j),Se.viewport(b),Se.scissor(w),Se.setScissorTest(G),_e){let Fe=Pe.get(T.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+q,Fe.__webglTexture,$)}else if(Me){let Fe=Pe.get(T.texture),ze=q||0;V.framebufferTextureLayer(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,Fe.__webglTexture,$||0,ze)}M=-1},this.readRenderTargetPixels=function(T,q,$,W,j,_e,Me){if(!(T&&T.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Le=Pe.get(T).__webglFramebuffer;if(T.isWebGLCubeRenderTarget&&Me!==void 0&&(Le=Le[Me]),Le){Se.bindFramebuffer(V.FRAMEBUFFER,Le);try{let Fe=T.texture,ze=Fe.format,De=Fe.type;if(ze!==Dt&&ue.convert(ze)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}let ke=De===Wt&&(Ee.has("EXT_color_buffer_half_float")||Te.isWebGL2&&Ee.has("EXT_color_buffer_float"));if(De!==Pt&&ue.convert(De)!==V.getParameter(V.IMPLEMENTATION_COLOR_READ_TYPE)&&!(De===Lt&&(Te.isWebGL2||Ee.has("OES_texture_float")||Ee.has("WEBGL_color_buffer_float")))&&!ke){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}q>=0&&q<=T.width-W&&$>=0&&$<=T.height-j&&V.readPixels(q,$,W,j,ue.convert(ze),ue.convert(De),_e)}finally{let Fe=C!==null?Pe.get(C).__webglFramebuffer:null;Se.bindFramebuffer(V.FRAMEBUFFER,Fe)}}},this.copyFramebufferToTexture=function(T,q,$=0){let W=Math.pow(2,-$),j=Math.floor(q.image.width*W),_e=Math.floor(q.image.height*W);ye.setTexture2D(q,0),V.copyTexSubImage2D(V.TEXTURE_2D,$,0,0,T.x,T.y,j,_e),Se.unbindTexture()},this.copyTextureToTexture=function(T,q,$,W=0){let j=q.image.width,_e=q.image.height,Me=ue.convert($.format),Le=ue.convert($.type);ye.setTexture2D($,0),V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,$.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,$.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,$.unpackAlignment),q.isDataTexture?V.texSubImage2D(V.TEXTURE_2D,W,T.x,T.y,j,_e,Me,Le,q.image.data):q.isCompressedTexture?V.compressedTexSubImage2D(V.TEXTURE_2D,W,T.x,T.y,q.mipmaps[0].width,q.mipmaps[0].height,Me,q.mipmaps[0].data):V.texSubImage2D(V.TEXTURE_2D,W,T.x,T.y,Me,Le,q.image),W===0&&$.generateMipmaps&&V.generateMipmap(V.TEXTURE_2D),Se.unbindTexture()},this.copyTextureToTexture3D=function(T,q,$,W,j=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}let _e=T.max.x-T.min.x+1,Me=T.max.y-T.min.y+1,Le=T.max.z-T.min.z+1,Fe=ue.convert(W.format),ze=ue.convert(W.type),De;if(W.isData3DTexture)ye.setTexture3D(W,0),De=V.TEXTURE_3D;else if(W.isDataArrayTexture)ye.setTexture2DArray(W,0),De=V.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,W.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,W.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,W.unpackAlignment);let ke=V.getParameter(V.UNPACK_ROW_LENGTH),pt=V.getParameter(V.UNPACK_IMAGE_HEIGHT),gt=V.getParameter(V.UNPACK_SKIP_PIXELS),cn=V.getParameter(V.UNPACK_SKIP_ROWS),qn=V.getParameter(V.UNPACK_SKIP_IMAGES),_t=$.isCompressedTexture?$.mipmaps[0]:$.image;V.pixelStorei(V.UNPACK_ROW_LENGTH,_t.width),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,_t.height),V.pixelStorei(V.UNPACK_SKIP_PIXELS,T.min.x),V.pixelStorei(V.UNPACK_SKIP_ROWS,T.min.y),V.pixelStorei(V.UNPACK_SKIP_IMAGES,T.min.z),$.isDataTexture||$.isData3DTexture?V.texSubImage3D(De,j,q.x,q.y,q.z,_e,Me,Le,Fe,ze,_t.data):$.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),V.compressedTexSubImage3D(De,j,q.x,q.y,q.z,_e,Me,Le,Fe,_t.data)):V.texSubImage3D(De,j,q.x,q.y,q.z,_e,Me,Le,Fe,ze,_t),V.pixelStorei(V.UNPACK_ROW_LENGTH,ke),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,pt),V.pixelStorei(V.UNPACK_SKIP_PIXELS,gt),V.pixelStorei(V.UNPACK_SKIP_ROWS,cn),V.pixelStorei(V.UNPACK_SKIP_IMAGES,qn),j===0&&W.generateMipmaps&&V.generateMipmap(De),Se.unbindTexture()},this.initTexture=function(T){T.isCubeTexture?ye.setTextureCube(T,0):T.isData3DTexture?ye.setTexture3D(T,0):T.isDataArrayTexture||T.isCompressedArrayTexture?ye.setTexture2DArray(T,0):ye.setTexture2D(T,0),Se.unbindTexture()},this.resetState=function(){y=0,S=0,C=null,Se.reset(),Ae.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ai}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===be?ns:B0}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===ns?be:An}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}},Rh=class extends ha{};Rh.prototype.isWebGL1Renderer=!0;var gc=class extends ct{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){let t=super.toJSON(e);return this.fog!==null&&(t.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(t.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(t.object.backgroundIntensity=this.backgroundIntensity),t}},ua=class{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=e!==void 0?e.length/t:0,this.usage=ph,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=Ln()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,t,i){e*=this.stride,i*=t.stride;for(let s=0,r=this.stride;s<r;s++)this.array[e+s]=t.array[i+s];return this}set(e,t=0){return this.array.set(e,t),this}clone(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Ln()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);let t=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),i=new this.constructor(t,this.stride);return i.setUsage(this.usage),i}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Ln()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}},zt=new Q,cs=class{constructor(e,t,i,s=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=t,this.offset=i,this.normalized=s}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let t=0,i=this.data.count;t<i;t++)zt.fromBufferAttribute(this,t),zt.applyMatrix4(e),this.setXYZ(t,zt.x,zt.y,zt.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)zt.fromBufferAttribute(this,t),zt.applyNormalMatrix(e),this.setXYZ(t,zt.x,zt.y,zt.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)zt.fromBufferAttribute(this,t),zt.transformDirection(e),this.setXYZ(t,zt.x,zt.y,zt.z);return this}setX(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.normalized&&(t=st(t,this.array)),this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){let t=this.data.array[e*this.data.stride+this.offset];return this.normalized&&(t=Gn(t,this.array)),t}getY(e){let t=this.data.array[e*this.data.stride+this.offset+1];return this.normalized&&(t=Gn(t,this.array)),t}getZ(e){let t=this.data.array[e*this.data.stride+this.offset+2];return this.normalized&&(t=Gn(t,this.array)),t}getW(e){let t=this.data.array[e*this.data.stride+this.offset+3];return this.normalized&&(t=Gn(t,this.array)),t}setXY(e,t,i){return e=e*this.data.stride+this.offset,this.normalized&&(t=st(t,this.array),i=st(i,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this}setXYZ(e,t,i,s){return e=e*this.data.stride+this.offset,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=s,this}setXYZW(e,t,i,s,r){return e=e*this.data.stride+this.offset,this.normalized&&(t=st(t,this.array),i=st(i,this.array),s=st(s,this.array),r=st(r,this.array)),this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=s,this.data.array[e+3]=r,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");let t=[];for(let i=0;i<this.count;i++){let s=i*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[s+r])}return new St(new this.array.constructor(t),this.itemSize,this.normalized)}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new cs(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");let t=[];for(let i=0;i<this.count;i++){let s=i*this.data.stride+this.offset;for(let r=0;r<this.itemSize;r++)t.push(this.data.array[s+r])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:t,normalized:this.normalized}}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}};var $p=new Q,e0=new tt,t0=new tt,nb=new Q,n0=new Oe,Hs=new Q,ch=new sn,i0=new Oe,lh=new Mi,mc=class extends Ft{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new Oe,this.bindMatrixInverse=new Oe,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){let e=this.geometry;this.boundingBox===null&&(this.boundingBox=new gn),this.boundingBox.makeEmpty();let t=e.getAttribute("position");for(let i=0;i<t.count;i++)Hs.fromBufferAttribute(t,i),this.applyBoneTransform(i,Hs),this.boundingBox.expandByPoint(Hs)}computeBoundingSphere(){let e=this.geometry;this.boundingSphere===null&&(this.boundingSphere=new sn),this.boundingSphere.makeEmpty();let t=e.getAttribute("position");for(let i=0;i<t.count;i++)Hs.fromBufferAttribute(t,i),this.applyBoneTransform(i,Hs),this.boundingSphere.expandByPoint(Hs)}copy(e,t){return super.copy(e,t),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}raycast(e,t){let i=this.material,s=this.matrixWorld;i!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),ch.copy(this.boundingSphere),ch.applyMatrix4(s),e.ray.intersectsSphere(ch)!==!1&&(i0.copy(s).invert(),lh.copy(e.ray).applyMatrix4(i0),!(this.boundingBox!==null&&lh.intersectsBox(this.boundingBox)===!1)&&this._computeIntersections(e,t,lh)))}getVertexPosition(e,t){return super.getVertexPosition(e,t),this.applyBoneTransform(e,t),t}bind(e,t){this.skeleton=e,t===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){let e=new tt,t=this.geometry.attributes.skinWeight;for(let i=0,s=t.count;i<s;i++){e.fromBufferAttribute(t,i);let r=1/e.manhattanLength();r!==1/0?e.multiplyScalar(r):e.set(1,0,0,0),t.setXYZW(i,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode==="attached"?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode==="detached"?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(e,t){let i=this.skeleton,s=this.geometry;e0.fromBufferAttribute(s.attributes.skinIndex,e),t0.fromBufferAttribute(s.attributes.skinWeight,e),$p.copy(t).applyMatrix4(this.bindMatrix),t.set(0,0,0);for(let r=0;r<4;r++){let o=t0.getComponent(r);if(o!==0){let a=e0.getComponent(r);n0.multiplyMatrices(i.bones[a].matrixWorld,i.boneInverses[a]),t.addScaledVector(nb.copy($p).applyMatrix4(n0),o)}}return t.applyMatrix4(this.bindMatrixInverse)}boneTransform(e,t){return console.warn("THREE.SkinnedMesh: .boneTransform() was renamed to .applyBoneTransform() in r151."),this.applyBoneTransform(e,t)}},fa=class extends ct{constructor(){super(),this.isBone=!0,this.type="Bone"}},tr=class extends mt{constructor(e=null,t=1,i=1,s,r,o,a,l,c=yt,h=yt,f,u){super(null,o,a,l,c,h,s,r,f,u),this.isDataTexture=!0,this.image={data:e,width:t,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},s0=new Oe,ib=new Oe,nr=class{constructor(e=[],t=[]){this.uuid=Ln(),this.bones=e.slice(0),this.boneInverses=t,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.init()}init(){let e=this.bones,t=this.boneInverses;if(this.boneMatrices=new Float32Array(e.length*16),t.length===0)this.calculateInverses();else if(e.length!==t.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let i=0,s=this.bones.length;i<s;i++)this.boneInverses.push(new Oe)}}calculateInverses(){this.boneInverses.length=0;for(let e=0,t=this.bones.length;e<t;e++){let i=new Oe;this.bones[e]&&i.copy(this.bones[e].matrixWorld).invert(),this.boneInverses.push(i)}}pose(){for(let e=0,t=this.bones.length;e<t;e++){let i=this.bones[e];i&&i.matrixWorld.copy(this.boneInverses[e]).invert()}for(let e=0,t=this.bones.length;e<t;e++){let i=this.bones[e];i&&(i.parent&&i.parent.isBone?(i.matrix.copy(i.parent.matrixWorld).invert(),i.matrix.multiply(i.matrixWorld)):i.matrix.copy(i.matrixWorld),i.matrix.decompose(i.position,i.quaternion,i.scale))}}update(){let e=this.bones,t=this.boneInverses,i=this.boneMatrices,s=this.boneTexture;for(let r=0,o=e.length;r<o;r++){let a=e[r]?e[r].matrixWorld:ib;s0.multiplyMatrices(a,t[r]),s0.toArray(i,r*16)}s!==null&&(s.needsUpdate=!0)}clone(){return new nr(this.bones,this.boneInverses)}computeBoneTexture(){let e=Math.sqrt(this.bones.length*4);e=L0(e),e=Math.max(e,4);let t=new Float32Array(e*e*4);t.set(this.boneMatrices);let i=new tr(t,e,e,Dt,Lt);return i.needsUpdate=!0,this.boneMatrices=t,this.boneTexture=i,this.boneTextureSize=e,this}getBoneByName(e){for(let t=0,i=this.bones.length;t<i;t++){let s=this.bones[t];if(s.name===e)return s}}dispose(){this.boneTexture!==null&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(e,t){this.uuid=e.uuid;for(let i=0,s=e.bones.length;i<s;i++){let r=e.bones[i],o=t[r];o===void 0&&(console.warn("THREE.Skeleton: No bone found with UUID:",r),o=new fa),this.bones.push(o),this.boneInverses.push(new Oe().fromArray(e.boneInverses[i]))}return this.init(),this}toJSON(){let e={metadata:{version:4.6,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};e.uuid=this.uuid;let t=this.bones,i=this.boneInverses;for(let s=0,r=t.length;s<r;s++){let o=t[s];e.bones.push(o.uuid);let a=i[s];e.boneInverses.push(a.toArray())}return e}},da=class extends St{constructor(e,t,i,s=1){super(e,t,i),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=s}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}toJSON(){let e=super.toJSON();return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}},zs=new Oe,r0=new Oe,Xo=[],a0=new gn,sb=new Oe,Kr=new Ft,qr=new sn,_c=class extends Ft{constructor(e,t,i){super(e,t),this.isInstancedMesh=!0,this.instanceMatrix=new da(new Float32Array(i*16),16),this.instanceColor=null,this.count=i,this.boundingBox=null,this.boundingSphere=null;for(let s=0;s<i;s++)this.setMatrixAt(s,sb)}computeBoundingBox(){let e=this.geometry,t=this.count;this.boundingBox===null&&(this.boundingBox=new gn),e.boundingBox===null&&e.computeBoundingBox(),this.boundingBox.makeEmpty();for(let i=0;i<t;i++)this.getMatrixAt(i,zs),a0.copy(e.boundingBox).applyMatrix4(zs),this.boundingBox.union(a0)}computeBoundingSphere(){let e=this.geometry,t=this.count;this.boundingSphere===null&&(this.boundingSphere=new sn),e.boundingSphere===null&&e.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let i=0;i<t;i++)this.getMatrixAt(i,zs),qr.copy(e.boundingSphere).applyMatrix4(zs),this.boundingSphere.union(qr)}copy(e,t){return super.copy(e,t),this.instanceMatrix.copy(e.instanceMatrix),e.instanceColor!==null&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}getColorAt(e,t){t.fromArray(this.instanceColor.array,e*3)}getMatrixAt(e,t){t.fromArray(this.instanceMatrix.array,e*16)}raycast(e,t){let i=this.matrixWorld,s=this.count;if(Kr.geometry=this.geometry,Kr.material=this.material,Kr.material!==void 0&&(this.boundingSphere===null&&this.computeBoundingSphere(),qr.copy(this.boundingSphere),qr.applyMatrix4(i),e.ray.intersectsSphere(qr)!==!1))for(let r=0;r<s;r++){this.getMatrixAt(r,zs),r0.multiplyMatrices(i,zs),Kr.matrixWorld=r0,Kr.raycast(e,Xo);for(let o=0,a=Xo.length;o<a;o++){let l=Xo[o];l.instanceId=r,l.object=this,t.push(l)}Xo.length=0}}setColorAt(e,t){this.instanceColor===null&&(this.instanceColor=new da(new Float32Array(this.instanceMatrix.count*3),3)),t.toArray(this.instanceColor.array,e*3)}setMatrixAt(e,t){t.toArray(this.instanceMatrix.array,e*16)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"})}},Aa=class extends rn{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new ve(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}},o0=new Q,c0=new Q,l0=new Oe,hh=new Mi,Yo=new sn,ir=class extends ct{constructor(e=new Yt,t=new Aa){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,i=[0];for(let s=1,r=t.count;s<r;s++)o0.fromBufferAttribute(t,s-1),c0.fromBufferAttribute(t,s),i[s]=i[s-1],i[s]+=o0.distanceTo(c0);e.setAttribute("lineDistance",new dn(i,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,t){let i=this.geometry,s=this.matrixWorld,r=e.params.Line.threshold,o=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),Yo.copy(i.boundingSphere),Yo.applyMatrix4(s),Yo.radius+=r,e.ray.intersectsSphere(Yo)===!1)return;l0.copy(s).invert(),hh.copy(e.ray).applyMatrix4(l0);let a=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=a*a,c=new Q,h=new Q,f=new Q,u=new Q,d=this.isLineSegments?2:1,g=i.index,p=i.attributes.position;if(g!==null){let A=Math.max(0,o.start),x=Math.min(g.count,o.start+o.count);for(let _=A,v=x-1;_<v;_+=d){let y=g.getX(_),S=g.getX(_+1);if(c.fromBufferAttribute(p,y),h.fromBufferAttribute(p,S),hh.distanceSqToSegment(c,h,u,f)>l)continue;u.applyMatrix4(this.matrixWorld);let M=e.ray.origin.distanceTo(u);M<e.near||M>e.far||t.push({distance:M,point:f.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{let A=Math.max(0,o.start),x=Math.min(p.count,o.start+o.count);for(let _=A,v=x-1;_<v;_+=d){if(c.fromBufferAttribute(p,_),h.fromBufferAttribute(p,_+1),hh.distanceSqToSegment(c,h,u,f)>l)continue;u.applyMatrix4(this.matrixWorld);let S=e.ray.origin.distanceTo(u);S<e.near||S>e.far||t.push({distance:S,point:f.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let s=t[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}},h0=new Q,u0=new Q,xc=class extends ir{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){let e=this.geometry;if(e.index===null){let t=e.attributes.position,i=[];for(let s=0,r=t.count;s<r;s+=2)h0.fromBufferAttribute(t,s),u0.fromBufferAttribute(t,s+1),i[s]=s===0?0:i[s-1],i[s+1]=i[s]+h0.distanceTo(u0);e.setAttribute("lineDistance",new dn(i,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}},vc=class extends ir{constructor(e,t){super(e,t),this.isLineLoop=!0,this.type="LineLoop"}},pa=class extends rn{constructor(e){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new ve(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}},f0=new Oe,Dh=new Mi,Jo=new sn,Zo=new Q,Ec=class extends ct{constructor(e=new Yt,t=new pa){super(),this.isPoints=!0,this.type="Points",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}raycast(e,t){let i=this.geometry,s=this.matrixWorld,r=e.params.Points.threshold,o=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),Jo.copy(i.boundingSphere),Jo.applyMatrix4(s),Jo.radius+=r,e.ray.intersectsSphere(Jo)===!1)return;f0.copy(s).invert(),Dh.copy(e.ray).applyMatrix4(f0);let a=r/((this.scale.x+this.scale.y+this.scale.z)/3),l=a*a,c=i.index,f=i.attributes.position;if(c!==null){let u=Math.max(0,o.start),d=Math.min(c.count,o.start+o.count);for(let g=u,m=d;g<m;g++){let p=c.getX(g);Zo.fromBufferAttribute(f,p),d0(Zo,p,l,s,e,t,this)}}else{let u=Math.max(0,o.start),d=Math.min(f.count,o.start+o.count);for(let g=u,m=d;g<m;g++)Zo.fromBufferAttribute(f,g),d0(Zo,g,l,s,e,t,this)}}updateMorphTargets(){let t=this.geometry.morphAttributes,i=Object.keys(t);if(i.length>0){let s=t[i[0]];if(s!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let r=0,o=s.length;r<o;r++){let a=s[r].name||String(r);this.morphTargetInfluences.push(0),this.morphTargetDictionary[a]=r}}}}};function d0(n,e,t,i,s,r,o){let a=Dh.distanceSqToPoint(n);if(a<t){let l=new Q;Dh.closestPointToPoint(n,l),l.applyMatrix4(i);let c=s.ray.origin.distanceTo(l);if(c<s.near||c>s.far)return;r.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:e,face:null,object:o})}}var sr=class extends mt{constructor(e,t,i,s,r,o,a,l,c,h,f,u){super(null,o,a,l,c,h,s,r,f,u),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}},yc=class extends sr{constructor(e,t,i,s,r,o){super(e,t,i,r,o),this.isCompressedArrayTexture=!0,this.image.depth=s,this.wrapR=kt}},Cc=class extends sr{constructor(e,t,i){super(void 0,e[0].width,e[0].height,t,i,is),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=e}};var rr=class extends rn{constructor(e){super(),this.isMeshStandardMaterial=!0,this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new ve(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new ve(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=R0,this.normalScale=new Ie(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}},an=class extends rr{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Ie(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return Rt(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(t){this.ior=(1+.4*t)/(1-.4*t)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new ve(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new ve(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new ve(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(e)}get anisotropy(){return this._anisotropy}set anisotropy(e){this._anisotropy>0!=e>0&&this.version++,this._anisotropy=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!=e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!=e>0&&this.version++,this._iridescence=e}get sheen(){return this._sheen}set sheen(e){this._sheen>0!=e>0&&this.version++,this._sheen=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!=e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=e.anisotropy,this.anisotropyRotation=e.anisotropyRotation,this.anisotropyMap=e.anisotropyMap,this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}};function Si(n,e,t){return H0(n)?new n.constructor(n.subarray(e,t!==void 0?t:n.length)):n.slice(e,t)}function jo(n,e,t){return!n||!t&&n.constructor===e?n:typeof e.BYTES_PER_ELEMENT=="number"?new e(n):Array.prototype.slice.call(n)}function H0(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function rb(n){function e(s,r){return n[s]-n[r]}let t=n.length,i=new Array(t);for(let s=0;s!==t;++s)i[s]=s;return i.sort(e),i}function A0(n,e,t){let i=n.length,s=new n.constructor(i);for(let r=0,o=0;o!==i;++r){let a=t[r]*e;for(let l=0;l!==e;++l)s[o++]=n[a+l]}return s}function z0(n,e,t,i){let s=1,r=n[0];for(;r!==void 0&&r[i]===void 0;)r=n[s++];if(r===void 0)return;let o=r[i];if(o!==void 0)if(Array.isArray(o))do o=r[i],o!==void 0&&(e.push(r.time),t.push.apply(t,o)),r=n[s++];while(r!==void 0);else if(o.toArray!==void 0)do o=r[i],o!==void 0&&(e.push(r.time),o.toArray(t,t.length)),r=n[s++];while(r!==void 0);else do o=r[i],o!==void 0&&(e.push(r.time),t.push(o)),r=n[s++];while(r!==void 0)}var Bi=class{constructor(e,t,i,s){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=s!==void 0?s:new t.constructor(i),this.sampleValues=t,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(e){let t=this.parameterPositions,i=this._cachedIndex,s=t[i],r=t[i-1];e:{t:{let o;n:{i:if(!(e<s)){for(let a=i+2;;){if(s===void 0){if(e<r)break i;return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}if(i===a)break;if(r=s,s=t[++i],e<s)break t}o=t.length;break n}if(!(e>=r)){let a=t[1];e<a&&(i=2,r=a);for(let l=i-2;;){if(r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(i===l)break;if(s=r,r=t[--i-1],e>=r)break t}o=i,i=0;break n}break e}for(;i<o;){let a=i+o>>>1;e<t[a]?o=a:i=a+1}if(s=t[i],r=t[i-1],r===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(s===void 0)return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}this._cachedIndex=i,this.intervalChanged_(i,r,s)}return this.interpolate_(i,r,e,s)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){let t=this.resultBuffer,i=this.sampleValues,s=this.valueSize,r=e*s;for(let o=0;o!==s;++o)t[o]=i[r+o];return t}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}},Lh=class extends Bi{constructor(e,t,i,s){super(e,t,i,s),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:fp,endingEnd:fp}}intervalChanged_(e,t,i){let s=this.parameterPositions,r=e-2,o=e+1,a=s[r],l=s[o];if(a===void 0)switch(this.getSettings_().endingStart){case dp:r=e,a=2*t-i;break;case Ap:r=s.length-2,a=t+s[r]-s[r+1];break;default:r=e,a=i}if(l===void 0)switch(this.getSettings_().endingEnd){case dp:o=e,l=2*i-t;break;case Ap:o=1,l=i+s[1]-s[0];break;default:o=e-1,l=t}let c=(i-t)*.5,h=this.valueSize;this._weightPrev=c/(t-a),this._weightNext=c/(l-i),this._offsetPrev=r*h,this._offsetNext=o*h}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=e*a,c=l-a,h=this._offsetPrev,f=this._offsetNext,u=this._weightPrev,d=this._weightNext,g=(i-t)/(s-t),m=g*g,p=m*g,A=-u*p+2*u*m-u*g,x=(1+u)*p+(-1.5-2*u)*m+(-.5+u)*g+1,_=(-1-d)*p+(1.5+d)*m+.5*g,v=d*p-d*m;for(let y=0;y!==a;++y)r[y]=A*o[h+y]+x*o[c+y]+_*o[l+y]+v*o[f+y];return r}},Fh=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=e*a,c=l-a,h=(i-t)/(s-t),f=1-h;for(let u=0;u!==a;++u)r[u]=o[c+u]*f+o[l+u]*h;return r}},Ph=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}interpolate_(e){return this.copySampleValue_(e-1)}},xn=class{constructor(e,t,i,s){if(e===void 0)throw new Error("THREE.KeyframeTrack: track name is undefined");if(t===void 0||t.length===0)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=jo(t,this.TimeBufferType),this.values=jo(i,this.ValueBufferType),this.setInterpolation(s||this.DefaultInterpolation)}static toJSON(e){let t=e.constructor,i;if(t.toJSON!==this.toJSON)i=t.toJSON(e);else{i={name:e.name,times:jo(e.times,Array),values:jo(e.values,Array)};let s=e.getInterpolation();s!==e.DefaultInterpolation&&(i.interpolation=s)}return i.type=e.ValueTypeName,i}InterpolantFactoryMethodDiscrete(e){return new Ph(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new Fh(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new Lh(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case Zs:t=this.InterpolantFactoryMethodDiscrete;break;case rs:t=this.InterpolantFactoryMethodLinear;break;case Ql:t=this.InterpolantFactoryMethodSmooth;break}if(t===void 0){let i="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(this.createInterpolant===void 0)if(e!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(i);return console.warn("THREE.KeyframeTrack:",i),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return Zs;case this.InterpolantFactoryMethodLinear:return rs;case this.InterpolantFactoryMethodSmooth:return Ql}}getValueSize(){return this.values.length/this.times.length}shift(e){if(e!==0){let t=this.times;for(let i=0,s=t.length;i!==s;++i)t[i]+=e}return this}scale(e){if(e!==1){let t=this.times;for(let i=0,s=t.length;i!==s;++i)t[i]*=e}return this}trim(e,t){let i=this.times,s=i.length,r=0,o=s-1;for(;r!==s&&i[r]<e;)++r;for(;o!==-1&&i[o]>t;)--o;if(++o,r!==0||o!==s){r>=o&&(o=Math.max(o,1),r=o-1);let a=this.getValueSize();this.times=Si(i,r,o),this.values=Si(this.values,r*a,o*a)}return this}validate(){let e=!0,t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);let i=this.times,s=this.values,r=i.length;r===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let o=null;for(let a=0;a!==r;a++){let l=i[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),e=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),e=!1;break}o=l}if(s!==void 0&&H0(s))for(let a=0,l=s.length;a!==l;++a){let c=s[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),e=!1;break}}return e}optimize(){let e=Si(this.times),t=Si(this.values),i=this.getValueSize(),s=this.getInterpolation()===Ql,r=e.length-1,o=1;for(let a=1;a<r;++a){let l=!1,c=e[a],h=e[a+1];if(c!==h&&(a!==1||c!==e[0]))if(s)l=!0;else{let f=a*i,u=f-i,d=f+i;for(let g=0;g!==i;++g){let m=t[f+g];if(m!==t[u+g]||m!==t[d+g]){l=!0;break}}}if(l){if(a!==o){e[o]=e[a];let f=a*i,u=o*i;for(let d=0;d!==i;++d)t[u+d]=t[f+d]}++o}}if(r>0){e[o]=e[r];for(let a=r*i,l=o*i,c=0;c!==i;++c)t[l+c]=t[a+c];++o}return o!==e.length?(this.times=Si(e,0,o),this.values=Si(t,0,o*i)):(this.times=e,this.values=t),this}clone(){let e=Si(this.times,0),t=Si(this.values,0),i=this.constructor,s=new i(this.name,e,t);return s.createInterpolant=this.createInterpolant,s}};xn.prototype.TimeBufferType=Float32Array;xn.prototype.ValueBufferType=Float32Array;xn.prototype.DefaultInterpolation=rs;var Ri=class extends xn{};Ri.prototype.ValueTypeName="bool";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Zs;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;var Sc=class extends xn{};Sc.prototype.ValueTypeName="color";var oi=class extends xn{};oi.prototype.ValueTypeName="number";var Uh=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(i-t)/(s-t),c=e*a;for(let h=c+a;c!==h;c+=4)Xt.slerpFlat(r,0,o,c-a,o,c,l);return r}},Wn=class extends xn{InterpolantFactoryMethodLinear(e){return new Uh(this.times,this.values,this.getValueSize(),e)}};Wn.prototype.ValueTypeName="quaternion";Wn.prototype.DefaultInterpolation=rs;Wn.prototype.InterpolantFactoryMethodSmooth=void 0;var Di=class extends xn{};Di.prototype.ValueTypeName="string";Di.prototype.ValueBufferType=Array;Di.prototype.DefaultInterpolation=Zs;Di.prototype.InterpolantFactoryMethodLinear=void 0;Di.prototype.InterpolantFactoryMethodSmooth=void 0;var ci=class extends xn{};ci.prototype.ValueTypeName="vector";var bc=class{constructor(e,t=-1,i,s=Pv){this.name=e,this.tracks=i,this.duration=t,this.blendMode=s,this.uuid=Ln(),this.duration<0&&this.resetDuration()}static parse(e){let t=[],i=e.tracks,s=1/(e.fps||1);for(let o=0,a=i.length;o!==a;++o)t.push(ob(i[o]).scale(s));let r=new this(e.name,e.duration,t,e.blendMode);return r.uuid=e.uuid,r}static toJSON(e){let t=[],i=e.tracks,s={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let r=0,o=i.length;r!==o;++r)t.push(xn.toJSON(i[r]));return s}static CreateFromMorphTargetSequence(e,t,i,s){let r=t.length,o=[];for(let a=0;a<r;a++){let l=[],c=[];l.push((a+r-1)%r,a,(a+1)%r),c.push(0,1,0);let h=rb(l);l=A0(l,1,h),c=A0(c,1,h),!s&&l[0]===0&&(l.push(r),c.push(c[0])),o.push(new oi(".morphTargetInfluences["+t[a].name+"]",l,c).scale(1/i))}return new this(e,-1,o)}static findByName(e,t){let i=e;if(!Array.isArray(e)){let s=e;i=s.geometry&&s.geometry.animations||s.animations}for(let s=0;s<i.length;s++)if(i[s].name===t)return i[s];return null}static CreateClipsFromMorphTargetSequences(e,t,i){let s={},r=/^([\w-]*?)([\d]+)$/;for(let a=0,l=e.length;a<l;a++){let c=e[a],h=c.name.match(r);if(h&&h.length>1){let f=h[1],u=s[f];u||(s[f]=u=[]),u.push(c)}}let o=[];for(let a in s)o.push(this.CreateFromMorphTargetSequence(a,s[a],t,i));return o}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;let i=function(f,u,d,g,m){if(d.length!==0){let p=[],A=[];z0(d,p,A,g),p.length!==0&&m.push(new f(u,p,A))}},s=[],r=e.name||"default",o=e.fps||30,a=e.blendMode,l=e.length||-1,c=e.hierarchy||[];for(let f=0;f<c.length;f++){let u=c[f].keys;if(!(!u||u.length===0))if(u[0].morphTargets){let d={},g;for(g=0;g<u.length;g++)if(u[g].morphTargets)for(let m=0;m<u[g].morphTargets.length;m++)d[u[g].morphTargets[m]]=-1;for(let m in d){let p=[],A=[];for(let x=0;x!==u[g].morphTargets.length;++x){let _=u[g];p.push(_.time),A.push(_.morphTarget===m?1:0)}s.push(new oi(".morphTargetInfluence["+m+"]",p,A))}l=d.length*o}else{let d=".bones["+t[f].name+"]";i(ci,d+".position",u,"pos",s),i(Wn,d+".quaternion",u,"rot",s),i(ci,d+".scale",u,"scl",s)}}return s.length===0?null:new this(r,l,s,a)}resetDuration(){let e=this.tracks,t=0;for(let i=0,s=e.length;i!==s;++i){let r=this.tracks[i];t=Math.max(t,r.times[r.times.length-1])}return this.duration=t,this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=!0;for(let t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){let e=[];for(let t=0;t<this.tracks.length;t++)e.push(this.tracks[t].clone());return new this.constructor(this.name,this.duration,e,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}};function ab(n){switch(n.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return oi;case"vector":case"vector2":case"vector3":case"vector4":return ci;case"color":return Sc;case"quaternion":return Wn;case"bool":case"boolean":return Ri;case"string":return Di}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+n)}function ob(n){if(n.type===void 0)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");let e=ab(n.type);if(n.times===void 0){let t=[],i=[];z0(n.keys,t,i,"value"),n.times=t,n.values=i}return e.parse!==void 0?e.parse(n):new e(n.name,n.times,n.values,n.interpolation)}var ar={enabled:!1,files:{},add:function(n,e){this.enabled!==!1&&(this.files[n]=e)},get:function(n){if(this.enabled!==!1)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}},ga=class{constructor(e,t,i){let s=this,r=!1,o=0,a=0,l,c=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=i,this.itemStart=function(h){a++,r===!1&&s.onStart!==void 0&&s.onStart(h,o,a),r=!0},this.itemEnd=function(h){o++,s.onProgress!==void 0&&s.onProgress(h,o,a),o===a&&(r=!1,s.onLoad!==void 0&&s.onLoad())},this.itemError=function(h){s.onError!==void 0&&s.onError(h)},this.resolveURL=function(h){return l?l(h):h},this.setURLModifier=function(h){return l=h,this},this.addHandler=function(h,f){return c.push(h,f),this},this.removeHandler=function(h){let f=c.indexOf(h);return f!==-1&&c.splice(f,2),this},this.getHandler=function(h){for(let f=0,u=c.length;f<u;f+=2){let d=c[f],g=c[f+1];if(d.global&&(d.lastIndex=0),d.test(h))return g}return null}}},cb=new ga,vn=class{constructor(e){this.manager=e!==void 0?e:cb,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){let i=this;return new Promise(function(s,r){i.load(e,s,t,r)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}};vn.DEFAULT_MATERIAL_NAME="__DEFAULT";var ii={},Nh=class extends Error{constructor(e,t){super(e),this.response=t}},Kn=class extends vn{constructor(e){super(e)}load(e,t,i,s){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let r=ar.get(e);if(r!==void 0)return this.manager.itemStart(e),setTimeout(()=>{t&&t(r),this.manager.itemEnd(e)},0),r;if(ii[e]!==void 0){ii[e].push({onLoad:t,onProgress:i,onError:s});return}ii[e]=[],ii[e].push({onLoad:t,onProgress:i,onError:s});let o=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream>"u"||c.body===void 0||c.body.getReader===void 0)return c;let h=ii[e],f=c.body.getReader(),u=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),d=u?parseInt(u):0,g=d!==0,m=0,p=new ReadableStream({start(A){x();function x(){f.read().then(({done:_,value:v})=>{if(_)A.close();else{m+=v.byteLength;let y=new ProgressEvent("progress",{lengthComputable:g,loaded:m,total:d});for(let S=0,C=h.length;S<C;S++){let M=h[S];M.onProgress&&M.onProgress(y)}A.enqueue(v),x()}})}}});return new Response(p)}else throw new Nh(`fetch for "${c.url}" responded with ${c.status}: ${c.statusText}`,c)}).then(c=>{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{let f=/charset="?([^;"\s]*)"?/i.exec(a),u=f&&f[1]?f[1].toLowerCase():void 0,d=new TextDecoder(u);return c.arrayBuffer().then(g=>d.decode(g))}}}).then(c=>{ar.add(e,c);let h=ii[e];delete ii[e];for(let f=0,u=h.length;f<u;f++){let d=h[f];d.onLoad&&d.onLoad(c)}}).catch(c=>{let h=ii[e];if(h===void 0)throw this.manager.itemError(e),c;delete ii[e];for(let f=0,u=h.length;f<u;f++){let d=h[f];d.onError&&d.onError(c)}this.manager.itemError(e)}).finally(()=>{this.manager.itemEnd(e)}),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}};var Oh=class extends vn{constructor(e){super(e)}load(e,t,i,s){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let r=this,o=ar.get(e);if(o!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(o),r.manager.itemEnd(e)},0),o;let a=aa("img");function l(){h(),ar.add(e,this),t&&t(this),r.manager.itemEnd(e)}function c(f){h(),s&&s(f),r.manager.itemError(e),r.manager.itemEnd(e)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),e.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),r.manager.itemStart(e),a.src=e,a}};var Ic=class extends vn{constructor(e){super(e)}load(e,t,i,s){let r=this,o=new tr,a=new Kn(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(r.withCredentials),a.load(e,function(l){let c;try{c=r.parse(l)}catch(h){if(s!==void 0)s(h);else{console.error(h);return}}if(!c)return s();c.image!==void 0?o.image=c.image:c.data!==void 0&&(o.image.width=c.width,o.image.height=c.height,o.image.data=c.data),o.wrapS=c.wrapS!==void 0?c.wrapS:kt,o.wrapT=c.wrapT!==void 0?c.wrapT:kt,o.magFilter=c.magFilter!==void 0?c.magFilter:ut,o.minFilter=c.minFilter!==void 0?c.minFilter:ut,o.anisotropy=c.anisotropy!==void 0?c.anisotropy:1,c.colorSpace!==void 0?o.colorSpace=c.colorSpace:c.encoding!==void 0&&(o.encoding=c.encoding),c.flipY!==void 0&&(o.flipY=c.flipY),c.format!==void 0&&(o.format=c.format),c.type!==void 0&&(o.type=c.type),c.mipmaps!==void 0&&(o.mipmaps=c.mipmaps,o.minFilter=Fn),c.mipmapCount===1&&(o.minFilter=ut),c.generateMipmaps!==void 0&&(o.generateMipmaps=c.generateMipmaps),o.needsUpdate=!0,t&&t(o,c)},i,s),o}},wc=class extends vn{constructor(e){super(e)}load(e,t,i,s){let r=new mt,o=new Oh(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(e,function(a){r.image=a,r.needsUpdate=!0,t!==void 0&&t(r)},i,s),r}},ma=class extends ct{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new ve(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){let t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,this.groundColor!==void 0&&(t.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(t.object.distance=this.distance),this.angle!==void 0&&(t.object.angle=this.angle),this.decay!==void 0&&(t.object.decay=this.decay),this.penumbra!==void 0&&(t.object.penumbra=this.penumbra),this.shadow!==void 0&&(t.object.shadow=this.shadow.toJSON()),t}};var uh=new Oe,p0=new Q,g0=new Q,_a=class{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Ie(512,512),this.map=null,this.mapPass=null,this.matrix=new Oe,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new ca,this._frameExtents=new Ie(1,1),this._viewportCount=1,this._viewports=[new tt(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){let t=this.camera,i=this.matrix;p0.setFromMatrixPosition(e.matrixWorld),t.position.copy(p0),g0.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(g0),t.updateMatrixWorld(),uh.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(uh),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(uh)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){let e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}},kh=class extends _a{constructor(){super(new Ct(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){let t=this.camera,i=js*2*e.angle*this.focus,s=this.mapSize.width/this.mapSize.height,r=e.distance||t.far;(i!==t.fov||s!==t.aspect||r!==t.far)&&(t.fov=i,t.aspect=s,t.far=r,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}},Mc=class extends ma{constructor(e,t,i=0,s=Math.PI/3,r=0,o=2){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ct.DEFAULT_UP),this.updateMatrix(),this.target=new ct,this.distance=i,this.angle=s,this.penumbra=r,this.decay=o,this.map=null,this.shadow=new kh}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}},m0=new Oe,Xr=new Q,fh=new Q,Qh=class extends _a{constructor(){super(new Ct(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Ie(4,2),this._viewportCount=6,this._viewports=[new tt(2,1,1,1),new tt(0,1,1,1),new tt(3,1,1,1),new tt(1,1,1,1),new tt(3,0,1,1),new tt(1,0,1,1)],this._cubeDirections=[new Q(1,0,0),new Q(-1,0,0),new Q(0,0,1),new Q(0,0,-1),new Q(0,1,0),new Q(0,-1,0)],this._cubeUps=[new Q(0,1,0),new Q(0,1,0),new Q(0,1,0),new Q(0,1,0),new Q(0,0,1),new Q(0,0,-1)]}updateMatrices(e,t=0){let i=this.camera,s=this.matrix,r=e.distance||i.far;r!==i.far&&(i.far=r,i.updateProjectionMatrix()),Xr.setFromMatrixPosition(e.matrixWorld),i.position.copy(Xr),fh.copy(i.position),fh.add(this._cubeDirections[t]),i.up.copy(this._cubeUps[t]),i.lookAt(fh),i.updateMatrixWorld(),s.makeTranslation(-Xr.x,-Xr.y,-Xr.z),m0.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(m0)}},Tc=class extends ma{constructor(e,t,i=0,s=2){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=i,this.decay=s,this.shadow=new Qh}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}},Gh=class extends _a{constructor(){super(new Ti(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},Bc=class extends ma{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ct.DEFAULT_UP),this.updateMatrix(),this.target=new ct,this.shadow=new Gh}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}};var or=class{static decodeText(e){if(typeof TextDecoder<"u")return new TextDecoder().decode(e);let t="";for(let i=0,s=e.length;i<s;i++)t+=String.fromCharCode(e[i]);try{return decodeURIComponent(escape(t))}catch{return t}}static extractUrlBase(e){let t=e.lastIndexOf("/");return t===-1?"./":e.slice(0,t+1)}static resolveURL(e,t){return typeof e!="string"||e===""?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}};var Rc=class extends vn{constructor(e){super(e),this.isImageBitmapLoader=!0,typeof createImageBitmap>"u"&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),typeof fetch>"u"&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,s){e===void 0&&(e=""),this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);let r=this,o=ar.get(e);if(o!==void 0)return r.manager.itemStart(e),setTimeout(function(){t&&t(o),r.manager.itemEnd(e)},0),o;let a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader,fetch(e,a).then(function(l){return l.blob()}).then(function(l){return createImageBitmap(l,Object.assign(r.options,{colorSpaceConversion:"none"}))}).then(function(l){ar.add(e,l),t&&t(l),r.manager.itemEnd(e)}).catch(function(l){s&&s(l),r.manager.itemError(e),r.manager.itemEnd(e)}),r.manager.itemStart(e)}};var Jh="\\[\\]\\.:\\/",lb=new RegExp("["+Jh+"]","g"),Zh="[^"+Jh+"]",hb="[^"+Jh.replace("\\.","")+"]",ub=/((?:WC+[\/:])*)/.source.replace("WC",Zh),fb=/(WCOD+)?/.source.replace("WCOD",hb),db=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Zh),Ab=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Zh),pb=new RegExp("^"+ub+fb+db+Ab+"$"),gb=["material","materials","bones","map"],Hh=class{constructor(e,t,i){let s=i||Je.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,s)}getValue(e,t){this.bind();let i=this._targetGroup.nCachedObjects_,s=this._bindings[i];s!==void 0&&s.getValue(e,t)}setValue(e,t){let i=this._bindings;for(let s=this._targetGroup.nCachedObjects_,r=i.length;s!==r;++s)i[s].setValue(e,t)}bind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){let e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}},Je=class{constructor(e,t,i){this.path=t,this.parsedPath=i||Je.parseTrackName(t),this.node=Je.findNode(e,this.parsedPath.nodeName),this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new Je.Composite(e,t,i):new Je(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(lb,"")}static parseTrackName(e){let t=pb.exec(e);if(t===null)throw new Error("PropertyBinding: Cannot parse trackName: "+e);let i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},s=i.nodeName&&i.nodeName.lastIndexOf(".");if(s!==void 0&&s!==-1){let r=i.nodeName.substring(s+1);gb.indexOf(r)!==-1&&(i.nodeName=i.nodeName.substring(0,s),i.objectName=r)}if(i.propertyName===null||i.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(t===void 0||t===""||t==="."||t===-1||t===e.name||t===e.uuid)return e;if(e.skeleton){let i=e.skeleton.getBoneByName(t);if(i!==void 0)return i}if(e.children){let i=function(r){for(let o=0;o<r.length;o++){let a=r[o];if(a.name===t||a.uuid===t)return a;let l=i(a.children);if(l)return l}return null},s=i(e.children);if(s)return s}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName]}_getValue_array(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)e[t++]=i[s]}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t)}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t]}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)i[s]=e[t++]}_setValue_array_setNeedsUpdate(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)i[s]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){let i=this.resolvedProperty;for(let s=0,r=i.length;s!==r;++s)i[s]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t]}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t)}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(e,t){this.bind(),this.getValue(e,t)}_setValue_unbound(e,t){this.bind(),this.setValue(e,t)}bind(){let e=this.node,t=this.parsedPath,i=t.objectName,s=t.propertyName,r=t.propertyIndex;if(e||(e=Je.findNode(this.rootNode,t.nodeName),this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e){console.warn("THREE.PropertyBinding: No target node found for track: "+this.path+".");return}if(i){let c=t.objectIndex;switch(i){case"materials":if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.materials){console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);return}e=e.material.materials;break;case"bones":if(!e.skeleton){console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);return}e=e.skeleton.bones;for(let h=0;h<e.length;h++)if(e[h].name===c){c=h;break}break;case"map":if("map"in e){e=e.map;break}if(!e.material){console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);return}if(!e.material.map){console.error("THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);return}e=e.material.map;break;default:if(e[i]===void 0){console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);return}e=e[i]}if(c!==void 0){if(e[c]===void 0){console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);return}e=e[c]}}let o=e[s];if(o===void 0){let c=t.nodeName;console.error("THREE.PropertyBinding: Trying to update property for track: "+c+"."+s+" but it wasn't found.",e);return}let a=this.Versioning.None;this.targetObject=e,e.needsUpdate!==void 0?a=this.Versioning.NeedsUpdate:e.matrixWorldNeedsUpdate!==void 0&&(a=this.Versioning.MatrixWorldNeedsUpdate);let l=this.BindingType.Direct;if(r!==void 0){if(s==="morphTargetInfluences"){if(!e.geometry){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);return}if(!e.geometry.morphAttributes){console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);return}e.morphTargetDictionary[r]!==void 0&&(r=e.morphTargetDictionary[r])}l=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=r}else o.fromArray!==void 0&&o.toArray!==void 0?(l=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(l=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=s;this.getValue=this.GetterByBindingType[l],this.setValue=this.SetterByBindingTypeAndVersioning[l][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}};Je.Composite=Hh;Je.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Je.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Je.prototype.GetterByBindingType=[Je.prototype._getValue_direct,Je.prototype._getValue_array,Je.prototype._getValue_arrayElement,Je.prototype._getValue_toArray];Je.prototype.SetterByBindingTypeAndVersioning=[[Je.prototype._setValue_direct,Je.prototype._setValue_direct_setNeedsUpdate,Je.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Je.prototype._setValue_array,Je.prototype._setValue_array_setNeedsUpdate,Je.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Je.prototype._setValue_arrayElement,Je.prototype._setValue_arrayElement_setNeedsUpdate,Je.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Je.prototype._setValue_fromArray,Je.prototype._setValue_fromArray_setNeedsUpdate,Je.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var oI=new Float32Array(1);var xa=class{constructor(e=1,t=0,i=0){return this.radius=e,this.phi=t,this.theta=i,this}set(e,t,i){return this.radius=e,this.phi=t,this.theta=i,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,i){return this.radius=Math.sqrt(e*e+t*t+i*i),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,i),this.phi=Math.acos(Rt(t/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}};typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:zh}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=zh);var V0={type:"change"},jh={type:"start"},W0={type:"end"},Uc=new Mi,K0=new Rn,_b=Math.cos(70*Fc.DEG2RAD),Nc=class extends Vn{constructor(e,t){super(),this.object=e,this.domElement=t,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Q,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:ls.ROTATE,MIDDLE:ls.DOLLY,RIGHT:ls.PAN},this.touches={ONE:hs.ROTATE,TWO:hs.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return a.phi},this.getAzimuthalAngle=function(){return a.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(P){P.addEventListener("keydown",I),this._domElementKeyEvents=P},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",I),this._domElementKeyEvents=null},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(V0),i.update(),r=s.NONE},this.update=function(){let P=new Q,ee=new Xt().setFromUnitVectors(e.up,new Q(0,1,0)),ge=ee.clone().invert(),ue=new Q,Ae=new Xt,Re=new Q,He=2*Math.PI;return function(){let fe=i.object.position;P.copy(fe).sub(i.target),P.applyQuaternion(ee),a.setFromVector3(P),i.autoRotate&&r===s.NONE&&w(E()),i.enableDamping?(a.theta+=l.theta*i.dampingFactor,a.phi+=l.phi*i.dampingFactor):(a.theta+=l.theta,a.phi+=l.phi);let J=i.minAzimuthAngle,re=i.maxAzimuthAngle;isFinite(J)&&isFinite(re)&&(J<-Math.PI?J+=He:J>Math.PI&&(J-=He),re<-Math.PI?re+=He:re>Math.PI&&(re-=He),J<=re?a.theta=Math.max(J,Math.min(re,a.theta)):a.theta=a.theta>(J+re)/2?Math.max(J,a.theta):Math.min(re,a.theta)),a.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,a.phi)),a.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(h,i.dampingFactor):i.target.add(h),i.zoomToCursor&&S||i.object.isOrthographicCamera?a.radius=F(a.radius):a.radius=F(a.radius*c),P.setFromSpherical(a),P.applyQuaternion(ge),fe.copy(i.target).add(P),i.object.lookAt(i.target),i.enableDamping===!0?(l.theta*=1-i.dampingFactor,l.phi*=1-i.dampingFactor,h.multiplyScalar(1-i.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let de=!1;if(i.zoomToCursor&&S){let Ne=null;if(i.object.isPerspectiveCamera){let Ze=P.length();Ne=F(Ze*c);let rt=Ze-Ne;i.object.position.addScaledVector(v,rt),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){let Ze=new Q(y.x,y.y,0);Ze.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),de=!0;let rt=new Q(y.x,y.y,0);rt.unproject(i.object),i.object.position.sub(rt).add(Ze),i.object.updateMatrixWorld(),Ne=P.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;Ne!==null&&(this.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(Ne).add(i.object.position):(Uc.origin.copy(i.object.position),Uc.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(Uc.direction))<_b?e.lookAt(i.target):(K0.setFromNormalAndCoplanarPoint(i.object.up,i.target),Uc.intersectPlane(K0,i.target))))}else i.object.isOrthographicCamera&&(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),de=!0);return c=1,S=!1,de||ue.distanceToSquared(i.object.position)>o||8*(1-Ae.dot(i.object.quaternion))>o||Re.distanceToSquared(i.target)>0?(i.dispatchEvent(V0),ue.copy(i.object.position),Ae.copy(i.object.quaternion),Re.copy(i.target),de=!1,!0):!1}}(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",se),i.domElement.removeEventListener("pointerdown",Pe),i.domElement.removeEventListener("pointercancel",Be),i.domElement.removeEventListener("wheel",B),i.domElement.removeEventListener("pointermove",ye),i.domElement.removeEventListener("pointerup",Be),i._domElementKeyEvents!==null&&(i._domElementKeyEvents.removeEventListener("keydown",I),i._domElementKeyEvents=null)};let i=this,s={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},r=s.NONE,o=1e-6,a=new xa,l=new xa,c=1,h=new Q,f=new Ie,u=new Ie,d=new Ie,g=new Ie,m=new Ie,p=new Ie,A=new Ie,x=new Ie,_=new Ie,v=new Q,y=new Ie,S=!1,C=[],M={};function E(){return 2*Math.PI/60/60*i.autoRotateSpeed}function b(){return Math.pow(.95,i.zoomSpeed)}function w(P){l.theta-=P}function G(P){l.phi-=P}let U=function(){let P=new Q;return function(ge,ue){P.setFromMatrixColumn(ue,0),P.multiplyScalar(-ge),h.add(P)}}(),D=function(){let P=new Q;return function(ge,ue){i.screenSpacePanning===!0?P.setFromMatrixColumn(ue,1):(P.setFromMatrixColumn(ue,0),P.crossVectors(i.object.up,P)),P.multiplyScalar(ge),h.add(P)}}(),O=function(){let P=new Q;return function(ge,ue){let Ae=i.domElement;if(i.object.isPerspectiveCamera){let Re=i.object.position;P.copy(Re).sub(i.target);let He=P.length();He*=Math.tan(i.object.fov/2*Math.PI/180),U(2*ge*He/Ae.clientHeight,i.object.matrix),D(2*ue*He/Ae.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(U(ge*(i.object.right-i.object.left)/i.object.zoom/Ae.clientWidth,i.object.matrix),D(ue*(i.object.top-i.object.bottom)/i.object.zoom/Ae.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}}();function K(P){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c/=P:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function H(P){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c*=P:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function z(P){if(!i.zoomToCursor)return;S=!0;let ee=i.domElement.getBoundingClientRect(),ge=P.clientX-ee.left,ue=P.clientY-ee.top,Ae=ee.width,Re=ee.height;y.x=ge/Ae*2-1,y.y=-(ue/Re)*2+1,v.set(y.x,y.y,1).unproject(e).sub(e.position).normalize()}function F(P){return Math.max(i.minDistance,Math.min(i.maxDistance,P))}function N(P){f.set(P.clientX,P.clientY)}function R(P){z(P),A.set(P.clientX,P.clientY)}function L(P){g.set(P.clientX,P.clientY)}function ne(P){u.set(P.clientX,P.clientY),d.subVectors(u,f).multiplyScalar(i.rotateSpeed);let ee=i.domElement;w(2*Math.PI*d.x/ee.clientHeight),G(2*Math.PI*d.y/ee.clientHeight),f.copy(u),i.update()}function ie(P){x.set(P.clientX,P.clientY),_.subVectors(x,A),_.y>0?K(b()):_.y<0&&H(b()),A.copy(x),i.update()}function he(P){m.set(P.clientX,P.clientY),p.subVectors(m,g).multiplyScalar(i.panSpeed),O(p.x,p.y),g.copy(m),i.update()}function ae(P){z(P),P.deltaY<0?H(b()):P.deltaY>0&&K(b()),i.update()}function we(P){let ee=!1;switch(P.code){case i.keys.UP:P.ctrlKey||P.metaKey||P.shiftKey?G(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(0,i.keyPanSpeed),ee=!0;break;case i.keys.BOTTOM:P.ctrlKey||P.metaKey||P.shiftKey?G(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(0,-i.keyPanSpeed),ee=!0;break;case i.keys.LEFT:P.ctrlKey||P.metaKey||P.shiftKey?w(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(i.keyPanSpeed,0),ee=!0;break;case i.keys.RIGHT:P.ctrlKey||P.metaKey||P.shiftKey?w(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(-i.keyPanSpeed,0),ee=!0;break}ee&&(P.preventDefault(),i.update())}function xe(){if(C.length===1)f.set(C[0].pageX,C[0].pageY);else{let P=.5*(C[0].pageX+C[1].pageX),ee=.5*(C[0].pageY+C[1].pageY);f.set(P,ee)}}function Ve(){if(C.length===1)g.set(C[0].pageX,C[0].pageY);else{let P=.5*(C[0].pageX+C[1].pageX),ee=.5*(C[0].pageY+C[1].pageY);g.set(P,ee)}}function ft(){let P=C[0].pageX-C[1].pageX,ee=C[0].pageY-C[1].pageY,ge=Math.sqrt(P*P+ee*ee);A.set(0,ge)}function Ce(){i.enableZoom&&ft(),i.enablePan&&Ve()}function V(){i.enableZoom&&ft(),i.enableRotate&&xe()}function lt(P){if(C.length==1)u.set(P.pageX,P.pageY);else{let ge=Z(P),ue=.5*(P.pageX+ge.x),Ae=.5*(P.pageY+ge.y);u.set(ue,Ae)}d.subVectors(u,f).multiplyScalar(i.rotateSpeed);let ee=i.domElement;w(2*Math.PI*d.x/ee.clientHeight),G(2*Math.PI*d.y/ee.clientHeight),f.copy(u)}function Ee(P){if(C.length===1)m.set(P.pageX,P.pageY);else{let ee=Z(P),ge=.5*(P.pageX+ee.x),ue=.5*(P.pageY+ee.y);m.set(ge,ue)}p.subVectors(m,g).multiplyScalar(i.panSpeed),O(p.x,p.y),g.copy(m)}function Te(P){let ee=Z(P),ge=P.pageX-ee.x,ue=P.pageY-ee.y,Ae=Math.sqrt(ge*ge+ue*ue);x.set(0,Ae),_.set(0,Math.pow(x.y/A.y,i.zoomSpeed)),K(_.y),A.copy(x)}function Se(P){i.enableZoom&&Te(P),i.enablePan&&Ee(P)}function $e(P){i.enableZoom&&Te(P),i.enableRotate&&lt(P)}function Pe(P){i.enabled!==!1&&(C.length===0&&(i.domElement.setPointerCapture(P.pointerId),i.domElement.addEventListener("pointermove",ye),i.domElement.addEventListener("pointerup",Be)),ce(P),P.pointerType==="touch"?X(P):nt(P))}function ye(P){i.enabled!==!1&&(P.pointerType==="touch"?le(P):dt(P))}function Be(P){me(P),C.length===0&&(i.domElement.releasePointerCapture(P.pointerId),i.domElement.removeEventListener("pointermove",ye),i.domElement.removeEventListener("pointerup",Be)),i.dispatchEvent(W0),r=s.NONE}function nt(P){let ee;switch(P.button){case 0:ee=i.mouseButtons.LEFT;break;case 1:ee=i.mouseButtons.MIDDLE;break;case 2:ee=i.mouseButtons.RIGHT;break;default:ee=-1}switch(ee){case ls.DOLLY:if(i.enableZoom===!1)return;R(P),r=s.DOLLY;break;case ls.ROTATE:if(P.ctrlKey||P.metaKey||P.shiftKey){if(i.enablePan===!1)return;L(P),r=s.PAN}else{if(i.enableRotate===!1)return;N(P),r=s.ROTATE}break;case ls.PAN:if(P.ctrlKey||P.metaKey||P.shiftKey){if(i.enableRotate===!1)return;N(P),r=s.ROTATE}else{if(i.enablePan===!1)return;L(P),r=s.PAN}break;default:r=s.NONE}r!==s.NONE&&i.dispatchEvent(jh)}function dt(P){switch(r){case s.ROTATE:if(i.enableRotate===!1)return;ne(P);break;case s.DOLLY:if(i.enableZoom===!1)return;ie(P);break;case s.PAN:if(i.enablePan===!1)return;he(P);break}}function B(P){i.enabled===!1||i.enableZoom===!1||r!==s.NONE||(P.preventDefault(),i.dispatchEvent(jh),ae(P),i.dispatchEvent(W0))}function I(P){i.enabled===!1||i.enablePan===!1||we(P)}function X(P){switch(oe(P),C.length){case 1:switch(i.touches.ONE){case hs.ROTATE:if(i.enableRotate===!1)return;xe(),r=s.TOUCH_ROTATE;break;case hs.PAN:if(i.enablePan===!1)return;Ve(),r=s.TOUCH_PAN;break;default:r=s.NONE}break;case 2:switch(i.touches.TWO){case hs.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Ce(),r=s.TOUCH_DOLLY_PAN;break;case hs.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;V(),r=s.TOUCH_DOLLY_ROTATE;break;default:r=s.NONE}break;default:r=s.NONE}r!==s.NONE&&i.dispatchEvent(jh)}function le(P){switch(oe(P),r){case s.TOUCH_ROTATE:if(i.enableRotate===!1)return;lt(P),i.update();break;case s.TOUCH_PAN:if(i.enablePan===!1)return;Ee(P),i.update();break;case s.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;Se(P),i.update();break;case s.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;$e(P),i.update();break;default:r=s.NONE}}function se(P){i.enabled!==!1&&P.preventDefault()}function ce(P){C.push(P)}function me(P){delete M[P.pointerId];for(let ee=0;ee<C.length;ee++)if(C[ee].pointerId==P.pointerId){C.splice(ee,1);return}}function oe(P){let ee=M[P.pointerId];ee===void 0&&(ee=new Ie,M[P.pointerId]=ee),ee.set(P.pageX,P.pageY)}function Z(P){let ee=P.pointerId===C[0].pointerId?C[1]:C[0];return M[ee.pointerId]}i.domElement.addEventListener("contextmenu",se),i.domElement.addEventListener("pointerdown",Pe),i.domElement.addEventListener("pointercancel",Be),i.domElement.addEventListener("wheel",B,{passive:!1}),this.update()}};function $h(n,e){if(e===T0)return console.warn("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles."),n;if(e===va||e===Lc){let t=n.getIndex();if(t===null){let o=[],a=n.getAttribute("position");if(a!==void 0){for(let l=0;l<a.count;l++)o.push(l);n.setIndex(o),t=n.getIndex()}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible."),n}let i=t.count-2,s=[];if(e===va)for(let o=1;o<=i;o++)s.push(t.getX(0)),s.push(t.getX(o)),s.push(t.getX(o+1));else for(let o=0;o<i;o++)o%2===0?(s.push(t.getX(o)),s.push(t.getX(o+1)),s.push(t.getX(o+2))):(s.push(t.getX(o+2)),s.push(t.getX(o+1)),s.push(t.getX(o)));s.length/3!==i&&console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.");let r=n.clone();return r.setIndex(s),r.clearGroups(),r}else return console.error("THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:",e),n}var Oc=class extends vn{constructor(e){super(e),this.dracoLoader=null,this.ktx2Loader=null,this.meshoptDecoder=null,this.pluginCallbacks=[],this.register(function(t){return new au(t)}),this.register(function(t){return new Au(t)}),this.register(function(t){return new pu(t)}),this.register(function(t){return new gu(t)}),this.register(function(t){return new cu(t)}),this.register(function(t){return new lu(t)}),this.register(function(t){return new hu(t)}),this.register(function(t){return new uu(t)}),this.register(function(t){return new ru(t)}),this.register(function(t){return new fu(t)}),this.register(function(t){return new ou(t)}),this.register(function(t){return new du(t)}),this.register(function(t){return new iu(t)}),this.register(function(t){return new mu(t)}),this.register(function(t){return new _u(t)})}load(e,t,i,s){let r=this,o;this.resourcePath!==""?o=this.resourcePath:this.path!==""?o=this.path:o=or.extractUrlBase(e),this.manager.itemStart(e);let a=function(c){s?s(c):console.error(c),r.manager.itemError(e),r.manager.itemEnd(e)},l=new Kn(this.manager);l.setPath(this.path),l.setResponseType("arraybuffer"),l.setRequestHeader(this.requestHeader),l.setWithCredentials(this.withCredentials),l.load(e,function(c){try{r.parse(c,o,function(h){t(h),r.manager.itemEnd(e)},a)}catch(h){a(h)}},i,a)}setDRACOLoader(e){return this.dracoLoader=e,this}setDDSLoader(){throw new Error('THREE.GLTFLoader: "MSFT_texture_dds" no longer supported. Please update to "KHR_texture_basisu".')}setKTX2Loader(e){return this.ktx2Loader=e,this}setMeshoptDecoder(e){return this.meshoptDecoder=e,this}register(e){return this.pluginCallbacks.indexOf(e)===-1&&this.pluginCallbacks.push(e),this}unregister(e){return this.pluginCallbacks.indexOf(e)!==-1&&this.pluginCallbacks.splice(this.pluginCallbacks.indexOf(e),1),this}parse(e,t,i,s){let r,o={},a={},l=new TextDecoder;if(typeof e=="string")r=JSON.parse(e);else if(e instanceof ArrayBuffer)if(l.decode(new Uint8Array(e,0,4))===Z0){try{o[Ye.KHR_BINARY_GLTF]=new xu(e)}catch(f){s&&s(f);return}r=JSON.parse(o[Ye.KHR_BINARY_GLTF].content)}else r=JSON.parse(l.decode(e));else r=e;if(r.asset===void 0||r.asset.version[0]<2){s&&s(new Error("THREE.GLTFLoader: Unsupported asset. glTF versions >=2.0 are supported."));return}let c=new Iu(r,{path:t||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});c.fileLoader.setRequestHeader(this.requestHeader);for(let h=0;h<this.pluginCallbacks.length;h++){let f=this.pluginCallbacks[h](c);a[f.name]=f,o[f.name]=!0}if(r.extensionsUsed)for(let h=0;h<r.extensionsUsed.length;++h){let f=r.extensionsUsed[h],u=r.extensionsRequired||[];switch(f){case Ye.KHR_MATERIALS_UNLIT:o[f]=new su;break;case Ye.KHR_DRACO_MESH_COMPRESSION:o[f]=new vu(r,this.dracoLoader);break;case Ye.KHR_TEXTURE_TRANSFORM:o[f]=new Eu;break;case Ye.KHR_MESH_QUANTIZATION:o[f]=new yu;break;default:u.indexOf(f)>=0&&a[f]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+f+'".')}}c.setExtensions(o),c.setPlugins(a),c.parse(i,s)}parseAsync(e,t){let i=this;return new Promise(function(s,r){i.parse(e,t,s,r)})}};function xb(){let n={};return{get:function(e){return n[e]},add:function(e,t){n[e]=t},remove:function(e){delete n[e]},removeAll:function(){n={}}}}var Ye={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"},iu=class{constructor(e){this.parser=e,this.name=Ye.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){let e=this.parser,t=this.parser.json.nodes||[];for(let i=0,s=t.length;i<s;i++){let r=t[i];r.extensions&&r.extensions[this.name]&&r.extensions[this.name].light!==void 0&&e._addNodeRef(this.cache,r.extensions[this.name].light)}}_loadLight(e){let t=this.parser,i="light:"+e,s=t.cache.get(i);if(s)return s;let r=t.json,l=((r.extensions&&r.extensions[this.name]||{}).lights||[])[e],c,h=new ve(16777215);l.color!==void 0&&h.fromArray(l.color);let f=l.range!==void 0?l.range:0;switch(l.type){case"directional":c=new Bc(h),c.target.position.set(0,0,-1),c.add(c.target);break;case"point":c=new Tc(h),c.distance=f;break;case"spot":c=new Mc(h),c.distance=f,l.spot=l.spot||{},l.spot.innerConeAngle=l.spot.innerConeAngle!==void 0?l.spot.innerConeAngle:0,l.spot.outerConeAngle=l.spot.outerConeAngle!==void 0?l.spot.outerConeAngle:Math.PI/4,c.angle=l.spot.outerConeAngle,c.penumbra=1-l.spot.innerConeAngle/l.spot.outerConeAngle,c.target.position.set(0,0,-1),c.add(c.target);break;default:throw new Error("THREE.GLTFLoader: Unexpected light type: "+l.type)}return c.position.set(0,0,0),c.decay=2,Fi(c,l),l.intensity!==void 0&&(c.intensity=l.intensity),c.name=t.createUniqueName(l.name||"light_"+e),s=Promise.resolve(c),t.cache.add(i,s),s}getDependency(e,t){if(e==="light")return this._loadLight(t)}createNodeAttachment(e){let t=this,i=this.parser,r=i.json.nodes[e],a=(r.extensions&&r.extensions[this.name]||{}).light;return a===void 0?null:this._loadLight(a).then(function(l){return i._getNodeRef(t.cache,a,l)})}},su=class{constructor(){this.name=Ye.KHR_MATERIALS_UNLIT}getMaterialType(){return mn}extendParams(e,t,i){let s=[];e.color=new ve(1,1,1),e.opacity=1;let r=t.pbrMetallicRoughness;if(r){if(Array.isArray(r.baseColorFactor)){let o=r.baseColorFactor;e.color.fromArray(o),e.opacity=o[3]}r.baseColorTexture!==void 0&&s.push(i.assignTexture(e,"map",r.baseColorTexture,be))}return Promise.all(s)}},ru=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_EMISSIVE_STRENGTH}extendMaterialParams(e,t){let s=this.parser.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=s.extensions[this.name].emissiveStrength;return r!==void 0&&(t.emissiveIntensity=r),Promise.resolve()}},au=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_CLEARCOAT}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];if(o.clearcoatFactor!==void 0&&(t.clearcoat=o.clearcoatFactor),o.clearcoatTexture!==void 0&&r.push(i.assignTexture(t,"clearcoatMap",o.clearcoatTexture)),o.clearcoatRoughnessFactor!==void 0&&(t.clearcoatRoughness=o.clearcoatRoughnessFactor),o.clearcoatRoughnessTexture!==void 0&&r.push(i.assignTexture(t,"clearcoatRoughnessMap",o.clearcoatRoughnessTexture)),o.clearcoatNormalTexture!==void 0&&(r.push(i.assignTexture(t,"clearcoatNormalMap",o.clearcoatNormalTexture)),o.clearcoatNormalTexture.scale!==void 0)){let a=o.clearcoatNormalTexture.scale;t.clearcoatNormalScale=new Ie(a,a)}return Promise.all(r)}},ou=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_IRIDESCENCE}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];return o.iridescenceFactor!==void 0&&(t.iridescence=o.iridescenceFactor),o.iridescenceTexture!==void 0&&r.push(i.assignTexture(t,"iridescenceMap",o.iridescenceTexture)),o.iridescenceIor!==void 0&&(t.iridescenceIOR=o.iridescenceIor),t.iridescenceThicknessRange===void 0&&(t.iridescenceThicknessRange=[100,400]),o.iridescenceThicknessMinimum!==void 0&&(t.iridescenceThicknessRange[0]=o.iridescenceThicknessMinimum),o.iridescenceThicknessMaximum!==void 0&&(t.iridescenceThicknessRange[1]=o.iridescenceThicknessMaximum),o.iridescenceThicknessTexture!==void 0&&r.push(i.assignTexture(t,"iridescenceThicknessMap",o.iridescenceThicknessTexture)),Promise.all(r)}},cu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_SHEEN}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[];t.sheenColor=new ve(0,0,0),t.sheenRoughness=0,t.sheen=1;let o=s.extensions[this.name];return o.sheenColorFactor!==void 0&&t.sheenColor.fromArray(o.sheenColorFactor),o.sheenRoughnessFactor!==void 0&&(t.sheenRoughness=o.sheenRoughnessFactor),o.sheenColorTexture!==void 0&&r.push(i.assignTexture(t,"sheenColorMap",o.sheenColorTexture,be)),o.sheenRoughnessTexture!==void 0&&r.push(i.assignTexture(t,"sheenRoughnessMap",o.sheenRoughnessTexture)),Promise.all(r)}},lu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_TRANSMISSION}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];return o.transmissionFactor!==void 0&&(t.transmission=o.transmissionFactor),o.transmissionTexture!==void 0&&r.push(i.assignTexture(t,"transmissionMap",o.transmissionTexture)),Promise.all(r)}},hu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_VOLUME}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];t.thickness=o.thicknessFactor!==void 0?o.thicknessFactor:0,o.thicknessTexture!==void 0&&r.push(i.assignTexture(t,"thicknessMap",o.thicknessTexture)),t.attenuationDistance=o.attenuationDistance||1/0;let a=o.attenuationColor||[1,1,1];return t.attenuationColor=new ve(a[0],a[1],a[2]),Promise.all(r)}},uu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_IOR}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let s=this.parser.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=s.extensions[this.name];return t.ior=r.ior!==void 0?r.ior:1.5,Promise.resolve()}},fu=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_SPECULAR}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];t.specularIntensity=o.specularFactor!==void 0?o.specularFactor:1,o.specularTexture!==void 0&&r.push(i.assignTexture(t,"specularIntensityMap",o.specularTexture));let a=o.specularColorFactor||[1,1,1];return t.specularColor=new ve(a[0],a[1],a[2]),o.specularColorTexture!==void 0&&r.push(i.assignTexture(t,"specularColorMap",o.specularColorTexture,be)),Promise.all(r)}},du=class{constructor(e){this.parser=e,this.name=Ye.KHR_MATERIALS_ANISOTROPY}getMaterialType(e){let i=this.parser.json.materials[e];return!i.extensions||!i.extensions[this.name]?null:an}extendMaterialParams(e,t){let i=this.parser,s=i.json.materials[e];if(!s.extensions||!s.extensions[this.name])return Promise.resolve();let r=[],o=s.extensions[this.name];return o.anisotropyStrength!==void 0&&(t.anisotropy=o.anisotropyStrength),o.anisotropyRotation!==void 0&&(t.anisotropyRotation=o.anisotropyRotation),o.anisotropyTexture!==void 0&&r.push(i.assignTexture(t,"anisotropyMap",o.anisotropyTexture)),Promise.all(r)}},Au=class{constructor(e){this.parser=e,this.name=Ye.KHR_TEXTURE_BASISU}loadTexture(e){let t=this.parser,i=t.json,s=i.textures[e];if(!s.extensions||!s.extensions[this.name])return null;let r=s.extensions[this.name],o=t.options.ktx2Loader;if(!o){if(i.extensionsRequired&&i.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return t.loadTextureImage(e,r.source,o)}},pu=class{constructor(e){this.parser=e,this.name=Ye.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(e){let t=this.name,i=this.parser,s=i.json,r=s.textures[e];if(!r.extensions||!r.extensions[t])return null;let o=r.extensions[t],a=s.images[o.source],l=i.textureLoader;if(a.uri){let c=i.options.manager.getHandler(a.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return i.loadTextureImage(e,o.source,l);if(s.extensionsRequired&&s.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}},gu=class{constructor(e){this.parser=e,this.name=Ye.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(e){let t=this.name,i=this.parser,s=i.json,r=s.textures[e];if(!r.extensions||!r.extensions[t])return null;let o=r.extensions[t],a=s.images[o.source],l=i.textureLoader;if(a.uri){let c=i.options.manager.getHandler(a.uri);c!==null&&(l=c)}return this.detectSupport().then(function(c){if(c)return i.loadTextureImage(e,o.source,l);if(s.extensionsRequired&&s.extensionsRequired.indexOf(t)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return i.loadTexture(e)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(e){let t=new Image;t.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",t.onload=t.onerror=function(){e(t.height===1)}})),this.isSupported}},mu=class{constructor(e){this.name=Ye.EXT_MESHOPT_COMPRESSION,this.parser=e}loadBufferView(e){let t=this.parser.json,i=t.bufferViews[e];if(i.extensions&&i.extensions[this.name]){let s=i.extensions[this.name],r=this.parser.getDependency("buffer",s.buffer),o=this.parser.options.meshoptDecoder;if(!o||!o.supported){if(t.extensionsRequired&&t.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return r.then(function(a){let l=s.byteOffset||0,c=s.byteLength||0,h=s.count,f=s.byteStride,u=new Uint8Array(a,l,c);return o.decodeGltfBufferAsync?o.decodeGltfBufferAsync(h,f,u,s.mode,s.filter).then(function(d){return d.buffer}):o.ready.then(function(){let d=new ArrayBuffer(h*f);return o.decodeGltfBuffer(new Uint8Array(d),h,f,u,s.mode,s.filter),d})})}else return null}},_u=class{constructor(e){this.name=Ye.EXT_MESH_GPU_INSTANCING,this.parser=e}createNodeMesh(e){let t=this.parser.json,i=t.nodes[e];if(!i.extensions||!i.extensions[this.name]||i.mesh===void 0)return null;let s=t.meshes[i.mesh];for(let c of s.primitives)if(c.mode!==En.TRIANGLES&&c.mode!==En.TRIANGLE_STRIP&&c.mode!==En.TRIANGLE_FAN&&c.mode!==void 0)return null;let o=i.extensions[this.name].attributes,a=[],l={};for(let c in o)a.push(this.parser.getDependency("accessor",o[c]).then(h=>(l[c]=h,l[c])));return a.length<1?null:(a.push(this.parser.createNodeMesh(e)),Promise.all(a).then(c=>{let h=c.pop(),f=h.isGroup?h.children:[h],u=c[0].count,d=[];for(let g of f){let m=new Oe,p=new Q,A=new Xt,x=new Q(1,1,1),_=new _c(g.geometry,g.material,u);for(let v=0;v<u;v++)l.TRANSLATION&&p.fromBufferAttribute(l.TRANSLATION,v),l.ROTATION&&A.fromBufferAttribute(l.ROTATION,v),l.SCALE&&x.fromBufferAttribute(l.SCALE,v),_.setMatrixAt(v,m.compose(p,A,x));for(let v in l)v!=="TRANSLATION"&&v!=="ROTATION"&&v!=="SCALE"&&g.geometry.setAttribute(v,l[v]);ct.prototype.copy.call(_,g),this.parser.assignFinalMaterial(_),d.push(_)}return h.isGroup?(h.clear(),h.add(...d),h):d[0]}))}},Z0="glTF",ya=12,q0={JSON:1313821514,BIN:5130562},xu=class{constructor(e){this.name=Ye.KHR_BINARY_GLTF,this.content=null,this.body=null;let t=new DataView(e,0,ya),i=new TextDecoder;if(this.header={magic:i.decode(new Uint8Array(e.slice(0,4))),version:t.getUint32(4,!0),length:t.getUint32(8,!0)},this.header.magic!==Z0)throw new Error("THREE.GLTFLoader: Unsupported glTF-Binary header.");if(this.header.version<2)throw new Error("THREE.GLTFLoader: Legacy binary file detected.");let s=this.header.length-ya,r=new DataView(e,ya),o=0;for(;o<s;){let a=r.getUint32(o,!0);o+=4;let l=r.getUint32(o,!0);if(o+=4,l===q0.JSON){let c=new Uint8Array(e,ya+o,a);this.content=i.decode(c)}else if(l===q0.BIN){let c=ya+o;this.body=e.slice(c,c+a)}o+=a}if(this.content===null)throw new Error("THREE.GLTFLoader: JSON content not found.")}},vu=class{constructor(e,t){if(!t)throw new Error("THREE.GLTFLoader: No DRACOLoader instance provided.");this.name=Ye.KHR_DRACO_MESH_COMPRESSION,this.json=e,this.dracoLoader=t,this.dracoLoader.preload()}decodePrimitive(e,t){let i=this.json,s=this.dracoLoader,r=e.extensions[this.name].bufferView,o=e.extensions[this.name].attributes,a={},l={},c={};for(let h in o){let f=Su[h]||h.toLowerCase();a[f]=o[h]}for(let h in e.attributes){let f=Su[h]||h.toLowerCase();if(o[h]!==void 0){let u=i.accessors[e.attributes[h]],d=ur[u.componentType];c[f]=d.name,l[f]=u.normalized===!0}}return t.getDependency("bufferView",r).then(function(h){return new Promise(function(f){s.decodeDracoFile(h,function(u){for(let d in u.attributes){let g=u.attributes[d],m=l[d];m!==void 0&&(g.normalized=m)}f(u)},a,c)})})}},Eu=class{constructor(){this.name=Ye.KHR_TEXTURE_TRANSFORM}extendTexture(e,t){return(t.texCoord===void 0||t.texCoord===e.channel)&&t.offset===void 0&&t.rotation===void 0&&t.scale===void 0||(e=e.clone(),t.texCoord!==void 0&&(e.channel=t.texCoord),t.offset!==void 0&&e.offset.fromArray(t.offset),t.rotation!==void 0&&(e.rotation=t.rotation),t.scale!==void 0&&e.repeat.fromArray(t.scale),e.needsUpdate=!0),e}},yu=class{constructor(){this.name=Ye.KHR_MESH_QUANTIZATION}},kc=class extends Bi{constructor(e,t,i,s){super(e,t,i,s)}copySampleValue_(e){let t=this.resultBuffer,i=this.sampleValues,s=this.valueSize,r=e*s*3+s;for(let o=0;o!==s;o++)t[o]=i[r+o];return t}interpolate_(e,t,i,s){let r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=a*2,c=a*3,h=s-t,f=(i-t)/h,u=f*f,d=u*f,g=e*c,m=g-c,p=-2*d+3*u,A=d-u,x=1-p,_=A-u+f;for(let v=0;v!==a;v++){let y=o[m+v+a],S=o[m+v+l]*h,C=o[g+v+a],M=o[g+v]*h;r[v]=x*y+_*S+p*C+A*M}return r}},vb=new Xt,Cu=class extends kc{interpolate_(e,t,i,s){let r=super.interpolate_(e,t,i,s);return vb.fromArray(r).normalize().toArray(r),r}},En={FLOAT:5126,FLOAT_MAT3:35675,FLOAT_MAT4:35676,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,LINEAR:9729,REPEAT:10497,SAMPLER_2D:35678,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,UNSIGNED_BYTE:5121,UNSIGNED_SHORT:5123},ur={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},X0={9728:yt,9729:ut,9984:$o,9985:Wh,9986:Jr,9987:Fn},Y0={33071:kt,33648:ra,10497:ss},eu={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Su={POSITION:"position",NORMAL:"normal",TANGENT:"tangent",TEXCOORD_0:"uv",TEXCOORD_1:"uv1",TEXCOORD_2:"uv2",TEXCOORD_3:"uv3",COLOR_0:"color",WEIGHTS_0:"skinWeight",JOINTS_0:"skinIndex"},Li={scale:"scale",translation:"position",rotation:"quaternion",weights:"morphTargetInfluences"},Eb={CUBICSPLINE:void 0,LINEAR:rs,STEP:Zs},tu={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};function yb(n){return n.DefaultMaterial===void 0&&(n.DefaultMaterial=new rr({color:16777215,emissive:0,metalness:1,roughness:1,transparent:!1,depthTest:!0,side:zn})),n.DefaultMaterial}function us(n,e,t){for(let i in t.extensions)n[i]===void 0&&(e.userData.gltfExtensions=e.userData.gltfExtensions||{},e.userData.gltfExtensions[i]=t.extensions[i])}function Fi(n,e){e.extras!==void 0&&(typeof e.extras=="object"?Object.assign(n.userData,e.extras):console.warn("THREE.GLTFLoader: Ignoring primitive type .extras, "+e.extras))}function Cb(n,e,t){let i=!1,s=!1,r=!1;for(let c=0,h=e.length;c<h;c++){let f=e[c];if(f.POSITION!==void 0&&(i=!0),f.NORMAL!==void 0&&(s=!0),f.COLOR_0!==void 0&&(r=!0),i&&s&&r)break}if(!i&&!s&&!r)return Promise.resolve(n);let o=[],a=[],l=[];for(let c=0,h=e.length;c<h;c++){let f=e[c];if(i){let u=f.POSITION!==void 0?t.getDependency("accessor",f.POSITION):n.attributes.position;o.push(u)}if(s){let u=f.NORMAL!==void 0?t.getDependency("accessor",f.NORMAL):n.attributes.normal;a.push(u)}if(r){let u=f.COLOR_0!==void 0?t.getDependency("accessor",f.COLOR_0):n.attributes.color;l.push(u)}}return Promise.all([Promise.all(o),Promise.all(a),Promise.all(l)]).then(function(c){let h=c[0],f=c[1],u=c[2];return i&&(n.morphAttributes.position=h),s&&(n.morphAttributes.normal=f),r&&(n.morphAttributes.color=u),n.morphTargetsRelative=!0,n})}function Sb(n,e){if(n.updateMorphTargets(),e.weights!==void 0)for(let t=0,i=e.weights.length;t<i;t++)n.morphTargetInfluences[t]=e.weights[t];if(e.extras&&Array.isArray(e.extras.targetNames)){let t=e.extras.targetNames;if(n.morphTargetInfluences.length===t.length){n.morphTargetDictionary={};for(let i=0,s=t.length;i<s;i++)n.morphTargetDictionary[t[i]]=i}else console.warn("THREE.GLTFLoader: Invalid extras.targetNames length. Ignoring names.")}}function bb(n){let e,t=n.extensions&&n.extensions[Ye.KHR_DRACO_MESH_COMPRESSION];if(t?e="draco:"+t.bufferView+":"+t.indices+":"+nu(t.attributes):e=n.indices+":"+nu(n.attributes)+":"+n.mode,n.targets!==void 0)for(let i=0,s=n.targets.length;i<s;i++)e+=":"+nu(n.targets[i]);return e}function nu(n){let e="",t=Object.keys(n).sort();for(let i=0,s=t.length;i<s;i++)e+=t[i]+":"+n[t[i]]+";";return e}function bu(n){switch(n){case Int8Array:return 1/127;case Uint8Array:return 1/255;case Int16Array:return 1/32767;case Uint16Array:return 1/65535;default:throw new Error("THREE.GLTFLoader: Unsupported normalized accessor component type.")}}function Ib(n){return n.search(/\.jpe?g($|\?)/i)>0||n.search(/^data\:image\/jpeg/)===0?"image/jpeg":n.search(/\.webp($|\?)/i)>0||n.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}var wb=new Oe,Iu=class{constructor(e={},t={}){this.json=e,this.extensions={},this.plugins={},this.options=t,this.cache=new xb,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let i=!1,s=!1,r=-1;typeof navigator<"u"&&(i=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,r=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap>"u"||i||s&&r<98?this.textureLoader=new wc(this.options.manager):this.textureLoader=new Rc(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Kn(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(e){this.extensions=e}setPlugins(e){this.plugins=e}parse(e,t){let i=this,s=this.json,r=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(o){return o._markDefs&&o._markDefs()}),Promise.all(this._invokeAll(function(o){return o.beforeRoot&&o.beforeRoot()})).then(function(){return Promise.all([i.getDependencies("scene"),i.getDependencies("animation"),i.getDependencies("camera")])}).then(function(o){let a={scene:o[0][s.scene||0],scenes:o[0],animations:o[1],cameras:o[2],asset:s.asset,parser:i,userData:{}};us(r,a,s),Fi(a,s),Promise.all(i._invokeAll(function(l){return l.afterRoot&&l.afterRoot(a)})).then(function(){e(a)})}).catch(t)}_markDefs(){let e=this.json.nodes||[],t=this.json.skins||[],i=this.json.meshes||[];for(let s=0,r=t.length;s<r;s++){let o=t[s].joints;for(let a=0,l=o.length;a<l;a++)e[o[a]].isBone=!0}for(let s=0,r=e.length;s<r;s++){let o=e[s];o.mesh!==void 0&&(this._addNodeRef(this.meshCache,o.mesh),o.skin!==void 0&&(i[o.mesh].isSkinnedMesh=!0)),o.camera!==void 0&&this._addNodeRef(this.cameraCache,o.camera)}}_addNodeRef(e,t){t!==void 0&&(e.refs[t]===void 0&&(e.refs[t]=e.uses[t]=0),e.refs[t]++)}_getNodeRef(e,t,i){if(e.refs[t]<=1)return i;let s=i.clone(),r=(o,a)=>{let l=this.associations.get(o);l!=null&&this.associations.set(a,l);for(let[c,h]of o.children.entries())r(h,a.children[c])};return r(i,s),s.name+="_instance_"+e.uses[t]++,s}_invokeOne(e){let t=Object.values(this.plugins);t.push(this);for(let i=0;i<t.length;i++){let s=e(t[i]);if(s)return s}return null}_invokeAll(e){let t=Object.values(this.plugins);t.unshift(this);let i=[];for(let s=0;s<t.length;s++){let r=e(t[s]);r&&i.push(r)}return i}getDependency(e,t){let i=e+":"+t,s=this.cache.get(i);if(!s){switch(e){case"scene":s=this.loadScene(t);break;case"node":s=this._invokeOne(function(r){return r.loadNode&&r.loadNode(t)});break;case"mesh":s=this._invokeOne(function(r){return r.loadMesh&&r.loadMesh(t)});break;case"accessor":s=this.loadAccessor(t);break;case"bufferView":s=this._invokeOne(function(r){return r.loadBufferView&&r.loadBufferView(t)});break;case"buffer":s=this.loadBuffer(t);break;case"material":s=this._invokeOne(function(r){return r.loadMaterial&&r.loadMaterial(t)});break;case"texture":s=this._invokeOne(function(r){return r.loadTexture&&r.loadTexture(t)});break;case"skin":s=this.loadSkin(t);break;case"animation":s=this._invokeOne(function(r){return r.loadAnimation&&r.loadAnimation(t)});break;case"camera":s=this.loadCamera(t);break;default:if(s=this._invokeOne(function(r){return r!=this&&r.getDependency&&r.getDependency(e,t)}),!s)throw new Error("Unknown type: "+e);break}this.cache.add(i,s)}return s}getDependencies(e){let t=this.cache.get(e);if(!t){let i=this,s=this.json[e+(e==="mesh"?"es":"s")]||[];t=Promise.all(s.map(function(r,o){return i.getDependency(e,o)})),this.cache.add(e,t)}return t}loadBuffer(e){let t=this.json.buffers[e],i=this.fileLoader;if(t.type&&t.type!=="arraybuffer")throw new Error("THREE.GLTFLoader: "+t.type+" buffer type is not supported.");if(t.uri===void 0&&e===0)return Promise.resolve(this.extensions[Ye.KHR_BINARY_GLTF].body);let s=this.options;return new Promise(function(r,o){i.load(or.resolveURL(t.uri,s.path),r,void 0,function(){o(new Error('THREE.GLTFLoader: Failed to load buffer "'+t.uri+'".'))})})}loadBufferView(e){let t=this.json.bufferViews[e];return this.getDependency("buffer",t.buffer).then(function(i){let s=t.byteLength||0,r=t.byteOffset||0;return i.slice(r,r+s)})}loadAccessor(e){let t=this,i=this.json,s=this.json.accessors[e];if(s.bufferView===void 0&&s.sparse===void 0){let o=eu[s.type],a=ur[s.componentType],l=s.normalized===!0,c=new a(s.count*o);return Promise.resolve(new St(c,o,l))}let r=[];return s.bufferView!==void 0?r.push(this.getDependency("bufferView",s.bufferView)):r.push(null),s.sparse!==void 0&&(r.push(this.getDependency("bufferView",s.sparse.indices.bufferView)),r.push(this.getDependency("bufferView",s.sparse.values.bufferView))),Promise.all(r).then(function(o){let a=o[0],l=eu[s.type],c=ur[s.componentType],h=c.BYTES_PER_ELEMENT,f=h*l,u=s.byteOffset||0,d=s.bufferView!==void 0?i.bufferViews[s.bufferView].byteStride:void 0,g=s.normalized===!0,m,p;if(d&&d!==f){let A=Math.floor(u/d),x="InterleavedBuffer:"+s.bufferView+":"+s.componentType+":"+A+":"+s.count,_=t.cache.get(x);_||(m=new c(a,A*d,s.count*d/h),_=new ua(m,d/h),t.cache.add(x,_)),p=new cs(_,l,u%d/h,g)}else a===null?m=new c(s.count*l):m=new c(a,u,s.count*l),p=new St(m,l,g);if(s.sparse!==void 0){let A=eu.SCALAR,x=ur[s.sparse.indices.componentType],_=s.sparse.indices.byteOffset||0,v=s.sparse.values.byteOffset||0,y=new x(o[1],_,s.sparse.count*A),S=new c(o[2],v,s.sparse.count*l);a!==null&&(p=new St(p.array.slice(),p.itemSize,p.normalized));for(let C=0,M=y.length;C<M;C++){let E=y[C];if(p.setX(E,S[C*l]),l>=2&&p.setY(E,S[C*l+1]),l>=3&&p.setZ(E,S[C*l+2]),l>=4&&p.setW(E,S[C*l+3]),l>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(e){let t=this.json,i=this.options,r=t.textures[e].source,o=t.images[r],a=this.textureLoader;if(o.uri){let l=i.manager.getHandler(o.uri);l!==null&&(a=l)}return this.loadTextureImage(e,r,a)}loadTextureImage(e,t,i){let s=this,r=this.json,o=r.textures[e],a=r.images[t],l=(a.uri||a.bufferView)+":"+o.sampler;if(this.textureCache[l])return this.textureCache[l];let c=this.loadImageSource(t,i).then(function(h){h.flipY=!1,h.name=o.name||a.name||"",h.name===""&&typeof a.uri=="string"&&a.uri.startsWith("data:image/")===!1&&(h.name=a.uri);let u=(r.samplers||{})[o.sampler]||{};return h.magFilter=X0[u.magFilter]||ut,h.minFilter=X0[u.minFilter]||Fn,h.wrapS=Y0[u.wrapS]||ss,h.wrapT=Y0[u.wrapT]||ss,s.associations.set(h,{textures:e}),h}).catch(function(){return null});return this.textureCache[l]=c,c}loadImageSource(e,t){let i=this,s=this.json,r=this.options;if(this.sourceCache[e]!==void 0)return this.sourceCache[e].then(f=>f.clone());let o=s.images[e],a=self.URL||self.webkitURL,l=o.uri||"",c=!1;if(o.bufferView!==void 0)l=i.getDependency("bufferView",o.bufferView).then(function(f){c=!0;let u=new Blob([f],{type:o.mimeType});return l=a.createObjectURL(u),l});else if(o.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+e+" is missing URI and bufferView");let h=Promise.resolve(l).then(function(f){return new Promise(function(u,d){let g=u;t.isImageBitmapLoader===!0&&(g=function(m){let p=new mt(m);p.needsUpdate=!0,u(p)}),t.load(or.resolveURL(f,r.path),g,void 0,d)})}).then(function(f){return c===!0&&a.revokeObjectURL(l),f.userData.mimeType=o.mimeType||Ib(o.uri),f}).catch(function(f){throw console.error("THREE.GLTFLoader: Couldn't load texture",l),f});return this.sourceCache[e]=h,h}assignTexture(e,t,i,s){let r=this;return this.getDependency("texture",i.index).then(function(o){if(!o)return null;if(i.texCoord!==void 0&&i.texCoord>0&&(o=o.clone(),o.channel=i.texCoord),r.extensions[Ye.KHR_TEXTURE_TRANSFORM]){let a=i.extensions!==void 0?i.extensions[Ye.KHR_TEXTURE_TRANSFORM]:void 0;if(a){let l=r.associations.get(o);o=r.extensions[Ye.KHR_TEXTURE_TRANSFORM].extendTexture(o,a),r.associations.set(o,l)}}return s!==void 0&&(o.colorSpace=s),e[t]=o,o})}assignFinalMaterial(e){let t=e.geometry,i=e.material,s=t.attributes.tangent===void 0,r=t.attributes.color!==void 0,o=t.attributes.normal===void 0;if(e.isPoints){let a="PointsMaterial:"+i.uuid,l=this.cache.get(a);l||(l=new pa,rn.prototype.copy.call(l,i),l.color.copy(i.color),l.map=i.map,l.sizeAttenuation=!1,this.cache.add(a,l)),i=l}else if(e.isLine){let a="LineBasicMaterial:"+i.uuid,l=this.cache.get(a);l||(l=new Aa,rn.prototype.copy.call(l,i),l.color.copy(i.color),l.map=i.map,this.cache.add(a,l)),i=l}if(s||r||o){let a="ClonedMaterial:"+i.uuid+":";s&&(a+="derivative-tangents:"),r&&(a+="vertex-colors:"),o&&(a+="flat-shading:");let l=this.cache.get(a);l||(l=i.clone(),r&&(l.vertexColors=!0),o&&(l.flatShading=!0),s&&(l.normalScale&&(l.normalScale.y*=-1),l.clearcoatNormalScale&&(l.clearcoatNormalScale.y*=-1)),this.cache.add(a,l),this.associations.set(l,this.associations.get(i))),i=l}e.material=i}getMaterialType(){return rr}loadMaterial(e){let t=this,i=this.json,s=this.extensions,r=i.materials[e],o,a={},l=r.extensions||{},c=[];if(l[Ye.KHR_MATERIALS_UNLIT]){let f=s[Ye.KHR_MATERIALS_UNLIT];o=f.getMaterialType(),c.push(f.extendParams(a,r,t))}else{let f=r.pbrMetallicRoughness||{};if(a.color=new ve(1,1,1),a.opacity=1,Array.isArray(f.baseColorFactor)){let u=f.baseColorFactor;a.color.fromArray(u),a.opacity=u[3]}f.baseColorTexture!==void 0&&c.push(t.assignTexture(a,"map",f.baseColorTexture,be)),a.metalness=f.metallicFactor!==void 0?f.metallicFactor:1,a.roughness=f.roughnessFactor!==void 0?f.roughnessFactor:1,f.metallicRoughnessTexture!==void 0&&(c.push(t.assignTexture(a,"metalnessMap",f.metallicRoughnessTexture)),c.push(t.assignTexture(a,"roughnessMap",f.metallicRoughnessTexture))),o=this._invokeOne(function(u){return u.getMaterialType&&u.getMaterialType(e)}),c.push(Promise.all(this._invokeAll(function(u){return u.extendMaterialParams&&u.extendMaterialParams(e,a)})))}r.doubleSided===!0&&(a.side=Dn);let h=r.alphaMode||tu.OPAQUE;if(h===tu.BLEND?(a.transparent=!0,a.depthWrite=!1):(a.transparent=!1,h===tu.MASK&&(a.alphaTest=r.alphaCutoff!==void 0?r.alphaCutoff:.5)),r.normalTexture!==void 0&&o!==mn&&(c.push(t.assignTexture(a,"normalMap",r.normalTexture)),a.normalScale=new Ie(1,1),r.normalTexture.scale!==void 0)){let f=r.normalTexture.scale;a.normalScale.set(f,f)}return r.occlusionTexture!==void 0&&o!==mn&&(c.push(t.assignTexture(a,"aoMap",r.occlusionTexture)),r.occlusionTexture.strength!==void 0&&(a.aoMapIntensity=r.occlusionTexture.strength)),r.emissiveFactor!==void 0&&o!==mn&&(a.emissive=new ve().fromArray(r.emissiveFactor)),r.emissiveTexture!==void 0&&o!==mn&&c.push(t.assignTexture(a,"emissiveMap",r.emissiveTexture,be)),Promise.all(c).then(function(){let f=new o(a);return r.name&&(f.name=r.name),Fi(f,r),t.associations.set(f,{materials:e}),r.extensions&&us(s,f,r),f})}createUniqueName(e){let t=Je.sanitizeNodeName(e||"");return t in this.nodeNamesUsed?t+"_"+ ++this.nodeNamesUsed[t]:(this.nodeNamesUsed[t]=0,t)}loadGeometries(e){let t=this,i=this.extensions,s=this.primitiveCache;function r(a){return i[Ye.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(a,t).then(function(l){return J0(l,a,t)})}let o=[];for(let a=0,l=e.length;a<l;a++){let c=e[a],h=bb(c),f=s[h];if(f)o.push(f.promise);else{let u;c.extensions&&c.extensions[Ye.KHR_DRACO_MESH_COMPRESSION]?u=r(c):u=J0(new Yt,c,t),s[h]={primitive:c,promise:u},o.push(u)}}return Promise.all(o)}loadMesh(e){let t=this,i=this.json,s=this.extensions,r=i.meshes[e],o=r.primitives,a=[];for(let l=0,c=o.length;l<c;l++){let h=o[l].material===void 0?yb(this.cache):this.getDependency("material",o[l].material);a.push(h)}return a.push(t.loadGeometries(o)),Promise.all(a).then(function(l){let c=l.slice(0,l.length-1),h=l[l.length-1],f=[];for(let d=0,g=h.length;d<g;d++){let m=h[d],p=o[d],A,x=c[d];if(p.mode===En.TRIANGLES||p.mode===En.TRIANGLE_STRIP||p.mode===En.TRIANGLE_FAN||p.mode===void 0)A=r.isSkinnedMesh===!0?new mc(m,x):new Ft(m,x),A.isSkinnedMesh===!0&&A.normalizeSkinWeights(),p.mode===En.TRIANGLE_STRIP?A.geometry=$h(A.geometry,Lc):p.mode===En.TRIANGLE_FAN&&(A.geometry=$h(A.geometry,va));else if(p.mode===En.LINES)A=new xc(m,x);else if(p.mode===En.LINE_STRIP)A=new ir(m,x);else if(p.mode===En.LINE_LOOP)A=new vc(m,x);else if(p.mode===En.POINTS)A=new Ec(m,x);else throw new Error("THREE.GLTFLoader: Primitive mode unsupported: "+p.mode);Object.keys(A.geometry.morphAttributes).length>0&&Sb(A,r),A.name=t.createUniqueName(r.name||"mesh_"+e),Fi(A,r),p.extensions&&us(s,A,p),t.assignFinalMaterial(A),f.push(A)}for(let d=0,g=f.length;d<g;d++)t.associations.set(f[d],{meshes:e,primitives:d});if(f.length===1)return r.extensions&&us(s,f[0],r),f[0];let u=new fn;r.extensions&&us(s,u,r),t.associations.set(u,{meshes:e});for(let d=0,g=f.length;d<g;d++)u.add(f[d]);return u})}loadCamera(e){let t,i=this.json.cameras[e],s=i[i.type];if(!s){console.warn("THREE.GLTFLoader: Missing camera parameters.");return}return i.type==="perspective"?t=new Ct(Fc.radToDeg(s.yfov),s.aspectRatio||1,s.znear||1,s.zfar||2e6):i.type==="orthographic"&&(t=new Ti(-s.xmag,s.xmag,s.ymag,-s.ymag,s.znear,s.zfar)),i.name&&(t.name=this.createUniqueName(i.name)),Fi(t,i),Promise.resolve(t)}loadSkin(e){let t=this.json.skins[e],i=[];for(let s=0,r=t.joints.length;s<r;s++)i.push(this._loadNodeShallow(t.joints[s]));return t.inverseBindMatrices!==void 0?i.push(this.getDependency("accessor",t.inverseBindMatrices)):i.push(null),Promise.all(i).then(function(s){let r=s.pop(),o=s,a=[],l=[];for(let c=0,h=o.length;c<h;c++){let f=o[c];if(f){a.push(f);let u=new Oe;r!==null&&u.fromArray(r.array,c*16),l.push(u)}else console.warn('THREE.GLTFLoader: Joint "%s" could not be found.',t.joints[c])}return new nr(a,l)})}loadAnimation(e){let t=this.json,i=this,s=t.animations[e],r=s.name?s.name:"animation_"+e,o=[],a=[],l=[],c=[],h=[];for(let f=0,u=s.channels.length;f<u;f++){let d=s.channels[f],g=s.samplers[d.sampler],m=d.target,p=m.node,A=s.parameters!==void 0?s.parameters[g.input]:g.input,x=s.parameters!==void 0?s.parameters[g.output]:g.output;m.node!==void 0&&(o.push(this.getDependency("node",p)),a.push(this.getDependency("accessor",A)),l.push(this.getDependency("accessor",x)),c.push(g),h.push(m))}return Promise.all([Promise.all(o),Promise.all(a),Promise.all(l),Promise.all(c),Promise.all(h)]).then(function(f){let u=f[0],d=f[1],g=f[2],m=f[3],p=f[4],A=[];for(let x=0,_=u.length;x<_;x++){let v=u[x],y=d[x],S=g[x],C=m[x],M=p[x];if(v===void 0)continue;v.updateMatrix&&v.updateMatrix();let E=i._createAnimationTracks(v,y,S,C,M);if(E)for(let b=0;b<E.length;b++)A.push(E[b])}return new bc(r,void 0,A)})}createNodeMesh(e){let t=this.json,i=this,s=t.nodes[e];return s.mesh===void 0?null:i.getDependency("mesh",s.mesh).then(function(r){let o=i._getNodeRef(i.meshCache,s.mesh,r);return s.weights!==void 0&&o.traverse(function(a){if(!!a.isMesh)for(let l=0,c=s.weights.length;l<c;l++)a.morphTargetInfluences[l]=s.weights[l]}),o})}loadNode(e){let t=this.json,i=this,s=t.nodes[e],r=i._loadNodeShallow(e),o=[],a=s.children||[];for(let c=0,h=a.length;c<h;c++)o.push(i.getDependency("node",a[c]));let l=s.skin===void 0?Promise.resolve(null):i.getDependency("skin",s.skin);return Promise.all([r,Promise.all(o),l]).then(function(c){let h=c[0],f=c[1],u=c[2];u!==null&&h.traverse(function(d){!d.isSkinnedMesh||d.bind(u,wb)});for(let d=0,g=f.length;d<g;d++)h.add(f[d]);return h})}_loadNodeShallow(e){let t=this.json,i=this.extensions,s=this;if(this.nodeCache[e]!==void 0)return this.nodeCache[e];let r=t.nodes[e],o=r.name?s.createUniqueName(r.name):"",a=[],l=s._invokeOne(function(c){return c.createNodeMesh&&c.createNodeMesh(e)});return l&&a.push(l),r.camera!==void 0&&a.push(s.getDependency("camera",r.camera).then(function(c){return s._getNodeRef(s.cameraCache,r.camera,c)})),s._invokeAll(function(c){return c.createNodeAttachment&&c.createNodeAttachment(e)}).forEach(function(c){a.push(c)}),this.nodeCache[e]=Promise.all(a).then(function(c){let h;if(r.isBone===!0?h=new fa:c.length>1?h=new fn:c.length===1?h=c[0]:h=new ct,h!==c[0])for(let f=0,u=c.length;f<u;f++)h.add(c[f]);if(r.name&&(h.userData.name=r.name,h.name=o),Fi(h,r),r.extensions&&us(i,h,r),r.matrix!==void 0){let f=new Oe;f.fromArray(r.matrix),h.applyMatrix4(f)}else r.translation!==void 0&&h.position.fromArray(r.translation),r.rotation!==void 0&&h.quaternion.fromArray(r.rotation),r.scale!==void 0&&h.scale.fromArray(r.scale);return s.associations.has(h)||s.associations.set(h,{}),s.associations.get(h).nodes=e,h}),this.nodeCache[e]}loadScene(e){let t=this.extensions,i=this.json.scenes[e],s=this,r=new fn;i.name&&(r.name=s.createUniqueName(i.name)),Fi(r,i),i.extensions&&us(t,r,i);let o=i.nodes||[],a=[];for(let l=0,c=o.length;l<c;l++)a.push(s.getDependency("node",o[l]));return Promise.all(a).then(function(l){for(let h=0,f=l.length;h<f;h++)r.add(l[h]);let c=h=>{let f=new Map;for(let[u,d]of s.associations)(u instanceof rn||u instanceof mt)&&f.set(u,d);return h.traverse(u=>{let d=s.associations.get(u);d!=null&&f.set(u,d)}),f};return s.associations=c(r),r})}_createAnimationTracks(e,t,i,s,r){let o=[],a=e.name?e.name:e.uuid,l=[];Li[r.path]===Li.weights?e.traverse(function(u){u.morphTargetInfluences&&l.push(u.name?u.name:u.uuid)}):l.push(a);let c;switch(Li[r.path]){case Li.weights:c=oi;break;case Li.rotation:c=Wn;break;case Li.position:case Li.scale:c=ci;break;default:switch(i.itemSize){case 1:c=oi;break;case 2:case 3:default:c=ci;break}break}let h=s.interpolation!==void 0?Eb[s.interpolation]:rs,f=this._getArrayFromAccessor(i);for(let u=0,d=l.length;u<d;u++){let g=new c(l[u]+"."+Li[r.path],t.array,f,h);s.interpolation==="CUBICSPLINE"&&this._createCubicSplineTrackInterpolant(g),o.push(g)}return o}_getArrayFromAccessor(e){let t=e.array;if(e.normalized){let i=bu(t.constructor),s=new Float32Array(t.length);for(let r=0,o=t.length;r<o;r++)s[r]=t[r]*i;t=s}return t}_createCubicSplineTrackInterpolant(e){e.createInterpolant=function(i){let s=this instanceof Wn?Cu:kc;return new s(this.times,this.values,this.getValueSize()/3,i)},e.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline=!0}};function Mb(n,e,t){let i=e.attributes,s=new gn;if(i.POSITION!==void 0){let a=t.json.accessors[i.POSITION],l=a.min,c=a.max;if(l!==void 0&&c!==void 0){if(s.set(new Q(l[0],l[1],l[2]),new Q(c[0],c[1],c[2])),a.normalized){let h=bu(ur[a.componentType]);s.min.multiplyScalar(h),s.max.multiplyScalar(h)}}else{console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.");return}}else return;let r=e.targets;if(r!==void 0){let a=new Q,l=new Q;for(let c=0,h=r.length;c<h;c++){let f=r[c];if(f.POSITION!==void 0){let u=t.json.accessors[f.POSITION],d=u.min,g=u.max;if(d!==void 0&&g!==void 0){if(l.setX(Math.max(Math.abs(d[0]),Math.abs(g[0]))),l.setY(Math.max(Math.abs(d[1]),Math.abs(g[1]))),l.setZ(Math.max(Math.abs(d[2]),Math.abs(g[2]))),u.normalized){let m=bu(ur[u.componentType]);l.multiplyScalar(m)}a.max(l)}else console.warn("THREE.GLTFLoader: Missing min/max properties for accessor POSITION.")}}s.expandByVector(a)}n.boundingBox=s;let o=new sn;s.getCenter(o.center),o.radius=s.min.distanceTo(s.max)/2,n.boundingSphere=o}function J0(n,e,t){let i=e.attributes,s=[];function r(o,a){return t.getDependency("accessor",o).then(function(l){n.setAttribute(a,l)})}for(let o in i){let a=Su[o]||o.toLowerCase();a in n.attributes||s.push(r(i[o],a))}if(e.indices!==void 0&&!n.index){let o=t.getDependency("accessor",e.indices).then(function(a){n.setIndex(a)});s.push(o)}return Fi(n,e),Mb(n,e,t),Promise.all(s).then(function(){return e.targets!==void 0?Cb(n,e.targets,t):n})}var Qc=class{constructor(e=4){this.pool=e,this.queue=[],this.workers=[],this.workersResolve=[],this.workerStatus=0}_initWorker(e){if(!this.workers[e]){let t=this.workerCreator();t.addEventListener("message",this._onMessage.bind(this,e)),this.workers[e]=t}}_getIdleWorker(){for(let e=0;e<this.pool;e++)if(!(this.workerStatus&1<<e))return e;return-1}_onMessage(e,t){let i=this.workersResolve[e];if(i&&i(t),this.queue.length){let{resolve:s,msg:r,transfer:o}=this.queue.shift();this.workersResolve[e]=s,this.workers[e].postMessage(r,o)}else this.workerStatus^=1<<e}setWorkerCreator(e){this.workerCreator=e}setWorkerLimit(e){this.pool=e}postMessage(e,t){return new Promise(i=>{let s=this._getIdleWorker();s!==-1?(this._initWorker(s),this.workerStatus|=1<<s,this.workersResolve[s]=i,this.workers[s].postMessage(e,t)):this.queue.push({resolve:i,msg:e,transfer:t})})}dispose(){this.workers.forEach(e=>e.terminate()),this.workersResolve.length=0,this.workers.length=0,this.queue.length=0,this.workerStatus=0}};var wu=class{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}},fs=class{constructor(e,t,i,s){this._dataView=new DataView(e.buffer,e.byteOffset+t,i),this._littleEndian=s,this._offset=0}_nextUint8(){let e=this._dataView.getUint8(this._offset);return this._offset+=1,e}_nextUint16(){let e=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,e}_nextUint32(){let e=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,e}_nextUint64(){let e=this._dataView.getUint32(this._offset,this._littleEndian)+4294967296*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,e}_nextInt32(){let e=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,e}_skip(e){return this._offset+=e,this}_scan(e,t=0){let i=this._offset,s=0;for(;this._dataView.getUint8(this._offset)!==t&&s<e;)s++,this._offset++;return s<e&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+i,s)}},gI=new Uint8Array([0]),Kt=[171,75,84,88,32,50,48,187,13,10,26,10];function j0(n){return typeof TextDecoder<"u"?new TextDecoder().decode(n):Buffer.from(n).toString("utf8")}function $0(n){let e=new Uint8Array(n.buffer,n.byteOffset,Kt.length);if(e[0]!==Kt[0]||e[1]!==Kt[1]||e[2]!==Kt[2]||e[3]!==Kt[3]||e[4]!==Kt[4]||e[5]!==Kt[5]||e[6]!==Kt[6]||e[7]!==Kt[7]||e[8]!==Kt[8]||e[9]!==Kt[9]||e[10]!==Kt[10]||e[11]!==Kt[11])throw new Error("Missing KTX 2.0 identifier.");let t=new wu,i=17*Uint32Array.BYTES_PER_ELEMENT,s=new fs(n,Kt.length,i,!0);t.vkFormat=s._nextUint32(),t.typeSize=s._nextUint32(),t.pixelWidth=s._nextUint32(),t.pixelHeight=s._nextUint32(),t.pixelDepth=s._nextUint32(),t.layerCount=s._nextUint32(),t.faceCount=s._nextUint32();let r=s._nextUint32();t.supercompressionScheme=s._nextUint32();let o=s._nextUint32(),a=s._nextUint32(),l=s._nextUint32(),c=s._nextUint32(),h=s._nextUint64(),f=s._nextUint64(),u=new fs(n,Kt.length+i,3*r*8,!0);for(let H=0;H<r;H++)t.levels.push({levelData:new Uint8Array(n.buffer,n.byteOffset+u._nextUint64(),u._nextUint64()),uncompressedByteLength:u._nextUint64()});let d=new fs(n,o,a,!0),g={vendorId:d._skip(4)._nextUint16(),descriptorType:d._nextUint16(),versionNumber:d._nextUint16(),descriptorBlockSize:d._nextUint16(),colorModel:d._nextUint8(),colorPrimaries:d._nextUint8(),transferFunction:d._nextUint8(),flags:d._nextUint8(),texelBlockDimension:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],bytesPlane:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],samples:[]},m=(g.descriptorBlockSize/4-6)/4;for(let H=0;H<m;H++){let z={bitOffset:d._nextUint16(),bitLength:d._nextUint8(),channelType:d._nextUint8(),samplePosition:[d._nextUint8(),d._nextUint8(),d._nextUint8(),d._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};64&z.channelType?(z.sampleLower=d._nextInt32(),z.sampleUpper=d._nextInt32()):(z.sampleLower=d._nextUint32(),z.sampleUpper=d._nextUint32()),g.samples[H]=z}t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(g);let p=new fs(n,l,c,!0);for(;p._offset<c;){let H=p._nextUint32(),z=p._scan(H),F=j0(z),N=p._scan(H-z.byteLength);t.keyValue[F]=F.match(/^ktx/i)?j0(N):N,p._offset%4&&p._skip(4-p._offset%4)}if(f<=0)return t;let A=new fs(n,h,f,!0),x=A._nextUint16(),_=A._nextUint16(),v=A._nextUint32(),y=A._nextUint32(),S=A._nextUint32(),C=A._nextUint32(),M=[];for(let H=0;H<r;H++)M.push({imageFlags:A._nextUint32(),rgbSliceByteOffset:A._nextUint32(),rgbSliceByteLength:A._nextUint32(),alphaSliceByteOffset:A._nextUint32(),alphaSliceByteLength:A._nextUint32()});let E=h+A._offset,b=E+v,w=b+y,G=w+S,U=new Uint8Array(n.buffer,n.byteOffset+E,v),D=new Uint8Array(n.buffer,n.byteOffset+b,y),O=new Uint8Array(n.buffer,n.byteOffset+w,S),K=new Uint8Array(n.buffer,n.byteOffset+G,C);return t.globalData={endpointCount:x,selectorCount:_,imageDescs:M,endpointsData:U,selectorsData:D,tablesData:O,extendedData:K},t}var Mu,li,Bu,Tu={env:{emscripten_notify_memory_growth:function(n){Bu=new Uint8Array(li.exports.memory.buffer)}}},Gc=class{init(){return Mu||(Mu=typeof fetch<"u"?fetch("data:application/wasm;base64,"+eg).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,Tu)).then(this._init):WebAssembly.instantiate(Buffer.from(eg,"base64"),Tu).then(this._init),Mu)}_init(e){li=e.instance,Tu.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!li)throw new Error("ZSTDDecoder: Await .init() before decoding.");let i=e.byteLength,s=li.exports.malloc(i);Bu.set(e,s),t=t||Number(li.exports.ZSTD_findDecompressedSize(s,i));let r=li.exports.malloc(t),o=li.exports.ZSTD_decompress(r,t,s,i),a=Bu.slice(r,r+o);return li.exports.free(s),li.exports.free(r),a}},eg="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var Ru=new WeakMap,Du=0,Lu,on=class extends vn{constructor(e){super(e),this.transcoderPath="",this.transcoderBinary=null,this.transcoderPending=null,this.workerPool=new Qc,this.workerSourceURL="",this.workerConfig=null,typeof MSC_TRANSCODER<"u"&&console.warn('THREE.KTX2Loader: Please update to latest "basis_transcoder". "msc_basis_transcoder" is no longer supported in three.js r125+.')}setTranscoderPath(e){return this.transcoderPath=e,this}setWorkerLimit(e){return this.workerPool.setWorkerLimit(e),this}detectSupport(e){return e.isWebGPURenderer===!0?this.workerConfig={astcSupported:e.hasFeature("texture-compression-astc"),etc1Supported:!1,etc2Supported:e.hasFeature("texture-compression-etc2"),dxtSupported:e.hasFeature("texture-compression-bc"),bptcSupported:!1,pvrtcSupported:!1}:(this.workerConfig={astcSupported:e.extensions.has("WEBGL_compressed_texture_astc"),etc1Supported:e.extensions.has("WEBGL_compressed_texture_etc1"),etc2Supported:e.extensions.has("WEBGL_compressed_texture_etc"),dxtSupported:e.extensions.has("WEBGL_compressed_texture_s3tc"),bptcSupported:e.extensions.has("EXT_texture_compression_bptc"),pvrtcSupported:e.extensions.has("WEBGL_compressed_texture_pvrtc")||e.extensions.has("WEBKIT_WEBGL_compressed_texture_pvrtc")},e.capabilities.isWebGL2&&(this.workerConfig.etc1Supported=!1)),this}init(){if(!this.transcoderPending){let e=new Kn(this.manager);e.setPath(this.transcoderPath),e.setWithCredentials(this.withCredentials);let t=e.loadAsync("basis_transcoder.js"),i=new Kn(this.manager);i.setPath(this.transcoderPath),i.setResponseType("arraybuffer"),i.setWithCredentials(this.withCredentials);let s=i.loadAsync("basis_transcoder.wasm");this.transcoderPending=Promise.all([t,s]).then(([r,o])=>{let a=on.BasisWorker.toString(),l=["/* constants */","let _EngineFormat = "+JSON.stringify(on.EngineFormat),"let _TranscoderFormat = "+JSON.stringify(on.TranscoderFormat),"let _BasisFormat = "+JSON.stringify(on.BasisFormat),"/* basis_transcoder.js */",r,"/* worker */",a.substring(a.indexOf("{")+1,a.lastIndexOf("}"))].join(`
3573
3573
  `);this.workerSourceURL=URL.createObjectURL(new Blob([l])),this.transcoderBinary=o,this.workerPool.setWorkerCreator(()=>{let c=new Worker(this.workerSourceURL),h=this.transcoderBinary.slice(0);return c.postMessage({type:"init",config:this.workerConfig,transcoderBinary:h},[h]),c})}),Du>0&&console.warn("THREE.KTX2Loader: Multiple active KTX2 loaders may cause performance issues. Use a single KTX2Loader instance, or call .dispose() on old instances."),Du++}return this.transcoderPending}load(e,t,i,s){if(this.workerConfig===null)throw new Error("THREE.KTX2Loader: Missing initialization with `.detectSupport( renderer )`.");let r=new Kn(this.manager);r.setResponseType("arraybuffer"),r.setWithCredentials(this.withCredentials),r.load(e,o=>{if(Ru.has(o))return Ru.get(o).promise.then(t).catch(s);this._createTexture(o).then(a=>t?t(a):null).catch(s)},i,s)}_createTextureFrom(e,t){let{faces:i,width:s,height:r,format:o,type:a,error:l,dfdTransferFn:c,dfdFlags:h}=e;if(a==="error")return Promise.reject(l);let f;if(t.faceCount===6)f=new Cc(i,o,Pt);else{let u=i[0].mipmaps;f=t.layerCount>1?new yc(u,s,r,t.layerCount,o,Pt):new sr(u,s,r,o,Pt)}return f.minFilter=i[0].mipmaps.length===1?ut:Fn,f.magFilter=ut,f.generateMipmaps=!1,f.needsUpdate=!0,f.colorSpace=c===2?be:Hn,f.premultiplyAlpha=!!(h&1),f}async _createTexture(e,t={}){let i=$0(new Uint8Array(e));if(i.vkFormat!==0){let o=[],a=[];for(let c=0;c<i.levels.length;c++)a.push(Pb(i,c).then(function(h){o[c]=h}));await Promise.all(a);let l=o[0];return l.mipmaps=o.map(c=>({data:c.source.data,width:c.source.data.width,height:c.source.data.height,depth:c.source.data.depth})),l}let s=t,r=this.init().then(()=>this.workerPool.postMessage({type:"transcode",buffer:e,taskConfig:s},[e])).then(o=>this._createTextureFrom(o.data,i));return Ru.set(e,{promise:r}),r}dispose(){return this.workerPool.dispose(),this.workerSourceURL&&URL.revokeObjectURL(this.workerSourceURL),Du--,this}};on.BasisFormat={ETC1S:0,UASTC_4x4:1};on.TranscoderFormat={ETC1:0,ETC2:1,BC1:2,BC3:3,BC4:4,BC5:5,BC7_M6_OPAQUE_ONLY:6,BC7_M5:7,PVRTC1_4_RGB:8,PVRTC1_4_RGBA:9,ASTC_4x4:10,ATC_RGB:11,ATC_RGBA_INTERPOLATED_ALPHA:12,RGBA32:13,RGB565:14,BGR565:15,RGBA4444:16};on.EngineFormat={RGBAFormat:Dt,RGBA_ASTC_4x4_Format:sc,RGBA_BPTC_Format:$r,RGBA_ETC2_EAC_Format:ic,RGBA_PVRTC_4BPPV1_Format:tc,RGBA_S3TC_DXT5_Format:jr,RGB_ETC1_Format:qh,RGB_ETC2_Format:nc,RGB_PVRTC_4BPPV1_Format:ec,RGB_S3TC_DXT1_Format:Zr};on.BasisWorker=function(){let n,e,t,i=_EngineFormat,s=_TranscoderFormat,r=_BasisFormat;self.addEventListener("message",function(g){let m=g.data;switch(m.type){case"init":n=m.config,o(m.transcoderBinary);break;case"transcode":e.then(()=>{try{let{faces:p,buffers:A,width:x,height:_,hasAlpha:v,format:y,dfdTransferFn:S,dfdFlags:C}=a(m.buffer);self.postMessage({type:"transcode",id:m.id,faces:p,width:x,height:_,hasAlpha:v,format:y,dfdTransferFn:S,dfdFlags:C},A)}catch(p){console.error(p),self.postMessage({type:"error",id:m.id,error:p.message})}});break}});function o(g){e=new Promise(m=>{t={wasmBinary:g,onRuntimeInitialized:m},BASIS(t)}).then(()=>{t.initializeBasis(),t.KTX2File===void 0&&console.warn("THREE.KTX2Loader: Please update Basis Universal transcoder.")})}function a(g){let m=new t.KTX2File(new Uint8Array(g));function p(){m.close(),m.delete()}if(!m.isValid())throw p(),new Error("THREE.KTX2Loader: Invalid or unsupported .ktx2 file");let A=m.isUASTC()?r.UASTC_4x4:r.ETC1S,x=m.getWidth(),_=m.getHeight(),v=m.getLayers()||1,y=m.getLevels(),S=m.getFaces(),C=m.getHasAlpha(),M=m.getDFDTransferFunc(),E=m.getDFDFlags(),{transcoderFormat:b,engineFormat:w}=f(A,x,_,C);if(!x||!_||!y)throw p(),new Error("THREE.KTX2Loader: Invalid texture");if(!m.startTranscoding())throw p(),new Error("THREE.KTX2Loader: .startTranscoding failed");let G=[],U=[];for(let D=0;D<S;D++){let O=[];for(let K=0;K<y;K++){let H=[],z,F;for(let R=0;R<v;R++){let L=m.getImageLevelInfo(K,R,D);D===0&&K===0&&R===0&&(L.origWidth%4!==0||L.origHeight%4!==0)&&console.warn("THREE.KTX2Loader: ETC1S and UASTC textures should use multiple-of-four dimensions."),y>1?(z=L.origWidth,F=L.origHeight):(z=L.width,F=L.height);let ne=new Uint8Array(m.getImageTranscodedSizeInBytes(K,R,0,b));if(!m.transcodeImage(ne,K,R,D,b,0,-1,-1))throw p(),new Error("THREE.KTX2Loader: .transcodeImage failed.");H.push(ne)}let N=d(H);O.push({data:N,width:z,height:F}),U.push(N.buffer)}G.push({mipmaps:O,width:x,height:_,format:w})}return p(),{faces:G,buffers:U,width:x,height:_,hasAlpha:C,format:w,dfdTransferFn:M,dfdFlags:E}}let l=[{if:"astcSupported",basisFormat:[r.UASTC_4x4],transcoderFormat:[s.ASTC_4x4,s.ASTC_4x4],engineFormat:[i.RGBA_ASTC_4x4_Format,i.RGBA_ASTC_4x4_Format],priorityETC1S:1/0,priorityUASTC:1,needsPowerOfTwo:!1},{if:"bptcSupported",basisFormat:[r.ETC1S,r.UASTC_4x4],transcoderFormat:[s.BC7_M5,s.BC7_M5],engineFormat:[i.RGBA_BPTC_Format,i.RGBA_BPTC_Format],priorityETC1S:3,priorityUASTC:2,needsPowerOfTwo:!1},{if:"dxtSupported",basisFormat:[r.ETC1S,r.UASTC_4x4],transcoderFormat:[s.BC1,s.BC3],engineFormat:[i.RGB_S3TC_DXT1_Format,i.RGBA_S3TC_DXT5_Format],priorityETC1S:4,priorityUASTC:5,needsPowerOfTwo:!1},{if:"etc2Supported",basisFormat:[r.ETC1S,r.UASTC_4x4],transcoderFormat:[s.ETC1,s.ETC2],engineFormat:[i.RGB_ETC2_Format,i.RGBA_ETC2_EAC_Format],priorityETC1S:1,priorityUASTC:3,needsPowerOfTwo:!1},{if:"etc1Supported",basisFormat:[r.ETC1S,r.UASTC_4x4],transcoderFormat:[s.ETC1],engineFormat:[i.RGB_ETC1_Format],priorityETC1S:2,priorityUASTC:4,needsPowerOfTwo:!1},{if:"pvrtcSupported",basisFormat:[r.ETC1S,r.UASTC_4x4],transcoderFormat:[s.PVRTC1_4_RGB,s.PVRTC1_4_RGBA],engineFormat:[i.RGB_PVRTC_4BPPV1_Format,i.RGBA_PVRTC_4BPPV1_Format],priorityETC1S:5,priorityUASTC:6,needsPowerOfTwo:!0}],c=l.sort(function(g,m){return g.priorityETC1S-m.priorityETC1S}),h=l.sort(function(g,m){return g.priorityUASTC-m.priorityUASTC});function f(g,m,p,A){let x,_,v=g===r.ETC1S?c:h;for(let y=0;y<v.length;y++){let S=v[y];if(!!n[S.if]&&!!S.basisFormat.includes(g)&&!(A&&S.transcoderFormat.length<2)&&!(S.needsPowerOfTwo&&!(u(m)&&u(p))))return x=S.transcoderFormat[A?1:0],_=S.engineFormat[A?1:0],{transcoderFormat:x,engineFormat:_}}return console.warn("THREE.KTX2Loader: No suitable compressed texture format found. Decoding to RGBA32."),x=s.RGBA32,_=i.RGBAFormat,{transcoderFormat:x,engineFormat:_}}function u(g){return g<=2?!0:(g&g-1)===0&&g!==0}function d(g){if(g.length===1)return g[0];let m=0;for(let x=0;x<g.length;x++){let _=g[x];m+=_.byteLength}let p=new Uint8Array(m),A=0;for(let x=0;x<g.length;x++){let _=g[x];p.set(_,A),A+=_.byteLength}return p}};var tg={[109]:Dt,[97]:Dt,[37]:Dt,[43]:Dt,[103]:lr,[83]:lr,[16]:lr,[22]:lr,[100]:cr,[76]:cr,[15]:cr,[9]:cr},Fu={[109]:Lt,[97]:Wt,[37]:Pt,[43]:Pt,[103]:Lt,[83]:Wt,[16]:Pt,[22]:Pt,[100]:Lt,[76]:Wt,[15]:Pt,[9]:Pt},Fb={[43]:be,[22]:be,[15]:be};async function Pb(n,e=0){let{vkFormat:t}=n,i=Math.max(1,n.pixelWidth>>e),s=Math.max(1,n.pixelHeight>>e),r=Math.max(1,n.pixelDepth>>e);if(tg[t]===void 0)throw new Error("THREE.KTX2Loader: Unsupported vkFormat.");let o=n.levels[e],a,l;if(n.supercompressionScheme===0)a=o.levelData;else if(n.supercompressionScheme===2)Lu||(Lu=new Promise(async h=>{let f=new Gc;await f.init(),h(f)})),a=(await Lu).decode(o.levelData,o.uncompressedByteLength);else throw new Error("THREE.KTX2Loader: Unsupported supercompressionScheme.");Fu[t]===Lt?l=new Float32Array(a.buffer,a.byteOffset,a.byteLength/Float32Array.BYTES_PER_ELEMENT):Fu[t]===Wt?l=new Uint16Array(a.buffer,a.byteOffset,a.byteLength/Uint16Array.BYTES_PER_ELEMENT):l=a;let c=r===0?new tr(l,i,s):new oa(l,i,s,r);return c.type=Fu[t],c.format=tg[t],c.colorSpace=Fb[t]||Hn,c.needsUpdate=!0,Promise.resolve(c)}var Hc=class extends Ic{constructor(e){super(e),this.type=Wt}parse(e){let a=function(_,v){switch(_){case 1:console.error("THREE.RGBELoader Read Error: "+(v||""));break;case 2:console.error("THREE.RGBELoader Write Error: "+(v||""));break;case 3:console.error("THREE.RGBELoader Bad File Format: "+(v||""));break;default:case 4:console.error("THREE.RGBELoader: Error: "+(v||""))}return-1},f=`
3574
3574
  `,u=function(_,v,y){v=v||1024;let C=_.pos,M=-1,E=0,b="",w=String.fromCharCode.apply(null,new Uint16Array(_.subarray(C,C+128)));for(;0>(M=w.indexOf(f))&&E<v&&C<_.byteLength;)b+=w,E+=w.length,C+=128,w+=String.fromCharCode.apply(null,new Uint16Array(_.subarray(C,C+128)));return-1<M?(y!==!1&&(_.pos+=E+M+1),b+w.slice(0,M)):!1},d=function(_){let v=/^#\?(\S+)/,y=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,S=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,C=/^\s*FORMAT=(\S+)\s*$/,M=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,E={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0},b,w;if(_.pos>=_.byteLength||!(b=u(_)))return a(1,"no header found");if(!(w=b.match(v)))return a(3,"bad initial token");for(E.valid|=1,E.programtype=w[1],E.string+=b+`
3575
3575
  `;b=u(_),b!==!1;){if(E.string+=b+`
@@ -3638,7 +3638,7 @@ void main() {
3638
3638
 
3639
3639
  gl_FragColor = sum;
3640
3640
 
3641
- }`};var Pe,Ou=[0,.4,.7,1],dg=[.85,.62,.3,0],Ag=[new Ee(16777215),new Ee(16777215),new Ee(16777215),new Ee(16777215)],It={resolution:{value:new Ie(0,0)},color:{value:new Ee(16777215)},metalness:{value:1},uAlpha:{value:!1},colors:{value:Ag},positions:{value:Ou},opacities:{value:dg}},vt=new wo({autoPlace:!1}),zc=document.getElementById("gui-container"),ds=class{constructor(e){this.scene=new gc,this.camera=new yt(12,window.innerWidth/window.innerHeight,.1,1e4),this.apiService=e,this.camera.lookAt(0,0,0),this.canvas=document.querySelector("canvas.webgl"),this.renderer=new ha({canvas:this.canvas,alpha:!0,antialias:!0});let t=document.querySelector(".UIContainer"),i=t.clientWidth,s=t.offsetTop,r=window.innerWidth-i,o=window.innerHeight-s;this.renderer.setSize(r,o),this.renderer.setPixelRatio(Math.min(window.devicePixelRatio,2))}LoadEncryptedGlb(e,t,i){return it(this,null,function*(){let s=yield CA(t,i);if(!s||!s.decodedData)throw new Error("Asset auth error.");return new Promise(r=>{e.parse(s.decodedData,"",o=>{r({result:o})})})})}renderModel(e,t){return it(this,null,function*(){let i=new Oc;e&&(yield this.loadEyewearFromGLTF(i,e,this.renderer,t))})}updateMaterials(e){e.scene.traverse(t=>{t.isMesh&&t.material&&t.material.name=="Lenses"&&(Pe=new an({metalness:0,roughness:.05,ior:1,opacity:.6,clearcoat:1,color:new Ee(16777215),transparent:!0,shadowSide:Qt,depthWrite:!1}),t.material=Pe,Pe&&(Pe.onBeforeCompile=function(i){i.uniforms.resolution=It.resolution,i.uniforms.color=It.color,i.uniforms.uAlpha=It.uAlpha,i.uniforms.colors=It.colors,i.uniforms.positions=It.positions,i.uniforms.opacities=It.opacities,i.vertexShader=`
3641
+ }`};var Ue,Ou=[0,.4,.7,1],dg=[.85,.62,.3,0],Ag=[new ve(16777215),new ve(16777215),new ve(16777215),new ve(16777215)],At={resolution:{value:new Ie(0,0)},color:{value:new ve(16777215)},metalness:{value:1},uAlpha:{value:!1},colors:{value:Ag},positions:{value:Ou},opacities:{value:dg}},Et=new wo({autoPlace:!1}),zc=document.getElementById("gui-container"),ds=class{constructor(e){this.scene=new gc;let t=window.innerWidth*.7;this.camera=new Ct(12,t/window.innerHeight,.1,1e4),this.apiService=e,this.camera.lookAt(0,0,0),this.canvas=document.querySelector("canvas.webgl"),this.renderer=new ha({canvas:this.canvas,alpha:!0,antialias:!0}),this.renderer.setSize(t,window.innerHeight)}LoadEncryptedGlb(e,t,i){return it(this,null,function*(){let s=yield CA(t,i);if(!s||!s.decodedData)throw new Error("Asset auth error.");return new Promise(r=>{e.parse(s.decodedData,"",o=>{r({result:o})})})})}renderModel(e,t){return it(this,null,function*(){let i=new Oc;e&&(yield this.loadEyewearFromGLTF(i,e,this.renderer,t))})}updateMaterials(e){e.scene.traverse(t=>{t.isMesh&&t.material&&t.material.name=="Lenses"&&(Ue=new an({metalness:0,roughness:.05,ior:1,opacity:.6,clearcoat:1,color:new ve(16777215),transparent:!0,shadowSide:Qt,depthWrite:!1}),t.material=Ue,Ue&&(Ue.onBeforeCompile=function(i){i.uniforms.resolution=At.resolution,i.uniforms.color=At.color,i.uniforms.uAlpha=At.uAlpha,i.uniforms.colors=At.colors,i.uniforms.positions=At.positions,i.uniforms.opacities=At.opacities,i.vertexShader=`
3642
3642
  varying vec3 vPosition;
3643
3643
  varying vec3 localPosition;
3644
3644
  varying vec2 vUv;
@@ -3683,10 +3683,10 @@ void main() {
3683
3683
  diffuseColor.a = alpha;
3684
3684
  }
3685
3685
 
3686
- `)},Pe.matrixAutoUpdate=!0,Pe.needsUpdate=!0))})}loadEyewearFromGLTF(e,t,i,s){return it(this,null,function*(){let r=new ga,o=new on(r).setTranscoderPath("https://unpkg.com/three@0.146.0/examples/js/libs/basis/");e.setKTX2Loader(o.detectSupport(i));let a=s,l=t.includes(".glb"),c;return l?c=yield e.loadAsync(t):(c=yield this.LoadEncryptedGlb(e,t,a),console.log(c),this.updateMaterials(c.result),this.setupAndRenderScene(c.result.scene)),c==null?void 0:c.scene})}setupDropdownAndListeners(e){return it(this,null,function*(){let t=document.getElementById("Framedropdown"),i=document.getElementById("FramedropdownBtn");Array.isArray(e.variants)?e.variants.forEach((s,r)=>{let o=document.createElement("li"),a=document.createElement("div");a.id="FrameDetailsContainer",a.classList.add("FramedropdownStyle"),a.setAttribute("data-id",s._id);let l=document.createElement("div");l.classList.add("detalisWrapper");let c=document.createElement("img");c.id="FramedropdownImg",c.src=s.variantImage,c.alt=s.name;let h=document.createElement("div");h.id="FramedropdownName",h.textContent=s.name;let f=document.createElement("div");f.id="FramedropdownSku",f.textContent=s.sku,a.appendChild(c),a.appendChild(l),l.appendChild(h),l.appendChild(f),o.appendChild(a),t==null||t.appendChild(o)}):console.error('The "variants" property is not an array in the JSON data.'),t&&t.addEventListener("mousedown",s=>it(this,null,function*(){if(s.target.matches("div")){let r=s.target;if(r.style.background="#ff00ff",r.getAttribute("data-id")){let a=yield this.apiService.DownloadMA({orgId:this.apiService.fetcher.config.ORGID,assetsId:r.getAttribute("data-id")});this.renderModel(a.asset.cloudfrontUrl,a.decryptionKey),i.innerHTML=r.innerHTML}}t.style.display="none"})),i.addEventListener("mousedown",()=>{t.style.display="block"})})}setuLensDropdownAndListeners(e){return it(this,null,function*(){let t=document.getElementById("Lensdropdown"),i=document.getElementById("LensdropdownBtn");Array.isArray(e.data)?e.data.forEach(s=>{let r=document.createElement("li"),o=document.createElement("div");o.id="LensdetailsContainer",o.setAttribute("data-color",s.color),o.setAttribute("data-opacity",s.opacity),o.setAttribute("data-metalness",s.metalness),o.setAttribute("data-finish",s.finish),o.setAttribute("data-roughness",s.roughness),o.classList.add("LensdropdownStyle");let a=document.createElement("div");a.classList.add("LensdetalisWrapper");let l=document.createElement("img");l.id="LensdropdownImg",l.style.background=s.color;let c=document.createElement("div");c.id="LensropdownName",c.textContent=s.name;let h=document.createElement("div");h.id="LensropdownSku",h.textContent=s.metadata[0].value,o.appendChild(l),o.appendChild(a),a.appendChild(c),a.appendChild(h),r.appendChild(o),t==null||t.appendChild(r)}):console.error('The "variants" property is not an array in the JSON data.'),t&&t.addEventListener("mousedown",s=>it(this,null,function*(){if(s.target.matches("div")){let r=s.target;r.style.background="#ff00ff",Pe&&r.getAttribute("data-color")&&(Pe.color=new Ee(r.getAttribute("data-color")),It.uAlpha.value=!1,r.getAttribute("data-finish")=="MIRBLKHMC"?(Pe.clearcoat=1,Pe.clearcoatRoughness=0):r.getAttribute("data-finish")=="HMCCR"?(Pe.clearcoat=0,Pe.clearcoatRoughness=1):r.getAttribute("data-finish")=="MIRSILHMC"&&(Pe.clearcoat=1,Pe.clearcoatRoughness=0),Pe.roughness=r.getAttribute("data-roughness"),console.log(Pe.roughness),Pe.metalness=r.getAttribute("data-metalness"),Pe.opacity=r.getAttribute("data-opacity"))}t.style.display="none"})),i.addEventListener("mousedown",()=>{t.style.display="block"})})}setuLensDefault(e){return it(this,null,function*(){Pe&&(console.log("leen",e),Pe.color=new Ee(e.customisation[0].color),Pe.opacity=e.customisation[0].opacity,Pe.metalness=e.customisation[0].metalness,Pe.roughness=e.customisation[0].roughness,e.customisation[0].finish=="MIRBLKHMC"?(Pe.clearcoat=1,Pe.clearcoatRoughness=0):e.customisation[0].finish=="HMCCR"?(Pe.clearcoat=0,Pe.clearcoatRoughness=1):e.customisation[0].finish=="MIRSILHMC"&&(Pe.clearcoat=1,Pe.clearcoatRoughness=0))})}createGuiControls(e,t){zc.innerHTML="",vt.destroy(),vt=new wo({autoPlace:!1});let i=document.createElement("div");zc.appendChild(i),i.appendChild(vt.domElement),vt.add(e,"opacity",0,1).name("Opacity").onChange(function(o){Pe&&(Pe.opacity=o)}),vt.addColor(e,"color").name(t).onChange(function(o){Pe&&Pe.color.set(o)})}createGuiControlsGrad(e,t){zc.innerHTML="",vt.destroy(),vt=new wo({autoPlace:!1});let i=document.createElement("div");zc.appendChild(i),i.appendChild(vt.domElement);let s=vt.add(e[0],"position",0,1).name("position"),r=vt.add(e[1],"position",0,1).name("position"),o=vt.add(e[2],"position",0,1).name("position"),a=vt.add(e[3],"position",0,1).name("position");s.onChange(function(p){Pe&&(It.positions.value[0]=p)}),r.onChange(function(p){Pe&&(It.positions.value[1]=p)}),o.onChange(function(p){Pe&&(It.positions.value[2]=p)}),a.onChange(function(p){Pe&&(It.positions.value[3]=p)});let l=vt.add(e[0],"opacity",0,1).name("Opacity"),c=vt.add(e[1],"opacity",0,1).name("Opacity"),h=vt.add(e[2],"opacity",0,1).name("Opacity"),f=vt.add(e[3],"opacity",0,1).name("Opacity");l.onChange(function(p){Pe&&(It.opacities.value[0]=p)}),c.onChange(function(p){Pe&&(It.opacities.value[1]=p)}),h.onChange(function(p){Pe&&(It.opacities.value[2]=p)}),f.onChange(function(p){Pe&&(It.opacities.value[3]=p)});let u=vt.addColor(e[0],"color").name(t),d=vt.addColor(e[1],"color").name(t),g=vt.addColor(e[2],"color").name(t),m=vt.addColor(e[3],"color").name(t);u.onChange(function(p){Pe&&(It.colors.value[0]=new Ee(p))}),d.onChange(function(p){Pe&&(It.colors.value[1]=new Ee(p))}),g.onChange(function(p){Pe&&(It.colors.value[2]=new Ee(p))}),m.onChange(function(p){Pe&&(It.colors.value[3]=new Ee(p))})}setupAndRenderScene(e){this.scene.remove(this.scene.children[0],this.scene.children[2]),console.log(this.scene);let t=e;new Hc().load("https://threejs.org/examples/textures/equirectangular/royal_esplanade_1k.hdr",S=>{let C=S;C.mapping=sa,this.scene.environment=C}),this.scene.add(t),t.scale.set(7,7,7),t.position.y-=.08,this.scene.add(this.camera);let s=new Nc(this.camera,this.canvas);s.target.set(.003059340956040225,-.13425621157020154,-.2564218846390263),this.camera.position.set(4.1833384904942355,.22167120846009788,3.1674384468981134),s.minDistance=3,s.maxDistance=9,s.dampingFactor=.2,s.enablePan=!0,s.minPolarAngle=-Math.PI*5/36,s.maxPolarAngle=Math.PI*3/5,s.update(),s.enableDamping=!0,this.renderer.toneMapping=Vh,this.renderer.toneMappingExposure=2,this.renderer.useLegacyLights=!0;let r=2.5,o=2.5,a=.4,l={shadow:{blur:.9,darkness:.9,opacity:.6},plane:{color:"#ffffff",opacity:1},showWireframe:!1},c=new fn;c.position.y=-.3,this.scene.add(c);let h=new pn(256,256);h.texture.generateMipmaps=!1;let f=new pn(256,256);f.texture.generateMipmaps=!1;let u=new os(r,o).rotateX(Math.PI/2),d=new mn({map:h.texture,opacity:l.shadow.opacity,transparent:!0,depthWrite:!1}),g=new Ft(u,d);g.renderOrder=1,c.add(g),g.scale.y=-1;let m=new Ft(u);m.visible=!1,c.add(m);let p=new Ti(-r/2,r/2,o/2,-o/2,0,a);p.rotation.x=Math.PI/2,c.add(p);let A=new la;A.userData.darkness={value:l.shadow.darkness},A.onBeforeCompile=S=>{let C=S;C.uniforms.darkness=A.userData.darkness,C.fragmentShader=`
3686
+ `)},Ue.matrixAutoUpdate=!0,Ue.needsUpdate=!0))})}loadEyewearFromGLTF(e,t,i,s){return it(this,null,function*(){let r=new ga,o=new on(r).setTranscoderPath("https://unpkg.com/three@0.146.0/examples/js/libs/basis/");e.setKTX2Loader(o.detectSupport(i));let a=s,l=t.includes(".glb"),c;return l?c=yield e.loadAsync(t):(c=yield this.LoadEncryptedGlb(e,t,a),this.updateMaterials(c.result),this.setupAndRenderScene(c.result.scene)),c==null?void 0:c.scene})}setupDropdownAndListeners(e){return it(this,null,function*(){let t=document.getElementById("Framedropdown"),i=document.getElementById("FramedropdownBtn"),s=document.getElementById("FrameContainer"),r=document.getElementById("frameName");r.textContent=e.group.name,Array.isArray(e.variants)?e.variants.forEach((o,a)=>{let l=document.createElement("li"),c=document.createElement("div");c.id="FrameDetailsContainer",c.classList.add("FramedropdownStyle"),c.setAttribute("data-id",o._id);let h=document.createElement("div");h.classList.add("detalisWrapper");let f=document.createElement("img");f.id="FramedropdownImg",f.src=o.variantImage,f.alt=o.name;let u=document.createElement("div");u.id="FramedropdownName",u.textContent=o.name;let d=document.createElement("div");d.id="FramedropdownDesc",d.textContent=o.sku,c.appendChild(f),c.appendChild(h),h.appendChild(u),h.appendChild(d),l.appendChild(c),t==null||t.appendChild(l)}):console.error('The "variants" property is not an array in the JSON data.'),t&&t.addEventListener("mousedown",o=>it(this,null,function*(){if(o.target.matches("div")){let a=o.target;if(a.style.background="#f2f2f2",a.getAttribute("data-id")){let c=yield this.apiService.DownloadMA({orgId:this.apiService.fetcher.config.ORGID,assetsId:a.getAttribute("data-id")});this.renderModel(c.asset.cloudfrontUrl,c.decryptionKey),s.innerHTML=a.innerHTML}}t.style.display="none"})),i.addEventListener("mousedown",()=>{t.style.display==="block"?t.style.display="none":t.style.display="block"})})}setupLensDropdownAndListeners(e){return it(this,null,function*(){let t=document.getElementById("Lensdropdown"),i=document.getElementById("LensdropdownBtn"),s=document.getElementById("LensContainer");Array.isArray(e.data)?e.data.forEach(r=>{if(r.name!="CLEAR"){let o=document.createElement("li"),a=document.createElement("div");a.id="LensdetailsContainer",r.direction=="u"?a.setAttribute("data-color",r.color):a.setAttribute("data-color",JSON.stringify(r.gradientColors)),a.setAttribute("data-direction",r.direction),a.setAttribute("data-opacity",r.opacity),a.setAttribute("data-metalness",r.metalness),a.setAttribute("data-finish",r.finish),a.setAttribute("data-roughness",r.roughness),a.setAttribute("data-name",r.name),a.setAttribute("data-desc",r.metadata[0].value),a.setAttribute("data-price",r.price),a.classList.add("LensdropdownStyle");let l=document.createElement("div");l.classList.add("LensdetalisWrapper");let c=document.createElement("img");c.id="LensdropdownImg",c.style.background=r.color;let h=document.createElement("div");h.textContent=r.name;let f=document.createElement("div");f.textContent=r.metadata[0].value,a.appendChild(c),a.appendChild(l),l.appendChild(h),l.appendChild(f),o.appendChild(a),t==null||t.appendChild(o)}}):console.error('The "variants" property is not an array in the JSON data.'),t&&t.addEventListener("mousedown",r=>it(this,null,function*(){if(r.target.matches("div")){console.log(r.target,r);let o=r.target;if(o.style.background="#f2f2f2",Ue){if(o.getAttribute("data-direction")=="u"){Ue.color=new ve(o.getAttribute("data-color")),Ue.opacity=o.getAttribute("data-opacity"),At.uAlpha.value=!1;let h=document.getElementById("LensdropdownImgD");h.style.background=o.getAttribute("data-color")}else if(o.getAttribute("data-direction")=="tb"){let h=JSON.parse(o.getAttribute("data-color"));At.uAlpha.value=!0;let f=0;h.forEach(()=>{At.colors.value[f]=new ve(h[f].color),At.positions.value[f]=h[f].position,At.opacities.value[f]=h[f].alpha,f++})}o.getAttribute("data-finish")=="MIRBLKHMC"?(Ue.clearcoat=1,Ue.clearcoatRoughness=0):o.getAttribute("data-finish")=="HMCCR"?(Ue.clearcoat=0,Ue.clearcoatRoughness=1):o.getAttribute("data-finish")=="MIRSILHMC"&&(Ue.clearcoat=1,Ue.clearcoatRoughness=0),Ue.roughness=o.getAttribute("data-roughness"),Ue.metalness=o.getAttribute("data-metalness");let a=document.getElementById("LensdropdownNameD");a.textContent=o.getAttribute("data-name");let l=document.getElementById("LensdropdownSkuD");l.textContent=o.getAttribute("data-desc");let c=document.getElementById("lensPrice");c.textContent="+ $"+o.getAttribute("data-price")+".00 USD"}}t.style.display="none"})),i.addEventListener("mousedown",()=>{t.style.display==="block"?t.style.display="none":t.style.display="block"})})}setupLensDefault(e){return it(this,null,function*(){Ue&&(console.log("leen",e),Ue.color=new ve(e.customisation[0].color),Ue.opacity=e.customisation[0].opacity,Ue.metalness=e.customisation[0].metalness,Ue.roughness=e.customisation[0].roughness,e.customisation[0].finish=="MIRBLKHMC"?(Ue.clearcoat=1,Ue.clearcoatRoughness=0):e.customisation[0].finish=="HMCCR"?(Ue.clearcoat=0,Ue.clearcoatRoughness=1):e.customisation[0].finish=="MIRSILHMC"&&(Ue.clearcoat=1,Ue.clearcoatRoughness=0))})}createGuiControls(e,t){zc.innerHTML="",Et.destroy(),Et=new wo({autoPlace:!1});let i=document.createElement("div");zc.appendChild(i),i.appendChild(Et.domElement),Et.add(e,"opacity",0,1).name("Opacity").onChange(o=>{Ue&&(Ue.opacity=o)}),Et.addColor(e,"color").name(t).onChange(o=>{Ue&&Ue.color.set(o)})}createGuiControlsGrad(e,t){zc.innerHTML="",Et.destroy(),Et=new wo({autoPlace:!1});let i=document.createElement("div");zc.appendChild(i),i.appendChild(Et.domElement);let s=Et.add(e[0],"position",0,1).name("position"),r=Et.add(e[1],"position",0,1).name("position"),o=Et.add(e[2],"position",0,1).name("position"),a=Et.add(e[3],"position",0,1).name("position");s.onChange(p=>{Ue&&(At.positions.value[0]=p)}),r.onChange(p=>{Ue&&(At.positions.value[1]=p)}),o.onChange(p=>{Ue&&(At.positions.value[2]=p)}),a.onChange(p=>{Ue&&(At.positions.value[3]=p)});let l=Et.add(e[0],"opacity",0,1).name("Opacity"),c=Et.add(e[1],"opacity",0,1).name("Opacity"),h=Et.add(e[2],"opacity",0,1).name("Opacity"),f=Et.add(e[3],"opacity",0,1).name("Opacity");l.onChange(p=>{Ue&&(At.opacities.value[0]=p)}),c.onChange(p=>{Ue&&(At.opacities.value[1]=p)}),h.onChange(p=>{Ue&&(At.opacities.value[2]=p)}),f.onChange(p=>{Ue&&(At.opacities.value[3]=p)});let u=Et.addColor(e[0],"color").name(t),d=Et.addColor(e[1],"color").name(t),g=Et.addColor(e[2],"color").name(t),m=Et.addColor(e[3],"color").name(t);u.onChange(p=>{Ue&&(At.colors.value[0]=new ve(p))}),d.onChange(p=>{Ue&&(At.colors.value[1]=new ve(p))}),g.onChange(p=>{Ue&&(At.colors.value[2]=new ve(p))}),m.onChange(p=>{Ue&&(At.colors.value[3]=new ve(p))})}setupAndRenderScene(e){this.scene.remove(this.scene.children[0],this.scene.children[2]);let t=e;new Hc().load("https://threejs.org/examples/textures/equirectangular/royal_esplanade_1k.hdr",S=>{let C=S;C.mapping=sa,this.scene.environment=C}),this.scene.add(t),t.scale.set(7,7,7),t.position.y-=.08,this.scene.add(this.camera);let s=new Nc(this.camera,this.canvas);s.target.set(.003059340956040225,-.13425621157020154,-.2564218846390263),this.camera.position.set(4.1833384904942355,.22167120846009788,3.1674384468981134),s.minDistance=3,s.maxDistance=9,s.dampingFactor=.2,s.enablePan=!0,s.minPolarAngle=-Math.PI*5/36,s.maxPolarAngle=Math.PI*3/5,s.update(),s.enableDamping=!0,this.renderer.toneMapping=Vh,this.renderer.toneMappingExposure=1.5,this.renderer.useLegacyLights=!0;let r=2.5,o=2.5,a=.4,l={shadow:{blur:.9,darkness:.9,opacity:.6},plane:{color:"#ffffff",opacity:1},showWireframe:!1},c=new fn;c.position.y=-.315,this.scene.add(c);let h=new pn(256,256);h.texture.generateMipmaps=!1;let f=new pn(256,256);f.texture.generateMipmaps=!1;let u=new os(r,o).rotateX(Math.PI/2),d=new mn({map:h.texture,opacity:l.shadow.opacity,transparent:!0,depthWrite:!1}),g=new Ft(u,d);g.renderOrder=1,c.add(g),g.scale.y=-1;let m=new Ft(u);m.visible=!1,c.add(m);let p=new Ti(-r/2,r/2,o/2,-o/2,0,a);p.rotation.x=Math.PI/2,c.add(p);let A=new la;A.userData.darkness={value:l.shadow.darkness},A.onBeforeCompile=S=>{let C=S;C.uniforms.darkness=A.userData.darkness,C.fragmentShader=`
3687
3687
  uniform float darkness;
3688
3688
  ${S.fragmentShader.replace("gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );","gl_FragColor = vec4( vec3( 0.0 ), ( 1.0 - fragCoordZ ) * darkness );")}
3689
- `},A.depthTest=!1,A.depthWrite=!1;let x=new _n(ug);x.depthTest=!1;let _=new _n(fg);_.depthTest=!1;function v(S,C){m.visible=!0,m.material=x,m.material.uniforms.tDiffuse.value=h.texture,x.uniforms.h.value=S*1/256,C.setRenderTarget(f),C.render(m,p),m.material=_,m.material.uniforms.tDiffuse.value=f.texture,_.uniforms.v.value=S*1/256,C.setRenderTarget(h),C.render(m,p),m.visible=!1}let y=()=>{s.update();let S=this.scene.background;this.scene.background=null,this.scene.overrideMaterial=A;let C=this.renderer.getClearAlpha();this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(h),this.renderer.render(this.scene,p),this.scene.overrideMaterial=null,v(l.shadow.blur,this.renderer),v(l.shadow.blur*.4,this.renderer),this.renderer.setRenderTarget(null),this.renderer.setClearAlpha(C),this.scene.background=S,this.renderer.render(this.scene,this.camera),requestAnimationFrame(y)};y()}};var{warn:pg}=console,fr=class{constructor({log:e,logErr:t,apiService:i,metaData:s,config:r}){this.config=r,this.apiService=i,this.metaData=s,this.apiKey=null,this.scriptStreamEncoderId=`sprie-embed\u{1F534}${Date.now().toString()}`,this.rawNodeList=document.getElementsByClassName(this.metaData.targetClassName),this.targetNodeList=[],this.status="init",this.isLoaded=!1,this.loadCount=0,this.loaderName="sprie-embed-loader",this.log=e.bind(this),this.logErr=t.bind(this),this.mutationObserver=null}loadMesage(){this.log(`\u{1F680} Loaded SprieEmbed @${this.metaData.appVersion} (${this.config.host.replace(/^https?:\/\//,"").replace(/\/$/,"").replace(".sprie.io","@sprie")})`)}scanApiKeyFromCurrentScriptTag(){let e=document.currentScript;if(!e)return;let t=e==null?void 0:e.getAttribute("src");if(!t)return;let i=new URLSearchParams(t.substring(t.indexOf("?")));this.apiKey=(i==null?void 0:i.get("apikey"))||(i==null?void 0:i.get("apiKey")),this.apiKey&&(e==null||e.setAttribute("data-enc-stream-id",this.scriptStreamEncoderId))}prepareTargetNodeList(){if(this.status="preparing",!this.apiService.isAuthenticated||!this.apiKey||this.apiService.fetcher.IsConfigExpired())throw new Error("Sprie not authenticated");for(let e=0;e<this.rawNodeList.length;e+=1){let t=this.rawNodeList[e],i=t.getAttribute("data-sprie-sku")||t.getAttribute("data-sku"),s=t.getAttribute("data-sprie-barcode"),r=t.getAttribute("data-class")||"",o=t;o.style.position="relative",o.style.height="max-content";let a={id:`sprie-embed-${this.apiService.fetcher.config.ORGID}-${s||i}-${Math.ceil(Math.random()*1e5)}`,htmlNode:t,sku:i,barcode:s,status:"loading",customClass:r,customOptions:t.getAttribute("data-model-options")||""};this.targetNodeList.push(a)}}authenticate(){return it(this,null,function*(){if(Sn.AuthLoading({isLoading:!0}),this.status="authenticating",!this.apiService.isAuthenticated){if(!this.apiKey)throw Sn.AuthLoading({isLoading:!1}),Sn.AuthErr({err:"APIKey missing."}),new Error("Sprie: Unable to authenticate. Need APIKey.");yield this.apiService.Authenticate(this.apiKey),this.apiService.isAuthenticated||(Sn.AuthLoading({isLoading:!1}),Sn.AuthErr({err:"Auth Failed. Check apikey and/or expiration."}),this.logErr("Authentication failed! Check apikey and/or expiration.")),Sn.AuthLoading({isLoading:!1}),Sn.AuthDone()}})}fetchData(e){return it(this,null,function*(){let t=hi({},e);if(!e.barcode&&!e.sku)return pg(`Pass either "data-sprie-barcode" or "data-spri-sku". Received neither for ${e.htmlNode.tagName}`),null;try{let i=yield this.apiService.FetchAssetBySKUOrBarcode({barcode:e.barcode,sku:e.sku});if(i&&this.apiService.fetcher.config.ORGID){t.status="loaded",t.title=i.name;let s=yield this.apiService.DownloadMA({orgId:this.apiService.fetcher.config.ORGID,assetsId:i._id}),r=new ds(this.apiService);if(s){r.renderModel(s.asset.cloudfrontUrl,s.decryptionKey),r.setupDropdownAndListeners(i),r.setuLensDefault(i);let o=yield this.apiService.FetchCustomisationList();r.setuLensDropdownAndListeners(o)}}i!=null&&i._id&&this.apiService.HandleAssetUsage(i._id)}catch(i){pg("Error fetching or downloading asset:",i)}return t})}fetchAllData(){return it(this,null,function*(){this.status="fetching",Sn.FetchingData(),this.targetNodeList=yield Promise.all(this.targetNodeList.map(e=>e?this.fetchData(e):null))})}addTargetNodeChangeListener(){var i;if(!this.apiService.isAuthenticated||!this.apiKey||this.apiService.fetcher.IsConfigExpired())throw new Error("Sprie not authenticated");let e=this.apiService.fetcher.config.ORGID,t=s=>it(this,null,function*(){s.forEach(r=>it(this,null,function*(){if(r.type==="attributes"&&(r.attributeName==="data-sku"||r.attributeName==="data-sprie-sku"||r.attributeName==="data-sprie-barcode")){let o=this.targetNodeList.find(c=>(c==null?void 0:c.htmlNode)===r.target),a=r.target.dataset,l=a.sprieSku||a.sprieBarcode||a.sku;if(o){o.id=`sprie-embed-${e}-${l}-${Math.ceil(Math.random()*1e5)}`,(a.sprieSku||a.sku)&&(o.sku=l||""),a.sprieBarcode&&(o.barcode=l||"");let c=yield this.fetchData(o),h=o.htmlNode.querySelector("iframe");if(h&&c){let f=c.content+this.metaData.previewUrlPrams+c.customOptions||"";h.setAttribute("src",f)}}}}))});this.mutationObserver=new MutationObserver(t);for(let s=0;s<this.targetNodeList.length;s+=1){let r=(i=this.targetNodeList[s])==null?void 0:i.htmlNode;r&&this.mutationObserver.observe(r,{attributes:!0,attributeOldValue:!0})}}mountElement(){this.status="loading",this.targetNodeList.map(e=>it(this,null,function*(){if(!(e!=null&&e.content))return;let t=e,i=document.createElement("iframe");i.id=t.id;let s=t.content+this.metaData.previewUrlPrams+t.customOptions||"";i.setAttribute("title",t.title||""),i.setAttribute("frameborder","0"),i.setAttribute("marginheight","0"),i.setAttribute("marginwidth","0"),i.setAttribute("marginheight","0"),t.customClass&&i.classList.add(t.customClass),i.setAttribute("src",s),t.htmlNode.appendChild(i),this.loadCount+=1})),Sn.EmbedLoaded()}Unmount(){this.targetNodeList.length===0&&this.logErr("No targetNode found! Nothing to Unmount."),this.targetNodeList.forEach(e=>{if(e&&e.htmlNode){let t=e.htmlNode;t.textContent=""}}),this.isLoaded=!1,this.targetNodeList=[],this.mutationObserver&&this.mutationObserver.disconnect()}showLoader(){this.targetNodeList.map(e=>it(this,null,function*(){if(!(e!=null&&e.content))return;let t=e,i=document.createElement("div");i.setAttribute("class",this.loaderName),i.style.position="absolute",i.style.boxSizing="border-box",i.style.width="100%",i.style.display="flex",i.style.height="100%",i.style.backgroundColor="#00000032",i.style.zIndex="9998",i.style.justifyContent="center",i.style.accentColor="center",i.style.left="0",i.style.top="0",i.style.backdropFilter="blur(6px)";let s=document.createElement("div");s.style.position="relative",s.style.left="-9999px",s.style.top="45%",s.style.zIndex="9999",s.style.height="15px",s.style.width="15px",s.style.color="white",s.style.boxShadow="9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045",s.style.borderRadius="8px",s.style.animation=" dotTyping 1s infinite linear",s.animate([{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px -10px 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px -10px 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px -10px 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"}],{duration:1e3,iterations:1/0}),i.appendChild(s),t==null||t.htmlNode.appendChild(i)}))}hideLoader(){let e=document.querySelectorAll(`[class='${this.loaderName}']`),t=0;for(;t<=e.length;)e[t]&&(e[t].style.display="none"),t+=1}Init(){return it(this,null,function*(){this.loadMesage();try{return this.scanApiKeyFromCurrentScriptTag(),yield this.authenticate(),this.prepareTargetNodeList(),this.addTargetNodeChangeListener(),yield this.fetchAllData(),this.showLoader(),yield this.mountElement(),this.status="done",this.isLoaded=!0,this.log(`SprieEmbed Loaded ${this.loadCount} embeds on this page`),this.isLoaded&&setTimeout(()=>{this.hideLoader()},1800),!0}catch(e){return this.log("SprieEmbed Loading failed."),this.logErr(e),this.isLoaded=!1,!1}})}};var{log:Ub,error:Nb}=console,Ob=(...n)=>{Nb("\u274C Sprie Error:",...n)},kb="&ui_animations=0&ui_infos=0&ui_stop=0&ui_inspector=0&ui_watermark_link=0&ui_watermark=0&ui_ar=0&ui_help=0&ui_settings=0&ui_vr=0&ui_fullscreen=0&ui_annotations=0&ui_start=0&",Qb={HOST:ba.host,STORE_PREFIX:ba.storePrefix},Gb=new As(new pr(Qb)),Hb=new ds,zb={apiService:Gb,config:ba,log:Ub,logErr:Ob,metaData:{appVersion:Xu,previewUrlPrams:kb,targetClassName:"sprie-embed-element"},customRenderer:Hb},Vb=new fr(zb);Vb.Init();})();
3689
+ `},A.depthTest=!1,A.depthWrite=!1;let x=new _n(ug);x.depthTest=!1;let _=new _n(fg);_.depthTest=!1;function v(S,C){m.visible=!0,m.material=x,m.material.uniforms.tDiffuse.value=h.texture,x.uniforms.h.value=S*1/256,C.setRenderTarget(f),C.render(m,p),m.material=_,m.material.uniforms.tDiffuse.value=f.texture,_.uniforms.v.value=S*1/256,C.setRenderTarget(h),C.render(m,p),m.visible=!1}let y=()=>{s.update();let S=this.scene.background;this.scene.background=null,this.scene.overrideMaterial=A;let C=this.renderer.getClearAlpha();this.renderer.setClearAlpha(0),this.renderer.setRenderTarget(h),this.renderer.render(this.scene,p),this.scene.overrideMaterial=null,v(l.shadow.blur,this.renderer),v(l.shadow.blur*.4,this.renderer),this.renderer.setRenderTarget(null),this.renderer.setClearAlpha(C),this.scene.background=S,this.renderer.render(this.scene,this.camera),requestAnimationFrame(y)};y()}};var{warn:pg}=console,fr=class{constructor({log:e,logErr:t,apiService:i,metaData:s,config:r}){this.config=r,this.apiService=i,this.metaData=s,this.apiKey=null,this.scriptStreamEncoderId=`sprie-embed\u{1F534}${Date.now().toString()}`,this.rawNodeList=document.getElementsByClassName(this.metaData.targetClassName),this.targetNodeList=[],this.status="init",this.isLoaded=!1,this.loadCount=0,this.loaderName="sprie-embed-loader",this.log=e.bind(this),this.logErr=t.bind(this),this.mutationObserver=null}loadMesage(){this.log(`\u{1F680} Loaded SprieEmbed @${this.metaData.appVersion} (${this.config.host.replace(/^https?:\/\//,"").replace(/\/$/,"").replace(".sprie.io","@sprie")})`)}scanApiKeyFromCurrentScriptTag(){let e=document.currentScript;if(!e)return;let t=e==null?void 0:e.getAttribute("src");if(!t)return;let i=new URLSearchParams(t.substring(t.indexOf("?")));this.apiKey=(i==null?void 0:i.get("apikey"))||(i==null?void 0:i.get("apiKey")),this.apiKey&&(e==null||e.setAttribute("data-enc-stream-id",this.scriptStreamEncoderId))}prepareTargetNodeList(){if(this.status="preparing",!this.apiService.isAuthenticated||!this.apiKey||this.apiService.fetcher.IsConfigExpired())throw new Error("Sprie not authenticated");for(let e=0;e<this.rawNodeList.length;e+=1){let t=this.rawNodeList[e],i=t.getAttribute("data-sprie-sku")||t.getAttribute("data-sku"),s=t.getAttribute("data-sprie-barcode"),r=t.getAttribute("data-class")||"",o=t;o.style.position="relative",o.style.height="max-content";let a={id:`sprie-embed-${this.apiService.fetcher.config.ORGID}-${s||i}-${Math.ceil(Math.random()*1e5)}`,htmlNode:t,sku:i,barcode:s,status:"loading",customClass:r,customOptions:t.getAttribute("data-model-options")||""};this.targetNodeList.push(a)}}authenticate(){return it(this,null,function*(){if(Sn.AuthLoading({isLoading:!0}),this.status="authenticating",!this.apiService.isAuthenticated){if(!this.apiKey)throw Sn.AuthLoading({isLoading:!1}),Sn.AuthErr({err:"APIKey missing."}),new Error("Sprie: Unable to authenticate. Need APIKey.");yield this.apiService.Authenticate(this.apiKey),this.apiService.isAuthenticated||(Sn.AuthLoading({isLoading:!1}),Sn.AuthErr({err:"Auth Failed. Check apikey and/or expiration."}),this.logErr("Authentication failed! Check apikey and/or expiration.")),Sn.AuthLoading({isLoading:!1}),Sn.AuthDone()}})}fetchData(e){return it(this,null,function*(){let t=hi({},e);if(!e.barcode&&!e.sku)return pg(`Pass either "data-sprie-barcode" or "data-spri-sku". Received neither for ${e.htmlNode.tagName}`),null;try{let i=yield this.apiService.FetchAssetBySKUOrBarcode({barcode:e.barcode,sku:e.sku});if(i&&this.apiService.fetcher.config.ORGID){t.status="loaded",t.title=i.name;let s=yield this.apiService.DownloadMA({orgId:this.apiService.fetcher.config.ORGID,assetsId:i._id}),r=new ds(this.apiService);if(s){r.renderModel(s.asset.cloudfrontUrl,s.decryptionKey),r.setupDropdownAndListeners(i),r.setupLensDefault(i);let o=yield this.apiService.FetchCustomisationList();r.setupLensDropdownAndListeners(o)}}i!=null&&i._id&&this.apiService.HandleAssetUsage(i._id)}catch(i){pg("Error fetching or downloading asset:",i)}return t})}fetchAllData(){return it(this,null,function*(){this.status="fetching",Sn.FetchingData(),this.targetNodeList=yield Promise.all(this.targetNodeList.map(e=>e?this.fetchData(e):null))})}addTargetNodeChangeListener(){var i;if(!this.apiService.isAuthenticated||!this.apiKey||this.apiService.fetcher.IsConfigExpired())throw new Error("Sprie not authenticated");let e=this.apiService.fetcher.config.ORGID,t=s=>it(this,null,function*(){s.forEach(r=>it(this,null,function*(){if(r.type==="attributes"&&(r.attributeName==="data-sku"||r.attributeName==="data-sprie-sku"||r.attributeName==="data-sprie-barcode")){let o=this.targetNodeList.find(c=>(c==null?void 0:c.htmlNode)===r.target),a=r.target.dataset,l=a.sprieSku||a.sprieBarcode||a.sku;if(o){o.id=`sprie-embed-${e}-${l}-${Math.ceil(Math.random()*1e5)}`,(a.sprieSku||a.sku)&&(o.sku=l||""),a.sprieBarcode&&(o.barcode=l||"");let c=yield this.fetchData(o),h=o.htmlNode.querySelector("iframe");if(h&&c){let f=c.content+this.metaData.previewUrlPrams+c.customOptions||"";h.setAttribute("src",f)}}}}))});this.mutationObserver=new MutationObserver(t);for(let s=0;s<this.targetNodeList.length;s+=1){let r=(i=this.targetNodeList[s])==null?void 0:i.htmlNode;r&&this.mutationObserver.observe(r,{attributes:!0,attributeOldValue:!0})}}mountElement(){this.status="loading",this.targetNodeList.map(e=>it(this,null,function*(){if(!(e!=null&&e.content))return;let t=e,i=document.createElement("iframe");i.id=t.id;let s=t.content+this.metaData.previewUrlPrams+t.customOptions||"";i.setAttribute("title",t.title||""),i.setAttribute("frameborder","0"),i.setAttribute("marginheight","0"),i.setAttribute("marginwidth","0"),i.setAttribute("marginheight","0"),t.customClass&&i.classList.add(t.customClass),i.setAttribute("src",s),t.htmlNode.appendChild(i),this.loadCount+=1})),Sn.EmbedLoaded()}Unmount(){this.targetNodeList.length===0&&this.logErr("No targetNode found! Nothing to Unmount."),this.targetNodeList.forEach(e=>{if(e&&e.htmlNode){let t=e.htmlNode;t.textContent=""}}),this.isLoaded=!1,this.targetNodeList=[],this.mutationObserver&&this.mutationObserver.disconnect()}showLoader(){this.targetNodeList.map(e=>it(this,null,function*(){if(!(e!=null&&e.content))return;let t=e,i=document.createElement("div");i.setAttribute("class",this.loaderName),i.style.position="absolute",i.style.boxSizing="border-box",i.style.width="100%",i.style.display="flex",i.style.height="100%",i.style.backgroundColor="#00000032",i.style.zIndex="9998",i.style.justifyContent="center",i.style.accentColor="center",i.style.left="0",i.style.top="0",i.style.backdropFilter="blur(6px)";let s=document.createElement("div");s.style.position="relative",s.style.left="-9999px",s.style.top="45%",s.style.zIndex="9999",s.style.height="15px",s.style.width="15px",s.style.color="white",s.style.boxShadow="9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045",s.style.borderRadius="8px",s.style.animation=" dotTyping 1s infinite linear",s.animate([{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px -10px 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px -10px 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px -10px 0 0 #303045"},{boxShadow:"9974px 0 0 0 #303045, 9999px 0 0 0 #303045, 10024px 0 0 0 #303045"}],{duration:1e3,iterations:1/0}),i.appendChild(s),t==null||t.htmlNode.appendChild(i)}))}hideLoader(){let e=document.querySelectorAll(`[class='${this.loaderName}']`),t=0;for(;t<=e.length;)e[t]&&(e[t].style.display="none"),t+=1}Init(){return it(this,null,function*(){this.loadMesage();try{return this.scanApiKeyFromCurrentScriptTag(),yield this.authenticate(),this.prepareTargetNodeList(),this.addTargetNodeChangeListener(),yield this.fetchAllData(),this.showLoader(),yield this.mountElement(),this.status="done",this.isLoaded=!0,this.log(`SprieEmbed Loaded ${this.loadCount} embeds on this page`),this.isLoaded&&setTimeout(()=>{this.hideLoader()},1800),!0}catch(e){return this.log("SprieEmbed Loading failed."),this.logErr(e),this.isLoaded=!1,!1}})}};var{log:Ub,error:Nb}=console,Ob=(...n)=>{Nb("\u274C Sprie Error:",...n)},kb="&ui_animations=0&ui_infos=0&ui_stop=0&ui_inspector=0&ui_watermark_link=0&ui_watermark=0&ui_ar=0&ui_help=0&ui_settings=0&ui_vr=0&ui_fullscreen=0&ui_annotations=0&ui_start=0&",Qb={HOST:ba.host,STORE_PREFIX:ba.storePrefix},Gb=new As(new pr(Qb)),Hb=new ds,zb={apiService:Gb,config:ba,log:Ub,logErr:Ob,metaData:{appVersion:Xu,previewUrlPrams:kb,targetClassName:"sprie-embed-element"},customRenderer:Hb},Vb=new fr(zb);Vb.Init();})();
3690
3690
  /*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */
3691
3691
  /**
3692
3692
  * @license