@splinetool/loader 0.9.521 → 0.9.522

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.
@@ -1,24 +1,24 @@
1
- var qv=Object.create;var Ws=Object.defineProperty;var Wv=Object.getOwnPropertyDescriptor;var $v=Object.getOwnPropertyNames;var Yv=Object.getPrototypeOf,Xv=Object.prototype.hasOwnProperty;var Kv=(n,t,e)=>t in n?Ws(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var qt=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Qv=(n,t)=>{for(var e in t)Ws(n,e,{get:t[e],enumerable:!0})},Zv=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $v(t))!Xv.call(n,o)&&o!==e&&Ws(n,o,{get:()=>t[o],enumerable:!(r=Wv(t,o))||r.enumerable});return n};var Rt=(n,t,e)=>(e=n!=null?qv(Yv(n)):{},Zv(t||!n||!n.__esModule?Ws(e,"default",{value:n,enumerable:!0}):e,n));var yt=(n,t,e)=>(Kv(n,typeof t!="symbol"?t+"":t,e),e);var Dy=qt((Zu,Ly)=>{(function(n,t){typeof Zu=="object"?Ly.exports=t():typeof define=="function"&&define.amd?define(t):n.Alea=t()})(Zu,function(){"use strict";return n.importState=function(e){var r=new n;return r.importState(e),r},n;function n(){return function(e){var r=0,o=0,i=0,a=1;e.length==0&&(e=[+new Date]);var s=t();r=s(" "),o=s(" "),i=s(" ");for(var l=0;l<e.length;l++)r-=s(e[l]),r<0&&(r+=1),o-=s(e[l]),o<0&&(o+=1),i-=s(e[l]),i<0&&(i+=1);s=null;var d=function(){var c=2091639*r+a*23283064365386963e-26;return r=o,o=i,i=c-(a=c|0)};return d.next=d,d.uint32=function(){return d()*4294967296},d.fract53=function(){return d()+(d()*2097152|0)*11102230246251565e-32},d.version="Alea 0.9",d.args=e,d.exportState=function(){return[r,o,i,a]},d.importState=function(c){r=+c[0]||0,o=+c[1]||0,i=+c[2]||0,a=+c[3]||0},d}(Array.prototype.slice.call(arguments))}function t(){var e=4022871197,r=function(o){o=o.toString();for(var i=0;i<o.length;i++){e+=o.charCodeAt(i);var a=.02519603282416938*e;e=a>>>0,a-=e,a*=e,e=a>>>0,a-=e,e+=a*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var zy=qt((oc,Gy)=>{(function(n,t){typeof oc=="object"&&typeof Gy<"u"?t(oc):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(oc,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var a,s,l,d,c,u,p,f,h,m,y,g,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],b=[],_=[],A=e==="f"?S:x,v=m=p=0;v<S;v++)b[v]=new Array(A).fill(0);for(v=0;v<x;v++)_[v]=new Array(x).fill(0);var M,O=new Array(x).fill(0);for(v=0;v<S;v++)for(a=0;a<x;a++)b[v][a]=t[v][a];for(v=0;v<x;v++){for(w[v]=p,h=0,l=v+1,a=v;a<S;a++)h+=Math.pow(b[a][v],2);if(h<i)p=0;else for(f=(u=b[v][v])*(p=u<0?Math.sqrt(h):-Math.sqrt(h))-h,b[v][v]=u-p,a=l;a<x;a++){for(h=0,s=v;s<S;s++)h+=b[s][v]*b[s][a];for(u=h/f,s=v;s<S;s++)b[s][a]=b[s][a]+u*b[s][v]}for(O[v]=p,h=0,a=l;a<x;a++)h+=Math.pow(b[v][a],2);if(h<i)p=0;else{for(f=(u=b[v][v+1])*(p=u<0?Math.sqrt(h):-Math.sqrt(h))-h,b[v][v+1]=u-p,a=l;a<x;a++)w[a]=b[v][a]/f;for(a=l;a<S;a++){for(h=0,s=l;s<x;s++)h+=b[a][s]*b[v][s];for(s=l;s<x;s++)b[a][s]=b[a][s]+h*w[s]}}m<(y=Math.abs(O[v])+Math.abs(w[v]))&&(m=y)}if(r)for(v=x-1;0<=v;v--){if(p!==0){for(f=b[v][v+1]*p,a=l;a<x;a++)_[a][v]=b[v][a]/f;for(a=l;a<x;a++){for(h=0,s=l;s<x;s++)h+=b[v][s]*_[s][a];for(s=l;s<x;s++)_[s][a]=_[s][a]+h*_[s][v]}}for(a=l;a<x;a++)_[v][a]=0,_[a][v]=0;_[v][v]=1,p=w[v],l=v}if(e){if(e==="f")for(v=x;v<S;v++){for(a=x;a<S;a++)b[v][a]=0;b[v][v]=1}for(v=x-1;0<=v;v--){for(l=v+1,p=O[v],a=l;a<A;a++)b[v][a]=0;if(p!==0){for(f=b[v][v]*p,a=l;a<A;a++){for(h=0,s=l;s<S;s++)h+=b[s][v]*b[s][a];for(u=h/f,s=v;s<S;s++)b[s][a]=b[s][a]+u*b[s][v]}for(a=v;a<S;a++)b[a][v]=b[a][v]/p}else for(a=v;a<S;a++)b[a][v]=0;b[v][v]=b[v][v]+1}}for(o*=m,s=x-1;0<=s;s--)for(var T=0;T<50;T++){for(M=!1,l=s;0<=l;l--){if(Math.abs(w[l])<=o){M=!0;break}if(Math.abs(O[l-1])<=o)break}if(!M){for(c=0,d=l-(h=1),v=l;v<s+1&&(u=h*w[v],w[v]=c*w[v],!(Math.abs(u)<=o));v++)if(p=O[v],O[v]=Math.sqrt(u*u+p*p),c=p/(f=O[v]),h=-u/f,e)for(a=0;a<S;a++)y=b[a][d],g=b[a][v],b[a][d]=y*c+g*h,b[a][v]=-y*h+g*c}if(g=O[s],l===s){if(g<0&&(O[s]=-g,r))for(a=0;a<x;a++)_[a][s]=-_[a][s];break}for(m=O[l],u=(((y=O[s-1])-g)*(y+g)+((p=w[s-1])-(f=w[s]))*(p+f))/(2*f*y),p=Math.sqrt(u*u+1),u=((m-g)*(m+g)+f*(y/(u<0?u-p:u+p)-f))/m,v=l+(h=c=1);v<s+1;v++){if(p=w[v],y=O[v],f=h*p,p*=c,g=Math.sqrt(u*u+f*f),u=m*(c=u/(w[v-1]=g))+p*(h=f/g),p=-m*h+p*c,f=y*h,y*=c,r)for(a=0;a<x;a++)m=_[a][v-1],g=_[a][v],_[a][v-1]=m*c+g*h,_[a][v]=-m*h+g*c;if(g=Math.sqrt(u*u+f*f),u=(c=u/(O[v-1]=g))*p+(h=f/g)*y,m=-h*p+c*y,e)for(a=0;a<S;a++)y=b[a][v-1],g=b[a][v],b[a][v-1]=y*c+g*h,b[a][v]=-y*h+g*c}w[l]=0,w[s]=u,O[s]=m}for(v=0;v<x;v++)O[v]<o&&(O[v]=0);return{u:b,q:O,v:_}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var xg=qt((Td,Cd)=>{(function(n,t){typeof Td=="object"&&typeof Cd<"u"?Cd.exports=t():typeof define=="function"&&define.amd?define(t):(n=n||self,n.TinyQueue=t())})(Td,function(){"use strict";var n=function(r,o){if(r===void 0&&(r=[]),o===void 0&&(o=t),this.data=r,this.length=this.data.length,this.compare=o,this.length>0)for(var i=(this.length>>1)-1;i>=0;i--)this._down(i)};n.prototype.push=function(r){this.data.push(r),this.length++,this._up(this.length-1)},n.prototype.pop=function(){if(this.length!==0){var r=this.data[0],o=this.data.pop();return this.length--,this.length>0&&(this.data[0]=o,this._down(0)),r}},n.prototype.peek=function(){return this.data[0]},n.prototype._up=function(r){for(var o=this,i=o.data,a=o.compare,s=i[r];r>0;){var l=r-1>>1,d=i[l];if(a(s,d)>=0)break;i[r]=d,r=l}i[r]=s},n.prototype._down=function(r){for(var o=this,i=o.data,a=o.compare,s=this.length>>1,l=i[r];r<s;){var d=(r<<1)+1,c=i[d],u=d+1;if(u<this.length&&a(i[u],c)<0&&(d=u,c=i[u]),a(c,l)>=0)break;i[r]=c,r=d}i[r]=l};function t(e,r){return e<r?-1:e>r?1:0}return n})});var bg=qt((s5,Pd)=>{"use strict";var hc=xg();hc.default&&(hc=hc.default);Pd.exports=vg;Pd.exports.default=vg;function vg(n,t,e){t=t||1;for(var r,o,i,a,s=0;s<n[0].length;s++){var l=n[0][s];(!s||l[0]<r)&&(r=l[0]),(!s||l[1]<o)&&(o=l[1]),(!s||l[0]>i)&&(i=l[0]),(!s||l[1]>a)&&(a=l[1])}var d=i-r,c=a-o,u=Math.min(d,c),p=u/2;if(u===0){var f=[r,o];return f.distance=0,f}for(var h=new hc(void 0,dP),m=r;m<i;m+=u)for(var y=o;y<a;y+=u)h.push(new en(m+p,y+p,p,n));var g=fP(n),x=new en(r+d/2,o+c/2,0,n);x.d>g.d&&(g=x);for(var S=h.length;h.length;){var w=h.pop();w.d>g.d&&(g=w,e&&console.log("found best %d after %d probes",Math.round(1e4*w.d)/1e4,S)),!(w.max-g.d<=t)&&(p=w.h/2,h.push(new en(w.x-p,w.y-p,p,n)),h.push(new en(w.x+p,w.y-p,p,n)),h.push(new en(w.x-p,w.y+p,p,n)),h.push(new en(w.x+p,w.y+p,p,n)),S+=4)}e&&(console.log("num probes: "+S),console.log("best distance: "+g.d));var b=[g.x,g.y];return b.distance=g.d,b}function dP(n,t){return t.max-n.max}function en(n,t,e,r){this.x=n,this.y=t,this.h=e,this.d=pP(n,t,r),this.max=this.d+this.h*Math.SQRT2}function pP(n,t,e){for(var r=!1,o=1/0,i=0;i<e.length;i++)for(var a=e[i],s=0,l=a.length,d=l-1;s<l;d=s++){var c=a[s],u=a[d];c[1]>t!=u[1]>t&&n<(u[0]-c[0])*(t-c[1])/(u[1]-c[1])+c[0]&&(r=!r),o=Math.min(o,hP(n,t,c,u))}return o===0?0:(r?1:-1)*Math.sqrt(o)}function fP(n){for(var t=0,e=0,r=0,o=n[0],i=0,a=o.length,s=a-1;i<a;s=i++){var l=o[i],d=o[s],c=l[0]*d[1]-d[0]*l[1];e+=(l[0]+d[0])*c,r+=(l[1]+d[1])*c,t+=c*3}return t===0?new en(o[0][0],o[0][1],0,n):new en(e/t,r/t,0,n)}function hP(n,t,e,r){var o=e[0],i=e[1],a=r[0]-o,s=r[1]-i;if(a!==0||s!==0){var l=((n-o)*a+(t-i)*s)/(a*a+s*s);l>1?(o=r[0],i=r[1]):l>0&&(o+=a*l,i+=s*l)}return a=n-o,s=t-i,a*a+s*s}});var B0=qt(jc=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var c=this||t;return c._counter=1e3,c._html5AudioPool=[],c.html5PoolSize=10,c._codecs={},c._howls=[],c._muted=!1,c._volume=1,c._canPlayEvent="canplaythrough",c._navigator=typeof window<"u"&&window.navigator?window.navigator:null,c.masterGain=null,c.noAudio=!1,c.usingWebAudio=!0,c.autoSuspend=!0,c.ctx=null,c.autoUnlock=!0,c._setup(),c},volume:function(c){var u=this||t;if(c=parseFloat(c),u.ctx||d(),typeof c<"u"&&c>=0&&c<=1){if(u._volume=c,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(c,t.ctx.currentTime);for(var p=0;p<u._howls.length;p++)if(!u._howls[p]._webAudio)for(var f=u._howls[p]._getSoundIds(),h=0;h<f.length;h++){var m=u._howls[p]._soundById(f[h]);m&&m._node&&(m._node.volume=m._volume*c)}return u}return u._volume},mute:function(c){var u=this||t;u.ctx||d(),u._muted=c,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(c?0:u._volume,t.ctx.currentTime);for(var p=0;p<u._howls.length;p++)if(!u._howls[p]._webAudio)for(var f=u._howls[p]._getSoundIds(),h=0;h<f.length;h++){var m=u._howls[p]._soundById(f[h]);m&&m._node&&(m._node.muted=c?!0:m._muted)}return u},stop:function(){for(var c=this||t,u=0;u<c._howls.length;u++)c._howls[u].stop();return c},unload:function(){for(var c=this||t,u=c._howls.length-1;u>=0;u--)c._howls[u].unload();return c.usingWebAudio&&c.ctx&&typeof c.ctx.close<"u"&&(c.ctx.close(),c.ctx=null,d()),c},codecs:function(c){return(this||t)._codecs[c.replace(/^x-/,"")]},_setup:function(){var c=this||t;if(c.state=c.ctx&&c.ctx.state||"suspended",c._autoSuspend(),!c.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(c._canPlayEvent="canplay")}catch{c.noAudio=!0}else c.noAudio=!0;try{var u=new Audio;u.muted&&(c.noAudio=!0)}catch{}return c.noAudio||c._setupCodecs(),c},_setupCodecs:function(){var c=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return c}if(!u||typeof u.canPlayType!="function")return c;var p=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=c._navigator?c._navigator.userAgent:"",h=f.match(/OPR\/([0-6].)/g),m=h&&parseInt(h[0].split("/")[1],10)<33,y=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,g=f.match(/Version\/(.*?) /),x=y&&g&&parseInt(g[1],10)<15;return c._codecs={mp3:!!(!m&&(p||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!p,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!u.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(u.canPlayType("audio/x-flac;")||u.canPlayType("audio/flac;")).replace(/^no$/,"")},c},_unlockAudio:function(){var c=this||t;if(!(c._audioUnlocked||!c.ctx)){c._audioUnlocked=!1,c.autoUnlock=!1,!c._mobileUnloaded&&c.ctx.sampleRate!==44100&&(c._mobileUnloaded=!0,c.unload()),c._scratchBuffer=c.ctx.createBuffer(1,1,22050);var u=function(p){for(;c._html5AudioPool.length<c.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,c._releaseHtml5Audio(f)}catch{c.noAudio=!0;break}for(var h=0;h<c._howls.length;h++)if(!c._howls[h]._webAudio)for(var m=c._howls[h]._getSoundIds(),y=0;y<m.length;y++){var g=c._howls[h]._soundById(m[y]);g&&g._node&&!g._node._unlocked&&(g._node._unlocked=!0,g._node.load())}c._autoResume();var x=c.ctx.createBufferSource();x.buffer=c._scratchBuffer,x.connect(c.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof c.ctx.resume=="function"&&c.ctx.resume(),x.onended=function(){x.disconnect(0),c._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var S=0;S<c._howls.length;S++)c._howls[S]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),c}},_obtainHtml5Audio:function(){var c=this||t;if(c._html5AudioPool.length)return c._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(c){var u=this||t;return c._unlocked&&u._html5AudioPool.push(c),u},_autoSuspend:function(){var c=this;if(!(!c.autoSuspend||!c.ctx||typeof c.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<c._howls.length;u++)if(c._howls[u]._webAudio){for(var p=0;p<c._howls[u]._sounds.length;p++)if(!c._howls[u]._sounds[p]._paused)return c}return c._suspendTimer&&clearTimeout(c._suspendTimer),c._suspendTimer=setTimeout(function(){if(!!c.autoSuspend){c._suspendTimer=null,c.state="suspending";var f=function(){c.state="suspended",c._resumeAfterSuspend&&(delete c._resumeAfterSuspend,c._autoResume())};c.ctx.suspend().then(f,f)}},3e4),c}},_autoResume:function(){var c=this;if(!(!c.ctx||typeof c.ctx.resume>"u"||!t.usingWebAudio))return c.state==="running"&&c.ctx.state!=="interrupted"&&c._suspendTimer?(clearTimeout(c._suspendTimer),c._suspendTimer=null):c.state==="suspended"||c.state==="running"&&c.ctx.state==="interrupted"?(c.ctx.resume().then(function(){c.state="running";for(var u=0;u<c._howls.length;u++)c._howls[u]._emit("resume")}),c._suspendTimer&&(clearTimeout(c._suspendTimer),c._suspendTimer=null)):c.state==="suspending"&&(c._resumeAfterSuspend=!0),c}};var t=new n,e=function(c){var u=this;if(!c.src||c.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(c)};e.prototype={init:function(c){var u=this;return t.ctx||d(),u._autoplay=c.autoplay||!1,u._format=typeof c.format!="string"?c.format:[c.format],u._html5=c.html5||!1,u._muted=c.mute||!1,u._loop=c.loop||!1,u._pool=c.pool||5,u._preload=typeof c.preload=="boolean"||c.preload==="metadata"?c.preload:!0,u._rate=c.rate||1,u._sprite=c.sprite||{},u._src=typeof c.src!="string"?c.src:[c.src],u._volume=c.volume!==void 0?c.volume:1,u._xhr={method:c.xhr&&c.xhr.method?c.xhr.method:"GET",headers:c.xhr&&c.xhr.headers?c.xhr.headers:null,withCredentials:c.xhr&&c.xhr.withCredentials?c.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=c.onend?[{fn:c.onend}]:[],u._onfade=c.onfade?[{fn:c.onfade}]:[],u._onload=c.onload?[{fn:c.onload}]:[],u._onloaderror=c.onloaderror?[{fn:c.onloaderror}]:[],u._onplayerror=c.onplayerror?[{fn:c.onplayerror}]:[],u._onpause=c.onpause?[{fn:c.onpause}]:[],u._onplay=c.onplay?[{fn:c.onplay}]:[],u._onstop=c.onstop?[{fn:c.onstop}]:[],u._onmute=c.onmute?[{fn:c.onmute}]:[],u._onvolume=c.onvolume?[{fn:c.onvolume}]:[],u._onrate=c.onrate?[{fn:c.onrate}]:[],u._onseek=c.onseek?[{fn:c.onseek}]:[],u._onunlock=c.onunlock?[{fn:c.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var c=this,u=null;if(t.noAudio){c._emit("loaderror",null,"No audio support.");return}typeof c._src=="string"&&(c._src=[c._src]);for(var p=0;p<c._src.length;p++){var f,h;if(c._format&&c._format[p])f=c._format[p];else{if(h=c._src[p],typeof h!="string"){c._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(h),f||(f=/\.([^.]+)$/.exec(h.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=c._src[p];break}}if(!u){c._emit("loaderror",null,"No codec support for selected audio sources.");return}return c._src=u,c._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(c._html5=!0,c._webAudio=!1),new r(c),c._webAudio&&i(c),c},play:function(c,u){var p=this,f=null;if(typeof c=="number")f=c,c=null;else{if(typeof c=="string"&&p._state==="loaded"&&!p._sprite[c])return null;if(typeof c>"u"&&(c="__default",!p._playLock)){for(var h=0,m=0;m<p._sounds.length;m++)p._sounds[m]._paused&&!p._sounds[m]._ended&&(h++,f=p._sounds[m]._id);h===1?c=null:f=null}}var y=f?p._soundById(f):p._inactiveSound();if(!y)return null;if(f&&!c&&(c=y._sprite||"__default"),p._state!=="loaded"){y._sprite=c,y._ended=!1;var g=y._id;return p._queue.push({event:"play",action:function(){p.play(g)}}),g}if(f&&!y._paused)return u||p._loadQueue("play"),y._id;p._webAudio&&t._autoResume();var x=Math.max(0,y._seek>0?y._seek:p._sprite[c][0]/1e3),S=Math.max(0,(p._sprite[c][0]+p._sprite[c][1])/1e3-x),w=S*1e3/Math.abs(y._rate),b=p._sprite[c][0]/1e3,_=(p._sprite[c][0]+p._sprite[c][1])/1e3;y._sprite=c,y._ended=!1;var A=function(){y._paused=!1,y._seek=x,y._start=b,y._stop=_,y._loop=!!(y._loop||p._sprite[c][2])};if(x>=_){p._ended(y);return}var v=y._node;if(p._webAudio){var M=function(){p._playLock=!1,A(),p._refreshBuffer(y);var P=y._muted||p._muted?0:y._volume;v.gain.setValueAtTime(P,t.ctx.currentTime),y._playStart=t.ctx.currentTime,typeof v.bufferSource.start>"u"?y._loop?v.bufferSource.noteGrainOn(0,x,86400):v.bufferSource.noteGrainOn(0,x,S):y._loop?v.bufferSource.start(0,x,86400):v.bufferSource.start(0,x,S),w!==1/0&&(p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),w)),u||setTimeout(function(){p._emit("play",y._id),p._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?M():(p._playLock=!0,p.once("resume",M),p._clearTimer(y._id))}else{var O=function(){v.currentTime=x,v.muted=y._muted||p._muted||t._muted||v.muted,v.volume=y._volume*t.volume(),v.playbackRate=y._rate;try{var P=v.play();if(P&&typeof Promise<"u"&&(P instanceof Promise||typeof P.then=="function")?(p._playLock=!0,A(),P.then(function(){p._playLock=!1,v._unlocked=!0,u?p._loadQueue():p._emit("play",y._id)}).catch(function(){p._playLock=!1,p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),y._ended=!0,y._paused=!0})):u||(p._playLock=!1,A(),p._emit("play",y._id)),v.playbackRate=y._rate,v.paused){p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}c!=="__default"||y._loop?p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),w):(p._endTimers[y._id]=function(){p._ended(y),v.removeEventListener("ended",p._endTimers[y._id],!1)},v.addEventListener("ended",p._endTimers[y._id],!1))}catch(I){p._emit("playerror",y._id,I)}};v.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(v.src=p._src,v.load());var T=window&&window.ejecta||!v.readyState&&t._navigator.isCocoonJS;if(v.readyState>=3||T)O();else{p._playLock=!0,p._state="loading";var C=function(){p._state="loaded",O(),v.removeEventListener(t._canPlayEvent,C,!1)};v.addEventListener(t._canPlayEvent,C,!1),p._clearTimer(y._id)}}return y._id},pause:function(c){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(c)}}),u;for(var p=u._getSoundIds(c),f=0;f<p.length;f++){u._clearTimer(p[f]);var h=u._soundById(p[f]);if(h&&!h._paused&&(h._seek=u.seek(p[f]),h._rateSeek=0,h._paused=!0,u._stopFade(p[f]),h._node))if(u._webAudio){if(!h._node.bufferSource)continue;typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),u._cleanBuffer(h._node)}else(!isNaN(h._node.duration)||h._node.duration===1/0)&&h._node.pause();arguments[1]||u._emit("pause",h?h._id:null)}return u},stop:function(c,u){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"stop",action:function(){p.stop(c)}}),p;for(var f=p._getSoundIds(c),h=0;h<f.length;h++){p._clearTimer(f[h]);var m=p._soundById(f[h]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,p._stopFade(f[h]),m._node&&(p._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),p._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&p._clearSound(m._node))),u||p._emit("stop",m._id))}return p},mute:function(c,u){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"mute",action:function(){p.mute(c,u)}}),p;if(typeof u>"u")if(typeof c=="boolean")p._muted=c;else return p._muted;for(var f=p._getSoundIds(u),h=0;h<f.length;h++){var m=p._soundById(f[h]);m&&(m._muted=c,m._interval&&p._stopFade(m._id),p._webAudio&&m._node?m._node.gain.setValueAtTime(c?0:m._volume,t.ctx.currentTime):m._node&&(m._node.muted=t._muted?!0:c),p._emit("mute",m._id))}return p},volume:function(){var c=this,u=arguments,p,f;if(u.length===0)return c._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var h=c._getSoundIds(),m=h.indexOf(u[0]);m>=0?f=parseInt(u[0],10):p=parseFloat(u[0])}else u.length>=2&&(p=parseFloat(u[0]),f=parseInt(u[1],10));var y;if(typeof p<"u"&&p>=0&&p<=1){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"volume",action:function(){c.volume.apply(c,u)}}),c;typeof f>"u"&&(c._volume=p),f=c._getSoundIds(f);for(var g=0;g<f.length;g++)y=c._soundById(f[g]),y&&(y._volume=p,u[2]||c._stopFade(f[g]),c._webAudio&&y._node&&!y._muted?y._node.gain.setValueAtTime(p,t.ctx.currentTime):y._node&&!y._muted&&(y._node.volume=p*t.volume()),c._emit("volume",y._id))}else return y=f?c._soundById(f):c._sounds[0],y?y._volume:0;return c},fade:function(c,u,p,f){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"fade",action:function(){h.fade(c,u,p,f)}}),h;c=Math.min(Math.max(0,parseFloat(c)),1),u=Math.min(Math.max(0,parseFloat(u)),1),p=parseFloat(p),h.volume(c,f);for(var m=h._getSoundIds(f),y=0;y<m.length;y++){var g=h._soundById(m[y]);if(g){if(f||h._stopFade(m[y]),h._webAudio&&!g._muted){var x=t.ctx.currentTime,S=x+p/1e3;g._volume=c,g._node.gain.setValueAtTime(c,x),g._node.gain.linearRampToValueAtTime(u,S)}h._startFadeInterval(g,c,u,p,m[y],typeof f>"u")}}return h},_startFadeInterval:function(c,u,p,f,h,m){var y=this,g=u,x=p-u,S=Math.abs(x/.01),w=Math.max(4,S>0?f/S:f),b=Date.now();c._fadeTo=p,c._interval=setInterval(function(){var _=(Date.now()-b)/f;b=Date.now(),g+=x*_,g=Math.round(g*100)/100,x<0?g=Math.max(p,g):g=Math.min(p,g),y._webAudio?c._volume=g:y.volume(g,c._id,!0),m&&(y._volume=g),(p<u&&g<=p||p>u&&g>=p)&&(clearInterval(c._interval),c._interval=null,c._fadeTo=null,y.volume(p,c._id),y._emit("fade",c._id))},w)},_stopFade:function(c){var u=this,p=u._soundById(c);return p&&p._interval&&(u._webAudio&&p._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(p._interval),p._interval=null,u.volume(p._fadeTo,c),p._fadeTo=null,u._emit("fade",c)),u},loop:function(){var c=this,u=arguments,p,f,h;if(u.length===0)return c._loop;if(u.length===1)if(typeof u[0]=="boolean")p=u[0],c._loop=p;else return h=c._soundById(parseInt(u[0],10)),h?h._loop:!1;else u.length===2&&(p=u[0],f=parseInt(u[1],10));for(var m=c._getSoundIds(f),y=0;y<m.length;y++)h=c._soundById(m[y]),h&&(h._loop=p,c._webAudio&&h._node&&h._node.bufferSource&&(h._node.bufferSource.loop=p,p&&(h._node.bufferSource.loopStart=h._start||0,h._node.bufferSource.loopEnd=h._stop,c.playing(m[y])&&(c.pause(m[y],!0),c.play(m[y],!0)))));return c},rate:function(){var c=this,u=arguments,p,f;if(u.length===0)f=c._sounds[0]._id;else if(u.length===1){var h=c._getSoundIds(),m=h.indexOf(u[0]);m>=0?f=parseInt(u[0],10):p=parseFloat(u[0])}else u.length===2&&(p=parseFloat(u[0]),f=parseInt(u[1],10));var y;if(typeof p=="number"){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"rate",action:function(){c.rate.apply(c,u)}}),c;typeof f>"u"&&(c._rate=p),f=c._getSoundIds(f);for(var g=0;g<f.length;g++)if(y=c._soundById(f[g]),y){c.playing(f[g])&&(y._rateSeek=c.seek(f[g]),y._playStart=c._webAudio?t.ctx.currentTime:y._playStart),y._rate=p,c._webAudio&&y._node&&y._node.bufferSource?y._node.bufferSource.playbackRate.setValueAtTime(p,t.ctx.currentTime):y._node&&(y._node.playbackRate=p);var x=c.seek(f[g]),S=(c._sprite[y._sprite][0]+c._sprite[y._sprite][1])/1e3-x,w=S*1e3/Math.abs(y._rate);(c._endTimers[f[g]]||!y._paused)&&(c._clearTimer(f[g]),c._endTimers[f[g]]=setTimeout(c._ended.bind(c,y),w)),c._emit("rate",y._id)}}else return y=c._soundById(f),y?y._rate:c._rate;return c},seek:function(){var c=this,u=arguments,p,f;if(u.length===0)c._sounds.length&&(f=c._sounds[0]._id);else if(u.length===1){var h=c._getSoundIds(),m=h.indexOf(u[0]);m>=0?f=parseInt(u[0],10):c._sounds.length&&(f=c._sounds[0]._id,p=parseFloat(u[0]))}else u.length===2&&(p=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof p=="number"&&(c._state!=="loaded"||c._playLock))return c._queue.push({event:"seek",action:function(){c.seek.apply(c,u)}}),c;var y=c._soundById(f);if(y)if(typeof p=="number"&&p>=0){var g=c.playing(f);g&&c.pause(f,!0),y._seek=p,y._ended=!1,c._clearTimer(f),!c._webAudio&&y._node&&!isNaN(y._node.duration)&&(y._node.currentTime=p);var x=function(){g&&c.play(f,!0),c._emit("seek",f)};if(g&&!c._webAudio){var S=function(){c._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(c._webAudio){var w=c.playing(f)?t.ctx.currentTime-y._playStart:0,b=y._rateSeek?y._rateSeek-y._seek:0;return y._seek+(b+w*Math.abs(y._rate))}else return y._node.currentTime;return c},playing:function(c){var u=this;if(typeof c=="number"){var p=u._soundById(c);return p?!p._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(c){var u=this,p=u._duration,f=u._soundById(c);return f&&(p=u._sprite[f._sprite][1]/1e3),p},state:function(){return this._state},unload:function(){for(var c=this,u=c._sounds,p=0;p<u.length;p++)u[p]._paused||c.stop(u[p]._id),c._webAudio||(c._clearSound(u[p]._node),u[p]._node.removeEventListener("error",u[p]._errorFn,!1),u[p]._node.removeEventListener(t._canPlayEvent,u[p]._loadFn,!1),u[p]._node.removeEventListener("ended",u[p]._endFn,!1),t._releaseHtml5Audio(u[p]._node)),delete u[p]._node,c._clearTimer(u[p]._id);var f=t._howls.indexOf(c);f>=0&&t._howls.splice(f,1);var h=!0;for(p=0;p<t._howls.length;p++)if(t._howls[p]._src===c._src||c._src.indexOf(t._howls[p]._src)>=0){h=!1;break}return o&&h&&delete o[c._src],t.noAudio=!1,c._state="unloaded",c._sounds=[],c=null,null},on:function(c,u,p,f){var h=this,m=h["_on"+c];return typeof u=="function"&&m.push(f?{id:p,fn:u,once:f}:{id:p,fn:u}),h},off:function(c,u,p){var f=this,h=f["_on"+c],m=0;if(typeof u=="number"&&(p=u,u=null),u||p)for(m=0;m<h.length;m++){var y=p===h[m].id;if(u===h[m].fn&&y||!u&&y){h.splice(m,1);break}}else if(c)f["_on"+c]=[];else{var g=Object.keys(f);for(m=0;m<g.length;m++)g[m].indexOf("_on")===0&&Array.isArray(f[g[m]])&&(f[g[m]]=[])}return f},once:function(c,u,p){var f=this;return f.on(c,u,p,1),f},_emit:function(c,u,p){for(var f=this,h=f["_on"+c],m=h.length-1;m>=0;m--)(!h[m].id||h[m].id===u||c==="load")&&(setTimeout(function(y){y.call(this,u,p)}.bind(f,h[m].fn),0),h[m].once&&f.off(c,h[m].fn,h[m].id));return f._loadQueue(c),f},_loadQueue:function(c){var u=this;if(u._queue.length>0){var p=u._queue[0];p.event===c&&(u._queue.shift(),u._loadQueue()),c||p.action()}return u},_ended:function(c){var u=this,p=c._sprite;if(!u._webAudio&&c._node&&!c._node.paused&&!c._node.ended&&c._node.currentTime<c._stop)return setTimeout(u._ended.bind(u,c),100),u;var f=!!(c._loop||u._sprite[p][2]);if(u._emit("end",c._id),!u._webAudio&&f&&u.stop(c._id,!0).play(c._id),u._webAudio&&f){u._emit("play",c._id),c._seek=c._start||0,c._rateSeek=0,c._playStart=t.ctx.currentTime;var h=(c._stop-c._start)*1e3/Math.abs(c._rate);u._endTimers[c._id]=setTimeout(u._ended.bind(u,c),h)}return u._webAudio&&!f&&(c._paused=!0,c._ended=!0,c._seek=c._start||0,c._rateSeek=0,u._clearTimer(c._id),u._cleanBuffer(c._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(c._id,!0),u},_clearTimer:function(c){var u=this;if(u._endTimers[c]){if(typeof u._endTimers[c]!="function")clearTimeout(u._endTimers[c]);else{var p=u._soundById(c);p&&p._node&&p._node.removeEventListener("ended",u._endTimers[c],!1)}delete u._endTimers[c]}return u},_soundById:function(c){for(var u=this,p=0;p<u._sounds.length;p++)if(c===u._sounds[p]._id)return u._sounds[p];return null},_inactiveSound:function(){var c=this;c._drain();for(var u=0;u<c._sounds.length;u++)if(c._sounds[u]._ended)return c._sounds[u].reset();return new r(c)},_drain:function(){var c=this,u=c._pool,p=0,f=0;if(!(c._sounds.length<u)){for(f=0;f<c._sounds.length;f++)c._sounds[f]._ended&&p++;for(f=c._sounds.length-1;f>=0;f--){if(p<=u)return;c._sounds[f]._ended&&(c._webAudio&&c._sounds[f]._node&&c._sounds[f]._node.disconnect(0),c._sounds.splice(f,1),p--)}}},_getSoundIds:function(c){var u=this;if(typeof c>"u"){for(var p=[],f=0;f<u._sounds.length;f++)p.push(u._sounds[f]._id);return p}else return[c]},_refreshBuffer:function(c){var u=this;return c._node.bufferSource=t.ctx.createBufferSource(),c._node.bufferSource.buffer=o[u._src],c._panner?c._node.bufferSource.connect(c._panner):c._node.bufferSource.connect(c._node),c._node.bufferSource.loop=c._loop,c._loop&&(c._node.bufferSource.loopStart=c._start||0,c._node.bufferSource.loopEnd=c._stop||0),c._node.bufferSource.playbackRate.setValueAtTime(c._rate,t.ctx.currentTime),u},_cleanBuffer:function(c){var u=this,p=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&c.bufferSource&&(c.bufferSource.onended=null,c.bufferSource.disconnect(0),p))try{c.bufferSource.buffer=t._scratchBuffer}catch{}return c.bufferSource=null,u},_clearSound:function(c){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(c.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(c){this._parent=c,this.init()};r.prototype={init:function(){var c=this,u=c._parent;return c._muted=u._muted,c._loop=u._loop,c._volume=u._volume,c._rate=u._rate,c._seek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,u._sounds.push(c),c.create(),c},create:function(){var c=this,u=c._parent,p=t._muted||c._muted||c._parent._muted?0:c._volume;return u._webAudio?(c._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),c._node.gain.setValueAtTime(p,t.ctx.currentTime),c._node.paused=!0,c._node.connect(t.masterGain)):t.noAudio||(c._node=t._obtainHtml5Audio(),c._errorFn=c._errorListener.bind(c),c._node.addEventListener("error",c._errorFn,!1),c._loadFn=c._loadListener.bind(c),c._node.addEventListener(t._canPlayEvent,c._loadFn,!1),c._endFn=c._endListener.bind(c),c._node.addEventListener("ended",c._endFn,!1),c._node.src=u._src,c._node.preload=u._preload===!0?"auto":u._preload,c._node.volume=p*t.volume(),c._node.load()),c},reset:function(){var c=this,u=c._parent;return c._muted=u._muted,c._loop=u._loop,c._volume=u._volume,c._rate=u._rate,c._seek=0,c._rateSeek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,c},_errorListener:function(){var c=this;c._parent._emit("loaderror",c._id,c._node.error?c._node.error.code:0),c._node.removeEventListener("error",c._errorFn,!1)},_loadListener:function(){var c=this,u=c._parent;u._duration=Math.ceil(c._node.duration*10)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,u._duration*1e3]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),c._node.removeEventListener(t._canPlayEvent,c._loadFn,!1)},_endListener:function(){var c=this,u=c._parent;u._duration===1/0&&(u._duration=Math.ceil(c._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(c)),c._node.removeEventListener("ended",c._endFn,!1)}};var o={},i=function(c){var u=c._src;if(o[u]){c._duration=o[u].duration,l(c);return}if(/^data:[^;]+;base64,/.test(u)){for(var p=atob(u.split(",")[1]),f=new Uint8Array(p.length),h=0;h<p.length;++h)f[h]=p.charCodeAt(h);s(f.buffer,c)}else{var m=new XMLHttpRequest;m.open(c._xhr.method,u,!0),m.withCredentials=c._xhr.withCredentials,m.responseType="arraybuffer",c._xhr.headers&&Object.keys(c._xhr.headers).forEach(function(y){m.setRequestHeader(y,c._xhr.headers[y])}),m.onload=function(){var y=(m.status+"")[0];if(y!=="0"&&y!=="2"&&y!=="3"){c._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}s(m.response,c)},m.onerror=function(){c._webAudio&&(c._html5=!0,c._webAudio=!1,c._sounds=[],delete o[u],c.load())},a(m)}},a=function(c){try{c.send()}catch{c.onerror()}},s=function(c,u){var p=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(h){h&&u._sounds.length>0?(o[u._src]=h,l(u,h)):p()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(c).then(f).catch(p):t.ctx.decodeAudioData(c,f,p)},l=function(c,u){u&&!c._duration&&(c._duration=u.duration),Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue())},d=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var c=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),p=u?parseInt(u[1],10):null;if(c&&p&&p<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof jc<"u"&&(jc.Howler=t,jc.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,a){var s=this;if(!s.ctx||!s.ctx.listener)return s;var l=s._orientation;if(e=typeof e!="number"?l[1]:e,r=typeof r!="number"?l[2]:r,o=typeof o!="number"?l[3]:o,i=typeof i!="number"?l[4]:i,a=typeof a!="number"?l[5]:a,typeof t=="number")s._orientation=[t,e,r,o,i,a],typeof s.ctx.listener.forwardX<"u"?(s.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),s.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),s.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),s.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),s.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),s.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):s.ctx.listener.setOrientation(t,e,r,o,i,a);else return l;return s},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),a=0;a<i.length;a++){var s=r._soundById(i[a]);if(s)if(typeof t=="number")s._stereo=t,s._pos=[t,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",(!s._panner||!s._panner.pan)&&n(s,o),o==="spatial"?typeof s._panner.positionX<"u"?(s._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(t,0,0):s._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",s._id);else return s._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._pos=[t,e,r],l._node&&((!l._panner||l._panner.pan)&&n(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):l._panner.setPosition(t,e,r)),i._emit("pos",l._id);else return l._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._orientation=[t,e,r],l._node&&(l._panner||(l._pos||(l._pos=i._pos||[0,0,-.5]),n(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):l._panner.setOrientation(t,e,r)),i._emit("orientation",l._id);else return l._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var a=t._getSoundIds(o),s=0;s<a.length;s++)if(i=t._soundById(a[s]),i){var l=i._pannerAttr;l={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:l.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:l.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:l.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:l.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:l.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:l.panningModel};var d=i._panner;d?(d.coneInnerAngle=l.coneInnerAngle,d.coneOuterAngle=l.coneOuterAngle,d.coneOuterGain=l.coneOuterGain,d.distanceModel=l.distanceModel,d.maxDistance=l.maxDistance,d.refDistance=l.refDistance,d.rolloffFactor=l.rolloffFactor,d.panningModel=l.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Ux=qt((Yre,jx)=>{"use strict";function pI(n){for(var t=new Array(n),e=0;e<n;++e)t[e]=e;return t}jx.exports=pI});var Wx=qt((Xre,qx)=>{qx.exports=function(n){return n!=null&&(Hx(n)||fI(n)||!!n._isBuffer)};function Hx(n){return!!n.constructor&&typeof n.constructor.isBuffer=="function"&&n.constructor.isBuffer(n)}function fI(n){return typeof n.readFloatLE=="function"&&typeof n.slice=="function"&&Hx(n.slice(0,0))}});var Ua=qt((Kre,$x)=>{var hI=Ux(),mI=Wx(),yI=typeof Float64Array<"u";function gI(n,t){return n[0]-t[0]}function xI(){var n=this.stride,t=new Array(n.length),e;for(e=0;e<t.length;++e)t[e]=[Math.abs(n[e]),e];t.sort(gI);var r=new Array(t.length);for(e=0;e<r.length;++e)r[e]=t[e][1];return r}function vI(n,t){var e=["View",t,"d",n].join("");t<0&&(e="View_Nil"+n);var r=n==="generic";if(t===-1){var o="function "+e+"(a){this.data=a;};var proto="+e+".prototype;proto.dtype='"+n+"';proto.index=function(){return -1};proto.size=0;proto.dimension=-1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function(){return new "+e+"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_"+e+"(a){return new "+e+"(a);}",m=new Function(o);return m()}else if(t===0){var o="function "+e+"(a,d) {this.data = a;this.offset = d};var proto="+e+".prototype;proto.dtype='"+n+"';proto.index=function(){return this.offset};proto.dimension=0;proto.size=1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function "+e+"_copy() {return new "+e+"(this.data,this.offset)};proto.pick=function "+e+"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function "+e+"_get(){return "+(r?"this.data.get(this.offset)":"this.data[this.offset]")+"};proto.set=function "+e+"_set(v){return "+(r?"this.data.set(this.offset,v)":"this.data[this.offset]=v")+"};return function construct_"+e+"(a,b,c,d){return new "+e+"(a,d)}",m=new Function("TrivialArray",o);return m(cu[n][0])}var o=["'use strict'"],i=hI(t),a=i.map(function(y){return"i"+y}),s="this.offset+"+i.map(function(y){return"this.stride["+y+"]*i"+y}).join("+"),l=i.map(function(y){return"b"+y}).join(","),d=i.map(function(y){return"c"+y}).join(",");o.push("function "+e+"(a,"+l+","+d+",d){this.data=a","this.shape=["+l+"]","this.stride=["+d+"]","this.offset=d|0}","var proto="+e+".prototype","proto.dtype='"+n+"'","proto.dimension="+t),o.push("Object.defineProperty(proto,'size',{get:function "+e+"_size(){return "+i.map(function(y){return"this.shape["+y+"]"}).join("*"),"}})"),t===1?o.push("proto.order=[0]"):(o.push("Object.defineProperty(proto,'order',{get:"),t<4?(o.push("function "+e+"_order(){"),t===2?o.push("return (Math.abs(this.stride[0])>Math.abs(this.stride[1]))?[1,0]:[0,1]}})"):t===3&&o.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):o.push("ORDER})")),o.push("proto.set=function "+e+"_set("+a.join(",")+",v){"),r?o.push("return this.data.set("+s+",v)}"):o.push("return this.data["+s+"]=v}"),o.push("proto.get=function "+e+"_get("+a.join(",")+"){"),r?o.push("return this.data.get("+s+")}"):o.push("return this.data["+s+"]}"),o.push("proto.index=function "+e+"_index(",a.join(),"){return "+s+"}"),o.push("proto.hi=function "+e+"_hi("+a.join(",")+"){return new "+e+"(this.data,"+i.map(function(y){return["(typeof i",y,"!=='number'||i",y,"<0)?this.shape[",y,"]:i",y,"|0"].join("")}).join(",")+","+i.map(function(y){return"this.stride["+y+"]"}).join(",")+",this.offset)}");var c=i.map(function(y){return"a"+y+"=this.shape["+y+"]"}),u=i.map(function(y){return"c"+y+"=this.stride["+y+"]"});o.push("proto.lo=function "+e+"_lo("+a.join(",")+"){var b=this.offset,d=0,"+c.join(",")+","+u.join(","));for(var p=0;p<t;++p)o.push("if(typeof i"+p+"==='number'&&i"+p+">=0){d=i"+p+"|0;b+=c"+p+"*d;a"+p+"-=d}");o.push("return new "+e+"(this.data,"+i.map(function(y){return"a"+y}).join(",")+","+i.map(function(y){return"c"+y}).join(",")+",b)}"),o.push("proto.step=function "+e+"_step("+a.join(",")+"){var "+i.map(function(y){return"a"+y+"=this.shape["+y+"]"}).join(",")+","+i.map(function(y){return"b"+y+"=this.stride["+y+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var p=0;p<t;++p)o.push("if(typeof i"+p+"==='number'){d=i"+p+"|0;if(d<0){c+=b"+p+"*(a"+p+"-1);a"+p+"=ceil(-a"+p+"/d)}else{a"+p+"=ceil(a"+p+"/d)}b"+p+"*=d}");o.push("return new "+e+"(this.data,"+i.map(function(y){return"a"+y}).join(",")+","+i.map(function(y){return"b"+y}).join(",")+",c)}");for(var f=new Array(t),h=new Array(t),p=0;p<t;++p)f[p]="a[i"+p+"]",h[p]="b[i"+p+"]";o.push("proto.transpose=function "+e+"_transpose("+a+"){"+a.map(function(y,g){return y+"=("+y+"===undefined?"+g+":"+y+"|0)"}).join(";"),"var a=this.shape,b=this.stride;return new "+e+"(this.data,"+f.join(",")+","+h.join(",")+",this.offset)}"),o.push("proto.pick=function "+e+"_pick("+a+"){var a=[],b=[],c=this.offset");for(var p=0;p<t;++p)o.push("if(typeof i"+p+"==='number'&&i"+p+">=0){c=(c+this.stride["+p+"]*i"+p+")|0}else{a.push(this.shape["+p+"]);b.push(this.stride["+p+"])}");o.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),o.push("return function construct_"+e+"(data,shape,stride,offset){return new "+e+"(data,"+i.map(function(y){return"shape["+y+"]"}).join(",")+","+i.map(function(y){return"stride["+y+"]"}).join(",")+",offset)}");var m=new Function("CTOR_LIST","ORDER",o.join(`
2
- `));return m(cu[n],xI)}function bI(n){if(mI(n))return"buffer";if(yI)switch(Object.prototype.toString.call(n)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped";case"[object BigInt64Array]":return"bigint64";case"[object BigUint64Array]":return"biguint64"}return Array.isArray(n)?"array":"generic"}var cu={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],bigint64:[],biguint64:[],buffer:[],generic:[]};function SI(n,t,e,r){if(n===void 0){var d=cu.array[0];return d([])}else typeof n=="number"&&(n=[n]);t===void 0&&(t=[n.length]);var o=t.length;if(e===void 0){e=new Array(o);for(var i=o-1,a=1;i>=0;--i)e[i]=a,a*=t[i]}if(r===void 0){r=0;for(var i=0;i<o;++i)e[i]<0&&(r-=(t[i]-1)*e[i])}for(var s=bI(n),l=cu[s];l.length<=o+1;)l.push(vI(s,l.length-1));var d=l[o+1];return d(n,t,e,r)}$x.exports=SI});var Xx=qt((Qre,Yx)=>{"use strict";function wI(n,t){for(var e=1,r=n.length,o=n[0],i=n[0],a=1;a<r;++a)if(i=o,o=n[a],t(o,i)){if(a===e){e++;continue}n[e++]=o}return n.length=e,n}function _I(n){for(var t=1,e=n.length,r=n[0],o=n[0],i=1;i<e;++i,o=r)if(o=r,r=n[i],r!==o){if(i===t){t++;continue}n[t++]=r}return n.length=t,n}function AI(n,t,e){return n.length===0?n:t?(e||n.sort(t),wI(n,t)):(e||n.sort(),_I(n))}Yx.exports=AI});var Zx=qt((Zre,Qx)=>{"use strict";var TI=Xx();function Kx(n,t,e){var r=n.length,o=t.arrayArgs.length,i=t.indexArgs.length>0,a=[],s=[],l=0,d=0,c,u;for(c=0;c<r;++c)s.push(["i",c,"=0"].join(""));for(u=0;u<o;++u)for(c=0;c<r;++c)d=l,l=n[c],c===0?s.push(["d",u,"s",c,"=t",u,"p",l].join("")):s.push(["d",u,"s",c,"=(t",u,"p",l,"-s",d,"*t",u,"p",d,")"].join(""));for(s.length>0&&a.push("var "+s.join(",")),c=r-1;c>=0;--c)l=n[c],a.push(["for(i",c,"=0;i",c,"<s",l,";++i",c,"){"].join(""));for(a.push(e),c=0;c<r;++c){for(d=l,l=n[c],u=0;u<o;++u)a.push(["p",u,"+=d",u,"s",c].join(""));i&&(c>0&&a.push(["index[",d,"]-=s",d].join("")),a.push(["++index[",l,"]"].join(""))),a.push("}")}return a.join(`
3
- `)}function CI(n,t,e,r){for(var o=t.length,i=e.arrayArgs.length,a=e.blockSize,s=e.indexArgs.length>0,l=[],d=0;d<i;++d)l.push(["var offset",d,"=p",d].join(""));for(var d=n;d<o;++d)l.push(["for(var j"+d+"=SS[",t[d],"]|0;j",d,">0;){"].join("")),l.push(["if(j",d,"<",a,"){"].join("")),l.push(["s",t[d],"=j",d].join("")),l.push(["j",d,"=0"].join("")),l.push(["}else{s",t[d],"=",a].join("")),l.push(["j",d,"-=",a,"}"].join("")),s&&l.push(["index[",t[d],"]=j",d].join(""));for(var d=0;d<i;++d){for(var c=["offset"+d],u=n;u<o;++u)c.push(["j",u,"*t",d,"p",t[u]].join(""));l.push(["p",d,"=(",c.join("+"),")"].join(""))}l.push(Kx(t,e,r));for(var d=n;d<o;++d)l.push("}");return l.join(`
4
- `)}function PI(n){for(var t=0,e=n[0].length;t<e;){for(var r=1;r<n.length;++r)if(n[r][t]!==n[0][t])return t;++t}return t}function Up(n,t,e){for(var r=n.body,o=[],i=[],a=0;a<n.args.length;++a){var s=n.args[a];if(!(s.count<=0)){var l=new RegExp(s.name,"g"),d="",c=t.arrayArgs.indexOf(a);switch(t.argTypes[a]){case"offset":var u=t.offsetArgIndex.indexOf(a),p=t.offsetArgs[u];c=p.array,d="+q"+u;case"array":d="p"+c+d;var f="l"+a,h="a"+c;if(t.arrayBlockIndices[c]===0)s.count===1?e[c]==="generic"?s.lvalue?(o.push(["var ",f,"=",h,".get(",d,")"].join("")),r=r.replace(l,f),i.push([h,".set(",d,",",f,")"].join(""))):r=r.replace(l,[h,".get(",d,")"].join("")):r=r.replace(l,[h,"[",d,"]"].join("")):e[c]==="generic"?(o.push(["var ",f,"=",h,".get(",d,")"].join("")),r=r.replace(l,f),s.lvalue&&i.push([h,".set(",d,",",f,")"].join(""))):(o.push(["var ",f,"=",h,"[",d,"]"].join("")),r=r.replace(l,f),s.lvalue&&i.push([h,"[",d,"]=",f].join("")));else{for(var m=[s.name],y=[d],g=0;g<Math.abs(t.arrayBlockIndices[c]);g++)m.push("\\s*\\[([^\\]]+)\\]"),y.push("$"+(g+1)+"*t"+c+"b"+g);if(l=new RegExp(m.join(""),"g"),d=y.join("+"),e[c]==="generic")throw new Error("cwise: Generic arrays not supported in combination with blocks!");r=r.replace(l,[h,"[",d,"]"].join(""))}break;case"scalar":r=r.replace(l,"Y"+t.scalarArgs.indexOf(a));break;case"index":r=r.replace(l,"index");break;case"shape":r=r.replace(l,"shape");break}}}return[o.join(`
1
+ var qv=Object.create;var Ws=Object.defineProperty;var Wv=Object.getOwnPropertyDescriptor;var $v=Object.getOwnPropertyNames;var Yv=Object.getPrototypeOf,Xv=Object.prototype.hasOwnProperty;var Kv=(n,t,e)=>t in n?Ws(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var qt=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Qv=(n,t)=>{for(var e in t)Ws(n,e,{get:t[e],enumerable:!0})},Zv=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $v(t))!Xv.call(n,o)&&o!==e&&Ws(n,o,{get:()=>t[o],enumerable:!(r=Wv(t,o))||r.enumerable});return n};var Rt=(n,t,e)=>(e=n!=null?qv(Yv(n)):{},Zv(t||!n||!n.__esModule?Ws(e,"default",{value:n,enumerable:!0}):e,n));var yt=(n,t,e)=>(Kv(n,typeof t!="symbol"?t+"":t,e),e);var Ly=qt((Zu,Dy)=>{(function(n,t){typeof Zu=="object"?Dy.exports=t():typeof define=="function"&&define.amd?define(t):n.Alea=t()})(Zu,function(){"use strict";return n.importState=function(e){var r=new n;return r.importState(e),r},n;function n(){return function(e){var r=0,o=0,i=0,a=1;e.length==0&&(e=[+new Date]);var s=t();r=s(" "),o=s(" "),i=s(" ");for(var l=0;l<e.length;l++)r-=s(e[l]),r<0&&(r+=1),o-=s(e[l]),o<0&&(o+=1),i-=s(e[l]),i<0&&(i+=1);s=null;var d=function(){var c=2091639*r+a*23283064365386963e-26;return r=o,o=i,i=c-(a=c|0)};return d.next=d,d.uint32=function(){return d()*4294967296},d.fract53=function(){return d()+(d()*2097152|0)*11102230246251565e-32},d.version="Alea 0.9",d.args=e,d.exportState=function(){return[r,o,i,a]},d.importState=function(c){r=+c[0]||0,o=+c[1]||0,i=+c[2]||0,a=+c[3]||0},d}(Array.prototype.slice.call(arguments))}function t(){var e=4022871197,r=function(o){o=o.toString();for(var i=0;i<o.length;i++){e+=o.charCodeAt(i);var a=.02519603282416938*e;e=a>>>0,a-=e,a*=e,e=a>>>0,a-=e,e+=a*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var zy=qt((oc,Gy)=>{(function(n,t){typeof oc=="object"&&typeof Gy<"u"?t(oc):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(oc,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var a,s,l,d,c,u,p,f,h,m,y,g,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],b=[],_=[],A=e==="f"?S:x,v=m=p=0;v<S;v++)b[v]=new Array(A).fill(0);for(v=0;v<x;v++)_[v]=new Array(x).fill(0);var M,O=new Array(x).fill(0);for(v=0;v<S;v++)for(a=0;a<x;a++)b[v][a]=t[v][a];for(v=0;v<x;v++){for(w[v]=p,h=0,l=v+1,a=v;a<S;a++)h+=Math.pow(b[a][v],2);if(h<i)p=0;else for(f=(u=b[v][v])*(p=u<0?Math.sqrt(h):-Math.sqrt(h))-h,b[v][v]=u-p,a=l;a<x;a++){for(h=0,s=v;s<S;s++)h+=b[s][v]*b[s][a];for(u=h/f,s=v;s<S;s++)b[s][a]=b[s][a]+u*b[s][v]}for(O[v]=p,h=0,a=l;a<x;a++)h+=Math.pow(b[v][a],2);if(h<i)p=0;else{for(f=(u=b[v][v+1])*(p=u<0?Math.sqrt(h):-Math.sqrt(h))-h,b[v][v+1]=u-p,a=l;a<x;a++)w[a]=b[v][a]/f;for(a=l;a<S;a++){for(h=0,s=l;s<x;s++)h+=b[a][s]*b[v][s];for(s=l;s<x;s++)b[a][s]=b[a][s]+h*w[s]}}m<(y=Math.abs(O[v])+Math.abs(w[v]))&&(m=y)}if(r)for(v=x-1;0<=v;v--){if(p!==0){for(f=b[v][v+1]*p,a=l;a<x;a++)_[a][v]=b[v][a]/f;for(a=l;a<x;a++){for(h=0,s=l;s<x;s++)h+=b[v][s]*_[s][a];for(s=l;s<x;s++)_[s][a]=_[s][a]+h*_[s][v]}}for(a=l;a<x;a++)_[v][a]=0,_[a][v]=0;_[v][v]=1,p=w[v],l=v}if(e){if(e==="f")for(v=x;v<S;v++){for(a=x;a<S;a++)b[v][a]=0;b[v][v]=1}for(v=x-1;0<=v;v--){for(l=v+1,p=O[v],a=l;a<A;a++)b[v][a]=0;if(p!==0){for(f=b[v][v]*p,a=l;a<A;a++){for(h=0,s=l;s<S;s++)h+=b[s][v]*b[s][a];for(u=h/f,s=v;s<S;s++)b[s][a]=b[s][a]+u*b[s][v]}for(a=v;a<S;a++)b[a][v]=b[a][v]/p}else for(a=v;a<S;a++)b[a][v]=0;b[v][v]=b[v][v]+1}}for(o*=m,s=x-1;0<=s;s--)for(var T=0;T<50;T++){for(M=!1,l=s;0<=l;l--){if(Math.abs(w[l])<=o){M=!0;break}if(Math.abs(O[l-1])<=o)break}if(!M){for(c=0,d=l-(h=1),v=l;v<s+1&&(u=h*w[v],w[v]=c*w[v],!(Math.abs(u)<=o));v++)if(p=O[v],O[v]=Math.sqrt(u*u+p*p),c=p/(f=O[v]),h=-u/f,e)for(a=0;a<S;a++)y=b[a][d],g=b[a][v],b[a][d]=y*c+g*h,b[a][v]=-y*h+g*c}if(g=O[s],l===s){if(g<0&&(O[s]=-g,r))for(a=0;a<x;a++)_[a][s]=-_[a][s];break}for(m=O[l],u=(((y=O[s-1])-g)*(y+g)+((p=w[s-1])-(f=w[s]))*(p+f))/(2*f*y),p=Math.sqrt(u*u+1),u=((m-g)*(m+g)+f*(y/(u<0?u-p:u+p)-f))/m,v=l+(h=c=1);v<s+1;v++){if(p=w[v],y=O[v],f=h*p,p*=c,g=Math.sqrt(u*u+f*f),u=m*(c=u/(w[v-1]=g))+p*(h=f/g),p=-m*h+p*c,f=y*h,y*=c,r)for(a=0;a<x;a++)m=_[a][v-1],g=_[a][v],_[a][v-1]=m*c+g*h,_[a][v]=-m*h+g*c;if(g=Math.sqrt(u*u+f*f),u=(c=u/(O[v-1]=g))*p+(h=f/g)*y,m=-h*p+c*y,e)for(a=0;a<S;a++)y=b[a][v-1],g=b[a][v],b[a][v-1]=y*c+g*h,b[a][v]=-y*h+g*c}w[l]=0,w[s]=u,O[s]=m}for(v=0;v<x;v++)O[v]<o&&(O[v]=0);return{u:b,q:O,v:_}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var xg=qt((Td,Cd)=>{(function(n,t){typeof Td=="object"&&typeof Cd<"u"?Cd.exports=t():typeof define=="function"&&define.amd?define(t):(n=n||self,n.TinyQueue=t())})(Td,function(){"use strict";var n=function(r,o){if(r===void 0&&(r=[]),o===void 0&&(o=t),this.data=r,this.length=this.data.length,this.compare=o,this.length>0)for(var i=(this.length>>1)-1;i>=0;i--)this._down(i)};n.prototype.push=function(r){this.data.push(r),this.length++,this._up(this.length-1)},n.prototype.pop=function(){if(this.length!==0){var r=this.data[0],o=this.data.pop();return this.length--,this.length>0&&(this.data[0]=o,this._down(0)),r}},n.prototype.peek=function(){return this.data[0]},n.prototype._up=function(r){for(var o=this,i=o.data,a=o.compare,s=i[r];r>0;){var l=r-1>>1,d=i[l];if(a(s,d)>=0)break;i[r]=d,r=l}i[r]=s},n.prototype._down=function(r){for(var o=this,i=o.data,a=o.compare,s=this.length>>1,l=i[r];r<s;){var d=(r<<1)+1,c=i[d],u=d+1;if(u<this.length&&a(i[u],c)<0&&(d=u,c=i[u]),a(c,l)>=0)break;i[r]=c,r=d}i[r]=l};function t(e,r){return e<r?-1:e>r?1:0}return n})});var bg=qt((l5,Pd)=>{"use strict";var hc=xg();hc.default&&(hc=hc.default);Pd.exports=vg;Pd.exports.default=vg;function vg(n,t,e){t=t||1;for(var r,o,i,a,s=0;s<n[0].length;s++){var l=n[0][s];(!s||l[0]<r)&&(r=l[0]),(!s||l[1]<o)&&(o=l[1]),(!s||l[0]>i)&&(i=l[0]),(!s||l[1]>a)&&(a=l[1])}var d=i-r,c=a-o,u=Math.min(d,c),p=u/2;if(u===0){var f=[r,o];return f.distance=0,f}for(var h=new hc(void 0,dP),m=r;m<i;m+=u)for(var y=o;y<a;y+=u)h.push(new en(m+p,y+p,p,n));var g=fP(n),x=new en(r+d/2,o+c/2,0,n);x.d>g.d&&(g=x);for(var S=h.length;h.length;){var w=h.pop();w.d>g.d&&(g=w,e&&console.log("found best %d after %d probes",Math.round(1e4*w.d)/1e4,S)),!(w.max-g.d<=t)&&(p=w.h/2,h.push(new en(w.x-p,w.y-p,p,n)),h.push(new en(w.x+p,w.y-p,p,n)),h.push(new en(w.x-p,w.y+p,p,n)),h.push(new en(w.x+p,w.y+p,p,n)),S+=4)}e&&(console.log("num probes: "+S),console.log("best distance: "+g.d));var b=[g.x,g.y];return b.distance=g.d,b}function dP(n,t){return t.max-n.max}function en(n,t,e,r){this.x=n,this.y=t,this.h=e,this.d=pP(n,t,r),this.max=this.d+this.h*Math.SQRT2}function pP(n,t,e){for(var r=!1,o=1/0,i=0;i<e.length;i++)for(var a=e[i],s=0,l=a.length,d=l-1;s<l;d=s++){var c=a[s],u=a[d];c[1]>t!=u[1]>t&&n<(u[0]-c[0])*(t-c[1])/(u[1]-c[1])+c[0]&&(r=!r),o=Math.min(o,hP(n,t,c,u))}return o===0?0:(r?1:-1)*Math.sqrt(o)}function fP(n){for(var t=0,e=0,r=0,o=n[0],i=0,a=o.length,s=a-1;i<a;s=i++){var l=o[i],d=o[s],c=l[0]*d[1]-d[0]*l[1];e+=(l[0]+d[0])*c,r+=(l[1]+d[1])*c,t+=c*3}return t===0?new en(o[0][0],o[0][1],0,n):new en(e/t,r/t,0,n)}function hP(n,t,e,r){var o=e[0],i=e[1],a=r[0]-o,s=r[1]-i;if(a!==0||s!==0){var l=((n-o)*a+(t-i)*s)/(a*a+s*s);l>1?(o=r[0],i=r[1]):l>0&&(o+=a*l,i+=s*l)}return a=n-o,s=t-i,a*a+s*s}});var B0=qt(jc=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var c=this||t;return c._counter=1e3,c._html5AudioPool=[],c.html5PoolSize=10,c._codecs={},c._howls=[],c._muted=!1,c._volume=1,c._canPlayEvent="canplaythrough",c._navigator=typeof window<"u"&&window.navigator?window.navigator:null,c.masterGain=null,c.noAudio=!1,c.usingWebAudio=!0,c.autoSuspend=!0,c.ctx=null,c.autoUnlock=!0,c._setup(),c},volume:function(c){var u=this||t;if(c=parseFloat(c),u.ctx||d(),typeof c<"u"&&c>=0&&c<=1){if(u._volume=c,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(c,t.ctx.currentTime);for(var p=0;p<u._howls.length;p++)if(!u._howls[p]._webAudio)for(var f=u._howls[p]._getSoundIds(),h=0;h<f.length;h++){var m=u._howls[p]._soundById(f[h]);m&&m._node&&(m._node.volume=m._volume*c)}return u}return u._volume},mute:function(c){var u=this||t;u.ctx||d(),u._muted=c,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(c?0:u._volume,t.ctx.currentTime);for(var p=0;p<u._howls.length;p++)if(!u._howls[p]._webAudio)for(var f=u._howls[p]._getSoundIds(),h=0;h<f.length;h++){var m=u._howls[p]._soundById(f[h]);m&&m._node&&(m._node.muted=c?!0:m._muted)}return u},stop:function(){for(var c=this||t,u=0;u<c._howls.length;u++)c._howls[u].stop();return c},unload:function(){for(var c=this||t,u=c._howls.length-1;u>=0;u--)c._howls[u].unload();return c.usingWebAudio&&c.ctx&&typeof c.ctx.close<"u"&&(c.ctx.close(),c.ctx=null,d()),c},codecs:function(c){return(this||t)._codecs[c.replace(/^x-/,"")]},_setup:function(){var c=this||t;if(c.state=c.ctx&&c.ctx.state||"suspended",c._autoSuspend(),!c.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(c._canPlayEvent="canplay")}catch{c.noAudio=!0}else c.noAudio=!0;try{var u=new Audio;u.muted&&(c.noAudio=!0)}catch{}return c.noAudio||c._setupCodecs(),c},_setupCodecs:function(){var c=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return c}if(!u||typeof u.canPlayType!="function")return c;var p=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=c._navigator?c._navigator.userAgent:"",h=f.match(/OPR\/([0-6].)/g),m=h&&parseInt(h[0].split("/")[1],10)<33,y=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,g=f.match(/Version\/(.*?) /),x=y&&g&&parseInt(g[1],10)<15;return c._codecs={mp3:!!(!m&&(p||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!p,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!u.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(u.canPlayType("audio/x-flac;")||u.canPlayType("audio/flac;")).replace(/^no$/,"")},c},_unlockAudio:function(){var c=this||t;if(!(c._audioUnlocked||!c.ctx)){c._audioUnlocked=!1,c.autoUnlock=!1,!c._mobileUnloaded&&c.ctx.sampleRate!==44100&&(c._mobileUnloaded=!0,c.unload()),c._scratchBuffer=c.ctx.createBuffer(1,1,22050);var u=function(p){for(;c._html5AudioPool.length<c.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,c._releaseHtml5Audio(f)}catch{c.noAudio=!0;break}for(var h=0;h<c._howls.length;h++)if(!c._howls[h]._webAudio)for(var m=c._howls[h]._getSoundIds(),y=0;y<m.length;y++){var g=c._howls[h]._soundById(m[y]);g&&g._node&&!g._node._unlocked&&(g._node._unlocked=!0,g._node.load())}c._autoResume();var x=c.ctx.createBufferSource();x.buffer=c._scratchBuffer,x.connect(c.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof c.ctx.resume=="function"&&c.ctx.resume(),x.onended=function(){x.disconnect(0),c._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var S=0;S<c._howls.length;S++)c._howls[S]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),c}},_obtainHtml5Audio:function(){var c=this||t;if(c._html5AudioPool.length)return c._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(c){var u=this||t;return c._unlocked&&u._html5AudioPool.push(c),u},_autoSuspend:function(){var c=this;if(!(!c.autoSuspend||!c.ctx||typeof c.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<c._howls.length;u++)if(c._howls[u]._webAudio){for(var p=0;p<c._howls[u]._sounds.length;p++)if(!c._howls[u]._sounds[p]._paused)return c}return c._suspendTimer&&clearTimeout(c._suspendTimer),c._suspendTimer=setTimeout(function(){if(!!c.autoSuspend){c._suspendTimer=null,c.state="suspending";var f=function(){c.state="suspended",c._resumeAfterSuspend&&(delete c._resumeAfterSuspend,c._autoResume())};c.ctx.suspend().then(f,f)}},3e4),c}},_autoResume:function(){var c=this;if(!(!c.ctx||typeof c.ctx.resume>"u"||!t.usingWebAudio))return c.state==="running"&&c.ctx.state!=="interrupted"&&c._suspendTimer?(clearTimeout(c._suspendTimer),c._suspendTimer=null):c.state==="suspended"||c.state==="running"&&c.ctx.state==="interrupted"?(c.ctx.resume().then(function(){c.state="running";for(var u=0;u<c._howls.length;u++)c._howls[u]._emit("resume")}),c._suspendTimer&&(clearTimeout(c._suspendTimer),c._suspendTimer=null)):c.state==="suspending"&&(c._resumeAfterSuspend=!0),c}};var t=new n,e=function(c){var u=this;if(!c.src||c.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(c)};e.prototype={init:function(c){var u=this;return t.ctx||d(),u._autoplay=c.autoplay||!1,u._format=typeof c.format!="string"?c.format:[c.format],u._html5=c.html5||!1,u._muted=c.mute||!1,u._loop=c.loop||!1,u._pool=c.pool||5,u._preload=typeof c.preload=="boolean"||c.preload==="metadata"?c.preload:!0,u._rate=c.rate||1,u._sprite=c.sprite||{},u._src=typeof c.src!="string"?c.src:[c.src],u._volume=c.volume!==void 0?c.volume:1,u._xhr={method:c.xhr&&c.xhr.method?c.xhr.method:"GET",headers:c.xhr&&c.xhr.headers?c.xhr.headers:null,withCredentials:c.xhr&&c.xhr.withCredentials?c.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=c.onend?[{fn:c.onend}]:[],u._onfade=c.onfade?[{fn:c.onfade}]:[],u._onload=c.onload?[{fn:c.onload}]:[],u._onloaderror=c.onloaderror?[{fn:c.onloaderror}]:[],u._onplayerror=c.onplayerror?[{fn:c.onplayerror}]:[],u._onpause=c.onpause?[{fn:c.onpause}]:[],u._onplay=c.onplay?[{fn:c.onplay}]:[],u._onstop=c.onstop?[{fn:c.onstop}]:[],u._onmute=c.onmute?[{fn:c.onmute}]:[],u._onvolume=c.onvolume?[{fn:c.onvolume}]:[],u._onrate=c.onrate?[{fn:c.onrate}]:[],u._onseek=c.onseek?[{fn:c.onseek}]:[],u._onunlock=c.onunlock?[{fn:c.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var c=this,u=null;if(t.noAudio){c._emit("loaderror",null,"No audio support.");return}typeof c._src=="string"&&(c._src=[c._src]);for(var p=0;p<c._src.length;p++){var f,h;if(c._format&&c._format[p])f=c._format[p];else{if(h=c._src[p],typeof h!="string"){c._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(h),f||(f=/\.([^.]+)$/.exec(h.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=c._src[p];break}}if(!u){c._emit("loaderror",null,"No codec support for selected audio sources.");return}return c._src=u,c._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(c._html5=!0,c._webAudio=!1),new r(c),c._webAudio&&i(c),c},play:function(c,u){var p=this,f=null;if(typeof c=="number")f=c,c=null;else{if(typeof c=="string"&&p._state==="loaded"&&!p._sprite[c])return null;if(typeof c>"u"&&(c="__default",!p._playLock)){for(var h=0,m=0;m<p._sounds.length;m++)p._sounds[m]._paused&&!p._sounds[m]._ended&&(h++,f=p._sounds[m]._id);h===1?c=null:f=null}}var y=f?p._soundById(f):p._inactiveSound();if(!y)return null;if(f&&!c&&(c=y._sprite||"__default"),p._state!=="loaded"){y._sprite=c,y._ended=!1;var g=y._id;return p._queue.push({event:"play",action:function(){p.play(g)}}),g}if(f&&!y._paused)return u||p._loadQueue("play"),y._id;p._webAudio&&t._autoResume();var x=Math.max(0,y._seek>0?y._seek:p._sprite[c][0]/1e3),S=Math.max(0,(p._sprite[c][0]+p._sprite[c][1])/1e3-x),w=S*1e3/Math.abs(y._rate),b=p._sprite[c][0]/1e3,_=(p._sprite[c][0]+p._sprite[c][1])/1e3;y._sprite=c,y._ended=!1;var A=function(){y._paused=!1,y._seek=x,y._start=b,y._stop=_,y._loop=!!(y._loop||p._sprite[c][2])};if(x>=_){p._ended(y);return}var v=y._node;if(p._webAudio){var M=function(){p._playLock=!1,A(),p._refreshBuffer(y);var P=y._muted||p._muted?0:y._volume;v.gain.setValueAtTime(P,t.ctx.currentTime),y._playStart=t.ctx.currentTime,typeof v.bufferSource.start>"u"?y._loop?v.bufferSource.noteGrainOn(0,x,86400):v.bufferSource.noteGrainOn(0,x,S):y._loop?v.bufferSource.start(0,x,86400):v.bufferSource.start(0,x,S),w!==1/0&&(p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),w)),u||setTimeout(function(){p._emit("play",y._id),p._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?M():(p._playLock=!0,p.once("resume",M),p._clearTimer(y._id))}else{var O=function(){v.currentTime=x,v.muted=y._muted||p._muted||t._muted||v.muted,v.volume=y._volume*t.volume(),v.playbackRate=y._rate;try{var P=v.play();if(P&&typeof Promise<"u"&&(P instanceof Promise||typeof P.then=="function")?(p._playLock=!0,A(),P.then(function(){p._playLock=!1,v._unlocked=!0,u?p._loadQueue():p._emit("play",y._id)}).catch(function(){p._playLock=!1,p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),y._ended=!0,y._paused=!0})):u||(p._playLock=!1,A(),p._emit("play",y._id)),v.playbackRate=y._rate,v.paused){p._emit("playerror",y._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");return}c!=="__default"||y._loop?p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),w):(p._endTimers[y._id]=function(){p._ended(y),v.removeEventListener("ended",p._endTimers[y._id],!1)},v.addEventListener("ended",p._endTimers[y._id],!1))}catch(I){p._emit("playerror",y._id,I)}};v.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(v.src=p._src,v.load());var T=window&&window.ejecta||!v.readyState&&t._navigator.isCocoonJS;if(v.readyState>=3||T)O();else{p._playLock=!0,p._state="loading";var C=function(){p._state="loaded",O(),v.removeEventListener(t._canPlayEvent,C,!1)};v.addEventListener(t._canPlayEvent,C,!1),p._clearTimer(y._id)}}return y._id},pause:function(c){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(c)}}),u;for(var p=u._getSoundIds(c),f=0;f<p.length;f++){u._clearTimer(p[f]);var h=u._soundById(p[f]);if(h&&!h._paused&&(h._seek=u.seek(p[f]),h._rateSeek=0,h._paused=!0,u._stopFade(p[f]),h._node))if(u._webAudio){if(!h._node.bufferSource)continue;typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),u._cleanBuffer(h._node)}else(!isNaN(h._node.duration)||h._node.duration===1/0)&&h._node.pause();arguments[1]||u._emit("pause",h?h._id:null)}return u},stop:function(c,u){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"stop",action:function(){p.stop(c)}}),p;for(var f=p._getSoundIds(c),h=0;h<f.length;h++){p._clearTimer(f[h]);var m=p._soundById(f[h]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,p._stopFade(f[h]),m._node&&(p._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),p._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&p._clearSound(m._node))),u||p._emit("stop",m._id))}return p},mute:function(c,u){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"mute",action:function(){p.mute(c,u)}}),p;if(typeof u>"u")if(typeof c=="boolean")p._muted=c;else return p._muted;for(var f=p._getSoundIds(u),h=0;h<f.length;h++){var m=p._soundById(f[h]);m&&(m._muted=c,m._interval&&p._stopFade(m._id),p._webAudio&&m._node?m._node.gain.setValueAtTime(c?0:m._volume,t.ctx.currentTime):m._node&&(m._node.muted=t._muted?!0:c),p._emit("mute",m._id))}return p},volume:function(){var c=this,u=arguments,p,f;if(u.length===0)return c._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var h=c._getSoundIds(),m=h.indexOf(u[0]);m>=0?f=parseInt(u[0],10):p=parseFloat(u[0])}else u.length>=2&&(p=parseFloat(u[0]),f=parseInt(u[1],10));var y;if(typeof p<"u"&&p>=0&&p<=1){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"volume",action:function(){c.volume.apply(c,u)}}),c;typeof f>"u"&&(c._volume=p),f=c._getSoundIds(f);for(var g=0;g<f.length;g++)y=c._soundById(f[g]),y&&(y._volume=p,u[2]||c._stopFade(f[g]),c._webAudio&&y._node&&!y._muted?y._node.gain.setValueAtTime(p,t.ctx.currentTime):y._node&&!y._muted&&(y._node.volume=p*t.volume()),c._emit("volume",y._id))}else return y=f?c._soundById(f):c._sounds[0],y?y._volume:0;return c},fade:function(c,u,p,f){var h=this;if(h._state!=="loaded"||h._playLock)return h._queue.push({event:"fade",action:function(){h.fade(c,u,p,f)}}),h;c=Math.min(Math.max(0,parseFloat(c)),1),u=Math.min(Math.max(0,parseFloat(u)),1),p=parseFloat(p),h.volume(c,f);for(var m=h._getSoundIds(f),y=0;y<m.length;y++){var g=h._soundById(m[y]);if(g){if(f||h._stopFade(m[y]),h._webAudio&&!g._muted){var x=t.ctx.currentTime,S=x+p/1e3;g._volume=c,g._node.gain.setValueAtTime(c,x),g._node.gain.linearRampToValueAtTime(u,S)}h._startFadeInterval(g,c,u,p,m[y],typeof f>"u")}}return h},_startFadeInterval:function(c,u,p,f,h,m){var y=this,g=u,x=p-u,S=Math.abs(x/.01),w=Math.max(4,S>0?f/S:f),b=Date.now();c._fadeTo=p,c._interval=setInterval(function(){var _=(Date.now()-b)/f;b=Date.now(),g+=x*_,g=Math.round(g*100)/100,x<0?g=Math.max(p,g):g=Math.min(p,g),y._webAudio?c._volume=g:y.volume(g,c._id,!0),m&&(y._volume=g),(p<u&&g<=p||p>u&&g>=p)&&(clearInterval(c._interval),c._interval=null,c._fadeTo=null,y.volume(p,c._id),y._emit("fade",c._id))},w)},_stopFade:function(c){var u=this,p=u._soundById(c);return p&&p._interval&&(u._webAudio&&p._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(p._interval),p._interval=null,u.volume(p._fadeTo,c),p._fadeTo=null,u._emit("fade",c)),u},loop:function(){var c=this,u=arguments,p,f,h;if(u.length===0)return c._loop;if(u.length===1)if(typeof u[0]=="boolean")p=u[0],c._loop=p;else return h=c._soundById(parseInt(u[0],10)),h?h._loop:!1;else u.length===2&&(p=u[0],f=parseInt(u[1],10));for(var m=c._getSoundIds(f),y=0;y<m.length;y++)h=c._soundById(m[y]),h&&(h._loop=p,c._webAudio&&h._node&&h._node.bufferSource&&(h._node.bufferSource.loop=p,p&&(h._node.bufferSource.loopStart=h._start||0,h._node.bufferSource.loopEnd=h._stop,c.playing(m[y])&&(c.pause(m[y],!0),c.play(m[y],!0)))));return c},rate:function(){var c=this,u=arguments,p,f;if(u.length===0)f=c._sounds[0]._id;else if(u.length===1){var h=c._getSoundIds(),m=h.indexOf(u[0]);m>=0?f=parseInt(u[0],10):p=parseFloat(u[0])}else u.length===2&&(p=parseFloat(u[0]),f=parseInt(u[1],10));var y;if(typeof p=="number"){if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"rate",action:function(){c.rate.apply(c,u)}}),c;typeof f>"u"&&(c._rate=p),f=c._getSoundIds(f);for(var g=0;g<f.length;g++)if(y=c._soundById(f[g]),y){c.playing(f[g])&&(y._rateSeek=c.seek(f[g]),y._playStart=c._webAudio?t.ctx.currentTime:y._playStart),y._rate=p,c._webAudio&&y._node&&y._node.bufferSource?y._node.bufferSource.playbackRate.setValueAtTime(p,t.ctx.currentTime):y._node&&(y._node.playbackRate=p);var x=c.seek(f[g]),S=(c._sprite[y._sprite][0]+c._sprite[y._sprite][1])/1e3-x,w=S*1e3/Math.abs(y._rate);(c._endTimers[f[g]]||!y._paused)&&(c._clearTimer(f[g]),c._endTimers[f[g]]=setTimeout(c._ended.bind(c,y),w)),c._emit("rate",y._id)}}else return y=c._soundById(f),y?y._rate:c._rate;return c},seek:function(){var c=this,u=arguments,p,f;if(u.length===0)c._sounds.length&&(f=c._sounds[0]._id);else if(u.length===1){var h=c._getSoundIds(),m=h.indexOf(u[0]);m>=0?f=parseInt(u[0],10):c._sounds.length&&(f=c._sounds[0]._id,p=parseFloat(u[0]))}else u.length===2&&(p=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof p=="number"&&(c._state!=="loaded"||c._playLock))return c._queue.push({event:"seek",action:function(){c.seek.apply(c,u)}}),c;var y=c._soundById(f);if(y)if(typeof p=="number"&&p>=0){var g=c.playing(f);g&&c.pause(f,!0),y._seek=p,y._ended=!1,c._clearTimer(f),!c._webAudio&&y._node&&!isNaN(y._node.duration)&&(y._node.currentTime=p);var x=function(){g&&c.play(f,!0),c._emit("seek",f)};if(g&&!c._webAudio){var S=function(){c._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(c._webAudio){var w=c.playing(f)?t.ctx.currentTime-y._playStart:0,b=y._rateSeek?y._rateSeek-y._seek:0;return y._seek+(b+w*Math.abs(y._rate))}else return y._node.currentTime;return c},playing:function(c){var u=this;if(typeof c=="number"){var p=u._soundById(c);return p?!p._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(c){var u=this,p=u._duration,f=u._soundById(c);return f&&(p=u._sprite[f._sprite][1]/1e3),p},state:function(){return this._state},unload:function(){for(var c=this,u=c._sounds,p=0;p<u.length;p++)u[p]._paused||c.stop(u[p]._id),c._webAudio||(c._clearSound(u[p]._node),u[p]._node.removeEventListener("error",u[p]._errorFn,!1),u[p]._node.removeEventListener(t._canPlayEvent,u[p]._loadFn,!1),u[p]._node.removeEventListener("ended",u[p]._endFn,!1),t._releaseHtml5Audio(u[p]._node)),delete u[p]._node,c._clearTimer(u[p]._id);var f=t._howls.indexOf(c);f>=0&&t._howls.splice(f,1);var h=!0;for(p=0;p<t._howls.length;p++)if(t._howls[p]._src===c._src||c._src.indexOf(t._howls[p]._src)>=0){h=!1;break}return o&&h&&delete o[c._src],t.noAudio=!1,c._state="unloaded",c._sounds=[],c=null,null},on:function(c,u,p,f){var h=this,m=h["_on"+c];return typeof u=="function"&&m.push(f?{id:p,fn:u,once:f}:{id:p,fn:u}),h},off:function(c,u,p){var f=this,h=f["_on"+c],m=0;if(typeof u=="number"&&(p=u,u=null),u||p)for(m=0;m<h.length;m++){var y=p===h[m].id;if(u===h[m].fn&&y||!u&&y){h.splice(m,1);break}}else if(c)f["_on"+c]=[];else{var g=Object.keys(f);for(m=0;m<g.length;m++)g[m].indexOf("_on")===0&&Array.isArray(f[g[m]])&&(f[g[m]]=[])}return f},once:function(c,u,p){var f=this;return f.on(c,u,p,1),f},_emit:function(c,u,p){for(var f=this,h=f["_on"+c],m=h.length-1;m>=0;m--)(!h[m].id||h[m].id===u||c==="load")&&(setTimeout(function(y){y.call(this,u,p)}.bind(f,h[m].fn),0),h[m].once&&f.off(c,h[m].fn,h[m].id));return f._loadQueue(c),f},_loadQueue:function(c){var u=this;if(u._queue.length>0){var p=u._queue[0];p.event===c&&(u._queue.shift(),u._loadQueue()),c||p.action()}return u},_ended:function(c){var u=this,p=c._sprite;if(!u._webAudio&&c._node&&!c._node.paused&&!c._node.ended&&c._node.currentTime<c._stop)return setTimeout(u._ended.bind(u,c),100),u;var f=!!(c._loop||u._sprite[p][2]);if(u._emit("end",c._id),!u._webAudio&&f&&u.stop(c._id,!0).play(c._id),u._webAudio&&f){u._emit("play",c._id),c._seek=c._start||0,c._rateSeek=0,c._playStart=t.ctx.currentTime;var h=(c._stop-c._start)*1e3/Math.abs(c._rate);u._endTimers[c._id]=setTimeout(u._ended.bind(u,c),h)}return u._webAudio&&!f&&(c._paused=!0,c._ended=!0,c._seek=c._start||0,c._rateSeek=0,u._clearTimer(c._id),u._cleanBuffer(c._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(c._id,!0),u},_clearTimer:function(c){var u=this;if(u._endTimers[c]){if(typeof u._endTimers[c]!="function")clearTimeout(u._endTimers[c]);else{var p=u._soundById(c);p&&p._node&&p._node.removeEventListener("ended",u._endTimers[c],!1)}delete u._endTimers[c]}return u},_soundById:function(c){for(var u=this,p=0;p<u._sounds.length;p++)if(c===u._sounds[p]._id)return u._sounds[p];return null},_inactiveSound:function(){var c=this;c._drain();for(var u=0;u<c._sounds.length;u++)if(c._sounds[u]._ended)return c._sounds[u].reset();return new r(c)},_drain:function(){var c=this,u=c._pool,p=0,f=0;if(!(c._sounds.length<u)){for(f=0;f<c._sounds.length;f++)c._sounds[f]._ended&&p++;for(f=c._sounds.length-1;f>=0;f--){if(p<=u)return;c._sounds[f]._ended&&(c._webAudio&&c._sounds[f]._node&&c._sounds[f]._node.disconnect(0),c._sounds.splice(f,1),p--)}}},_getSoundIds:function(c){var u=this;if(typeof c>"u"){for(var p=[],f=0;f<u._sounds.length;f++)p.push(u._sounds[f]._id);return p}else return[c]},_refreshBuffer:function(c){var u=this;return c._node.bufferSource=t.ctx.createBufferSource(),c._node.bufferSource.buffer=o[u._src],c._panner?c._node.bufferSource.connect(c._panner):c._node.bufferSource.connect(c._node),c._node.bufferSource.loop=c._loop,c._loop&&(c._node.bufferSource.loopStart=c._start||0,c._node.bufferSource.loopEnd=c._stop||0),c._node.bufferSource.playbackRate.setValueAtTime(c._rate,t.ctx.currentTime),u},_cleanBuffer:function(c){var u=this,p=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&c.bufferSource&&(c.bufferSource.onended=null,c.bufferSource.disconnect(0),p))try{c.bufferSource.buffer=t._scratchBuffer}catch{}return c.bufferSource=null,u},_clearSound:function(c){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(c.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(c){this._parent=c,this.init()};r.prototype={init:function(){var c=this,u=c._parent;return c._muted=u._muted,c._loop=u._loop,c._volume=u._volume,c._rate=u._rate,c._seek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,u._sounds.push(c),c.create(),c},create:function(){var c=this,u=c._parent,p=t._muted||c._muted||c._parent._muted?0:c._volume;return u._webAudio?(c._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),c._node.gain.setValueAtTime(p,t.ctx.currentTime),c._node.paused=!0,c._node.connect(t.masterGain)):t.noAudio||(c._node=t._obtainHtml5Audio(),c._errorFn=c._errorListener.bind(c),c._node.addEventListener("error",c._errorFn,!1),c._loadFn=c._loadListener.bind(c),c._node.addEventListener(t._canPlayEvent,c._loadFn,!1),c._endFn=c._endListener.bind(c),c._node.addEventListener("ended",c._endFn,!1),c._node.src=u._src,c._node.preload=u._preload===!0?"auto":u._preload,c._node.volume=p*t.volume(),c._node.load()),c},reset:function(){var c=this,u=c._parent;return c._muted=u._muted,c._loop=u._loop,c._volume=u._volume,c._rate=u._rate,c._seek=0,c._rateSeek=0,c._paused=!0,c._ended=!0,c._sprite="__default",c._id=++t._counter,c},_errorListener:function(){var c=this;c._parent._emit("loaderror",c._id,c._node.error?c._node.error.code:0),c._node.removeEventListener("error",c._errorFn,!1)},_loadListener:function(){var c=this,u=c._parent;u._duration=Math.ceil(c._node.duration*10)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,u._duration*1e3]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),c._node.removeEventListener(t._canPlayEvent,c._loadFn,!1)},_endListener:function(){var c=this,u=c._parent;u._duration===1/0&&(u._duration=Math.ceil(c._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(c)),c._node.removeEventListener("ended",c._endFn,!1)}};var o={},i=function(c){var u=c._src;if(o[u]){c._duration=o[u].duration,l(c);return}if(/^data:[^;]+;base64,/.test(u)){for(var p=atob(u.split(",")[1]),f=new Uint8Array(p.length),h=0;h<p.length;++h)f[h]=p.charCodeAt(h);s(f.buffer,c)}else{var m=new XMLHttpRequest;m.open(c._xhr.method,u,!0),m.withCredentials=c._xhr.withCredentials,m.responseType="arraybuffer",c._xhr.headers&&Object.keys(c._xhr.headers).forEach(function(y){m.setRequestHeader(y,c._xhr.headers[y])}),m.onload=function(){var y=(m.status+"")[0];if(y!=="0"&&y!=="2"&&y!=="3"){c._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}s(m.response,c)},m.onerror=function(){c._webAudio&&(c._html5=!0,c._webAudio=!1,c._sounds=[],delete o[u],c.load())},a(m)}},a=function(c){try{c.send()}catch{c.onerror()}},s=function(c,u){var p=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(h){h&&u._sounds.length>0?(o[u._src]=h,l(u,h)):p()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(c).then(f).catch(p):t.ctx.decodeAudioData(c,f,p)},l=function(c,u){u&&!c._duration&&(c._duration=u.duration),Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue())},d=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var c=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),p=u?parseInt(u[1],10):null;if(c&&p&&p<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof jc<"u"&&(jc.Howler=t,jc.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,a){var s=this;if(!s.ctx||!s.ctx.listener)return s;var l=s._orientation;if(e=typeof e!="number"?l[1]:e,r=typeof r!="number"?l[2]:r,o=typeof o!="number"?l[3]:o,i=typeof i!="number"?l[4]:i,a=typeof a!="number"?l[5]:a,typeof t=="number")s._orientation=[t,e,r,o,i,a],typeof s.ctx.listener.forwardX<"u"?(s.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),s.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),s.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),s.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),s.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),s.ctx.listener.upZ.setTargetAtTime(a,Howler.ctx.currentTime,.1)):s.ctx.listener.setOrientation(t,e,r,o,i,a);else return l;return s},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),a=0;a<i.length;a++){var s=r._soundById(i[a]);if(s)if(typeof t=="number")s._stereo=t,s._pos=[t,0,0],s._node&&(s._pannerAttr.panningModel="equalpower",(!s._panner||!s._panner.pan)&&n(s,o),o==="spatial"?typeof s._panner.positionX<"u"?(s._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),s._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),s._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):s._panner.setPosition(t,0,0):s._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",s._id);else return s._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._pos=[t,e,r],l._node&&((!l._panner||l._panner.pan)&&n(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):l._panner.setPosition(t,e,r)),i._emit("pos",l._id);else return l._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var a=i._getSoundIds(o),s=0;s<a.length;s++){var l=i._soundById(a[s]);if(l)if(typeof t=="number")l._orientation=[t,e,r],l._node&&(l._panner||(l._pos||(l._pos=i._pos||[0,0,-.5]),n(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):l._panner.setOrientation(t,e,r)),i._emit("orientation",l._id);else return l._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var a=t._getSoundIds(o),s=0;s<a.length;s++)if(i=t._soundById(a[s]),i){var l=i._pannerAttr;l={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:l.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:l.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:l.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:l.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:l.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:l.panningModel};var d=i._panner;d?(d.coneInnerAngle=l.coneInnerAngle,d.coneOuterAngle=l.coneOuterAngle,d.coneOuterGain=l.coneOuterGain,d.distanceModel=l.distanceModel,d.maxDistance=l.maxDistance,d.refDistance=l.refDistance,d.rolloffFactor=l.rolloffFactor,d.panningModel=l.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Ux=qt(($re,jx)=>{"use strict";function fI(n){for(var t=new Array(n),e=0;e<n;++e)t[e]=e;return t}jx.exports=fI});var Wx=qt((Yre,qx)=>{qx.exports=function(n){return n!=null&&(Hx(n)||hI(n)||!!n._isBuffer)};function Hx(n){return!!n.constructor&&typeof n.constructor.isBuffer=="function"&&n.constructor.isBuffer(n)}function hI(n){return typeof n.readFloatLE=="function"&&typeof n.slice=="function"&&Hx(n.slice(0,0))}});var ja=qt((Xre,$x)=>{var mI=Ux(),yI=Wx(),gI=typeof Float64Array<"u";function xI(n,t){return n[0]-t[0]}function vI(){var n=this.stride,t=new Array(n.length),e;for(e=0;e<t.length;++e)t[e]=[Math.abs(n[e]),e];t.sort(xI);var r=new Array(t.length);for(e=0;e<r.length;++e)r[e]=t[e][1];return r}function bI(n,t){var e=["View",t,"d",n].join("");t<0&&(e="View_Nil"+n);var r=n==="generic";if(t===-1){var o="function "+e+"(a){this.data=a;};var proto="+e+".prototype;proto.dtype='"+n+"';proto.index=function(){return -1};proto.size=0;proto.dimension=-1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function(){return new "+e+"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_"+e+"(a){return new "+e+"(a);}",m=new Function(o);return m()}else if(t===0){var o="function "+e+"(a,d) {this.data = a;this.offset = d};var proto="+e+".prototype;proto.dtype='"+n+"';proto.index=function(){return this.offset};proto.dimension=0;proto.size=1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function "+e+"_copy() {return new "+e+"(this.data,this.offset)};proto.pick=function "+e+"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function "+e+"_get(){return "+(r?"this.data.get(this.offset)":"this.data[this.offset]")+"};proto.set=function "+e+"_set(v){return "+(r?"this.data.set(this.offset,v)":"this.data[this.offset]=v")+"};return function construct_"+e+"(a,b,c,d){return new "+e+"(a,d)}",m=new Function("TrivialArray",o);return m(cu[n][0])}var o=["'use strict'"],i=mI(t),a=i.map(function(y){return"i"+y}),s="this.offset+"+i.map(function(y){return"this.stride["+y+"]*i"+y}).join("+"),l=i.map(function(y){return"b"+y}).join(","),d=i.map(function(y){return"c"+y}).join(",");o.push("function "+e+"(a,"+l+","+d+",d){this.data=a","this.shape=["+l+"]","this.stride=["+d+"]","this.offset=d|0}","var proto="+e+".prototype","proto.dtype='"+n+"'","proto.dimension="+t),o.push("Object.defineProperty(proto,'size',{get:function "+e+"_size(){return "+i.map(function(y){return"this.shape["+y+"]"}).join("*"),"}})"),t===1?o.push("proto.order=[0]"):(o.push("Object.defineProperty(proto,'order',{get:"),t<4?(o.push("function "+e+"_order(){"),t===2?o.push("return (Math.abs(this.stride[0])>Math.abs(this.stride[1]))?[1,0]:[0,1]}})"):t===3&&o.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):o.push("ORDER})")),o.push("proto.set=function "+e+"_set("+a.join(",")+",v){"),r?o.push("return this.data.set("+s+",v)}"):o.push("return this.data["+s+"]=v}"),o.push("proto.get=function "+e+"_get("+a.join(",")+"){"),r?o.push("return this.data.get("+s+")}"):o.push("return this.data["+s+"]}"),o.push("proto.index=function "+e+"_index(",a.join(),"){return "+s+"}"),o.push("proto.hi=function "+e+"_hi("+a.join(",")+"){return new "+e+"(this.data,"+i.map(function(y){return["(typeof i",y,"!=='number'||i",y,"<0)?this.shape[",y,"]:i",y,"|0"].join("")}).join(",")+","+i.map(function(y){return"this.stride["+y+"]"}).join(",")+",this.offset)}");var c=i.map(function(y){return"a"+y+"=this.shape["+y+"]"}),u=i.map(function(y){return"c"+y+"=this.stride["+y+"]"});o.push("proto.lo=function "+e+"_lo("+a.join(",")+"){var b=this.offset,d=0,"+c.join(",")+","+u.join(","));for(var p=0;p<t;++p)o.push("if(typeof i"+p+"==='number'&&i"+p+">=0){d=i"+p+"|0;b+=c"+p+"*d;a"+p+"-=d}");o.push("return new "+e+"(this.data,"+i.map(function(y){return"a"+y}).join(",")+","+i.map(function(y){return"c"+y}).join(",")+",b)}"),o.push("proto.step=function "+e+"_step("+a.join(",")+"){var "+i.map(function(y){return"a"+y+"=this.shape["+y+"]"}).join(",")+","+i.map(function(y){return"b"+y+"=this.stride["+y+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var p=0;p<t;++p)o.push("if(typeof i"+p+"==='number'){d=i"+p+"|0;if(d<0){c+=b"+p+"*(a"+p+"-1);a"+p+"=ceil(-a"+p+"/d)}else{a"+p+"=ceil(a"+p+"/d)}b"+p+"*=d}");o.push("return new "+e+"(this.data,"+i.map(function(y){return"a"+y}).join(",")+","+i.map(function(y){return"b"+y}).join(",")+",c)}");for(var f=new Array(t),h=new Array(t),p=0;p<t;++p)f[p]="a[i"+p+"]",h[p]="b[i"+p+"]";o.push("proto.transpose=function "+e+"_transpose("+a+"){"+a.map(function(y,g){return y+"=("+y+"===undefined?"+g+":"+y+"|0)"}).join(";"),"var a=this.shape,b=this.stride;return new "+e+"(this.data,"+f.join(",")+","+h.join(",")+",this.offset)}"),o.push("proto.pick=function "+e+"_pick("+a+"){var a=[],b=[],c=this.offset");for(var p=0;p<t;++p)o.push("if(typeof i"+p+"==='number'&&i"+p+">=0){c=(c+this.stride["+p+"]*i"+p+")|0}else{a.push(this.shape["+p+"]);b.push(this.stride["+p+"])}");o.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),o.push("return function construct_"+e+"(data,shape,stride,offset){return new "+e+"(data,"+i.map(function(y){return"shape["+y+"]"}).join(",")+","+i.map(function(y){return"stride["+y+"]"}).join(",")+",offset)}");var m=new Function("CTOR_LIST","ORDER",o.join(`
2
+ `));return m(cu[n],vI)}function SI(n){if(yI(n))return"buffer";if(gI)switch(Object.prototype.toString.call(n)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped";case"[object BigInt64Array]":return"bigint64";case"[object BigUint64Array]":return"biguint64"}return Array.isArray(n)?"array":"generic"}var cu={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],bigint64:[],biguint64:[],buffer:[],generic:[]};function wI(n,t,e,r){if(n===void 0){var d=cu.array[0];return d([])}else typeof n=="number"&&(n=[n]);t===void 0&&(t=[n.length]);var o=t.length;if(e===void 0){e=new Array(o);for(var i=o-1,a=1;i>=0;--i)e[i]=a,a*=t[i]}if(r===void 0){r=0;for(var i=0;i<o;++i)e[i]<0&&(r-=(t[i]-1)*e[i])}for(var s=SI(n),l=cu[s];l.length<=o+1;)l.push(bI(s,l.length-1));var d=l[o+1];return d(n,t,e,r)}$x.exports=wI});var Xx=qt((Kre,Yx)=>{"use strict";function _I(n,t){for(var e=1,r=n.length,o=n[0],i=n[0],a=1;a<r;++a)if(i=o,o=n[a],t(o,i)){if(a===e){e++;continue}n[e++]=o}return n.length=e,n}function AI(n){for(var t=1,e=n.length,r=n[0],o=n[0],i=1;i<e;++i,o=r)if(o=r,r=n[i],r!==o){if(i===t){t++;continue}n[t++]=r}return n.length=t,n}function TI(n,t,e){return n.length===0?n:t?(e||n.sort(t),_I(n,t)):(e||n.sort(),AI(n))}Yx.exports=TI});var Zx=qt((Qre,Qx)=>{"use strict";var CI=Xx();function Kx(n,t,e){var r=n.length,o=t.arrayArgs.length,i=t.indexArgs.length>0,a=[],s=[],l=0,d=0,c,u;for(c=0;c<r;++c)s.push(["i",c,"=0"].join(""));for(u=0;u<o;++u)for(c=0;c<r;++c)d=l,l=n[c],c===0?s.push(["d",u,"s",c,"=t",u,"p",l].join("")):s.push(["d",u,"s",c,"=(t",u,"p",l,"-s",d,"*t",u,"p",d,")"].join(""));for(s.length>0&&a.push("var "+s.join(",")),c=r-1;c>=0;--c)l=n[c],a.push(["for(i",c,"=0;i",c,"<s",l,";++i",c,"){"].join(""));for(a.push(e),c=0;c<r;++c){for(d=l,l=n[c],u=0;u<o;++u)a.push(["p",u,"+=d",u,"s",c].join(""));i&&(c>0&&a.push(["index[",d,"]-=s",d].join("")),a.push(["++index[",l,"]"].join(""))),a.push("}")}return a.join(`
3
+ `)}function PI(n,t,e,r){for(var o=t.length,i=e.arrayArgs.length,a=e.blockSize,s=e.indexArgs.length>0,l=[],d=0;d<i;++d)l.push(["var offset",d,"=p",d].join(""));for(var d=n;d<o;++d)l.push(["for(var j"+d+"=SS[",t[d],"]|0;j",d,">0;){"].join("")),l.push(["if(j",d,"<",a,"){"].join("")),l.push(["s",t[d],"=j",d].join("")),l.push(["j",d,"=0"].join("")),l.push(["}else{s",t[d],"=",a].join("")),l.push(["j",d,"-=",a,"}"].join("")),s&&l.push(["index[",t[d],"]=j",d].join(""));for(var d=0;d<i;++d){for(var c=["offset"+d],u=n;u<o;++u)c.push(["j",u,"*t",d,"p",t[u]].join(""));l.push(["p",d,"=(",c.join("+"),")"].join(""))}l.push(Kx(t,e,r));for(var d=n;d<o;++d)l.push("}");return l.join(`
4
+ `)}function OI(n){for(var t=0,e=n[0].length;t<e;){for(var r=1;r<n.length;++r)if(n[r][t]!==n[0][t])return t;++t}return t}function Up(n,t,e){for(var r=n.body,o=[],i=[],a=0;a<n.args.length;++a){var s=n.args[a];if(!(s.count<=0)){var l=new RegExp(s.name,"g"),d="",c=t.arrayArgs.indexOf(a);switch(t.argTypes[a]){case"offset":var u=t.offsetArgIndex.indexOf(a),p=t.offsetArgs[u];c=p.array,d="+q"+u;case"array":d="p"+c+d;var f="l"+a,h="a"+c;if(t.arrayBlockIndices[c]===0)s.count===1?e[c]==="generic"?s.lvalue?(o.push(["var ",f,"=",h,".get(",d,")"].join("")),r=r.replace(l,f),i.push([h,".set(",d,",",f,")"].join(""))):r=r.replace(l,[h,".get(",d,")"].join("")):r=r.replace(l,[h,"[",d,"]"].join("")):e[c]==="generic"?(o.push(["var ",f,"=",h,".get(",d,")"].join("")),r=r.replace(l,f),s.lvalue&&i.push([h,".set(",d,",",f,")"].join(""))):(o.push(["var ",f,"=",h,"[",d,"]"].join("")),r=r.replace(l,f),s.lvalue&&i.push([h,"[",d,"]=",f].join("")));else{for(var m=[s.name],y=[d],g=0;g<Math.abs(t.arrayBlockIndices[c]);g++)m.push("\\s*\\[([^\\]]+)\\]"),y.push("$"+(g+1)+"*t"+c+"b"+g);if(l=new RegExp(m.join(""),"g"),d=y.join("+"),e[c]==="generic")throw new Error("cwise: Generic arrays not supported in combination with blocks!");r=r.replace(l,[h,"[",d,"]"].join(""))}break;case"scalar":r=r.replace(l,"Y"+t.scalarArgs.indexOf(a));break;case"index":r=r.replace(l,"index");break;case"shape":r=r.replace(l,"shape");break}}}return[o.join(`
5
5
  `),r,i.join(`
6
6
  `)].join(`
7
- `).trim()}function OI(n){for(var t=new Array(n.length),e=!0,r=0;r<n.length;++r){var o=n[r],i=o.match(/\d+/);i?i=i[0]:i="",o.charAt(0)===0?t[r]="u"+o.charAt(1)+i:t[r]=o.charAt(0)+i,r>0&&(e=e&&t[r]===t[r-1])}return e?t[0]:t.join("")}function MI(n,t){for(var e=t[1].length-Math.abs(n.arrayBlockIndices[0])|0,r=new Array(n.arrayArgs.length),o=new Array(n.arrayArgs.length),i=0;i<n.arrayArgs.length;++i)o[i]=t[2*i],r[i]=t[2*i+1];for(var a=[],s=[],l=[],d=[],c=[],i=0;i<n.arrayArgs.length;++i){n.arrayBlockIndices[i]<0?(l.push(0),d.push(e),a.push(e),s.push(e+n.arrayBlockIndices[i])):(l.push(n.arrayBlockIndices[i]),d.push(n.arrayBlockIndices[i]+e),a.push(0),s.push(n.arrayBlockIndices[i]));for(var u=[],p=0;p<r[i].length;p++)l[i]<=r[i][p]&&r[i][p]<d[i]&&u.push(r[i][p]-l[i]);c.push(u)}for(var f=["SS"],h=["'use strict'"],m=[],p=0;p<e;++p)m.push(["s",p,"=SS[",p,"]"].join(""));for(var i=0;i<n.arrayArgs.length;++i){f.push("a"+i),f.push("t"+i),f.push("p"+i);for(var p=0;p<e;++p)m.push(["t",i,"p",p,"=t",i,"[",l[i]+p,"]"].join(""));for(var p=0;p<Math.abs(n.arrayBlockIndices[i]);++p)m.push(["t",i,"b",p,"=t",i,"[",a[i]+p,"]"].join(""))}for(var i=0;i<n.scalarArgs.length;++i)f.push("Y"+i);if(n.shapeArgs.length>0&&m.push("shape=SS.slice(0)"),n.indexArgs.length>0){for(var y=new Array(e),i=0;i<e;++i)y[i]="0";m.push(["index=[",y.join(","),"]"].join(""))}for(var i=0;i<n.offsetArgs.length;++i){for(var g=n.offsetArgs[i],x=[],p=0;p<g.offset.length;++p)g.offset[p]!==0&&(g.offset[p]===1?x.push(["t",g.array,"p",p].join("")):x.push([g.offset[p],"*t",g.array,"p",p].join("")));x.length===0?m.push("q"+i+"=0"):m.push(["q",i,"=",x.join("+")].join(""))}var S=TI([].concat(n.pre.thisVars).concat(n.body.thisVars).concat(n.post.thisVars));m=m.concat(S),m.length>0&&h.push("var "+m.join(","));for(var i=0;i<n.arrayArgs.length;++i)h.push("p"+i+"|=0");n.pre.body.length>3&&h.push(Up(n.pre,n,o));var w=Up(n.body,n,o),b=PI(c);b<e?h.push(CI(b,c[0],n,w)):h.push(Kx(c[0],n,w)),n.post.body.length>3&&h.push(Up(n.post,n,o)),n.debug&&console.log("-----Generated cwise routine for ",t,`:
7
+ `).trim()}function MI(n){for(var t=new Array(n.length),e=!0,r=0;r<n.length;++r){var o=n[r],i=o.match(/\d+/);i?i=i[0]:i="",o.charAt(0)===0?t[r]="u"+o.charAt(1)+i:t[r]=o.charAt(0)+i,r>0&&(e=e&&t[r]===t[r-1])}return e?t[0]:t.join("")}function II(n,t){for(var e=t[1].length-Math.abs(n.arrayBlockIndices[0])|0,r=new Array(n.arrayArgs.length),o=new Array(n.arrayArgs.length),i=0;i<n.arrayArgs.length;++i)o[i]=t[2*i],r[i]=t[2*i+1];for(var a=[],s=[],l=[],d=[],c=[],i=0;i<n.arrayArgs.length;++i){n.arrayBlockIndices[i]<0?(l.push(0),d.push(e),a.push(e),s.push(e+n.arrayBlockIndices[i])):(l.push(n.arrayBlockIndices[i]),d.push(n.arrayBlockIndices[i]+e),a.push(0),s.push(n.arrayBlockIndices[i]));for(var u=[],p=0;p<r[i].length;p++)l[i]<=r[i][p]&&r[i][p]<d[i]&&u.push(r[i][p]-l[i]);c.push(u)}for(var f=["SS"],h=["'use strict'"],m=[],p=0;p<e;++p)m.push(["s",p,"=SS[",p,"]"].join(""));for(var i=0;i<n.arrayArgs.length;++i){f.push("a"+i),f.push("t"+i),f.push("p"+i);for(var p=0;p<e;++p)m.push(["t",i,"p",p,"=t",i,"[",l[i]+p,"]"].join(""));for(var p=0;p<Math.abs(n.arrayBlockIndices[i]);++p)m.push(["t",i,"b",p,"=t",i,"[",a[i]+p,"]"].join(""))}for(var i=0;i<n.scalarArgs.length;++i)f.push("Y"+i);if(n.shapeArgs.length>0&&m.push("shape=SS.slice(0)"),n.indexArgs.length>0){for(var y=new Array(e),i=0;i<e;++i)y[i]="0";m.push(["index=[",y.join(","),"]"].join(""))}for(var i=0;i<n.offsetArgs.length;++i){for(var g=n.offsetArgs[i],x=[],p=0;p<g.offset.length;++p)g.offset[p]!==0&&(g.offset[p]===1?x.push(["t",g.array,"p",p].join("")):x.push([g.offset[p],"*t",g.array,"p",p].join("")));x.length===0?m.push("q"+i+"=0"):m.push(["q",i,"=",x.join("+")].join(""))}var S=CI([].concat(n.pre.thisVars).concat(n.body.thisVars).concat(n.post.thisVars));m=m.concat(S),m.length>0&&h.push("var "+m.join(","));for(var i=0;i<n.arrayArgs.length;++i)h.push("p"+i+"|=0");n.pre.body.length>3&&h.push(Up(n.pre,n,o));var w=Up(n.body,n,o),b=OI(c);b<e?h.push(PI(b,c[0],n,w)):h.push(Kx(c[0],n,w)),n.post.body.length>3&&h.push(Up(n.post,n,o)),n.debug&&console.log("-----Generated cwise routine for ",t,`:
8
8
  `+h.join(`
9
9
  `)+`
10
- ----------`);var _=[n.funcName||"unnamed","_cwise_loop_",r[0].join("s"),"m",b,OI(o)].join(""),A=new Function(["function ",_,"(",f.join(","),"){",h.join(`
11
- `),"} return ",_].join(""));return A()}Qx.exports=MI});var ev=qt((Jre,Jx)=>{"use strict";var II=Zx();function NI(n){var t=["'use strict'","var CACHED={}"],e=[],r=n.funcName+"_cwise_thunk";t.push(["return function ",r,"(",n.shimArgs.join(","),"){"].join(""));for(var o=[],i=[],a=[["array",n.arrayArgs[0],".shape.slice(",Math.max(0,n.arrayBlockIndices[0]),n.arrayBlockIndices[0]<0?","+n.arrayBlockIndices[0]+")":")"].join("")],s=[],l=[],d=0;d<n.arrayArgs.length;++d){var c=n.arrayArgs[d];e.push(["t",c,"=array",c,".dtype,","r",c,"=array",c,".order"].join("")),o.push("t"+c),o.push("r"+c),i.push("t"+c),i.push("r"+c+".join()"),a.push("array"+c+".data"),a.push("array"+c+".stride"),a.push("array"+c+".offset|0"),d>0&&(s.push("array"+n.arrayArgs[0]+".shape.length===array"+c+".shape.length+"+(Math.abs(n.arrayBlockIndices[0])-Math.abs(n.arrayBlockIndices[d]))),l.push("array"+n.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,n.arrayBlockIndices[0])+"]===array"+c+".shape[shapeIndex+"+Math.max(0,n.arrayBlockIndices[d])+"]"))}n.arrayArgs.length>1&&(t.push("if (!("+s.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),t.push("for(var shapeIndex=array"+n.arrayArgs[0]+".shape.length-"+Math.abs(n.arrayBlockIndices[0])+"; shapeIndex-->0;) {"),t.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),t.push("}"));for(var d=0;d<n.scalarArgs.length;++d)a.push("scalar"+n.scalarArgs[d]);e.push(["type=[",i.join(","),"].join()"].join("")),e.push("proc=CACHED[type]"),t.push("var "+e.join(",")),t.push(["if(!proc){","CACHED[type]=proc=compile([",o.join(","),"])}","return proc(",a.join(","),")}"].join("")),n.debug&&console.log(`-----Generated thunk:
10
+ ----------`);var _=[n.funcName||"unnamed","_cwise_loop_",r[0].join("s"),"m",b,MI(o)].join(""),A=new Function(["function ",_,"(",f.join(","),"){",h.join(`
11
+ `),"} return ",_].join(""));return A()}Qx.exports=II});var ev=qt((Zre,Jx)=>{"use strict";var NI=Zx();function EI(n){var t=["'use strict'","var CACHED={}"],e=[],r=n.funcName+"_cwise_thunk";t.push(["return function ",r,"(",n.shimArgs.join(","),"){"].join(""));for(var o=[],i=[],a=[["array",n.arrayArgs[0],".shape.slice(",Math.max(0,n.arrayBlockIndices[0]),n.arrayBlockIndices[0]<0?","+n.arrayBlockIndices[0]+")":")"].join("")],s=[],l=[],d=0;d<n.arrayArgs.length;++d){var c=n.arrayArgs[d];e.push(["t",c,"=array",c,".dtype,","r",c,"=array",c,".order"].join("")),o.push("t"+c),o.push("r"+c),i.push("t"+c),i.push("r"+c+".join()"),a.push("array"+c+".data"),a.push("array"+c+".stride"),a.push("array"+c+".offset|0"),d>0&&(s.push("array"+n.arrayArgs[0]+".shape.length===array"+c+".shape.length+"+(Math.abs(n.arrayBlockIndices[0])-Math.abs(n.arrayBlockIndices[d]))),l.push("array"+n.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,n.arrayBlockIndices[0])+"]===array"+c+".shape[shapeIndex+"+Math.max(0,n.arrayBlockIndices[d])+"]"))}n.arrayArgs.length>1&&(t.push("if (!("+s.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),t.push("for(var shapeIndex=array"+n.arrayArgs[0]+".shape.length-"+Math.abs(n.arrayBlockIndices[0])+"; shapeIndex-->0;) {"),t.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),t.push("}"));for(var d=0;d<n.scalarArgs.length;++d)a.push("scalar"+n.scalarArgs[d]);e.push(["type=[",i.join(","),"].join()"].join("")),e.push("proc=CACHED[type]"),t.push("var "+e.join(",")),t.push(["if(!proc){","CACHED[type]=proc=compile([",o.join(","),"])}","return proc(",a.join(","),")}"].join("")),n.debug&&console.log(`-----Generated thunk:
12
12
  `+t.join(`
13
13
  `)+`
14
14
  ----------`);var u=new Function("compile",t.join(`
15
- `));return u(II.bind(void 0,n))}Jx.exports=NI});var rv=qt((eoe,tv)=>{"use strict";var EI=ev();function LI(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function DI(n){var t=new LI;t.pre=n.pre,t.body=n.body,t.post=n.post;var e=n.args.slice(0);t.argTypes=e;for(var r=0;r<e.length;++r){var o=e[r];if(o==="array"||typeof o=="object"&&o.blockIndices){if(t.argTypes[r]="array",t.arrayArgs.push(r),t.arrayBlockIndices.push(o.blockIndices?o.blockIndices:0),t.shimArgs.push("array"+r),r<t.pre.args.length&&t.pre.args[r].count>0)throw new Error("cwise: pre() block may not reference array args");if(r<t.post.args.length&&t.post.args[r].count>0)throw new Error("cwise: post() block may not reference array args")}else if(o==="scalar")t.scalarArgs.push(r),t.shimArgs.push("scalar"+r);else if(o==="index"){if(t.indexArgs.push(r),r<t.pre.args.length&&t.pre.args[r].count>0)throw new Error("cwise: pre() block may not reference array index");if(r<t.body.args.length&&t.body.args[r].lvalue)throw new Error("cwise: body() block may not write to array index");if(r<t.post.args.length&&t.post.args[r].count>0)throw new Error("cwise: post() block may not reference array index")}else if(o==="shape"){if(t.shapeArgs.push(r),r<t.pre.args.length&&t.pre.args[r].lvalue)throw new Error("cwise: pre() block may not write to array shape");if(r<t.body.args.length&&t.body.args[r].lvalue)throw new Error("cwise: body() block may not write to array shape");if(r<t.post.args.length&&t.post.args[r].lvalue)throw new Error("cwise: post() block may not write to array shape")}else if(typeof o=="object"&&o.offset)t.argTypes[r]="offset",t.offsetArgs.push({array:o.array,offset:o.offset}),t.offsetArgIndex.push(r);else throw new Error("cwise: Unknown argument type "+e[r])}if(t.arrayArgs.length<=0)throw new Error("cwise: No array arguments specified");if(t.pre.args.length>e.length)throw new Error("cwise: Too many arguments in pre() block");if(t.body.args.length>e.length)throw new Error("cwise: Too many arguments in body() block");if(t.post.args.length>e.length)throw new Error("cwise: Too many arguments in post() block");return t.debug=!!n.printCode||!!n.debug,t.funcName=n.funcName||"cwise",t.blockSize=n.blockSize||64,EI(t)}tv.exports=DI});var Ha=qt(Te=>{"use strict";var er=rv(),uu={body:"",args:[],thisVars:[],localVars:[]};function Hp(n){if(!n)return uu;for(var t=0;t<n.args.length;++t){var e=n.args[t];t===0?n.args[t]={name:e,lvalue:!0,rvalue:!!n.rvalue,count:n.count||1}:n.args[t]={name:e,lvalue:!1,rvalue:!0,count:1}}return n.thisVars||(n.thisVars=[]),n.localVars||(n.localVars=[]),n}function BI(n){return er({args:n.args,pre:Hp(n.pre),body:Hp(n.body),post:Hp(n.proc),funcName:n.funcName})}function Qe(n){for(var t=[],e=0;e<n.args.length;++e)t.push("a"+e);var r=new Function("P",["return function ",n.funcName,"_ndarrayops(",t.join(","),") {P(",t.join(","),");return a0}"].join(""));return r(BI(n))}var ov={add:"+",sub:"-",mul:"*",div:"/",mod:"%",band:"&",bor:"|",bxor:"^",lshift:"<<",rshift:">>",rrshift:">>>"};(function(){for(var n in ov){var t=ov[n];Te[n]=Qe({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:n}),Te[n+"eq"]=Qe({args:["array","array"],body:{args:["a","b"],body:"a"+t+"=b"},rvalue:!0,funcName:n+"eq"}),Te[n+"s"]=Qe({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:n+"s"}),Te[n+"seq"]=Qe({args:["array","scalar"],body:{args:["a","s"],body:"a"+t+"=s"},rvalue:!0,funcName:n+"seq"})}})();var nv={not:"!",bnot:"~",neg:"-",recip:"1.0/"};(function(){for(var n in nv){var t=nv[n];Te[n]=Qe({args:["array","array"],body:{args:["a","b"],body:"a="+t+"b"},funcName:n}),Te[n+"eq"]=Qe({args:["array"],body:{args:["a"],body:"a="+t+"a"},rvalue:!0,count:2,funcName:n+"eq"})}})();var iv={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};(function(){for(var n in iv){var t=iv[n];Te[n]=Qe({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:n}),Te[n+"s"]=Qe({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:n+"s"}),Te[n+"eq"]=Qe({args:["array","array"],body:{args:["a","b"],body:"a=a"+t+"b"},rvalue:!0,count:2,funcName:n+"eq"}),Te[n+"seq"]=Qe({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+t+"s"},rvalue:!0,count:2,funcName:n+"seq"})}})();var av=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];(function(){for(var n=0;n<av.length;++n){var t=av[n];Te[t]=Qe({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b)",thisVars:["this_f"]},funcName:t}),Te[t+"eq"]=Qe({args:["array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a"],body:"a=this_f(a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"eq"})}})();var sv=["max","min","atan2","pow"];(function(){for(var n=0;n<sv.length;++n){var t=sv[n];Te[t]=Qe({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:t}),Te[t+"s"]=Qe({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:t+"s"}),Te[t+"eq"]=Qe({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"eq"}),Te[t+"seq"]=Qe({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"seq"})}})();var lv=["atan2","pow"];(function(){for(var n=0;n<lv.length;++n){var t=lv[n];Te[t+"op"]=Qe({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:t+"op"}),Te[t+"ops"]=Qe({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:t+"ops"}),Te[t+"opeq"]=Qe({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"opeq"}),Te[t+"opseq"]=Qe({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"opseq"})}})();Te.any=er({args:["array"],pre:uu,body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"if(a){return true}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return false"},funcName:"any"});Te.all=er({args:["array"],pre:uu,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1}],body:"if(!x){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"all"});Te.sum=er({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s+=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"sum"});Te.prod=er({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=1"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s*=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"prod"});Te.norm2squared=er({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm2squared"});Te.norm2=er({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return Math.sqrt(this_s)"},funcName:"norm2"});Te.norminf=er({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:4}],body:"if(-a>this_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"});Te.norm1=er({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"});Te.sup=er({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}});Te.inf=er({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_<this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}});Te.argmin=er({args:["index","array","shape"],pre:{body:"{this_v=Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_<this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}});Te.argmax=er({args:["index","array","shape"],pre:{body:"{this_v=-Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_>this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}});Te.random=Qe({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"});Te.assign=Qe({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"});Te.assigns=Qe({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"});Te.equals=er({args:["array","array"],pre:uu,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})});var Dv=qt((zie,Lv)=>{Lv.exports=function(t,e){for(var r=t.split("."),o=e.split("."),i=0;i<3;i++){var a=Number(r[i]),s=Number(o[i]);if(a>s)return 1;if(s>a)return-1;if(!isNaN(a)&&isNaN(s))return 1;if(isNaN(a)&&!isNaN(s))return-1}return 0}});import{FileLoader as vN,Loader as bN}from"three";function ef(n){for(let t of Object.keys(n))n[t]===void 0&&delete n[t];return n}function Wt(n,t){return Object.setPrototypeOf(n,t),n}function $s(n){return Array.isArray(n)?n:[n]}function tf(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Jv=typeof global=="object"&&global&&global.Object===Object&&global,Ys=Jv;var eb=typeof self=="object"&&self&&self.Object===Object&&self,tb=Ys||eb||Function("return this")(),lt=tb;var rb=lt.Symbol,gt=rb;var rf=Object.prototype,ob=rf.hasOwnProperty,nb=rf.toString,Wa=gt?gt.toStringTag:void 0;function ib(n){var t=ob.call(n,Wa),e=n[Wa];try{n[Wa]=void 0;var r=!0}catch{}var o=nb.call(n);return r&&(t?n[Wa]=e:delete n[Wa]),o}var of=ib;var ab=Object.prototype,sb=ab.toString;function lb(n){return sb.call(n)}var nf=lb;var cb="[object Null]",ub="[object Undefined]",af=gt?gt.toStringTag:void 0;function db(n){return n==null?n===void 0?ub:cb:af&&af in Object(n)?of(n):nf(n)}var rr=db;function pb(n){return n!=null&&typeof n=="object"}var Ct=pb;var fb="[object Symbol]";function hb(n){return typeof n=="symbol"||Ct(n)&&rr(n)==fb}var Zn=hb;function mb(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Xs=mb;var yb=Array.isArray,Ze=yb;var gb=1/0,sf=gt?gt.prototype:void 0,lf=sf?sf.toString:void 0;function cf(n){if(typeof n=="string")return n;if(Ze(n))return Xs(n,cf)+"";if(Zn(n))return lf?lf.call(n):"";var t=n+"";return t=="0"&&1/n==-gb?"-0":t}var uf=cf;function xb(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var or=xb;function vb(n){return n}var df=vb;var bb="[object AsyncFunction]",Sb="[object Function]",wb="[object GeneratorFunction]",_b="[object Proxy]";function Ab(n){if(!or(n))return!1;var t=rr(n);return t==Sb||t==wb||t==bb||t==_b}var Ks=Ab;var Tb=lt["__core-js_shared__"],Qs=Tb;var pf=function(){var n=/[^.]+$/.exec(Qs&&Qs.keys&&Qs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Cb(n){return!!pf&&pf in n}var ff=Cb;var Pb=Function.prototype,Ob=Pb.toString;function Mb(n){if(n!=null){try{return Ob.call(n)}catch{}try{return n+""}catch{}}return""}var po=Mb;var Ib=/[\\^$.*+?()[\]{}|]/g,Nb=/^\[object .+?Constructor\]$/,Eb=Function.prototype,Lb=Object.prototype,Db=Eb.toString,Bb=Lb.hasOwnProperty,Rb=RegExp("^"+Db.call(Bb).replace(Ib,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Vb(n){if(!or(n)||ff(n))return!1;var t=Ks(n)?Rb:Nb;return t.test(po(n))}var hf=Vb;function Gb(n,t){return n?.[t]}var mf=Gb;function zb(n,t){var e=mf(n,t);return hf(e)?e:void 0}var $t=zb;var kb=$t(lt,"WeakMap"),Zs=kb;var yf=Object.create,Fb=function(){function n(){}return function(t){if(!or(t))return{};if(yf)return yf(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),gf=Fb;function jb(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var xf=jb;function Ub(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var vf=Ub;var Hb=800,qb=16,Wb=Date.now;function $b(n){var t=0,e=0;return function(){var r=Wb(),o=qb-(r-e);if(e=r,o>0){if(++t>=Hb)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var bf=$b;function Yb(n){return function(){return n}}var Sf=Yb;var Xb=function(){try{var n=$t(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Jn=Xb;var Kb=Jn?function(n,t){return Jn(n,"toString",{configurable:!0,enumerable:!1,value:Sf(t),writable:!0})}:df,wf=Kb;var Qb=bf(wf),_f=Qb;function Zb(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var Af=Zb;var Jb=9007199254740991,eS=/^(?:0|[1-9]\d*)$/;function tS(n,t){var e=typeof n;return t=t??Jb,!!t&&(e=="number"||e!="symbol"&&eS.test(n))&&n>-1&&n%1==0&&n<t}var ei=tS;function rS(n,t,e){t=="__proto__"&&Jn?Jn(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Js=rS;function oS(n,t){return n===t||n!==n&&t!==t}var ti=oS;var nS=Object.prototype,iS=nS.hasOwnProperty;function aS(n,t,e){var r=n[t];(!(iS.call(n,t)&&ti(r,e))||e===void 0&&!(t in n))&&Js(n,t,e)}var ri=aS;function sS(n,t,e,r){var o=!e;e||(e={});for(var i=-1,a=t.length;++i<a;){var s=t[i],l=r?r(e[s],n[s],s,e,n):void 0;l===void 0&&(l=n[s]),o?Js(e,s,l):ri(e,s,l)}return e}var Rr=sS;var Tf=Math.max;function lS(n,t,e){return t=Tf(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Tf(r.length-t,0),a=Array(i);++o<i;)a[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=e(a),xf(n,this,s)}}var Cf=lS;var cS=9007199254740991;function uS(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=cS}var oi=uS;function dS(n){return n!=null&&oi(n.length)&&!Ks(n)}var el=dS;var pS=Object.prototype;function fS(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||pS;return n===e}var ni=fS;function hS(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var Pf=hS;var mS="[object Arguments]";function yS(n){return Ct(n)&&rr(n)==mS}var yu=yS;var Of=Object.prototype,gS=Of.hasOwnProperty,xS=Of.propertyIsEnumerable,vS=yu(function(){return arguments}())?yu:function(n){return Ct(n)&&gS.call(n,"callee")&&!xS.call(n,"callee")},ii=vS;function bS(){return!1}var Mf=bS;var Ef=typeof exports=="object"&&exports&&!exports.nodeType&&exports,If=Ef&&typeof module=="object"&&module&&!module.nodeType&&module,SS=If&&If.exports===Ef,Nf=SS?lt.Buffer:void 0,wS=Nf?Nf.isBuffer:void 0,_S=wS||Mf,xn=_S;var AS="[object Arguments]",TS="[object Array]",CS="[object Boolean]",PS="[object Date]",OS="[object Error]",MS="[object Function]",IS="[object Map]",NS="[object Number]",ES="[object Object]",LS="[object RegExp]",DS="[object Set]",BS="[object String]",RS="[object WeakMap]",VS="[object ArrayBuffer]",GS="[object DataView]",zS="[object Float32Array]",kS="[object Float64Array]",FS="[object Int8Array]",jS="[object Int16Array]",US="[object Int32Array]",HS="[object Uint8Array]",qS="[object Uint8ClampedArray]",WS="[object Uint16Array]",$S="[object Uint32Array]",qe={};qe[zS]=qe[kS]=qe[FS]=qe[jS]=qe[US]=qe[HS]=qe[qS]=qe[WS]=qe[$S]=!0;qe[AS]=qe[TS]=qe[VS]=qe[CS]=qe[GS]=qe[PS]=qe[OS]=qe[MS]=qe[IS]=qe[NS]=qe[ES]=qe[LS]=qe[DS]=qe[BS]=qe[RS]=!1;function YS(n){return Ct(n)&&oi(n.length)&&!!qe[rr(n)]}var Lf=YS;function XS(n){return function(t){return n(t)}}var ai=XS;var Df=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$a=Df&&typeof module=="object"&&module&&!module.nodeType&&module,KS=$a&&$a.exports===Df,gu=KS&&Ys.process,QS=function(){try{var n=$a&&$a.require&&$a.require("util").types;return n||gu&&gu.binding&&gu.binding("util")}catch{}}(),fo=QS;var Bf=fo&&fo.isTypedArray,ZS=Bf?ai(Bf):Lf,tl=ZS;var JS=Object.prototype,e1=JS.hasOwnProperty;function t1(n,t){var e=Ze(n),r=!e&&ii(n),o=!e&&!r&&xn(n),i=!e&&!r&&!o&&tl(n),a=e||r||o||i,s=a?Pf(n.length,String):[],l=s.length;for(var d in n)(t||e1.call(n,d))&&!(a&&(d=="length"||o&&(d=="offset"||d=="parent")||i&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||ei(d,l)))&&s.push(d);return s}var rl=t1;function r1(n,t){return function(e){return n(t(e))}}var ol=r1;var o1=ol(Object.keys,Object),Rf=o1;var n1=Object.prototype,i1=n1.hasOwnProperty;function a1(n){if(!ni(n))return Rf(n);var t=[];for(var e in Object(n))i1.call(n,e)&&e!="constructor"&&t.push(e);return t}var Vf=a1;function s1(n){return el(n)?rl(n):Vf(n)}var si=s1;function l1(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Gf=l1;var c1=Object.prototype,u1=c1.hasOwnProperty;function d1(n){if(!or(n))return Gf(n);var t=ni(n),e=[];for(var r in n)r=="constructor"&&(t||!u1.call(n,r))||e.push(r);return e}var zf=d1;function p1(n){return el(n)?rl(n,!0):zf(n)}var li=p1;var f1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,h1=/^\w*$/;function m1(n,t){if(Ze(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||Zn(n)?!0:h1.test(n)||!f1.test(n)||t!=null&&n in Object(t)}var kf=m1;var y1=$t(Object,"create"),ho=y1;function g1(){this.__data__=ho?ho(null):{},this.size=0}var Ff=g1;function x1(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var jf=x1;var v1="__lodash_hash_undefined__",b1=Object.prototype,S1=b1.hasOwnProperty;function w1(n){var t=this.__data__;if(ho){var e=t[n];return e===v1?void 0:e}return S1.call(t,n)?t[n]:void 0}var Uf=w1;var _1=Object.prototype,A1=_1.hasOwnProperty;function T1(n){var t=this.__data__;return ho?t[n]!==void 0:A1.call(t,n)}var Hf=T1;var C1="__lodash_hash_undefined__";function P1(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=ho&&t===void 0?C1:t,this}var qf=P1;function ci(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}ci.prototype.clear=Ff;ci.prototype.delete=jf;ci.prototype.get=Uf;ci.prototype.has=Hf;ci.prototype.set=qf;var xu=ci;function O1(){this.__data__=[],this.size=0}var Wf=O1;function M1(n,t){for(var e=n.length;e--;)if(ti(n[e][0],t))return e;return-1}var Eo=M1;var I1=Array.prototype,N1=I1.splice;function E1(n){var t=this.__data__,e=Eo(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():N1.call(t,e,1),--this.size,!0}var $f=E1;function L1(n){var t=this.__data__,e=Eo(t,n);return e<0?void 0:t[e][1]}var Yf=L1;function D1(n){return Eo(this.__data__,n)>-1}var Xf=D1;function B1(n,t){var e=this.__data__,r=Eo(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var Kf=B1;function ui(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}ui.prototype.clear=Wf;ui.prototype.delete=$f;ui.prototype.get=Yf;ui.prototype.has=Xf;ui.prototype.set=Kf;var Lo=ui;var R1=$t(lt,"Map"),Do=R1;function V1(){this.size=0,this.__data__={hash:new xu,map:new(Do||Lo),string:new xu}}var Qf=V1;function G1(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var Zf=G1;function z1(n,t){var e=n.__data__;return Zf(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Bo=z1;function k1(n){var t=Bo(this,n).delete(n);return this.size-=t?1:0,t}var Jf=k1;function F1(n){return Bo(this,n).get(n)}var eh=F1;function j1(n){return Bo(this,n).has(n)}var th=j1;function U1(n,t){var e=Bo(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var rh=U1;function di(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}di.prototype.clear=Qf;di.prototype.delete=Jf;di.prototype.get=eh;di.prototype.has=th;di.prototype.set=rh;var vn=di;var H1="Expected a function";function vu(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(H1);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var a=n.apply(this,r);return e.cache=i.set(o,a)||i,a};return e.cache=new(vu.Cache||vn),e}vu.Cache=vn;var oh=vu;var q1=500;function W1(n){var t=oh(n,function(r){return e.size===q1&&e.clear(),r}),e=t.cache;return t}var nh=W1;var $1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Y1=/\\(\\)?/g,X1=nh(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace($1,function(e,r,o,i){t.push(o?i.replace(Y1,"$1"):r||e)}),t}),ih=X1;function K1(n){return n==null?"":uf(n)}var ah=K1;function Q1(n,t){return Ze(n)?n:kf(n,t)?[n]:ih(ah(n))}var cr=Q1;var Z1=1/0;function J1(n){if(typeof n=="string"||Zn(n))return n;var t=n+"";return t=="0"&&1/n==-Z1?"-0":t}var Ro=J1;function ew(n,t){t=cr(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[Ro(t[e++])];return e&&e==r?n:void 0}var nl=ew;function tw(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var pi=tw;var sh=gt?gt.isConcatSpreadable:void 0;function rw(n){return Ze(n)||ii(n)||!!(sh&&n&&n[sh])}var lh=rw;function ch(n,t,e,r,o){var i=-1,a=n.length;for(e||(e=lh),o||(o=[]);++i<a;){var s=n[i];t>0&&e(s)?t>1?ch(s,t-1,e,r,o):pi(o,s):r||(o[o.length]=s)}return o}var uh=ch;function ow(n){var t=n==null?0:n.length;return t?uh(n,1):[]}var dh=ow;function nw(n){return _f(Cf(n,void 0,dh),n+"")}var il=nw;var iw=ol(Object.getPrototypeOf,Object),fi=iw;var aw="[object Object]",sw=Function.prototype,lw=Object.prototype,ph=sw.toString,cw=lw.hasOwnProperty,uw=ph.call(Object);function dw(n){if(!Ct(n)||rr(n)!=aw)return!1;var t=fi(n);if(t===null)return!0;var e=cw.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&ph.call(e)==uw}var fh=dw;function pw(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var hh=pw;function fw(){this.__data__=new Lo,this.size=0}var mh=fw;function hw(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var yh=hw;function mw(n){return this.__data__.get(n)}var gh=mw;function yw(n){return this.__data__.has(n)}var xh=yw;var gw=200;function xw(n,t){var e=this.__data__;if(e instanceof Lo){var r=e.__data__;if(!Do||r.length<gw-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new vn(r)}return e.set(n,t),this.size=e.size,this}var vh=xw;function hi(n){var t=this.__data__=new Lo(n);this.size=t.size}hi.prototype.clear=mh;hi.prototype.delete=yh;hi.prototype.get=gh;hi.prototype.has=xh;hi.prototype.set=vh;var mi=hi;function vw(n,t){return n&&Rr(t,si(t),n)}var bh=vw;function bw(n,t){return n&&Rr(t,li(t),n)}var Sh=bw;var Th=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wh=Th&&typeof module=="object"&&module&&!module.nodeType&&module,Sw=wh&&wh.exports===Th,_h=Sw?lt.Buffer:void 0,Ah=_h?_h.allocUnsafe:void 0;function ww(n,t){if(t)return n.slice();var e=n.length,r=Ah?Ah(e):new n.constructor(e);return n.copy(r),r}var Ch=ww;function _w(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var a=n[e];t(a,e,n)&&(i[o++]=a)}return i}var Ph=_w;function Aw(){return[]}var al=Aw;var Tw=Object.prototype,Cw=Tw.propertyIsEnumerable,Oh=Object.getOwnPropertySymbols,Pw=Oh?function(n){return n==null?[]:(n=Object(n),Ph(Oh(n),function(t){return Cw.call(n,t)}))}:al,yi=Pw;function Ow(n,t){return Rr(n,yi(n),t)}var Mh=Ow;var Mw=Object.getOwnPropertySymbols,Iw=Mw?function(n){for(var t=[];n;)pi(t,yi(n)),n=fi(n);return t}:al,sl=Iw;function Nw(n,t){return Rr(n,sl(n),t)}var Ih=Nw;function Ew(n,t,e){var r=t(n);return Ze(n)?r:pi(r,e(n))}var ll=Ew;function Lw(n){return ll(n,si,yi)}var Ya=Lw;function Dw(n){return ll(n,li,sl)}var cl=Dw;var Bw=$t(lt,"DataView"),ul=Bw;var Rw=$t(lt,"Promise"),dl=Rw;var Vw=$t(lt,"Set"),pl=Vw;var Nh="[object Map]",Gw="[object Object]",Eh="[object Promise]",Lh="[object Set]",Dh="[object WeakMap]",Bh="[object DataView]",zw=po(ul),kw=po(Do),Fw=po(dl),jw=po(pl),Uw=po(Zs),bn=rr;(ul&&bn(new ul(new ArrayBuffer(1)))!=Bh||Do&&bn(new Do)!=Nh||dl&&bn(dl.resolve())!=Eh||pl&&bn(new pl)!=Lh||Zs&&bn(new Zs)!=Dh)&&(bn=function(n){var t=rr(n),e=t==Gw?n.constructor:void 0,r=e?po(e):"";if(r)switch(r){case zw:return Bh;case kw:return Nh;case Fw:return Eh;case jw:return Lh;case Uw:return Dh}return t});var mo=bn;var Hw=Object.prototype,qw=Hw.hasOwnProperty;function Ww(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&qw.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Rh=Ww;var $w=lt.Uint8Array,gi=$w;function Yw(n){var t=new n.constructor(n.byteLength);return new gi(t).set(new gi(n)),t}var xi=Yw;function Xw(n,t){var e=t?xi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Vh=Xw;var Kw=/\w*$/;function Qw(n){var t=new n.constructor(n.source,Kw.exec(n));return t.lastIndex=n.lastIndex,t}var Gh=Qw;var zh=gt?gt.prototype:void 0,kh=zh?zh.valueOf:void 0;function Zw(n){return kh?Object(kh.call(n)):{}}var Fh=Zw;function Jw(n,t){var e=t?xi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var jh=Jw;var e_="[object Boolean]",t_="[object Date]",r_="[object Map]",o_="[object Number]",n_="[object RegExp]",i_="[object Set]",a_="[object String]",s_="[object Symbol]",l_="[object ArrayBuffer]",c_="[object DataView]",u_="[object Float32Array]",d_="[object Float64Array]",p_="[object Int8Array]",f_="[object Int16Array]",h_="[object Int32Array]",m_="[object Uint8Array]",y_="[object Uint8ClampedArray]",g_="[object Uint16Array]",x_="[object Uint32Array]";function v_(n,t,e){var r=n.constructor;switch(t){case l_:return xi(n);case e_:case t_:return new r(+n);case c_:return Vh(n,e);case u_:case d_:case p_:case f_:case h_:case m_:case y_:case g_:case x_:return jh(n,e);case r_:return new r;case o_:case a_:return new r(n);case n_:return Gh(n);case i_:return new r;case s_:return Fh(n)}}var Uh=v_;function b_(n){return typeof n.constructor=="function"&&!ni(n)?gf(fi(n)):{}}var Hh=b_;var S_="[object Map]";function w_(n){return Ct(n)&&mo(n)==S_}var qh=w_;var Wh=fo&&fo.isMap,__=Wh?ai(Wh):qh,$h=__;var A_="[object Set]";function T_(n){return Ct(n)&&mo(n)==A_}var Yh=T_;var Xh=fo&&fo.isSet,C_=Xh?ai(Xh):Yh,Kh=C_;var P_=1,O_=2,M_=4,Qh="[object Arguments]",I_="[object Array]",N_="[object Boolean]",E_="[object Date]",L_="[object Error]",Zh="[object Function]",D_="[object GeneratorFunction]",B_="[object Map]",R_="[object Number]",Jh="[object Object]",V_="[object RegExp]",G_="[object Set]",z_="[object String]",k_="[object Symbol]",F_="[object WeakMap]",j_="[object ArrayBuffer]",U_="[object DataView]",H_="[object Float32Array]",q_="[object Float64Array]",W_="[object Int8Array]",$_="[object Int16Array]",Y_="[object Int32Array]",X_="[object Uint8Array]",K_="[object Uint8ClampedArray]",Q_="[object Uint16Array]",Z_="[object Uint32Array]",Ue={};Ue[Qh]=Ue[I_]=Ue[j_]=Ue[U_]=Ue[N_]=Ue[E_]=Ue[H_]=Ue[q_]=Ue[W_]=Ue[$_]=Ue[Y_]=Ue[B_]=Ue[R_]=Ue[Jh]=Ue[V_]=Ue[G_]=Ue[z_]=Ue[k_]=Ue[X_]=Ue[K_]=Ue[Q_]=Ue[Z_]=!0;Ue[L_]=Ue[Zh]=Ue[F_]=!1;function fl(n,t,e,r,o,i){var a,s=t&P_,l=t&O_,d=t&M_;if(e&&(a=o?e(n,r,o,i):e(n)),a!==void 0)return a;if(!or(n))return n;var c=Ze(n);if(c){if(a=Rh(n),!s)return vf(n,a)}else{var u=mo(n),p=u==Zh||u==D_;if(xn(n))return Ch(n,s);if(u==Jh||u==Qh||p&&!o){if(a=l||p?{}:Hh(n),!s)return l?Ih(n,Sh(a,n)):Mh(n,bh(a,n))}else{if(!Ue[u])return o?n:{};a=Uh(n,u,s)}}i||(i=new mi);var f=i.get(n);if(f)return f;i.set(n,a),Kh(n)?n.forEach(function(y){a.add(fl(y,t,e,y,n,i))}):$h(n)&&n.forEach(function(y,g){a.set(g,fl(y,t,e,g,n,i))});var h=d?l?cl:Ya:l?li:si,m=c?void 0:h(n);return Af(m||n,function(y,g){m&&(g=y,y=n[g]),ri(a,g,fl(y,t,e,g,n,i))}),a}var hl=fl;var J_=1,eA=4;function tA(n){return hl(n,J_|eA)}var yo=tA;var rA="__lodash_hash_undefined__";function oA(n){return this.__data__.set(n,rA),this}var em=oA;function nA(n){return this.__data__.has(n)}var tm=nA;function ml(n){var t=-1,e=n==null?0:n.length;for(this.__data__=new vn;++t<e;)this.add(n[t])}ml.prototype.add=ml.prototype.push=em;ml.prototype.has=tm;var rm=ml;function iA(n,t){for(var e=-1,r=n==null?0:n.length;++e<r;)if(t(n[e],e,n))return!0;return!1}var om=iA;function aA(n,t){return n.has(t)}var nm=aA;var sA=1,lA=2;function cA(n,t,e,r,o,i){var a=e&sA,s=n.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var d=i.get(n),c=i.get(t);if(d&&c)return d==t&&c==n;var u=-1,p=!0,f=e&lA?new rm:void 0;for(i.set(n,t),i.set(t,n);++u<s;){var h=n[u],m=t[u];if(r)var y=a?r(m,h,u,t,n,i):r(h,m,u,n,t,i);if(y!==void 0){if(y)continue;p=!1;break}if(f){if(!om(t,function(g,x){if(!nm(f,x)&&(h===g||o(h,g,e,r,i)))return f.push(x)})){p=!1;break}}else if(!(h===m||o(h,m,e,r,i))){p=!1;break}}return i.delete(n),i.delete(t),p}var yl=cA;function uA(n){var t=-1,e=Array(n.size);return n.forEach(function(r,o){e[++t]=[o,r]}),e}var im=uA;function dA(n){var t=-1,e=Array(n.size);return n.forEach(function(r){e[++t]=r}),e}var am=dA;var pA=1,fA=2,hA="[object Boolean]",mA="[object Date]",yA="[object Error]",gA="[object Map]",xA="[object Number]",vA="[object RegExp]",bA="[object Set]",SA="[object String]",wA="[object Symbol]",_A="[object ArrayBuffer]",AA="[object DataView]",sm=gt?gt.prototype:void 0,bu=sm?sm.valueOf:void 0;function TA(n,t,e,r,o,i,a){switch(e){case AA:if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)return!1;n=n.buffer,t=t.buffer;case _A:return!(n.byteLength!=t.byteLength||!i(new gi(n),new gi(t)));case hA:case mA:case xA:return ti(+n,+t);case yA:return n.name==t.name&&n.message==t.message;case vA:case SA:return n==t+"";case gA:var s=im;case bA:var l=r&pA;if(s||(s=am),n.size!=t.size&&!l)return!1;var d=a.get(n);if(d)return d==t;r|=fA,a.set(n,t);var c=yl(s(n),s(t),r,o,i,a);return a.delete(n),c;case wA:if(bu)return bu.call(n)==bu.call(t)}return!1}var lm=TA;var CA=1,PA=Object.prototype,OA=PA.hasOwnProperty;function MA(n,t,e,r,o,i){var a=e&CA,s=Ya(n),l=s.length,d=Ya(t),c=d.length;if(l!=c&&!a)return!1;for(var u=l;u--;){var p=s[u];if(!(a?p in t:OA.call(t,p)))return!1}var f=i.get(n),h=i.get(t);if(f&&h)return f==t&&h==n;var m=!0;i.set(n,t),i.set(t,n);for(var y=a;++u<l;){p=s[u];var g=n[p],x=t[p];if(r)var S=a?r(x,g,p,t,n,i):r(g,x,p,n,t,i);if(!(S===void 0?g===x||o(g,x,e,r,i):S)){m=!1;break}y||(y=p=="constructor")}if(m&&!y){var w=n.constructor,b=t.constructor;w!=b&&"constructor"in n&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof b=="function"&&b instanceof b)&&(m=!1)}return i.delete(n),i.delete(t),m}var cm=MA;var IA=1,um="[object Arguments]",dm="[object Array]",gl="[object Object]",NA=Object.prototype,pm=NA.hasOwnProperty;function EA(n,t,e,r,o,i){var a=Ze(n),s=Ze(t),l=a?dm:mo(n),d=s?dm:mo(t);l=l==um?gl:l,d=d==um?gl:d;var c=l==gl,u=d==gl,p=l==d;if(p&&xn(n)){if(!xn(t))return!1;a=!0,c=!1}if(p&&!c)return i||(i=new mi),a||tl(n)?yl(n,t,e,r,o,i):lm(n,t,l,e,r,o,i);if(!(e&IA)){var f=c&&pm.call(n,"__wrapped__"),h=u&&pm.call(t,"__wrapped__");if(f||h){var m=f?n.value():n,y=h?t.value():t;return i||(i=new mi),o(m,y,e,r,i)}}return p?(i||(i=new mi),cm(n,t,e,r,o,i)):!1}var fm=EA;function hm(n,t,e,r,o){return n===t?!0:n==null||t==null||!Ct(n)&&!Ct(t)?n!==n&&t!==t:fm(n,t,e,r,hm,o)}var mm=hm;function LA(n,t){return n!=null&&t in Object(n)}var ym=LA;function DA(n,t,e){t=cr(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var a=Ro(t[r]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&oi(o)&&ei(a,o)&&(Ze(n)||ii(n)))}var gm=DA;function BA(n,t){return n!=null&&gm(n,t,ym)}var xm=BA;function RA(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var vm=RA;function VA(n,t){return t.length<2?n:nl(n,hh(t,0,-1))}var bm=VA;function GA(n,t){return mm(n,t)}var Su=GA;function zA(n,t){return t=cr(t,n),n=bm(n,t),n==null||delete n[Ro(vm(t))]}var Sm=zA;function kA(n){return fh(n)?void 0:n}var wm=kA;var FA=1,jA=2,UA=4,HA=il(function(n,t){var e={};if(n==null)return e;var r=!1;t=Xs(t,function(i){return i=cr(i,n),r||(r=i.length>1),i}),Rr(n,cl(n),e),r&&(e=hl(e,FA|jA|UA,wm));for(var o=t.length;o--;)Sm(e,t[o]);return e}),vi=HA;function qA(n,t,e,r){if(!or(n))return n;t=cr(t,n);for(var o=-1,i=t.length,a=i-1,s=n;s!=null&&++o<i;){var l=Ro(t[o]),d=e;if(l==="__proto__"||l==="constructor"||l==="prototype")return n;if(o!=a){var c=s[l];d=r?r(c,l,s):void 0,d===void 0&&(d=or(c)?c:ei(t[o+1])?[]:{})}ri(s,l,d),s=s[l]}return n}var _m=qA;function WA(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var a=t[r],s=nl(n,a);e(s,a)&&_m(i,cr(a,n),s)}return i}var Am=WA;function $A(n,t){return Am(n,t,function(e,r){return xm(n,r)})}var Tm=$A;var YA=il(function(n,t){return n==null?{}:Tm(n,t)}),xr=YA;var he=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,he.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:a}=t,s={...e,[i]:a};return Object.setPrototypeOf(s,he.prototype),{data:s,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,he.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function Xa(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Xa(r)}return Object.freeze(n)}function Cm(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var bi=class extends Error{};function xl(n){let t={...n};return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}function Vr(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let a=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(a)}return r}function Si(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Pm(){return typeof process<"u"}function Om(n,t){for(let e of n)t(e.id,e.data)!==!0&&Om(e.children,t)}function Mm(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)Mm(e,t)}var $e=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,$e.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Xa(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}nonExistOrDescendantOf(e,r){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}rootAcestor(e){for(;e;){let r=this.parent(e);if(r)e=r;else return e}return e}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Mm(o,r)}}traverse(e){Om(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),a=this.childrenArray(i),s=a.findIndex(c=>c.id===e);if(s<0)throw new Error("not expected");let l=a[s];return a=[...a],a[s]={...l,data:r},this.modifyArrayBy(i,a)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let s=i,l=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let d=i.findIndex(c=>c.id===l);if(d<0)throw new Error;i=[...i],i[d]={...i[d],children:s}}Object.setPrototypeOf(i,$e.prototype);let a=i;return a.fillCaches(),a}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}return null}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:a,children:s}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let l=r,d=this.childrenArray(l),c={fi:o,id:i,data:a,children:s};return d=[...d,c],d.sort((p,f)=>p.fi-f.fi),e.localIndex=d.indexOf(c),{data:this.modifyArrayBy(l,d),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),a=i.findIndex(d=>d.id===r);e.localIndex=a,i=[...i];let s=i.splice(a,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...s,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new bi("cyclic tree");f=this.parent(f)}}let a=this.parent(i);if(a===void 0)return null;let s=a,l=this.childrenArray(a),d=l.findIndex(f=>f.id===i);l=[...l];let c=l.splice(d,1)[0],u=this.modifyArrayBy(a,l);a=r,l=u.childrenArray(a);let p=c.fi;return c={...c,fi:o},l=[...l,c],l.sort((f,h)=>f.fi-h.fi),e.localIndex=l.indexOf(c),u=u.modifyArrayBy(a,l),{data:u,actual:e,reverse:{type:9,parent:s,fi:p,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(a=>a.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(a=>a.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>Cm(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),a=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...a,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return Vr(0,o,o);{let a=i[0].fi;return Vr(a-o,a,o)}}else{let a=this.get(r);if(a===void 0||this.parent(r)!==e)throw new Error("illegal args");let s=i.find(l=>l.fi>a.fi);if(s===void 0){let l=i[i.length-1].fi;return Vr(l,l+o,o)}else return Vr(a.fi,s.fi,o)}}};var wi;(t=>{function n(e,r){if(r.type!==0)return null;if(Array.isArray(e)){let o=r.props,i={},a=[...e],s=!1;if(o)for(let l of Object.keys(o)){let d=parseInt(l);if(isNaN(d))throw new Error("wrong index");i[l]=a[d],a[d]=o[l],s=!0}return s?{data:a,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},a={...e},s=!1;if(o)for(let l of Object.keys(o)){i[l]=a[l];let d=o[l];d===void 0?delete a[l]:a[l]=d,s=!0}return s?{data:a,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(wi||(wi={}));var ye=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ye.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Xa(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,a=i.findIndex(d=>d.id===e);if(a<0)throw new Error("not expected");let s=i[a];return i=[...i],i[a]={...s,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ye.prototype);let r=e;return Pm()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}return null}addOp(e){let{fi:r,id:o,data:i}=e,a=this,s={fi:r,id:o,data:i};return a=[...a,s],a.sort((d,c)=>d.fi-c.fi),e.localIndex=a.indexOf(s),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(l=>l.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let a=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...a}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let a=i.findIndex(c=>c.id===o);if(a===-1)return null;let s=i[a].fi,l={...i[a],fi:r};return i[a]=l,i.sort((c,u)=>c.fi-u.fi),e.localIndex=i.indexOf(l),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:s,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return Vr(0,r,r);{let i=o[0].fi;return Vr(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let a=o.find(s=>s.fi>i.fi);if(a===void 0){let s=o[o.length-1].fi;return Vr(s,s+r,r)}else return Vr(i.fi,a.fi,r)}}};function _i(n){return n&&typeof n=="object"&&n instanceof ke}var ke=class{unusedFunOverridesTable(t){}runOp(t){let e=[],r=this,o=0,i={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r!==void 0&&!_i(r))return null;o+=1}r=r?xl(r):new ke;for(let[l,d]of Object.entries(t.props)){let c=r[l];i[l]=c,d===void 0?delete r[l]:r[l]=d}for(;o>0;){if(Object.keys(r).length===0){let l=e[o-1];l&&(r=xl(l),delete r[t.path[o-1]])}else{let l=e[o-1];if(l){let d=xl(l);d[t.path[o-1]]=r,r=d}else{let d=new ke;d[t.path[o-1]]=r,r=d}}o-=1}let a=Object.setPrototypeOf(r,ke.prototype),s={...t,props:i};return{data:a,actual:t,reverse:s}}},Gr;(r=>{function n(o,i){return Ka(o,i)??o}r.apply=n;function t(o,i){return _u(o,i)}r.merge=t;function e(o,i){let a=0,s=i.path,l=o;for(;a<s.length&&l!==void 0;){if(l=ot.zoomOnce(l,s[a]),l===void 0)return i;if(!_i(l))return;a+=1}if(l===void 0)return i;if(!!_i(l))if(i.type===0){let d={...i.props};for(let c of Object.keys(l))delete d[c];return{...i,props:d}}else if(i.type===1||i.type===4||i.type===7){let d=wu([i],l);return d?(console.log(d),d):i}else return i}r.filterOp=e})(Gr||(Gr={}));function wu(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,a=Ka(o.data,t[i]);if(e=e||a!==void 0,a===void 0&&(a=o.data),o.children){let s=wu(o.children,t);return s!==void 0?e=!0:s=o.children,{...o,id:i,data:a,children:s}}else return{...o,id:i,data:a}});if(e)return r}function XA(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,a=Ka(o.data,t[i]);return e=e||a!==void 0,a===void 0&&(a=o.data),{...o,id:i,data:a}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function Ka(n,t){if(!_i(t))return t;if(n instanceof $e){let e=wu(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ye)return XA(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let a=Ka(o,t[i]);return e=e||a!==void 0,a===void 0&&(a=o),a});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else{if(n instanceof ke)return _u(n,t);if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let a=Ka(i,t[o]);r=r||a!==void 0,a===void 0&&(a=i),e[o]=a}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}}}}function _u(n,t){if(n===void 0)return t;if(t===void 0)return n;if(!_i(t))return t;if(!_i(n))return Gr.apply(n,t);let e=new Set;for(let o of Object.keys(n))e.add(o);for(let o of Object.keys(t))e.add(o);let r=new ke;for(let o of e){let i=_u(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}function Im(n,t){let e={cur:[],result:[],len:0};return n=Qa(n,t,e)??n,[n,e.result]}function vl(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function bl(n){n&&(n.len-=1)}function KA(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function Nm(n,t,e){let r=!1,o=n.map(i=>{let a=i.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=Qa(i.data,t,vl(e,a));bl(e),r=r||l!==void 0,l===void 0&&(l=i.data);let d=Nm(i.children,t,e);return d!==void 0?r=!0:d=i.children,{...i,id:a,data:l,children:d}});if(r)return o}function QA(n,t,e){let r=!1,o=n.map(i=>{let a=i.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=Qa(i.data,t,vl(e,a));return bl(e),r=r||l!==void 0,l===void 0&&(l=i.data),{...i,id:a,data:l}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function Qa(n,t,e){if(n instanceof $e){let r=Nm(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ye)return QA(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,a)=>{let s=Qa(i,t,vl(e,a));return bl(e),r=r||s!==void 0,s===void 0&&(s=i),s});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"&&!Si(n)){let r={},o=!1;for(let[i,a]of Object.entries(n))if(i!=="name"){let s=t[i];if(typeof s=="string"){if(e!==null)throw new Error("not supported");o=!0,i=s}let l=Qa(a,t,vl(e,i));bl(e),o=o||l!==void 0,l===void 0&&(l=a),r[i]=l}else r[i]=a;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];return r!==void 0&&KA(e),r}else return}}var Sl;(t=>{function n(e,r){let o=ot.zoom(r,e.path);if(typeof o=="object"){let i={};for(let a of Object.keys(e.props))i[a]=o[a];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(Sl||(Sl={}));var nt;(s=>{function n(l,d){return{...l,path:l.path.slice(d)}}s.drop=n;function t(l,d){return e(l,d)?.data??l}s.applySimple=t;function e(l,d){let c=d.path;for(var u=[];;){let p;if(l instanceof ke&&d.type===0&&(p=l.runOp({...d,path:c.slice(u.length)}),p===null&&(p=void 0)),p===void 0&&u.length===c.length&&(l instanceof $e||l instanceof ye||l instanceof he?p=l.runOp(d):p=wi.runOp(l,d)),p!==void 0)if(p!==null){let m=p.data;for(let y=u.length-1;y>=0;y--){let g=c[y],x=u[y];if(x instanceof $e){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof ye){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof he){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof ke){let S={...x,[g]:m};m=Object.setPrototypeOf(S,ke.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof g=="string"&&(g=parseInt(g),isNaN(g)))throw new Error("Invalid path");let S=m;m=[...x],m[g]=S}else m={...x,[g]:m};else return null}return{data:m,actual:{...p.actual,path:c},reverse:{...p.reverse,path:c}}}else return null;let f=c[u.length],h;if(l instanceof $e){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else if(l instanceof ye){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else l!==null&&(h=l[f]);if(h!==void 0)u.push(l),l=h;else return null}}s.apply=e;function r(l,d){for(let c=0;c<l.length&&c<d.length;c++)if(l[c]!==d[c])return!0;return!1}s.pathDisjoint=r;function o(l,d){if(l.length!==d.length)return!1;for(let c=0;c<l.length;c++)if(l[c]!==d[c])return!1;return!0}s.pathEq=o;function i(l,d){return r(l.path,d.path)}s.commutative=i;function a(l,d){return l.type===0&&d.type===0&&o(l.path,d.path)?Object.keys(l.props).every(c=>d.props[c]!==void 0):!1}s.subsumed=a})(nt||(nt={}));var Za;(l=>{function n(){return[]}l.empty=n;function t(d,c){let u=[];for(let p of d){let[f,...h]=p.path;f===c&&u.push({...p,path:h})}return u}l.removePrefix=t;function e(d,c){return d.map(u=>({...u,path:[c,...u.path]}))}l.addPrefix=e;function r(d,c){return[...d,...c]}l.concat=r;function o(d,c){return[...d.filter(p=>!c.some(f=>nt.subsumed(p,f))),...c]}l.compress=o;function i(d,c){return d.every(u=>c.every(p=>nt.commutative(u,p)))}l.commutative=i;function a(d,c){for(let u of c){let p=s(d,u);p!==null&&(d=p.data)}return d}l.applyAll=a;function s(d,c){var u=d;let p=[],f=[];for(let h of c)try{if(h.type===3||h.type===5&&h.path[h.path.length-1]==="variables"){let m,y,g;if(h.type===3?(m=ot.zoom(u,[...h.path,h.id]),g=nt.apply(u,{...h,type:2})):(m=ot.zoom(u,[...h.path,h.id,"value"]),g=nt.apply(u,h)),g!==null){u=g.data;let[x,S]=Im(u,{[h.id]:m});u=x;for(let w=0;w<S.length;w++){let b=S[w],_=b.pop();if(typeof _=="number"){let A=[_];for(let M=w+1;M<S.length;M++){let O=S[M],T=O[O.length-1];if(typeof T=="number"&&ot.equal(b,O.slice(0,O.length-1)))A.push(T),S.splice(M,1);else break}let v=ot.zoom(u,b);y=v.map((M,O)=>A.includes(O)?h.id:M),m=v,_=b.pop()}else{if(_==="alphaOverride"||_==="alpha"){m/=100;let A=m,v=ot.zoom(u,b.slice(0,b.length-2)),M=v.layers.map(O=>O.id===b[b.length-1]?{...O,data:{...O.data,[_]:A}}:O);Object.setPrototypeOf(M,Object.getPrototypeOf(v.layers)),v.layers=M}y=h.id}p.push({type:0,path:b,props:{[_]:m}}),f.push({type:0,path:b,props:{[_]:y}})}f.push(g.reverse),p.push(g.actual)}}else{let m=nt.apply(u,h);m!==null&&(p.push(m.actual),u=m.data,f.push(m.reverse))}}catch(m){if(m instanceof bi)return null;throw m}return{data:u,actual:p,reverse:f.reverse()}}l.apply=s})(Za||(Za={}));var Em=Symbol(),ZA=Symbol(),_l=Symbol(),Sn=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof wl);){let a=o._path,s=o._current;if(a!==""&&i.splice(0,0,a),o=o._parent,o===null)return;o.update(a,s)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[_l];r&&r(),delete this._children[t]}}}},Tu=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,wi.runOp(this._current,t),t.path)}},Cu=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,he.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Lm={get(n,t){if(t===_l)return()=>{n._parent=null};if(t===Em)return n._current;if(t===ZA)return n;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],a=Al(n,t,i);return a!==i?(r===void 0&&(r={},n._children=r),r[t]=a,a):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},JA={...Lm,set(n,t,e){let r={type:0,props:{[t]:Ye(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},eT={...Lm,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},Ai=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[_l]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Al(this,t,i);return a!==i?(r===void 0&&(r={},this._children=r),r[t]=a,a):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.add(t,o[i],a.id,a.data,a.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.add(t,o[i],a.id,a.data,a.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.move(t,o[i],a)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.move(t,o[i],a)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},Ti=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[_l]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,i=this._current[r].fi;t(this.data(this._current[r].id),o,i)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Al(this,t,i);return a!==i?(r===void 0&&(r={},this._children=r),r[t]=a,a):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Au(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&ot.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var wl=class extends Sn{constructor(t){super(),this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){Au(this.ts,e,t),Au(this.actual,r,t),Au(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Al(n,t,e){return e instanceof $e?new Ai(n,t,e):e instanceof ye?new Ti(n,t,e):e instanceof he?new Proxy(new Cu(n,t,e),eT):e!==null&&typeof e=="object"?Si(e)?e:new Proxy(new Tu(n,t,e),JA):e}function Pu(n){let t=new wl(n);return[Al(t,"",n),t]}function Vo(n,t){let[e,r]=Pu(n);return t(e),r.result()}function Ye(n){return n instanceof Ai||n instanceof Ti?n._current:n!==null&&typeof n=="object"?n[Em]:n}var ot;(o=>{function n(i,a){if(a.length===i.length)for(var s=0;s<i.length;){if(i[s]!==a[s])return!1;s+=1}else return!1;return!0}o.equal=n;function t(i,a,s){let l=r(s,i);if(l!==void 0&&typeof l=="object"&&l!==null){let d={...a};return Object.keys(l).forEach(c=>{delete d[c]}),d}else return a}o.removeOverridden=t;function e(i,a){if((i instanceof $e||i instanceof Ai)&&typeof a=="string")return i.data(a);if((i instanceof ye||i instanceof Ti)&&typeof a=="string")return i.data(a);if(typeof a=="number"&&Array.isArray(i))return i[a];if(typeof a=="string"&&typeof i=="object"&&i!==null)return i[a]}o.zoomOnce=e;function r(i,a,s=0){for(;s<a.length&&i!==void 0;)i=e(i,a[s]),s+=1;return i}o.zoom=r})(ot||(ot={}));function Dm(n,t){let e=[];if(t.length===n.length)for(var r=0;r<n.length;){if(t[r]==="*")e.push(n[r]);else if(n[r]!==t[r])return null;r+=1}else return null;return e}function Dt(n,t){let e=[];if(t.length<=n.length)for(var r=0;r<t.length;){if(t[r]==="*")e.push(n[r]);else if(n[r]!==t[r])return null;r+=1}else return null;return e}var Tl=class{},Ja=class extends Tl{constructor(e){super();this.id=e}},es=class extends Tl{constructor(e){super();this.data=e}};var Mu;try{Mu=new TextDecoder}catch{}var re,zo,E=0;var jm=[],Iu=jm,Nu=0,Yt={},Le,Go,ur=0,zr=0,nr,go,Vt=[],Be,Bm={useRecords:!1,mapsAsObjects:!0},ts=class{},Lu=new ts;Lu.name="MessagePack 0xC1";var Ci=!1,kr=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(re)return $m(()=>(Pl(),this?this.unpack(t,e):kr.prototype.unpack.call(Bm,t,e)));zo=e>-1?e:t.length,E=0,Nu=0,zr=0,Go=null,Iu=jm,nr=null,re=t;try{Be=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw re=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof kr){if(Yt=this,this.structures)return Le=this.structures,Cl();(!Le||Le.length>0)&&(Le=[])}else Yt=Bm,(!Le||Le.length>0)&&(Le=[]);return Cl()}unpackMultiple(t,e){let r,o=0;try{Ci=!0;let i=t.length,a=this?this.unpack(t,i):Il.unpack(t,i);if(e){for(e(a);E<i;)if(o=E,e(Cl())===!1)return}else{for(r=[a];E<i;)o=E,r.push(Cl());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{Ci=!1,Pl()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Cl(){try{if(!Yt.trusted&&!Ci){let t=Le.sharedLength||0;t<Le.length&&(Le.length=t)}let n=Je();if(E==zo)Le.restoreStructures&&Rm(),Le=null,re=null,go&&(go=null);else if(E>zo){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!Ci)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Le.restoreStructures&&Rm(),Pl(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Rm(){for(let n in Le.restoreStructures)Le[n]=Le.restoreStructures[n];Le.restoreStructures=null}function Je(){let n=re[E++];if(n<160)if(n<128){if(n<64)return n;{let t=Le[n&63]||Yt.getStructures&&Um()[n&63];return t?(t.read||(t.read=Du(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,Yt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[qm()]=Je();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Je(),Je());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Je();return t}else if(n<192){let t=n-160;if(zr>=E)return Go.slice(E-ur,(E+=t)-ur);if(zr==0&&zo<140){let e=t<16?Bu(t):Hm(t);if(e!=null)return e}return Eu(t)}else{let t;switch(n){case 192:return null;case 193:return nr?(t=Je(),t>0?nr[1].slice(nr.position1,nr.position1+=t):nr[0].slice(nr.position0,nr.position0-=t)):Lu;case 194:return!1;case 195:return!0;case 196:return Ou(re[E++]);case 197:return t=Be.getUint16(E),E+=2,Ou(t);case 198:return t=Be.getUint32(E),E+=4,Ou(t);case 199:return wn(re[E++]);case 200:return t=Be.getUint16(E),E+=2,wn(t);case 201:return t=Be.getUint32(E),E+=4,wn(t);case 202:if(t=Be.getFloat32(E),Yt.useFloat32>2){let e=Ml[(re[E]&127)<<1|re[E+1]>>7];return E+=4,(e*t+(t>0?.5:-.5)>>0)/e}return E+=4,t;case 203:return t=Be.getFloat64(E),E+=8,t;case 204:return re[E++];case 205:return t=Be.getUint16(E),E+=2,t;case 206:return t=Be.getUint32(E),E+=4,t;case 207:return Yt.int64AsNumber?(t=Be.getUint32(E)*4294967296,t+=Be.getUint32(E+4)):t=Be.getBigUint64(E),E+=8,t;case 208:return Be.getInt8(E++);case 209:return t=Be.getInt16(E),E+=2,t;case 210:return t=Be.getInt32(E),E+=4,t;case 211:return Yt.int64AsNumber?(t=Be.getInt32(E)*4294967296,t+=Be.getUint32(E+4)):t=Be.getBigInt64(E),E+=8,t;case 212:if(t=re[E++],t==114)return Fm(re[E++]&63);{let e=Vt[t];if(e)return e.read?(E++,e.read(Je())):e.noBuffer?(E++,e()):e(re.subarray(E,++E));throw new Error("Unknown extension "+t)}case 213:return t=re[E],t==114?(E++,Fm(re[E++]&63,re[E++])):wn(2);case 214:return wn(4);case 215:return wn(8);case 216:return wn(16);case 217:return t=re[E++],zr>=E?Go.slice(E-ur,(E+=t)-ur):rT(t);case 218:return t=Be.getUint16(E),E+=2,zr>=E?Go.slice(E-ur,(E+=t)-ur):oT(t);case 219:return t=Be.getUint32(E),E+=4,zr>=E?Go.slice(E-ur,(E+=t)-ur):nT(t);case 220:return t=Be.getUint16(E),E+=2,Gm(t);case 221:return t=Be.getUint32(E),E+=4,Gm(t);case 222:return t=Be.getUint16(E),E+=2,zm(t);case 223:return t=Be.getUint32(E),E+=4,zm(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var tT=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Du(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>tT.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Je);return n.highByte===0&&(n.read=Vm(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let a=n[o];r[a]=Je()}return r}return e.count=0,n.highByte===0?Vm(t,e):e}var Vm=(n,t)=>function(){let e=re[E++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Le[r]||Um()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Du(o,n)),o.read()};function Um(){let n=$m(()=>(re=null,Yt.getStructures()));return Le=Yt._mergeStructures(n,Le)}var Eu=Ol,rT=Ol,oT=Ol,nT=Ol;function Ol(n){let t;if(n<16&&(t=Bu(n)))return t;if(n>64&&Mu)return Mu.decode(re.subarray(E,E+=n));let e=E+n,r=[];for(t="";E<e;){let o=re[E++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=re[E++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=re[E++]&63,a=re[E++]&63;r.push((o&31)<<12|i<<6|a)}else if((o&248)===240){let i=re[E++]&63,a=re[E++]&63,s=re[E++]&63,l=(o&7)<<18|i<<12|a<<6|s;l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|l&1023),r.push(l)}else r.push(o);r.length>=4096&&(t+=xt.apply(String,r),r.length=0)}return r.length>0&&(t+=xt.apply(String,r)),t}function Gm(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Je();return t}function zm(n){if(Yt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[qm()]=Je();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Je(),Je());return t}}var xt=String.fromCharCode;function Hm(n){let t=E,e=new Array(n);for(let r=0;r<n;r++){let o=re[E++];if((o&128)>0){E=t;return}e[r]=o}return xt.apply(String,e)}function Bu(n){if(n<4)if(n<2){if(n===0)return"";{let t=re[E++];if((t&128)>1){E-=1;return}return xt(t)}}else{let t=re[E++],e=re[E++];if((t&128)>0||(e&128)>0){E-=2;return}if(n<3)return xt(t,e);let r=re[E++];if((r&128)>0){E-=3;return}return xt(t,e,r)}else{let t=re[E++],e=re[E++],r=re[E++],o=re[E++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){E-=4;return}if(n<6){if(n===4)return xt(t,e,r,o);{let i=re[E++];if((i&128)>0){E-=5;return}return xt(t,e,r,o,i)}}else if(n<8){let i=re[E++],a=re[E++];if((i&128)>0||(a&128)>0){E-=6;return}if(n<7)return xt(t,e,r,o,i,a);let s=re[E++];if((s&128)>0){E-=7;return}return xt(t,e,r,o,i,a,s)}else{let i=re[E++],a=re[E++],s=re[E++],l=re[E++];if((i&128)>0||(a&128)>0||(s&128)>0||(l&128)>0){E-=8;return}if(n<10){if(n===8)return xt(t,e,r,o,i,a,s,l);{let d=re[E++];if((d&128)>0){E-=9;return}return xt(t,e,r,o,i,a,s,l,d)}}else if(n<12){let d=re[E++],c=re[E++];if((d&128)>0||(c&128)>0){E-=10;return}if(n<11)return xt(t,e,r,o,i,a,s,l,d,c);let u=re[E++];if((u&128)>0){E-=11;return}return xt(t,e,r,o,i,a,s,l,d,c,u)}else{let d=re[E++],c=re[E++],u=re[E++],p=re[E++];if((d&128)>0||(c&128)>0||(u&128)>0||(p&128)>0){E-=12;return}if(n<14){if(n===12)return xt(t,e,r,o,i,a,s,l,d,c,u,p);{let f=re[E++];if((f&128)>0){E-=13;return}return xt(t,e,r,o,i,a,s,l,d,c,u,p,f)}}else{let f=re[E++],h=re[E++];if((f&128)>0||(h&128)>0){E-=14;return}if(n<15)return xt(t,e,r,o,i,a,s,l,d,c,u,p,f,h);let m=re[E++];if((m&128)>0){E-=15;return}return xt(t,e,r,o,i,a,s,l,d,c,u,p,f,h,m)}}}}}function Ou(n){return Yt.copyBuffers?Uint8Array.prototype.slice.call(re,E,E+=n):re.subarray(E,E+=n)}function wn(n){let t=re[E++];if(Vt[t])return Vt[t](re.subarray(E,E+=n));throw new Error("Unknown extension type "+t)}var km=new Array(4096);function qm(){let n=re[E++];if(n>=160&&n<192){if(n=n-160,zr>=E)return Go.slice(E-ur,(E+=n)-ur);if(!(zr==0&&zo<180))return Eu(n)}else return E--,Je();let t=(n<<5^(n>1?Be.getUint16(E):n>0?re[E]:0))&4095,e=km[t],r=E,o=E+n-3,i,a=0;if(e&&e.bytes==n){for(;r<o;){if(i=Be.getUint32(r),i!=e[a++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=re[r++],i!=e[a++]){r=1879048192;break}if(r===o)return E=r,e.string;o-=3,r=E}for(e=[],km[t]=e,e.bytes=n;r<o;)i=Be.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=re[r++],e.push(i);let s=n<16?Bu(n):Hm(n);return s!=null?e.string=s:e.string=Eu(n)}var Fm=(n,t)=>{var e=Je();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Le[n];return o&&o.isShared&&((Le.restoreStructures||(Le.restoreStructures=[]))[n]=o),Le[n]=e,e.read=Du(e,r),e.read()},Wm=typeof self=="object"?self:global;Vt[0]=()=>{};Vt[0].noBuffer=!0;Vt[101]=()=>{let n=Je();return(Wm[n[0]]||Error)(n[1])};Vt[105]=n=>{let t=Be.getUint32(E-4);go||(go=new Map);let e=re[E],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};go.set(t,o);let i=Je();return o.used?Object.assign(r,i):(o.target=i,i)};Vt[112]=n=>{let t=Be.getUint32(E-4),e=go.get(t);return e.used=!0,e.target};Vt[115]=()=>new Set(Je());var Ru=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");Vt[116]=n=>{let t=n[0],e=Ru[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Wm[e](Uint8Array.prototype.slice.call(n,1).buffer)};Vt[120]=()=>{let n=Je();return new RegExp(n[0],n[1])};Vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=E;E+=t-4,nr=[Je(),Je()],nr.position0=0,nr.position1=0;let r=E;E=e;try{return Je()}finally{E=r}};Vt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function $m(n){let t=zo,e=E,r=Nu,o=ur,i=zr,a=Go,s=Iu,l=go,d=nr,c=new Uint8Array(re.slice(0,zo)),u=Le,p=Le.slice(0,Le.length),f=Yt,h=Ci,m=n();return zo=t,E=e,Nu=r,ur=o,zr=i,Go=a,Iu=s,go=l,nr=d,re=c,Ci=h,Le=u,Le.splice(0,Le.length,...p),Yt=f,Be=new DataView(re.buffer,re.byteOffset,re.byteLength),m}function Pl(){re=null,go=null,Le=null}function Ym(n){n.unpack?Vt[n.type]=n.unpack:Vt[n.type]=n}var Ml=new Array(147);for(let n=0;n<256;n++)Ml[n]=+("1e"+Math.floor(45.15-n*.30103));var Il=new kr({useRecords:!1}),iT=Il.unpack,aT=Il.unpackMultiple,sT=Il.unpack,Nl={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},lT=new Float32Array(1),zz=new Uint8Array(lT.buffer,0,4);var El;try{El=new TextEncoder}catch{}var Ll,Gu,Dl=typeof Buffer<"u",Vu=Dl?Buffer.allocUnsafeSlow:Uint8Array,Zm=Dl?Buffer:Uint8Array,Xm=Dl?4294967296:2144337920,j,it,D=0,Fr,jr=null,cT=/[\u0080-\uFFFF]/,rs=Symbol("record-id"),_n=class extends kr{constructor(t){super(t),this.offset=0;let e,r,o,i,a,s,l=0,d=Zm.prototype.utf8Write?function(v,M,O){return j.utf8Write(v,M,O)}:El&&El.encodeInto?function(v,M){return El.encodeInto(v,j.subarray(M)).written}:!1,c=this;t||(t={});let u=t&&t.sequential,p=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=p?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let h=t.maxOwnStructures;h==null&&(h=p?32:64),u&&!t.saveStructures&&(this.structures=[]);let m=f>32||h+f>64,y=f+64,g=f+h+64;if(g>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(v,M){if(j||(j=new Vu(8192),it=new DataView(j.buffer,0,8192),D=0),Fr=j.length-10,Fr-D<2048?(j=new Vu(j.length),it=new DataView(j.buffer,0,j.length),Fr=j.length-10,D=0):D=D+7&2147483640,r=D,s=c.structuredClone?new Map:null,c.bundleStrings?(jr=["",""],j[D++]=214,j[D++]=98,jr.position=D-r,D+=4):jr=null,o=c.structures,o){o.uninitialized&&(o=c._mergeStructures(c.getStructures()));let O=o.sharedLength||0;if(O>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let T=0;T<O;T++){let C=o[T];if(!C)continue;let P,I=o.transitions;for(let L=0,G=C.length;L<G;L++){let N=C[L];P=I[N],P||(P=I[N]=Object.create(null)),I=P}I[rs]=T+64}l=O}u||(o.nextId=O+64)}i&&(i=!1),a=o||[];try{if(b(v),jr){it.setUint32(jr.position+r,D-jr.position-r);let O=jr;jr=null,b(O[0]),b(O[1])}if(c.offset=D,s&&s.idsToInsert){D+=s.idsToInsert.length*6,D>Fr&&A(D),c.offset=D;let O=dT(j.subarray(r,D),s.idsToInsert);return s=null,O}return M&ey?(j.start=r,j.end=D,j):j.subarray(r,D)}finally{if(o){if(w<10&&w++,S>1e4)o.transitions=null,w=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!u){for(let O=0,T=x.length;O<T;O++)x[O][rs]=0;x=[]}if(i&&c.saveStructures){let O=o.sharedLength||f;o.length>O&&(o=o.slice(0,O));let T=j.subarray(r,D);return c.saveStructures(o,l)===!1?(c._mergeStructures(c.getStructures()),c.pack(v)):(l=O,T)}}M&xT&&(D=r)}};let b=v=>{D>Fr&&(j=A(D));var M=typeof v,O;if(M==="string"){let T=v.length;if(jr&&T>=8&&T<4096){let I=cT.test(v);jr[I?0:1]+=v,j[D++]=193,b(I?-T:T);return}let C;T<32?C=1:T<256?C=2:T<65536?C=3:C=5;let P=T*3;if(D+P>Fr&&(j=A(D+P)),T<64||!d){let I,L,G,N=D+C;for(I=0;I<T;I++)L=v.charCodeAt(I),L<128?j[N++]=L:L<2048?(j[N++]=L>>6|192,j[N++]=L&63|128):(L&64512)===55296&&((G=v.charCodeAt(I+1))&64512)===56320?(L=65536+((L&1023)<<10)+(G&1023),I++,j[N++]=L>>18|240,j[N++]=L>>12&63|128,j[N++]=L>>6&63|128,j[N++]=L&63|128):(j[N++]=L>>12|224,j[N++]=L>>6&63|128,j[N++]=L&63|128);O=N-D-C}else O=d(v,D+C,P);O<32?j[D++]=160|O:O<256?(C<2&&j.copyWithin(D+2,D+1,D+1+O),j[D++]=217,j[D++]=O):O<65536?(C<3&&j.copyWithin(D+3,D+2,D+2+O),j[D++]=218,j[D++]=O>>8,j[D++]=O&255):(C<5&&j.copyWithin(D+5,D+3,D+3+O),j[D++]=219,it.setUint32(D,O),D+=4),D+=O}else if(M==="number")if(v>>>0===v)v<64?j[D++]=v:v<256?(j[D++]=204,j[D++]=v):v<65536?(j[D++]=205,j[D++]=v>>8,j[D++]=v&255):(j[D++]=206,it.setUint32(D,v),D+=4);else if(v>>0===v)v>=-32?j[D++]=256+v:v>=-128?(j[D++]=208,j[D++]=v+256):v>=-32768?(j[D++]=209,it.setInt16(D,v),D+=2):(j[D++]=210,it.setInt32(D,v),D+=4);else{let T;if((T=this.useFloat32)>0&&v<4294967296&&v>=-2147483648){j[D++]=202,it.setFloat32(D,v);let C;if(T<4||(C=v*Ml[(j[D]&127)<<1|j[D+1]>>7])>>0===C){D+=4;return}else D--}j[D++]=203,it.setFloat64(D,v),D+=8}else if(M==="object")if(!v)j[D++]=192;else{if(s){let C=s.get(v);if(C){if(!C.id){let P=s.idsToInsert||(s.idsToInsert=[]);C.id=P.push(C)}j[D++]=214,j[D++]=112,it.setUint32(D,C.id),D+=4;return}else s.set(v,{offset:D-r})}let T=v.constructor;if(T===Object)_(v,!0);else if(T===Array){O=v.length,O<16?j[D++]=144|O:O<65536?(j[D++]=220,j[D++]=O>>8,j[D++]=O&255):(j[D++]=221,it.setUint32(D,O),D+=4);for(let C=0;C<O;C++)b(v[C])}else if(T===Map){O=v.size,O<16?j[D++]=128|O:O<65536?(j[D++]=222,j[D++]=O>>8,j[D++]=O&255):(j[D++]=223,it.setUint32(D,O),D+=4);for(let[C,P]of v)b(C),b(P)}else{for(let C=0,P=Ll.length;C<P;C++){let I=Gu[C];if(v instanceof I){let L=Ll[C];if(L.write){L.type&&(j[D++]=212,j[D++]=L.type,j[D++]=0),b(L.write.call(this,v));return}let G=j,N=it,F=D;j=null;let B;try{B=L.pack.call(this,v,R=>(j=G,G=null,D+=R,D>Fr&&A(D),{target:j,targetView:it,position:D-R}),b)}finally{G&&(j=G,it=N,D=F,Fr=j.length-10)}B&&(B.length+D>Fr&&A(B.length+D),D=uT(B,j,D,L.type));return}}_(v,!v.hasOwnProperty)}}else if(M==="boolean")j[D++]=v?195:194;else if(M==="bigint"){if(v<BigInt(1)<<BigInt(63)&&v>=-(BigInt(1)<<BigInt(63)))j[D++]=211,it.setBigInt64(D,v);else if(v<BigInt(1)<<BigInt(64)&&v>0)j[D++]=207,it.setBigUint64(D,v);else if(this.largeBigIntToFloat)j[D++]=203,it.setFloat64(D,Number(v));else throw new RangeError(v+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");D+=8}else if(M==="undefined")this.encodeUndefinedAsNil?j[D++]=192:(j[D++]=212,j[D++]=0,j[D++]=0);else if(M==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+M)},_=this.useRecords===!1?this.variableMapSize?v=>{let M=Object.keys(v),O=M.length;O<16?j[D++]=128|O:O<65536?(j[D++]=222,j[D++]=O>>8,j[D++]=O&255):(j[D++]=223,it.setUint32(D,O),D+=4);let T;for(let C=0;C<O;C++)b(T=M[C]),b(v[T])}:(v,M)=>{j[D++]=222;let O=D-r;D+=2;let T=0;for(let C in v)(M||v.hasOwnProperty(C))&&(b(C),b(v[C]),T++);j[O+++r]=T>>8,j[O+r]=T&255}:v=>{let M=Object.keys(v),O,T=a.transitions||(a.transitions=Object.create(null)),C=0;for(let I=0,L=M.length;I<L;I++){let G=M[I];O=T[G],O||(O=T[G]=Object.create(null),C++),T=O}let P=T[rs];if(P)P>=96&&m?(j[D++]=((P-=96)&31)+96,j[D++]=P>>5):j[D++]=P;else{P=a.nextId,P||(P=64),P<y&&this.shouldShareStructure&&!this.shouldShareStructure(M)?(P=a.nextOwnId,P<g||(P=y),a.nextOwnId=P+1):(P>=g&&(P=y),a.nextId=P+1);let I=M.highByte=P>=96&&m?P-96>>5:-1;T[rs]=P,a[P-64]=M,P<y?(M.isShared=!0,a.sharedLength=P-63,i=!0,I>=0?(j[D++]=(P&31)+96,j[D++]=I):j[D++]=P):(I>=0?(j[D++]=213,j[D++]=114,j[D++]=(P&31)+96,j[D++]=I):(j[D++]=212,j[D++]=114,j[D++]=P),C&&(S+=w*C),x.length>=h&&(x.shift()[rs]=0),x.push(T),b(M))}for(let I=0,L=M.length;I<L;I++)b(v[M[I]])},A=v=>{let M;if(v>16777216){if(v-r>Xm)throw new Error("Packed buffer would be larger than maximum buffer size");M=Math.min(Xm,Math.round(Math.max((v-r)*(v>67108864?1.25:2),4194304)/4096)*4096)}else M=(Math.max(v-r<<2,j.length-1)>>12)+1<<12;let O=new Vu(M);return it=new DataView(O.buffer,0,M),j.copy?j.copy(O,0,r,v):O.set(j.slice(r,v)),D-=r,r=0,Fr=O.length-10,j=O}}useBuffer(t){j=t,it=new DataView(j.buffer,j.byteOffset,j.byteLength),D=0}};Gu=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ts];Ll=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:a}=t(6);o[a++]=214,o[a++]=255,i.setUint32(a,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:a}=t(10);o[a++]=215,o[a++]=255,i.setUint32(a,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(a+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:a}=t(3);o[a++]=212,o[a++]=255,o[a++]=255}else{let{target:o,targetView:i,position:a}=t(15);o[a++]=199,o[a++]=12,o[a++]=255,i.setUint32(a,n.getMilliseconds()*1e6),i.setBigInt64(a+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?Km(n,16,t):Qm(Dl?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==Zm&&this.structuredClone?Km(n,Ru.indexOf(e.name),t):Qm(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function Km(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:a}=e(4+o);i[a++]=199,i[a++]=o+1}else if(o+1<65536){var{target:i,position:a}=e(5+o);i[a++]=200,i[a++]=o+1>>8,i[a++]=o+1&255}else{var{target:i,position:a,targetView:s}=e(7+o);i[a++]=201,s.setUint32(a,o+1),a+=4}i[a++]=116,i[a++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),a)}function Qm(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function uT(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function dT(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,a)=>i.offset>a.offset?1:-1);e=t.pop();){let i=e.offset,a=e.id;n.copyWithin(i+r,i,o),r-=6;let s=i+r;n[s++]=214,n[s++]=105,n[s++]=a>>24,n[s++]=a>>16&255,n[s++]=a>>8&255,n[s++]=a&255,o=i}return n}function ko(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");Gu.unshift(n.Class),Ll.unshift(n)}Ym(n)}var Jm=new _n({useRecords:!1}),pT=Jm.pack,fT=Jm.pack;var{NEVER:hT,ALWAYS:mT,DECIMAL_ROUND:yT,DECIMAL_FIT:gT}=Nl,ey=512,xT=1024;var ty=new _n({structuredClone:!0});ko({Class:he.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,he.prototype),n}});ko({Class:ye.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ye.prototype),n}});ko({Class:$e.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,$e.prototype),n}});ko({Class:Ja.prototype.constructor,type:4,write(n){return n.id},read(n){return new Ja(n)}});ko({Class:es.prototype.constructor,type:5,write(n){return n.data},read(n){return new es(n)}});ko({Class:ke.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,ke.prototype),n}});function vT(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function zu(n){if(Si(n))return n;if(Array.isArray(n))return n.map(zu);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=zu(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Bl;(r=>{function n(o){return ty.pack(o)}r.serialize=n;function t(o){return ty.unpack(o)}r.deserialize=t;function e(o){return vT(n(zu(o))).toString()}r.checksum=e})(Bl||(Bl={}));var Uo="personal camera",Ho="a218fcc3-276b-49b9-b485-49037fd14f5f",sy=2960946,dt=5526619;var ry;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(ry||(ry={}));var Fo;(s=>{function n(l,d){return l[0]===d[0]&&l[1]===d[1]&&l[2]===d[2]}s.isEqual=n;function t(l,d){return[l[0]+d[0],l[1]+d[1],l[2]+d[2]]}s.add=t;function e(l,d){return[l[0]-d[0],l[1]-d[1],l[2]-d[2]]}s.sub=e;function r(l,d){return[l[0]/d[0],l[1]/d[1],l[2]/d[2]]}s.div=r;function o(l,d){return[l[0]*d[0],l[1]*d[1],l[2]*d[2]]}s.mul=o;function i(l,d){return Math.hypot(l[0]-d[0],l[1]-d[1],l[2]-d[2])}s.dist=i;function a(l,d,c){return[l[0]+(d[0]-l[0])*c,l[1]+(d[1]-l[1])*c,l[2]+(d[2]-l[2])*c]}s.lerp=a})(Fo||(Fo={}));var oy;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(oy||(oy={}));var jo;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,a){for(let s=0;s<16;s++)if(i[s]!==a[s])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,a){let s=a.slice(0);for(var l=0,d=a.length;l<d;l+=3){let c=i[3]*a[l]+i[7]*a[l+1]+i[11]*a[l+2]+i[15];s[l]=(i[0]*a[l]+i[4]*a[l+1]+i[8]*a[l+2]+i[12])/c,s[l+1]=(i[1]*a[l]+i[5]*a[l+1]+i[9]*a[l+2]+i[13])/c,s[l+2]=(i[2]*a[l]+i[6]*a[l+1]+i[10]*a[l+2]+i[14])/c}return s}o.applyMatrix4=r})(jo||(jo={}));var vt;(c=>{function n(u){return typeof u=="object"&&typeof u.r=="number"&&typeof u.g=="number"&&typeof u.b=="number"}c.isRGB=n,c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function o(u){return{r:Math.round(u.r*255),g:Math.round(u.g*255),b:Math.round(u.b*255),a:1}}c.toRgb255a1=o;function i(u){return{r:u.r,g:u.g,b:u.b}}c.clone=i;function a(u){return u=Math.floor(u),{r:(u>>16&255)/255,g:(u>>8&255)/255,b:(u&255)/255}}c.fromHex=a;function s(u){return Math.round(u.r*255)*65536+Math.round(u.g*255)*256+Math.round(u.b*255)}c.toHex=s;function l(u,p){return u.r===p.r&&u.g===p.g&&u.b===p.b}c.equals=l;function d(u,p,f){return{r:u.r+(p.r-u.r)*f,g:u.g+(p.g-u.g)*f,b:u.b+(p.b-u.b)*f}}c.lerp=d})(vt||(vt={}));var Gt;(s=>{s.white={...vt.white,a:1},s.transparent={...vt.white,a:0};function e(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}s.from0to1=e;function r(l,d){return{...vt.fromHex(l),a:d}}s.fromHexAndA=r;function o(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}s.toRgb255a1=o;function i(l,d){return vt.equals(l,d)&&l.a===d.a}s.equals=i;function a(l,d,c){return{r:l.r+(d.r-l.r)*c,g:l.g+(d.g-l.g)*c,b:l.b+(d.b-l.b)*c,a:l.a+(d.a-l.a)*c}}s.lerp=a})(Gt||(Gt={}));var Rl;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Rl||(Rl={}));var ny;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(ny||(ny={}));var iy;(t=>t.defaultData={control1:[.5,0],control2:[.5,1]})(iy||(iy={}));var ay;(i=>(i.linear=[0,0,1,1],i.ease=[.25,.1,.25,1],i.easeIn=[.42,0,1,1],i.easeOut=[0,0,.58,1],i.easeInOut=[.42,0,.58,1]))(ay||(ay={}));function ku(n){return typeof n=="string"&&n.length===36?/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(n):!1}var vr;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(vr||(vr={}));var qo;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:70,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(qo||(qo={}));var Ur;(e=>{function n(r,o=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(r[0],r[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[r[0]+r[0]*o,0,0]},grid:{count:[2,2,2],size:r.map(i=>i*(1+o)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}e.defaultData=n;function t(r,o){let i={...r};if(bT.forEach(a=>{Object.assign(i,{[a]:o[a]??r[a]})}),i.radial={...r.radial},o.radial){let a=r.radial,s=o.radial;ST.forEach(l=>{Object.assign(i.radial,{[l]:s[l]??a[l]})})}if(i.linear={...r.linear},o.linear){let a=r.linear,s=o.linear;wT.forEach(l=>{Object.assign(i.linear,{[l]:s[l]??a[l]})})}if(i.grid={...r.grid},o.grid){let a=r.grid,s=o.grid;_T.forEach(l=>{Object.assign(i.grid,{[l]:s[l]??a[l]})})}if(i.toObject={...r.toObject},o.toObject){let a=r.toObject,s=o.toObject;AT.forEach(l=>{Object.assign(i.toObject,{[l]:s[l]??a[l]})})}if(i.randomnessObject={...r.randomnessObject},o.randomnessObject){let a=r.randomnessObject,s=o.randomnessObject;TT.forEach(l=>{Object.assign(i.randomnessObject,{[l]:s[l]??a[l]})})}return i}e.merge=t})(Ur||(Ur={}));var Vl;(r=>{r.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let t=["radial","linear","grid","toObject","randomnessObject"];function e(o,i){let a=[];o.count!==void 0&&a.push({type:0,path:i,props:{count:o.count}});for(let s of t){let l=o[s];l&&Object.keys(l).length>0&&a.push({type:0,path:[...i,s],props:l})}return a}r.toOps=e})(Vl||(Vl={}));var bT=["count"],ST=["radius","start","end","position","scale","rotation"],wT=["position","scale","rotation"],_T=["count","size"],AT=["count","position","scale","rotation"],TT=["strength","scale","rotation","position","movement","seed","freqScale"];var Gl;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Gl||(Gl={}));var zl;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Gt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,penumbraSize:.5,depth:1e5};if(r==="SpotLight")return{type:r,color:Gt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Gt.white,intensity:1,shadows:!0,size:2e3,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(zl||(zl={}));var Wo;(t=>t.defaultData={enabled:"visibility",fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Wo||(Wo={}));var Fu;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(Fu||(Fu={}));var ju;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(ju||(ju={}));var kl;(t=>t.defaultData={...ju.defaultData,...Fu.defaultData})(kl||(kl={}));var ly;(t=>{function n(e,r){let o=[];if("material"in e){let i=typeof e.material=="string"?r.materials[e.material]??r.lib.materials[e.material]?.asset:e.material;i&&o.push(i)}else if("materials"in e)for(let i of e.materials){let a=typeof i=="string"?r.materials[i]??r.lib.materials[i]?.asset:i;a&&o.push(a)}return o}t.getMaterialData=n})(ly||(ly={}));var Pi;(e=>(e.defaultVideo={data:"",thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},e.maxSize=3e7))(Pi||(Pi={}));var cy;(t=>{function n(e){return e==="texture"||e==="video"||e==="color"||e==="depth"||e==="normal"||e==="gradient"||e==="noise"||e==="fresnel"||e==="rainbow"||e==="toon"||e==="outline"||e==="transmission"||e==="matcap"||e==="displace"||e==="pattern"||e==="light"}t.is=n})(cy||(cy={}));function dy(n){return n.type!=="displace"}var uy;(t=>{function n(e){return e==="phong"||e==="toon"||e==="lambert"||e==="physical"}t.is=n})(uy||(uy={}));var py=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],fy=["wrapping","image","video","name"],zt;(o=>{function n(i,a){let{texture:s,...l}=a;if(Object.assign(i,l),s){let d=i.texture;d&&Object.assign(d,s)}}o.patch=n;function t(i,a){return i==="light"&&a?e(a):r(i)}o.defaultData=t;function e(i){let a={mode:0,isMask:!1,visible:!0,bumpMap:void 0,bumpMapIntensity:5,roughnessMap:void 0,alphaOverride:1};switch(i){case"phong":return{...a,category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",visible:!0,mode:0,occlusion:!0,alpha:.6};case"toon":return{...a,category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1};case"lambert":return{...a,category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0,occlusion:!0};case"physical":return{...a,category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0,occlusion:!0}}}function r(i){let a={alpha:1,mode:0,isMask:!1,visible:!0};switch(i){case"texture":return{...a,type:"texture",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{image:"image_0",wrapping:1e3,repeat:[1,1],offset:[0,0]},crop:!1};case"video":return{...a,type:"video",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{video:Pi.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!1};case"color":return{...a,type:"color",color:vt.fromHex(dt)};case"depth":return{...a,type:"depth",gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{...a,type:"normal",cnormal:[1,1,1]};case"gradient":return{...a,type:"gradient",gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{...a,type:"noise",size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...vt.fromHex(6710886),a:1},colorB:{...vt.fromHex(6710886),a:1},colorC:{...vt.fromHex(16777215),a:1},colorD:{...vt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8],voronoiStyle:0,highCut:1,lowCut:0,smoothness:.3,seed:0,quality:1};case"fresnel":return{...a,type:"fresnel",color:Gt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{...a,type:"rainbow",filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{...a,type:"toon",positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Gt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{...a,type:"outline",outlineColor:Gt.fromHexAndA(0,1),contourColor:Gt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{...a,type:"matcap",texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{...a,type:"transmission",thickness:10,ior:1.5,roughness:1};case"displace":return{visible:!0,type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,voronoiStyle:0,smoothness:.3,seed:0,highCut:1,lowCut:0,quality:1};case"pattern":return{...a,type:"pattern",style:0,projection:0,axis:"y",blending:0,offset:[0,0],colorA:{...vt.fromHex(0),a:1},colorB:{...vt.fromHex(16777215),a:1},frequency:[10,10],size:.5,variation:0,smoothness:.5,zigzag:0,rotation:0,vertical:[0,1],horizontal:[0,1],sides:6}}}})(zt||(zt={}));var Pt;(l=>{function n(d){return!d.layers.some(u=>u.data.type==="texture"&&u.data.projection!==0||u.data.type==="depth"&&!u.data.isWorldSpace||u.data.type==="noise"||u.data.type==="displace")}l.isMergable=n;function t(d){let c="";return d.layers.forEach(u=>{Object.entries(u.data).forEach(([p,f])=>{c+=`${p}${f}`,Array.isArray(f)?f.forEach(h=>c+=`${h}`):typeof f=="object"?Object.values(f).forEach(h=>{typeof h=="number"?c+=`${h.toFixed(4)}`:c+=`${h}`}):c+=`${f}`})}),c}l.getHash=t;function e(){return{layers:new ye}}l.defaultEmptyData=e;function r(d="layer1",c="layer2"){return i("phong",d,c)}l.defaultData=r;function o(d,c){return{...d,name:c}}l.withName=o;function i(d,c="layer1",u="layer2"){let p=new ye;return p.push({fi:0,data:zt.defaultData("light",d),id:c}),p.push({fi:1,data:zt.defaultData("color"),id:u}),{layers:p}}l.defaultTwoLayerData=i;function a(d,c="phong",u="layer1",p="layer2"){let f=zt.defaultData("texture");Object.assign(f.texture,{image:d});let h=new ye;return h.push({fi:0,data:f,id:u}),h.push({fi:1,data:zt.defaultData("light",c),id:p}),{layers:h}}l.defaultTwoLayerTextureData=a;function s(d,c="phong",u="layer1",p="layer2"){let f=zt.defaultData("video");Object.assign(f.texture,{video:d});let h=new ye;return h.push({fi:0,data:f,id:u}),h.push({fi:1,data:zt.defaultData("light",c),id:p}),{layers:h}}l.defaultTwoLayerVideoTextureData=s})(Pt||(Pt={}));var Oi;(t=>{function n(){return{points:new ye,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(Oi||(Oi={}));var Mi;(t=>{function n(){return{points:new ye,lastInsertionPlane:null,subdivisions:12,isClosed:!1}}t.defaultData=n})(Mi||(Mi={}));var Uu={type:"Ellipse",width:50,height:50,spikes:16,angle:360,innerRadius:0};var Fl;(t=>{function n(e,r){let o={...e};return CT.forEach(i=>{Object.assign(o,{[i]:r[i]??e[i]})}),o}t.merge=n})(Fl||(Fl={}));var jl={shape:Uu,depth:1,offset:0,bevel:50,bevelSides:6,angle:0,twist:0,startScale:1,endScale:1,capType:"flat"},CT=["depth","offset","angle","twist","startScale","endScale"];var os;(e=>{function n(r){return r==="PolygonGeometry"||r==="RectangleGeometry"||r==="StarGeometry"||r==="TriangleGeometry"||r==="EllipseGeometry"}e.is2DParametricMesh=n;function t(r){return r==="PolygonGeometry"||r==="PolygonGeometry"||r==="RectangleGeometry"||r==="StarGeometry"||r==="TriangleGeometry"||r==="EllipseGeometry"||r==="PathGeometry"||r==="VectorGeometry"||r==="ConeGeometry"||r==="CubeGeometry"||r==="CylinderGeometry"||r==="DodecahedronGeometry"||r==="HelixGeometry"||r==="IcosahedronGeometry"||r==="LatheGeometry"||r==="PyramidGeometry"||r==="SphereGeometry"||r==="PlaneGeometry"||r==="BackdropGeometry"||r==="TorusGeometry"||r==="TorusKnotGeometry"||r==="BooleanGeometry"||r==="TextGeometry"}e.isParametricMesh=t})(os||(os={}));var Ul;(t=>{function n(e,r){let o={...e};return Object.assign(o,r),o.type==="PathGeometry"&&"extrusion"in r&&r.extrusion&&(o.extrusion={...e.extrusion},Object.assign(o.extrusion,Fl.merge(o.extrusion,r.extrusion))),o}t.merge=n})(Ul||(Ul={}));var $o;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="PathGeometry")return{type:e,width:1,height:1,depth:1,path:Mi.defaultData(),extrusion:jl};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:Oi.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:{textValue:""},textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="SphereGeometry")return{type:"SphereGeometry",width:100,height:100,depth:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:180};throw new Error("not implemented")}t.defaultData=n})($o||($o={}));var Hl;(t=>t.defaultData={enabled:!1,useBackgroundColor:!1,color:vt.white,near:.1,far:2e3})(Hl||(Hl={}));var ql;(e=>{let n={opacity:1,blendFunction:13,enabled:!1};e.defaultData={enabled:!1,pixelation:{...n,blendFunction:16,granularity:15},bloom:{...n,blendFunction:16,intensity:1,blurScale:1,luminanceThreshold:.25,luminanceSmoothing:.025,kernelSize:3},chromaticAberration:{...n,offset:[2,2]},vignette:{...n,darkness:1,offset:0},hueSaturation:{...n,hue:3,saturation:0},brightnessContrast:{...n,brightness:.25,contrast:0},depthOfField:{...n,focalLength:2,focusDistance:2,bokehScale:2},noise:{...n,blendFunction:16}}})(ql||(ql={}));var Hu;(t=>t.defaultData={softShadowQuality:"low"})(Hu||(Hu={}));var qu;(t=>t.defaultData={enabled:!0,color:{r:.8274509803921568,g:.8274509803921568,b:.8274509803921568},intensity:.75})(qu||(qu={}));var Wu;(t=>t.defaultData={occlusion:!1,aoFullRes:!1,radius:256,bias:.5,aoColor:{r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}})(Wu||(Wu={}));var ns;(t=>t.defaultData={usePhysics:!1,gravity:-10})(ns||(ns={}));var $u;(t=>t.defaultData={playCamera:Uo,gameControlObject:null})($u||($u={}));var Wl;(t=>t.defaultData={backgroundColor:Gt.fromHexAndA(sy,1),postprocessing:ql.defaultData,fog:Hl.defaultData,globalPhysics:ns.defaultData,ambient:qu.defaultData,ao:Wu.defaultData,shadow:Hu.defaultData,publish:$u.defaultData})(Wl||(Wl={}));var hy;(e=>{function n(r){return r==="Component"||r==="Instance"}e.isComponentRelated=n;function t(r){return r==="Empty"||r==="Instance"}e.isEmptyOrComponent=t})(hy||(hy={}));var Ii;(o=>{o.identity={...Rl.identity,hiddenMatrix:jo.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,a){return{position:a?.position||i.position,rotation:a?.rotation||i.rotation,scale:a?.scale||i.scale,hiddenMatrix:a?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,a){return ef({position:Fo.isEqual(i.position,a.position)?void 0:a.position,rotation:Fo.isEqual(i.rotation,a.rotation)?void 0:a.rotation,scale:Fo.isEqual(i.scale,a.scale)?null:a.scale,hiddenMatrix:jo.isEqual(i.hiddenMatrix,a.hiddenMatrix)?void 0:a.hiddenMatrix})}o.diff=r})(Ii||(Ii={}));var Ot;(t=>t.defaultData={states:new ye,events:new ye,visible:!0,raycastLock:!1,physics:Wo.defaultData,pathSnapping:{pathId:null,slide:0,offset:0,orientation:"tangential"},...Ii.identity,cloner:null})(Ot||(Ot={}));var $l;(t=>t.defaultData={type:"Empty",...Ot.defaultData})($l||($l={}));var my;(t=>t.defaultData={type:"Component",...Ot.defaultData})(my||(my={}));var An;(t=>t.defaultData={type:"Mesh",...Ot.defaultData,...kl.defaultData})(An||(An={}));var Tn;(t=>t.defaultData={...Ot.defaultData,...Ii.identity,position:[0,0,qo.DefaultTargetOffset],...qo.defaultData})(Tn||(Tn={}));var Yl;(e=>{function n(r){return{...Ot.defaultData,...zl.defaultData(r)}}e.defaultData=n,e.defaultDirectionalLightData={...e.defaultData("DirectionalLight"),position:[200,300,300],name:"Directional Light",intensity:.7}})(Yl||(Yl={}));var Ni;(e=>{function n(r,o,i=0){for(;i<o.length;){let a=r?r[o[i]]:void 0;if(o.length===i+1)return a;if(a)r=a.descendants,i+=1;else return}}e.resolveWithDes=n;function t(r,o,i=0){let a=n(r,o,i);if(a){let s=Object.keys(a);if(s.length===1&&s[0]==="descendants")return}return a}e.resolve=t})(Ni||(Ni={}));var Hr;(i=>{i.rootOverrideProps=["physics","events"],i.compositeNonOptionalOverrideProps=["geometry"],i.compositeEntireOverrideOverrideProps=["material"];function r(a,s){return{...Ot.defaultData,...s,component:a,overrides:new ke,physics:void 0,events:void 0,type:"Instance"}}i.ofComponent=r;function o(a){let s=Ii.fromObject(a.data);return r(a.id,s)}i.fromComponentData=o})(Hr||(Hr={}));var xo;(t=>t.defaultData={type:"Page",...Ot.defaultData,physics:{...Wo.defaultData,fusedBody:!1},...Wl.defaultData,camera:Tn.defaultData})(xo||(xo={}));var Xl;(i=>(i.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:jo.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Wo.defaultData,states:new ye,events:new ye,cloner:null,pathSnapping:{pathId:null,orientation:"tangential",slide:0,offset:0},...qo.defaultData},i.KeysByResetCategory={States:["states"],Events:["events"],Material:["material","materials"],Geometry:["geometry"],Position:["position"],Rotation:["rotation"],Scale:["scale"],Transform:["position","scale","rotation","hiddenMatrix"],Name:["name"],Visibility:["visible","raycastLock","flatShading","wireframe","side"],Shadows:["castShadow","receiveShadow"],Cloner:["cloner"],Physics:["physics"]},i.defaultMeshObject={name:"Rectangle",...Ot.defaultData,...An.defaultData,geometry:$o.defaultData("RectangleGeometry"),material:Pt.defaultTwoLayerData("phong","layer1","layer2")},i.defaultBooleanObject={name:"Boolean",...Ot.defaultData,...An.defaultData,geometry:$o.defaultData("BooleanGeometry"),material:Pt.defaultTwoLayerData("phong","layer1","layer2")},i.defaultTextObject={name:"Text",...Ot.defaultData,...An.defaultData,geometry:$o.defaultData("TextGeometry"),material:Pt.defaultTwoLayerData("phong","layer1","layer2")}))(Xl||(Xl={}));var Cn;(o=>{function n(i,a){let s={name:a};return i.type==="Mesh"?(s.geometry={},"material"in i&&(s.material={layers:new ke}),"materials"in i&&(s.materials=i.materials.map(l=>({layers:new ke})))):vr.is(i.type)&&(s.perspective={},s.orthographic={}),s}o.newEmpty=n;function t(i,a){if(a===void 0)return i;let s={...i};return"material"in s&&"material"in a&&a.material&&(s.material=Vo(s.material,l=>{if(typeof l!="string")for(let[d,c]of Object.entries(a.material.layers)){let u=l.layers.data(d);u&&zt.patch(u,c)}}).data),s.materials&&a.materials&&(s.materials=Vo(s.materials,l=>{for(let d=0;d<s.materials.length;d++){let c=a.materials[d];if(typeof c!="string")for(let[u,p]of Object.entries(c.layers)){let f=l[d]?.layers?.data(u);f&&zt.patch(f,p)}}}).data),s}function e(i,a){let s,l=[],d={orthographic:0,perspective:0,geometry:0};function c(u,p){for(let[f,h]of Object.entries(p.layers)){let{texture:m,...y}=h;if(m!==void 0&&Object.keys(m).length>0){let g={path:[...u,"layers",f,"texture"],props:m,type:0};l.push(g)}if(Object.keys(y).length>0){let g={path:[...u,"layers",f],props:y,type:0};l.push(g)}}}for(let[u,p]of Object.entries(a))if(u!=="name")if(u==="cloner")l.push(...Vl.toOps(p,["cloner"]));else if(u==="pathSnapping")l.push({path:[u],props:{slide:p.slide,offset:p.offset},type:0});else if(u==="material")c(["material"],p);else if(u==="materials")for(let[f,h]of Object.entries(p))c(["materials",f],h);else if(d[u]===0){if(u==="geometry"&&p.extrusion!==void 0){let f={path:[u,"extrusion"],props:p.extrusion,type:0};l.push(f),p={...p},delete p.extrusion}if(Object.keys(p).length>0){let f={path:[u],props:p,type:0};l.push(f)}}else s===void 0&&(s={path:[],props:{},type:0},l.push(s)),s.props[u]=p;return l}o.toOps=e;function r(i,a){if(a===void 0)return i;let s={...i};if(Object.assign(s,Ii.merge(s,a)),Object.assign(s,{pathSnapping:Object.assign({},s.pathSnapping,{slide:a.pathSnapping?.slide??s.pathSnapping?.slide??0,offset:a.pathSnapping?.offset??s.pathSnapping?.offset??0})}),vr.is(i.type)){s.orthographic={...s.orthographic},s.perspective={...s.perspective};let l=a;l.orthographic?.zoom!==void 0&&(s.orthographic.zoom=l.orthographic.zoom),l.perspective?.zoom!==void 0&&(s.perspective.zoom=l.perspective.zoom),l.isUpVectorFlipped!==void 0&&(s.isUpVectorFlipped=l.isUpVectorFlipped),l.targetOffset!==void 0&&(s.targetOffset=l.targetOffset)}else if(i.type==="Mesh")"geometry"in a&&Object.assign(s,{geometry:Ul.merge(s.geometry,a.geometry)}),(a.material||a.materials)&&(s=t(s,a)),s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Ur.merge(s.cloner,a.cloner)});else if(i.type==="Empty")s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Ur.merge(s.cloner,a.cloner)});else if(Gl.is(i.type)){let l=a;l.intensity!==void 0&&(s.intensity=l.intensity),l.color!==void 0&&(typeof l.color=="string"?s.color=l.color:s.color=vt.clone(l.color))}return s}o.patch=r})(Cn||(Cn={}));var Li;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,hoverRotateDamping:.125,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(Li||(Li={}));var qr;(t=>t.defaultData={orbitControls:Li.defaultData,playPage:Ho,withBackground:!0,preventScroll:!1,preventTouchScroll:!1,hideCursor:!1,mouseEventTarget:"canvas",joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,i=0;return r<5?i=-30:r<10&&(i=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,i],"show"]}),settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:Math.max(1,typeof window<"u"?Math.floor(window.devicePixelRatio):1),stopMode:"manual",duration:5e3},web:{logo:!0,compress:!0,preset:1,preload:!0,hint:!1}},stopRaycast:!0,hdTransmission:!1})(qr||(qr={}));var Yu;(t=>t.defaultData={id:"basic",label:"Basic",style:"None",prompt:""})(Yu||(Yu={}));var Xu;(t=>t.defaultData={weather:0,shadows:0,lightOrigin:0,temperature:0,sun:0,camera:0,environment:0,particles:0,nature:0,floor:0})(Xu||(Xu={}));var Yo;(e=>(e.defaultData=()=>({mode:"line-art-both",prompt:"",negativePrompt:"",style:{...Yu.defaultData},isRandomSeed:!0,seed:e.generateSeed(),guessMode:!1,advanced:!1,steps:20,guidanceScale:7.5,controlNetScale:1,modifiers:Xu.defaultData}),e.generateSeed=()=>Math.round(Math.random()*1e5)))(Yo||(Yo={}));var yy;(e=>{function n(r){return r.find(o=>o.data.type==="Page"&&o.data.globalPhysics.usePhysics)!==void 0}e.physicsEnabled=n;function t(r,o,i){r.scene.objects.traverseFrom(o,(a,s)=>{if(s.type==="Instance"){let l=Di.getComponentData(r,s.component)?.data;l&&i(a,s,l.events)}else i(a,s,s.events)})}e.traverseModuleInstances=t})(yy||(yy={}));var Xo;(s=>{s.TRASH_CAN_ID="830a2708-8ed9-49cf-a68e-085299892222";function t(l={withLight:!0,withSquare:!0}){let d=[],c=Xl.defaultMeshObject;l.withLight===!0&&d.push({fi:-1,data:Yl.defaultDirectionalLightData,id:"830a2708-8ed9-49cf-a68e-085299899103",children:[]}),l.withSquare===!0&&d.push({fi:1,id:"7ba78968-2a55-48f2-b14c-5191da3e075e",data:c,children:[]});let u=new $e;return u.push({fi:1,id:Ho,data:{...xo.defaultData,name:"Scene 1"},children:d}),u}s.defaultData={objects:t(),publish:qr.defaultData,styles:Yo.defaultData()},s.emptyDataWithoutPage=function(){return{objects:new $e,publish:qr.defaultData,styles:Yo.defaultData()}},s.emptyDataWithPage=function(l){return{objects:t(l),publish:qr.defaultData,styles:Yo.defaultData()}};function i(l){return{...s.defaultData,objects:Wt(l,$e.prototype)}}s.withObjs=i;function a(l,d){return i([{id:l,data:d,children:[],fi:0}])}s.withObj=a})(Xo||(Xo={}));var Bi;(t=>t.defaultData={preset:"fullscreen",allowResponsive:!1,size:[512,512],coords:[0,0],sceneScale:1,color:{r:0,g:0,b:0,a:.5}})(Bi||(Bi={}));var Ri;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",name:"empty"})(Ri||(Ri={}));var Kl;(i=>{function n(a){return a.textValue!==void 0}i.isTextValue=n;function t(a){return typeof a=="number"}i.isNumber=t;function e(a){return typeof a=="boolean"}i.isBoolean=e;function r(a){return n(a)?"string":e(a)?"boolean":"number"}i.typeOfVariable=r;function o(a){return i.isTextValue(a)?Array.isArray(a.textValue)?a.textValue.map(s=>s.toString().padStart(a.padding??2,"0")).join(a.deliminator??":")+(a.suffix!==void 0?" "+a.suffix:""):a.textValue.toString():i.isBoolean(a)?a?"True":"False":i.isNumber(a)?parseFloat(a.toFixed(3)).toString():a.toString()}i.getDisplayedValue=o})(Kl||(Kl={}));var Ku;(t=>t.all=["images","videos","colors","audios","fonts","materials","variables"])(Ku||(Ku={}));var gy;(t=>t.all=[...Ku.all,"components"])(gy||(gy={}));var xy;(t=>{function n(){return{images:new he,videos:new he,colors:new he,audios:new he,fonts:new he,materials:new he,components:new he,variables:new he}}t.defaultData=n})(xy||(xy={}));var Ko;(t=>{function n(){return{images:new he,videos:new he,colors:new he,audios:new he,fonts:new he,materials:new he,components:new he,variables:new he}}t.defaultData=n})(Ko||(Ko={}));var br;(i=>{function n(){let a={};return a["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Wt(a,he.prototype)}i.defaultColors=n;function t(a){let s={};return a?.withAITexture&&(s["a1b10010-844c-a8a3-11ec-0242ac2011ec"]={...Ri.emptyImage,name:"AI generated image"}),Wt(s,he.prototype)}i.defaultImages=t;function e(){return{catelogs:new he,materials:new he,images:new he,videos:new he,colors:new he,audios:new he,fonts:new he,variables:new ye,lib:Ko.defaultData()}}i.emptyData=e;function r(a){switch(a){case"number":return{value:0,name:"Number"};case"boolean":return{value:!1,name:"Boolean"};case"string":return{value:{textValue:"String value"},name:"String"};case"time":let s=[0,0,0];return{name:"Time",value:{textValue:s,deliminator:":",padding:2,suffix:"AM"},dynamicVariableType:"time",format:"HH:mm:ss",format12h24h:"12ampm",timeZone:null,hasEnd:!1,endValue:{textValue:s,deliminator:":",padding:2,suffix:"AM"},autoStart:!0,repeat:!1};case"counter":return{name:"Counter",value:0,dynamicVariableType:"counter",updateInterval:1e3,increment:1,autoStart:!0,hasEnd:!0,endValue:60,repeat:!0,randomStart:!1,range:[0,100],decimals:0};case"random":return{name:"Random",value:0,dynamicVariableType:"random",updateInterval:1e3,increment:1,autoStart:!0,isStatic:!1,hasEnd:!0,endValue:60,repeat:!0,min:0,max:100,decimals:0};default:console.error("Unknown variable type",a)}}i.defaultVariables=r;function o(a,s){if(s.format==="HH:mm:ss"){let l=Math.floor(a/3600),d=Math.floor((a-l*3600)/60),c=Math.round(a-l*3600-d*60);return{textValue:[l,d,c]}}else if(s.format==="mm:ss"){let l=Math.floor(a/60),d=Math.round(a-l*60);return{textValue:[l,d]}}else return s.format==="number"?a=Math.round(a):a=Math.round(a*1e3)/1e3,a}i.getFormattedTimerTime=o})(br||(br={}));import{MathUtils as Jl}from"three";var Ql;(t=>t.list=["idle","move","jump","run"])(Ql||(Ql={}));var Zl;(e=>(e.defaultColliderData={type:"capsule",height:200,radius:50,position:[0,0,0],rotation:[0,0,0]},e.defaultDataThirdPerson={moveMode:"walk",forwardDirection:"+z",speedTranslate:1e3,speedRotate:100,runMultiplier:2,rotationMode:"normal",rotBy:"keys",rotByTouch:"drag",delayPos:[.3,.3],delayRot:[.3,.3],keyAssignments:[["moveNegZ","W"],["moveNegX","A"],["movePosZ","S"],["movePosX","D"],["rotPosX","\u25B2"],["rotPosY","\u25C0"],["rotNegX","\u25BC"],["rotNegY","\u25B6"],["jump","Space"],["run","\u21E7"],["none","Ctrl"]],touchControl:!0,joystickPosLoc:5,joystickRotLoc:11,jumpTouchButtonLoc:9,collider:e.defaultColliderData,colliderHelperVisible:!0,collisionEnabled:!0,jumpPower:100,resetYPosition:3e3,alignToGround:!1,autoOrientMove:!0,orientWith:"camera",orientMode:"radial",delayPosCamera:.3,delayRotCamera:.3,camera:"",cameraXAxis:"Limit",cameraYAxis:"Free",cameraRotXLimits:[0,Math.PI/2],cameraRotYLimits:[-Math.PI/2,Math.PI/2],gameActions:{idle:new ye,move:new ye,jump:new ye,run:new ye},navmesh:{enabled:!1,ch:6,cs:6,walkableClimb:5,walkableHeight:1,walkableRadius:0,zones:"all",objects:[],helperVisible:!0,destinationHelperRadius:0,destinationHelperColor:Gt.fromHexAndA(3728051,1)}}))(Zl||(Zl={}));function vy(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let s=2;s<10;s++)o.push(o[1]),i.push(1);let a={...xr(Ye(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,a)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Ye(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function vo(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function bo(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach((o,i)=>{o===void 0&&(r.materials[i]=Pt.defaultData(),o=r.materials[i]),typeof o!="string"&&t(o)}):"material"in r?typeof r.material!="string"&&(r.material===void 0&&(r.material=Pt.defaultData()),t(r.material)):r.type==="Mesh"&&(r.material===void 0&&(r.material=Pt.defaultData()),t(r.material)),"overrides"in r&&Object.values(r.overrides).forEach(o=>{o.material&&typeof o.material!="string"&&t(o.material)})})}function PT(n){Object.assign(n.scene.publish,{orbitControls:{...Li.defaultData,...Ye(n.scene.publish.orbitControls)}})}function OT(n){Object.assign(n.scene.publish.settings,{video:{...qr.defaultData.settings.video,...Ye(n.scene.publish.settings.video)}})}function MT(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((py.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[a,s]of Object.entries(i))(fy.includes(a)||typeof s=="boolean")&&delete i[a]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(a=>{t(a)})})})}function IT(n){n.scene.publish.withBackground=!0}function NT(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1,logo:!0,hint:!1}}function ET(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function LT(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function DT(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.unproxy().parent(t);if(r){let o=Ye(n.scene.objects.data(r));o&&o.type==="Mesh"&&o.geometry.type==="BooleanGeometry"&&e.type==="Mesh"&&(e.visible=Ye(e).booleanExclude!==!0)}})}function BT(n){n.scene.objects.traverse((t,e)=>{if(e.type==="Mesh"){let r=e;e.geometry.type==="NonParametricGeometry"?r.material!==void 0&&delete r.material:r.materials!==void 0&&delete r.materials}})}function RT(n){function t(r){Object.setPrototypeOf(r,ke.prototype),r.texture&&Object.setPrototypeOf(r.texture,ke.prototype)}function e(r){Object.setPrototypeOf(r,ke.prototype);for(let o in r)t(r[o])}n.scene.objects.traverse((r,o)=>{o.states.forEach(i=>{let a=i;if(a.material){let s=Ye(a.material).layers;e(s),a.material.layers=s}if(a.materials)for(let s=0;s<a.materials.length;s++){let l=a.materials[s],d=Ye(l).layers;e(d),l.layers=d}})})}function by(n){n.layers===void 0&&Object.assign(n,Pt.defaultTwoLayerData("lambert"))}function Qu(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...Ye(t),colors:e,steps:r};Object.assign(t,o)}})}function VT(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Sy(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Qu(r)}):"material"in e&&typeof e.material!="string"&&Qu(e.material)}),Object.values(n.shared.materials).forEach(t=>Qu(t))}function GT(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function zT(n){n.shared.audios=Wt({},he.prototype)}function kT(n){n.shared.videos=Wt({},he.prototype)}function FT(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function jT(n){Object.entries(Ye(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Ye(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function UT(n){n.scene.publish.settings.web.preload=!1}function wy(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function _y(n){n.layers&&n.layers.forEach(t=>{dy(t)&&t.isMask===void 0&&(t.isMask=!1),(t.type==="texture"||t.type==="video")&&t.blending===void 0&&(t.blending=0),(t.type==="noise"||t.type==="displace"&&t.displacementType==="noise")&&(t.voronoiStyle===void 0&&(t.voronoiStyle=0),t.highCut===void 0&&(t.highCut=1),t.lowCut===void 0&&(t.lowCut=0),t.smoothness===void 0&&(t.smoothness=.3),t.seed===void 0&&(t.seed=0),t.quality===void 0&&(t.quality=1))})}function HT(n){n.shared.fonts=Wt({},he.prototype)}function qT(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function WT(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Pt.defaultTwoLayerData("phong"),a=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:a.r,g:a.g,b:a.b},i.layers[1].data.alpha=o.alpha;let s=qT(o.font);n.shared.fonts[s]===void 0&&(n.shared.fonts[s]={name:s});let l={name:o.name,...Ot.defaultData,...An.defaultData,flatShading:!1,wireframe:!1,geometry:{...$o.defaultData("TextGeometry"),width:o.width,height:o.height,font:s,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Ye(o.states),events:Ye(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},d=Ye(n.scene.objects).parent(e);n.scene.objects.insertAfter(d??null,e,[{id:e+"new",data:l,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function $T(n){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new ye,move:new ye,jump:new ye}});else{let i=new ye;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:Jl.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((a,s,l)=>{let d={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},c={easing:a.easing,duration:a.duration};a.easing===6?Object.assign(c,xr(a,"mass","stiffness","damping","velocity")):a.easing===5&&Object.assign(c,{control1:{...a.control1},control2:{...a.control2}});let u={repeat:a.repeat?-1:0,delay:a.delay,delayDirection:a.delayDirection,direction:a.cycle&&a.rewind?"pingpong-rewind":a.cycle?"pingpong":"normal"},p={state:a.state,...u,...c},f={allowSlerp:!0,type:"Transition",object:a.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ye({fi:0,id:Jl.generateUUID(),data:d},{fi:1,id:Jl.generateUUID(),data:p})};i.push({fi:l,id:s,data:f})}),delete o.targets)}})})}function YT(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let a=new ye,s=[];if(e.events.forEach((l,d,c)=>{if(l.type==="Audio"&&l.trigger===i){let u;s.push(d),l.interaction==="play"?u={...xr(l,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in l?l.after:void 0,toggle:"after"in l?l.toggle:void 0,type:"Audio"}:(l.interaction==="pause"||l.interaction==="stop")&&(u={...xr(l,"interaction","delay","object","playAudio"),type:"Audio"}),u&&a.push({fi:c,id:d,data:u})}}),s.forEach(l=>e.events.delete(l)),a.length){let l=e.events.find(d=>d.type===o)?.data;l?"actions"in l&&l.actions.insertBefore(null,a):e.events.insertBefore(null,[{id:Jl.generateUUID(),data:{type:o,actions:a}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function Ay(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=zt.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function Ty(n){vo(n,Ay),bo(n,Ay)}function XT(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function KT(n){n.scene.objects.traverse((t,e)=>{(e.type==="Empty"||e.type==="Mesh")&&e.cloner&&!e.cloner.randomnessObject&&!e.cloner.toObject&&!e.cloner.randomness&&(e.cloner={...e.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}function QT(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="NonParametricGeometry"&&!("material"in e)&&!("materials"in e)&&(e.material=Pt.defaultTwoLayerData("phong"))})}function ZT(n){n.scene.publish.orbitControls.autoZoom===void 0&&(n.scene.publish.orbitControls.autoZoom=!1),n.scene.objects.traverse((t,e)=>{(e.type==="OrthographicCamera"||e.type==="PerspectiveCamera")&&(e.orthographic.autoZoom===void 0&&(e.orthographic.autoZoom=!1),e.orthographic.autoZoomFrustumSize===void 0&&(e.orthographic.autoZoomFrustumSize=790))})}function JT(n){n.scene.objects.traverse((t,e)=>{e.pathSnapping===void 0&&(e.pathSnapping={pathId:null,slide:0,offset:0,orientation:"tangential"}),e.pathSnapping.offset===void 0&&(e.pathSnapping.offset=0)})}function eC(n){n.scene.publish.mouseEventTarget===void 0&&(n.scene.publish.mouseEventTarget="canvas"),n.scene.publish.settings.web.hint===void 0&&(n.scene.publish.settings.web.hint=!1)}function tC(n){let{video:t}=n.scene.publish.settings;t.format==="gif"&&t.fps>48&&(t.fps=15)}function rC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.resetYPosition=Math.abs(r.resetYPosition-e.position[1]))})})}function oC(n){let t=n.scene.environment.usePhysics;n.scene.objects.traverse((e,r)=>{t&&r.physics===null?r.collision=!1:r.collision="visibility"})}function nC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.navmesh=Zl.defaultDataThirdPerson.navmesh)})})}function iC(n){n.scene.styles||(n.scene.styles=Yo.defaultData())}function Cy(n){n.layers.forEach(t=>{t.type==="light"&&t.category!=="toon"&&t.occlusion===void 0&&(t.occlusion=!0)})}function aC(n){n.scene.environment.ambientLight.occlusion===void 0&&(n.scene.environment.ambientLight.occlusion=!1),n.scene.environment.ambientLight.aoFullRes===void 0&&(n.scene.environment.ambientLight.aoFullRes=!1),n.scene.environment.ambientLight.radius===void 0&&(n.scene.environment.ambientLight.radius=256),n.scene.environment.ambientLight.bias===void 0&&(n.scene.environment.ambientLight.bias=.5),n.scene.environment.ambientLight.aoColor===void 0&&(n.scene.environment.ambientLight.aoColor={r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}),bo(n,Cy),vo(n,Cy)}function sC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&Object.assign(r.gameActions,{run:new ye})})})}function lC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.keyAssignments=[...r.keyAssignments,["run","\u21E7"],["none","Ctrl"]])})})}function Py(n){n.layers&&n.layers.forEach(t=>{t.type==="light"&&t.bumpMapIntensity===void 0&&(t.bumpMapIntensity=5)})}function Oy(n,t){if(t<1&&(bo(n,vy),vo(n,vy),n.schema=1),t<2&&(PT(n),n.schema=2),t<3&&(MT(n),n.schema=3),t<4&&(IT(n),n.schema=4),t<5&&(NT(n),n.schema=5),t<6&&(ET(n),n.schema=6),t<7&&(LT(n),n.schema=7),t<8&&(n.schema=8),t<9&&(Sy(n),n.schema=9),t<10&&(VT(n),n.schema=10),t<11&&(GT(n),n.schema=11),t<12&&(Sy(n),n.schema=12),t<13&&(zT(n),n.schema=13),t<14&&(FT(n),n.schema=14),t<15&&(jT(n),n.schema=15),t<16&&(UT(n),n.schema=16),t<17&&(bo(n,wy),vo(n,wy),n.schema=17),t<18&&(bo(n,by),vo(n,by),n.schema=18),t<19&&(OT(n),n.schema=19),t<20&&(HT(n),WT(n),n.schema=20),t<21&&($T(n),YT(n),n.schema=21),t<22&&(Ty(n),n.schema=22),t<23&&(XT(n),n.schema=23),t<24&&(KT(n),n.schema=24),(t<25||n.shared.videos===void 0)&&(kT(n),t<25&&(n.schema=25)),t<26&&(DT(n),n.schema=26),t<27&&(BT(n),n.schema=27),t<28&&(Ty(n),n.schema=28),t<29&&(RT(n),n.schema=29),t<30&&(QT(n),n.schema=30),t<31&&(ZT(n),n.schema=31),t<33&&(JT(n),n.schema=33),t<34&&(eC(n),n.schema=34),t<35&&(tC(n),n.schema=35),t<36&&(rC(n),n.schema=36),t<37&&(oC(n),n.schema=37),t<38&&(bo(n,_y),vo(n,_y),n.schema=38),t<39&&(nC(n),n.schema=39),t<40&&(iC(n),n.schema=40),t<41&&(aC(n),n.schema=41),t<42&&(sC(n),n.schema=42),t<43&&(lC(n),n.schema=43),t<99){bo(n,Py),vo(n,Py),n.scene.publish.playCamera===null&&(n.scene.publish.playCamera=Uo);let e=Ye(n.scene.objects),r=n.scene.objects;n.scene.publish.playPage=Ho,r.insertBefore(null,null,[{id:Ho,data:{...xo.defaultData,backgroundColor:n.scene.backgroundColor,fog:n.scene.fog,postprocessing:n.scene.postprocessing,ao:xr(n.scene.environment.ambientLight,"occlusion","aoFullRes","radius","bias","aoColor"),publish:{playCamera:n.scene.publish.playCamera,gameControlObject:n.scene.publish.gameControlObject},shadow:xr(n.scene.environment.ambientLight,"softShadowQuality"),globalPhysics:{...ns.defaultData,...xr(n.scene.environment,"usePhysics","gravity")},camera:Ye(n.scene.ownerCamera)??xo.defaultData.camera,name:"Scene"},children:[]}]);for(let a of e)a.id!==Xo.TRASH_CAN_ID&&r.move(Ho,a.fi,a.id);let o=0,i=0;n.shared.penumbraSize&&n.scene.objects.traverse((a,s)=>{s.type==="DirectionalLight"?(s.penumbraSize=n.shared.penumbraSize[Math.min(o,2)],o+=1):s.type==="SpotLight"&&(s.penumbraSize=n.shared.penumbraSize[3+Math.min(i,1)],i+=1),(s.physics===void 0||s.physics===null)&&s.type!=="Instance"&&(s.physics={},Object.assign(s.physics,Wo.defaultData)),s.physics!==void 0&&s.physics!==null&&(s.physics.enabled=s.collision??"visibility",delete s.collision)}),n.schema=99}}function My(n){n.layers&&n.layers.forEach(t=>{t.type==="light"&&t.alphaOverride===void 0&&(t.alphaOverride=1)})}function cC(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&r.type==="PathGeometry"&&(r.extrusion.capType="flat",r.extrusion.bevel=50,r.extrusion.bevelSides=6,r.extrusion.shape.type==="Custom"&&(r.extrusion.shape.shapeQuality="low"))})}var Vi=180/Math.PI;function Iy(n){n.rotation=n.rotation.slice(0,3).map(t=>t*Vi)}function Ny(n){Iy(n),n.type==="Page"&&Iy(n.camera),n.states?.forEach(e=>{e.rotation===void 0||e.rotation===null||(e.rotation=e.rotation.slice(0,3).map(r=>r*Vi))});let t=n.geometry;t&&t.type==="SphereGeometry"&&(t.thetaLength=(t.thetaLength??180)*Vi),t&&t.type==="TorusGeometry"&&(t.arc=t.arc*Vi),t&&t.type==="PathGeometry"&&(t.extrusion.angle*=Vi,t.extrusion.twist*=Vi),n.type==="Mesh"&&n.geometry.type==="TextGeometry"&&(n.geometry.text={textValue:n.geometry.text}),Array.isArray(Ye(n.events))&&n.events?.forEach(e=>{(e.type==="MouseDown"||e.type==="MouseUp"||e.type==="MousePress"||e.type==="KeyDown"||e.type==="KeyUp"||e.type==="KeyPress"||e.type==="Collision"||e.type==="Trigger")&&(e.runMode=e.toggle?"Toggle":"Once")})}function uC(n){n.shared.variables=Wt({},he.prototype)}function dC(n){let t=Ye(n.shared.variables);n.shared.variables=Wt(Object.entries(t??{}).map(([e,r],o)=>({fi:o,id:e,data:r})),ye.prototype)}var So=107;function Ey(n,t){t(n.data);for(let e of n.children)Ey(e,t)}function pC(n){let t=n.schema??104;t!==So&&t<105&&(Ey(n.asset,Ny),n.schema=105)}function ec(n){let t=n.schema??0;if(t!==So){console.warn("updating from ",t,"to ",So),Oy(n,t),t<100&&(n.scene.publish.joystickSizeAndXYOffset===void 0&&(n.scene.publish.joystickSizeAndXYOffset=qr.defaultData.joystickSizeAndXYOffset),n.schema=100),t<101&&(bo(n,My),vo(n,My),n.schema=101),t<102&&(cC(n),n.schema=102),t<104&&(n.shared.catelogs=new he,n.shared.lib=Ko.defaultData(),n.schema=104),t<105&&(uC(n),n.scene.objects.traverse((e,r)=>{Ny(r)}),n.schema=105);for(let e of Object.values(n.shared.lib.components))pC(e);t<106&&(dC(n),n.schema=106),t<107&&(n.shared.lib.variables=Ko.defaultData().variables,n.schema=107)}}var Di;(s=>{s.defaultData={schema:So,scene:Xo.defaultData,frames:new he().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",Bi.defaultData),shared:{...br.emptyData(),colors:br.defaultColors()}},s.emptyDataForImports=function(l){let d=Xo.emptyDataWithPage(l);return{schema:So,scene:d,frames:new he().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",Bi.defaultData),shared:{...br.emptyData(),colors:br.defaultColors(),images:br.defaultImages(l)}}},s.emptyData=function(){return{schema:So,scene:Xo.emptyDataWithPage(),frames:new he().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",Bi.defaultData),shared:br.emptyData()}},s.collabHelper={...Za,updateSchema(l){return(l.schema??0)<So?Vo(l,ec):(l.schema??0)-So}};function o(l){let d=s.collabHelper.updateSchema(l);return typeof d=="number"?d===0?l:null:d.data}s.updateSchemaDirectly=o;function i(l){return{...l,shared:{...l.shared,lib:Ko.defaultData()}}}s.withoutLib=i;function a(l,d){let c=l.scene.objects.get(d);if(c&&c.data.type==="Component")return c;{let u=l.shared.lib.components[d];if(u)return u.asset}}s.getComponentData=a})(Di||(Di={}));var Ea=Rt(Dy());import{Object3D as aM,Vector3 as lr,Euler as Ep,MathUtils as dx,Matrix4 as $n}from"three";var fC=.5*(Math.sqrt(3)-1),is=(3-Math.sqrt(3))/6,hC=1/3,Wr=1/6,wU=(Math.sqrt(5)-1)/4,_U=(5-Math.sqrt(5))/20,as=n=>Math.floor(n)|0,By=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),Ju=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function tc(n=Math.random){let t=Vy(n),e=new Float64Array(t).map(o=>By[o%12*2]),r=new Float64Array(t).map(o=>By[o%12*2+1]);return function(i,a){let s=0,l=0,d=0,c=(i+a)*fC,u=as(i+c),p=as(a+c),f=(u+p)*is,h=u-f,m=p-f,y=i-h,g=a-m,x,S;y>g?(x=1,S=0):(x=0,S=1);let w=y-x+is,b=g-S+is,_=y-1+2*is,A=g-1+2*is,v=u&255,M=p&255,O=.5-y*y-g*g;if(O>=0){let P=v+t[M],I=e[P],L=r[P];O*=O,s=O*O*(I*y+L*g)}let T=.5-w*w-b*b;if(T>=0){let P=v+x+t[M+S],I=e[P],L=r[P];T*=T,l=T*T*(I*w+L*b)}let C=.5-_*_-A*A;if(C>=0){let P=v+1+t[M+1],I=e[P],L=r[P];C*=C,d=C*C*(I*_+L*A)}return 70*(s+l+d)}}function Ry(n=Math.random){let t=Vy(n),e=new Float64Array(t).map(i=>Ju[i%12*3]),r=new Float64Array(t).map(i=>Ju[i%12*3+1]),o=new Float64Array(t).map(i=>Ju[i%12*3+2]);return function(a,s,l){let d,c,u,p,f=(a+s+l)*hC,h=as(a+f),m=as(s+f),y=as(l+f),g=(h+m+y)*Wr,x=h-g,S=m-g,w=y-g,b=a-x,_=s-S,A=l-w,v,M,O,T,C,P;b>=_?_>=A?(v=1,M=0,O=0,T=1,C=1,P=0):b>=A?(v=1,M=0,O=0,T=1,C=0,P=1):(v=0,M=0,O=1,T=1,C=0,P=1):_<A?(v=0,M=0,O=1,T=0,C=1,P=1):b<A?(v=0,M=1,O=0,T=0,C=1,P=1):(v=0,M=1,O=0,T=1,C=1,P=0);let I=b-v+Wr,L=_-M+Wr,G=A-O+Wr,N=b-T+2*Wr,F=_-C+2*Wr,B=A-P+2*Wr,R=b-1+3*Wr,V=_-1+3*Wr,q=A-1+3*Wr,Y=h&255,$=m&255,H=y&255,X=.6-b*b-_*_-A*A;if(X<0)d=0;else{let z=Y+t[$+t[H]];X*=X,d=X*X*(e[z]*b+r[z]*_+o[z]*A)}let k=.6-I*I-L*L-G*G;if(k<0)c=0;else{let z=Y+v+t[$+M+t[H+O]];k*=k,c=k*k*(e[z]*I+r[z]*L+o[z]*G)}let W=.6-N*N-F*F-B*B;if(W<0)u=0;else{let z=Y+T+t[$+C+t[H+P]];W*=W,u=W*W*(e[z]*N+r[z]*F+o[z]*B)}let U=.6-R*R-V*V-q*q;if(U<0)p=0;else{let z=Y+1+t[$+1+t[H+1]];U*=U,p=U*U*(e[z]*R+r[z]*V+o[z]*q)}return 32*(d+c+u+p)}}function Vy(n){let e=new Uint8Array(512);for(let r=0;r<512/2;r++)e[r]=r;for(let r=0;r<512/2-1;r++){let o=r+~~(n()*(256-r)),i=e[r];e[r]=e[o],e[o]=i}for(let r=256;r<512;r++)e[r]=e[r-256];return e}import{Triangle as mC}from"three";var Sr=new mC,rc=class{constructor(t){this.weightAttribute=null;let e=t.geometry;if(!e.isBufferGeometry||e.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");e.index&&(e=e.toNonIndexed()),this.geometry=e,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,e=new Float32Array(t.count/3);for(let o=0;o<t.count;o+=3){let i=1;Sr.a.fromBufferAttribute(t,o),Sr.b.fromBufferAttribute(t,o+1),Sr.c.fromBufferAttribute(t,o+2),i*=Sr.getArea(),e[o/3]=i}this.distribution=new Float32Array(t.count/3);let r=0;for(let o=0;o<e.length;o++)r+=e[o],this.distribution[o]=r;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,e){if(this.distribution){let r=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*r);return this.sampleFace(o,t,e)}}binarySearch(t){if(!this.distribution)return 0;let e=this.distribution,r=0,o=e.length-1,i=-1;for(;r<=o;){let a=Math.ceil((r+o)/2);if(a===0||e[a-1]<=t&&e[a]>t){i=a;break}else t<e[a]?o=a-1:r=a+1}return i}sampleFace(t,e,r){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),Sr.a.fromBufferAttribute(this.positionAttribute,t*3),Sr.b.fromBufferAttribute(this.positionAttribute,t*3+1),Sr.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(Sr.a,o).addScaledVector(Sr.b,i).addScaledVector(Sr.c,1-(o+i)),Sr.getNormal(r),this}};import{Object3D as bC}from"three";var ky=Rt(zy());import{Object3D as yC,Matrix4 as $r}from"three";var gC=new $r,xC=new $r,vC=new $r,Gi;(t=>{function n(e){return e&&e.__isSPEObject}t.is=n})(Gi||(Gi={}));var zi=n=>class extends n{constructor(){super(...arguments);this.previousModelViewMatrix=new $r;this.copyPreviousMatrix=!0;this.hiddenMatrix=new $r;this.matrixWorldRigid=new $r;this.shearScale=new $r;this.shearScaleInv=new $r}get __isSPEObject(){return!0}isDescendantOf(r){r instanceof yC&&(r=r.uuid);let o=this;for(;o.parent;){if(o.parent.uuid===r)return!0;o=o.parent}return!1}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let a of this.children)a.updateWorldMatrix(!1,!0)}traverseChildren(r,o=0){for(let i of this.children)Gi.is(i)&&i.traverseObject(r,o+1)}traverseObject(r,o=0){if(r(this,o)!==!0)for(let a of this.children)Gi.is(a)&&a.traverseObject(r,o+1)}updateMatrixWorldSVD(){let r=this.matrixWorld.elements,o=[[r[0],r[4],r[8]],[r[1],r[5],r[9]],[r[2],r[6],r[10]]],{u:i,v:a,q:s}=(0,ky.SVD)(o),l=gC.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),d=xC.set(a[0][0],a[0][1],a[0][2],0,a[1][0],a[1][1],a[1][2],0,a[2][0],a[2][1],a[2][2],0,0,0,0,1),c=vC.copy(d).transpose();this.shearScale.makeScale(s[0],s[1],s[2]).multiply(c).premultiply(d),this.shearScaleInv.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,c).copyPosition(this.matrixWorld),s.every(u=>Math.abs(s[0]-u)<.01)?this.hasNonUniformScale=!1:this.hasNonUniformScale=!0}attach(r,o){this.updateWorldMatrix(!0,!1);let i=new $r().copy(this.matrixWorld).invert();return r.parent!==null&&(r.parent.updateWorldMatrix(!0,!1),i.multiply(r.parent.matrixWorld)),"hiddenMatrix"in r&&r.hiddenMatrix instanceof $r?r.hiddenMatrix.premultiply(i):r.applyMatrix4(i),r.updateWorldMatrix(!1,!1),this.add(r),o!==void 0&&(this.children.pop(),this.children.splice(o,0,r)),this}copy(r,o=!1){return super.copy(r,o),this.hasNonUniformScale=r.hasNonUniformScale,this}onAfterRender(r,o,i,a,s,l){this.copyPreviousMatrix&&this.previousModelViewMatrix.copy(this.modelViewMatrix)}};var ed=class extends zi(bC){},SC=n=>n.type==="Mesh",wo=class extends ed{constructor(e){super();this.object=e;this.matrixAutoUpdate=!1,this.hasNonUniformScale=e.hasNonUniformScale}raycast(e,r){}expand(){let e=0,r=this.object.entityChildren(e);for(;r;){let o=this.children[e];o?.object!==r&&(o&&this.remove(o),o=new wo(r),this.add(o),this.children.splice(e,0,this.children.pop()),o.matrixWorldNeedsUpdate=!0,o.matrixAutoUpdate=!1,o.matrix=r.matrix,o.hiddenMatrix=r.hiddenMatrix),o.expand(),e+=1,r=this.object.entityChildren(e)}for(;this.children.length>e;)this.remove(this.children[e])}get visible(){return this.playModeVisible!==void 0?this.playModeVisible:this.object.visible||this.object.dataPatched.visible&&this.object.dataPatched.cloner?.hideBase===!0}set visible(e){}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return SC(this.object)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};import{Box3 as I2,BufferGeometry as N2,MeshBasicMaterial as E2}from"three";import{Matrix4 as O2,Mesh as M2}from"three";import{Matrix4 as ic,Vector3 as Uy,Euler as PC,MathUtils as ls}from"three";import{Box3 as wC,Line3 as _C,Matrix4 as td,Vector3 as ir}from"three";var Pn=new ir,On=new ir,ki=new td,jy=[new ir(-1,1,1),new ir(-1,-1,1),new ir(1,-1,1),new ir(1,1,1),new ir(-1,1,-1),new ir(-1,-1,-1),new ir(1,-1,-1),new ir(1,1,-1)],AC=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],TC=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],Fy=(n,t,e)=>{n.updateEntityBoxSize(Pn,On),ki.copy(t).multiply(n.matrixWorld),On.x===0&&On.y===0&&On.z===0?e.push(new ir(Pn.x,Pn.y,Pn.z).applyMatrix4(ki)):jy.forEach(r=>{e.push(r.clone().multiply(On).add(Pn).applyMatrix4(ki))})},ss=class extends wC{constructor(){super(...arguments);this.matrix=new td;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new td().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(a=>{if(a.visible||a.cloner&&a.data.visible){if(!("geometry"in a)){i.push(new ir);return}Fy(a,r,i)}}):Fy(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(ki.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(On).multiplyScalar(.5),this.getCenter(Pn),ki.copy(this.matrix).setPosition(Pn),this.vertices=jy.map(e=>e.clone().multiply(On).applyMatrix4(ki))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=AC.map(([e,r])=>new _C(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new ir))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=TC.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var wr={Cloner:()=>{},changeEntityProptotype:()=>{},createEntity:()=>{}};import{CurvePath as CC,CubicBezierCurve3 as rd,Vector3 as _r}from"three";var nd=class extends CC{constructor(){super()}getPoints(t=12){let e=[],r,o=this.getCurveLengths(),a=o[o.length-1]/o.length;for(let s=0,l=this.curves;s<l.length;s++){let d=l[s],c=s===0?o[s]:o[s]-o[s-1],u=Math.ceil(t*c/a),p=d.getPoints(u);for(let f=0;f<p.length;f++){let h=p[f];r&&r.equals(h)||(e.push(h),r=h)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}};var id=.001;function ad(n,t,e){return t.clone().sub(n).cross(t.clone().sub(e)).length()<=id}function od(n,t){let e=new _r(...n.position),r=new _r(...n.controlNext.position),o=new _r(...t.controlPrevious.position),i=new _r(...t.position);return ad(e,r,i)&&ad(e,o,i)}function nc(n){let t=n.points.map(c=>new _r(...c.data.position)),e=[n.points[0]],r=new _r(...e[0].data.position);for(let c=0;c<n.points.length-1;c++)ad(r,t[c],t[c+1])||(e.push(n.points[c]),r=t[c]);e.push(n.points[n.points.length-1]);let o=n.isClosed,i=e.length-(o?0:1),a=e.length,s=[];for(let c=0;c<a;c++){let u=e[c].data,p=new _r(...u.position),f=new _r(...u.controlPrevious.position),h=new _r(...u.controlNext.position),m={position:p,baseRoundness:u.roundness,controlPrevious:f,controlNext:h};if(u.roundness===0||!n.isClosed&&(c===0||c===a-1)){s[c]={...m,removedLength:0};continue}let y=o&&c==0?a-1:c-1,g=o&&c==a-1?0:c+1,x=e[y].data,S=e[g].data,w=new _r(...x.position),b=new _r(...S.position),_=w.clone().sub(p).normalize(),A=b.clone().sub(p).normalize();Object.assign(m,{prevDir:_,nextDir:A});let v=od(x,u),M=od(u,S);if(!v||!M)s[c]={...m,removedLength:0};else{let O=_.clone().add(A).normalize(),T=O.clone().cross(_).length()/_.dot(O);s[c]={...m,tan:T,removedLength:u.roundness/T}}}for(let c=0;c<i;c++){let u=c,p=o&&c===a-1?0:c+1,f=s[u],h=s[p];if(f.removedLength!==0||h.removedLength!==0){let m=f.position.distanceTo(h.position);f.removedLength=Math.min(f.removedLength,m/2),h.removedLength=Math.min(h.removedLength,m/2)}}let l=[];for(let c=0;c<i;c++){let u=c,p=o&&c===a-1?0:c+1,f=s[u],h=s[p],m=null;if(!od(e[u].data,e[p].data))f.position.distanceTo(h.position)>id&&(m=new rd(f.position,f.controlNext,h.controlPrevious,h.position));else{let y=f.position.clone(),g=h.position.clone();(f.removedLength!==0||h.removedLength!==0)&&(f.nextDir&&y.add(f.nextDir.clone().setLength(f.removedLength)),h.prevDir&&g.add(h.prevDir.clone().setLength(h.removedLength))),y.distanceTo(g)>id&&(m=new rd(y,y.clone().lerp(g,.3),g.clone().lerp(y,.3),g))}l[2*c+1]=m}for(let c=0;c<a;c++){let u=s[c];if(u.removedLength===0){l[2*c]=null;continue}let p=u.position,f=u.prevDir.clone().multiplyScalar(u.removedLength).add(p),h=u.nextDir.clone().multiplyScalar(u.removedLength).add(p),m=u.tan*u.removedLength,y=u.prevDir.clone().add(u.nextDir).normalize(),g=f.clone().lerp(h,.5),x=f.distanceTo(h)/2,S=y.clone().multiplyScalar(Math.sqrt(Math.pow(m,2)-Math.pow(x,2))).add(g),w=y.clone().multiplyScalar(-m).add(S),b=p.distanceTo(w)/p.distanceTo(g),_=u.prevDir.clone().multiplyScalar(b*p.distanceTo(f)).add(p),A=_.clone().lerp(w,2),v=f.clone().lerp(_,4/3),M=h.clone().lerp(A,4/3);l[2*c]=new rd(f,v,M,h)}let d=new nd;return l.forEach(c=>{c&&d.add(c)}),d}var Ae;(t=>{function n(e){return e&&e.__isEntity}t.is=n})(Ae||(Ae={}));var Fi=n=>Ae.is(n),OC={type:"completeState",isfromEntity:!0},MC=["x","y","z"],sd=new Uy,IC=new Uy().set(0,1,0),ji=n=>class extends zi(n){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.disposed=!1;this.stateSelection=null;this.destroyedInAction=!1;this.instances=[];this.prevState=null;this.currentState=null;this.reversibleToState=null;this.currentTransitionEvent=null;this.previousAction=null;this._singleBBox=new ss;this._recursiveBBox=new ss;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this._needApplyPathSnapping=!0;this.attachedPaths=new Set}get __isEntity(){return!0}entityChildren(r){let o=this.children[r];if(Ae.is(o))return o}entityChildrenCount(){let r=this.children.length;for(;r--;)if(Ae.is(this.children[r]))return r+1;return 0}get isConcreteEntity(){return typeof this.identity=="string"}get isVirtualEntity(){return typeof this.identity!="string"}get isInstanceRoot(){return this.isConcreteEntity&&this.data.type==="Instance"}nearestInstanceSelfOrParent(){let r=this;for(;r.data.type!=="Instance";){let o=r.parent;if(Ae.is(o))r=o;else return}return r}forInstancesRec(r){this.instances.forEach(o=>{o.disposed||r(o),o.forInstancesRec(r)})}super_Entity(r,o){typeof r=="string"&&(this.uuid=r),this.identity=r,this.data=o,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(r,o,i=!1){if(!(this.data.states.length===0&&!i)){for(let a of this.data.states)Cn.toOps(this.data,a.data).forEach(l=>{let d=Sl.replaceProps(l,this.data);this.dataPatched=this.data,this.updateByPatchedOp(d,this.data,o)});if(r!==null){let a=this.data.states.data(r);a&&(this.dataPatched=Cn.patch(this.data,a),Cn.toOps(this.data,a).forEach(l=>{this.updateByPatchedOp(l,this.dataPatched,o)}))}i&&this.updateTransformState(this.dataPatched,o),this.stateSelection=r,this.updatePathSnapping(this.dataPatched.pathSnapping)}}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}updateEntityBoxSize(r,o){r.setScalar(0),o.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(r=>{Fi(r)&&r.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(r=>{r.resetBBoxNeedsUpdateSelf()})}find(r){let o;return this.traverseEntity(i=>{i.uuid===r&&(o=i)}),o}traverseSortNextHelper(){let r=this.parent;if(r){let o=r.children,i=o.indexOf(this)+1;if(Ae.is(o[i]))return o[i];if(Ae.is(r))return r.traverseSortNextHelper()}}sortNext(){let r=this.children;return this.children.length>0&&Ae.is(this.children[0])?r[0]:this.traverseSortNextHelper()}goUp(r){let o=this;for(;r>0&&o!==null;)o=o.parent,r-=1;return o}hasAnccestorOrSelf(r){return this===r||this.hasAnccestor(r)}hasAnccestor(r){let o=this.parent;for(;o;){if(r===o)return!0;o=o.parent}return!1}countToAccestor(r){let o=0,i=this;for(;i!==r;){if(i===null)return-1;i=i.parent,o+=1}return o}forEachEntity(r){for(let o of this.children)Fi(o)&&r(o)}traverseEntityAncestors(r){this.traverseAncestors(o=>{Ae.is(o)&&r(o)})}traverseConcreteEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)Fi(a)&&a.isConcreteEntity&&a.traverseEntity(r,o+1)}traverseEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)Fi(a)&&a.traverseEntity(r,o+1)}traverseVisibleEntity(r){r(this);for(let o of this.children)Fi(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.cloner&&this.cloner.onObjUpdateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){super.updateMatrixWorld(r),this.dispatchEvent({type:"updateMatrixWorld"})}copy(r,o=!1){return super.copy(r,o),this.dataPatched=r.dataPatched,this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),this}hasEntityChild(){return this.children.some(r=>Fi(r))}isAncestorOf(r){if(this.uuid===r)return!1;let o=!1;return this.traverseEntity(i=>{i.uuid===r&&(o=!0)}),o}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x*ls.RAD2DEG,this.rotation.y*ls.RAD2DEG,this.rotation.z*ls.RAD2DEG],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return vi(o,r)}getTransformValues(r,o,i){return o[r].map((a,s)=>i?.shared.getVariable(a,[this.uuid,r,MC[s]])??a)}updateTransformState(r,o){let i=!1;return r.position&&(this.position.fromArray(this.getTransformValues("position",r,o)),i=!0),r.rotation&&(sd.fromArray(this.getTransformValues("rotation",r,o)).multiplyScalar(ls.DEG2RAD),this.rotation.setFromVector3(sd),i=!0),r.scale&&(this.scale.fromArray(this.getTransformValues("scale",r,o)),i=!0),r.hiddenMatrix!==void 0&&(i=!0,this.hiddenMatrix.fromArray(r.hiddenMatrix??jo.identity)),i&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(a=>{a.invalidateClonerTransform(this)})),r.position&&r.rotation&&r.scale&&r.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),i}onVariableUpdate(r=!1){if(r){this.resetBBoxNeedsUpdate();return}this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(o=>{o.invalidateClonerTransform(this)})}dispose(){this.disposed=!0,this.cloner&&(this.cloner.removeFromParent(),this.cloner=void 0)}disposeChildrenRecursively(){for(let r of this.children)Ae.is(r)&&r.disposeRecursively()}disposeRecursively(){this.dispose(),this.children.forEach(r=>{Ae.is(r)&&r.disposeRecursively()})}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return vi(o,r)}updateByObjUpdateOp(r,o){r!==void 0&&this.updateByOp({type:0,props:r,path:[]},{...this.data,...r},o,!1)}updateByOp(r,o,i,a){let s=this.data;this.data=o;let l=r,d=Dt(r.path,["states","*"]);if(d!==null){if(r.type===0){let[c]=d;if(this?.stateSelection===c){let u={...r.props};if(delete u.name,Object.values(r.props).some(p=>p===void 0)){let p=this.data;if(p!==void 0){let f=ot.zoom(p,r.path.slice(2));if(f)for(let h in r.props)r.props[h]===void 0&&h in f&&(u[h]=f[h])}}l={...r,props:u,path:r.path.slice(2)}}}}else if(r.type===0){let c=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(c!==void 0){if(r.props.name!==void 0&&c.name){let{name:p,...f}=c;c=f}if(r.props.material!==void 0&&"material"in c){let{material:p,...f}=c;c=f}let u=ot.removeOverridden(r.path,r.props,c);l={...r,props:u}}}if(this.updateByPatchedOpBase(l,Cn.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),i),Dt(r.path,["overrides"])){let c=[],u=[...r.path];for(c.push(u[1]),u.splice(0,2);u.length>0&&u[0]==="descendants";)c.push(u[1]),u.splice(0,2);if(c[c.length-1]===void 0){if(r.type===0)for(let p of Object.keys(r.props)){c[c.length-1]=p;let f=i.scene.findInstance([this.uuid,...c]);f&&(f.overrideData=r.props[p],f.updateState(Gr.apply(f.component.data,f.overrideData),i))}}else{let p=i.scene.findInstance([this.uuid,...c]);if(p){let f=ot.zoom(p.component.data,u);if(r={...r,path:u},r.type===0){let h=r.props;if(f)for(let[m,y]of Object.entries(r.props))y===void 0&&(h===r.props&&(h={...r.props}),h[m]=f[m]);r={...r,props:h}}p.overrideData=Ni.resolve(o.overrides,c),p.updateByOp(r,nt.applySimple(p.data,r),i,!1)}}}else if(this.instances.length>0){let c;if(r.path.length===0&&r.type===0){let u;for(let p of Hr.rootOverrideProps)p in r.props&&(u===void 0&&(u={}),u[p]=r.props[p]);u&&(c={...r,props:u})}else for(let u of Hr.rootOverrideProps)if(Dt(r.path,[u])){c=r;break}c!==void 0&&this.instances.forEach(u=>{if(u.isInstanceRoot){let p=Gr.filterOp(u.overrideData,c);p&&u.updateByOp(p,nt.applySimple(u.data,p),i,!0)}}),this.instances.forEach(u=>{if(!u.isInstanceRoot){let p=Gr.filterOp(u.overrideData,r);if(p){let f;s===u.data&&r===p?f=o:f=nt.applySimple(u.data,p),u.updateByOp(p,f,i,!0)}}})}}updateByPatchedOpBase(r,o,i){if(this.dataPatched=o,r.path.length===0&&r.type===0)r.props.type!==void 0&&!vr.is(r.props.type)&&wr.changeEntityProptotype(this,o,i);else if(r.path.length===1&&r.path[0]==="geometry"&&r.type===0&&"type"in r.props){wr.changeEntityProptotype(this,o,i);for(let a of this.children)Ae.is(a)&&a.updateVisible(i.scene)}this.updateByPatchedOp(r,o,i)}updateByPatchedOp(r,o,i){if(r.path.length===0&&r.type===0&&this.updateState(r.props,i),Dt(r.path,["pathSnapping"])!==null&&this.updatePathSnapping(o.pathSnapping),Dt(r.path,["cloner"])!==null){let a=nt.drop(r,1);a.path.length===0&&a.type===0&&a.props.disabled===!0?this.setFromClonerState(null,i):this.cloner?this.cloner.updateState(o.cloner,i.scene):(this.setFromClonerState(o.cloner,i),this.expandCloner(i.scene)),this.updateVisible(i.scene)}}updatePathSnapping(r=this.dataPatched.pathSnapping){this._updatedPathSnapping=r,this._needApplyPathSnapping=!0}get updatedPathSnapping(){return this._updatedPathSnapping}applyPathSnapping(r){let o=this._updatedPathSnapping?.pathId??this.dataPatched.pathSnapping.pathId,i=this._updatedPathSnapping?.slide??this.dataPatched.pathSnapping.slide??0,a=this._updatedPathSnapping?.offset??this.dataPatched.pathSnapping.offset??0,s=this._updatedPathSnapping?.orientation??this.dataPatched.pathSnapping.orientation;if(o===null)return;let l=r.find(o);if(!l||this._needApplyPathSnapping===!1)return;this._needApplyPathSnapping=!1;let d=l.data;if(d.geometry.path.points.length<=1)return;let c=nc(d.geometry.path),u=(i+a)%1;i+a===1&&u===0&&(u=1);let p=c.getPointAt(u);if(p===null)return;let f=this.parent?this.parent?.matrixWorld:new ic;l.updateMatrixWorld();let h=new ic().multiplyMatrices(f.clone().invert(),l.matrixWorld);p.applyMatrix4(h);let m={position:p.toArray(),rotation:d.rotation};if(s==="tangential"){let y=new ic().extractRotation(l.matrixWorld),g=c.getTangentAt(u).applyMatrix4(y).add(p),x=new ic().lookAt(p,g,IC),S=sd.setFromEuler(new PC().setFromRotationMatrix(x)).multiplyScalar(ls.RAD2DEG);m={...m,rotation:S.toArray()}}this.updateTransformState(m),this.traverseEntity(y=>{y._cameraType&&y.dispatchEvent(OC)})}updateVisible(r){if(this.visible=this.dataPatched.visible&&(!this.dataPatched.cloner||(this.dataPatched.cloner.disabled??!1)||this.dataPatched.cloner?.hideBase!==!0),!r)return;let o=!1;this.traverseEntity(i=>{if(i.data.type==="Splat")return o=!0,!0}),o&&r.reloadSplats()}updateState_Entity(r,o){r.name!==void 0&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.visible!==void 0&&(this.updateVisible(o?.scene),this.resetBBoxNeedsUpdate()),o&&"cloner"in r&&r.cloner!==void 0&&(this.setFromClonerState(r.cloner,o),this.updateVisible(o.scene)),this.updateTransformState(r,o)}get attachedSurfaceCloners(){return this.children.filter(r=>r instanceof wr.Cloner&&r.parameters.type==="toObject")}setFromClonerState(r,o){this.disposed||(r===null||r.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):this.cloner===void 0?(this.cloner=new wr.Cloner(this,r),o.scene.addPendingExpandCloner(this)):this.cloner.updateState(r,o.scene))}expandCloner(r){!this.disposed&&this.cloner&&this.cloner.expandClones(r)}invalidateClonerTransform(r){this.cloner&&this.cloner.invalidateTransform(r)}};import{BufferGeometry as LC,ConeGeometry as DC,Float32BufferAttribute as BC,MathUtils as RC}from"three";import{BufferGeometry as qy,CylinderGeometry as NC,Float32BufferAttribute as sc,MathUtils as EC,Vector2 as Ar,Vector3 as ac}from"three";var Wy=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:8,cornerSegments:8,hollow:0},n.parameters);e.thetaLength=EC.clamp(e.thetaLength,0,360);let r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,radiusTop:d,radiusBottom:c,cornerRadius:u,cornerSegments:p,hollow:f}=n.parameters,h;return l===0?(h=new qy,h.setAttribute("position",new sc([],3))):u||f?h=new cs(d,c,r,o,i,a,s,l*Math.PI/180,u,u,p,f):h=new NC(d,c,r,o,i,a,s,l*Math.PI/180),h.scale(1,1,e/t),Object.assign(h,{userData:{...n,type:"CylinderGeometry"}})}};function Qo(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Hy(n){return new Ar(n.y,-n.x)}var cs=class extends qy{constructor(t,e,r,o,i,a,s,l,d,c,u,p,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,a=a!==void 0?a:!1,s=s!==void 0?s:0,l=l!==void 0?l:Math.PI*2,a&&(d=0,c=0);let h=[],m=[],y=[],g=[],x=0,S=r/2,w=new ac,b=new ac;f&&t==0&&(t=d),f&&e==0&&(e=c);let _=new Ar(t,S),A=new Ar(e,-S),v=null,M=null,O=null,T=null,C=_.clone().sub(A),P=0,I=0,L=0;p>0&&(P=Math.min(t,e)*(1-p),I=t-P,L=e-P);let G=_.clone();G.x-=P;let N=Math.PI-C.angle(),F=C.angle(),B=Math.tan(F/2),R=Math.tan(N/2),V=B+R,q=p?V:R,Y=p?V:B;if(d=Math.min(d,(t-I)/q,C.length()/V),c=Math.min(c,(e-L)/Y,C.length()/V),d>0){let U=d/B;v=_.clone().sub(new Ar(U,d)),p&&(O=v.clone(),O.x-=P-V*d),_.sub(C.clone().setLength(U))}if(c>0){let U=c/R;M=A.clone().sub(new Ar(U,-c)),A.add(C.clone().setLength(U)),p&&(T=M.clone(),T.x-=P-V*c,G.sub(C.clone().setLength(U)))}C=_.clone().sub(A);let $=C.length()<.5,H=[];for(let U=0;U<=o;U++){let z=[],oe=U/o,ee=oe*l+s,Q=new Ar(Math.sin(ee),Math.cos(ee));T&&M?(X(z,oe,Q,N,c,T,-1,!0),X(z,oe,Q,F,c,M,-1,!1)):M?(k(z,Q,M.x,0,-1),X(z,oe,Q,F,c,M,-1,!1)):a||k(z,Q,e,L,-1);let te=Hy(C).normalize();if(Qo(te,Q,w),!$)for(let Z=0;Z<=i;Z++){let se=Z/i,ne=C.clone().multiplyScalar(se).add(A);Qo(ne,Q,b),m.push(b.x,b.y,b.z),y.push(w.x,w.y,w.z),g.push(oe,.5+b.y/r),z.push(x++)}if(O&&v?(X(z,oe,Q,N,d,v,1,!1),X(z,oe,Q,F,d,O,1,!0)):v?(X(z,oe,Q,N,d,v,1,!1),k(z,Q,v.x,0,1)):a||k(z,Q,t,I,1),p&&!$){let Z=Hy(C).multiplyScalar(-1).normalize();Qo(Z,Q,w);for(let se=0;se<=i;se++){let ne=se/i,ie=C.clone().multiplyScalar(-ne).add(G);Qo(ie,Q,b),m.push(b.x,b.y,b.z),y.push(w.x,w.y,w.z),g.push(oe,.5+b.y/r),z.push(x++)}}p&&!a&&z.push(z[0]),H.push(z)}for(let U=0;U<H.length-1;U++)for(let z=0;z<H[0].length-1;z++){if(a&&p&&z==i)continue;let oe=H[U][z],ee=H[U+1][z],Q=H[U+1][z+1],te=H[U][z+1],Z=m[Q*3+0],se=m[Q*3+2];h.push(oe,ee,te),(Z!=0||se!=0)&&h.push(ee,Q,te)}l<Math.PI*2&&(W(-1,H[0],s),W(1,H[H.length-1],s+l)),this.setIndex(h),this.setAttribute("position",new sc(m,3)),this.setAttribute("normal",new sc(y,3)),this.setAttribute("uv",new sc(g,2));function X(U,z,oe,ee,Q,te,Z,se){for(let ne=0;ne<u+1;ne++){let ie=ne/u,ue=Z<0?ie:1-ie;se&&(ue-=1),ue*=ee;let le=new Ar(Math.sin(ue),Math.cos(ue)*Z),de=le.clone().multiplyScalar(Q).add(te);Qo(de,oe,b),m.push(b.x,b.y,b.z),Qo(le,oe,w),y.push(w.x,w.y,w.z),g.push(z,.5+b.y/r),U.push(x++)}}function k(U,z,oe,ee,Q){let te=new ac,Z=new Ar,se=[oe,ee];Q<0&&se.reverse();for(let ne of se)Z.set(ne,S*Q),Qo(Z,z,te),m.push(te.x,te.y,te.z),y.push(0,Q,0),g.push(.5,.5),U.push(x++)}function W(U,z,oe){let ee=new Ar(Math.sin(oe),Math.cos(oe)),Q=new Ar(-Math.cos(oe),Math.sin(oe)),te=new ac,Z=U<0?(ie,ue,le)=>h.push(ie,ue,le):(ie,ue,le)=>h.push(ie,le,ue),se=new Ar((t+e+I+L)/4,0);Qo(se,ee,te),m.push(te.x,te.y,te.z),y.push(Q.x,0,Q.y),g.push(.5,.5);let ne=x++;for(let ie of z){let ue=m.slice(ie*3,ie*3+3);m.push(...ue),y.push(Q.x,0,Q.y);let le=g.slice(ie*2,ie*2+2);g.push(...le),x++}for(let ie=ne+1;ie<x-1;ie++)Z(ne,ie,ie+1);Z(ne,x-1,ne+1)}}};var $y=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:8,cornerRadiusBottom:8,cornerSegments:8},n.parameters);return e.thetaLength=RC.clamp(e.thetaLength,0,360),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,cornerRadiusTop:d,cornerRadiusBottom:c,cornerSegments:u}=n.parameters,p;return l===0?(p=new LC,p.setAttribute("position",new BC([],3))):d>0||c>0||l<360?p=new cs(0,t/2,r,o,i,a,s,l*Math.PI/180,d,c,u,0,!0):p=new DC(t/2,r,o,i,a),p.scale(1,1,e/t),Object.assign(p,{userData:{...n,type:"ConeGeometry"}})}};import{BoxGeometry as VC,BufferGeometry as GC,Float32BufferAttribute as ld,Vector3 as us}from"three";var Yy=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:8,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:a,cornerRadius:s,cornerSegments:l}=n.parameters,d;return s==0?d=new VC(t,e,r,o,i,a):d=new ud(t,e,r,o,i,a,s,l),Object.assign(d,{userData:{...n,type:"CubeGeometry"}})}},cd=Math.PI/2,ud=class extends GC{constructor(t=1,e=1,r=1,o=1,i=1,a=1,s=0,l=4){super(),this.type="BoxGeometry";let d=this;o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),s=Math.min(s,t/2,e/2,r/2);let c=[],u=[],p=[],f=[],h=0,m=0;y("z","y","x",-1,-1,r,e,t,a,i,0),y("z","y","x",1,-1,r,e,-t,a,i,1),y("x","z","y",1,1,t,r,e,o,a,2),y("x","z","y",1,-1,t,r,-e,o,a,3),y("x","y","z",1,-1,t,e,r,o,i,4),y("x","y","z",-1,-1,t,e,-r,o,i,5),s>0&&(g("z","y","x",-1,-1,1,r,e,t,a,0),g("z","y","x",1,-1,-1,r,e,t,a,1),g("z","y","x",-1,1,-1,r,e,t,a,1),g("z","y","x",1,1,1,r,e,t,a,0),g("x","y","z",-1,-1,-1,t,e,r,o,0),g("x","y","z",1,-1,1,t,e,r,o,1),g("x","y","z",-1,1,1,t,e,r,o,0),g("x","y","z",1,1,-1,t,e,r,o,1),g("y","x","z",-1,-1,1,e,t,r,i,0),g("y","x","z",1,-1,-1,e,t,r,i,1),g("y","x","z",1,1,1,e,t,r,i,1),g("y","x","z",-1,1,-1,e,t,r,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(c),this.setAttribute("position",new ld(u,3)),this.setAttribute("normal",new ld(p,3)),this.setAttribute("uv",new ld(f,2));function y(S,w,b,_,A,v,M,O,T,C,P){let I=(v-2*s)/T,L=(M-2*s)/C,G=v/2-s,N=M/2-s,F=O/2,B=T+1,R=C+1,V=0,q=0,Y=new us;for(let $=0;$<R;$++){let H=$*L-N;for(let X=0;X<B;X++){let k=X*I-G;Y[S]=k*_,Y[w]=H*A,Y[b]=F,u.push(Y.x,Y.y,Y.z),Y[S]=0,Y[w]=0,Y[b]=O>0?1:-1,p.push(Y.x,Y.y,Y.z),f.push(X/T),f.push(1-$/C),V+=1}}for(let $=0;$<C;$++)for(let H=0;H<T;H++){let X=h+H+B*$,k=h+H+B*($+1),W=h+(H+1)+B*($+1),U=h+(H+1)+B*$;c.push(X,k,U),c.push(k,W,U),q+=6}d.addGroup(m,q,P),m+=q,h+=V}function g(S,w,b,_,A,v,M,O,T,C,P){let I=(M-2*s)/C,L=M/2-s,G=O/2-s,N=T/2,F=C+1,B=0,R=0,V=new us,q=new us;for(let Y=0;Y<l+1;Y++){let $=Y/l*cd,H=Math.sin($)*s,X=(1-Math.cos($))*s,k=Math.sin($),W=Math.cos($);V[w]=(G+H)*A,V[b]=(N-X)*v,q[S]=0,q[w]=k*Math.sign(V[w]),q[b]=W*Math.sign(V[b]);for(let U=0;U<F;U++){let z=U*I-L;V[S]=z*_,u.push(V.x,V.y,V.z),p.push(q.x,q.y,q.z),f.push(U/C),f.push(0),B+=1}}for(let Y=0;Y<l;Y++)for(let $=0;$<C;$++){let H=h+$+F*Y,X=h+$+F*(Y+1),k=h+($+1)+F*(Y+1),W=h+($+1)+F*Y;c.push(H,X,W),c.push(X,k,W),R+=6}d.addGroup(m,R,P),m+=R,h+=B}function x(S,w,b){let _=new us,A=new us(t/2,e/2,r/2);A.subScalar(s);let v=[],M=S*w*b>0?(T,C,P)=>c.push(T,C,P):(T,C,P)=>c.push(T,P,C);for(let T=0;T<=l;T++){let C=[],P=cd*(1-T/l),I=Math.cos(P),L=Math.sin(P),G=0;for(let N=0;N<=T;N++){let F=Math.cos(G),B=Math.sin(G);_.x=I*F,_.y=L,_.z=I*B;let R=A.clone().addScaledVector(_,s);u.push(S*R.x,w*R.y,b*R.z),p.push(S*_.x,w*_.y,b*_.z),f.push(0,0),C.push(h++),G+=cd/T}v.push(C)}let O=v.length-1;for(let T=0;T<O;T++){let C=v[T],P=v[T+1],I=C.length-1;M(C[0],P[1],P[0]);for(let L=1;L<=I;L++)M(C[L-1],C[L],P[L]),M(C[L],P[L+1],P[L])}}}};import{BufferGeometry as zC,Float32BufferAttribute as dd,Triangle as kC,Vector3 as _o,Vector2 as pd}from"three";var Zo=class extends zC{constructor(t=[],e=[],r="",o=1,i=.2,a=4){super(),this.type="PolyhedronGeometryRound";let s=[],l=[],d=[];c(),u(),this.setAttribute("position",new dd(s,3)),this.setAttribute("normal",new dd(d,3)),this.setAttribute("uv",new dd(l,2));return;function c(){i=Math.min(1-1e-5,i),i==0&&(a=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],h=new _o,m=h.clone(),y=new kC,g=i*o,x=o-g,S=a+1,w=new _o,b=(B,R)=>w.subVectors(B,R).normalize(),_=(B,R)=>Array(B).fill(void 0).map(R),A=_(t.length/3,(B,R)=>new _o().fromArray(t,R*3).setLength(o)),v=[],M=1e6;for(let B=0;B<A.length;B++){let R=A[B],V=[],q,Y,$,H=1e10,X=-1;for(;(X=e.indexOf(B,X+1))!=-1;){let z=X-X%3;q=e[z+(X+1)%3],Y=e[z+(X+2)%3],$=R.distanceToSquared(A[q]),H=Math.min(H,$),V.push([q,Y,$])}H+=1e-6;let k=[],W=0,U=V.length;for(let z=0;z<U;z++){[q,Y,$]=V[W];let oe=v[q]?.includes(B)==!0;$<=H&&k.push(q+ +oe*M),W=V.findIndex(ee=>ee[0]==Y)}v.push(k)}let O=[];{let B=0,R=0,V,q,Y=f==3;for(let $=0;$<=a;$++){V=$*($+1)/2,q=($+1)*($+2)/2;for(let H=0;H<a-$;H++)[B,R]=[V+H+$+2,q+H+$+3],O.push(V,q,...Y?[R,V]:[B,q],R,B),[V,q]=[B,R];O.push(V,q,V+a+2)}}let T=h.clone(),C=h.clone(),P=h.clone(),I=h.clone(),L=h.clone(),G=[],N=_(A.length,()=>_(f,()=>h.clone()));for(let B=0;B<A.length;B++){h.copy(A[B]).normalize(),T.copy(h).multiplyScalar(x);let R=v[B];for(let k=0;k<R.length;k++){let W=R[k],U=R[(k+1)%f];y.setFromPointsAndIndices(A,B,W%M,U%M),y.b.sub(y.a).setLength(1e10).add(y.a),y.c.sub(y.a).setLength(1e10).add(y.a),y.closestPointToPoint(T,N[B][k])}let V=[],q=[],Y=[],$=new _o;a==0&&[...N[B]].reduce((k,W)=>k.add(W),$).multiplyScalar(1/f);for(let k=0;k<f;k++){let W=[],U=(k-1+f)%f,z=N[B][U],oe=N[B][k];h.copy(z).sub(T),m.copy(oe).sub(T);let ee=T.angleTo(h),Q=h.angleTo(m),te=Math.cos(ee)*g;a==0?C.copy($):C.copy(T).setLength(x+te),q.push(te);let Z=[C,z,oe];for(let se=0;se<2;se++){let ne=Z[se],ie=Z[se+1];I.subVectors(ne,T),L.subVectors(ie,T),P.crossVectors(I,L).normalize();for(let ue=0;ue<S;ue++){let le=[ee,Q][se]*ue/S;h.copy(I).applyAxisAngle(P,le).add(T),V.push(h.clone()),se&&(b(h,T),W.push([ue==0?ne:h.clone(),w.clone()]))}se&&(b(ie,T),W.push([ie,w.clone()]))}Y.push(W)}G.push(Y);let H=2*S,X=2;for(let k=0;k<f;k++){let W=H*k,U=H*((k+1)%f),z=[V[W]];for(let ee=1;ee<S;ee++){I=V[W+ee],L=V[U+ee],z.push(I);for(let Q=1,te=ee-X+1;Q<=te;Q++)h.lerpVectors(I,L,Q/(te+1)),h.sub(T).setLength(q[k]).add(T),z.push(h.clone());z.push(L)}for(let ee=0;ee<S;ee++)z.push(V[ee+S+W]);z.push(V[U+S]);let oe=O.map(ee=>z[ee]);s.push(...oe.map(ee=>[ee.x,ee.y,ee.z]).flat()),d.push(...oe.map(ee=>(b(ee,T),[w.x,w.y,w.z])).flat())}}let F=[];for(let B=0;B<v.length;B++)for(let R=0;R<f;R++){let V=v[B][R];if(V<M){let q=v[V].findIndex(H=>H%M==B),Y=G[B][R],$=G[V][q];for(let H=0;H<S;H++){let X=Y[H],k=$[S-H],W=Y[H+1],U=$[S-(H+1)];[X,k,W,W,k,U].forEach(z=>{s.push(z[0].x,z[0].y,z[0].z),d.push(z[1].x,z[1].y,z[1].z)})}F.push(Y[0][0],$[S][0],Y[S][0],$[0][0])}}for(;F.length;){let B,R,V,q;[B,R]=F.splice(0,2);let Y=[B];for(;B!=R;)Y.push(R),V=F.indexOf(R),q=V%2,R=F.splice(V-q,2)[1-q];w.subVectors(Y[0],Y[1]).cross(h.subVectors(Y[0],Y[2])).normalize();let $=w.dot(Y[0])<0;$&&w.negate();for(let H=1;H<=Y.length-2;H++)[Y[H+ +$],Y[H+1-+$],Y[0]].forEach(X=>{s.push(X.x,X.y,X.z),d.push(w.x,w.y,w.z)})}}function u(){let p=new _o;for(let A=0;A<s.length;A+=3){p.x=s[A+0],p.y=s[A+1],p.z=s[A+2];let v=b(p)/2/Math.PI+.5,M=_(p)/Math.PI+.5;l.push(v,1-M)}let f=new _o,h=new _o,m=new _o,y=new _o,g=new pd,x=new pd,S=new pd,w=(A,v,M,O)=>{O<0&&A.x===1&&(l[v]=A.x-1),M.x===0&&M.z===0&&(l[v]=O/2/Math.PI+.5)};for(let A=0,v=0;A<s.length;A+=9,v+=6){f.set(s[A+0],s[A+1],s[A+2]),h.set(s[A+3],s[A+4],s[A+5]),m.set(s[A+6],s[A+7],s[A+8]),g.set(l[v+0],l[v+1]),x.set(l[v+2],l[v+3]),S.set(l[v+4],l[v+5]),y.copy(f).add(h).add(m).divideScalar(3);let M=b(y);w(g,v+0,f,M),w(x,v+2,h,M),w(S,v+4,m,M)}for(let A=0;A<l.length;A+=6){let v=l[A+0],M=l[A+2],O=l[A+4],T=Math.max(v,M,O),C=Math.min(v,M,O);T>.9&&C<.1&&(v<.2&&(l[A+0]+=1),M<.2&&(l[A+2]+=1),O<.2&&(l[A+4]+=1))}function b(A){return Math.atan2(A.z,-A.x)}function _(A){return Math.atan2(-A.y,Math.sqrt(A.x*A.x+A.z*A.z))}}}static fromJSON(t){return new Zo(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};import{DodecahedronGeometry as FC}from"three";var Xy=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:a}=n.parameters,s=o===0&&i!==0?new ds(t*.5,i,a):new FC(t*.5,o);return s.scale(1,e/t,r/t),Object.assign(s,{userData:{...n,type:"DodecahedronGeometry"}})}},ds=class extends Zo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(a,s,l,t,e,r),this.type=l}static fromJSON(t){return new ds(t.radius,t.corner,t.cornerSides)}};import{Plane as ZC,Shape as ug,Vector2 as Ao,Vector3 as JC,MathUtils as vd,LineCurve as bd,QuadraticBezierCurve as dg,CubicBezierCurve as dc}from"three";import{CubicBezierCurve as lc,EllipseCurve as jC,LineCurve as cc,LineCurve3 as UC,MathUtils as HC,QuadraticBezierCurve as hd,SplineCurve as qC,Vector2 as Bt,Vector3 as Zy}from"three";var ps=1e-12,Ui=class{constructor(t){this.position=new Bt;this.startPosition=new Bt;this.uuid=HC.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new Ui(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Hi=class extends Ui{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Hi(this.parent).copy(this)}},Tr=class extends Ui{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Hi(this),new Hi(this))}static create(e,r){let o=new Tr(e,new Bt(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let a=this.controls[o];this.position.distanceTo(a.position)<=r?a.position.copy(this.position):a.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Tr(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new Bt,r=new Bt){let[o,i]=this.computeTangents();return o&&i&&(Ky(o,e),Ky(i,r)),[e,r]}computeTangent(e=new Bt){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new Bt){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Ky(n,t=new Bt){let e=n.length();return t.set(-n.y/e,n.x/e)}var md=n=>n,qi=new Bt,uc=new Bt,WC=new Bt,$C=new Bt,YC=new Bt,XC=new Bt,Jy=new Zy,eg=new Zy;function tg(n){let t=new Bt;t.addVectors(n.v0,qi.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new Bt;return e.addVectors(n.v2,uc.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new lc(n.v0,t,e,n.v2)}function fs(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function KC(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function QC(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function yd(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function rg(n,t,e){return Qy(n,t)&&Qy(t,e)&&fd(n.position,t.position,e.position)}function fd(n,t,e){return qi.copy(t).sub(n).cross(uc.copy(e).sub(n))===0}function og(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),a=(n.y+t.y)/2,s=(n.x+t.x)/2,l=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,d=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(s+l,a+d),o.set(s-l,a-d),[r,o]}function ng(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function ig(n,t,e,r,o,i){let a=t.x-n.x,s=t.y-n.y,l=e.x-n.x,d=e.y-n.y,c=Math.sqrt((a+l)*(a+l)+(s+d)*(s+d)),u;return yd(t,n,e)>Math.PI&&(c*=-1),fs(d,s)?u=(s+d)*(r/c-.5)*8/3/(a-l):u=(a+l)*(r/c-.5)*8/3/(d-s),o.set(t.x-u*s,t.y+u*a),i.set(e.x+u*d,e.y-u*l),[o,i]}function gd(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Qy(n,t){return fd(n.position,n.controls[1].position,t.position)&&fd(n.position,t.controls[0].position,t.position)}function ag(n,t,e,r,o=.5){let i=qi.subVectors(t,n).multiplyScalar(o).add(n),a=uc.subVectors(e,t).multiplyScalar(o).add(t),s=WC.subVectors(r,e).multiplyScalar(o).add(e),l=i,d=$C.subVectors(a,i).multiplyScalar(o).add(i),c=YC.subVectors(s,a).multiplyScalar(o).add(a),u=s,p=XC.subVectors(c,d).multiplyScalar(o).add(d);return[n.x,n.y,l.x,l.y,d.x,d.y,p.x,p.y,c.x,c.y,u.x,u.y,r.x,r.y]}function sg(n,t,e=12,r=!0){let o=eg.set(0,0,0),i,a=0,s=[];for(let l=0;l<t.length;l++){let d=md(t[l]),c=qi,u=Jo(d,e);s.push(u);for(let p=0;p<=u;p++)if(d instanceof lc||d instanceof hd||d instanceof cc){if(d.getPoint(p/u,c),o.set(c.x,c.y,0),i!==void 0&&QC(i,o))continue;i===void 0&&(i=Jy),i.copy(o),n.setXYZ(a,o.x,o.y,o.z),a++}}return r&&a>1&&!(n.getX(a-1)===n.getX(0)&&n.getY(a-1)===n.getY(0)&&n.getZ(a-1)===n.getZ(0))&&(n.setXYZ(a,n.getX(0),n.getY(0),n.getZ(0)),a++),n}function lg(n,t,e,r=12,o=!0){let i=eg.set(0,0,0),a=0,s=[];for(let l=0;l<t.length;l++){if(e[l]===!1)continue;let d,c=md(t[l]),u=qi,p=Jo(c,r);s.push(p);for(let f=0;f<=p;f++)if(c instanceof lc||c instanceof hd||c instanceof cc){if(c.getPoint(f/p,u),i.set(u.x,u.y,0),d?.equals(i))continue;d===void 0?d=Jy:(n.setXYZ(a,d.x,d.y,d.z),a++,n.setXYZ(a,i.x,i.y,i.z),a++),d.copy(i)}}return o&&a>1&&!(n.getX(a-1)===n.getX(0)&&n.getY(a-1)===n.getY(0)&&n.getZ(a-1)===n.getZ(0))&&(n.setXYZ(a,n.getX(0),n.getY(0),n.getZ(0)),a++),s}function xd(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let a=n[o],s=0;if(e&&a.roundedCurveCorner!==void 0){let l=Jo(a.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=l),s+=l}a.curveAfter!==void 0&&(s+=Jo(a.curveAfter,t)),r.push(s)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=Jo(n[0].roundedCurveCorner,t)*.5),r}function Jo(n,t=12){return n&&n instanceof jC?t*2:n&&(n instanceof cc||n instanceof UC)?1:n&&n instanceof qC?t*n.points.length:t}function cg(n,t,e=12,r=!0){let o,i=0;for(let a=0;a<t.length;a++){let s=md(t[a]),l=Jo(s,e),d=qi;for(let c=0;c<=l;c++)if(s instanceof lc||s instanceof hd||s instanceof cc){if(s.getPoint(c/l,d),o!==void 0&&KC(o,d,ps))continue;o===void 0&&(o=uc),o.copy(d),n.push(d.x,d.y),i++}}return fs(n[0],n[n.length-2],ps)&&fs(n[1],n[n.length-1],ps)&&(n.pop(),n.pop()),r&&i>1&&!(fs(n[i-1],n[1],ps)&&fs(n[i-2],n[0],ps))&&(n.push(n[0],n[1]),i++),n}var Sd=new Ao,eP=new Ao,tP=new Ao,rP=new Ao,oP=new Ao,nP=new Ao,Ne=class extends ug{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.plane=new ZC(new JC(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this.isText=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=vd.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new Ne;return i.isClosed=e.isClosed,i.points=e.points.map(a=>Tr.create(a.id,a.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(a=>Ne.createFromState(a)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let a=0,s=this.shapeHoles.length;a<s;a++){let l=this.shapeHoles[a],d=l.points.length,c=l.getPointIndexById(e);if(c<0)i+=d;else return c+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=e-r;if(s<=a.points.length-1)return a.points[s];r+=a.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=a.points.indexOf(e);if(s>=0)return r+s;r+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Sd.set(e,r);for(let i=0,a=this.points.length;i<a;i++){let s=this.points[i];s.position.multiply(o),s.controls[0].position.multiply(o),s.controls[1].position.multiply(o)}for(let i=0,a=this.shapeHoles.length;i<a;i++)this.shapeHoles[i].applyScale(e,r);this._update()}createPoint(e,r=0,o=vd.generateUUID()){let i;e instanceof Ao?i=e:i=new Ao(e,r);let a=new Tr(o,i);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let a=this.shapeHoles[r].getPointByUuid(e);if(a)return a}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(){for(let e=0,r=this.shapeHoles.length;e<r;e++)this.shapeHoles[e].update();this._update()}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return sg(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((a,s)=>a+s,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=xd(this.points,e,!1),this.roundedCurveDivisions=xd(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return lg(e,this.curves,r,o,this.autoClose).reduce((a,s)=>a+s,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),cg(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,a=0;r&&this.points[0].roundedCurveCorner!==void 0&&(a=Jo(this.points[0].roundedCurveCorner,this.subdivision)*.5);let s=e-a;s<0&&(s+=i.reduce((l,d)=>l+d,0));for(let l=0,d=i.length;l<d;l++){let c=i[l];if(s<o+c)return[l,(s-o+1)/c];o+=c}return[0,1]}getCurveT(e,r,o){let i=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],s=this.curveDivisions,l=s[e];if(gd(i,a)){let u=i.position.distanceTo(a.position);return i.position.distanceTo(Sd.set(o.x,o.y))/u}let d=0;for(let u=0;u<e;u++)d+=s[u];return(r-d)/l}dispose(){}_applyCurveForPoint(e,r){gd(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(r===0)this.moveTo(i.position.x,i.position.y);else{let a=this.points[r-1];this._applyCurveForPoint(i,a)}}let e=this.getLastPoint();if(e?.curveAfter&&(e.curveAfter=void 0),this.isClosed){let r=this.points[0],o=this.points[this.points.length-1];this._applyCurveForPoint(r,o)}if(this.points.length>2){let r=0;for(let o=0,i=this.points.length;o<i;o++){let a=this.points[o],s=this.points[o-1]??this.points[this.points.length-1],l=this.points[o+1]??this.points[0],d=a.roundness,c=s&&l&&rg(s,a,l);if(!a.controlsMoved()&&d>0&&!c){let u=a.curveBefore,p=a.curveAfter;if(u===void 0||p===void 0)continue;let f=a.roundedCurveBefore,h=a.roundedCurveAfter,m=u.getLength(),y=p.getLength(),g=Math.min(d,m*.499),x=Math.min(d,y*.499),S=Math.min(g,x),w=1-S/m,b=S/y,_=u.getPointAt(w,Sd),A=p.getPointAt(b,eP);this._subSplitCurve(u,f,w,_,void 0),this._subSplitCurve(p,h,b,void 0,A);let v;if(this.useCubicForRoundedCorners){let M=yd(_,a.position,A)/2,O=Math.tan(M)*_.distanceTo(a.position),[T,C]=og(_,A,O,tP,rP),P=ng(T,C,a.position),[I,L]=ig(P,_,A,O,oP,nP);v=new dc(_.clone(),I.clone(),L.clone(),A.clone())}else v=new dg(_.clone(),a.position.clone(),A.clone());a.roundedCurveCorner=v,this.roundedCurves.splice(o+r,0,v),r++}}}}_subSplitCurve(e,r,o,i,a){if(e instanceof bd)i!==void 0&&r.v2.copy(i),a!==void 0&&r.v1.copy(a);else{let s=e,l=r,d=s.getUtoTmapping(o,0),c=ag(s.v0,s.v1,s.v2,s.v3,d);return i!==void 0&&(l.v0.set(c[0],c[1]),l.v1.set(c[2],c[3]),l.v2.set(c[4],c[5]),l.v3.set(c[6],c[7])),a!==void 0&&(l.v0.set(c[6],c[7]),l.v1.set(c[8],c[9]),l.v2.set(c[10],c[11]),l.v3.set(c[12],c[13])),l}return r}clone(){let e=new Ne(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,a=e.points[i+0],s=e.points[i+1],l=e.points[i+2],d=e.points[i+3],c=e.points[i+4],u=e.points[i+5],p=e.points[i+6],f=new Tr(vd.generateUUID(),new Ao(a,s));f.controls[0].position.set(l,d),f.controls[1].position.set(c,u),f.roundness=p,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Ne;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e,r=!1){this.isText=r;let o=(a,s)=>{s instanceof dc&&s.v3.equals(a.position)&&a.controls[0].position.copy(s.v2)},i=a=>{let s=[],l,d;for(l=0,d=a.length;l<d;l++)a[l]instanceof dg&&(a[l]=tg(a[l]));for(l=0,d=a.length;l<d;l++){let p=a[l],f=l>0?a[l-1]:null,h;p instanceof dc?(h=this.createPoint(p.v0),h.controls[1].position.copy(p.v1)):p instanceof bd&&(h=this.createPoint(p.v1)),h!==void 0&&(f!==null&&o(h,f),s.push(h))}let c=a[a.length-1],u=!1;return c instanceof dc?c.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(c.v2),u=!0):c instanceof bd&&c.v2.equals(s[0].position)&&(u=!0),this.isClosed=u,s};return this.points=i(e.curves),e instanceof ug&&(this.shapeHoles=e.holes.map(a=>{let s=new Ne;return s.fromShape(a),s})),this.update(),this}updatePoint(e,r){let o=this.getPointByUuid(e);o&&(r.position!==void 0&&o.position.fromArray(r.position),r.roundness!==void 0&&(o.roundness=r.roundness),r.areControlsDirectionsMirrored!==void 0&&(o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(e,r){let i=this.getPointByUuid(e)?.controls[0];i&&(r.position&&i.position.fromArray(r.position),this.needsUpdate=!0)}updateNextControl(e,r){let i=this.getPointByUuid(e)?.controls[1];i&&(r.position&&i.position.fromArray(r.position),this.needsUpdate=!0)}};var _d=Math.PI*2;function wd({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function iP(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),a=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+a*e,y:a-i*e},{x:i,y:a}]}function pg(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function aP(n,t,e,r,o,i,a,s,l,d){let c=Math.pow(o,2),u=Math.pow(i,2),p=Math.pow(a,2),f=Math.pow(s,2),h=c*u-c*f-u*p;h<0&&(h=0),h/=c*f+u*p,h=Math.sqrt(h)*(l===d?-1:1);let m=h*o/i*s,y=h*-i/o*a,g=m+(n+e)/2,x=y+(t+r)/2,S=(a-m)/o,w=(s-y)/i,b=(-a-m)/o,_=(-s-y)/i,A=pg(1,0,S,w),v=pg(S,w,b,_);return!d&&v>0&&(v-=_d),d&&v<0&&(v+=_d),{centerx:g,centery:x,ang1:A,ang2:v}}function fg({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:a,sweepFlag:s}){let l=[];if(o===0||i===0)return[];let d=(n-e)/2,c=(t-r)/2;if(d===0&&c===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(d,2)/Math.pow(o,2)+Math.pow(c,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let p=aP(n,t,e,r,o,i,d,c,a,s),{ang1:f,ang2:h}=p,{centerx:m,centery:y}=p,g=Math.abs(h)/(_d/4);Math.abs(1-g)<1e-7&&(g=1);let x=Math.max(Math.ceil(g),1);h/=x;for(let S=0;S<x;S++)l.push(iP(f,h)),f+=h;return l.map(S=>{let{x:w,y:b}=wd(S[0],o,i,m,y),{x:_,y:A}=wd(S[1],o,i,m,y),{x:v,y:M}=wd(S[2],o,i,m,y);return{x1:w,y1:b,x2:_,y2:A,x:v,y:M}})}import{BufferAttribute as yc,BufferGeometry as xP}from"three";var Pe;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Pe||(Pe={}));var Xe;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Xe||(Xe={}));function me(n,t){if(!n)throw t||"Assertion Failed!"}var pe=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){me(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){me(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){me(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){me(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var a,s,l;n.vertLeq(t,e)||(l=t,t=e,e=l),n.vertLeq(r,o)||(l=r,r=o,o=l),n.vertLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),n.vertLeq(r,e)?n.vertLeq(e,o)?(a=n.edgeEval(t,r,e),s=n.edgeEval(r,e,o),a+s<0&&(a=-a,s=-s),i.s=n.interpolate(a,r.s,s,e.s)):(a=n.edgeSign(t,r,e),s=-n.edgeSign(t,o,e),a+s<0&&(a=-a,s=-s),i.s=n.interpolate(a,r.s,s,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(l=t,t=e,e=l),n.transLeq(r,o)||(l=r,r=o,o=l),n.transLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),n.transLeq(r,e)?n.transLeq(e,o)?(a=n.transEval(t,r,e),s=n.transEval(r,e,o),a+s<0&&(a=-a,s=-s),i.t=n.interpolate(a,r.t,s,e.t)):(a=n.transSign(t,r,e),s=-n.transSign(t,o,e),a+s<0&&(a=-a,s=-s),i.t=n.interpolate(a,r.t,s,o.t)):i.t=(r.t+e.t)/2},n}(),hs=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),pc=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),Wi=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),hg=function(){function n(){var t=new Wi,e=new hs,r=new pc(0),o=new pc(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new pc(0),r=new pc(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;me(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var a=e;do a.Org=o,a=a.Onext;while(a!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;me(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var a=e;do a.Lface=o,a=a.Lnext;while(a!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,a=t.next;a.prev=i,i.next=a},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,a=t.next;a.prev=i,i.next=a},n.prototype.makeEdge=function(){var t=new Wi,e=new Wi,r=new hs,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new Wi;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var a=new hs;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new hs;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new Wi;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var a=new hs;this.makeFace_(a,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,a,s;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);a=t.prev,s=t.next,s.prev=a,a.next=s},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,a,s,l;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,a=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(s=this.countFaceVerts_(e),l=this.countFaceVerts_(i.Lface),s+l-2<=t&&pe.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&pe.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===a);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,a,s,l,d;for(i=t,i=t;(o=i.next)!==t;i=o){me(o.prev===i),l=o.anEdge;do me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l),me(l.Lface===o),l=l.Lnext;while(l!==o.anEdge)}for(me(o.prev===i&&o.anEdge===null),s=e,s=e;(a=s.next)!==e;s=a){me(a.prev===s),l=a.anEdge;do me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l),me(l.Org===a),l=l.Onext;while(l!==a.anEdge)}for(me(a.prev===s&&a.anEdge===null),d=r,d=r;(l=d.next)!==r;d=l)me(l.Sym.next===d.Sym),me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Org!==null),me(l.Dst!==null),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l);me(l.Sym.next===d.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},n}(),mg=function(){function n(){this.handle=null}return n}(),yg=function(){function n(){this.key=null,this.node=0}return n}(),sP=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new mg,this.handles[r]=new yg;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(r[e[a+1].handle].key,r[e[a].handle].key)&&++a,me(a<=this.max),i=e[a].handle,a>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=a}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t>>1,i=e[a].handle,a===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=a}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new mg;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new yg}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;me(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},n}(),Ad=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),gg=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),lP=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new gg,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new gg;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),cP=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,a=r.eUp;if(i.Dst===o)return a.Dst===o?pe.vertLeq(i.Org,a.Org)?pe.edgeSign(a.Dst,i.Org,a.Org)<=0:pe.edgeSign(i.Dst,a.Org,i.Org)>=0:pe.edgeSign(a.Dst,o,a.Org)<=0;if(a.Dst===o)return pe.edgeSign(i.Dst,o,i.Org)>=0;var s=pe.edgeEval(i.Dst,o,i.Org),l=pe.edgeEval(a.Dst,o,a.Org);return s>=l},n.deleteRegion=function(t,e){e.fixUpperEdge&&me(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){me(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Ad;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case Pe.ODD:return(e&1)!==0;case Pe.NONZERO:return e!==0;case Pe.POSITIVE:return e>0;case Pe.NEGATIVE:return e<0;case Pe.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,a=e,s=e.eUp;a!==r;){if(a.fixUpperEdge=!1,i=n.regionBelow(a),o=i.eUp,o.Org!=s.Org){if(!i.fixUpperEdge){n.finishRegion(t,a);break}o=t.mesh.connect(s.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}s.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(s,o)),n.finishRegion(t,a),s=i.eUp,a=i}return s},n.addRightEdges=function(t,e,r,o,i,a){var s,l,d,c,u=!0;d=r;do me(pe.vertLeq(d.Org,d.Dst)),n.addRegionBelow(t,e,d.Sym),d=d.Onext;while(d!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),l=e,c=i;s=n.regionBelow(l),d=s.eUp.Sym,d.Org===c.Org;)d.Onext!==c&&(t.mesh.splice(d.Oprev,d),t.mesh.splice(c.Oprev,d)),s.windingNumber=l.windingNumber-d.winding,s.inside=n.isWindingInside(t,s.windingNumber),l.dirty=!0,!u&&n.checkForRightSplice(t,l)&&(n.addWinding(d,c),n.deleteRegion(t,l),t.mesh.delete(c)),u=!1,l=s,c=d;l.dirty=!0,me(l.windingNumber-d.winding===s.windingNumber),a&&n.walkDirtyRegions(t,l)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=pe.vertL1dist(e,t),i=pe.vertL1dist(r,t),a=.5*i/(o+i),s=.5*o/(o+i);t.coords[0]+=a*e.coords[0]+s*r.coords[0],t.coords[1]+=a*e.coords[1]+s*r.coords[1],t.coords[2]+=a*e.coords[2]+s*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,a)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(pe.vertLeq(o.Org,i.Org)){if(pe.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;pe.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(pe.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,a;if(me(!pe.vertEq(o.Dst,i.Dst)),pe.vertLeq(o.Dst,i.Dst)){if(pe.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,a),a.Lface.inside=e.inside}else{if(pe.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,a=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),a.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,a=o.Org,s=i.Org,l=o.Dst,d=i.Dst,c,u,p=new Wi,f,h;if(me(!pe.vertEq(d,l)),me(pe.edgeSign(l,t.event,a)<=0),me(pe.edgeSign(d,t.event,s)>=0),me(a!==t.event&&s!==t.event),me(!e.fixUpperEdge&&!r.fixUpperEdge),a===s||(c=Math.min(a.t,l.t),u=Math.max(s.t,d.t),c>u))return!1;if(pe.vertLeq(a,s)){if(pe.edgeSign(d,a,s)>0)return!1}else if(pe.edgeSign(l,s,a)<0)return!1;return n.debugEvent(t),pe.intersect(l,a,d,s,p),me(Math.min(a.t,l.t)<=p.t),me(p.t<=Math.max(s.t,d.t)),me(Math.min(d.s,l.s)<=p.s),me(p.s<=Math.max(s.s,a.s)),pe.vertLeq(p,t.event)&&(p.s=t.event.s,p.t=t.event.t),f=pe.vertLeq(a,s)?a:s,pe.vertLeq(f,p)&&(p.s=f.s,p.t=f.t),pe.vertEq(p,a)||pe.vertEq(p,s)?(n.checkForRightSplice(t,e),!1):!pe.vertEq(l,t.event)&&pe.edgeSign(l,t.event,p)>=0||!pe.vertEq(d,t.event)&&pe.edgeSign(d,t.event,p)<=0?d===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):l===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),h=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,h,!0),!0):(pe.edgeSign(l,t.event,p)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),pe.edgeSign(d,t.event,p)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=p.s,o.Org.t=p.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,a,l,s,d),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,a=n.regionBelow(e),s=e.eUp,l=a.eUp,d=!1;if(s.Dst!==l.Dst&&n.checkForIntersect(t,e),pe.vertEq(s.Org,t.event)&&(t.mesh.splice(i.Oprev,s),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),a),d=!0),pe.vertEq(l.Org,t.event)&&(t.mesh.splice(r,l.Oprev),r=n.finishLeftRegions(t,a,null),d=!0),d){n.addRightEdges(t,e,r.Onext,i,i,!0);return}pe.vertLeq(l.Org,s.Org)?o=l.Oprev:o=s,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,a,s,l;if(o=e.eUp,pe.vertEq(o.Org,r)){me(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!pe.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}me(!1),e=n.topRightRegion(e),l=n.regionBelow(e),a=l.eUp.Sym,i=s=a.Onext,l.fixUpperEdge&&(me(i!==a),n.deleteRegion(t,l),t.mesh.delete(a),a=i.Oprev),t.mesh.splice(r.anEdge,a),pe.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,a.Onext,s,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,a,s,l,d=new Ad;if(d.eUp=e.anEdge.Sym,r=t.dict.search(d).key,o=n.regionBelow(r),!!o){if(a=r.eUp,s=o.eUp,pe.edgeSign(a.Dst,e,a.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=pe.vertLeq(s.Dst,a.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)l=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var c=t.mesh.connect(s.Dnext,e.anEdge);l=c.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,l):n.computeWinding(t,n.addRegionBelow(t,r,l)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);me(o!==null);var i=n.regionBelow(o),a=i.eUp,s=n.finishLeftRegions(t,i,null);s.Onext===a?n.connectRightVertex(t,o,s):n.addRightEdges(t,o,s.Onext,a,a,!0)},n.addSentinel=function(t,e,r,o){var i=new Ad,a=t.mesh.makeEdge();a.Org.s=r,a.Org.t=o,a.Dst.s=e,a.Dst.t=o,t.event=a.Dst,i.eUp=a,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new lP(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,a=t.bmin[1]-r,s=t.bmax[1]+r;n.addSentinel(t,o,i,a),n.addSentinel(t,o,i,s)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(me(e.fixUpperEdge),me(++r===1)),me(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,pe.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new sP(i,pe.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,me(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!pe.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),uP=function(){function n(){this.mesh=new hg,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Pe.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,a,s,l=[0,0,0],d=[0,0,0],c=[0,0,0],u=[0,0,0],p=[0,0,0],f=[null,null,null],h=[null,null,null],m=this.mesh.vHead;e=m.next;for(var y=0;y<3;++y)i=e.coords[y],d[y]=i,h[y]=e,l[y]=i,f[y]=e;for(e=m.next;e!==m;e=e.next)for(var g=0;g<3;++g)i=e.coords[g],i<d[g]&&(d[g]=i,h[g]=e),i>l[g]&&(l[g]=i,f[g]=e);var x=0;if(l[1]-d[1]>l[0]-d[0]&&(x=1),l[2]-d[2]>l[x]-d[x]&&(x=2),d[x]>=l[x]){t[0]=0,t[1]=0,t[2]=1;return}for(s=0,r=h[x],o=f[x],c[0]=r.coords[0]-o.coords[0],c[1]=r.coords[1]-o.coords[1],c[2]=r.coords[2]-o.coords[2],e=m.next;e!==m;e=e.next)u[0]=e.coords[0]-o.coords[0],u[1]=e.coords[1]-o.coords[1],u[2]=e.coords[2]-o.coords[2],p[0]=c[1]*u[2]-c[2]*u[1],p[1]=c[2]*u[0]-c[0]*u[2],p[2]=c[0]*u[1]-c[1]*u[0],a=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],a>s&&(s=a,t[0]=p[0],t[1]=p[1],t[2]=p[2]);s<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(c)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,a=t.next;a!==t;a=a.next)if(o=a.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==a.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var a=this.longAxis_(e);r[a]=0,r[(a+1)%3]=1,r[(a+2)%3]=0,o[a]=0,o[(a+1)%3]=0,o[(a+2)%3]=e[a]>0?1:-1;for(var s=t.next;s!==t;s=s.next)s.s=this.dot_(s.coords,r),s.t=this.dot_(s.coords,o);i&&this.checkOrientation_();for(var l=!0,d=t.next;d!==t;d=d.next)l?(this.bmin[0]=this.bmax[0]=d.s,this.bmin[1]=this.bmax[1]=d.t,l=!1):(d.s<this.bmin[0]&&(this.bmin[0]=d.s),d.s>this.bmax[0]&&(this.bmax[0]=d.s),d.t<this.bmin[1]&&(this.bmin[1]=d.t),d.t>this.bmax[1]&&(this.bmax[1]=d.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;pe.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;pe.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(pe.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(pe.edgeGoesLeft(o.Lnext)||pe.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(pe.edgeGoesRight(r.Lprev)||pe.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,a=0,s=0,l;r>3&&t.mergeConvexFaces(r);for(var d=t.vHead.next;d!==t.vHead;d=d.next)d.n=-1;for(var c=t.fHead.next;c!==t.fHead;c=c.next)if(c.n=-1,!!c.inside){i=c.anEdge,l=0;do{var d=i.Org;d.n===-1&&(d.n=s,s++),l++,i=i.Lnext}while(i!==c.anEdge);if(l>r)throw"Face vertex greater that support polygon";c.n=a,++a}this.elementCount=a,e===Xe.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*r,this.vertexCount=s,this.vertices=[],this.vertices.length=s*o,this.vertexIndices=[],this.vertexIndices.length=s;for(var d=t.vHead.next;d!==t.vHead;d=d.next)if(d.n!==-1){var u=d.n*o;this.vertices[u+0]=d.coords[0],this.vertices[u+1]=d.coords[1],o>2&&(this.vertices[u+2]=d.coords[2]),this.vertexIndices[d.n]=d.idx}for(var p=0,c=t.fHead.next;c!==t.fHead;c=c.next)if(!!c.inside){i=c.anEdge,l=0;do{var d=i.Org;this.elements[p++]=d.n,l++,i=i.Lnext}while(i!==c.anEdge);for(var f=l;f<r;++f)this.elements[p++]=-1;if(e===Xe.CONNECTED_POLYGONS){i=c.anEdge;do this.elements[p++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==c.anEdge);for(var h=l;h<r;++h)this.elements[p++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,a=0;this.vertexCount=0,this.elementCount=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){o=r=s.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,d=0,c=0;i=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){a=0,o=r=s.anEdge;do this.vertices[l++]=r.Org.coords[0],this.vertices[l++]=r.Org.coords[1],e>2&&(this.vertices[l++]=r.Org.coords[2]),this.vertexIndices[d++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,a++,r=r.Lnext;while(r!==o);this.elements[c++]=i,this.elements[c++]=a,i+=a}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new hg),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,a){if(t===void 0&&(t=Pe.ODD),e===void 0&&(e=Xe.POLYGONS),a===void 0&&(a=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),cP.computeInterior(this,a);var s=this.mesh;return e===Xe.BOUNDARY_CONTOURS?this.setWindingNumber_(s,1,!0):this.tessellateInterior_(s),a&&s.check(),e===Xe.BOUNDARY_CONTOURS?this.outputContours_(s,o):this.outputPolymesh_(s,e,r,o),!0},n}();function Cr(n){var t=n.windingRule,e=t===void 0?Pe.ODD:t,r=n.elementType,o=r===void 0?Xe.POLYGONS:r,i=n.polySize,a=i===void 0?3:i,s=n.vertexSize,l=s===void 0?2:s,d=n.normal,c=d===void 0?[0,0,1]:d,u=n.contours,p=u===void 0?[]:u,f=n.strict,h=f===void 0?!0:f,m=n.debug,y=m===void 0?!1:m;if(!p&&h)throw new Error("Contours can't be empty");if(!!p){var g=new uP;n.edgeCreateCallback&&(g.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(g.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<p.length;x++)g.addContour(l||2,p[x]);return g.tesselate(e,o,a,l,c,h),{vertices:g.vertices,vertexIndices:g.vertexIndices,vertexCount:g.vertexCount,elements:g.elements,elementCount:g.elementCount,mesh:y?g.mesh:void 0}}}var Q4=Pe.ODD,Z4=Pe.NONZERO,J4=Pe.POSITIVE,e5=Pe.NEGATIVE,t5=Pe.ABS_GEQ_TWO,r5=Xe.POLYGONS,o5=Xe.CONNECTED_POLYGONS,n5=Xe.BOUNDARY_CONTOURS;import{Box2 as mP,BufferAttribute as mc,BufferGeometry as yP,Vector2 as gP}from"three";var fc=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*fc.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*fc.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,a=0,s=new Float32Array(o,a*i,3*t);a+=3*t;let l=new Float32Array(o,a*i,3*t);a+=3*t;let d=new Float32Array(o,a*i,2*t);e?(s.set(this.positions.subarray(0,this.size*3)),l.set(this.normals.subarray(0,this.size*3)),d.set(this.uvs.subarray(0,this.size*2))):(s.set(this.positions),l.set(this.normals),d.set(this.uvs)),this.buffer=o,this.positions=s,this.normals=l,this.uvs=d,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},ms=fc;ms.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Sg=Rt(bg()),ys={vertices:[160,160,-160,160,-160,-160,160,-160],vertexIndices:[1,0,3,2],vertexCount:4,elements:[0,4],elementCount:1,mesh:void 0},Md={vertices:[],vertexIndices:[],vertexCount:0,elements:[],elementCount:0,mesh:void 0},Id={vertices:[-160,160,160,-160,160,160,-160,-160],vertexIndices:[1,3,0,2],vertexCount:4,elements:[0,1,2,1,0,3],elementCount:2,mesh:void 0},Od=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),tn=class extends yP{constructor(e,r,o=0,i=12,a=3,s=Pe.ODD,l=!1){super();this.forPathBevel=l;this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._curveSegments=i,this._bevelSegmentsInput=a;let d=this._shape.extractShapePointsToFlatArray([],i),c=this._shape.shapeHoles.map(T=>{let C=T.extractShapePointsToFlatArray([],i),P=[];for(let I=C.length-1;I>=1;I-=2){let L=C[I-1],G=C[I-0];P.push(L,G)}return P}),u=[],p=[];for(let T=0;T<d.length;T+=2)p.push([d[T],d[T+1]]);u.push(p);for(let T=0;T<c.length;T++){let C=c[T],P=[];for(let I=0;I<C.length;I+=2)P.push([C[I],C[I+1]]);u.push(P)}let f;e.isText?f=new mP().setFromPoints(e.points.map(C=>C.position)).getSize(new gP).length()*.1:u[0].length===0?f=o:f=(0,Sg.default)(u).distance,o<=0?(this._bevel=0,this._bevelSegments=0):(this._bevel=Math.min(o,f,r/2),this._bevelSegments=Math.floor(a));let h;try{h=Cr({windingRule:s,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[d]})}catch{h=ys}let m;try{m=Cr({windingRule:Pe.ODD,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]})}catch{m=Md}if(!h)throw new Error("error generating geometry");let y=h.elementCount;if(m){h.elementCount+=m.elementCount;for(let T=0;T<m.elements.length;T++){let C=m.elements[T],P=T%2===0?h.vertexCount:0;h.elements.push(C+P)}for(let T=0;T<m.vertexIndices.length;T++){let C=m.vertexIndices[T],P=h.vertexCount;h.vertexIndices.push(C+P)}for(let T=0;T<m.vertices.length;T++){let C=m.vertices[T];h.vertices.push(C)}}let g=1/0,x=-1/0,S=1/0,w=-1/0;for(let T=0,C=h.vertexCount;T<C;T++){let P=T*2,I=h.vertices[P+0],L=h.vertices[P+1];I<g&&(g=I),I>x&&(x=I),L<S&&(S=L),L>w&&(w=L)}this._minX=g,this._minY=S,this._width=x-g,this._height=w-S,this._buffer=new ms(this._computeBufferEstimatedSize(h));let b=[],_=[];for(let T=h.elementCount-1;T>=0;T--){let C=T>=y,P=T*2,I=h.elements[P+0],L=h.elements[P+1],G=I+L,N={start:I,count:L,normals:[],continuous:[],concave:[]},F=I,B=G-1,R=I+1,V=this._shape.roundedCurves.length;do{let X=F-I,k=h.vertices[B*2+0],W=h.vertices[B*2+1],U=h.vertices[F*2+0],z=h.vertices[F*2+1],oe=h.vertices[R*2+0],ee=h.vertices[R*2+1],Q=U-k,te=z-W,Z=Math.sqrt(Q*Q+te*te);Q/=Z,te/=Z;let se=U-oe,ne=z-ee,ie=Math.sqrt(se*se+ne*ne);se/=ie,ne/=ie,N.normals[X*2+0]=-ne,N.normals[X*2+1]=se,N.concave[X]=Q*ne-te*se>0;let ue=h.vertexIndices[F];if(Array.isArray(ue))N.continuous[X]=!1;else{let[le,de]=this._shape.getCurveIndexFromVertexId(ue-1,!0);if(de>0&&de<1)N.continuous[X]=!0;else{let ge=de===1?le+1:le-1;ge=(ge+V)%V;let Oe=de===1?0:1,He=this._shape.roundedCurves[le].getTangent(de),Me=this._shape.roundedCurves[ge].getTangent(Oe);N.continuous[X]=He.dot(Me)>.95}}C&&(N.normals[X*2+0]*=-1,N.normals[X*2+1]*=-1),[B,F,R]=[F,R,R+1],R>=G&&(R-=L)}while(R!==I+1);let q=[];q.push({bevelI:0,angle:0,size:0,boundary:{vertices:h.vertices.slice(I*2,G*2),vertexCount:L,vertexIndices:new Array(L).fill(!0).map((X,k)=>[k,k]),elements:[0,L],elementCount:1,mesh:null},reverseMap:[],insetPoints:h.vertices.slice(I*2,G*2)});let Y=0;for(let X=1;X<=this._bevelSegments;X++){let k=X/this._bevelSegments*Math.PI/2,W=(1-Math.cos(k))*this._bevel,U=[],z=[],oe=[],ee=[],Q=0;for(let Z=0;Z<L;Z++){let se=Z*2,ne=(Z-1+L)%L*2,ie=h.vertices[N.start*2+se+0],ue=h.vertices[N.start*2+se+1],le=-N.normals[ne+0]*W,de=-N.normals[ne+1]*W,ge=-N.normals[se+0]*W,Oe=-N.normals[se+1]*W;if(N.concave[Z]||!N.concave[Z]&&C){let He=Math.atan2(de,le),Me=Math.atan2(Oe,ge);Me>He&&(Me-=Math.PI*2);let Ge=Me-He;if(N.continuous[Z]||C){let Ut=He+Ge/2,Se=Math.cos(Ut)*W,ut=Math.sin(Ut)*W;U[2*Q+0]=ie+Se*(C?-1:1),U[2*Q+1]=ue+ut*(C?-1:1),ee[Q]=Z,Q++}else{let Ut=Math.max(1,Math.floor(i/4*Math.abs(Ge)/Math.PI));for(let Se=0;Se<=Ut;Se++){let ut=He+Ge*(Se/Ut),mt=Math.cos(ut)*W,Qn=Math.sin(ut)*W;U[2*Q+0]=ie+mt,U[2*Q+1]=ue+Qn,ee[Q]=Z,Q++}}}else U[2*Q+0]=ie+le,U[2*Q+1]=ue+de,ee[Q]=Z,z[Z]=Q,Q++,U[2*Q+0]=ie,U[2*Q+1]=ue,ee[Q]=Z,Q++,U[2*Q+0]=ie+ge,U[2*Q+1]=ue+Oe,ee[Q]=Z,oe[Z]=Q,Q++}let te=Cr({windingRule:Pe.POSITIVE,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[U],edgeCreateCallback:Z=>{let ne=Z.Org.idx,ie=ee[ne],ue=ee[(ne+1)%ee.length];Z.idx=[ie,ue],Z.Sym.idx=[ue,ie]},vertexIdCallback:Z=>{let se=Z.Lprev.idx;return[se?se[1]:0,Z.idx?Z.idx[0]:0]}});if(!te)throw console.log("Error"),new Error(`error generating bevel geometry for ${X}'th loop`);if(!te.vertexCount){let Z=(X-1)/this._bevelSegments*Math.PI/2;Y=(1-Math.sin(Z))*this._bevel;break}for(let Z=0;Z<te.vertexIndices.length;Z++){let[se,ne]=te.vertexIndices[Z];if(se===ne)continue;let ie=ne;ne<se&&(ie+=L);for(let ue=se;ue<ie;ue++){let le=ue%L,de=(ue+1)%L;if(!N.continuous[le]||!N.continuous[de]){te.vertexIndices[Z]=[se,le],te.vertexIndices.splice(Z+1,0,[de,ne]),te.vertices.splice((Z+1)*2,0,te.vertices[Z*2],te.vertices[Z*2+1]);break}}}q.push({bevelI:X,angle:k,size:W,boundary:te,reverseMap:ee,insetPoints:U})}let $=(X,k,W)=>{let U=0,z=X.boundary.vertexIndices.length;for(;U<z&&W(X.boundary.vertexIndices[k]);)k=(k+1)%z,U++;return U},H=b.length;for(let X=1;X<q.length;X++){let k=q[X-1],W=q[X],U=k.boundary.vertexIndices.length,z=W.boundary.vertexIndices.length;if(!U||!z)break;let oe=N.concave.length,ee=0,Q=Od(ee,L);for(;!k.boundary.vertexIndices.filter(Q).length||!W.boundary.vertexIndices.filter(Q).length;)ee++,Q=Od(ee,L);let te=k.boundary.vertexIndices.findIndex(Q),Z=W.boundary.vertexIndices.findIndex(Q);do te=(te+1)%U;while(Q(k.boundary.vertexIndices[te]));do Z=(Z+1)%z;while(Q(W.boundary.vertexIndices[Z]));ee=(ee+1)%L;let se=ee,ne=0,ie=this._buildBevelVert(N,k,(te-1+U)%U,void 0,ne),ue=this._buildBevelVert(N,W,(Z-1+z)%z,void 0,ne),le=ie,de=ue,ge,Oe,He=!1;do{ne=(ee||oe)/oe,Q=Od(ee,L);let Me=$(k,te,Q),Ge=$(W,Z,Q),Ut=He;if(He=!1,Me&&!Ge){for(let Se=0;Se<Me;Se++)ge=this._buildBevelVert(N,k,(te+Se)%U,Se/(Me-1),ne),b.push(le.topN,ge.topP,de.topN),l===!1&&b.push(ge.bottomP,le.bottomN,de.bottomN),le=ge;He=!0}else if(!Me&&Ge)for(let Se=0;Se<Ge;Se++)Oe=this._buildBevelVert(N,W,(Z+Se)%z,Se/(Ge-1),ne),b.push(de.topN,le.topP,Oe.topP),l===!1&&b.push(le.bottomP,de.bottomN,Oe.bottomP),de=Oe;else if(Me&&Ge)if(ge=this._buildBevelVert(N,k,te,0,ne),Oe=this._buildBevelVert(N,W,Z,0,ne),Ut?(b.push(le.topN,Oe.topP,de.topN),b.push(le.topN,ge.topP,Oe.topP),l===!1&&(b.push(Oe.bottomP,le.bottomN,de.bottomN),b.push(Oe.bottomP,ge.bottomP,le.bottomN))):(b.push(de.topN,le.topN,ge.topP),b.push(de.topN,ge.topP,Oe.topP),l===!1&&(b.push(ge.bottomP,le.bottomN,de.bottomN),b.push(ge.bottomP,de.bottomN,Oe.bottomP))),le=ge,de=Oe,Me===Ge)for(let Se=1;Se<Me;Se++)ge=this._buildBevelVert(N,k,(te+Se)%U,Se/(Me-1),ne),Oe=this._buildBevelVert(N,W,(Z+Se)%z,Se/(Ge-1),ne),b.push(le.topN,ge.topP,de.topN),b.push(de.topN,ge.topP,Oe.topP),l===!1&&(b.push(ge.bottomP,le.bottomN,de.bottomN),b.push(ge.bottomP,de.bottomN,Oe.bottomP)),le=ge,de=Oe;else if(Me>Ge){let Se=Me/Ge,ut=0;for(let mt=1;mt<Me;mt++)ge=this._buildBevelVert(N,k,(te+mt)%U,mt/(Me-1),ne),b.push(le.topN,ge.topP,de.topN),l===!1&&b.push(ge.bottomP,le.bottomN,de.bottomN),le=ge,mt>(ut+1)*Se&&(ut++,Oe=this._buildBevelVert(N,W,(Z+ut)%z,ut/(Ge-1),ne),b.push(de.topN,ge.topP,Oe.topP),l===!1&&b.push(ge.bottomP,de.bottomN,Oe.bottomP),de=Oe)}else{let Se=Ge/Me,ut=0;for(let mt=1;mt<Ge;mt++)Oe=this._buildBevelVert(N,W,(Z+mt)%z,mt/(Ge-1),ne),b.push(de.topN,ge.topP,Oe.topP),l===!1&&b.push(ge.bottomP,de.bottomN,Oe.bottomP),de=Oe,mt>(ut+1)*Se&&(ut++,ge=this._buildBevelVert(N,k,(te+ut)%U,ut/(Me-1),ne),b.push(le.topN,ge.topP,de.topN),l===!1&&b.push(ge.bottomP,le.bottomN,de.bottomN),le=ge)}te=(te+Me)%U,Z=(Z+Ge)%z,ee=(ee+1)%oe}while(ee!==se)}if(l===!1&&this._depth>this._bevel*2&&this._buildWall(q,N,b),C){let X=[];for(let k=b.length-1;k>=H+2;k-=3){let W=b[k-2],U=b[k-1],z=b[k-0];X.push(z,U,W)}b.splice(H,b.length-H,...X)}if(C){let X=[];for(let k=q[q.length-1].boundary.vertices.length-1;k>=1;k-=2){let W=q[q.length-1].boundary.vertices[k-1],U=q[q.length-1].boundary.vertices[k-0];X.push(W,U)}_.push(X)}if(!C){let X=q[q.length-1],k;try{k=Cr({windingRule:q.length>1?Pe.POSITIVE:Pe.ODD,elementType:Xe.POLYGONS,vertexSize:2,strict:!0,contours:[X.insetPoints,..._]})}catch{k=Id}if(!k)throw new Error("Error generating geometry for surface");c.length===0&&this._bevel<f&&Object.assign(this,{useNgonForTopBottomFaceDuringBake:!0});for(let W=0;W<k.elementCount*3;W+=3){let U=this._buildSurfaceVert(k,k.elements[W+0],Y),z=this._buildSurfaceVert(k,k.elements[W+1],Y),oe=this._buildSurfaceVert(k,k.elements[W+2],Y);b.push(U.top,z.top,oe.top),l===!1&&b.push(oe.bottom,z.bottom,U.bottom)}}this.vertexCache={}}this._buffer.shrink();let A=new mc(Uint32Array.from(b),1),v=new mc(this._buffer.positions,3),M=new mc(this._buffer.normals,3),O=new mc(this._buffer.uvs,2);v.needsUpdate=!0,M.needsUpdate=!0,O.needsUpdate=!0,A.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",M),this.setAttribute("uv",O),this.setIndex(A)}_computeBufferEstimatedSize(e){return e.vertexCount*2*(2+this._bevelSegments)}_buildWall(e,r,o){let i=e[0];for(let a=0,s=i.boundary.vertexCount;a<s;a++){let l=this._buildBevelVert(r,i,a),d=this._buildBevelVert(r,i,(a+1)%s);o.push(d.topP,l.topN,l.bottomN),o.push(d.topP,l.bottomN,d.bottomP)}}_buildSurfaceVert(e,r,o){let i=r.toString();if(i in this.vertexCache)return this.vertexCache[i];let a=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(a-this._minX)/this._width,d=(s-this._minY)/this._height;this.forPathBevel&&(d=1);let c=this._buffer.get(this.forPathBevel?1:2),u=c*3,p=c*2,f={top:c+0,bottom:c+1};return this._buffer.positions[u+0]=a,this._buffer.positions[u+1]=s,this._buffer.positions[u+2]=this.forPathBevel?this._bevel:this._depth-o,this._buffer.normals[u+0]=0,this._buffer.normals[u+1]=0,this._buffer.normals[u+2]=1,this._buffer.uvs[p+0]=l,this._buffer.uvs[p+1]=d,this.forPathBevel===!1&&(this._buffer.positions[u+3]=a,this._buffer.positions[u+4]=s,this._buffer.positions[u+5]=o,this._buffer.normals[u+3]=0,this._buffer.normals[u+4]=0,this._buffer.normals[u+5]=-1,this._buffer.uvs[p+2]=l,this._buffer.uvs[p+3]=d),this.vertexCache[i]=f,f}_buildBevelVert(e,r,o,i=1,a){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache&&a!==0&&a!==1&&(!a||a===this.vertexCache[s].pathBevelUCoord))return this.vertexCache[s];let[l,d]=r.boundary.vertexIndices[o],c,u,p,f;l!==d?(u=l,c=d,f=!1,p=e.continuous[u]&&e.continuous[c]):(c=l,u=(c-1+e.count)%e.count,f=e.concave[c]&&r.bevelI>0,p=e.continuous[c]||f);let h=Math.cos(r.angle),m=Math.sin(r.angle),y=o*2,g=c*2,x=u*2,S=r.boundary.vertices[y+0],w=r.boundary.vertices[y+1],b=(1-m)*this._bevel,_=(S-this._minX)/this._width,A=(w-this._minY)/this._height;this.forPathBevel&&(a!==void 0&&(_=a),A=1);let v=e.normals[g+0],M=e.normals[g+1],O=e.normals[x+0],T=e.normals[x+1];if(f){let G=O-v,N=T-M;v=v+G*(1-i),M=M+N*(1-i);let F=Math.sqrt(v*v+M*M);v/=F,M/=F}let C=this.forPathBevel?this._buffer.get(p?1:2):this._buffer.get(p?2:4),P=C*3,I=C*2,L={i:o,fi:c,topP:C+0,topN:C+0,bottomP:C+1,bottomN:C+1,pathBevelUCoord:a};return this._buffer.positions[P+0]=S,this._buffer.positions[P+1]=w,this._buffer.positions[P+2]=(this.forPathBevel?this._bevel:this._depth)-b,this._buffer.normals[P+0]=v*h,this._buffer.normals[P+1]=M*h,this._buffer.normals[P+2]=m,this._buffer.uvs[I+0]=_,this._buffer.uvs[I+1]=A,this.forPathBevel===!1&&(this._buffer.positions[P+3]=S,this._buffer.positions[P+4]=w,this._buffer.positions[P+5]=b,this._buffer.normals[P+3]=v*h,this._buffer.normals[P+4]=M*h,this._buffer.normals[P+5]=-m,this._buffer.uvs[I+2]=A,this._buffer.uvs[I+3]=_),p||(this.forPathBevel?(C+=1,P+=3,I+=2):(C+=2,P+=6,I+=4),L.topP=C+0,L.bottomP=C+1,this._buffer.positions[P+0]=S,this._buffer.positions[P+1]=w,this._buffer.positions[P+2]=(this.forPathBevel?this._bevel:this._depth)-b,this._buffer.normals[P+0]=O*h,this._buffer.normals[P+1]=T*h,this._buffer.normals[P+2]=m,this._buffer.uvs[I+0]=_,this._buffer.uvs[I+1]=A,this.forPathBevel===!1&&(this._buffer.positions[P+3]=S,this._buffer.positions[P+4]=w,this._buffer.positions[P+5]=b,this._buffer.normals[P+3]=O*h,this._buffer.normals[P+4]=T*h,this._buffer.normals[P+5]=-m,this._buffer.uvs[I+2]=A,this._buffer.uvs[I+3]=_)),this.vertexCache[s]=L,L}clone(){let e=new tn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=yo(this.userData),e}};var $i=class extends xP{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Pe.ODD;this.elementType=Xe.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Pe.ODD,elementType:Xe.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),a=this._shape.shapeHoles.map(h=>h.extractShapePointsToFlatArray([],this._curveSegments)),s,l=!0,d=!0,c,u;for(let h=0,m=i.length/2;h<m;h++){let y=h*2,g=i[y+0],x=i[y+1];if(c!==void 0&&g!==c&&(l=!1),u!==void 0&&x!==u&&(d=!1),c=g,u=x,!l&&!d)break}if(!l&&!d)try{s=Cr({contours:[i,...a],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict})}catch{s=ys}let p=s?.vertexCount??1,f=s?.elementCount??1;if(this._positionAttribute=new yc(new Float32Array(p*3),3),this._normalAttribute=new yc(new Float32Array(p*3),3),this._uvAttribute=new yc(new Float32Array(p*2),2),this._indexAttribute=new yc(new Uint32Array(f*3),1),s){let h=1/0,m=-1/0,y=1/0,g=-1/0;for(let w=0,b=p;w<b;w++){let _=w*2,A=s.vertices[_+0],v=s.vertices[_+1];A<h&&(h=A),A>m&&(m=A),v<y&&(y=v),v>g&&(g=v)}let x=m-h,S=g-y;for(let w=0,b=p;w<b;w++){let _=w*2,A=s.vertices[_+0],v=s.vertices[_+1],M=(A-h)/x,O=(v-y)/S;this._positionAttribute.setXYZ(w,A,v,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,M,O)}for(let w=0,b=f;w<b;w++){let _=w*3,A=s.elements[_+0],v=s.elements[_+1],M=s.elements[_+2];this._indexAttribute.setX(_+0,A),this._indexAttribute.setX(_+1,v),this._indexAttribute.setX(_+2,M)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(s?.elementCount??1)*3)}clone(){let e=new $i(this._shape,this._curveSegments);return e.userData=yo(this.userData),e}};var Yi=class extends tn{constructor(e,r,o=0,i=12,a=3,s=Pe.ODD){super(e,r,o,i,a,s);this.type="ShapeGeometry"}_computeBufferEstimatedSize(e){return e.vertexCount*2*(2+this._bevelSegments)}_buildWall(e,r,o){let i=e[0];for(let a=0,s=i.boundary.vertexCount;a<s;a++){let l=this._buildBevelVert(r,i,a),d=this._buildBevelVert(r,i,(a+1)%s);o.push(d.topP,l.topN,l.bottomN),o.push(d.topP,l.bottomN,d.bottomP)}}clone(){let e=new Yi(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=yo(this.userData),e}};var Xt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Pe.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),a=n.shape??t?.shape,s=a?.roundness??e.roundness;a!==void 0&&(a instanceof Ne?(a.width!==r||a.height!==o)&&a.applySize(r,o):a=new Ne(r,o).fromJSON(a),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&a.update());let l=a??new Ne(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:s}),shape:l}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:a}=n.parameters;n.shape.roundness=i;let s;return t<=0?s=new $i(n.shape,o,{windingRule:a}):s=new Yi(n.shape,t,e,o,r,a),Object.assign(s,{userData:{...n,type:"VectorGeometry"}})}};import{BufferGeometry as vP,Float32BufferAttribute as bP,MathUtils as Nd,Vector2 as _g}from"three";var Ag=Math.PI*2,Ki=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return e.angle=Nd.clamp(e.angle,0,360),{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,d=n.shape,c=t*.5,u=e*.5,p=SP(d,c,u,o*Math.PI/180,r,i);d.isClosed=!0,d.update();let f;return o===0?(f=new vP,f.setAttribute("position",new bP([],3))):f=Xt.create({shape:d,parameters:{subdivisions:p,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}}),Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function SP(n,t,e,r,o,i){if(r>=Ag)return o>30||o%4===0?(_P(n,t,e,i),Math.round(o/4)):wg(n,r,o,t,e,i);r=Math.max(r,.001);let a={x:0,y:e},s=r+Math.PI*.5,l={x:Math.cos(s)*t,y:Math.sin(s)*e},d=fg({px:a.x,py:a.y,cx:l.x,cy:l.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%d.length===0?wP(n,a.x,a.y,d,o,t,e,i):wg(n,r,o,t,e,i)}function wP(n,t,e,r,o,i,a,s){let l=Math.round(o/r.length);n.addPoint(Xi(t,e));for(let d=0,c=r.length;d<c;d++){let u=r[d],p=n.points[d],f=Xi(u.x,u.y);p.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return s>0?Tg(n,i,a,s):n.addPoint(Xi(0,0)),l}function wg(n,t,e,r,o,i){let a=-t/e;for(let s=0;s<=e;s++){let l=a*s,d=Math.sin(l)*r,c=Math.cos(l)*o;n.addPoint(Xi(d,c))}return t<Ag?i>0?Tg(n,r,o,i):n.addPoint(Xi(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Cg(n,r,o,i)),1}function _P(n,t,e,r=0,o=0,i=0){let a=.5522847498,s=t*a,l=e*a;n.addPoint(gc(o-t,i,o-t,i-l,o-t,i+l)),n.addPoint(gc(o,i+e,o-s,i+e,o+s,i+e)),n.addPoint(gc(o+t,i,o+t,i+l,o+t,i-l)),n.addPoint(gc(o,i-e,o+s,i-e,o-s,i-e)),r>0&&Cg(n,t,e,r)}function Xi(n,t){return new Tr(Nd.generateUUID(),new _g(n,t))}function gc(n,t,e,r,o,i){let a=Xi(n,t);return a.controls[0].position.set(e,r),a.controls[1].position.set(o,i),a}function Tg(n,t,e,r){Pg(n,t,e,r).forEach(i=>n.addPoint(i))}function Cg(n,t,e,r){let o=Pg(n,t,e,r),i=new Ne;o.forEach(a=>i.addPoint(a)),i.isClosed=!0,n.shapeHoles.push(i)}function Pg(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),a=new _g(o/t,i/e),s=n.points.map(l=>{let d=l.clone();return d.uuid=Nd.generateUUID(),d}).reverse();return s.forEach(l=>{l.position.multiply(a);let d=l.controls[0].position.clone().multiply(a),c=l.controls[1].position.clone().multiply(a);l.controls[0].position.copy(c),l.controls[1].position.copy(d)}),s}import{BufferGeometry as AP,Float32BufferAttribute as Ed,Uint32BufferAttribute as TP,Vector3 as Og}from"three";var Mg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),a=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:a,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:a,pathRadius:s,pathType:l,pathSegments:d,cornerRadius:c,cornerSegments:u}=n.parameters,p=new gs(!1,t,e,r,o,i,a,s,l,d,c,u);return Object.assign(p,{userData:{...n,type:"HelixGeometry"}})}},Ld=new TP([0,0,0],1),gs=class extends AP{constructor(t=!0,e=1,r=1,o=1,i=1,a=1,s=1,l=1,d=1,c=1,u=1,p=1){if(super(),a===0)return;let f=t&&a===1;f&&(p=0),u>100&&(u=100),u===0&&(p=0);let h=()=>new Og,m=new Og,y=h(),g=h(),x=h(),S,w,b,_,A,v,M,O,T=h(),C=h(),P=h(),I=h(),L=h(),G=h(),N=h(),F=h(),B=r-2*l+.001,R=B/a,V=Math.ceil(s*a),q=V+1,Y=B/V,$=-B/2,H=c+1,X=2*Math.PI/c,k=Math.PI/2/p,W=.01,U=Math.min((1-u/100)*l,l-W),z=l-U,oe=0,ee=2,Q=p*ee+ee,te=H*Q/ee,Z=te+H*q,se=Math.max(0,H*(q+Q)),[ne,ie,ue]=[3,3,2].map(rt=>Array(se*rt).fill(0)),le=[],de=i-l;function ge(rt,tr){let Br=Math.PI/2;v=tr*Y,O=2*Math.PI*(v%R)/R+Br,v+=$,M=Math.sin(O)*de,A=Math.cos(O)*de,t?rt.set(A,M,v):rt.set(A,v,M)}ge(m,-1e-10),ge(y,0),T.copy(m),ge(m,1);let Oe=m.distanceTo(y),He=f?0:z+U,Me=Oe*V+2*He,Ge=U,Ut=Me-He;for(let rt=0;rt<=V;rt++){ge(g,rt),F.subVectors(g,T).normalize(),T.copy(g),G.copy(g).setComponent(+t+1,0).normalize(),N.crossVectors(F,G).normalize();let tr=rt===0,Br=rt===V,Gv=tr?3*Math.PI/2:k,zv=tr?Ge:Ut,kv=tr?H:Z,Fv=tr?0:se-H,jv=F.clone().multiplyScalar(tr?-z:z).add(g),Uv=F.clone().multiplyScalar(tr?-1:1).normalize();for(let uo=0;uo<H;uo++){let Jp=uo*X;if(C.addVectors(m.copy(G).multiplyScalar(l*Math.cos(Jp)),y.copy(N).multiplyScalar(l*Math.sin(Jp))),P.copy(C).normalize(),tr||Br){f||(oe=Fv+uo,[0,1,2].forEach(Ht=>{ne[oe*3+Ht]=jv.getComponent(Ht),ie[oe*3+Ht]=Uv.getComponent(Ht)}),ue[oe*2]=+Br,ue[oe*2+1]=uo/c),y.copy(P).multiplyScalar(U),x.addVectors(g,y);for(let Ht=0;Ht<p;Ht++){let mu=Ht*k+Gv;I.addVectors(m.copy(F).multiplyScalar(z*Math.sin(mu)),y.copy(P).multiplyScalar(z*Math.cos(mu))),L.copy(I).normalize(),y.addVectors(x,I),I.normalize(),oe=kv+Ht*H+uo,[0,1,2].forEach(qs=>{ne[oe*3+qs]=y.getComponent(qs),ie[oe*3+qs]=L.getComponent(qs)});let Hv=+tr+Math.sin(mu);ue[oe*2]=(zv+z*Hv)/Me,ue[oe*2+1]=uo/c}}y.addVectors(g,C),oe=te+rt*H+uo,[0,1,2].forEach(Ht=>{ne[oe*3+Ht]=y.getComponent(Ht),ie[oe*3+Ht]=P.getComponent(Ht)}),ue[oe*2]=(He+rt*Oe)/Me,ue[oe*2+1]=uo/c}}let Se=q+2*p+ee,ut=1,[mt,Qn]=[+f,Se-1];for(let rt=mt;rt<=Qn-1;rt++){let tr=f&&rt===Qn-1;for(let Br=0;Br<H-1;Br++)S=rt*H+Br,w=S+1,b=(tr?Br:S)+H,_=(tr?Br+1:w)+H,rt===0?le.push(w,_,b):rt===Se-2?le.push(S,w,b):le.push(S,w,b,w,_,b)}this.setIndex(le),this.setAttribute("position",new Ed(ne,3)),this.setAttribute("normal",new Ed(ie,3)),this.setAttribute("uv",new Ed(ue,2))}getClosedTorusIndicesForBooleanOrSubdiv(){let t=this.userData.parameters,e=Math.ceil(t.tubularSegments),r=t.radialSegments+1,o=Array.from(this.getIndex().array),i,a,s,l,d=6*(e-1)*t.radialSegments,c=e,u=c===e;for(let p=0;p<t.radialSegments;p++)i=c*r+p,a=i+1,s=(u?p:i)+r,l=(u?p+1:a)+r,o[d++]=i,o[d++]=a,o[d++]=s,o[d++]=a,o[d++]=l,o[d++]=s;return o.length=d,Ld.array=o,Ld.count=o.length,Ld}};import{IcosahedronGeometry as CP}from"three";var Ig=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:a}=n.parameters,s=o===0&&i!==0?new xs(t*.5,i,a):new CP(t*.5,o);return s.scale(1,e/t,r/t),Object.assign(s,{userData:{...n,type:"IcosahedronGeometry"}})}},xs=class extends Zo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],a=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],s="IcosahedronGeometry";super(i,a,s,t,e,r),this.type=s}static fromJSON(t){return new xs(t.radius,t.corner,t.cornerSides)}};import{LatheGeometry as PP,Shape as OP}from"three";var Ng=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new OP;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new PP(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};import{BufferGeometry as zg,BufferGeometryLoader as kP,Vector3 as FP,BoxGeometry as kg}from"three";import{BufferGeometry as RP,Vector2 as Vd,Vector3 as Gg}from"three";import{Box3 as MP,BufferAttribute as vs,BufferGeometry as Eg,Color as Rd,EventDispatcher as IP,Float32BufferAttribute as Qi,Matrix3 as Lg,Matrix4 as Vg,MathUtils as NP,Object3D as EP,Sphere as LP,Vector2 as ar,Vector3 as Mt,Vector4 as DP}from"three";var Yr=new Vg,Dd=new EP,xc=new Mt,rn=class extends IP{constructor(){super(),this.uuid=NP.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new Lg().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let a=0,s=i.vertexNormals.length;a<s;a++)i.vertexNormals[a].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Yr.makeRotationX(t),this.applyMatrix4(Yr),this}rotateY(t){return Yr.makeRotationY(t),this.applyMatrix4(Yr),this}rotateZ(t){return Yr.makeRotationZ(t),this.applyMatrix4(Yr),this}translate(t,e,r){return Yr.makeTranslation(t,e,r),this.applyMatrix4(Yr),this}scale(t,e,r){return Yr.makeScale(t,e,r),this.applyMatrix4(Yr),this}lookAt(t){return Dd.lookAt(t),Dd.updateMatrix(),this.applyMatrix4(Dd.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,a=o.normal,s=o.color,l=o.uv,d=o.uv2;d!==void 0&&(this.faceVertexUvs[1]=[]);for(let p=0;p<i.count;p++)e.vertices.push(new Mt().fromBufferAttribute(i,p)),s!==void 0&&e.colors.push(new Rd().fromBufferAttribute(s,p));function c(p,f,h,m){let y=s===void 0?[]:[e.colors[p].clone(),e.colors[f].clone(),e.colors[h].clone()],g=a===void 0?[]:[new Mt().fromBufferAttribute(a,p),new Mt().fromBufferAttribute(a,f),new Mt().fromBufferAttribute(a,h)],x=new Zi(p,f,h,g,y,m);e.faces.push(x),l!==void 0&&e.faceVertexUvs[0].push([new ar().fromBufferAttribute(l,p),new ar().fromBufferAttribute(l,f),new ar().fromBufferAttribute(l,h)]),d!==void 0&&e.faceVertexUvs[1].push([new ar().fromBufferAttribute(d,p),new ar().fromBufferAttribute(d,f),new ar().fromBufferAttribute(d,h)])}let u=t.groups;if(u.length>0)for(let p=0;p<u.length;p++){let f=u[p],h=f.start,m=f.count;for(let y=h,g=h+m;y<g;y+=3)r!==void 0?c(r.getX(y),r.getX(y+1),r.getX(y+2),f.materialIndex):c(y,y+1,y+2,f.materialIndex)}else if(r!==void 0)for(let p=0;p<r.count;p+=3)c(r.getX(p),r.getX(p+1),r.getX(p+2));else for(let p=0;p<i.count;p+=3)c(p,p+1,p+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(xc).negate(),this.translate(xc.x,xc.y,xc.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new Vg;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new Mt,e=new Mt;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],a=this.vertices[i.a],s=this.vertices[i.b],l=this.vertices[i.c];t.subVectors(l,s),e.subVectors(a,s),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new Mt;if(t){let r=new Mt,o=new Mt;for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=this.vertices[s.a],d=this.vertices[s.b],c=this.vertices[s.c];r.subVectors(c,d),o.subVectors(l,d),r.cross(o),e[s.a].add(r),e[s.b].add(r),e[s.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],a=i.vertexNormals;a.length===3?(a[0].copy(e[i.a]),a[1].copy(e[i.b]),a[2].copy(e[i.c])):(a[0]=e[i.a].clone(),a[1]=e[i.b].clone(),a[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,a=o.vertexNormals.length;i<a;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new rn;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,a=this.morphNormals[e].vertexNormals;for(let s=0,l=this.faces.length;s<l;s++){let d=new Mt,c={a:new Mt,b:new Mt,c:new Mt};i.push(d),a.push(c)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=o.faceNormals[i],d=o.vertexNormals[i];l.copy(s.normal),d.a.copy(s.vertexNormals[0]),d.b.copy(s.vertexNormals[1]),d.c.copy(s.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new MP),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new LP),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,a=this.vertices,s=t.vertices,l=this.faces,d=t.faces,c=this.colors,u=t.colors;e!==void 0&&(o=new Lg().getNormalMatrix(e));for(let p=0,f=s.length;p<f;p++){let m=s[p].clone();e!==void 0&&m.applyMatrix4(e),a.push(m)}for(let p=0,f=u.length;p<f;p++)c.push(u[p].clone());for(let p=0,f=d.length;p<f;p++){let h=d[p],m,y,g=h.vertexNormals,x=h.vertexColors,S=new Zi(h.a+i,h.b+i,h.c+i);S.normal.copy(h.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,b=g.length;w<b;w++)m=g[w].clone(),o!==void 0&&m.applyMatrix3(o).normalize(),S.vertexNormals.push(m);S.color.copy(h.color);for(let w=0,b=x.length;w<b;w++)y=x[w],S.vertexColors.push(y.clone());S.materialIndex=h.materialIndex+r,l.push(S)}for(let p=0,f=t.faceVertexUvs.length;p<f;p++){let h=t.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let m=0,y=h.length;m<y;m++){let g=h[m],x=[];for(let S=0,w=g.length;S<w;S++)x.push(g[S].clone());this.faceVertexUvs[p].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},r=[],o=[],i=Math.pow(10,t);for(let l=0,d=this.vertices.length;l<d;l++){let c=this.vertices[l],u=Math.round(c.x*i)+"_"+Math.round(c.y*i)+"_"+Math.round(c.z*i);e[u]===void 0?(e[u]=l,r.push(this.vertices[l]),o[l]=r.length-1):o[l]=o[e[u]]}let a=[];for(let l=0,d=this.faces.length;l<d;l++){let c=this.faces[l];c.a=o[c.a],c.b=o[c.b],c.c=o[c.c];let u=[c.a,c.b,c.c];for(let p=0;p<3;p++)if(u[p]===u[(p+1)%3]){a.push(l);break}}for(let l=a.length-1;l>=0;l--){let d=a[l];this.faces.splice(d,1);for(let c=0,u=this.faceVertexUvs.length;c<u;c++)this.faceVertexUvs[c].splice(d,1)}let s=this.vertices.length-r.length;return this.vertices=r,s}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new Mt(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let l=0;l<e;l++)t[l]._id=l;function r(l,d){return l.materialIndex-d.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],a,s;o&&o.length===e&&(a=[]),i&&i.length===e&&(s=[]);for(let l=0;l<e;l++){let d=t[l]._id;a&&a.push(o[d]),s&&s.push(i[d])}a&&(this.faceVertexUvs[0]=a),s&&(this.faceVertexUvs[1]=s)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let h=this.parameters;for(let m in h)h[m]!==void 0&&(t[m]=h[m]);return t}let e=[];for(let h=0;h<this.vertices.length;h++){let m=this.vertices[h];e.push(m.x,m.y,m.z)}let r=[],o=[],i={},a=[],s={},l=[],d={};for(let h=0;h<this.faces.length;h++){let m=this.faces[h],y=!0,g=!1,x=this.faceVertexUvs[0][h]!==void 0,S=m.normal.length()>0,w=m.vertexNormals.length>0,b=m.color.r!==1||m.color.g!==1||m.color.b!==1,_=m.vertexColors.length>0,A=0;if(A=c(A,0,0),A=c(A,1,y),A=c(A,2,g),A=c(A,3,x),A=c(A,4,S),A=c(A,5,w),A=c(A,6,b),A=c(A,7,_),r.push(A),r.push(m.a,m.b,m.c),r.push(m.materialIndex),x){let v=this.faceVertexUvs[0][h];r.push(f(v[0]),f(v[1]),f(v[2]))}if(S&&r.push(u(m.normal)),w){let v=m.vertexNormals;r.push(u(v[0]),u(v[1]),u(v[2]))}if(b&&r.push(p(m.color)),_){let v=m.vertexColors;r.push(p(v[0]),p(v[1]),p(v[2]))}}function c(h,m,y){return y?h|1<<m:h&~(1<<m)}function u(h){let m=h.x.toString()+h.y.toString()+h.z.toString();return i[m]!==void 0||(i[m]=o.length/3,o.push(h.x,h.y,h.z)),i[m]}function p(h){let m=h.r.toString()+h.g.toString()+h.b.toString();return s[m]!==void 0||(s[m]=a.length,a.push(h.getHex())),s[m]}function f(h){let m=h.x.toString()+h.y.toString();return d[m]!==void 0||(d[m]=l.length/2,l.push(h.x,h.y)),d[m]}return t.data={},t.data.vertices=e,t.data.normals=o,a.length>0&&(t.data.colors=a),l.length>0&&(t.data.uvs=[l]),t.data.faces=r,t}clone(){return new rn().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let p=0,f=e.length;p<f;p++)this.vertices.push(e[p].clone());let r=t.colors;for(let p=0,f=r.length;p<f;p++)this.colors.push(r[p].clone());let o=t.faces;for(let p=0,f=o.length;p<f;p++)this.faces.push(o[p].clone());for(let p=0,f=t.faceVertexUvs.length;p<f;p++){let h=t.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let m=0,y=h.length;m<y;m++){let g=h[m],x=[];for(let S=0,w=g.length;S<w;S++){let b=g[S];x.push(b.clone())}this.faceVertexUvs[p].push(x)}}let i=t.morphTargets;for(let p=0,f=i.length;p<f;p++){let h={};if(h.name=i[p].name,i[p].vertices!==void 0){h.vertices=[];for(let m=0,y=i[p].vertices.length;m<y;m++)h.vertices.push(i[p].vertices[m].clone())}if(i[p].normals!==void 0){h.normals=[];for(let m=0,y=i[p].normals.length;m<y;m++)h.normals.push(i[p].normals[m].clone())}this.morphTargets.push(h)}let a=t.morphNormals;for(let p=0,f=a.length;p<f;p++){let h={};if(a[p].vertexNormals!==void 0){h.vertexNormals=[];for(let m=0,y=a[p].vertexNormals.length;m<y;m++){let g=a[p].vertexNormals[m],x={};x.a=g.a.clone(),x.b=g.b.clone(),x.c=g.c.clone(),h.vertexNormals.push(x)}}if(a[p].faceNormals!==void 0){h.faceNormals=[];for(let m=0,y=a[p].faceNormals.length;m<y;m++)h.faceNormals.push(a[p].faceNormals[m].clone())}this.morphNormals.push(h)}let s=t.skinWeights;for(let p=0,f=s.length;p<f;p++)this.skinWeights.push(s[p].clone());let l=t.skinIndices;for(let p=0,f=l.length;p<f;p++)this.skinIndices.push(l[p].clone());let d=t.lineDistances;for(let p=0,f=d.length;p<f;p++)this.lineDistances.push(d[p]);let c=t.boundingBox;c!==null&&(this.boundingBox=c.clone());let u=t.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Bd().fromGeometry(this),e=new Eg,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",vc.call(new vs(r,3),t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",vc.call(new vs(o,3),t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",Dg.call(new vs(o,3),t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",Bg.call(new vs(o,2),t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",Bg.call(new vs(o,2),t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],a=t.morphTargets[o];for(let s=0,l=a.length;s<l;s++){let d=a[s],c=new Qi(d.data.length*3,3);c.name=d.name,i.push(vc.call(c,d.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new Qi(t.skinIndices.length*4,4);e.setAttribute("skinIndex",Rg.call(o,t.skinIndices))}if(t.skinWeights.length>0){let o=new Qi(t.skinWeights.length*4,4);e.setAttribute("skinWeight",Rg.call(o,t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new Eg,r=t.geometry;if(t.isPoints||t.isLine){let o=new Qi(r.vertices.length*3,3),i=new Qi(r.colors.length*3,3);if(e.setAttribute("position",vc.call(o,r.vertices)),e.setAttribute("color",Dg.call(i,r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let a=new Qi(r.lineDistances.length,1);e.setAttribute("lineDistance",BP.call(a,r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};rn.prototype.isGeometry=!0;var Bd=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,a=t.faces;for(o=0;o<a.length;o++){let s=a[o];s.materialIndex!==i&&(i=s.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,a=o[1]&&o[1].length>0,s=t.morphTargets,l=s.length,d;if(l>0){d=[];for(let g=0;g<l;g++)d[g]={name:s[g].name,data:[]};this.morphTargets.position=d}let c=t.morphNormals,u=c.length,p;if(u>0){p=[];for(let g=0;g<u;g++)p[g]={name:c[g].name,data:[]};this.morphTargets.normal=p}let f=t.skinIndices,h=t.skinWeights,m=f.length===r.length,y=h.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let g=0;g<e.length;g++){let x=e[g];this.vertices.push(r[x.a],r[x.b],r[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let b=x.normal;this.normals.push(b,b,b)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let b=x.color;this.colors.push(b,b,b)}if(i===!0){let b=o[0][g];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",g),this.uvs.push(new ar,new ar,new ar))}if(a===!0){let b=o[1][g];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",g),this.uvs2.push(new ar,new ar,new ar))}for(let b=0;b<l;b++){let _=s[b].vertices;d[b].data.push(_[x.a],_[x.b],_[x.c])}for(let b=0;b<u;b++){let _=c[b].vertexNormals[g];p[b].data.push(_.a,_.b,_.c)}m&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),y&&this.skinWeights.push(h[x.a],h[x.b],h[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},Zi=class{constructor(t,e,r,o,i,a=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new Mt,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new Rd,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=a}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};function BP(n){return this.array.set(n),this}function Dg(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",r),i=new Rd),t[e++]=i.r,t[e++]=i.g,t[e++]=i.b}return this}function Bg(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",r),i=new ar),t[e++]=i.x,t[e++]=i.y}return this}function vc(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",r),i=new Mt),t[e++]=i.x,t[e++]=i.y,t[e++]=i.z}return this}function Rg(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",r),i=new DP),t[e++]=i.x,t[e++]=i.y,t[e++]=i.z,t[e++]=i.w}return this}var VP=["a","b","c"];function GP(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Gd(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function zd(n,t,e,r,o,i){let a=Math.min(n,t),s=Math.max(n,t),l=a+"_"+s,d;if(r.has(l))d=r.get(l);else{let c=e[a],u=e[s];d={a:c,b:u,newEdge:null,faces:[]},r.set(l,d)}d.faces.push(o),i[n].edges.push(d),i[t].edges.push(d)}function zP(n,t,e,r){let o,i,a;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)a=t[o],zd(a.a,a.b,n,r,a,e),zd(a.b,a.c,n,r,a,e),zd(a.c,a.a,n,r,a,e)}function bc(n,t,e,r,o){n.push(new Zi(t,e,r,void 0,void 0,o))}function Ji(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Sc(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var wc=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof RP?t=new rn().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new Gg,r,o,i,a,s,l=t.vertices,d=t.faces,c=t.faceVertexUvs[0],u=c!==void 0&&c.length>0,p=[],f=new Map;zP(l,d,p,f);let h=[],m,y,g,x,S,w,b;for(let W of Array.from(f.keys())){for(y=f.get(W),g=new Gg,S=3/8,w=1/8,b=y.faces.length,b!=2&&(S=.5,w=0,b!=1),g.addVectors(y.a,y.b).multiplyScalar(S),e.set(0,0,0),a=0;a<b;a++){for(x=y.faces[a],s=0;s<3&&(m=l[GP(x,VP[s])],!(m!==y.a&&m!==y.b));s++);m&&e.add(m)}e.multiplyScalar(w),g.add(e),y.newEdge=h.length,h.push(g)}let _,A,v,M,O,T,C,P=[];for(o=0,i=l.length;o<i;o++){for(T=l[o],O=p[o].edges,r=O.length,r==3?_=3/16:r>3&&(_=3/(8*r)),A=1-r*Number(_),v=_,r<=2&&(r==2?(A=3/4,v=1/8):r==1||r==0),C=T.clone().multiplyScalar(A),e.set(0,0,0),a=0;a<r;a++)M=O[a],m=M.a!==T?M.a:M.b,e.add(m);e.multiplyScalar(Number(v)),C.add(e),P.push(C)}let I=P.concat(h),L=P.length,G,N,F,B=[],R=[],V,q,Y,$,H=new Vd,X=new Vd,k=new Vd;for(o=0,i=d.length;o<i;o++)x=d[o],G=Number(Gd(x.a,x.b,f).newEdge)+L,N=Number(Gd(x.b,x.c,f).newEdge)+L,F=Number(Gd(x.c,x.a,f).newEdge)+L,bc(B,G,N,F,x.materialIndex),bc(B,x.a,G,F,x.materialIndex),bc(B,x.b,N,G,x.materialIndex),bc(B,x.c,F,N,x.materialIndex),u&&(V=c[o],q=V[0],Y=V[1],$=V[2],H.set(Ji(q.x,Y.x),Ji(q.y,Y.y)),X.set(Ji(Y.x,$.x),Ji(Y.y,$.y)),k.set(Ji(q.x,$.x),Ji(q.y,$.y)),Sc(R,H,X,k),Sc(R,q,H,k),Sc(R,Y,X,H),Sc(R,$,k,X));t.vertices=I,t.faces=B,u&&(t.faceVertexUvs[0]=R)}};var pt=new FP,Fg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new zg().copy(new kg(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(pt),r={width:pt.x,height:pt.y,depth:pt.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new zg().copy(new kg(100,100,100)),a=i.userData.parameters;a===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(pt)):pt.set(a.width,a.height,a.depth),(t!==pt.x||e!==pt.y||r!==pt.z)&&i.scale(pt.x===0?1:t/pt.x,pt.y===0?1:e/pt.y,pt.z===0?1:r/pt.z);let s=i.originalGeometry;try{o>0?(s===void 0||a?.subdivisions!==o)&&(s===void 0&&(s=i),i=new wc(o).modify(s).toBufferGeometry()):(s!==void 0&&(i=s),s=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals())}catch{s!==void 0&&(i=s),s=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()}return s!==void 0&&Object.assign(i,{originalGeometry:s}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new kP(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(pt);let a=100/pt.x;Object.assign(i.parameters,{width:100,height:pt.y*a,depth:pt.z*a}),t(this.build(i))})}};var _c=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}=n.parameters,l=n.shape,d=t*.5,c=e*.5,u=0,p=0,f=2*Math.PI/r;for(let m=0;m<r;m++){let y=f*m,g=u+Math.sin(y)*d,x=p+Math.cos(y)*c;l.addPoint(l.createPoint(g,x))}l.isClosed=!0;for(let m=0,y=l.points.length;m<y;m++)l.points[m].roundness=o;l.roundness=o,l.update();let h=Xt.create({shape:l,parameters:{roundness:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}});return Object.assign(h,{userData:{...n,type:"PolygonGeometry"}})}};import{BufferGeometry as jP,Float32BufferAttribute as kd,Vector2 as Xr,Vector3 as bt}from"three";var jg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:a,cornerRadius:s,cornerSegments:l}=n.parameters,d=new jd(t*.5,e,o,i,a,s,l);return d.scale(1,1,r/t),Object.assign(d,{userData:{...n,type:"PyramidGeometry"}})}};function bs(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Fd(n,t,e,r,o,i){let a=t.clone().sub(n),s=e.clone().sub(n),l=a.angleTo(s);if(a.normalize(),s.normalize(),r===o){let d=a.add(s).normalize();i.copy(n).addScaledVector(d,r/Math.sin(l/2))}else{let d=a.angleTo(s);i.copy(n),i.addScaledVector(a,o/Math.sin(d)),i.addScaledVector(s,r/Math.sin(d))}}function UP(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var jd=class extends jP{constructor(t=.5,e=1,r=4,o=1,i=!1,a=0,s=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),s=Math.floor(s);let l=[],d=[],c=[],u=[],p=0,f=e/2,h=Math.PI/r,m=t*Math.cos(Math.PI/r),y=2*Math.PI/r,g=(r-2)*Math.PI/r,x=Math.PI-g,S=new bt(0,-f,0),w=new bt(0,f,0),b=new Xr(t,-f),_=new Xr(m,-f),A=new Xr(0,w.y).sub(_),v=new Xr(0,w.y).sub(b),M=new Xr(A.y,-A.x).normalize(),O=new Xr(v.y,-v.x).normalize(),C=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-A.angle())/2)-1e-8;a=Math.min(a,C);let P;{let R=new bt(M.x,M.y,0),V=new bt(Math.cos(y)*R.x,R.y,Math.sin(y)*R.x);P=R.angleTo(V)}let I=a/Math.tan((Math.PI-A.angle())/2),L=a/Math.tan((Math.PI-P)/2),G=new bt;if(!i){d.push(S.x,S.y,S.z),c.push(0,-1,0),u.push(0,0);let R=p++,V=[],q=b.clone(),Y=I/Math.cos(Math.PI/r);q.x-=Y;for(let $=0;$<r;$++){let H=$/r*Math.PI*2+h,X=new Xr(Math.sin(H),Math.cos(H));bs(q,X,G),d.push(G.x,G.y,G.z),c.push(0,-1,0),u.push(0,0),V.push(p++)}for(let $=0;$<V.length;$++)l.push(V[$],R,V[($+1)%V.length])}let N=[];{let R=new bt,V=new bt,q=new bt,Y=new bt,$=new bt,H=new bt;for(let X=0;X<r;X++){let k=X/r*Math.PI*2+h,W=(X+.5)/r*Math.PI*2+h,U=(X+1)/r*Math.PI*2+h,z=new Xr(Math.sin(k),Math.cos(k)),oe=new Xr(Math.sin(W),Math.cos(W)),ee=new Xr(Math.sin(U),Math.cos(U));bs(b,z,V),bs(b,ee,q),bs(M,oe,R),Fd(w,V,q,L,L,Y),d.push(Y.x,Y.y,Y.z),Fd(V,w,q,L,I,$),d.push($.x,$.y,$.z),Fd(q,V,w,I,L,H),d.push(H.x,H.y,H.z),c.push(R.x,R.y,R.z),c.push(R.x,R.y,R.z),c.push(R.x,R.y,R.z),u.push(0,0),u.push(0,0),u.push(0,0);let Q=p++,te=p++,Z=p++;if(l.push(Q,te,Z),a>0){{let ie=V.clone().add(q).multiplyScalar(.5),ue=w.clone().sub(ie).normalize(),de=S.clone().sub(ie).normalize().add(ue).normalize().multiplyScalar(-1),ge=H.clone().sub($);F(ie,ge,de,A.angle())}let se,ne;{let ie=new bt;bs(O,ee,ie);let ue=H.clone().add(Y).multiplyScalar(.5);ue=UP(ue,q,w);let le=H.clone().sub(Y);[se,ne]=F(ue,le,ie,P,Y.y)}{let ie=se,ue=ie.clone().setY(0).normalize(),le=new bt(0,-1,0),de=ue.clone().cross(le);B(ie,ue,le,de)}N.concat(ne);{let ie=A.angle(),ue=Math.PI-ie,le=w.clone();le.y-=a/Math.sin(ie-Math.PI/2);let de=new bt,ge=[];for(let He=0;He<s;He++){let Me=[],Ge=Math.PI/2-ue*He/s,Ut=Math.cos(Ge),Se=Math.sin(Ge),ut=W;for(let mt=0;mt<=He;mt++){let Qn=Math.cos(ut),rt=Math.sin(ut);R.x=Ut*rt,R.y=Se,R.z=Ut*Qn,de.copy(le).addScaledVector(R,a),d.push(de.x,de.y,de.z),c.push(R.x,R.y,R.z),u.push(0,0),Me.push(p++),ut+=Math.PI*2/He/r}ge.push(Me)}ne.reverse(),ge.push(ne);let Oe=ge.length-1;for(let He=0;He<Oe;He++){let Me=ge[He],Ge=ge[He+1],Ut=Me.length-1;l.push(Ge[1],Me[0],Ge[0]);for(let Se=1;Se<=Ut;Se++)l.push(Me[Se],Me[Se-1],Ge[Se]),l.push(Ge[Se+1],Me[Se],Ge[Se])}}}}}this.setIndex(l),this.setAttribute("position",new kd(d,3)),this.setAttribute("normal",new kd(c,3)),this.setAttribute("uv",new kd(u,2));function F(R,V,q,Y,$){let H=-Y/2,X=(Math.PI-Y)/2,k=V.clone().normalize().cross(q);R.addScaledVector(q,-a/Math.sin(X));let W=new bt,U=new bt,z=1,oe=p,ee=[];for(let Q=0;Q<=s;Q++){let te=H+Q/s*Y;U.set(0,0,0),U.addScaledVector(k,Math.sin(te)),U.addScaledVector(q,Math.cos(te));for(let Z=0;Z<=z;Z++){let se=Z/z-.5;if(W.copy(R),W.addScaledVector(V,se),W.addScaledVector(U,a),$!=null){let ne=Math.max(0,W.y-$);W.addScaledVector(V,-ne/V.y)}d.push(W.x,W.y,W.z),c.push(U.x,U.y,U.z),u.push(0,0),Z===0&&ee.push(p),p++}}for(let Q=0;Q<s;Q++)for(let te=0;te<z;te++){let Z=oe+te+(z+1)*Q,se=Z+(z+1),ne=se+1,ie=Z+1;l.push(Z,se,ie),l.push(se,ne,ie)}return[R.clone().addScaledVector(V,.5),ee]}function B(R,V,q,Y){let $=Math.PI/2,H=v.angle()-$,X=[],k=new bt,W=new bt;for(let z=0;z<=s;z++){let oe=[],ee=z/s;for(let Q=0;Q<=z;Q++){let Z=((z?Q/z:0)-.5)*x,se=Math.cos(Z),ne=Math.sin(Z),ie=Math.atan(Math.tan(H)*se),ue=($+ie)*ee,le=Math.cos(ue),de=Math.sin(ue);k.set(0,0,0),k.addScaledVector(V,de*se),k.addScaledVector(q,le),k.addScaledVector(Y,de*ne),W.copy(R).addScaledVector(k,a),d.push(W.x,W.y,W.z),c.push(k.x,k.y,k.z),u.push(0,0),oe.push(p++)}X.push(oe)}let U=X.length-1;for(let z=0;z<U;z++){let oe=X[z],ee=X[z+1],Q=oe.length-1;l.push(oe[0],ee[1],ee[0]);for(let te=1;te<=Q;te++)l.push(oe[te-1],oe[te],ee[te]),l.push(oe[te],ee[te+1],ee[te])}}}};var Ac=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,d={x:e*.5,y:r*.5},c={x:-d.x,y:-d.y},u={x:d.x,y:d.y};function p(w,b,_){return b>e&&_>r?Math.min(w*e/b,w*r/_):b>e?w*e/b:_>r?w*r/_:w}let f=[];f[0]=o[0]===0?0:p(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:p(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:p(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:p(o[3],o[3]+o[0],o[3]+o[2]);let h=c.x,m=u.x,y=u.y,g=c.y;t.addPoint(t.createPoint(h,y)),t.addPoint(t.createPoint(m,y)),t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.isClosed=!0;let x=!0;for(let w=0,b=t.points.length;w<b;w++)t.points[w].roundness=f[w],w>0&&f[w]!==f[w-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let S=Xt.create({shape:t,parameters:{depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(S,{userData:{...n,type:"RectangleGeometry"}})}};import{BufferGeometry as HP,Float32BufferAttribute as qP,MathUtils as Ug,SphereGeometry as WP}from"three";var Hg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:180},n.parameters);return e.thetaLength=Ug.clamp(e.thetaLength,0,180),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:a,phiLength:s,thetaStart:l,thetaLength:d}=n.parameters,c;return d===0?(c=new HP,c.setAttribute("position",new qP([],3))):c=new WP(.5*t,o,i,a,s,l,d*Ug.DEG2RAD),c.scale(1,e/t,r/t),Object.assign(c,{userData:{...n,type:"SphereGeometry"}})}};import{PlaneGeometry as $P}from"three";var qg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new $P(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};import{BufferGeometry as YP,Float32BufferAttribute as Ud,Vector3 as XP}from"three";var Wg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:a}=n.parameters,s=new Hd(t,e,r,o,i,a);return Object.assign(s,{userData:{...n,type:"BackdropGeometry"}})}},Hd=class extends YP{constructor(t=1,e=1,r=1,o=90,i=10,a=24){super(),this.type="BackdropGeometry";let s=[],l=[],d=[],c=.001;i==0&&(a=1),a=Math.max(1,Math.floor(a)),i=Math.min(i,100),o=Math.min(180-c,o),o*=Math.PI/180;let u=[],p=Math.PI/2,f=(W=0,U=0,z=0)=>new XP(W,U,z),h=f(),m=f(),[y,g,x]=[e/2,t/2,r/2],S=-g,w=+g,[b,_,A]=[f(S,-y,+x),f(S,-y,-x),f(S,+y,-x)],v=(W,U=!1)=>Math.sin(W-Math.PI/(1+ +U)),M=(W,U=!1)=>Math.cos(W-Math.PI/(1+ +U));A.y=Math.sin(o)*e-y;let O=Math.cos(o)*e-x,T=b.z-c;o<=p?(A.z=Math.min(O,T),A.z==T&&(A.y-=(O-T)/Math.tan(p-o))):_.z=Math.min(_.z-O-x,b.z-c),h.subVectors(b,_),m.subVectors(A,_);let C=Math.min(h.length(),m.length())*i/100,P=C*Math.tan(o/2),I=C/Math.cos(o/2),L=h.clone().normalize().add(m.normalize()).setLength(I).add(_);h.set(0,v(o,!0),M(o,!0)),u.push([A,h.clone()]);let G=(Math.PI-o)/a;for(let W=0;W<=a;W++){let U=p+o+W*G;h.set(0,Math.sin(U)*P,Math.cos(U)*P),h.add(L),m.set(0,v(U),M(U)),u.push([h.clone(),m.clone()])}u.push([b,f(0,1,0)]);let N=Math.sin(G/2)*P*2,F=u.length-1,B=u[0][0].distanceTo(u[1][0]),R=u[F-1][0].distanceTo(u[F][0]),V=B+N*a+R;u[0].push(1);for(let W=0;W<=a;W++)u[W+1].push(1-(B+W*N)/V);u[F].push(0);let[q,Y,$]=u[0],H,X,k;for(let W=1;W<u.length;W++)[H,X,k]=u[W],s.push(S,q.y,q.z,S,H.y,H.z,w,q.y,q.z,w,q.y,q.z,S,H.y,H.z,w,H.y,H.z),l.push(0,Y.y,Y.z,0,X.y,X.z,0,Y.y,Y.z,0,Y.y,Y.z,0,X.y,X.z,0,X.y,X.z),d.push(0,$,0,k,1,$,1,$,0,k,1,k),[q,Y,$]=[H,X,k];this.setAttribute("position",new Ud(s,3)),this.setAttribute("normal",new Ud(l,3)),this.setAttribute("uv",new Ud(d,2))}};var Tc=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:a,depth:s,extrudeBevelSize:l,extrudeBevelSegments:d}=n.parameters,c=n.shape,u=t*.5,p=e*.5,f=0,h=0,m=a*Math.PI/360/o,y=Math.PI/2*3*-1,g=u*r/100,x=p*r/100;if(o===3&&r===50){m=2*Math.PI/o;for(let w=0;w<o;w++){let b=m*w,_=f+Math.sin(b)*u,A=h+Math.cos(b)*p;c.addPoint(c.createPoint(_,A))}}else for(let w=0;w<o;w++){let b=f+Math.cos(y)*u,_=h+Math.sin(y)*p;c.addPoint(c.createPoint(b,_)),y+=m,b=f+Math.cos(y)*g,_=h+Math.sin(y)*x,w<=o,c.addPoint(c.createPoint(b,_)),y+=m}c.isClosed=!0;for(let w=0,b=c.points.length;w<b;w++)c.points[w].roundness=i;c.roundness=i,c.update();let S=Xt.create({shape:c,parameters:{roundness:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:d}});return Object.assign(S,{userData:{...n,type:"StarGeometry"}})}};import{PlaneGeometry as KP}from"three";var $g=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new KP(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};import{BufferGeometry as QP,Float32BufferAttribute as ZP,MathUtils as JP}from"three";var Yg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:360,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.round(Math.abs(e.depth??e.width*.25));return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:a,cornerRadius:s,cornerSegments:l}=n.parameters,d=e2(t,e,r,t*.5,a,i,0,0,o,s,l);return d.scale(1,e/t,1),Object.assign(d,{userData:{...n,type:"TorusGeometry"}})}};function e2(n,t,e,r,o,i,a,s,l,d,c){[t,e]=[e,t],a=t/2;let u=JP.clamp(o/360,0,1);if(u===0){let p=new QP;return p.setAttribute("position",new ZP([],3)),p}return u===1&&(d=0),new gs(!0,n,t,e,r,u,i,a,s,l,d,c)}import{TorusKnotGeometry as t2}from"three";var Xg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:a}=n.parameters,s=t*.5;s!==e&&(s-=e);let l=new t2(s,e,r,o,i,a);return Object.assign(l,{userData:{...n,type:"TorusKnotGeometry"}})}};var Kg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a,isRect:s}=n.parameters,l=n.shape,d=t*.5,c=e*.5;s?(l.addPoint(l.createPoint(-d,c)),l.addPoint(l.createPoint(d,-c)),l.addPoint(l.createPoint(-d,-c))):(l.addPoint(l.createPoint(0,c)),l.addPoint(l.createPoint(d,-c)),l.addPoint(l.createPoint(-d,-c))),l.isClosed=!0;for(let p=0,f=l.points.length;p<f;p++)l.points[p].roundness=r;l.roundness=r,l.update();let u=Xt.create({shape:l,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};import{Vector2 as Zg,Vector3 as St,Matrix3 as r2,Matrix4 as Mn,BufferGeometry as Jg,BufferAttribute as ea,MathUtils as Cc}from"three";function Qg(n,t){let e=2*Math.PI;return(n%e+e)%e===(t%e+e)%e}var o2=new Mn,n2=new Mn;function i2(n,t,e){let r=[new St,new St,new St],o=[new St,new St,new St];return n.extractBasis(r[0],r[1],r[2]),t.extractBasis(o[0],o[1],o[2]),r.forEach((i,a)=>{let s=o[a],l=Cc.lerp(i.length(),s.length(),e);i.lerp(s,e).setLength(l)}),new Mn().makeBasis(r[0],r[1],r[2])}var e0=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,height:100,depth:1,subdivisions:12,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),a=t?.shapeData??Ki.create({parameters:Uu}).userData.shape;return{path:n.path??Mi.defaultData(),parameters:Object.assign(e,{width:r,height:o,depth:i,extrusion:{...jl,...e.extrusion}}),shapeData:a}}static build(n){if(n.path.points.length>=2){let e=new qd(n);return Object.assign(e,{userData:{...n,type:"PathGeometry"}})}else return Object.assign(new Jg,{userData:{...n,type:"PathGeometry"}})}},qd=class extends Jg{constructor(e){super();this.type="PathExtrusionGeometry",this.inputs=e,this.build()}_isGeometryClosed(){return this.inputs.path.isClosed&&this.inputs.parameters.extrusion.depth===1}_isOpenEnded(){let e=this.inputs.parameters.extrusion;return!(this.inputs.path.isClosed&&e.depth===1)||!Qg(e.twist,0)||e.startScale!==e.endScale}build(){let e=this._extractPathPoints();if(e.length<2)return;let r=this._computeBasisMatrices(e),{depth:o,offset:i}=this.inputs.parameters.extrusion;o=Math.max(0,Math.min(o,1)),i=Math.max(0,Math.min(i,1));let a=this.inputs.path.isClosed?e.length:e.length-1,s=Math.floor(i*a),l=this.inputs.path.isClosed?Math.ceil((o+i)*a):Math.ceil(Math.min(1,o+i)*a),d=Math.min(Math.max(2,l-s+1),a+2),c=[],u=[];for(let B=0;B<d;B++){let R=this.inputs.path.isClosed?(B+s)%e.length:Math.min(B+s,e.length-1);c.push(e[R].clone()),u.push(r[R].clone())}let p=(B,R,V)=>{c[B]=c[B].clone().lerp(c[R],V),u[B]=i2(u[B],u[R],V)},f=0,h=i*a%1;(!this.inputs.path.isClosed||o<=1)&&(h||i===0)&&(f=h,p(0,1,f));let m=0,y=(i+o)*a%1;if((this.inputs.path.isClosed&&o<=1||!this.inputs.path.isClosed&&i+o<1)&&y&&(m=y,p(c.length-1,c.length-2,1-m)),o===0){let B=c.length-1;c[B].copy(c[0]),u[B].copy(u[0])}this._applyPathModifiers(u,f,m);let{bevel:g,bevelSides:x}=this.inputs.parameters.extrusion,S=g>0?this.inputs.parameters.extrusion.capType:"flat",w=5;this.inputs.parameters.extrusion.shape.type==="Custom"&&(w=this.inputs.parameters.extrusion.shape.shapeQuality==="low"?5:12);let{regions:b,infos:_,vertices:A}=this._computeShapePoints(w),v=0,M;S==="round"&&(M=new tn(this.inputs.shapeData,2*g,g,w,x,void 0,!0),v=M.getAttribute("position").count);let O=0,T=0;_.sort((B,R)=>B.start-R.start),_.forEach(B=>{B.verticesStart=O,B.verticesCount=B.continuous.reduce((R,V,q)=>R+(q===0||!V?2:1),0),T+=B.verticesCount,O=T});let C=T*d,P,I=0;if(this._isOpenEnded()&&S==="flat"){try{P=Cr({windingRule:Pe.ODD,elementType:Xe.POLYGONS,polySize:3,vertexSize:2,strict:!0,contours:b})}catch{P=Id}I=P.vertexCount}let L=C+2*I+v*2,G=C+2*I,N={positions:new Float32Array(L*3),normals:new Float32Array(L*3),uvs:new Float32Array(L*2)},F=[];if(_.forEach(B=>{this._extrudeRegion(B,A,u,c,N,F,this._isGeometryClosed()&&!this._isOpenEnded())}),P&&(this._closeEnd(P,C,F,N,u[0],c[0],!1),this._closeEnd(P,C+I,F,N,u[u.length-1],c[c.length-1],!0)),M){N.positions.set(M.getAttribute("position").array,G*3),N.normals.set(M.getAttribute("normal").array,G*3),N.uvs.set(M.getAttribute("uv").array,G*2);let B=F.length;F.push(...M.getIndex().array.map(q=>q+G)),G+=v,N.positions.set(M.getAttribute("position").array,G*3),N.normals.set(M.getAttribute("normal").array,G*3),N.uvs.set(M.getAttribute("uv").array,G*2);let R=F.length;F.push(...M.getIndex().array.map(q=>q+G)),this.setAttribute("position",new ea(N.positions,3)),this.setAttribute("normal",new ea(N.normals,3)),this.setAttribute("uv",new ea(N.uvs,2)),this.setIndex(F);let V=o2;V.copy(u[u.length-1]).setPosition(c[c.length-1]),this.applyMatrix4OnRange(V,G,L),V.copy(u[0]).setPosition(c[0]).multiply(n2.makeScale(1,1,-1)),this.applyMatrix4OnRange(V,G-v,G),this.reverseIndicesOnRange(B,R)}else this.setAttribute("position",new ea(N.positions,3)),this.setAttribute("normal",new ea(N.normals,3)),this.setAttribute("uv",new ea(N.uvs,2)),this.setIndex(F)}_extractPathPoints(){let r=nc(this.inputs.path).getPoints(this.inputs.path.subdivisions);if(r.length<2)return[];let o=[r[0]];return r.forEach(a=>{o[o.length-1].distanceToSquared(a)>.001&&o.push(a)}),this.inputs.path.isClosed&&o[o.length-1].distanceTo(o[0])<.001&&o.pop(),o}_computeBasisMatrices(e){let r=[],o=e.length,i=this.inputs.path.isClosed,a=new St,s=new St,l=new St,d=new St,c=new St(0,1,0);for(let y=0;y<o;y++){let g=e[y],x;y===0?x=i?e[e.length-2]:g.clone().multiplyScalar(2).sub(e[1]):x=e[y-1];let S;y===o-1?S=i?e[1]:g.clone().multiplyScalar(2).sub(e[y-1]):S=e[y+1];let w=g.clone().sub(x).normalize(),b=S.clone().sub(g).normalize(),_=w.clone().add(b).normalize();l.copy(_),y===0&&(_.equals(c)||_.clone().negate().equals(c))&&c.set(0,0,1);let A=c.clone().cross(_).normalize(),v=_.clone().cross(A).normalize();c.copy(v),d.copy(A),y===0&&(a.copy(v),s.copy(_));let M=new Mn().makeBasis(A,v,_);r.push(M)}let u=i?s:l,p=i?a:new St(0,1,0),f=u.clone().cross(d).normalize(),h=Math.acos(p.dot(f));if(isNaN(h))return r;let m=p.clone().cross(f);u.dot(m)>0&&(h*=-1);for(let y=1;y<r.length;y++){let g=new Mn().makeRotationZ(h*y/r.length);r[y].multiply(g)}return r}_applyPathModifiers(e,r,o){let i=e.length,{angle:a,twist:s,startScale:l,endScale:d}=this.inputs.parameters.extrusion,c=new Mn,u=new Mn;return e.forEach((p,f)=>{let h=f===0?0:f===i-1?1:(f-r)/(i-(o===0?0:1)-(r+(1-o)));c.makeRotationZ(Cc.lerp(a,a+s,h)*Cc.DEG2RAD);let m=Cc.lerp(l,d,h);u.makeScale(m,m,m),p.multiply(c).multiply(u)}),e}_computeShapePoints(e=12,r=Pe.ODD){let o=this.inputs.shapeData,i=o.extractShapePointsToFlatArray([],e),a=o.shapeHoles.map(m=>{let y=m.extractShapePointsToFlatArray([],e),g=[];for(let x=y.length-1;x>=1;x-=2){let S=y[x-1],w=y[x-0];g.push(S,w)}return g}),s;try{s=Cr({windingRule:r,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[i]})}catch{s=ys}let l;try{l=Cr({windingRule:Pe.ODD,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...a]})}catch{l=Md}if(!s)throw new Error("error generating geometry");let d=s.elementCount;if(l){s.elementCount+=l.elementCount;for(let m=0;m<l.elements.length;m++){let y=l.elements[m],g=m%2===0?s.vertexCount:0;s.elements.push(y+g)}for(let m=0;m<l.vertexIndices.length;m++){let y=l.vertexIndices[m],g=s.vertexCount;s.vertexIndices.push(y+g)}for(let m=0;m<l.vertices.length;m++){let y=l.vertices[m];s.vertices.push(y)}}let c=1/0,u=-1/0,p=1/0,f=-1/0;for(let m=0,y=s.vertexCount;m<y;m++){let g=m*2,x=s.vertices[g+0],S=s.vertices[g+1];x<c&&(c=x),x>u&&(u=x),S<p&&(p=S),S>f&&(f=S)}let h=[];for(let m=s.elementCount-1;m>=0;m--){let y=m>=d,g=m*2,x=s.elements[g+0],S=s.elements[g+1],w=x+S,b={start:x,count:S,normals:[],isHole:y,continuous:[],verticesStart:0,verticesCount:0};h.push(b);let _=x,A=w-1,v=x+1,M=o.roundedCurves.length;do{let O=_-x,T=s.vertices[A*2+0],C=s.vertices[A*2+1],P=s.vertices[_*2+0],I=s.vertices[_*2+1],L=s.vertices[v*2+0],G=s.vertices[v*2+1],N=P-T,F=I-C,B=Math.sqrt(N*N+F*F);N/=B,F/=B;let R=P-L,V=I-G,q=Math.sqrt(R*R+V*V);R/=q,V/=q,b.normals[O*2+0]=-V,b.normals[O*2+1]=R;let Y=s.vertexIndices[_];if(Array.isArray(Y))b.continuous[O]=!1;else{let[$,H]=o.getCurveIndexFromVertexId(Y-1,!0);if(H>0&&H<1)b.continuous[O]=!0;else{let X=H===1?$+1:$-1;X=(X+M)%M;let k=H===1?0:1,W=o.roundedCurves[$].getTangent(H),U=o.roundedCurves[X].getTangent(k);b.continuous[O]=W.dot(U)>.95}}y&&(b.normals[O*2+0]*=-1,b.normals[O*2+1]*=-1),[A,_,v]=[_,v,v+1],v>=w&&(v-=S)}while(v!==x+1)}return{regions:[i,...a],infos:h,vertices:s.vertices}}_insertVertex(e,r,o,i,a){let s=r*2,l=r*3;e.positions[l+0]=o.x,e.positions[l+1]=o.y,e.positions[l+2]=o.z,e.normals[l+0]=i.x,e.normals[l+1]=i.y,e.normals[l+2]=i.z,e.uvs[s+0]=a.x,e.uvs[s+1]=a.y}_extrudeRegion(e,r,o,i,a,s,l){let d=new St,c=new St,u=new St,p=new St,f=new Zg;o.forEach((m,y)=>{let g=i[y],x=e.verticesStart*o.length+e.verticesCount*y;for(let S=0;S<e.count;S++){let w=(e.start+S)*2;if(d.set(r[w+0],r[w+1],0),u.copy(d).applyMatrix4(m).add(g),e.continuous[S])p.set(e.normals[S*2+0],e.normals[S*2+1],0);else{let b=S===0?(e.start+e.count-1)*2:w-2;c.set(r[b+0],r[b+1],0),p.copy(d).sub(c),p.set(-p.y,p.x,0),e.isHole||p.negate()}if(p.applyMatrix4(m).normalize(),f.set(S===0?1:S/e.count,y/(o.length-1)),this._insertVertex(a,x,u,p,f),x++,!e.continuous[S]||S===0){if(S===0)p.set(e.normals[S*2+0],e.normals[S*2+1],0),f.set(0,y/(o.length-1));else{let b=S===e.count-1?e.start*2:w+2;c.set(r[b+0],r[b+1],0),p.copy(c).sub(d),p.set(-p.y,p.x,0),e.isHole||p.negate()}p.applyMatrix4(m).normalize(),this._insertVertex(a,x,u,p,f),x++}}});let h=o.length-1;for(let m=0;m<h;m++){let y=e.verticesStart*o.length+e.verticesCount*m,g=e.verticesStart*o.length+e.verticesCount*(m+1),x=0;for(let S=0;S<e.count;S++){(!e.continuous[S]||S===0)&&x++;let w=S===e.count-1?0:x+1,b=y+x,_=y+w,A=g+w,v=g+x;e.isHole?s.push(b,A,_,b,v,A):s.push(b,_,A,b,A,v),x++}}}_closeEnd(e,r,o,i,a,s,l){let d=e.vertexCount,c=new St(0,0,l?-1:1).applyMatrix4(a),u=new St,p=new Zg;for(let h=0;h<d;h++){let m=2*h;u.set(e.vertices[m+0],e.vertices[m+1],0).applyMatrix4(a).add(s),this._insertVertex(i,r+h,u,c,p)}let f=e.elements;for(let h=0;h<e.elementCount;h++){let m=3*h,y=f[m+0]+r,g=f[m+(l?1:2)]+r,x=f[m+(l?2:1)]+r;o.push(y,g,x)}}applyMatrix4OnRange(e,r,o){let i=e.elements,a=new r2().getNormalMatrix(e).elements,s,l,d,c,u=this.attributes.position,p=this.attributes.normal;if(!u||!p)return;let f=u.array,h=p.array,m=u.itemSize;for(let y=r*m,g=o*m;y<g;y+=m){if(y===r)debugger;s=f[y+0],l=f[y+1],d=f[y+2],c=1/(i[3]*s+i[7]*l+i[11]*d+i[15]),f[y+0]=(i[0]*s+i[4]*l+i[8]*d+i[12])*c,f[y+1]=(i[1]*s+i[5]*l+i[9]*d+i[13])*c,f[y+2]=(i[2]*s+i[6]*l+i[10]*d+i[14])*c,s=h[y+0],l=h[y+1],d=h[y+2],h[y+0]=a[0]*s+a[3]*l+a[6]*d,h[y+1]=a[1]*s+a[4]*l+a[7]*d,h[y+2]=a[2]*s+a[5]*l+a[8]*d}u.needsUpdate=!0,p.needsUpdate=!0}reverseIndicesOnRange(e,r){let o=this.index;if(o){for(let i=e;i<r;i+=3){let a=o.getX(i),s=o.getX(i+1),l=o.getX(i+2);o.setXYZ(i,l,s,a)}o.needsUpdate=!0}}};import{BufferAttribute as t0,BufferGeometry as Wd}from"three";import{mergeBufferGeometries as a2}from"three/examples/jsm/utils/BufferGeometryUtils.js";function r0(){let n=new Wd;return n.setAttribute("position",new t0(new Float32Array([]),3)),n.setIndex(new t0(new Uint16Array([]),1)),n}var s2=r0().attributes,l2=12,c2=1,ta=class extends Wd{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];Object.assign(this.attributes,s2),this.userData={parameters:e,type:"TextGeometry"};let o=r.getFont(e.font);o?.isLoaded?(this.font=o,this.update(e)):this.updateFont(e.font,r).then(()=>{this.update(e),r?.requestRender()})}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r?.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l,text:d,textTransform:c}=e,u=Kl.getDisplayedValue(d),p=c===2?u.toUpperCase():c===3?u.toLowerCase():u,f=u2(e,r,p),{shapes:h,charWidths:m,charCoords:y}=r.generateShapes(f,e),g=(typeof o=="number"?o:1)*.5,x=(typeof i=="number"?i:1)*.5,S=h.map(_=>new Ne().fromShape(_,!0));this.vectorShapes=S;let w=S.map(_=>Xt.create({shape:_,parameters:{depth:a,extrudeBevelSegments:l,extrudeBevelSize:s,windingRule:a<=0?Pe.NONZERO:Pe.ODD,subdivisions:this.isLowResolution&&a>0?c2:l2}})),b=w.length?a2(w):r0();b.translate(-g,x,0),this.dispose(),this.wrappedText=f,this.charCoords=y,this.charWidths=m,this.deleteAttribute("extrudeNormal"),Object.entries(b.attributes).forEach(([_,A])=>{this.setAttribute(_,A)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=Wt(new Wd,ta.prototype);return e.copy(this),console.log("CloneGeometry",this,e),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function u2(n,t,e){let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
15
+ `));return u(NI.bind(void 0,n))}Jx.exports=EI});var rv=qt((Jre,tv)=>{"use strict";var DI=ev();function LI(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function BI(n){var t=new LI;t.pre=n.pre,t.body=n.body,t.post=n.post;var e=n.args.slice(0);t.argTypes=e;for(var r=0;r<e.length;++r){var o=e[r];if(o==="array"||typeof o=="object"&&o.blockIndices){if(t.argTypes[r]="array",t.arrayArgs.push(r),t.arrayBlockIndices.push(o.blockIndices?o.blockIndices:0),t.shimArgs.push("array"+r),r<t.pre.args.length&&t.pre.args[r].count>0)throw new Error("cwise: pre() block may not reference array args");if(r<t.post.args.length&&t.post.args[r].count>0)throw new Error("cwise: post() block may not reference array args")}else if(o==="scalar")t.scalarArgs.push(r),t.shimArgs.push("scalar"+r);else if(o==="index"){if(t.indexArgs.push(r),r<t.pre.args.length&&t.pre.args[r].count>0)throw new Error("cwise: pre() block may not reference array index");if(r<t.body.args.length&&t.body.args[r].lvalue)throw new Error("cwise: body() block may not write to array index");if(r<t.post.args.length&&t.post.args[r].count>0)throw new Error("cwise: post() block may not reference array index")}else if(o==="shape"){if(t.shapeArgs.push(r),r<t.pre.args.length&&t.pre.args[r].lvalue)throw new Error("cwise: pre() block may not write to array shape");if(r<t.body.args.length&&t.body.args[r].lvalue)throw new Error("cwise: body() block may not write to array shape");if(r<t.post.args.length&&t.post.args[r].lvalue)throw new Error("cwise: post() block may not write to array shape")}else if(typeof o=="object"&&o.offset)t.argTypes[r]="offset",t.offsetArgs.push({array:o.array,offset:o.offset}),t.offsetArgIndex.push(r);else throw new Error("cwise: Unknown argument type "+e[r])}if(t.arrayArgs.length<=0)throw new Error("cwise: No array arguments specified");if(t.pre.args.length>e.length)throw new Error("cwise: Too many arguments in pre() block");if(t.body.args.length>e.length)throw new Error("cwise: Too many arguments in body() block");if(t.post.args.length>e.length)throw new Error("cwise: Too many arguments in post() block");return t.debug=!!n.printCode||!!n.debug,t.funcName=n.funcName||"cwise",t.blockSize=n.blockSize||64,DI(t)}tv.exports=BI});var Ua=qt(Te=>{"use strict";var tr=rv(),uu={body:"",args:[],thisVars:[],localVars:[]};function Hp(n){if(!n)return uu;for(var t=0;t<n.args.length;++t){var e=n.args[t];t===0?n.args[t]={name:e,lvalue:!0,rvalue:!!n.rvalue,count:n.count||1}:n.args[t]={name:e,lvalue:!1,rvalue:!0,count:1}}return n.thisVars||(n.thisVars=[]),n.localVars||(n.localVars=[]),n}function RI(n){return tr({args:n.args,pre:Hp(n.pre),body:Hp(n.body),post:Hp(n.proc),funcName:n.funcName})}function Qe(n){for(var t=[],e=0;e<n.args.length;++e)t.push("a"+e);var r=new Function("P",["return function ",n.funcName,"_ndarrayops(",t.join(","),") {P(",t.join(","),");return a0}"].join(""));return r(RI(n))}var ov={add:"+",sub:"-",mul:"*",div:"/",mod:"%",band:"&",bor:"|",bxor:"^",lshift:"<<",rshift:">>",rrshift:">>>"};(function(){for(var n in ov){var t=ov[n];Te[n]=Qe({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:n}),Te[n+"eq"]=Qe({args:["array","array"],body:{args:["a","b"],body:"a"+t+"=b"},rvalue:!0,funcName:n+"eq"}),Te[n+"s"]=Qe({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:n+"s"}),Te[n+"seq"]=Qe({args:["array","scalar"],body:{args:["a","s"],body:"a"+t+"=s"},rvalue:!0,funcName:n+"seq"})}})();var nv={not:"!",bnot:"~",neg:"-",recip:"1.0/"};(function(){for(var n in nv){var t=nv[n];Te[n]=Qe({args:["array","array"],body:{args:["a","b"],body:"a="+t+"b"},funcName:n}),Te[n+"eq"]=Qe({args:["array"],body:{args:["a"],body:"a="+t+"a"},rvalue:!0,count:2,funcName:n+"eq"})}})();var iv={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};(function(){for(var n in iv){var t=iv[n];Te[n]=Qe({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:n}),Te[n+"s"]=Qe({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:n+"s"}),Te[n+"eq"]=Qe({args:["array","array"],body:{args:["a","b"],body:"a=a"+t+"b"},rvalue:!0,count:2,funcName:n+"eq"}),Te[n+"seq"]=Qe({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+t+"s"},rvalue:!0,count:2,funcName:n+"seq"})}})();var av=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];(function(){for(var n=0;n<av.length;++n){var t=av[n];Te[t]=Qe({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b)",thisVars:["this_f"]},funcName:t}),Te[t+"eq"]=Qe({args:["array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a"],body:"a=this_f(a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"eq"})}})();var sv=["max","min","atan2","pow"];(function(){for(var n=0;n<sv.length;++n){var t=sv[n];Te[t]=Qe({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:t}),Te[t+"s"]=Qe({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:t+"s"}),Te[t+"eq"]=Qe({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"eq"}),Te[t+"seq"]=Qe({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"seq"})}})();var lv=["atan2","pow"];(function(){for(var n=0;n<lv.length;++n){var t=lv[n];Te[t+"op"]=Qe({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:t+"op"}),Te[t+"ops"]=Qe({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:t+"ops"}),Te[t+"opeq"]=Qe({args:["array","array"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"opeq"}),Te[t+"opseq"]=Qe({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+t,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:t+"opseq"})}})();Te.any=tr({args:["array"],pre:uu,body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"if(a){return true}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return false"},funcName:"any"});Te.all=tr({args:["array"],pre:uu,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1}],body:"if(!x){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"all"});Te.sum=tr({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s+=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"sum"});Te.prod=tr({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=1"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s*=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"prod"});Te.norm2squared=tr({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm2squared"});Te.norm2=tr({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return Math.sqrt(this_s)"},funcName:"norm2"});Te.norminf=tr({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:4}],body:"if(-a>this_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"});Te.norm1=tr({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"});Te.sup=tr({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}});Te.inf=tr({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_<this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}});Te.argmin=tr({args:["index","array","shape"],pre:{body:"{this_v=Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_<this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}});Te.argmax=tr({args:["index","array","shape"],pre:{body:"{this_v=-Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_>this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}});Te.random=Qe({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"});Te.assign=Qe({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"});Te.assigns=Qe({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"});Te.equals=tr({args:["array","array"],pre:uu,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})});var Lv=qt((Gie,Dv)=>{Dv.exports=function(t,e){for(var r=t.split("."),o=e.split("."),i=0;i<3;i++){var a=Number(r[i]),s=Number(o[i]);if(a>s)return 1;if(s>a)return-1;if(!isNaN(a)&&isNaN(s))return 1;if(isNaN(a)&&!isNaN(s))return-1}return 0}});import{FileLoader as bN,Loader as SN}from"three";function ef(n){for(let t of Object.keys(n))n[t]===void 0&&delete n[t];return n}function Wt(n,t){return Object.setPrototypeOf(n,t),n}function $s(n){return Array.isArray(n)?n:[n]}function tf(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Jv=typeof global=="object"&&global&&global.Object===Object&&global,Ys=Jv;var eb=typeof self=="object"&&self&&self.Object===Object&&self,tb=Ys||eb||Function("return this")(),lt=tb;var rb=lt.Symbol,gt=rb;var rf=Object.prototype,ob=rf.hasOwnProperty,nb=rf.toString,qa=gt?gt.toStringTag:void 0;function ib(n){var t=ob.call(n,qa),e=n[qa];try{n[qa]=void 0;var r=!0}catch{}var o=nb.call(n);return r&&(t?n[qa]=e:delete n[qa]),o}var of=ib;var ab=Object.prototype,sb=ab.toString;function lb(n){return sb.call(n)}var nf=lb;var cb="[object Null]",ub="[object Undefined]",af=gt?gt.toStringTag:void 0;function db(n){return n==null?n===void 0?ub:cb:af&&af in Object(n)?of(n):nf(n)}var or=db;function pb(n){return n!=null&&typeof n=="object"}var Ct=pb;var fb="[object Symbol]";function hb(n){return typeof n=="symbol"||Ct(n)&&or(n)==fb}var Zn=hb;function mb(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Xs=mb;var yb=Array.isArray,Ze=yb;var gb=1/0,sf=gt?gt.prototype:void 0,lf=sf?sf.toString:void 0;function cf(n){if(typeof n=="string")return n;if(Ze(n))return Xs(n,cf)+"";if(Zn(n))return lf?lf.call(n):"";var t=n+"";return t=="0"&&1/n==-gb?"-0":t}var uf=cf;function xb(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var nr=xb;function vb(n){return n}var df=vb;var bb="[object AsyncFunction]",Sb="[object Function]",wb="[object GeneratorFunction]",_b="[object Proxy]";function Ab(n){if(!nr(n))return!1;var t=or(n);return t==Sb||t==wb||t==bb||t==_b}var Ks=Ab;var Tb=lt["__core-js_shared__"],Qs=Tb;var pf=function(){var n=/[^.]+$/.exec(Qs&&Qs.keys&&Qs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Cb(n){return!!pf&&pf in n}var ff=Cb;var Pb=Function.prototype,Ob=Pb.toString;function Mb(n){if(n!=null){try{return Ob.call(n)}catch{}try{return n+""}catch{}}return""}var po=Mb;var Ib=/[\\^$.*+?()[\]{}|]/g,Nb=/^\[object .+?Constructor\]$/,Eb=Function.prototype,Db=Object.prototype,Lb=Eb.toString,Bb=Db.hasOwnProperty,Rb=RegExp("^"+Lb.call(Bb).replace(Ib,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Vb(n){if(!nr(n)||ff(n))return!1;var t=Ks(n)?Rb:Nb;return t.test(po(n))}var hf=Vb;function Gb(n,t){return n?.[t]}var mf=Gb;function zb(n,t){var e=mf(n,t);return hf(e)?e:void 0}var $t=zb;var kb=$t(lt,"WeakMap"),Zs=kb;var yf=Object.create,Fb=function(){function n(){}return function(t){if(!nr(t))return{};if(yf)return yf(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),gf=Fb;function jb(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var xf=jb;function Ub(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var vf=Ub;var Hb=800,qb=16,Wb=Date.now;function $b(n){var t=0,e=0;return function(){var r=Wb(),o=qb-(r-e);if(e=r,o>0){if(++t>=Hb)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var bf=$b;function Yb(n){return function(){return n}}var Sf=Yb;var Xb=function(){try{var n=$t(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Jn=Xb;var Kb=Jn?function(n,t){return Jn(n,"toString",{configurable:!0,enumerable:!1,value:Sf(t),writable:!0})}:df,wf=Kb;var Qb=bf(wf),_f=Qb;function Zb(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var Af=Zb;var Jb=9007199254740991,eS=/^(?:0|[1-9]\d*)$/;function tS(n,t){var e=typeof n;return t=t??Jb,!!t&&(e=="number"||e!="symbol"&&eS.test(n))&&n>-1&&n%1==0&&n<t}var ei=tS;function rS(n,t,e){t=="__proto__"&&Jn?Jn(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Js=rS;function oS(n,t){return n===t||n!==n&&t!==t}var ti=oS;var nS=Object.prototype,iS=nS.hasOwnProperty;function aS(n,t,e){var r=n[t];(!(iS.call(n,t)&&ti(r,e))||e===void 0&&!(t in n))&&Js(n,t,e)}var ri=aS;function sS(n,t,e,r){var o=!e;e||(e={});for(var i=-1,a=t.length;++i<a;){var s=t[i],l=r?r(e[s],n[s],s,e,n):void 0;l===void 0&&(l=n[s]),o?Js(e,s,l):ri(e,s,l)}return e}var Rr=sS;var Tf=Math.max;function lS(n,t,e){return t=Tf(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Tf(r.length-t,0),a=Array(i);++o<i;)a[o]=r[t+o];o=-1;for(var s=Array(t+1);++o<t;)s[o]=r[o];return s[t]=e(a),xf(n,this,s)}}var Cf=lS;var cS=9007199254740991;function uS(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=cS}var oi=uS;function dS(n){return n!=null&&oi(n.length)&&!Ks(n)}var el=dS;var pS=Object.prototype;function fS(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||pS;return n===e}var ni=fS;function hS(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var Pf=hS;var mS="[object Arguments]";function yS(n){return Ct(n)&&or(n)==mS}var yu=yS;var Of=Object.prototype,gS=Of.hasOwnProperty,xS=Of.propertyIsEnumerable,vS=yu(function(){return arguments}())?yu:function(n){return Ct(n)&&gS.call(n,"callee")&&!xS.call(n,"callee")},ii=vS;function bS(){return!1}var Mf=bS;var Ef=typeof exports=="object"&&exports&&!exports.nodeType&&exports,If=Ef&&typeof module=="object"&&module&&!module.nodeType&&module,SS=If&&If.exports===Ef,Nf=SS?lt.Buffer:void 0,wS=Nf?Nf.isBuffer:void 0,_S=wS||Mf,xn=_S;var AS="[object Arguments]",TS="[object Array]",CS="[object Boolean]",PS="[object Date]",OS="[object Error]",MS="[object Function]",IS="[object Map]",NS="[object Number]",ES="[object Object]",DS="[object RegExp]",LS="[object Set]",BS="[object String]",RS="[object WeakMap]",VS="[object ArrayBuffer]",GS="[object DataView]",zS="[object Float32Array]",kS="[object Float64Array]",FS="[object Int8Array]",jS="[object Int16Array]",US="[object Int32Array]",HS="[object Uint8Array]",qS="[object Uint8ClampedArray]",WS="[object Uint16Array]",$S="[object Uint32Array]",qe={};qe[zS]=qe[kS]=qe[FS]=qe[jS]=qe[US]=qe[HS]=qe[qS]=qe[WS]=qe[$S]=!0;qe[AS]=qe[TS]=qe[VS]=qe[CS]=qe[GS]=qe[PS]=qe[OS]=qe[MS]=qe[IS]=qe[NS]=qe[ES]=qe[DS]=qe[LS]=qe[BS]=qe[RS]=!1;function YS(n){return Ct(n)&&oi(n.length)&&!!qe[or(n)]}var Df=YS;function XS(n){return function(t){return n(t)}}var ai=XS;var Lf=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wa=Lf&&typeof module=="object"&&module&&!module.nodeType&&module,KS=Wa&&Wa.exports===Lf,gu=KS&&Ys.process,QS=function(){try{var n=Wa&&Wa.require&&Wa.require("util").types;return n||gu&&gu.binding&&gu.binding("util")}catch{}}(),fo=QS;var Bf=fo&&fo.isTypedArray,ZS=Bf?ai(Bf):Df,tl=ZS;var JS=Object.prototype,e1=JS.hasOwnProperty;function t1(n,t){var e=Ze(n),r=!e&&ii(n),o=!e&&!r&&xn(n),i=!e&&!r&&!o&&tl(n),a=e||r||o||i,s=a?Pf(n.length,String):[],l=s.length;for(var d in n)(t||e1.call(n,d))&&!(a&&(d=="length"||o&&(d=="offset"||d=="parent")||i&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||ei(d,l)))&&s.push(d);return s}var rl=t1;function r1(n,t){return function(e){return n(t(e))}}var ol=r1;var o1=ol(Object.keys,Object),Rf=o1;var n1=Object.prototype,i1=n1.hasOwnProperty;function a1(n){if(!ni(n))return Rf(n);var t=[];for(var e in Object(n))i1.call(n,e)&&e!="constructor"&&t.push(e);return t}var Vf=a1;function s1(n){return el(n)?rl(n):Vf(n)}var si=s1;function l1(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Gf=l1;var c1=Object.prototype,u1=c1.hasOwnProperty;function d1(n){if(!nr(n))return Gf(n);var t=ni(n),e=[];for(var r in n)r=="constructor"&&(t||!u1.call(n,r))||e.push(r);return e}var zf=d1;function p1(n){return el(n)?rl(n,!0):zf(n)}var li=p1;var f1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,h1=/^\w*$/;function m1(n,t){if(Ze(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||Zn(n)?!0:h1.test(n)||!f1.test(n)||t!=null&&n in Object(t)}var kf=m1;var y1=$t(Object,"create"),ho=y1;function g1(){this.__data__=ho?ho(null):{},this.size=0}var Ff=g1;function x1(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var jf=x1;var v1="__lodash_hash_undefined__",b1=Object.prototype,S1=b1.hasOwnProperty;function w1(n){var t=this.__data__;if(ho){var e=t[n];return e===v1?void 0:e}return S1.call(t,n)?t[n]:void 0}var Uf=w1;var _1=Object.prototype,A1=_1.hasOwnProperty;function T1(n){var t=this.__data__;return ho?t[n]!==void 0:A1.call(t,n)}var Hf=T1;var C1="__lodash_hash_undefined__";function P1(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=ho&&t===void 0?C1:t,this}var qf=P1;function ci(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}ci.prototype.clear=Ff;ci.prototype.delete=jf;ci.prototype.get=Uf;ci.prototype.has=Hf;ci.prototype.set=qf;var xu=ci;function O1(){this.__data__=[],this.size=0}var Wf=O1;function M1(n,t){for(var e=n.length;e--;)if(ti(n[e][0],t))return e;return-1}var Eo=M1;var I1=Array.prototype,N1=I1.splice;function E1(n){var t=this.__data__,e=Eo(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():N1.call(t,e,1),--this.size,!0}var $f=E1;function D1(n){var t=this.__data__,e=Eo(t,n);return e<0?void 0:t[e][1]}var Yf=D1;function L1(n){return Eo(this.__data__,n)>-1}var Xf=L1;function B1(n,t){var e=this.__data__,r=Eo(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var Kf=B1;function ui(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}ui.prototype.clear=Wf;ui.prototype.delete=$f;ui.prototype.get=Yf;ui.prototype.has=Xf;ui.prototype.set=Kf;var Do=ui;var R1=$t(lt,"Map"),Lo=R1;function V1(){this.size=0,this.__data__={hash:new xu,map:new(Lo||Do),string:new xu}}var Qf=V1;function G1(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var Zf=G1;function z1(n,t){var e=n.__data__;return Zf(t)?e[typeof t=="string"?"string":"hash"]:e.map}var Bo=z1;function k1(n){var t=Bo(this,n).delete(n);return this.size-=t?1:0,t}var Jf=k1;function F1(n){return Bo(this,n).get(n)}var eh=F1;function j1(n){return Bo(this,n).has(n)}var th=j1;function U1(n,t){var e=Bo(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var rh=U1;function di(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}di.prototype.clear=Qf;di.prototype.delete=Jf;di.prototype.get=eh;di.prototype.has=th;di.prototype.set=rh;var vn=di;var H1="Expected a function";function vu(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(H1);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var a=n.apply(this,r);return e.cache=i.set(o,a)||i,a};return e.cache=new(vu.Cache||vn),e}vu.Cache=vn;var oh=vu;var q1=500;function W1(n){var t=oh(n,function(r){return e.size===q1&&e.clear(),r}),e=t.cache;return t}var nh=W1;var $1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Y1=/\\(\\)?/g,X1=nh(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace($1,function(e,r,o,i){t.push(o?i.replace(Y1,"$1"):r||e)}),t}),ih=X1;function K1(n){return n==null?"":uf(n)}var ah=K1;function Q1(n,t){return Ze(n)?n:kf(n,t)?[n]:ih(ah(n))}var ur=Q1;var Z1=1/0;function J1(n){if(typeof n=="string"||Zn(n))return n;var t=n+"";return t=="0"&&1/n==-Z1?"-0":t}var Ro=J1;function ew(n,t){t=ur(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[Ro(t[e++])];return e&&e==r?n:void 0}var nl=ew;function tw(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var pi=tw;var sh=gt?gt.isConcatSpreadable:void 0;function rw(n){return Ze(n)||ii(n)||!!(sh&&n&&n[sh])}var lh=rw;function ch(n,t,e,r,o){var i=-1,a=n.length;for(e||(e=lh),o||(o=[]);++i<a;){var s=n[i];t>0&&e(s)?t>1?ch(s,t-1,e,r,o):pi(o,s):r||(o[o.length]=s)}return o}var uh=ch;function ow(n){var t=n==null?0:n.length;return t?uh(n,1):[]}var dh=ow;function nw(n){return _f(Cf(n,void 0,dh),n+"")}var il=nw;var iw=ol(Object.getPrototypeOf,Object),fi=iw;var aw="[object Object]",sw=Function.prototype,lw=Object.prototype,ph=sw.toString,cw=lw.hasOwnProperty,uw=ph.call(Object);function dw(n){if(!Ct(n)||or(n)!=aw)return!1;var t=fi(n);if(t===null)return!0;var e=cw.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&ph.call(e)==uw}var fh=dw;function pw(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var hh=pw;function fw(){this.__data__=new Do,this.size=0}var mh=fw;function hw(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var yh=hw;function mw(n){return this.__data__.get(n)}var gh=mw;function yw(n){return this.__data__.has(n)}var xh=yw;var gw=200;function xw(n,t){var e=this.__data__;if(e instanceof Do){var r=e.__data__;if(!Lo||r.length<gw-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new vn(r)}return e.set(n,t),this.size=e.size,this}var vh=xw;function hi(n){var t=this.__data__=new Do(n);this.size=t.size}hi.prototype.clear=mh;hi.prototype.delete=yh;hi.prototype.get=gh;hi.prototype.has=xh;hi.prototype.set=vh;var mi=hi;function vw(n,t){return n&&Rr(t,si(t),n)}var bh=vw;function bw(n,t){return n&&Rr(t,li(t),n)}var Sh=bw;var Th=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wh=Th&&typeof module=="object"&&module&&!module.nodeType&&module,Sw=wh&&wh.exports===Th,_h=Sw?lt.Buffer:void 0,Ah=_h?_h.allocUnsafe:void 0;function ww(n,t){if(t)return n.slice();var e=n.length,r=Ah?Ah(e):new n.constructor(e);return n.copy(r),r}var Ch=ww;function _w(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var a=n[e];t(a,e,n)&&(i[o++]=a)}return i}var Ph=_w;function Aw(){return[]}var al=Aw;var Tw=Object.prototype,Cw=Tw.propertyIsEnumerable,Oh=Object.getOwnPropertySymbols,Pw=Oh?function(n){return n==null?[]:(n=Object(n),Ph(Oh(n),function(t){return Cw.call(n,t)}))}:al,yi=Pw;function Ow(n,t){return Rr(n,yi(n),t)}var Mh=Ow;var Mw=Object.getOwnPropertySymbols,Iw=Mw?function(n){for(var t=[];n;)pi(t,yi(n)),n=fi(n);return t}:al,sl=Iw;function Nw(n,t){return Rr(n,sl(n),t)}var Ih=Nw;function Ew(n,t,e){var r=t(n);return Ze(n)?r:pi(r,e(n))}var ll=Ew;function Dw(n){return ll(n,si,yi)}var $a=Dw;function Lw(n){return ll(n,li,sl)}var cl=Lw;var Bw=$t(lt,"DataView"),ul=Bw;var Rw=$t(lt,"Promise"),dl=Rw;var Vw=$t(lt,"Set"),pl=Vw;var Nh="[object Map]",Gw="[object Object]",Eh="[object Promise]",Dh="[object Set]",Lh="[object WeakMap]",Bh="[object DataView]",zw=po(ul),kw=po(Lo),Fw=po(dl),jw=po(pl),Uw=po(Zs),bn=or;(ul&&bn(new ul(new ArrayBuffer(1)))!=Bh||Lo&&bn(new Lo)!=Nh||dl&&bn(dl.resolve())!=Eh||pl&&bn(new pl)!=Dh||Zs&&bn(new Zs)!=Lh)&&(bn=function(n){var t=or(n),e=t==Gw?n.constructor:void 0,r=e?po(e):"";if(r)switch(r){case zw:return Bh;case kw:return Nh;case Fw:return Eh;case jw:return Dh;case Uw:return Lh}return t});var mo=bn;var Hw=Object.prototype,qw=Hw.hasOwnProperty;function Ww(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&qw.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Rh=Ww;var $w=lt.Uint8Array,gi=$w;function Yw(n){var t=new n.constructor(n.byteLength);return new gi(t).set(new gi(n)),t}var xi=Yw;function Xw(n,t){var e=t?xi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Vh=Xw;var Kw=/\w*$/;function Qw(n){var t=new n.constructor(n.source,Kw.exec(n));return t.lastIndex=n.lastIndex,t}var Gh=Qw;var zh=gt?gt.prototype:void 0,kh=zh?zh.valueOf:void 0;function Zw(n){return kh?Object(kh.call(n)):{}}var Fh=Zw;function Jw(n,t){var e=t?xi(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var jh=Jw;var e_="[object Boolean]",t_="[object Date]",r_="[object Map]",o_="[object Number]",n_="[object RegExp]",i_="[object Set]",a_="[object String]",s_="[object Symbol]",l_="[object ArrayBuffer]",c_="[object DataView]",u_="[object Float32Array]",d_="[object Float64Array]",p_="[object Int8Array]",f_="[object Int16Array]",h_="[object Int32Array]",m_="[object Uint8Array]",y_="[object Uint8ClampedArray]",g_="[object Uint16Array]",x_="[object Uint32Array]";function v_(n,t,e){var r=n.constructor;switch(t){case l_:return xi(n);case e_:case t_:return new r(+n);case c_:return Vh(n,e);case u_:case d_:case p_:case f_:case h_:case m_:case y_:case g_:case x_:return jh(n,e);case r_:return new r;case o_:case a_:return new r(n);case n_:return Gh(n);case i_:return new r;case s_:return Fh(n)}}var Uh=v_;function b_(n){return typeof n.constructor=="function"&&!ni(n)?gf(fi(n)):{}}var Hh=b_;var S_="[object Map]";function w_(n){return Ct(n)&&mo(n)==S_}var qh=w_;var Wh=fo&&fo.isMap,__=Wh?ai(Wh):qh,$h=__;var A_="[object Set]";function T_(n){return Ct(n)&&mo(n)==A_}var Yh=T_;var Xh=fo&&fo.isSet,C_=Xh?ai(Xh):Yh,Kh=C_;var P_=1,O_=2,M_=4,Qh="[object Arguments]",I_="[object Array]",N_="[object Boolean]",E_="[object Date]",D_="[object Error]",Zh="[object Function]",L_="[object GeneratorFunction]",B_="[object Map]",R_="[object Number]",Jh="[object Object]",V_="[object RegExp]",G_="[object Set]",z_="[object String]",k_="[object Symbol]",F_="[object WeakMap]",j_="[object ArrayBuffer]",U_="[object DataView]",H_="[object Float32Array]",q_="[object Float64Array]",W_="[object Int8Array]",$_="[object Int16Array]",Y_="[object Int32Array]",X_="[object Uint8Array]",K_="[object Uint8ClampedArray]",Q_="[object Uint16Array]",Z_="[object Uint32Array]",Ue={};Ue[Qh]=Ue[I_]=Ue[j_]=Ue[U_]=Ue[N_]=Ue[E_]=Ue[H_]=Ue[q_]=Ue[W_]=Ue[$_]=Ue[Y_]=Ue[B_]=Ue[R_]=Ue[Jh]=Ue[V_]=Ue[G_]=Ue[z_]=Ue[k_]=Ue[X_]=Ue[K_]=Ue[Q_]=Ue[Z_]=!0;Ue[D_]=Ue[Zh]=Ue[F_]=!1;function fl(n,t,e,r,o,i){var a,s=t&P_,l=t&O_,d=t&M_;if(e&&(a=o?e(n,r,o,i):e(n)),a!==void 0)return a;if(!nr(n))return n;var c=Ze(n);if(c){if(a=Rh(n),!s)return vf(n,a)}else{var u=mo(n),p=u==Zh||u==L_;if(xn(n))return Ch(n,s);if(u==Jh||u==Qh||p&&!o){if(a=l||p?{}:Hh(n),!s)return l?Ih(n,Sh(a,n)):Mh(n,bh(a,n))}else{if(!Ue[u])return o?n:{};a=Uh(n,u,s)}}i||(i=new mi);var f=i.get(n);if(f)return f;i.set(n,a),Kh(n)?n.forEach(function(y){a.add(fl(y,t,e,y,n,i))}):$h(n)&&n.forEach(function(y,g){a.set(g,fl(y,t,e,g,n,i))});var h=d?l?cl:$a:l?li:si,m=c?void 0:h(n);return Af(m||n,function(y,g){m&&(g=y,y=n[g]),ri(a,g,fl(y,t,e,g,n,i))}),a}var hl=fl;var J_=1,eA=4;function tA(n){return hl(n,J_|eA)}var yo=tA;var rA="__lodash_hash_undefined__";function oA(n){return this.__data__.set(n,rA),this}var em=oA;function nA(n){return this.__data__.has(n)}var tm=nA;function ml(n){var t=-1,e=n==null?0:n.length;for(this.__data__=new vn;++t<e;)this.add(n[t])}ml.prototype.add=ml.prototype.push=em;ml.prototype.has=tm;var rm=ml;function iA(n,t){for(var e=-1,r=n==null?0:n.length;++e<r;)if(t(n[e],e,n))return!0;return!1}var om=iA;function aA(n,t){return n.has(t)}var nm=aA;var sA=1,lA=2;function cA(n,t,e,r,o,i){var a=e&sA,s=n.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var d=i.get(n),c=i.get(t);if(d&&c)return d==t&&c==n;var u=-1,p=!0,f=e&lA?new rm:void 0;for(i.set(n,t),i.set(t,n);++u<s;){var h=n[u],m=t[u];if(r)var y=a?r(m,h,u,t,n,i):r(h,m,u,n,t,i);if(y!==void 0){if(y)continue;p=!1;break}if(f){if(!om(t,function(g,x){if(!nm(f,x)&&(h===g||o(h,g,e,r,i)))return f.push(x)})){p=!1;break}}else if(!(h===m||o(h,m,e,r,i))){p=!1;break}}return i.delete(n),i.delete(t),p}var yl=cA;function uA(n){var t=-1,e=Array(n.size);return n.forEach(function(r,o){e[++t]=[o,r]}),e}var im=uA;function dA(n){var t=-1,e=Array(n.size);return n.forEach(function(r){e[++t]=r}),e}var am=dA;var pA=1,fA=2,hA="[object Boolean]",mA="[object Date]",yA="[object Error]",gA="[object Map]",xA="[object Number]",vA="[object RegExp]",bA="[object Set]",SA="[object String]",wA="[object Symbol]",_A="[object ArrayBuffer]",AA="[object DataView]",sm=gt?gt.prototype:void 0,bu=sm?sm.valueOf:void 0;function TA(n,t,e,r,o,i,a){switch(e){case AA:if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)return!1;n=n.buffer,t=t.buffer;case _A:return!(n.byteLength!=t.byteLength||!i(new gi(n),new gi(t)));case hA:case mA:case xA:return ti(+n,+t);case yA:return n.name==t.name&&n.message==t.message;case vA:case SA:return n==t+"";case gA:var s=im;case bA:var l=r&pA;if(s||(s=am),n.size!=t.size&&!l)return!1;var d=a.get(n);if(d)return d==t;r|=fA,a.set(n,t);var c=yl(s(n),s(t),r,o,i,a);return a.delete(n),c;case wA:if(bu)return bu.call(n)==bu.call(t)}return!1}var lm=TA;var CA=1,PA=Object.prototype,OA=PA.hasOwnProperty;function MA(n,t,e,r,o,i){var a=e&CA,s=$a(n),l=s.length,d=$a(t),c=d.length;if(l!=c&&!a)return!1;for(var u=l;u--;){var p=s[u];if(!(a?p in t:OA.call(t,p)))return!1}var f=i.get(n),h=i.get(t);if(f&&h)return f==t&&h==n;var m=!0;i.set(n,t),i.set(t,n);for(var y=a;++u<l;){p=s[u];var g=n[p],x=t[p];if(r)var S=a?r(x,g,p,t,n,i):r(g,x,p,n,t,i);if(!(S===void 0?g===x||o(g,x,e,r,i):S)){m=!1;break}y||(y=p=="constructor")}if(m&&!y){var w=n.constructor,b=t.constructor;w!=b&&"constructor"in n&&"constructor"in t&&!(typeof w=="function"&&w instanceof w&&typeof b=="function"&&b instanceof b)&&(m=!1)}return i.delete(n),i.delete(t),m}var cm=MA;var IA=1,um="[object Arguments]",dm="[object Array]",gl="[object Object]",NA=Object.prototype,pm=NA.hasOwnProperty;function EA(n,t,e,r,o,i){var a=Ze(n),s=Ze(t),l=a?dm:mo(n),d=s?dm:mo(t);l=l==um?gl:l,d=d==um?gl:d;var c=l==gl,u=d==gl,p=l==d;if(p&&xn(n)){if(!xn(t))return!1;a=!0,c=!1}if(p&&!c)return i||(i=new mi),a||tl(n)?yl(n,t,e,r,o,i):lm(n,t,l,e,r,o,i);if(!(e&IA)){var f=c&&pm.call(n,"__wrapped__"),h=u&&pm.call(t,"__wrapped__");if(f||h){var m=f?n.value():n,y=h?t.value():t;return i||(i=new mi),o(m,y,e,r,i)}}return p?(i||(i=new mi),cm(n,t,e,r,o,i)):!1}var fm=EA;function hm(n,t,e,r,o){return n===t?!0:n==null||t==null||!Ct(n)&&!Ct(t)?n!==n&&t!==t:fm(n,t,e,r,hm,o)}var mm=hm;function DA(n,t){return n!=null&&t in Object(n)}var ym=DA;function LA(n,t,e){t=ur(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var a=Ro(t[r]);if(!(i=n!=null&&e(n,a)))break;n=n[a]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&oi(o)&&ei(a,o)&&(Ze(n)||ii(n)))}var gm=LA;function BA(n,t){return n!=null&&gm(n,t,ym)}var xm=BA;function RA(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var vm=RA;function VA(n,t){return t.length<2?n:nl(n,hh(t,0,-1))}var bm=VA;function GA(n,t){return mm(n,t)}var Su=GA;function zA(n,t){return t=ur(t,n),n=bm(n,t),n==null||delete n[Ro(vm(t))]}var Sm=zA;function kA(n){return fh(n)?void 0:n}var wm=kA;var FA=1,jA=2,UA=4,HA=il(function(n,t){var e={};if(n==null)return e;var r=!1;t=Xs(t,function(i){return i=ur(i,n),r||(r=i.length>1),i}),Rr(n,cl(n),e),r&&(e=hl(e,FA|jA|UA,wm));for(var o=t.length;o--;)Sm(e,t[o]);return e}),vi=HA;function qA(n,t,e,r){if(!nr(n))return n;t=ur(t,n);for(var o=-1,i=t.length,a=i-1,s=n;s!=null&&++o<i;){var l=Ro(t[o]),d=e;if(l==="__proto__"||l==="constructor"||l==="prototype")return n;if(o!=a){var c=s[l];d=r?r(c,l,s):void 0,d===void 0&&(d=nr(c)?c:ei(t[o+1])?[]:{})}ri(s,l,d),s=s[l]}return n}var _m=qA;function WA(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var a=t[r],s=nl(n,a);e(s,a)&&_m(i,ur(a,n),s)}return i}var Am=WA;function $A(n,t){return Am(n,t,function(e,r){return xm(n,r)})}var Tm=$A;var YA=il(function(n,t){return n==null?{}:Tm(n,t)}),xr=YA;var he=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,he.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:a}=t,s={...e,[i]:a};return Object.setPrototypeOf(s,he.prototype),{data:s,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,he.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function Ya(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Ya(r)}return Object.freeze(n)}function Cm(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var bi=class extends Error{};function xl(n){let t={...n};return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}function Vr(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let a=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(a)}return r}function Si(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Pm(){return typeof process<"u"}function Om(n,t){for(let e of n)t(e.id,e.data)!==!0&&Om(e.children,t)}function Mm(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)Mm(e,t)}var $e=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,$e.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Ya(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}nonExistOrDescendantOf(e,r){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}rootAcestor(e){for(;e;){let r=this.parent(e);if(r)e=r;else return e}return e}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Mm(o,r)}}traverse(e){Om(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),a=this.childrenArray(i),s=a.findIndex(c=>c.id===e);if(s<0)throw new Error("not expected");let l=a[s];return a=[...a],a[s]={...l,data:r},this.modifyArrayBy(i,a)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let s=i,l=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let d=i.findIndex(c=>c.id===l);if(d<0)throw new Error;i=[...i],i[d]={...i[d],children:s}}Object.setPrototypeOf(i,$e.prototype);let a=i;return a.fillCaches(),a}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}return null}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:a,children:s}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let l=r,d=this.childrenArray(l),c={fi:o,id:i,data:a,children:s};return d=[...d,c],d.sort((p,f)=>p.fi-f.fi),e.localIndex=d.indexOf(c),{data:this.modifyArrayBy(l,d),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),a=i.findIndex(d=>d.id===r);e.localIndex=a,i=[...i];let s=i.splice(a,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...s,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new bi("cyclic tree");f=this.parent(f)}}let a=this.parent(i);if(a===void 0)return null;let s=a,l=this.childrenArray(a),d=l.findIndex(f=>f.id===i);l=[...l];let c=l.splice(d,1)[0],u=this.modifyArrayBy(a,l);a=r,l=u.childrenArray(a);let p=c.fi;return c={...c,fi:o},l=[...l,c],l.sort((f,h)=>f.fi-h.fi),e.localIndex=l.indexOf(c),u=u.modifyArrayBy(a,l),{data:u,actual:e,reverse:{type:9,parent:s,fi:p,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(a=>a.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(a=>a.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>Cm(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),a=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...a,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return Vr(0,o,o);{let a=i[0].fi;return Vr(a-o,a,o)}}else{let a=this.get(r);if(a===void 0||this.parent(r)!==e)throw new Error("illegal args");let s=i.find(l=>l.fi>a.fi);if(s===void 0){let l=i[i.length-1].fi;return Vr(l,l+o,o)}else return Vr(a.fi,s.fi,o)}}};var wi;(t=>{function n(e,r){if(r.type!==0)return null;if(Array.isArray(e)){let o=r.props,i={},a=[...e],s=!1;if(o)for(let l of Object.keys(o)){let d=parseInt(l);if(isNaN(d))throw new Error("wrong index");i[l]=a[d],a[d]=o[l],s=!0}return s?{data:a,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},a={...e},s=!1;if(o)for(let l of Object.keys(o)){i[l]=a[l];let d=o[l];d===void 0?delete a[l]:a[l]=d,s=!0}return s?{data:a,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(wi||(wi={}));var ye=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ye.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Ya(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,a=i.findIndex(d=>d.id===e);if(a<0)throw new Error("not expected");let s=i[a];return i=[...i],i[a]={...s,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ye.prototype);let r=e;return Pm()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}return null}addOp(e){let{fi:r,id:o,data:i}=e,a=this,s={fi:r,id:o,data:i};return a=[...a,s],a.sort((d,c)=>d.fi-c.fi),e.localIndex=a.indexOf(s),{data:this.modifyArrayBy(a),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(l=>l.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let a=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...a}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let a=i.findIndex(c=>c.id===o);if(a===-1)return null;let s=i[a].fi,l={...i[a],fi:r};return i[a]=l,i.sort((c,u)=>c.fi-u.fi),e.localIndex=i.indexOf(l),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:s,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return Vr(0,r,r);{let i=o[0].fi;return Vr(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let a=o.find(s=>s.fi>i.fi);if(a===void 0){let s=o[o.length-1].fi;return Vr(s,s+r,r)}else return Vr(i.fi,a.fi,r)}}};function _i(n){return n&&typeof n=="object"&&n instanceof ke}var ke=class{unusedFunOverridesTable(t){}runOp(t){let e=[],r=this,o=0,i={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r!==void 0&&!_i(r))return null;o+=1}r=r?xl(r):new ke;for(let[l,d]of Object.entries(t.props)){let c=r[l];i[l]=c,d===void 0?delete r[l]:r[l]=d}for(;o>0;){if(Object.keys(r).length===0){let l=e[o-1];l&&(r=xl(l),delete r[t.path[o-1]])}else{let l=e[o-1];if(l){let d=xl(l);d[t.path[o-1]]=r,r=d}else{let d=new ke;d[t.path[o-1]]=r,r=d}}o-=1}let a=Object.setPrototypeOf(r,ke.prototype),s={...t,props:i};return{data:a,actual:t,reverse:s}}},Gr;(r=>{function n(o,i){return Xa(o,i)??o}r.apply=n;function t(o,i){return _u(o,i)}r.merge=t;function e(o,i){let a=0,s=i.path,l=o;for(;a<s.length&&l!==void 0;){if(l=ot.zoomOnce(l,s[a]),l===void 0)return i;if(!_i(l))return;a+=1}if(l===void 0)return i;if(!!_i(l))if(i.type===0){let d={...i.props};for(let c of Object.keys(l))delete d[c];return{...i,props:d}}else if(i.type===1||i.type===4||i.type===7){let d=wu([i],l);return d?(console.log(d),d):i}else return i}r.filterOp=e})(Gr||(Gr={}));function wu(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,a=Xa(o.data,t[i]);if(e=e||a!==void 0,a===void 0&&(a=o.data),o.children){let s=wu(o.children,t);return s!==void 0?e=!0:s=o.children,{...o,id:i,data:a,children:s}}else return{...o,id:i,data:a}});if(e)return r}function XA(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,a=Xa(o.data,t[i]);return e=e||a!==void 0,a===void 0&&(a=o.data),{...o,id:i,data:a}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function Xa(n,t){if(!_i(t))return t;if(n instanceof $e){let e=wu(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ye)return XA(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let a=Xa(o,t[i]);return e=e||a!==void 0,a===void 0&&(a=o),a});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else{if(n instanceof ke)return _u(n,t);if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let a=Xa(i,t[o]);r=r||a!==void 0,a===void 0&&(a=i),e[o]=a}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}}}}function _u(n,t){if(n===void 0)return t;if(t===void 0)return n;if(!_i(t))return t;if(!_i(n))return Gr.apply(n,t);let e=new Set;for(let o of Object.keys(n))e.add(o);for(let o of Object.keys(t))e.add(o);let r=new ke;for(let o of e){let i=_u(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}function Im(n,t){let e={cur:[],result:[],len:0};return n=Ka(n,t,e)??n,[n,e.result]}function vl(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function bl(n){n&&(n.len-=1)}function KA(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function Nm(n,t,e){let r=!1,o=n.map(i=>{let a=i.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=Ka(i.data,t,vl(e,a));bl(e),r=r||l!==void 0,l===void 0&&(l=i.data);let d=Nm(i.children,t,e);return d!==void 0?r=!0:d=i.children,{...i,id:a,data:l,children:d}});if(r)return o}function QA(n,t,e){let r=!1,o=n.map(i=>{let a=i.id,s=t[a];if(s!==void 0&&typeof s=="string"&&(r=!0,a=s,e!==null))throw new Error("not supported");let l=Ka(i.data,t,vl(e,a));return bl(e),r=r||l!==void 0,l===void 0&&(l=i.data),{...i,id:a,data:l}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function Ka(n,t,e){if(n instanceof $e){let r=Nm(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ye)return QA(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,a)=>{let s=Ka(i,t,vl(e,a));return bl(e),r=r||s!==void 0,s===void 0&&(s=i),s});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"&&!Si(n)){let r={},o=!1;for(let[i,a]of Object.entries(n))if(i!=="name"){let s=t[i];if(typeof s=="string"){if(e!==null)throw new Error("not supported");o=!0,i=s}let l=Ka(a,t,vl(e,i));bl(e),o=o||l!==void 0,l===void 0&&(l=a),r[i]=l}else r[i]=a;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];return r!==void 0&&KA(e),r}else return}}var Sl;(t=>{function n(e,r){let o=ot.zoom(r,e.path);if(typeof o=="object"){let i={};for(let a of Object.keys(e.props))i[a]=o[a];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(Sl||(Sl={}));var nt;(s=>{function n(l,d){return{...l,path:l.path.slice(d)}}s.drop=n;function t(l,d){return e(l,d)?.data??l}s.applySimple=t;function e(l,d){let c=d.path;for(var u=[];;){let p;if(l instanceof ke&&d.type===0&&(p=l.runOp({...d,path:c.slice(u.length)}),p===null&&(p=void 0)),p===void 0&&u.length===c.length&&(l instanceof $e||l instanceof ye||l instanceof he?p=l.runOp(d):p=wi.runOp(l,d)),p!==void 0)if(p!==null){let m=p.data;for(let y=u.length-1;y>=0;y--){let g=c[y],x=u[y];if(x instanceof $e){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof ye){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof he){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof ke){let S={...x,[g]:m};m=Object.setPrototypeOf(S,ke.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof g=="string"&&(g=parseInt(g),isNaN(g)))throw new Error("Invalid path");let S=m;m=[...x],m[g]=S}else m={...x,[g]:m};else return null}return{data:m,actual:{...p.actual,path:c},reverse:{...p.reverse,path:c}}}else return null;let f=c[u.length],h;if(l instanceof $e){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else if(l instanceof ye){if(typeof f=="number")throw new Error("");h=l.get(f)?.data}else l!==null&&(h=l[f]);if(h!==void 0)u.push(l),l=h;else return null}}s.apply=e;function r(l,d){for(let c=0;c<l.length&&c<d.length;c++)if(l[c]!==d[c])return!0;return!1}s.pathDisjoint=r;function o(l,d){if(l.length!==d.length)return!1;for(let c=0;c<l.length;c++)if(l[c]!==d[c])return!1;return!0}s.pathEq=o;function i(l,d){return r(l.path,d.path)}s.commutative=i;function a(l,d){return l.type===0&&d.type===0&&o(l.path,d.path)?Object.keys(l.props).every(c=>d.props[c]!==void 0):!1}s.subsumed=a})(nt||(nt={}));var Qa;(l=>{function n(){return[]}l.empty=n;function t(d,c){let u=[];for(let p of d){let[f,...h]=p.path;f===c&&u.push({...p,path:h})}return u}l.removePrefix=t;function e(d,c){return d.map(u=>({...u,path:[c,...u.path]}))}l.addPrefix=e;function r(d,c){return[...d,...c]}l.concat=r;function o(d,c){return[...d.filter(p=>!c.some(f=>nt.subsumed(p,f))),...c]}l.compress=o;function i(d,c){return d.every(u=>c.every(p=>nt.commutative(u,p)))}l.commutative=i;function a(d,c){for(let u of c){let p=s(d,u);p!==null&&(d=p.data)}return d}l.applyAll=a;function s(d,c){var u=d;let p=[],f=[];for(let h of c)try{if(h.type===3||h.type===5&&h.path[h.path.length-1]==="variables"){let m,y,g;if(h.type===3?(m=ot.zoom(u,[...h.path,h.id]),g=nt.apply(u,{...h,type:2})):(m=ot.zoom(u,[...h.path,h.id,"value"]),g=nt.apply(u,h)),g!==null){u=g.data;let[x,S]=Im(u,{[h.id]:m});u=x;for(let w=0;w<S.length;w++){let b=S[w],_=b.pop();if(typeof _=="number"){let A=[_];for(let M=w+1;M<S.length;M++){let O=S[M],T=O[O.length-1];if(typeof T=="number"&&ot.equal(b,O.slice(0,O.length-1)))A.push(T),S.splice(M,1);else break}let v=ot.zoom(u,b);y=v.map((M,O)=>A.includes(O)?h.id:M),m=v,_=b.pop()}else{if(_==="alphaOverride"||_==="alpha"){m/=100;let A=m,v=ot.zoom(u,b.slice(0,b.length-2)),M=v.layers.map(O=>O.id===b[b.length-1]?{...O,data:{...O.data,[_]:A}}:O);Object.setPrototypeOf(M,Object.getPrototypeOf(v.layers)),v.layers=M}y=h.id}p.push({type:0,path:b,props:{[_]:m}}),f.push({type:0,path:b,props:{[_]:y}})}f.push(g.reverse),p.push(g.actual)}}else{let m=nt.apply(u,h);m!==null&&(p.push(m.actual),u=m.data,f.push(m.reverse))}}catch(m){if(m instanceof bi)return null;throw m}return{data:u,actual:p,reverse:f.reverse()}}l.apply=s})(Qa||(Qa={}));var Em=Symbol(),ZA=Symbol(),_l=Symbol(),Sn=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof wl);){let a=o._path,s=o._current;if(a!==""&&i.splice(0,0,a),o=o._parent,o===null)return;o.update(a,s)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[_l];r&&r(),delete this._children[t]}}}},Tu=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,wi.runOp(this._current,t),t.path)}},Cu=class extends Sn{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,he.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Dm={get(n,t){if(t===_l)return()=>{n._parent=null};if(t===Em)return n._current;if(t===ZA)return n;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],a=Al(n,t,i);return a!==i?(r===void 0&&(r={},n._children=r),r[t]=a,a):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},JA={...Dm,set(n,t,e){let r={type:0,props:{[t]:Ye(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},eT={...Dm,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},Ai=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[_l]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Al(this,t,i);return a!==i?(r===void 0&&(r={},this._children=r),r[t]=a,a):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.add(t,o[i],a.id,a.data,a.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.add(t,o[i],a.id,a.data,a.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.move(t,o[i],a)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let a=r[i];this.move(t,o[i],a)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},Ti=class extends Sn{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[_l]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,i=this._current[r].fi;t(this.data(this._current[r].id),o,i)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,a=Al(this,t,i);return a!==i?(r===void 0&&(r={},this._children=r),r[t]=a,a):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Au(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&ot.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var wl=class extends Sn{constructor(t){super(),this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){Au(this.ts,e,t),Au(this.actual,r,t),Au(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Al(n,t,e){return e instanceof $e?new Ai(n,t,e):e instanceof ye?new Ti(n,t,e):e instanceof he?new Proxy(new Cu(n,t,e),eT):e!==null&&typeof e=="object"?Si(e)?e:new Proxy(new Tu(n,t,e),JA):e}function Pu(n){let t=new wl(n);return[Al(t,"",n),t]}function Vo(n,t){let[e,r]=Pu(n);return t(e),r.result()}function Ye(n){return n instanceof Ai||n instanceof Ti?n._current:n!==null&&typeof n=="object"?n[Em]:n}var ot;(o=>{function n(i,a){if(a.length===i.length)for(var s=0;s<i.length;){if(i[s]!==a[s])return!1;s+=1}else return!1;return!0}o.equal=n;function t(i,a,s){let l=r(s,i);if(l!==void 0&&typeof l=="object"&&l!==null){let d={...a};return Object.keys(l).forEach(c=>{delete d[c]}),d}else return a}o.removeOverridden=t;function e(i,a){if((i instanceof $e||i instanceof Ai)&&typeof a=="string")return i.data(a);if((i instanceof ye||i instanceof Ti)&&typeof a=="string")return i.data(a);if(typeof a=="number"&&Array.isArray(i))return i[a];if(typeof a=="string"&&typeof i=="object"&&i!==null)return i[a]}o.zoomOnce=e;function r(i,a,s=0){for(;s<a.length&&i!==void 0;)i=e(i,a[s]),s+=1;return i}o.zoom=r})(ot||(ot={}));function Lm(n,t){let e=[];if(t.length===n.length)for(var r=0;r<n.length;){if(t[r]==="*")e.push(n[r]);else if(n[r]!==t[r])return null;r+=1}else return null;return e}function Lt(n,t){let e=[];if(t.length<=n.length)for(var r=0;r<t.length;){if(t[r]==="*")e.push(n[r]);else if(n[r]!==t[r])return null;r+=1}else return null;return e}var Tl=class{},Za=class extends Tl{constructor(e){super();this.id=e}},Ja=class extends Tl{constructor(e){super();this.data=e}};var Mu;try{Mu=new TextDecoder}catch{}var re,zo,E=0;var jm=[],Iu=jm,Nu=0,Yt={},De,Go,dr=0,zr=0,ir,go,Vt=[],Be,Bm={useRecords:!1,mapsAsObjects:!0},es=class{},Du=new es;Du.name="MessagePack 0xC1";var Ci=!1,kr=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(re)return $m(()=>(Pl(),this?this.unpack(t,e):kr.prototype.unpack.call(Bm,t,e)));zo=e>-1?e:t.length,E=0,Nu=0,zr=0,Go=null,Iu=jm,ir=null,re=t;try{Be=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw re=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof kr){if(Yt=this,this.structures)return De=this.structures,Cl();(!De||De.length>0)&&(De=[])}else Yt=Bm,(!De||De.length>0)&&(De=[]);return Cl()}unpackMultiple(t,e){let r,o=0;try{Ci=!0;let i=t.length,a=this?this.unpack(t,i):Il.unpack(t,i);if(e){for(e(a);E<i;)if(o=E,e(Cl())===!1)return}else{for(r=[a];E<i;)o=E,r.push(Cl());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{Ci=!1,Pl()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function Cl(){try{if(!Yt.trusted&&!Ci){let t=De.sharedLength||0;t<De.length&&(De.length=t)}let n=Je();if(E==zo)De.restoreStructures&&Rm(),De=null,re=null,go&&(go=null);else if(E>zo){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!Ci)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw De.restoreStructures&&Rm(),Pl(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Rm(){for(let n in De.restoreStructures)De[n]=De.restoreStructures[n];De.restoreStructures=null}function Je(){let n=re[E++];if(n<160)if(n<128){if(n<64)return n;{let t=De[n&63]||Yt.getStructures&&Um()[n&63];return t?(t.read||(t.read=Lu(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,Yt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[qm()]=Je();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Je(),Je());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Je();return t}else if(n<192){let t=n-160;if(zr>=E)return Go.slice(E-dr,(E+=t)-dr);if(zr==0&&zo<140){let e=t<16?Bu(t):Hm(t);if(e!=null)return e}return Eu(t)}else{let t;switch(n){case 192:return null;case 193:return ir?(t=Je(),t>0?ir[1].slice(ir.position1,ir.position1+=t):ir[0].slice(ir.position0,ir.position0-=t)):Du;case 194:return!1;case 195:return!0;case 196:return Ou(re[E++]);case 197:return t=Be.getUint16(E),E+=2,Ou(t);case 198:return t=Be.getUint32(E),E+=4,Ou(t);case 199:return wn(re[E++]);case 200:return t=Be.getUint16(E),E+=2,wn(t);case 201:return t=Be.getUint32(E),E+=4,wn(t);case 202:if(t=Be.getFloat32(E),Yt.useFloat32>2){let e=Ml[(re[E]&127)<<1|re[E+1]>>7];return E+=4,(e*t+(t>0?.5:-.5)>>0)/e}return E+=4,t;case 203:return t=Be.getFloat64(E),E+=8,t;case 204:return re[E++];case 205:return t=Be.getUint16(E),E+=2,t;case 206:return t=Be.getUint32(E),E+=4,t;case 207:return Yt.int64AsNumber?(t=Be.getUint32(E)*4294967296,t+=Be.getUint32(E+4)):t=Be.getBigUint64(E),E+=8,t;case 208:return Be.getInt8(E++);case 209:return t=Be.getInt16(E),E+=2,t;case 210:return t=Be.getInt32(E),E+=4,t;case 211:return Yt.int64AsNumber?(t=Be.getInt32(E)*4294967296,t+=Be.getUint32(E+4)):t=Be.getBigInt64(E),E+=8,t;case 212:if(t=re[E++],t==114)return Fm(re[E++]&63);{let e=Vt[t];if(e)return e.read?(E++,e.read(Je())):e.noBuffer?(E++,e()):e(re.subarray(E,++E));throw new Error("Unknown extension "+t)}case 213:return t=re[E],t==114?(E++,Fm(re[E++]&63,re[E++])):wn(2);case 214:return wn(4);case 215:return wn(8);case 216:return wn(16);case 217:return t=re[E++],zr>=E?Go.slice(E-dr,(E+=t)-dr):rT(t);case 218:return t=Be.getUint16(E),E+=2,zr>=E?Go.slice(E-dr,(E+=t)-dr):oT(t);case 219:return t=Be.getUint32(E),E+=4,zr>=E?Go.slice(E-dr,(E+=t)-dr):nT(t);case 220:return t=Be.getUint16(E),E+=2,Gm(t);case 221:return t=Be.getUint32(E),E+=4,Gm(t);case 222:return t=Be.getUint16(E),E+=2,zm(t);case 223:return t=Be.getUint32(E),E+=4,zm(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var tT=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Lu(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>tT.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Je);return n.highByte===0&&(n.read=Vm(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let a=n[o];r[a]=Je()}return r}return e.count=0,n.highByte===0?Vm(t,e):e}var Vm=(n,t)=>function(){let e=re[E++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=De[r]||Um()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Lu(o,n)),o.read()};function Um(){let n=$m(()=>(re=null,Yt.getStructures()));return De=Yt._mergeStructures(n,De)}var Eu=Ol,rT=Ol,oT=Ol,nT=Ol;function Ol(n){let t;if(n<16&&(t=Bu(n)))return t;if(n>64&&Mu)return Mu.decode(re.subarray(E,E+=n));let e=E+n,r=[];for(t="";E<e;){let o=re[E++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=re[E++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=re[E++]&63,a=re[E++]&63;r.push((o&31)<<12|i<<6|a)}else if((o&248)===240){let i=re[E++]&63,a=re[E++]&63,s=re[E++]&63,l=(o&7)<<18|i<<12|a<<6|s;l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|l&1023),r.push(l)}else r.push(o);r.length>=4096&&(t+=xt.apply(String,r),r.length=0)}return r.length>0&&(t+=xt.apply(String,r)),t}function Gm(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Je();return t}function zm(n){if(Yt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[qm()]=Je();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Je(),Je());return t}}var xt=String.fromCharCode;function Hm(n){let t=E,e=new Array(n);for(let r=0;r<n;r++){let o=re[E++];if((o&128)>0){E=t;return}e[r]=o}return xt.apply(String,e)}function Bu(n){if(n<4)if(n<2){if(n===0)return"";{let t=re[E++];if((t&128)>1){E-=1;return}return xt(t)}}else{let t=re[E++],e=re[E++];if((t&128)>0||(e&128)>0){E-=2;return}if(n<3)return xt(t,e);let r=re[E++];if((r&128)>0){E-=3;return}return xt(t,e,r)}else{let t=re[E++],e=re[E++],r=re[E++],o=re[E++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){E-=4;return}if(n<6){if(n===4)return xt(t,e,r,o);{let i=re[E++];if((i&128)>0){E-=5;return}return xt(t,e,r,o,i)}}else if(n<8){let i=re[E++],a=re[E++];if((i&128)>0||(a&128)>0){E-=6;return}if(n<7)return xt(t,e,r,o,i,a);let s=re[E++];if((s&128)>0){E-=7;return}return xt(t,e,r,o,i,a,s)}else{let i=re[E++],a=re[E++],s=re[E++],l=re[E++];if((i&128)>0||(a&128)>0||(s&128)>0||(l&128)>0){E-=8;return}if(n<10){if(n===8)return xt(t,e,r,o,i,a,s,l);{let d=re[E++];if((d&128)>0){E-=9;return}return xt(t,e,r,o,i,a,s,l,d)}}else if(n<12){let d=re[E++],c=re[E++];if((d&128)>0||(c&128)>0){E-=10;return}if(n<11)return xt(t,e,r,o,i,a,s,l,d,c);let u=re[E++];if((u&128)>0){E-=11;return}return xt(t,e,r,o,i,a,s,l,d,c,u)}else{let d=re[E++],c=re[E++],u=re[E++],p=re[E++];if((d&128)>0||(c&128)>0||(u&128)>0||(p&128)>0){E-=12;return}if(n<14){if(n===12)return xt(t,e,r,o,i,a,s,l,d,c,u,p);{let f=re[E++];if((f&128)>0){E-=13;return}return xt(t,e,r,o,i,a,s,l,d,c,u,p,f)}}else{let f=re[E++],h=re[E++];if((f&128)>0||(h&128)>0){E-=14;return}if(n<15)return xt(t,e,r,o,i,a,s,l,d,c,u,p,f,h);let m=re[E++];if((m&128)>0){E-=15;return}return xt(t,e,r,o,i,a,s,l,d,c,u,p,f,h,m)}}}}}function Ou(n){return Yt.copyBuffers?Uint8Array.prototype.slice.call(re,E,E+=n):re.subarray(E,E+=n)}function wn(n){let t=re[E++];if(Vt[t])return Vt[t](re.subarray(E,E+=n));throw new Error("Unknown extension type "+t)}var km=new Array(4096);function qm(){let n=re[E++];if(n>=160&&n<192){if(n=n-160,zr>=E)return Go.slice(E-dr,(E+=n)-dr);if(!(zr==0&&zo<180))return Eu(n)}else return E--,Je();let t=(n<<5^(n>1?Be.getUint16(E):n>0?re[E]:0))&4095,e=km[t],r=E,o=E+n-3,i,a=0;if(e&&e.bytes==n){for(;r<o;){if(i=Be.getUint32(r),i!=e[a++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=re[r++],i!=e[a++]){r=1879048192;break}if(r===o)return E=r,e.string;o-=3,r=E}for(e=[],km[t]=e,e.bytes=n;r<o;)i=Be.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=re[r++],e.push(i);let s=n<16?Bu(n):Hm(n);return s!=null?e.string=s:e.string=Eu(n)}var Fm=(n,t)=>{var e=Je();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=De[n];return o&&o.isShared&&((De.restoreStructures||(De.restoreStructures=[]))[n]=o),De[n]=e,e.read=Lu(e,r),e.read()},Wm=typeof self=="object"?self:global;Vt[0]=()=>{};Vt[0].noBuffer=!0;Vt[101]=()=>{let n=Je();return(Wm[n[0]]||Error)(n[1])};Vt[105]=n=>{let t=Be.getUint32(E-4);go||(go=new Map);let e=re[E],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};go.set(t,o);let i=Je();return o.used?Object.assign(r,i):(o.target=i,i)};Vt[112]=n=>{let t=Be.getUint32(E-4),e=go.get(t);return e.used=!0,e.target};Vt[115]=()=>new Set(Je());var Ru=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");Vt[116]=n=>{let t=n[0],e=Ru[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Wm[e](Uint8Array.prototype.slice.call(n,1).buffer)};Vt[120]=()=>{let n=Je();return new RegExp(n[0],n[1])};Vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=E;E+=t-4,ir=[Je(),Je()],ir.position0=0,ir.position1=0;let r=E;E=e;try{return Je()}finally{E=r}};Vt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function $m(n){let t=zo,e=E,r=Nu,o=dr,i=zr,a=Go,s=Iu,l=go,d=ir,c=new Uint8Array(re.slice(0,zo)),u=De,p=De.slice(0,De.length),f=Yt,h=Ci,m=n();return zo=t,E=e,Nu=r,dr=o,zr=i,Go=a,Iu=s,go=l,ir=d,re=c,Ci=h,De=u,De.splice(0,De.length,...p),Yt=f,Be=new DataView(re.buffer,re.byteOffset,re.byteLength),m}function Pl(){re=null,go=null,De=null}function Ym(n){n.unpack?Vt[n.type]=n.unpack:Vt[n.type]=n}var Ml=new Array(147);for(let n=0;n<256;n++)Ml[n]=+("1e"+Math.floor(45.15-n*.30103));var Il=new kr({useRecords:!1}),iT=Il.unpack,aT=Il.unpackMultiple,sT=Il.unpack,Nl={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},lT=new Float32Array(1),kz=new Uint8Array(lT.buffer,0,4);var El;try{El=new TextEncoder}catch{}var Dl,Gu,Ll=typeof Buffer<"u",Vu=Ll?Buffer.allocUnsafeSlow:Uint8Array,Zm=Ll?Buffer:Uint8Array,Xm=Ll?4294967296:2144337920,j,it,L=0,Fr,jr=null,cT=/[\u0080-\uFFFF]/,ts=Symbol("record-id"),_n=class extends kr{constructor(t){super(t),this.offset=0;let e,r,o,i,a,s,l=0,d=Zm.prototype.utf8Write?function(v,M,O){return j.utf8Write(v,M,O)}:El&&El.encodeInto?function(v,M){return El.encodeInto(v,j.subarray(M)).written}:!1,c=this;t||(t={});let u=t&&t.sequential,p=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=p?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let h=t.maxOwnStructures;h==null&&(h=p?32:64),u&&!t.saveStructures&&(this.structures=[]);let m=f>32||h+f>64,y=f+64,g=f+h+64;if(g>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(v,M){if(j||(j=new Vu(8192),it=new DataView(j.buffer,0,8192),L=0),Fr=j.length-10,Fr-L<2048?(j=new Vu(j.length),it=new DataView(j.buffer,0,j.length),Fr=j.length-10,L=0):L=L+7&2147483640,r=L,s=c.structuredClone?new Map:null,c.bundleStrings?(jr=["",""],j[L++]=214,j[L++]=98,jr.position=L-r,L+=4):jr=null,o=c.structures,o){o.uninitialized&&(o=c._mergeStructures(c.getStructures()));let O=o.sharedLength||0;if(O>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let T=0;T<O;T++){let C=o[T];if(!C)continue;let P,I=o.transitions;for(let D=0,G=C.length;D<G;D++){let N=C[D];P=I[N],P||(P=I[N]=Object.create(null)),I=P}I[ts]=T+64}l=O}u||(o.nextId=O+64)}i&&(i=!1),a=o||[];try{if(b(v),jr){it.setUint32(jr.position+r,L-jr.position-r);let O=jr;jr=null,b(O[0]),b(O[1])}if(c.offset=L,s&&s.idsToInsert){L+=s.idsToInsert.length*6,L>Fr&&A(L),c.offset=L;let O=dT(j.subarray(r,L),s.idsToInsert);return s=null,O}return M&ey?(j.start=r,j.end=L,j):j.subarray(r,L)}finally{if(o){if(w<10&&w++,S>1e4)o.transitions=null,w=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!u){for(let O=0,T=x.length;O<T;O++)x[O][ts]=0;x=[]}if(i&&c.saveStructures){let O=o.sharedLength||f;o.length>O&&(o=o.slice(0,O));let T=j.subarray(r,L);return c.saveStructures(o,l)===!1?(c._mergeStructures(c.getStructures()),c.pack(v)):(l=O,T)}}M&xT&&(L=r)}};let b=v=>{L>Fr&&(j=A(L));var M=typeof v,O;if(M==="string"){let T=v.length;if(jr&&T>=8&&T<4096){let I=cT.test(v);jr[I?0:1]+=v,j[L++]=193,b(I?-T:T);return}let C;T<32?C=1:T<256?C=2:T<65536?C=3:C=5;let P=T*3;if(L+P>Fr&&(j=A(L+P)),T<64||!d){let I,D,G,N=L+C;for(I=0;I<T;I++)D=v.charCodeAt(I),D<128?j[N++]=D:D<2048?(j[N++]=D>>6|192,j[N++]=D&63|128):(D&64512)===55296&&((G=v.charCodeAt(I+1))&64512)===56320?(D=65536+((D&1023)<<10)+(G&1023),I++,j[N++]=D>>18|240,j[N++]=D>>12&63|128,j[N++]=D>>6&63|128,j[N++]=D&63|128):(j[N++]=D>>12|224,j[N++]=D>>6&63|128,j[N++]=D&63|128);O=N-L-C}else O=d(v,L+C,P);O<32?j[L++]=160|O:O<256?(C<2&&j.copyWithin(L+2,L+1,L+1+O),j[L++]=217,j[L++]=O):O<65536?(C<3&&j.copyWithin(L+3,L+2,L+2+O),j[L++]=218,j[L++]=O>>8,j[L++]=O&255):(C<5&&j.copyWithin(L+5,L+3,L+3+O),j[L++]=219,it.setUint32(L,O),L+=4),L+=O}else if(M==="number")if(v>>>0===v)v<64?j[L++]=v:v<256?(j[L++]=204,j[L++]=v):v<65536?(j[L++]=205,j[L++]=v>>8,j[L++]=v&255):(j[L++]=206,it.setUint32(L,v),L+=4);else if(v>>0===v)v>=-32?j[L++]=256+v:v>=-128?(j[L++]=208,j[L++]=v+256):v>=-32768?(j[L++]=209,it.setInt16(L,v),L+=2):(j[L++]=210,it.setInt32(L,v),L+=4);else{let T;if((T=this.useFloat32)>0&&v<4294967296&&v>=-2147483648){j[L++]=202,it.setFloat32(L,v);let C;if(T<4||(C=v*Ml[(j[L]&127)<<1|j[L+1]>>7])>>0===C){L+=4;return}else L--}j[L++]=203,it.setFloat64(L,v),L+=8}else if(M==="object")if(!v)j[L++]=192;else{if(s){let C=s.get(v);if(C){if(!C.id){let P=s.idsToInsert||(s.idsToInsert=[]);C.id=P.push(C)}j[L++]=214,j[L++]=112,it.setUint32(L,C.id),L+=4;return}else s.set(v,{offset:L-r})}let T=v.constructor;if(T===Object)_(v,!0);else if(T===Array){O=v.length,O<16?j[L++]=144|O:O<65536?(j[L++]=220,j[L++]=O>>8,j[L++]=O&255):(j[L++]=221,it.setUint32(L,O),L+=4);for(let C=0;C<O;C++)b(v[C])}else if(T===Map){O=v.size,O<16?j[L++]=128|O:O<65536?(j[L++]=222,j[L++]=O>>8,j[L++]=O&255):(j[L++]=223,it.setUint32(L,O),L+=4);for(let[C,P]of v)b(C),b(P)}else{for(let C=0,P=Dl.length;C<P;C++){let I=Gu[C];if(v instanceof I){let D=Dl[C];if(D.write){D.type&&(j[L++]=212,j[L++]=D.type,j[L++]=0),b(D.write.call(this,v));return}let G=j,N=it,F=L;j=null;let B;try{B=D.pack.call(this,v,R=>(j=G,G=null,L+=R,L>Fr&&A(L),{target:j,targetView:it,position:L-R}),b)}finally{G&&(j=G,it=N,L=F,Fr=j.length-10)}B&&(B.length+L>Fr&&A(B.length+L),L=uT(B,j,L,D.type));return}}_(v,!v.hasOwnProperty)}}else if(M==="boolean")j[L++]=v?195:194;else if(M==="bigint"){if(v<BigInt(1)<<BigInt(63)&&v>=-(BigInt(1)<<BigInt(63)))j[L++]=211,it.setBigInt64(L,v);else if(v<BigInt(1)<<BigInt(64)&&v>0)j[L++]=207,it.setBigUint64(L,v);else if(this.largeBigIntToFloat)j[L++]=203,it.setFloat64(L,Number(v));else throw new RangeError(v+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");L+=8}else if(M==="undefined")this.encodeUndefinedAsNil?j[L++]=192:(j[L++]=212,j[L++]=0,j[L++]=0);else if(M==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+M)},_=this.useRecords===!1?this.variableMapSize?v=>{let M=Object.keys(v),O=M.length;O<16?j[L++]=128|O:O<65536?(j[L++]=222,j[L++]=O>>8,j[L++]=O&255):(j[L++]=223,it.setUint32(L,O),L+=4);let T;for(let C=0;C<O;C++)b(T=M[C]),b(v[T])}:(v,M)=>{j[L++]=222;let O=L-r;L+=2;let T=0;for(let C in v)(M||v.hasOwnProperty(C))&&(b(C),b(v[C]),T++);j[O+++r]=T>>8,j[O+r]=T&255}:v=>{let M=Object.keys(v),O,T=a.transitions||(a.transitions=Object.create(null)),C=0;for(let I=0,D=M.length;I<D;I++){let G=M[I];O=T[G],O||(O=T[G]=Object.create(null),C++),T=O}let P=T[ts];if(P)P>=96&&m?(j[L++]=((P-=96)&31)+96,j[L++]=P>>5):j[L++]=P;else{P=a.nextId,P||(P=64),P<y&&this.shouldShareStructure&&!this.shouldShareStructure(M)?(P=a.nextOwnId,P<g||(P=y),a.nextOwnId=P+1):(P>=g&&(P=y),a.nextId=P+1);let I=M.highByte=P>=96&&m?P-96>>5:-1;T[ts]=P,a[P-64]=M,P<y?(M.isShared=!0,a.sharedLength=P-63,i=!0,I>=0?(j[L++]=(P&31)+96,j[L++]=I):j[L++]=P):(I>=0?(j[L++]=213,j[L++]=114,j[L++]=(P&31)+96,j[L++]=I):(j[L++]=212,j[L++]=114,j[L++]=P),C&&(S+=w*C),x.length>=h&&(x.shift()[ts]=0),x.push(T),b(M))}for(let I=0,D=M.length;I<D;I++)b(v[M[I]])},A=v=>{let M;if(v>16777216){if(v-r>Xm)throw new Error("Packed buffer would be larger than maximum buffer size");M=Math.min(Xm,Math.round(Math.max((v-r)*(v>67108864?1.25:2),4194304)/4096)*4096)}else M=(Math.max(v-r<<2,j.length-1)>>12)+1<<12;let O=new Vu(M);return it=new DataView(O.buffer,0,M),j.copy?j.copy(O,0,r,v):O.set(j.slice(r,v)),L-=r,r=0,Fr=O.length-10,j=O}}useBuffer(t){j=t,it=new DataView(j.buffer,j.byteOffset,j.byteLength),L=0}};Gu=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,es];Dl=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:a}=t(6);o[a++]=214,o[a++]=255,i.setUint32(a,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:a}=t(10);o[a++]=215,o[a++]=255,i.setUint32(a,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(a+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:a}=t(3);o[a++]=212,o[a++]=255,o[a++]=255}else{let{target:o,targetView:i,position:a}=t(15);o[a++]=199,o[a++]=12,o[a++]=255,i.setUint32(a,n.getMilliseconds()*1e6),i.setBigInt64(a+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?Km(n,16,t):Qm(Ll?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==Zm&&this.structuredClone?Km(n,Ru.indexOf(e.name),t):Qm(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function Km(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:a}=e(4+o);i[a++]=199,i[a++]=o+1}else if(o+1<65536){var{target:i,position:a}=e(5+o);i[a++]=200,i[a++]=o+1>>8,i[a++]=o+1&255}else{var{target:i,position:a,targetView:s}=e(7+o);i[a++]=201,s.setUint32(a,o+1),a+=4}i[a++]=116,i[a++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),a)}function Qm(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function uT(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function dT(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,a)=>i.offset>a.offset?1:-1);e=t.pop();){let i=e.offset,a=e.id;n.copyWithin(i+r,i,o),r-=6;let s=i+r;n[s++]=214,n[s++]=105,n[s++]=a>>24,n[s++]=a>>16&255,n[s++]=a>>8&255,n[s++]=a&255,o=i}return n}function ko(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");Gu.unshift(n.Class),Dl.unshift(n)}Ym(n)}var Jm=new _n({useRecords:!1}),pT=Jm.pack,fT=Jm.pack;var{NEVER:hT,ALWAYS:mT,DECIMAL_ROUND:yT,DECIMAL_FIT:gT}=Nl,ey=512,xT=1024;var ty=new _n({structuredClone:!0});ko({Class:he.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,he.prototype),n}});ko({Class:ye.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ye.prototype),n}});ko({Class:$e.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,$e.prototype),n}});ko({Class:Za.prototype.constructor,type:4,write(n){return n.id},read(n){return new Za(n)}});ko({Class:Ja.prototype.constructor,type:5,write(n){return n.data},read(n){return new Ja(n)}});ko({Class:ke.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,ke.prototype),n}});function vT(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function zu(n){if(Si(n))return n;if(Array.isArray(n))return n.map(zu);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=zu(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Bl;(r=>{function n(o){return ty.pack(o)}r.serialize=n;function t(o){return ty.unpack(o)}r.deserialize=t;function e(o){return vT(n(zu(o))).toString()}r.checksum=e})(Bl||(Bl={}));var Uo="personal camera",Ho="a218fcc3-276b-49b9-b485-49037fd14f5f",sy=2960946,dt=5526619;var ry;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(ry||(ry={}));var Fo;(s=>{function n(l,d){return l[0]===d[0]&&l[1]===d[1]&&l[2]===d[2]}s.isEqual=n;function t(l,d){return[l[0]+d[0],l[1]+d[1],l[2]+d[2]]}s.add=t;function e(l,d){return[l[0]-d[0],l[1]-d[1],l[2]-d[2]]}s.sub=e;function r(l,d){return[l[0]/d[0],l[1]/d[1],l[2]/d[2]]}s.div=r;function o(l,d){return[l[0]*d[0],l[1]*d[1],l[2]*d[2]]}s.mul=o;function i(l,d){return Math.hypot(l[0]-d[0],l[1]-d[1],l[2]-d[2])}s.dist=i;function a(l,d,c){return[l[0]+(d[0]-l[0])*c,l[1]+(d[1]-l[1])*c,l[2]+(d[2]-l[2])*c]}s.lerp=a})(Fo||(Fo={}));var oy;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(oy||(oy={}));var jo;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,a){for(let s=0;s<16;s++)if(i[s]!==a[s])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,a){let s=a.slice(0);for(var l=0,d=a.length;l<d;l+=3){let c=i[3]*a[l]+i[7]*a[l+1]+i[11]*a[l+2]+i[15];s[l]=(i[0]*a[l]+i[4]*a[l+1]+i[8]*a[l+2]+i[12])/c,s[l+1]=(i[1]*a[l]+i[5]*a[l+1]+i[9]*a[l+2]+i[13])/c,s[l+2]=(i[2]*a[l]+i[6]*a[l+1]+i[10]*a[l+2]+i[14])/c}return s}o.applyMatrix4=r})(jo||(jo={}));var vt;(c=>{function n(u){return typeof u=="object"&&typeof u.r=="number"&&typeof u.g=="number"&&typeof u.b=="number"}c.isRGB=n,c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function o(u){return{r:Math.round(u.r*255),g:Math.round(u.g*255),b:Math.round(u.b*255),a:1}}c.toRgb255a1=o;function i(u){return{r:u.r,g:u.g,b:u.b}}c.clone=i;function a(u){return u=Math.floor(u),{r:(u>>16&255)/255,g:(u>>8&255)/255,b:(u&255)/255}}c.fromHex=a;function s(u){return Math.round(u.r*255)*65536+Math.round(u.g*255)*256+Math.round(u.b*255)}c.toHex=s;function l(u,p){return u.r===p.r&&u.g===p.g&&u.b===p.b}c.equals=l;function d(u,p,f){return{r:u.r+(p.r-u.r)*f,g:u.g+(p.g-u.g)*f,b:u.b+(p.b-u.b)*f}}c.lerp=d})(vt||(vt={}));var Gt;(s=>{s.white={...vt.white,a:1},s.transparent={...vt.white,a:0};function e(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}s.from0to1=e;function r(l,d){return{...vt.fromHex(l),a:d}}s.fromHexAndA=r;function o(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}s.toRgb255a1=o;function i(l,d){return vt.equals(l,d)&&l.a===d.a}s.equals=i;function a(l,d,c){return{r:l.r+(d.r-l.r)*c,g:l.g+(d.g-l.g)*c,b:l.b+(d.b-l.b)*c,a:l.a+(d.a-l.a)*c}}s.lerp=a})(Gt||(Gt={}));var Rl;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Rl||(Rl={}));var ny;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(ny||(ny={}));var iy;(t=>t.defaultData={control1:[.5,0],control2:[.5,1]})(iy||(iy={}));var ay;(i=>(i.linear=[0,0,1,1],i.ease=[.25,.1,.25,1],i.easeIn=[.42,0,1,1],i.easeOut=[0,0,.58,1],i.easeInOut=[.42,0,.58,1]))(ay||(ay={}));function ku(n){return typeof n=="string"&&n.length===36?/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(n):!1}var vr;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(vr||(vr={}));var qo;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:70,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(qo||(qo={}));var Ur;(e=>{function n(r,o=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(r[0],r[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[r[0]+r[0]*o,0,0]},grid:{count:[2,2,2],size:r.map(i=>i*(1+o)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}e.defaultData=n;function t(r,o){let i={...r};if(bT.forEach(a=>{Object.assign(i,{[a]:o[a]??r[a]})}),i.radial={...r.radial},o.radial){let a=r.radial,s=o.radial;ST.forEach(l=>{Object.assign(i.radial,{[l]:s[l]??a[l]})})}if(i.linear={...r.linear},o.linear){let a=r.linear,s=o.linear;wT.forEach(l=>{Object.assign(i.linear,{[l]:s[l]??a[l]})})}if(i.grid={...r.grid},o.grid){let a=r.grid,s=o.grid;_T.forEach(l=>{Object.assign(i.grid,{[l]:s[l]??a[l]})})}if(i.toObject={...r.toObject},o.toObject){let a=r.toObject,s=o.toObject;AT.forEach(l=>{Object.assign(i.toObject,{[l]:s[l]??a[l]})})}if(i.randomnessObject={...r.randomnessObject},o.randomnessObject){let a=r.randomnessObject,s=o.randomnessObject;TT.forEach(l=>{Object.assign(i.randomnessObject,{[l]:s[l]??a[l]})})}return i}e.merge=t})(Ur||(Ur={}));var Vl;(r=>{r.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let t=["radial","linear","grid","toObject","randomnessObject"];function e(o,i){let a=[];o.count!==void 0&&a.push({type:0,path:i,props:{count:o.count}});for(let s of t){let l=o[s];l&&Object.keys(l).length>0&&a.push({type:0,path:[...i,s],props:l})}return a}r.toOps=e})(Vl||(Vl={}));var bT=["count"],ST=["radius","start","end","position","scale","rotation"],wT=["position","scale","rotation"],_T=["count","size"],AT=["count","position","scale","rotation"],TT=["strength","scale","rotation","position","movement","seed","freqScale"];var Gl;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Gl||(Gl={}));var zl;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Gt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,penumbraSize:.5,depth:1e5};if(r==="SpotLight")return{type:r,color:Gt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Gt.white,intensity:1,shadows:!0,size:2e3,depth:1e5,penumbraSize:.5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(zl||(zl={}));var Wo;(t=>t.defaultData={enabled:"visibility",fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Wo||(Wo={}));var Fu;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(Fu||(Fu={}));var ju;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(ju||(ju={}));var kl;(t=>t.defaultData={...ju.defaultData,...Fu.defaultData})(kl||(kl={}));var ly;(t=>{function n(e,r){let o=[];if("material"in e){let i=typeof e.material=="string"?r.materials[e.material]??r.lib.materials[e.material]?.asset:e.material;i&&o.push(i)}else if("materials"in e)for(let i of e.materials){let a=typeof i=="string"?r.materials[i]??r.lib.materials[i]?.asset:i;a&&o.push(a)}return o}t.getMaterialData=n})(ly||(ly={}));var Pi;(e=>(e.defaultVideo={data:"",thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},e.maxSize=3e7))(Pi||(Pi={}));var cy;(t=>{function n(e){return e==="texture"||e==="video"||e==="color"||e==="depth"||e==="normal"||e==="gradient"||e==="noise"||e==="fresnel"||e==="rainbow"||e==="toon"||e==="outline"||e==="transmission"||e==="matcap"||e==="displace"||e==="pattern"||e==="light"}t.is=n})(cy||(cy={}));function dy(n){return n.type!=="displace"}var uy;(t=>{function n(e){return e==="phong"||e==="toon"||e==="lambert"||e==="physical"}t.is=n})(uy||(uy={}));var py=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],fy=["wrapping","image","video","name"],zt;(o=>{function n(i,a){let{texture:s,...l}=a;if(Object.assign(i,l),s){let d=i.texture;d&&Object.assign(d,s)}}o.patch=n;function t(i,a){return i==="light"&&a?e(a):r(i)}o.defaultData=t;function e(i){let a={mode:0,isMask:!1,visible:!0,bumpMap:void 0,bumpMapIntensity:5,roughnessMap:void 0,alphaOverride:1};switch(i){case"phong":return{...a,category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",visible:!0,mode:0,occlusion:!0,alpha:.6};case"toon":return{...a,category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1};case"lambert":return{...a,category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0,occlusion:!0};case"physical":return{...a,category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0,occlusion:!0}}}function r(i){let a={alpha:1,mode:0,isMask:!1,visible:!0};switch(i){case"texture":return{...a,type:"texture",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{image:"image_0",wrapping:1e3,repeat:[1,1],offset:[0,0]},crop:!1};case"video":return{...a,type:"video",size:[128,128],blending:0,axis:"x",side:2,projection:0,texture:{video:Pi.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!1};case"color":return{...a,type:"color",color:vt.fromHex(dt)};case"depth":return{...a,type:"depth",gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{...a,type:"normal",cnormal:[1,1,1]};case"gradient":return{...a,type:"gradient",gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{...a,type:"noise",size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...vt.fromHex(6710886),a:1},colorB:{...vt.fromHex(6710886),a:1},colorC:{...vt.fromHex(16777215),a:1},colorD:{...vt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8],voronoiStyle:0,highCut:1,lowCut:0,smoothness:.3,seed:0,quality:1};case"fresnel":return{...a,type:"fresnel",color:Gt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{...a,type:"rainbow",filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{...a,type:"toon",positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Gt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{...a,type:"outline",outlineColor:Gt.fromHexAndA(0,1),contourColor:Gt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{...a,type:"matcap",texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{...a,type:"transmission",thickness:10,ior:1.5,roughness:1};case"displace":return{visible:!0,type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,voronoiStyle:0,smoothness:.3,seed:0,highCut:1,lowCut:0,quality:1};case"pattern":return{...a,type:"pattern",style:0,projection:0,axis:"y",blending:0,offset:[0,0],colorA:{...vt.fromHex(0),a:1},colorB:{...vt.fromHex(16777215),a:1},frequency:[10,10],size:.5,variation:0,smoothness:.5,zigzag:0,rotation:0,vertical:[0,1],horizontal:[0,1],sides:6}}}})(zt||(zt={}));var Pt;(l=>{function n(d){return!d.layers.some(u=>u.data.type==="texture"&&u.data.projection!==0||u.data.type==="depth"&&!u.data.isWorldSpace||u.data.type==="noise"||u.data.type==="displace")}l.isMergable=n;function t(d){let c="";return d.layers.forEach(u=>{Object.entries(u.data).forEach(([p,f])=>{c+=`${p}${f}`,Array.isArray(f)?f.forEach(h=>c+=`${h}`):typeof f=="object"?Object.values(f).forEach(h=>{typeof h=="number"?c+=`${h.toFixed(4)}`:c+=`${h}`}):c+=`${f}`})}),c}l.getHash=t;function e(){return{layers:new ye}}l.defaultEmptyData=e;function r(d="layer1",c="layer2"){return i("phong",d,c)}l.defaultData=r;function o(d,c){return{...d,name:c}}l.withName=o;function i(d,c="layer1",u="layer2"){let p=new ye;return p.push({fi:0,data:zt.defaultData("light",d),id:c}),p.push({fi:1,data:zt.defaultData("color"),id:u}),{layers:p}}l.defaultTwoLayerData=i;function a(d,c="phong",u="layer1",p="layer2"){let f=zt.defaultData("texture");Object.assign(f.texture,{image:d});let h=new ye;return h.push({fi:0,data:f,id:u}),h.push({fi:1,data:zt.defaultData("light",c),id:p}),{layers:h}}l.defaultTwoLayerTextureData=a;function s(d,c="phong",u="layer1",p="layer2"){let f=zt.defaultData("video");Object.assign(f.texture,{video:d});let h=new ye;return h.push({fi:0,data:f,id:u}),h.push({fi:1,data:zt.defaultData("light",c),id:p}),{layers:h}}l.defaultTwoLayerVideoTextureData=s})(Pt||(Pt={}));var Oi;(t=>{function n(){return{points:new ye,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(Oi||(Oi={}));var Mi;(t=>{function n(){return{points:new ye,lastInsertionPlane:null,subdivisions:12,isClosed:!1}}t.defaultData=n})(Mi||(Mi={}));var Uu={type:"Ellipse",width:50,height:50,spikes:16,angle:360,innerRadius:0};var Fl;(t=>{function n(e,r){let o={...e};return CT.forEach(i=>{Object.assign(o,{[i]:r[i]??e[i]})}),o}t.merge=n})(Fl||(Fl={}));var jl={shape:Uu,depth:1,offset:0,bevel:50,bevelSides:6,angle:0,twist:0,startScale:1,endScale:1,capType:"flat"},CT=["depth","offset","angle","twist","startScale","endScale"];var rs;(e=>{function n(r){return r==="PolygonGeometry"||r==="RectangleGeometry"||r==="StarGeometry"||r==="TriangleGeometry"||r==="EllipseGeometry"}e.is2DParametricMesh=n;function t(r){return r==="PolygonGeometry"||r==="PolygonGeometry"||r==="RectangleGeometry"||r==="StarGeometry"||r==="TriangleGeometry"||r==="EllipseGeometry"||r==="PathGeometry"||r==="VectorGeometry"||r==="ConeGeometry"||r==="CubeGeometry"||r==="CylinderGeometry"||r==="DodecahedronGeometry"||r==="HelixGeometry"||r==="IcosahedronGeometry"||r==="LatheGeometry"||r==="PyramidGeometry"||r==="SphereGeometry"||r==="PlaneGeometry"||r==="BackdropGeometry"||r==="TorusGeometry"||r==="TorusKnotGeometry"||r==="BooleanGeometry"||r==="TextGeometry"}e.isParametricMesh=t})(rs||(rs={}));var Ul;(t=>{function n(e,r){let o={...e};return Object.assign(o,r),o.type==="PathGeometry"&&"extrusion"in r&&r.extrusion&&(o.extrusion={...e.extrusion},Object.assign(o.extrusion,Fl.merge(o.extrusion,r.extrusion))),o}t.merge=n})(Ul||(Ul={}));var $o;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="PathGeometry")return{type:e,width:1,height:1,depth:1,path:Mi.defaultData(),extrusion:jl};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:Oi.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:{textValue:""},textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="SphereGeometry")return{type:"SphereGeometry",width:100,height:100,depth:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:180};throw new Error("not implemented")}t.defaultData=n})($o||($o={}));var Hl;(t=>t.defaultData={enabled:!1,useBackgroundColor:!1,color:vt.white,near:.1,far:2e3})(Hl||(Hl={}));var ql;(e=>{let n={opacity:1,blendFunction:13,enabled:!1};e.defaultData={enabled:!1,pixelation:{...n,blendFunction:16,granularity:15},bloom:{...n,blendFunction:16,intensity:1,blurScale:1,luminanceThreshold:.25,luminanceSmoothing:.025,kernelSize:3},chromaticAberration:{...n,offset:[2,2]},vignette:{...n,darkness:1,offset:0},hueSaturation:{...n,hue:3,saturation:0},brightnessContrast:{...n,brightness:.25,contrast:0},depthOfField:{...n,focalLength:2,focusDistance:2,bokehScale:2},noise:{...n,blendFunction:16}}})(ql||(ql={}));var Hu;(t=>t.defaultData={softShadowQuality:"low"})(Hu||(Hu={}));var qu;(t=>t.defaultData={enabled:!0,color:{r:.8274509803921568,g:.8274509803921568,b:.8274509803921568},intensity:.75})(qu||(qu={}));var Wu;(t=>t.defaultData={occlusion:!1,aoFullRes:!1,radius:256,bias:.5,aoColor:{r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}})(Wu||(Wu={}));var os;(t=>t.defaultData={usePhysics:!1,gravity:-10})(os||(os={}));var $u;(t=>t.defaultData={playCamera:Uo,gameControlObject:null})($u||($u={}));var Wl;(t=>t.defaultData={backgroundColor:Gt.fromHexAndA(sy,1),postprocessing:ql.defaultData,fog:Hl.defaultData,globalPhysics:os.defaultData,ambient:qu.defaultData,ao:Wu.defaultData,shadow:Hu.defaultData,publish:$u.defaultData})(Wl||(Wl={}));var hy;(e=>{function n(r){return r==="Component"||r==="Instance"}e.isComponentRelated=n;function t(r){return r==="Empty"||r==="Instance"}e.isEmptyOrComponent=t})(hy||(hy={}));var Ii;(o=>{o.identity={...Rl.identity,hiddenMatrix:jo.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,a){return{position:a?.position||i.position,rotation:a?.rotation||i.rotation,scale:a?.scale||i.scale,hiddenMatrix:a?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,a){return ef({position:Fo.isEqual(i.position,a.position)?void 0:a.position,rotation:Fo.isEqual(i.rotation,a.rotation)?void 0:a.rotation,scale:Fo.isEqual(i.scale,a.scale)?null:a.scale,hiddenMatrix:jo.isEqual(i.hiddenMatrix,a.hiddenMatrix)?void 0:a.hiddenMatrix})}o.diff=r})(Ii||(Ii={}));var Ot;(t=>t.defaultData={states:new ye,events:new ye,visible:!0,raycastLock:!1,physics:Wo.defaultData,pathSnapping:{pathId:null,slide:0,offset:0,orientation:"tangential"},...Ii.identity,cloner:null})(Ot||(Ot={}));var $l;(t=>t.defaultData={type:"Empty",...Ot.defaultData})($l||($l={}));var my;(t=>t.defaultData={type:"Component",...Ot.defaultData})(my||(my={}));var An;(t=>t.defaultData={type:"Mesh",...Ot.defaultData,...kl.defaultData})(An||(An={}));var Tn;(t=>t.defaultData={...Ot.defaultData,...Ii.identity,position:[0,0,qo.DefaultTargetOffset],...qo.defaultData})(Tn||(Tn={}));var Yl;(e=>{function n(r){return{...Ot.defaultData,...zl.defaultData(r)}}e.defaultData=n,e.defaultDirectionalLightData={...e.defaultData("DirectionalLight"),position:[200,300,300],name:"Directional Light",intensity:.7}})(Yl||(Yl={}));var Ni;(e=>{function n(r,o,i=0){for(;i<o.length;){let a=r?r[o[i]]:void 0;if(o.length===i+1)return a;if(a)r=a.descendants,i+=1;else return}}e.resolveWithDes=n;function t(r,o,i=0){let a=n(r,o,i);if(a){let s=Object.keys(a);if(s.length===1&&s[0]==="descendants")return}return a}e.resolve=t})(Ni||(Ni={}));var Hr;(i=>{i.rootOverrideProps=["physics","events"],i.compositeNonOptionalOverrideProps=["geometry"],i.compositeEntireOverrideOverrideProps=["material"];function r(a,s){return{...Ot.defaultData,...s,component:a,overrides:new ke,physics:void 0,events:void 0,type:"Instance"}}i.ofComponent=r;function o(a){let s=Ii.fromObject(a.data);return r(a.id,s)}i.fromComponentData=o})(Hr||(Hr={}));var xo;(t=>t.defaultData={type:"Page",...Ot.defaultData,physics:{...Wo.defaultData,fusedBody:!1},...Wl.defaultData,camera:Tn.defaultData})(xo||(xo={}));var Xl;(i=>(i.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:jo.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Wo.defaultData,states:new ye,events:new ye,cloner:null,pathSnapping:{pathId:null,orientation:"tangential",slide:0,offset:0},...qo.defaultData},i.KeysByResetCategory={States:["states"],Events:["events"],Material:["material","materials"],Geometry:["geometry"],Position:["position"],Rotation:["rotation"],Scale:["scale"],Transform:["position","scale","rotation","hiddenMatrix"],Name:["name"],Visibility:["visible","raycastLock","flatShading","wireframe","side"],Shadows:["castShadow","receiveShadow"],Cloner:["cloner"],Physics:["physics"]},i.defaultMeshObject={name:"Rectangle",...Ot.defaultData,...An.defaultData,geometry:$o.defaultData("RectangleGeometry"),material:Pt.defaultTwoLayerData("phong","layer1","layer2")},i.defaultBooleanObject={name:"Boolean",...Ot.defaultData,...An.defaultData,geometry:$o.defaultData("BooleanGeometry"),material:Pt.defaultTwoLayerData("phong","layer1","layer2")},i.defaultTextObject={name:"Text",...Ot.defaultData,...An.defaultData,geometry:$o.defaultData("TextGeometry"),material:Pt.defaultTwoLayerData("phong","layer1","layer2")}))(Xl||(Xl={}));var Cn;(o=>{function n(i,a){let s={name:a};return i.type==="Mesh"?(s.geometry={},"material"in i&&(s.material={layers:new ke}),"materials"in i&&(s.materials=i.materials.map(l=>({layers:new ke})))):vr.is(i.type)&&(s.perspective={},s.orthographic={}),s}o.newEmpty=n;function t(i,a){if(a===void 0)return i;let s={...i};return"material"in s&&"material"in a&&a.material&&(s.material=Vo(s.material,l=>{if(typeof l!="string")for(let[d,c]of Object.entries(a.material.layers)){let u=l.layers.data(d);u&&zt.patch(u,c)}}).data),s.materials&&a.materials&&(s.materials=Vo(s.materials,l=>{for(let d=0;d<s.materials.length;d++){let c=a.materials[d];if(typeof c!="string")for(let[u,p]of Object.entries(c.layers)){let f=l[d]?.layers?.data(u);f&&zt.patch(f,p)}}}).data),s}function e(i,a){let s,l=[],d={orthographic:0,perspective:0,geometry:0};function c(u,p){for(let[f,h]of Object.entries(p.layers)){let{texture:m,...y}=h;if(m!==void 0&&Object.keys(m).length>0){let g={path:[...u,"layers",f,"texture"],props:m,type:0};l.push(g)}if(Object.keys(y).length>0){let g={path:[...u,"layers",f],props:y,type:0};l.push(g)}}}for(let[u,p]of Object.entries(a))if(u!=="name")if(u==="cloner")l.push(...Vl.toOps(p,["cloner"]));else if(u==="pathSnapping")l.push({path:[u],props:{slide:p.slide,offset:p.offset},type:0});else if(u==="material")c(["material"],p);else if(u==="materials")for(let[f,h]of Object.entries(p))c(["materials",f],h);else if(d[u]===0){if(u==="geometry"&&p.extrusion!==void 0){let f={path:[u,"extrusion"],props:p.extrusion,type:0};l.push(f),p={...p},delete p.extrusion}if(Object.keys(p).length>0){let f={path:[u],props:p,type:0};l.push(f)}}else s===void 0&&(s={path:[],props:{},type:0},l.push(s)),s.props[u]=p;return l}o.toOps=e;function r(i,a){if(a===void 0)return i;let s={...i};if(Object.assign(s,Ii.merge(s,a)),Object.assign(s,{pathSnapping:Object.assign({},s.pathSnapping,{slide:a.pathSnapping?.slide??s.pathSnapping?.slide??0,offset:a.pathSnapping?.offset??s.pathSnapping?.offset??0})}),vr.is(i.type)){s.orthographic={...s.orthographic},s.perspective={...s.perspective};let l=a;l.orthographic?.zoom!==void 0&&(s.orthographic.zoom=l.orthographic.zoom),l.perspective?.zoom!==void 0&&(s.perspective.zoom=l.perspective.zoom),l.isUpVectorFlipped!==void 0&&(s.isUpVectorFlipped=l.isUpVectorFlipped),l.targetOffset!==void 0&&(s.targetOffset=l.targetOffset)}else if(i.type==="Mesh")"geometry"in a&&Object.assign(s,{geometry:Ul.merge(s.geometry,a.geometry)}),(a.material||a.materials)&&(s=t(s,a)),s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Ur.merge(s.cloner,a.cloner)});else if(i.type==="Empty")s.cloner&&"cloner"in a&&Object.assign(s,{cloner:Ur.merge(s.cloner,a.cloner)});else if(Gl.is(i.type)){let l=a;l.intensity!==void 0&&(s.intensity=l.intensity),l.color!==void 0&&(typeof l.color=="string"?s.color=l.color:s.color=vt.clone(l.color))}return s}o.patch=r})(Cn||(Cn={}));var Di;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,hoverRotateDamping:.125,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(Di||(Di={}));var qr;(t=>t.defaultData={orbitControls:Di.defaultData,playPage:Ho,withBackground:!0,preventScroll:!1,preventTouchScroll:!1,hideCursor:!1,mouseEventTarget:"canvas",joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,i=0;return r<5?i=-30:r<10&&(i=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,i],"show"]}),settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:Math.max(1,typeof window<"u"?Math.floor(window.devicePixelRatio):1),stopMode:"manual",duration:5e3},web:{logo:!0,compress:!0,preset:1,preload:!0,hint:!1}},stopRaycast:!0,hdTransmission:!1})(qr||(qr={}));var Yu;(t=>t.defaultData={id:"basic",label:"Basic",style:"None",prompt:""})(Yu||(Yu={}));var Xu;(t=>t.defaultData={weather:0,shadows:0,lightOrigin:0,temperature:0,sun:0,camera:0,environment:0,particles:0,nature:0,floor:0})(Xu||(Xu={}));var Yo;(e=>(e.defaultData=()=>({mode:"line-art-both",prompt:"",negativePrompt:"",style:{...Yu.defaultData},isRandomSeed:!0,seed:e.generateSeed(),guessMode:!1,advanced:!1,steps:20,guidanceScale:7.5,controlNetScale:1,modifiers:Xu.defaultData}),e.generateSeed=()=>Math.round(Math.random()*1e5)))(Yo||(Yo={}));var yy;(e=>{function n(r){return r.find(o=>o.data.type==="Page"&&o.data.globalPhysics.usePhysics)!==void 0}e.physicsEnabled=n;function t(r,o,i){r.scene.objects.traverseFrom(o,(a,s)=>{if(s.type==="Instance"){let l=Li.getComponentData(r,s.component)?.data;l&&i(a,s,l.events)}else i(a,s,s.events)})}e.traverseModuleInstances=t})(yy||(yy={}));var Xo;(s=>{s.TRASH_CAN_ID="830a2708-8ed9-49cf-a68e-085299892222";function t(l={withLight:!0,withSquare:!0}){let d=[],c=Xl.defaultMeshObject;l.withLight===!0&&d.push({fi:-1,data:Yl.defaultDirectionalLightData,id:"830a2708-8ed9-49cf-a68e-085299899103",children:[]}),l.withSquare===!0&&d.push({fi:1,id:"7ba78968-2a55-48f2-b14c-5191da3e075e",data:c,children:[]});let u=new $e;return u.push({fi:1,id:Ho,data:{...xo.defaultData,name:"Scene 1"},children:d}),u}s.defaultData={objects:t(),publish:qr.defaultData,styles:Yo.defaultData()},s.emptyDataWithoutPage=function(){return{objects:new $e,publish:qr.defaultData,styles:Yo.defaultData()}},s.emptyDataWithPage=function(l){return{objects:t(l),publish:qr.defaultData,styles:Yo.defaultData()}};function i(l){return{...s.defaultData,objects:Wt(l,$e.prototype)}}s.withObjs=i;function a(l,d){return i([{id:l,data:d,children:[],fi:0}])}s.withObj=a})(Xo||(Xo={}));var Bi;(t=>t.defaultData={preset:"fullscreen",allowResponsive:!1,size:[512,512],coords:[0,0],sceneScale:1,color:{r:0,g:0,b:0,a:.5}})(Bi||(Bi={}));var Ri;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=",name:"empty"})(Ri||(Ri={}));var Kl;(i=>{function n(a){return a.textValue!==void 0}i.isTextValue=n;function t(a){return typeof a=="number"}i.isNumber=t;function e(a){return typeof a=="boolean"}i.isBoolean=e;function r(a){return n(a)?"string":e(a)?"boolean":"number"}i.typeOfVariable=r;function o(a){return i.isTextValue(a)?Array.isArray(a.textValue)?a.textValue.map(s=>s.toString().padStart(a.padding??2,"0")).join(a.deliminator??":")+(a.suffix!==void 0?" "+a.suffix:""):a.textValue.toString():i.isBoolean(a)?a?"True":"False":i.isNumber(a)?parseFloat(a.toFixed(3)).toString():a.toString()}i.getDisplayedValue=o})(Kl||(Kl={}));var Ku;(t=>t.all=["images","videos","colors","audios","fonts","materials","variables"])(Ku||(Ku={}));var gy;(t=>t.all=[...Ku.all,"components"])(gy||(gy={}));var xy;(t=>{function n(){return{images:new he,videos:new he,colors:new he,audios:new he,fonts:new he,materials:new he,components:new he,variables:new he}}t.defaultData=n})(xy||(xy={}));var Ko;(t=>{function n(){return{images:new he,videos:new he,colors:new he,audios:new he,fonts:new he,materials:new he,components:new he,variables:new he}}t.defaultData=n})(Ko||(Ko={}));var br;(i=>{function n(){let a={};return a["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Wt(a,he.prototype)}i.defaultColors=n;function t(a){let s={};return a?.withAITexture&&(s["a1b10010-844c-a8a3-11ec-0242ac2011ec"]={...Ri.emptyImage,name:"AI generated image"}),Wt(s,he.prototype)}i.defaultImages=t;function e(){return{catelogs:new he,materials:new he,images:new he,videos:new he,colors:new he,audios:new he,fonts:new he,variables:new ye,lib:Ko.defaultData()}}i.emptyData=e;function r(a){switch(a){case"number":return{value:0,name:"Number"};case"boolean":return{value:!1,name:"Boolean"};case"string":return{value:{textValue:"String value"},name:"String"};case"time":let s=[0,0,0];return{name:"Time",value:{textValue:s,deliminator:":",padding:2,suffix:"AM"},dynamicVariableType:"time",format:"HH:mm:ss",format12h24h:"12ampm",timeZone:null,hasEnd:!1,endValue:{textValue:s,deliminator:":",padding:2,suffix:"AM"},autoStart:!0,repeat:!1};case"counter":return{name:"Counter",value:0,dynamicVariableType:"counter",updateInterval:1e3,increment:1,autoStart:!0,hasEnd:!0,endValue:60,repeat:!0,randomStart:!1,range:[0,100],decimals:0};case"random":return{name:"Random",value:0,dynamicVariableType:"random",updateInterval:1e3,increment:1,autoStart:!0,isStatic:!1,hasEnd:!0,endValue:60,repeat:!0,min:0,max:100,decimals:0};default:console.error("Unknown variable type",a)}}i.defaultVariables=r;function o(a,s){if(s.format==="HH:mm:ss"){let l=Math.floor(a/3600),d=Math.floor((a-l*3600)/60),c=Math.round(a-l*3600-d*60);return{textValue:[l,d,c]}}else if(s.format==="mm:ss"){let l=Math.floor(a/60),d=Math.round(a-l*60);return{textValue:[l,d]}}else return s.format==="number"?a=Math.round(a):a=Math.round(a*1e3)/1e3,a}i.getFormattedTimerTime=o})(br||(br={}));import{MathUtils as Jl}from"three";var Ql;(t=>t.list=["idle","move","jump","run"])(Ql||(Ql={}));var Zl;(e=>(e.defaultColliderData={type:"capsule",height:200,radius:50,position:[0,0,0],rotation:[0,0,0]},e.defaultDataThirdPerson={moveMode:"walk",forwardDirection:"+z",speedTranslate:1e3,speedRotate:100,runMultiplier:2,rotationMode:"normal",rotBy:"keys",rotByTouch:"drag",delayPos:[.3,.3],delayRot:[.3,.3],keyAssignments:[["moveNegZ","W"],["moveNegX","A"],["movePosZ","S"],["movePosX","D"],["rotPosX","\u25B2"],["rotPosY","\u25C0"],["rotNegX","\u25BC"],["rotNegY","\u25B6"],["jump","Space"],["run","\u21E7"],["none","Ctrl"]],touchControl:!0,joystickPosLoc:5,joystickRotLoc:11,jumpTouchButtonLoc:9,collider:e.defaultColliderData,colliderHelperVisible:!0,collisionEnabled:!0,jumpPower:100,resetYPosition:3e3,alignToGround:!1,autoOrientMove:!0,orientWith:"camera",orientMode:"radial",delayPosCamera:.3,delayRotCamera:.3,camera:"",cameraXAxis:"Limit",cameraYAxis:"Free",cameraRotXLimits:[0,Math.PI/2],cameraRotYLimits:[-Math.PI/2,Math.PI/2],gameActions:{idle:new ye,move:new ye,jump:new ye,run:new ye},navmesh:{enabled:!1,ch:6,cs:6,walkableClimb:5,walkableHeight:1,walkableRadius:0,zones:"all",objects:[],helperVisible:!0,destinationHelperRadius:0,destinationHelperColor:Gt.fromHexAndA(3728051,1)}}))(Zl||(Zl={}));function vy(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let s=2;s<10;s++)o.push(o[1]),i.push(1);let a={...xr(Ye(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,a)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Ye(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function vo(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function bo(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach((o,i)=>{o===void 0&&(r.materials[i]=Pt.defaultData(),o=r.materials[i]),typeof o!="string"&&t(o)}):"material"in r?typeof r.material!="string"&&(r.material===void 0&&(r.material=Pt.defaultData()),t(r.material)):r.type==="Mesh"&&(r.material===void 0&&(r.material=Pt.defaultData()),t(r.material)),"overrides"in r&&Object.values(r.overrides).forEach(o=>{o.material&&typeof o.material!="string"&&t(o.material)})})}function PT(n){Object.assign(n.scene.publish,{orbitControls:{...Di.defaultData,...Ye(n.scene.publish.orbitControls)}})}function OT(n){Object.assign(n.scene.publish.settings,{video:{...qr.defaultData.settings.video,...Ye(n.scene.publish.settings.video)}})}function MT(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((py.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[a,s]of Object.entries(i))(fy.includes(a)||typeof s=="boolean")&&delete i[a]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(a=>{t(a)})})})}function IT(n){n.scene.publish.withBackground=!0}function NT(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1,logo:!0,hint:!1}}function ET(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function DT(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function LT(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.unproxy().parent(t);if(r){let o=Ye(n.scene.objects.data(r));o&&o.type==="Mesh"&&o.geometry.type==="BooleanGeometry"&&e.type==="Mesh"&&(e.visible=Ye(e).booleanExclude!==!0)}})}function BT(n){n.scene.objects.traverse((t,e)=>{if(e.type==="Mesh"){let r=e;e.geometry.type==="NonParametricGeometry"?r.material!==void 0&&delete r.material:r.materials!==void 0&&delete r.materials}})}function RT(n){function t(r){Object.setPrototypeOf(r,ke.prototype),r.texture&&Object.setPrototypeOf(r.texture,ke.prototype)}function e(r){Object.setPrototypeOf(r,ke.prototype);for(let o in r)t(r[o])}n.scene.objects.traverse((r,o)=>{o.states.forEach(i=>{let a=i;if(a.material){let s=Ye(a.material).layers;e(s),a.material.layers=s}if(a.materials)for(let s=0;s<a.materials.length;s++){let l=a.materials[s],d=Ye(l).layers;e(d),l.layers=d}})})}function by(n){n.layers===void 0&&Object.assign(n,Pt.defaultTwoLayerData("lambert"))}function Qu(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...Ye(t),colors:e,steps:r};Object.assign(t,o)}})}function VT(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Sy(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Qu(r)}):"material"in e&&typeof e.material!="string"&&Qu(e.material)}),Object.values(n.shared.materials).forEach(t=>Qu(t))}function GT(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function zT(n){n.shared.audios=Wt({},he.prototype)}function kT(n){n.shared.videos=Wt({},he.prototype)}function FT(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function jT(n){Object.entries(Ye(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Ye(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function UT(n){n.scene.publish.settings.web.preload=!1}function wy(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function _y(n){n.layers&&n.layers.forEach(t=>{dy(t)&&t.isMask===void 0&&(t.isMask=!1),(t.type==="texture"||t.type==="video")&&t.blending===void 0&&(t.blending=0),(t.type==="noise"||t.type==="displace"&&t.displacementType==="noise")&&(t.voronoiStyle===void 0&&(t.voronoiStyle=0),t.highCut===void 0&&(t.highCut=1),t.lowCut===void 0&&(t.lowCut=0),t.smoothness===void 0&&(t.smoothness=.3),t.seed===void 0&&(t.seed=0),t.quality===void 0&&(t.quality=1))})}function HT(n){n.shared.fonts=Wt({},he.prototype)}function qT(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function WT(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Pt.defaultTwoLayerData("phong"),a=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:a.r,g:a.g,b:a.b},i.layers[1].data.alpha=o.alpha;let s=qT(o.font);n.shared.fonts[s]===void 0&&(n.shared.fonts[s]={name:s});let l={name:o.name,...Ot.defaultData,...An.defaultData,flatShading:!1,wireframe:!1,geometry:{...$o.defaultData("TextGeometry"),width:o.width,height:o.height,font:s,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Ye(o.states),events:Ye(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},d=Ye(n.scene.objects).parent(e);n.scene.objects.insertAfter(d??null,e,[{id:e+"new",data:l,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function $T(n){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new ye,move:new ye,jump:new ye}});else{let i=new ye;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:Jl.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((a,s,l)=>{let d={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},c={easing:a.easing,duration:a.duration};a.easing===6?Object.assign(c,xr(a,"mass","stiffness","damping","velocity")):a.easing===5&&Object.assign(c,{control1:{...a.control1},control2:{...a.control2}});let u={repeat:a.repeat?-1:0,delay:a.delay,delayDirection:a.delayDirection,direction:a.cycle&&a.rewind?"pingpong-rewind":a.cycle?"pingpong":"normal"},p={state:a.state,...u,...c},f={allowSlerp:!0,type:"Transition",object:a.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ye({fi:0,id:Jl.generateUUID(),data:d},{fi:1,id:Jl.generateUUID(),data:p})};i.push({fi:l,id:s,data:f})}),delete o.targets)}})})}function YT(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let a=new ye,s=[];if(e.events.forEach((l,d,c)=>{if(l.type==="Audio"&&l.trigger===i){let u;s.push(d),l.interaction==="play"?u={...xr(l,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in l?l.after:void 0,toggle:"after"in l?l.toggle:void 0,type:"Audio"}:(l.interaction==="pause"||l.interaction==="stop")&&(u={...xr(l,"interaction","delay","object","playAudio"),type:"Audio"}),u&&a.push({fi:c,id:d,data:u})}}),s.forEach(l=>e.events.delete(l)),a.length){let l=e.events.find(d=>d.type===o)?.data;l?"actions"in l&&l.actions.insertBefore(null,a):e.events.insertBefore(null,[{id:Jl.generateUUID(),data:{type:o,actions:a}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function Ay(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=zt.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function Ty(n){vo(n,Ay),bo(n,Ay)}function XT(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function KT(n){n.scene.objects.traverse((t,e)=>{(e.type==="Empty"||e.type==="Mesh")&&e.cloner&&!e.cloner.randomnessObject&&!e.cloner.toObject&&!e.cloner.randomness&&(e.cloner={...e.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}function QT(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="NonParametricGeometry"&&!("material"in e)&&!("materials"in e)&&(e.material=Pt.defaultTwoLayerData("phong"))})}function ZT(n){n.scene.publish.orbitControls.autoZoom===void 0&&(n.scene.publish.orbitControls.autoZoom=!1),n.scene.objects.traverse((t,e)=>{(e.type==="OrthographicCamera"||e.type==="PerspectiveCamera")&&(e.orthographic.autoZoom===void 0&&(e.orthographic.autoZoom=!1),e.orthographic.autoZoomFrustumSize===void 0&&(e.orthographic.autoZoomFrustumSize=790))})}function JT(n){n.scene.objects.traverse((t,e)=>{e.pathSnapping===void 0&&(e.pathSnapping={pathId:null,slide:0,offset:0,orientation:"tangential"}),e.pathSnapping.offset===void 0&&(e.pathSnapping.offset=0)})}function eC(n){n.scene.publish.mouseEventTarget===void 0&&(n.scene.publish.mouseEventTarget="canvas"),n.scene.publish.settings.web.hint===void 0&&(n.scene.publish.settings.web.hint=!1)}function tC(n){let{video:t}=n.scene.publish.settings;t.format==="gif"&&t.fps>48&&(t.fps=15)}function rC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.resetYPosition=Math.abs(r.resetYPosition-e.position[1]))})})}function oC(n){let t=n.scene.environment.usePhysics;n.scene.objects.traverse((e,r)=>{t&&r.physics===null?r.collision=!1:r.collision="visibility"})}function nC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.navmesh=Zl.defaultDataThirdPerson.navmesh)})})}function iC(n){n.scene.styles||(n.scene.styles=Yo.defaultData())}function Cy(n){n.layers.forEach(t=>{t.type==="light"&&t.category!=="toon"&&t.occlusion===void 0&&(t.occlusion=!0)})}function aC(n){n.scene.environment.ambientLight.occlusion===void 0&&(n.scene.environment.ambientLight.occlusion=!1),n.scene.environment.ambientLight.aoFullRes===void 0&&(n.scene.environment.ambientLight.aoFullRes=!1),n.scene.environment.ambientLight.radius===void 0&&(n.scene.environment.ambientLight.radius=256),n.scene.environment.ambientLight.bias===void 0&&(n.scene.environment.ambientLight.bias=.5),n.scene.environment.ambientLight.aoColor===void 0&&(n.scene.environment.ambientLight.aoColor={r:.19607843137254902,g:.19607843137254902,b:.19607843137254902}),bo(n,Cy),vo(n,Cy)}function sC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&Object.assign(r.gameActions,{run:new ye})})})}function lC(n){n.scene.objects.traverse((t,e)=>{e.events.forEach(r=>{r.type==="GameControl"&&(r.keyAssignments=[...r.keyAssignments,["run","\u21E7"],["none","Ctrl"]])})})}function Py(n){n.layers&&n.layers.forEach(t=>{t.type==="light"&&t.bumpMapIntensity===void 0&&(t.bumpMapIntensity=5)})}function Oy(n,t){if(t<1&&(bo(n,vy),vo(n,vy),n.schema=1),t<2&&(PT(n),n.schema=2),t<3&&(MT(n),n.schema=3),t<4&&(IT(n),n.schema=4),t<5&&(NT(n),n.schema=5),t<6&&(ET(n),n.schema=6),t<7&&(DT(n),n.schema=7),t<8&&(n.schema=8),t<9&&(Sy(n),n.schema=9),t<10&&(VT(n),n.schema=10),t<11&&(GT(n),n.schema=11),t<12&&(Sy(n),n.schema=12),t<13&&(zT(n),n.schema=13),t<14&&(FT(n),n.schema=14),t<15&&(jT(n),n.schema=15),t<16&&(UT(n),n.schema=16),t<17&&(bo(n,wy),vo(n,wy),n.schema=17),t<18&&(bo(n,by),vo(n,by),n.schema=18),t<19&&(OT(n),n.schema=19),t<20&&(HT(n),WT(n),n.schema=20),t<21&&($T(n),YT(n),n.schema=21),t<22&&(Ty(n),n.schema=22),t<23&&(XT(n),n.schema=23),t<24&&(KT(n),n.schema=24),(t<25||n.shared.videos===void 0)&&(kT(n),t<25&&(n.schema=25)),t<26&&(LT(n),n.schema=26),t<27&&(BT(n),n.schema=27),t<28&&(Ty(n),n.schema=28),t<29&&(RT(n),n.schema=29),t<30&&(QT(n),n.schema=30),t<31&&(ZT(n),n.schema=31),t<33&&(JT(n),n.schema=33),t<34&&(eC(n),n.schema=34),t<35&&(tC(n),n.schema=35),t<36&&(rC(n),n.schema=36),t<37&&(oC(n),n.schema=37),t<38&&(bo(n,_y),vo(n,_y),n.schema=38),t<39&&(nC(n),n.schema=39),t<40&&(iC(n),n.schema=40),t<41&&(aC(n),n.schema=41),t<42&&(sC(n),n.schema=42),t<43&&(lC(n),n.schema=43),t<99){bo(n,Py),vo(n,Py),n.scene.publish.playCamera===null&&(n.scene.publish.playCamera=Uo);let e=Ye(n.scene.objects),r=n.scene.objects;n.scene.publish.playPage=Ho,r.insertBefore(null,null,[{id:Ho,data:{...xo.defaultData,backgroundColor:n.scene.backgroundColor,fog:n.scene.fog,postprocessing:n.scene.postprocessing,ao:xr(n.scene.environment.ambientLight,"occlusion","aoFullRes","radius","bias","aoColor"),publish:{playCamera:n.scene.publish.playCamera,gameControlObject:n.scene.publish.gameControlObject},shadow:xr(n.scene.environment.ambientLight,"softShadowQuality"),globalPhysics:{...os.defaultData,...xr(n.scene.environment,"usePhysics","gravity")},camera:Ye(n.scene.ownerCamera)??xo.defaultData.camera,name:"Scene"},children:[]}]);for(let a of e)a.id!==Xo.TRASH_CAN_ID&&r.move(Ho,a.fi,a.id);let o=0,i=0;n.shared.penumbraSize&&n.scene.objects.traverse((a,s)=>{s.type==="DirectionalLight"?(s.penumbraSize=n.shared.penumbraSize[Math.min(o,2)],o+=1):s.type==="SpotLight"&&(s.penumbraSize=n.shared.penumbraSize[3+Math.min(i,1)],i+=1),(s.physics===void 0||s.physics===null)&&s.type!=="Instance"&&(s.physics={},Object.assign(s.physics,Wo.defaultData)),s.physics!==void 0&&s.physics!==null&&(s.physics.enabled=s.collision??"visibility",delete s.collision)}),n.schema=99}}function My(n){n.layers&&n.layers.forEach(t=>{t.type==="light"&&t.alphaOverride===void 0&&(t.alphaOverride=1)})}function cC(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&r.type==="PathGeometry"&&(r.extrusion.capType="flat",r.extrusion.bevel=50,r.extrusion.bevelSides=6,r.extrusion.shape.type==="Custom"&&(r.extrusion.shape.shapeQuality="low"))})}var Vi=180/Math.PI;function Iy(n){n.rotation=n.rotation.slice(0,3).map(t=>t*Vi)}function Ny(n){Iy(n),n.type==="Page"&&Iy(n.camera),n.states?.forEach(e=>{e.rotation===void 0||e.rotation===null||(e.rotation=e.rotation.slice(0,3).map(r=>r*Vi))});let t=n.geometry;t&&t.type==="SphereGeometry"&&(t.thetaLength=(t.thetaLength??180)*Vi),t&&t.type==="TorusGeometry"&&(t.arc=t.arc*Vi),t&&t.type==="PathGeometry"&&(t.extrusion.angle*=Vi,t.extrusion.twist*=Vi),n.type==="Mesh"&&n.geometry.type==="TextGeometry"&&(n.geometry.text={textValue:n.geometry.text}),Array.isArray(Ye(n.events))&&n.events?.forEach(e=>{(e.type==="MouseDown"||e.type==="MouseUp"||e.type==="MousePress"||e.type==="KeyDown"||e.type==="KeyUp"||e.type==="KeyPress"||e.type==="Collision"||e.type==="Trigger")&&(e.runMode=e.toggle?"Toggle":"Once")})}function uC(n){n.shared.variables=Wt({},he.prototype)}function dC(n){let t=Ye(n.shared.variables);n.shared.variables=Wt(Object.entries(t??{}).map(([e,r],o)=>({fi:o,id:e,data:r})),ye.prototype)}var So=107;function Ey(n,t){t(n.data);for(let e of n.children)Ey(e,t)}function pC(n){let t=n.schema??104;t!==So&&t<105&&(Ey(n.asset,Ny),n.schema=105)}function ec(n){let t=n.schema??0;if(t!==So){console.warn("updating from ",t,"to ",So),Oy(n,t),t<100&&(n.scene.publish.joystickSizeAndXYOffset===void 0&&(n.scene.publish.joystickSizeAndXYOffset=qr.defaultData.joystickSizeAndXYOffset),n.schema=100),t<101&&(bo(n,My),vo(n,My),n.schema=101),t<102&&(cC(n),n.schema=102),t<104&&(n.shared.catelogs=new he,n.shared.lib=Ko.defaultData(),n.schema=104),t<105&&(uC(n),n.scene.objects.traverse((e,r)=>{Ny(r)}),n.schema=105);for(let e of Object.values(n.shared.lib.components))pC(e);t<106&&(dC(n),n.schema=106),t<107&&(n.shared.lib.variables=Ko.defaultData().variables,n.schema=107)}}var Li;(s=>{s.defaultData={schema:So,scene:Xo.defaultData,frames:new he().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",Bi.defaultData),shared:{...br.emptyData(),colors:br.defaultColors()}},s.emptyDataForImports=function(l){let d=Xo.emptyDataWithPage(l);return{schema:So,scene:d,frames:new he().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",Bi.defaultData),shared:{...br.emptyData(),colors:br.defaultColors(),images:br.defaultImages(l)}}},s.emptyData=function(){return{schema:So,scene:Xo.emptyDataWithPage(),frames:new he().add("72fc2993-2da3-4b6b-96ac-2879db3a28bd",Bi.defaultData),shared:br.emptyData()}},s.collabHelper={...Qa,updateSchema(l){return(l.schema??0)<So?Vo(l,ec):(l.schema??0)-So}};function o(l){let d=s.collabHelper.updateSchema(l);return typeof d=="number"?d===0?l:null:d.data}s.updateSchemaDirectly=o;function i(l){return{...l,shared:{...l.shared,lib:Ko.defaultData()}}}s.withoutLib=i;function a(l,d){let c=l.scene.objects.get(d);if(c&&c.data.type==="Component")return c;{let u=l.shared.lib.components[d];if(u)return u.asset}}s.getComponentData=a})(Li||(Li={}));var Ea=Rt(Ly());import{Object3D as sM,Vector3 as cr,Euler as Ep,MathUtils as dx,Matrix4 as $n}from"three";var fC=.5*(Math.sqrt(3)-1),ns=(3-Math.sqrt(3))/6,hC=1/3,Wr=1/6,_U=(Math.sqrt(5)-1)/4,AU=(5-Math.sqrt(5))/20,is=n=>Math.floor(n)|0,By=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),Ju=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function tc(n=Math.random){let t=Vy(n),e=new Float64Array(t).map(o=>By[o%12*2]),r=new Float64Array(t).map(o=>By[o%12*2+1]);return function(i,a){let s=0,l=0,d=0,c=(i+a)*fC,u=is(i+c),p=is(a+c),f=(u+p)*ns,h=u-f,m=p-f,y=i-h,g=a-m,x,S;y>g?(x=1,S=0):(x=0,S=1);let w=y-x+ns,b=g-S+ns,_=y-1+2*ns,A=g-1+2*ns,v=u&255,M=p&255,O=.5-y*y-g*g;if(O>=0){let P=v+t[M],I=e[P],D=r[P];O*=O,s=O*O*(I*y+D*g)}let T=.5-w*w-b*b;if(T>=0){let P=v+x+t[M+S],I=e[P],D=r[P];T*=T,l=T*T*(I*w+D*b)}let C=.5-_*_-A*A;if(C>=0){let P=v+1+t[M+1],I=e[P],D=r[P];C*=C,d=C*C*(I*_+D*A)}return 70*(s+l+d)}}function Ry(n=Math.random){let t=Vy(n),e=new Float64Array(t).map(i=>Ju[i%12*3]),r=new Float64Array(t).map(i=>Ju[i%12*3+1]),o=new Float64Array(t).map(i=>Ju[i%12*3+2]);return function(a,s,l){let d,c,u,p,f=(a+s+l)*hC,h=is(a+f),m=is(s+f),y=is(l+f),g=(h+m+y)*Wr,x=h-g,S=m-g,w=y-g,b=a-x,_=s-S,A=l-w,v,M,O,T,C,P;b>=_?_>=A?(v=1,M=0,O=0,T=1,C=1,P=0):b>=A?(v=1,M=0,O=0,T=1,C=0,P=1):(v=0,M=0,O=1,T=1,C=0,P=1):_<A?(v=0,M=0,O=1,T=0,C=1,P=1):b<A?(v=0,M=1,O=0,T=0,C=1,P=1):(v=0,M=1,O=0,T=1,C=1,P=0);let I=b-v+Wr,D=_-M+Wr,G=A-O+Wr,N=b-T+2*Wr,F=_-C+2*Wr,B=A-P+2*Wr,R=b-1+3*Wr,V=_-1+3*Wr,q=A-1+3*Wr,Y=h&255,$=m&255,H=y&255,X=.6-b*b-_*_-A*A;if(X<0)d=0;else{let z=Y+t[$+t[H]];X*=X,d=X*X*(e[z]*b+r[z]*_+o[z]*A)}let k=.6-I*I-D*D-G*G;if(k<0)c=0;else{let z=Y+v+t[$+M+t[H+O]];k*=k,c=k*k*(e[z]*I+r[z]*D+o[z]*G)}let W=.6-N*N-F*F-B*B;if(W<0)u=0;else{let z=Y+T+t[$+C+t[H+P]];W*=W,u=W*W*(e[z]*N+r[z]*F+o[z]*B)}let U=.6-R*R-V*V-q*q;if(U<0)p=0;else{let z=Y+1+t[$+1+t[H+1]];U*=U,p=U*U*(e[z]*R+r[z]*V+o[z]*q)}return 32*(d+c+u+p)}}function Vy(n){let e=new Uint8Array(512);for(let r=0;r<512/2;r++)e[r]=r;for(let r=0;r<512/2-1;r++){let o=r+~~(n()*(256-r)),i=e[r];e[r]=e[o],e[o]=i}for(let r=256;r<512;r++)e[r]=e[r-256];return e}import{Triangle as mC}from"three";var Sr=new mC,rc=class{constructor(t){this.weightAttribute=null;let e=t.geometry;if(!e.isBufferGeometry||e.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");e.index&&(e=e.toNonIndexed()),this.geometry=e,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,e=new Float32Array(t.count/3);for(let o=0;o<t.count;o+=3){let i=1;Sr.a.fromBufferAttribute(t,o),Sr.b.fromBufferAttribute(t,o+1),Sr.c.fromBufferAttribute(t,o+2),i*=Sr.getArea(),e[o/3]=i}this.distribution=new Float32Array(t.count/3);let r=0;for(let o=0;o<e.length;o++)r+=e[o],this.distribution[o]=r;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,e){if(this.distribution){let r=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*r);return this.sampleFace(o,t,e)}}binarySearch(t){if(!this.distribution)return 0;let e=this.distribution,r=0,o=e.length-1,i=-1;for(;r<=o;){let a=Math.ceil((r+o)/2);if(a===0||e[a-1]<=t&&e[a]>t){i=a;break}else t<e[a]?o=a-1:r=a+1}return i}sampleFace(t,e,r){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),Sr.a.fromBufferAttribute(this.positionAttribute,t*3),Sr.b.fromBufferAttribute(this.positionAttribute,t*3+1),Sr.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(Sr.a,o).addScaledVector(Sr.b,i).addScaledVector(Sr.c,1-(o+i)),Sr.getNormal(r),this}};import{Object3D as bC}from"three";var ky=Rt(zy());import{Object3D as yC,Matrix4 as $r}from"three";var gC=new $r,xC=new $r,vC=new $r,Gi;(t=>{function n(e){return e&&e.__isSPEObject}t.is=n})(Gi||(Gi={}));var zi=n=>class extends n{constructor(){super(...arguments);this.previousModelViewMatrix=new $r;this.copyPreviousMatrix=!0;this.hiddenMatrix=new $r;this.matrixWorldRigid=new $r;this.shearScale=new $r;this.shearScaleInv=new $r}get __isSPEObject(){return!0}isDescendantOf(r){r instanceof yC&&(r=r.uuid);let o=this;for(;o.parent;){if(o.parent.uuid===r)return!0;o=o.parent}return!1}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let a of this.children)a.updateWorldMatrix(!1,!0)}traverseChildren(r,o=0){for(let i of this.children)Gi.is(i)&&i.traverseObject(r,o+1)}traverseObject(r,o=0){if(r(this,o)!==!0)for(let a of this.children)Gi.is(a)&&a.traverseObject(r,o+1)}updateMatrixWorldSVD(){let r=this.matrixWorld.elements,o=[[r[0],r[4],r[8]],[r[1],r[5],r[9]],[r[2],r[6],r[10]]],{u:i,v:a,q:s}=(0,ky.SVD)(o),l=gC.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),d=xC.set(a[0][0],a[0][1],a[0][2],0,a[1][0],a[1][1],a[1][2],0,a[2][0],a[2][1],a[2][2],0,0,0,0,1),c=vC.copy(d).transpose();this.shearScale.makeScale(s[0],s[1],s[2]).multiply(c).premultiply(d),this.shearScaleInv.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,c).copyPosition(this.matrixWorld),s.every(u=>Math.abs(s[0]-u)<.01)?this.hasNonUniformScale=!1:this.hasNonUniformScale=!0}attach(r,o){this.updateWorldMatrix(!0,!1);let i=new $r().copy(this.matrixWorld).invert();return r.parent!==null&&(r.parent.updateWorldMatrix(!0,!1),i.multiply(r.parent.matrixWorld)),"hiddenMatrix"in r&&r.hiddenMatrix instanceof $r?r.hiddenMatrix.premultiply(i):r.applyMatrix4(i),r.updateWorldMatrix(!1,!1),this.add(r),o!==void 0&&(this.children.pop(),this.children.splice(o,0,r)),this}copy(r,o=!1){return super.copy(r,o),this.hasNonUniformScale=r.hasNonUniformScale,this}onAfterRender(r,o,i,a,s,l){this.copyPreviousMatrix&&this.previousModelViewMatrix.copy(this.modelViewMatrix)}};var ed=class extends zi(bC){},SC=n=>n.type==="Mesh",wo=class extends ed{constructor(e){super();this.object=e;this.matrixAutoUpdate=!1,this.hasNonUniformScale=e.hasNonUniformScale}raycast(e,r){}expand(){let e=0,r=this.object.entityChildren(e);for(;r;){let o=this.children[e];o?.object!==r&&(o&&this.remove(o),o=new wo(r),this.add(o),this.children.splice(e,0,this.children.pop()),o.matrixWorldNeedsUpdate=!0,o.matrixAutoUpdate=!1,o.matrix=r.matrix,o.hiddenMatrix=r.hiddenMatrix),o.expand(),e+=1,r=this.object.entityChildren(e)}for(;this.children.length>e;)this.remove(this.children[e])}get visible(){return this.playModeVisible!==void 0?this.playModeVisible:this.object.visible||this.object.dataPatched.visible&&this.object.dataPatched.cloner?.hideBase===!0}set visible(e){}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return SC(this.object)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};import{Box3 as N2,BufferGeometry as E2,MeshBasicMaterial as D2}from"three";import{Matrix4 as M2,Mesh as I2}from"three";import{Matrix4 as ic,Vector3 as Uy,Euler as PC,MathUtils as ss}from"three";import{Box3 as wC,Line3 as _C,Matrix4 as td,Vector3 as ar}from"three";var Pn=new ar,On=new ar,ki=new td,jy=[new ar(-1,1,1),new ar(-1,-1,1),new ar(1,-1,1),new ar(1,1,1),new ar(-1,1,-1),new ar(-1,-1,-1),new ar(1,-1,-1),new ar(1,1,-1)],AC=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],TC=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],Fy=(n,t,e)=>{n.updateEntityBoxSize(Pn,On),ki.copy(t).multiply(n.matrixWorld),On.x===0&&On.y===0&&On.z===0?e.push(new ar(Pn.x,Pn.y,Pn.z).applyMatrix4(ki)):jy.forEach(r=>{e.push(r.clone().multiply(On).add(Pn).applyMatrix4(ki))})},as=class extends wC{constructor(){super(...arguments);this.matrix=new td;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new td().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(a=>{if(a.visible||a.cloner&&a.data.visible){if(!("geometry"in a)){i.push(new ar);return}Fy(a,r,i)}}):Fy(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(ki.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(On).multiplyScalar(.5),this.getCenter(Pn),ki.copy(this.matrix).setPosition(Pn),this.vertices=jy.map(e=>e.clone().multiply(On).applyMatrix4(ki))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=AC.map(([e,r])=>new _C(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new ar))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=TC.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var wr={Cloner:()=>{},changeEntityProptotype:()=>{},createEntity:()=>{}};import{CurvePath as CC,CubicBezierCurve3 as rd,Vector3 as _r}from"three";var nd=class extends CC{constructor(){super()}getPoints(t=12){let e=[],r,o=this.getCurveLengths(),a=o[o.length-1]/o.length;for(let s=0,l=this.curves;s<l.length;s++){let d=l[s],c=s===0?o[s]:o[s]-o[s-1],u=Math.ceil(t*c/a),p=d.getPoints(u);for(let f=0;f<p.length;f++){let h=p[f];r&&r.equals(h)||(e.push(h),r=h)}}return this.autoClose&&e.length>1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}};var id=.001;function ad(n,t,e){return t.clone().sub(n).cross(t.clone().sub(e)).length()<=id}function od(n,t){let e=new _r(...n.position),r=new _r(...n.controlNext.position),o=new _r(...t.controlPrevious.position),i=new _r(...t.position);return ad(e,r,i)&&ad(e,o,i)}function nc(n){let t=n.points.map(c=>new _r(...c.data.position)),e=[n.points[0]],r=new _r(...e[0].data.position);for(let c=0;c<n.points.length-1;c++)ad(r,t[c],t[c+1])||(e.push(n.points[c]),r=t[c]);e.push(n.points[n.points.length-1]);let o=n.isClosed,i=e.length-(o?0:1),a=e.length,s=[];for(let c=0;c<a;c++){let u=e[c].data,p=new _r(...u.position),f=new _r(...u.controlPrevious.position),h=new _r(...u.controlNext.position),m={position:p,baseRoundness:u.roundness,controlPrevious:f,controlNext:h};if(u.roundness===0||!n.isClosed&&(c===0||c===a-1)){s[c]={...m,removedLength:0};continue}let y=o&&c==0?a-1:c-1,g=o&&c==a-1?0:c+1,x=e[y].data,S=e[g].data,w=new _r(...x.position),b=new _r(...S.position),_=w.clone().sub(p).normalize(),A=b.clone().sub(p).normalize();Object.assign(m,{prevDir:_,nextDir:A});let v=od(x,u),M=od(u,S);if(!v||!M)s[c]={...m,removedLength:0};else{let O=_.clone().add(A).normalize(),T=O.clone().cross(_).length()/_.dot(O);s[c]={...m,tan:T,removedLength:u.roundness/T}}}for(let c=0;c<i;c++){let u=c,p=o&&c===a-1?0:c+1,f=s[u],h=s[p];if(f.removedLength!==0||h.removedLength!==0){let m=f.position.distanceTo(h.position);f.removedLength=Math.min(f.removedLength,m/2),h.removedLength=Math.min(h.removedLength,m/2)}}let l=[];for(let c=0;c<i;c++){let u=c,p=o&&c===a-1?0:c+1,f=s[u],h=s[p],m=null;if(!od(e[u].data,e[p].data))f.position.distanceTo(h.position)>id&&(m=new rd(f.position,f.controlNext,h.controlPrevious,h.position));else{let y=f.position.clone(),g=h.position.clone();(f.removedLength!==0||h.removedLength!==0)&&(f.nextDir&&y.add(f.nextDir.clone().setLength(f.removedLength)),h.prevDir&&g.add(h.prevDir.clone().setLength(h.removedLength))),y.distanceTo(g)>id&&(m=new rd(y,y.clone().lerp(g,.3),g.clone().lerp(y,.3),g))}l[2*c+1]=m}for(let c=0;c<a;c++){let u=s[c];if(u.removedLength===0){l[2*c]=null;continue}let p=u.position,f=u.prevDir.clone().multiplyScalar(u.removedLength).add(p),h=u.nextDir.clone().multiplyScalar(u.removedLength).add(p),m=u.tan*u.removedLength,y=u.prevDir.clone().add(u.nextDir).normalize(),g=f.clone().lerp(h,.5),x=f.distanceTo(h)/2,S=y.clone().multiplyScalar(Math.sqrt(Math.pow(m,2)-Math.pow(x,2))).add(g),w=y.clone().multiplyScalar(-m).add(S),b=p.distanceTo(w)/p.distanceTo(g),_=u.prevDir.clone().multiplyScalar(b*p.distanceTo(f)).add(p),A=_.clone().lerp(w,2),v=f.clone().lerp(_,4/3),M=h.clone().lerp(A,4/3);l[2*c]=new rd(f,v,M,h)}let d=new nd;return l.forEach(c=>{c&&d.add(c)}),d}var Ae;(t=>{function n(e){return e&&e.__isEntity}t.is=n})(Ae||(Ae={}));var Fi=n=>Ae.is(n),OC={type:"completeState",isfromEntity:!0},MC=["x","y","z"],sd=new Uy,IC=new Uy().set(0,1,0),ji=n=>class extends zi(n){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.disposed=!1;this.stateSelection=null;this.destroyedInAction=!1;this.instances=[];this.prevState=null;this.currentState=null;this.reversibleToState=null;this.currentTransitionEvent=null;this.previousAction=null;this._singleBBox=new as;this._recursiveBBox=new as;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this._needApplyPathSnapping=!0;this.attachedPaths=new Set}get __isEntity(){return!0}entityChildren(r){let o=this.children[r];if(Ae.is(o))return o}entityChildrenCount(){let r=this.children.length;for(;r--;)if(Ae.is(this.children[r]))return r+1;return 0}get isConcreteEntity(){return typeof this.identity=="string"}get isVirtualEntity(){return typeof this.identity!="string"}get isInstanceRoot(){return this.isConcreteEntity&&this.data.type==="Instance"}nearestInstanceSelfOrParent(){let r=this;for(;r.data.type!=="Instance";){let o=r.parent;if(Ae.is(o))r=o;else return}return r}forInstancesRec(r){this.instances.forEach(o=>{o.disposed||r(o),o.forInstancesRec(r)})}super_Entity(r,o){typeof r=="string"&&(this.uuid=r),this.identity=r,this.data=o,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(r,o,i=!1){if(!(this.data.states.length===0&&!i)){for(let a of this.data.states)Cn.toOps(this.data,a.data).forEach(l=>{let d=Sl.replaceProps(l,this.data);this.dataPatched=this.data,this.updateByPatchedOp(d,this.data,o)});if(r!==null){let a=this.data.states.data(r);a&&(this.dataPatched=Cn.patch(this.data,a),Cn.toOps(this.data,a).forEach(l=>{this.updateByPatchedOp(l,this.dataPatched,o)}))}i&&this.updateTransformState(this.dataPatched,o),this.stateSelection=r,this.updatePathSnapping(this.dataPatched.pathSnapping)}}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}updateEntityBoxSize(r,o){r.setScalar(0),o.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(r=>{Fi(r)&&r.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(r=>{r.resetBBoxNeedsUpdateSelf()})}find(r){let o;return this.traverseEntity(i=>{i.uuid===r&&(o=i)}),o}traverseSortNextHelper(){let r=this.parent;if(r){let o=r.children,i=o.indexOf(this)+1;if(Ae.is(o[i]))return o[i];if(Ae.is(r))return r.traverseSortNextHelper()}}sortNext(){let r=this.children;return this.children.length>0&&Ae.is(this.children[0])?r[0]:this.traverseSortNextHelper()}goUp(r){let o=this;for(;r>0&&o!==null;)o=o.parent,r-=1;return o}hasAnccestorOrSelf(r){return this===r||this.hasAnccestor(r)}hasAnccestor(r){let o=this.parent;for(;o;){if(r===o)return!0;o=o.parent}return!1}countToAccestor(r){let o=0,i=this;for(;i!==r;){if(i===null)return-1;i=i.parent,o+=1}return o}forEachEntity(r){for(let o of this.children)Fi(o)&&r(o)}traverseEntityAncestors(r){this.traverseAncestors(o=>{Ae.is(o)&&r(o)})}traverseConcreteEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)Fi(a)&&a.isConcreteEntity&&a.traverseEntity(r,o+1)}traverseEntity(r,o=0){if(r(this,o)!==!0)for(let a of this.children)Fi(a)&&a.traverseEntity(r,o+1)}traverseVisibleEntity(r){r(this);for(let o of this.children)Fi(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.cloner&&this.cloner.onObjUpdateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){super.updateMatrixWorld(r),this.dispatchEvent({type:"updateMatrixWorld"})}copy(r,o=!1){return super.copy(r,o),this.dataPatched=r.dataPatched,this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),this}hasEntityChild(){return this.children.some(r=>Fi(r))}isAncestorOf(r){if(this.uuid===r)return!1;let o=!1;return this.traverseEntity(i=>{i.uuid===r&&(o=!0)}),o}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x*ss.RAD2DEG,this.rotation.y*ss.RAD2DEG,this.rotation.z*ss.RAD2DEG],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return vi(o,r)}getTransformValues(r,o,i){return o[r].map((a,s)=>i?.shared.getVariable(a,[this.uuid,r,MC[s]])??a)}updateTransformState(r,o){let i=!1;return r.position&&(this.position.fromArray(this.getTransformValues("position",r,o)),i=!0),r.rotation&&(sd.fromArray(this.getTransformValues("rotation",r,o)).multiplyScalar(ss.DEG2RAD),this.rotation.setFromVector3(sd),i=!0),r.scale&&(this.scale.fromArray(this.getTransformValues("scale",r,o)),i=!0),r.hiddenMatrix!==void 0&&(i=!0,this.hiddenMatrix.fromArray(r.hiddenMatrix??jo.identity)),i&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(a=>{a.invalidateClonerTransform(this)})),r.position&&r.rotation&&r.scale&&r.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),i}onVariableUpdate(r=!1){if(r){this.resetBBoxNeedsUpdate();return}this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(o=>{o.invalidateClonerTransform(this)})}dispose(){this.disposed=!0,this.cloner&&(this.cloner.removeFromParent(),this.cloner=void 0)}disposeChildrenRecursively(){for(let r of this.children)Ae.is(r)&&r.disposeRecursively()}disposeRecursively(){this.dispose(),this.children.forEach(r=>{Ae.is(r)&&r.disposeRecursively()})}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return vi(o,r)}updateByObjUpdateOp(r,o){r!==void 0&&this.updateByOp({type:0,props:r,path:[]},{...this.data,...r},o,!1)}updateByOp(r,o,i,a){let s=this.data;this.data=o;let l=r,d=Lt(r.path,["states","*"]);if(d!==null){if(r.type===0){let[c]=d;if(this?.stateSelection===c){let u={...r.props};if(delete u.name,Object.values(r.props).some(p=>p===void 0)){let p=this.data;if(p!==void 0){let f=ot.zoom(p,r.path.slice(2));if(f)for(let h in r.props)r.props[h]===void 0&&h in f&&(u[h]=f[h])}}l={...r,props:u,path:r.path.slice(2)}}}}else if(r.type===0){let c=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(c!==void 0){if(r.props.name!==void 0&&c.name){let{name:p,...f}=c;c=f}if(r.props.material!==void 0&&"material"in c){let{material:p,...f}=c;c=f}let u=ot.removeOverridden(r.path,r.props,c);l={...r,props:u}}}if(this.updateByPatchedOpBase(l,Cn.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),i),Lt(r.path,["overrides"])){let c=[],u=[...r.path];for(c.push(u[1]),u.splice(0,2);u.length>0&&u[0]==="descendants";)c.push(u[1]),u.splice(0,2);if(c[c.length-1]===void 0){if(r.type===0)for(let p of Object.keys(r.props)){c[c.length-1]=p;let f=i.scene.findInstance([this.uuid,...c]);f&&(f.overrideData=r.props[p],f.updateState(Gr.apply(f.component.data,f.overrideData),i))}}else{let p=i.scene.findInstance([this.uuid,...c]);if(p){let f=ot.zoom(p.component.data,u);if(r={...r,path:u},r.type===0){let h=r.props;if(f)for(let[m,y]of Object.entries(r.props))y===void 0&&(h===r.props&&(h={...r.props}),h[m]=f[m]);r={...r,props:h}}p.overrideData=Ni.resolve(o.overrides,c),p.updateByOp(r,nt.applySimple(p.data,r),i,!1)}}}else if(this.instances.length>0){let c;if(r.path.length===0&&r.type===0){let u;for(let p of Hr.rootOverrideProps)p in r.props&&(u===void 0&&(u={}),u[p]=r.props[p]);u&&(c={...r,props:u})}else for(let u of Hr.rootOverrideProps)if(Lt(r.path,[u])){c=r;break}c!==void 0&&this.instances.forEach(u=>{if(u.isInstanceRoot){let p=Gr.filterOp(u.overrideData,c);p&&u.updateByOp(p,nt.applySimple(u.data,p),i,!0)}}),this.instances.forEach(u=>{if(!u.isInstanceRoot){let p=Gr.filterOp(u.overrideData,r);if(p){let f;s===u.data&&r===p?f=o:f=nt.applySimple(u.data,p),u.updateByOp(p,f,i,!0)}}})}}updateByPatchedOpBase(r,o,i){if(this.dataPatched=o,r.path.length===0&&r.type===0)r.props.type!==void 0&&!vr.is(r.props.type)&&wr.changeEntityProptotype(this,o,i);else if(r.path.length===1&&r.path[0]==="geometry"&&r.type===0&&"type"in r.props){wr.changeEntityProptotype(this,o,i);for(let a of this.children)Ae.is(a)&&a.updateVisible(i.scene)}this.updateByPatchedOp(r,o,i)}updateByPatchedOp(r,o,i){if(r.path.length===0&&r.type===0&&this.updateState(r.props,i),Lt(r.path,["pathSnapping"])!==null&&this.updatePathSnapping(o.pathSnapping),Lt(r.path,["cloner"])!==null){let a=nt.drop(r,1);a.path.length===0&&a.type===0&&a.props.disabled===!0?this.setFromClonerState(null,i):this.cloner?this.cloner.updateState(o.cloner,i.scene):(this.setFromClonerState(o.cloner,i),this.expandCloner(i.scene)),this.updateVisible(i.scene)}}updatePathSnapping(r=this.dataPatched.pathSnapping){this._updatedPathSnapping=r,this._needApplyPathSnapping=!0}get updatedPathSnapping(){return this._updatedPathSnapping}applyPathSnapping(r){let o=this._updatedPathSnapping?.pathId??this.dataPatched.pathSnapping.pathId,i=this._updatedPathSnapping?.slide??this.dataPatched.pathSnapping.slide??0,a=this._updatedPathSnapping?.offset??this.dataPatched.pathSnapping.offset??0,s=this._updatedPathSnapping?.orientation??this.dataPatched.pathSnapping.orientation;if(o===null)return;let l=r.find(o);if(!l||this._needApplyPathSnapping===!1)return;this._needApplyPathSnapping=!1;let d=l.data;if(d.geometry.path.points.length<=1)return;let c=nc(d.geometry.path),u=(i+a)%1;i+a===1&&u===0&&(u=1);let p=c.getPointAt(u);if(p===null)return;let f=this.parent?this.parent?.matrixWorld:new ic;l.updateMatrixWorld();let h=new ic().multiplyMatrices(f.clone().invert(),l.matrixWorld);p.applyMatrix4(h);let m={position:p.toArray(),rotation:d.rotation};if(s==="tangential"){let y=new ic().extractRotation(l.matrixWorld),g=c.getTangentAt(u).applyMatrix4(y).add(p),x=new ic().lookAt(p,g,IC),S=sd.setFromEuler(new PC().setFromRotationMatrix(x)).multiplyScalar(ss.RAD2DEG);m={...m,rotation:S.toArray()}}this.updateTransformState(m),this.traverseEntity(y=>{y._cameraType&&y.dispatchEvent(OC)})}updateVisible(r){if(this.visible=this.dataPatched.visible&&(!this.dataPatched.cloner||(this.dataPatched.cloner.disabled??!1)||this.dataPatched.cloner?.hideBase!==!0),!r)return;let o=!1;this.traverseEntity(i=>{if(i.data.type==="Splat")return o=!0,!0}),o&&r.reloadSplats()}updateState_Entity(r,o){r.name!==void 0&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.visible!==void 0&&(this.updateVisible(o?.scene),this.resetBBoxNeedsUpdate()),o&&"cloner"in r&&r.cloner!==void 0&&(this.setFromClonerState(r.cloner,o),this.updateVisible(o.scene)),this.updateTransformState(r,o)}get attachedSurfaceCloners(){return this.children.filter(r=>r instanceof wr.Cloner&&r.parameters.type==="toObject")}setFromClonerState(r,o){this.disposed||(r===null||r.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):this.cloner===void 0?(this.cloner=new wr.Cloner(this,r),o.scene.addPendingExpandCloner(this)):this.cloner.updateState(r,o.scene))}expandCloner(r){!this.disposed&&this.cloner&&this.cloner.expandClones(r)}invalidateClonerTransform(r){this.cloner&&this.cloner.invalidateTransform(r)}};import{BufferGeometry as DC,ConeGeometry as LC,Float32BufferAttribute as BC,MathUtils as RC}from"three";import{BufferGeometry as qy,CylinderGeometry as NC,Float32BufferAttribute as sc,MathUtils as EC,Vector2 as Ar,Vector3 as ac}from"three";var Wy=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:8,cornerSegments:8,hollow:0},n.parameters);e.thetaLength=EC.clamp(e.thetaLength,0,360);let r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,radiusTop:d,radiusBottom:c,cornerRadius:u,cornerSegments:p,hollow:f}=n.parameters,h;return l===0?(h=new qy,h.setAttribute("position",new sc([],3))):u||f?h=new ls(d,c,r,o,i,a,s,l*Math.PI/180,u,u,p,f):h=new NC(d,c,r,o,i,a,s,l*Math.PI/180),h.scale(1,1,e/t),Object.assign(h,{userData:{...n,type:"CylinderGeometry"}})}};function Qo(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Hy(n){return new Ar(n.y,-n.x)}var ls=class extends qy{constructor(t,e,r,o,i,a,s,l,d,c,u,p,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,a=a!==void 0?a:!1,s=s!==void 0?s:0,l=l!==void 0?l:Math.PI*2,a&&(d=0,c=0);let h=[],m=[],y=[],g=[],x=0,S=r/2,w=new ac,b=new ac;f&&t==0&&(t=d),f&&e==0&&(e=c);let _=new Ar(t,S),A=new Ar(e,-S),v=null,M=null,O=null,T=null,C=_.clone().sub(A),P=0,I=0,D=0;p>0&&(P=Math.min(t,e)*(1-p),I=t-P,D=e-P);let G=_.clone();G.x-=P;let N=Math.PI-C.angle(),F=C.angle(),B=Math.tan(F/2),R=Math.tan(N/2),V=B+R,q=p?V:R,Y=p?V:B;if(d=Math.min(d,(t-I)/q,C.length()/V),c=Math.min(c,(e-D)/Y,C.length()/V),d>0){let U=d/B;v=_.clone().sub(new Ar(U,d)),p&&(O=v.clone(),O.x-=P-V*d),_.sub(C.clone().setLength(U))}if(c>0){let U=c/R;M=A.clone().sub(new Ar(U,-c)),A.add(C.clone().setLength(U)),p&&(T=M.clone(),T.x-=P-V*c,G.sub(C.clone().setLength(U)))}C=_.clone().sub(A);let $=C.length()<.5,H=[];for(let U=0;U<=o;U++){let z=[],oe=U/o,ee=oe*l+s,Q=new Ar(Math.sin(ee),Math.cos(ee));T&&M?(X(z,oe,Q,N,c,T,-1,!0),X(z,oe,Q,F,c,M,-1,!1)):M?(k(z,Q,M.x,0,-1),X(z,oe,Q,F,c,M,-1,!1)):a||k(z,Q,e,D,-1);let te=Hy(C).normalize();if(Qo(te,Q,w),!$)for(let Z=0;Z<=i;Z++){let se=Z/i,ne=C.clone().multiplyScalar(se).add(A);Qo(ne,Q,b),m.push(b.x,b.y,b.z),y.push(w.x,w.y,w.z),g.push(oe,.5+b.y/r),z.push(x++)}if(O&&v?(X(z,oe,Q,N,d,v,1,!1),X(z,oe,Q,F,d,O,1,!0)):v?(X(z,oe,Q,N,d,v,1,!1),k(z,Q,v.x,0,1)):a||k(z,Q,t,I,1),p&&!$){let Z=Hy(C).multiplyScalar(-1).normalize();Qo(Z,Q,w);for(let se=0;se<=i;se++){let ne=se/i,ie=C.clone().multiplyScalar(-ne).add(G);Qo(ie,Q,b),m.push(b.x,b.y,b.z),y.push(w.x,w.y,w.z),g.push(oe,.5+b.y/r),z.push(x++)}}p&&!a&&z.push(z[0]),H.push(z)}for(let U=0;U<H.length-1;U++)for(let z=0;z<H[0].length-1;z++){if(a&&p&&z==i)continue;let oe=H[U][z],ee=H[U+1][z],Q=H[U+1][z+1],te=H[U][z+1],Z=m[Q*3+0],se=m[Q*3+2];h.push(oe,ee,te),(Z!=0||se!=0)&&h.push(ee,Q,te)}l<Math.PI*2&&(W(-1,H[0],s),W(1,H[H.length-1],s+l)),this.setIndex(h),this.setAttribute("position",new sc(m,3)),this.setAttribute("normal",new sc(y,3)),this.setAttribute("uv",new sc(g,2));function X(U,z,oe,ee,Q,te,Z,se){for(let ne=0;ne<u+1;ne++){let ie=ne/u,ue=Z<0?ie:1-ie;se&&(ue-=1),ue*=ee;let le=new Ar(Math.sin(ue),Math.cos(ue)*Z),de=le.clone().multiplyScalar(Q).add(te);Qo(de,oe,b),m.push(b.x,b.y,b.z),Qo(le,oe,w),y.push(w.x,w.y,w.z),g.push(z,.5+b.y/r),U.push(x++)}}function k(U,z,oe,ee,Q){let te=new ac,Z=new Ar,se=[oe,ee];Q<0&&se.reverse();for(let ne of se)Z.set(ne,S*Q),Qo(Z,z,te),m.push(te.x,te.y,te.z),y.push(0,Q,0),g.push(.5,.5),U.push(x++)}function W(U,z,oe){let ee=new Ar(Math.sin(oe),Math.cos(oe)),Q=new Ar(-Math.cos(oe),Math.sin(oe)),te=new ac,Z=U<0?(ie,ue,le)=>h.push(ie,ue,le):(ie,ue,le)=>h.push(ie,le,ue),se=new Ar((t+e+I+D)/4,0);Qo(se,ee,te),m.push(te.x,te.y,te.z),y.push(Q.x,0,Q.y),g.push(.5,.5);let ne=x++;for(let ie of z){let ue=m.slice(ie*3,ie*3+3);m.push(...ue),y.push(Q.x,0,Q.y);let le=g.slice(ie*2,ie*2+2);g.push(...le),x++}for(let ie=ne+1;ie<x-1;ie++)Z(ne,ie,ie+1);Z(ne,x-1,ne+1)}}};var $y=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:8,cornerRadiusBottom:8,cornerSegments:8},n.parameters);return e.thetaLength=RC.clamp(e.thetaLength,0,360),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:a,thetaStart:s,thetaLength:l,cornerRadiusTop:d,cornerRadiusBottom:c,cornerSegments:u}=n.parameters,p;return l===0?(p=new DC,p.setAttribute("position",new BC([],3))):d>0||c>0||l<360?p=new ls(0,t/2,r,o,i,a,s,l*Math.PI/180,d,c,u,0,!0):p=new LC(t/2,r,o,i,a),p.scale(1,1,e/t),Object.assign(p,{userData:{...n,type:"ConeGeometry"}})}};import{BoxGeometry as VC,BufferGeometry as GC,Float32BufferAttribute as ld,Vector3 as cs}from"three";var Yy=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:8,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:a,cornerRadius:s,cornerSegments:l}=n.parameters,d;return s==0?d=new VC(t,e,r,o,i,a):d=new ud(t,e,r,o,i,a,s,l),Object.assign(d,{userData:{...n,type:"CubeGeometry"}})}},cd=Math.PI/2,ud=class extends GC{constructor(t=1,e=1,r=1,o=1,i=1,a=1,s=0,l=4){super(),this.type="BoxGeometry";let d=this;o=Math.floor(o),i=Math.floor(i),a=Math.floor(a),l=Math.floor(l),s=Math.min(s,t/2,e/2,r/2);let c=[],u=[],p=[],f=[],h=0,m=0;y("z","y","x",-1,-1,r,e,t,a,i,0),y("z","y","x",1,-1,r,e,-t,a,i,1),y("x","z","y",1,1,t,r,e,o,a,2),y("x","z","y",1,-1,t,r,-e,o,a,3),y("x","y","z",1,-1,t,e,r,o,i,4),y("x","y","z",-1,-1,t,e,-r,o,i,5),s>0&&(g("z","y","x",-1,-1,1,r,e,t,a,0),g("z","y","x",1,-1,-1,r,e,t,a,1),g("z","y","x",-1,1,-1,r,e,t,a,1),g("z","y","x",1,1,1,r,e,t,a,0),g("x","y","z",-1,-1,-1,t,e,r,o,0),g("x","y","z",1,-1,1,t,e,r,o,1),g("x","y","z",-1,1,1,t,e,r,o,0),g("x","y","z",1,1,-1,t,e,r,o,1),g("y","x","z",-1,-1,1,e,t,r,i,0),g("y","x","z",1,-1,-1,e,t,r,i,1),g("y","x","z",1,1,1,e,t,r,i,1),g("y","x","z",-1,1,-1,e,t,r,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(c),this.setAttribute("position",new ld(u,3)),this.setAttribute("normal",new ld(p,3)),this.setAttribute("uv",new ld(f,2));function y(S,w,b,_,A,v,M,O,T,C,P){let I=(v-2*s)/T,D=(M-2*s)/C,G=v/2-s,N=M/2-s,F=O/2,B=T+1,R=C+1,V=0,q=0,Y=new cs;for(let $=0;$<R;$++){let H=$*D-N;for(let X=0;X<B;X++){let k=X*I-G;Y[S]=k*_,Y[w]=H*A,Y[b]=F,u.push(Y.x,Y.y,Y.z),Y[S]=0,Y[w]=0,Y[b]=O>0?1:-1,p.push(Y.x,Y.y,Y.z),f.push(X/T),f.push(1-$/C),V+=1}}for(let $=0;$<C;$++)for(let H=0;H<T;H++){let X=h+H+B*$,k=h+H+B*($+1),W=h+(H+1)+B*($+1),U=h+(H+1)+B*$;c.push(X,k,U),c.push(k,W,U),q+=6}d.addGroup(m,q,P),m+=q,h+=V}function g(S,w,b,_,A,v,M,O,T,C,P){let I=(M-2*s)/C,D=M/2-s,G=O/2-s,N=T/2,F=C+1,B=0,R=0,V=new cs,q=new cs;for(let Y=0;Y<l+1;Y++){let $=Y/l*cd,H=Math.sin($)*s,X=(1-Math.cos($))*s,k=Math.sin($),W=Math.cos($);V[w]=(G+H)*A,V[b]=(N-X)*v,q[S]=0,q[w]=k*Math.sign(V[w]),q[b]=W*Math.sign(V[b]);for(let U=0;U<F;U++){let z=U*I-D;V[S]=z*_,u.push(V.x,V.y,V.z),p.push(q.x,q.y,q.z),f.push(U/C),f.push(0),B+=1}}for(let Y=0;Y<l;Y++)for(let $=0;$<C;$++){let H=h+$+F*Y,X=h+$+F*(Y+1),k=h+($+1)+F*(Y+1),W=h+($+1)+F*Y;c.push(H,X,W),c.push(X,k,W),R+=6}d.addGroup(m,R,P),m+=R,h+=B}function x(S,w,b){let _=new cs,A=new cs(t/2,e/2,r/2);A.subScalar(s);let v=[],M=S*w*b>0?(T,C,P)=>c.push(T,C,P):(T,C,P)=>c.push(T,P,C);for(let T=0;T<=l;T++){let C=[],P=cd*(1-T/l),I=Math.cos(P),D=Math.sin(P),G=0;for(let N=0;N<=T;N++){let F=Math.cos(G),B=Math.sin(G);_.x=I*F,_.y=D,_.z=I*B;let R=A.clone().addScaledVector(_,s);u.push(S*R.x,w*R.y,b*R.z),p.push(S*_.x,w*_.y,b*_.z),f.push(0,0),C.push(h++),G+=cd/T}v.push(C)}let O=v.length-1;for(let T=0;T<O;T++){let C=v[T],P=v[T+1],I=C.length-1;M(C[0],P[1],P[0]);for(let D=1;D<=I;D++)M(C[D-1],C[D],P[D]),M(C[D],P[D+1],P[D])}}}};import{BufferGeometry as zC,Float32BufferAttribute as dd,Triangle as kC,Vector3 as _o,Vector2 as pd}from"three";var Zo=class extends zC{constructor(t=[],e=[],r="",o=1,i=.2,a=4){super(),this.type="PolyhedronGeometryRound";let s=[],l=[],d=[];c(),u(),this.setAttribute("position",new dd(s,3)),this.setAttribute("normal",new dd(d,3)),this.setAttribute("uv",new dd(l,2));return;function c(){i=Math.min(1-1e-5,i),i==0&&(a=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],h=new _o,m=h.clone(),y=new kC,g=i*o,x=o-g,S=a+1,w=new _o,b=(B,R)=>w.subVectors(B,R).normalize(),_=(B,R)=>Array(B).fill(void 0).map(R),A=_(t.length/3,(B,R)=>new _o().fromArray(t,R*3).setLength(o)),v=[],M=1e6;for(let B=0;B<A.length;B++){let R=A[B],V=[],q,Y,$,H=1e10,X=-1;for(;(X=e.indexOf(B,X+1))!=-1;){let z=X-X%3;q=e[z+(X+1)%3],Y=e[z+(X+2)%3],$=R.distanceToSquared(A[q]),H=Math.min(H,$),V.push([q,Y,$])}H+=1e-6;let k=[],W=0,U=V.length;for(let z=0;z<U;z++){[q,Y,$]=V[W];let oe=v[q]?.includes(B)==!0;$<=H&&k.push(q+ +oe*M),W=V.findIndex(ee=>ee[0]==Y)}v.push(k)}let O=[];{let B=0,R=0,V,q,Y=f==3;for(let $=0;$<=a;$++){V=$*($+1)/2,q=($+1)*($+2)/2;for(let H=0;H<a-$;H++)[B,R]=[V+H+$+2,q+H+$+3],O.push(V,q,...Y?[R,V]:[B,q],R,B),[V,q]=[B,R];O.push(V,q,V+a+2)}}let T=h.clone(),C=h.clone(),P=h.clone(),I=h.clone(),D=h.clone(),G=[],N=_(A.length,()=>_(f,()=>h.clone()));for(let B=0;B<A.length;B++){h.copy(A[B]).normalize(),T.copy(h).multiplyScalar(x);let R=v[B];for(let k=0;k<R.length;k++){let W=R[k],U=R[(k+1)%f];y.setFromPointsAndIndices(A,B,W%M,U%M),y.b.sub(y.a).setLength(1e10).add(y.a),y.c.sub(y.a).setLength(1e10).add(y.a),y.closestPointToPoint(T,N[B][k])}let V=[],q=[],Y=[],$=new _o;a==0&&[...N[B]].reduce((k,W)=>k.add(W),$).multiplyScalar(1/f);for(let k=0;k<f;k++){let W=[],U=(k-1+f)%f,z=N[B][U],oe=N[B][k];h.copy(z).sub(T),m.copy(oe).sub(T);let ee=T.angleTo(h),Q=h.angleTo(m),te=Math.cos(ee)*g;a==0?C.copy($):C.copy(T).setLength(x+te),q.push(te);let Z=[C,z,oe];for(let se=0;se<2;se++){let ne=Z[se],ie=Z[se+1];I.subVectors(ne,T),D.subVectors(ie,T),P.crossVectors(I,D).normalize();for(let ue=0;ue<S;ue++){let le=[ee,Q][se]*ue/S;h.copy(I).applyAxisAngle(P,le).add(T),V.push(h.clone()),se&&(b(h,T),W.push([ue==0?ne:h.clone(),w.clone()]))}se&&(b(ie,T),W.push([ie,w.clone()]))}Y.push(W)}G.push(Y);let H=2*S,X=2;for(let k=0;k<f;k++){let W=H*k,U=H*((k+1)%f),z=[V[W]];for(let ee=1;ee<S;ee++){I=V[W+ee],D=V[U+ee],z.push(I);for(let Q=1,te=ee-X+1;Q<=te;Q++)h.lerpVectors(I,D,Q/(te+1)),h.sub(T).setLength(q[k]).add(T),z.push(h.clone());z.push(D)}for(let ee=0;ee<S;ee++)z.push(V[ee+S+W]);z.push(V[U+S]);let oe=O.map(ee=>z[ee]);s.push(...oe.map(ee=>[ee.x,ee.y,ee.z]).flat()),d.push(...oe.map(ee=>(b(ee,T),[w.x,w.y,w.z])).flat())}}let F=[];for(let B=0;B<v.length;B++)for(let R=0;R<f;R++){let V=v[B][R];if(V<M){let q=v[V].findIndex(H=>H%M==B),Y=G[B][R],$=G[V][q];for(let H=0;H<S;H++){let X=Y[H],k=$[S-H],W=Y[H+1],U=$[S-(H+1)];[X,k,W,W,k,U].forEach(z=>{s.push(z[0].x,z[0].y,z[0].z),d.push(z[1].x,z[1].y,z[1].z)})}F.push(Y[0][0],$[S][0],Y[S][0],$[0][0])}}for(;F.length;){let B,R,V,q;[B,R]=F.splice(0,2);let Y=[B];for(;B!=R;)Y.push(R),V=F.indexOf(R),q=V%2,R=F.splice(V-q,2)[1-q];w.subVectors(Y[0],Y[1]).cross(h.subVectors(Y[0],Y[2])).normalize();let $=w.dot(Y[0])<0;$&&w.negate();for(let H=1;H<=Y.length-2;H++)[Y[H+ +$],Y[H+1-+$],Y[0]].forEach(X=>{s.push(X.x,X.y,X.z),d.push(w.x,w.y,w.z)})}}function u(){let p=new _o;for(let A=0;A<s.length;A+=3){p.x=s[A+0],p.y=s[A+1],p.z=s[A+2];let v=b(p)/2/Math.PI+.5,M=_(p)/Math.PI+.5;l.push(v,1-M)}let f=new _o,h=new _o,m=new _o,y=new _o,g=new pd,x=new pd,S=new pd,w=(A,v,M,O)=>{O<0&&A.x===1&&(l[v]=A.x-1),M.x===0&&M.z===0&&(l[v]=O/2/Math.PI+.5)};for(let A=0,v=0;A<s.length;A+=9,v+=6){f.set(s[A+0],s[A+1],s[A+2]),h.set(s[A+3],s[A+4],s[A+5]),m.set(s[A+6],s[A+7],s[A+8]),g.set(l[v+0],l[v+1]),x.set(l[v+2],l[v+3]),S.set(l[v+4],l[v+5]),y.copy(f).add(h).add(m).divideScalar(3);let M=b(y);w(g,v+0,f,M),w(x,v+2,h,M),w(S,v+4,m,M)}for(let A=0;A<l.length;A+=6){let v=l[A+0],M=l[A+2],O=l[A+4],T=Math.max(v,M,O),C=Math.min(v,M,O);T>.9&&C<.1&&(v<.2&&(l[A+0]+=1),M<.2&&(l[A+2]+=1),O<.2&&(l[A+4]+=1))}function b(A){return Math.atan2(A.z,-A.x)}function _(A){return Math.atan2(-A.y,Math.sqrt(A.x*A.x+A.z*A.z))}}}static fromJSON(t){return new Zo(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};import{DodecahedronGeometry as FC}from"three";var Xy=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:a}=n.parameters,s=o===0&&i!==0?new us(t*.5,i,a):new FC(t*.5,o);return s.scale(1,e/t,r/t),Object.assign(s,{userData:{...n,type:"DodecahedronGeometry"}})}},us=class extends Zo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,a=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],s=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(a,s,l,t,e,r),this.type=l}static fromJSON(t){return new us(t.radius,t.corner,t.cornerSides)}};import{Plane as ZC,Shape as ug,Vector2 as Ao,Vector3 as JC,MathUtils as vd,LineCurve as bd,QuadraticBezierCurve as dg,CubicBezierCurve as dc}from"three";import{CubicBezierCurve as lc,EllipseCurve as jC,LineCurve as cc,LineCurve3 as UC,MathUtils as HC,QuadraticBezierCurve as hd,SplineCurve as qC,Vector2 as Bt,Vector3 as Zy}from"three";var ds=1e-12,Ui=class{constructor(t){this.position=new Bt;this.startPosition=new Bt;this.uuid=HC.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new Ui(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Hi=class extends Ui{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Hi(this.parent).copy(this)}},Tr=class extends Ui{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Hi(this),new Hi(this))}static create(e,r){let o=new Tr(e,new Bt(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let a=this.controls[o];this.position.distanceTo(a.position)<=r?a.position.copy(this.position):a.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Tr(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new Bt,r=new Bt){let[o,i]=this.computeTangents();return o&&i&&(Ky(o,e),Ky(i,r)),[e,r]}computeTangent(e=new Bt){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new Bt){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Ky(n,t=new Bt){let e=n.length();return t.set(-n.y/e,n.x/e)}var md=n=>n,qi=new Bt,uc=new Bt,WC=new Bt,$C=new Bt,YC=new Bt,XC=new Bt,Jy=new Zy,eg=new Zy;function tg(n){let t=new Bt;t.addVectors(n.v0,qi.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new Bt;return e.addVectors(n.v2,uc.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new lc(n.v0,t,e,n.v2)}function ps(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function KC(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function QC(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function yd(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function rg(n,t,e){return Qy(n,t)&&Qy(t,e)&&fd(n.position,t.position,e.position)}function fd(n,t,e){return qi.copy(t).sub(n).cross(uc.copy(e).sub(n))===0}function og(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),a=(n.y+t.y)/2,s=(n.x+t.x)/2,l=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,d=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(s+l,a+d),o.set(s-l,a-d),[r,o]}function ng(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function ig(n,t,e,r,o,i){let a=t.x-n.x,s=t.y-n.y,l=e.x-n.x,d=e.y-n.y,c=Math.sqrt((a+l)*(a+l)+(s+d)*(s+d)),u;return yd(t,n,e)>Math.PI&&(c*=-1),ps(d,s)?u=(s+d)*(r/c-.5)*8/3/(a-l):u=(a+l)*(r/c-.5)*8/3/(d-s),o.set(t.x-u*s,t.y+u*a),i.set(e.x+u*d,e.y-u*l),[o,i]}function gd(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Qy(n,t){return fd(n.position,n.controls[1].position,t.position)&&fd(n.position,t.controls[0].position,t.position)}function ag(n,t,e,r,o=.5){let i=qi.subVectors(t,n).multiplyScalar(o).add(n),a=uc.subVectors(e,t).multiplyScalar(o).add(t),s=WC.subVectors(r,e).multiplyScalar(o).add(e),l=i,d=$C.subVectors(a,i).multiplyScalar(o).add(i),c=YC.subVectors(s,a).multiplyScalar(o).add(a),u=s,p=XC.subVectors(c,d).multiplyScalar(o).add(d);return[n.x,n.y,l.x,l.y,d.x,d.y,p.x,p.y,c.x,c.y,u.x,u.y,r.x,r.y]}function sg(n,t,e=12,r=!0){let o=eg.set(0,0,0),i,a=0,s=[];for(let l=0;l<t.length;l++){let d=md(t[l]),c=qi,u=Jo(d,e);s.push(u);for(let p=0;p<=u;p++)if(d instanceof lc||d instanceof hd||d instanceof cc){if(d.getPoint(p/u,c),o.set(c.x,c.y,0),i!==void 0&&QC(i,o))continue;i===void 0&&(i=Jy),i.copy(o),n.setXYZ(a,o.x,o.y,o.z),a++}}return r&&a>1&&!(n.getX(a-1)===n.getX(0)&&n.getY(a-1)===n.getY(0)&&n.getZ(a-1)===n.getZ(0))&&(n.setXYZ(a,n.getX(0),n.getY(0),n.getZ(0)),a++),n}function lg(n,t,e,r=12,o=!0){let i=eg.set(0,0,0),a=0,s=[];for(let l=0;l<t.length;l++){if(e[l]===!1)continue;let d,c=md(t[l]),u=qi,p=Jo(c,r);s.push(p);for(let f=0;f<=p;f++)if(c instanceof lc||c instanceof hd||c instanceof cc){if(c.getPoint(f/p,u),i.set(u.x,u.y,0),d?.equals(i))continue;d===void 0?d=Jy:(n.setXYZ(a,d.x,d.y,d.z),a++,n.setXYZ(a,i.x,i.y,i.z),a++),d.copy(i)}}return o&&a>1&&!(n.getX(a-1)===n.getX(0)&&n.getY(a-1)===n.getY(0)&&n.getZ(a-1)===n.getZ(0))&&(n.setXYZ(a,n.getX(0),n.getY(0),n.getZ(0)),a++),s}function xd(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let a=n[o],s=0;if(e&&a.roundedCurveCorner!==void 0){let l=Jo(a.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=l),s+=l}a.curveAfter!==void 0&&(s+=Jo(a.curveAfter,t)),r.push(s)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=Jo(n[0].roundedCurveCorner,t)*.5),r}function Jo(n,t=12){return n&&n instanceof jC?t*2:n&&(n instanceof cc||n instanceof UC)?1:n&&n instanceof qC?t*n.points.length:t}function cg(n,t,e=12,r=!0){let o,i=0;for(let a=0;a<t.length;a++){let s=md(t[a]),l=Jo(s,e),d=qi;for(let c=0;c<=l;c++)if(s instanceof lc||s instanceof hd||s instanceof cc){if(s.getPoint(c/l,d),o!==void 0&&KC(o,d,ds))continue;o===void 0&&(o=uc),o.copy(d),n.push(d.x,d.y),i++}}return ps(n[0],n[n.length-2],ds)&&ps(n[1],n[n.length-1],ds)&&(n.pop(),n.pop()),r&&i>1&&!(ps(n[i-1],n[1],ds)&&ps(n[i-2],n[0],ds))&&(n.push(n[0],n[1]),i++),n}var Sd=new Ao,eP=new Ao,tP=new Ao,rP=new Ao,oP=new Ao,nP=new Ao,Ne=class extends ug{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.plane=new ZC(new JC(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this.isText=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=vd.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new Ne;return i.isClosed=e.isClosed,i.points=e.points.map(a=>Tr.create(a.id,a.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(a=>Ne.createFromState(a)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let a=0,s=this.shapeHoles.length;a<s;a++){let l=this.shapeHoles[a],d=l.points.length,c=l.getPointIndexById(e);if(c<0)i+=d;else return c+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=e-r;if(s<=a.points.length-1)return a.points[s];r+=a.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let a=this.shapeHoles[o],s=a.points.indexOf(e);if(s>=0)return r+s;r+=a.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Sd.set(e,r);for(let i=0,a=this.points.length;i<a;i++){let s=this.points[i];s.position.multiply(o),s.controls[0].position.multiply(o),s.controls[1].position.multiply(o)}for(let i=0,a=this.shapeHoles.length;i<a;i++)this.shapeHoles[i].applyScale(e,r);this._update()}createPoint(e,r=0,o=vd.generateUUID()){let i;e instanceof Ao?i=e:i=new Ao(e,r);let a=new Tr(o,i);return a.roundness=this.roundness,a}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let a=this.shapeHoles[r].getPointByUuid(e);if(a)return a}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(){for(let e=0,r=this.shapeHoles.length;e<r;e++)this.shapeHoles[e].update();this._update()}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return sg(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((a,s)=>a+s,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=xd(this.points,e,!1),this.roundedCurveDivisions=xd(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return lg(e,this.curves,r,o,this.autoClose).reduce((a,s)=>a+s,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),cg(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,a=0;r&&this.points[0].roundedCurveCorner!==void 0&&(a=Jo(this.points[0].roundedCurveCorner,this.subdivision)*.5);let s=e-a;s<0&&(s+=i.reduce((l,d)=>l+d,0));for(let l=0,d=i.length;l<d;l++){let c=i[l];if(s<o+c)return[l,(s-o+1)/c];o+=c}return[0,1]}getCurveT(e,r,o){let i=this.points[e],a=this.points[e>=this.points.length-1?0:e+1],s=this.curveDivisions,l=s[e];if(gd(i,a)){let u=i.position.distanceTo(a.position);return i.position.distanceTo(Sd.set(o.x,o.y))/u}let d=0;for(let u=0;u<e;u++)d+=s[u];return(r-d)/l}dispose(){}_applyCurveForPoint(e,r){gd(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(r===0)this.moveTo(i.position.x,i.position.y);else{let a=this.points[r-1];this._applyCurveForPoint(i,a)}}let e=this.getLastPoint();if(e?.curveAfter&&(e.curveAfter=void 0),this.isClosed){let r=this.points[0],o=this.points[this.points.length-1];this._applyCurveForPoint(r,o)}if(this.points.length>2){let r=0;for(let o=0,i=this.points.length;o<i;o++){let a=this.points[o],s=this.points[o-1]??this.points[this.points.length-1],l=this.points[o+1]??this.points[0],d=a.roundness,c=s&&l&&rg(s,a,l);if(!a.controlsMoved()&&d>0&&!c){let u=a.curveBefore,p=a.curveAfter;if(u===void 0||p===void 0)continue;let f=a.roundedCurveBefore,h=a.roundedCurveAfter,m=u.getLength(),y=p.getLength(),g=Math.min(d,m*.499),x=Math.min(d,y*.499),S=Math.min(g,x),w=1-S/m,b=S/y,_=u.getPointAt(w,Sd),A=p.getPointAt(b,eP);this._subSplitCurve(u,f,w,_,void 0),this._subSplitCurve(p,h,b,void 0,A);let v;if(this.useCubicForRoundedCorners){let M=yd(_,a.position,A)/2,O=Math.tan(M)*_.distanceTo(a.position),[T,C]=og(_,A,O,tP,rP),P=ng(T,C,a.position),[I,D]=ig(P,_,A,O,oP,nP);v=new dc(_.clone(),I.clone(),D.clone(),A.clone())}else v=new dg(_.clone(),a.position.clone(),A.clone());a.roundedCurveCorner=v,this.roundedCurves.splice(o+r,0,v),r++}}}}_subSplitCurve(e,r,o,i,a){if(e instanceof bd)i!==void 0&&r.v2.copy(i),a!==void 0&&r.v1.copy(a);else{let s=e,l=r,d=s.getUtoTmapping(o,0),c=ag(s.v0,s.v1,s.v2,s.v3,d);return i!==void 0&&(l.v0.set(c[0],c[1]),l.v1.set(c[2],c[3]),l.v2.set(c[4],c[5]),l.v3.set(c[6],c[7])),a!==void 0&&(l.v0.set(c[6],c[7]),l.v1.set(c[8],c[9]),l.v2.set(c[10],c[11]),l.v3.set(c[12],c[13])),l}return r}clone(){let e=new Ne(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,a=e.points[i+0],s=e.points[i+1],l=e.points[i+2],d=e.points[i+3],c=e.points[i+4],u=e.points[i+5],p=e.points[i+6],f=new Tr(vd.generateUUID(),new Ao(a,s));f.controls[0].position.set(l,d),f.controls[1].position.set(c,u),f.roundness=p,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Ne;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e,r=!1){this.isText=r;let o=(a,s)=>{s instanceof dc&&s.v3.equals(a.position)&&a.controls[0].position.copy(s.v2)},i=a=>{let s=[],l,d;for(l=0,d=a.length;l<d;l++)a[l]instanceof dg&&(a[l]=tg(a[l]));for(l=0,d=a.length;l<d;l++){let p=a[l],f=l>0?a[l-1]:null,h;p instanceof dc?(h=this.createPoint(p.v0),h.controls[1].position.copy(p.v1)):p instanceof bd&&(h=this.createPoint(p.v1)),h!==void 0&&(f!==null&&o(h,f),s.push(h))}let c=a[a.length-1],u=!1;return c instanceof dc?c.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(c.v2),u=!0):c instanceof bd&&c.v2.equals(s[0].position)&&(u=!0),this.isClosed=u,s};return this.points=i(e.curves),e instanceof ug&&(this.shapeHoles=e.holes.map(a=>{let s=new Ne;return s.fromShape(a),s})),this.update(),this}updatePoint(e,r){let o=this.getPointByUuid(e);o&&(r.position!==void 0&&o.position.fromArray(r.position),r.roundness!==void 0&&(o.roundness=r.roundness),r.areControlsDirectionsMirrored!==void 0&&(o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(e,r){let i=this.getPointByUuid(e)?.controls[0];i&&(r.position&&i.position.fromArray(r.position),this.needsUpdate=!0)}updateNextControl(e,r){let i=this.getPointByUuid(e)?.controls[1];i&&(r.position&&i.position.fromArray(r.position),this.needsUpdate=!0)}};var _d=Math.PI*2;function wd({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function iP(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),a=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+a*e,y:a-i*e},{x:i,y:a}]}function pg(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function aP(n,t,e,r,o,i,a,s,l,d){let c=Math.pow(o,2),u=Math.pow(i,2),p=Math.pow(a,2),f=Math.pow(s,2),h=c*u-c*f-u*p;h<0&&(h=0),h/=c*f+u*p,h=Math.sqrt(h)*(l===d?-1:1);let m=h*o/i*s,y=h*-i/o*a,g=m+(n+e)/2,x=y+(t+r)/2,S=(a-m)/o,w=(s-y)/i,b=(-a-m)/o,_=(-s-y)/i,A=pg(1,0,S,w),v=pg(S,w,b,_);return!d&&v>0&&(v-=_d),d&&v<0&&(v+=_d),{centerx:g,centery:x,ang1:A,ang2:v}}function fg({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:a,sweepFlag:s}){let l=[];if(o===0||i===0)return[];let d=(n-e)/2,c=(t-r)/2;if(d===0&&c===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(d,2)/Math.pow(o,2)+Math.pow(c,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let p=aP(n,t,e,r,o,i,d,c,a,s),{ang1:f,ang2:h}=p,{centerx:m,centery:y}=p,g=Math.abs(h)/(_d/4);Math.abs(1-g)<1e-7&&(g=1);let x=Math.max(Math.ceil(g),1);h/=x;for(let S=0;S<x;S++)l.push(iP(f,h)),f+=h;return l.map(S=>{let{x:w,y:b}=wd(S[0],o,i,m,y),{x:_,y:A}=wd(S[1],o,i,m,y),{x:v,y:M}=wd(S[2],o,i,m,y);return{x1:w,y1:b,x2:_,y2:A,x:v,y:M}})}import{BufferAttribute as yc,BufferGeometry as xP}from"three";var Pe;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Pe||(Pe={}));var Xe;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Xe||(Xe={}));function me(n,t){if(!n)throw t||"Assertion Failed!"}var pe=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){me(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){me(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){me(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){me(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var a,s,l;n.vertLeq(t,e)||(l=t,t=e,e=l),n.vertLeq(r,o)||(l=r,r=o,o=l),n.vertLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),n.vertLeq(r,e)?n.vertLeq(e,o)?(a=n.edgeEval(t,r,e),s=n.edgeEval(r,e,o),a+s<0&&(a=-a,s=-s),i.s=n.interpolate(a,r.s,s,e.s)):(a=n.edgeSign(t,r,e),s=-n.edgeSign(t,o,e),a+s<0&&(a=-a,s=-s),i.s=n.interpolate(a,r.s,s,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(l=t,t=e,e=l),n.transLeq(r,o)||(l=r,r=o,o=l),n.transLeq(t,r)||(l=t,t=r,r=l,l=e,e=o,o=l),n.transLeq(r,e)?n.transLeq(e,o)?(a=n.transEval(t,r,e),s=n.transEval(r,e,o),a+s<0&&(a=-a,s=-s),i.t=n.interpolate(a,r.t,s,e.t)):(a=n.transSign(t,r,e),s=-n.transSign(t,o,e),a+s<0&&(a=-a,s=-s),i.t=n.interpolate(a,r.t,s,o.t)):i.t=(r.t+e.t)/2},n}(),fs=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),pc=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),Wi=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),hg=function(){function n(){var t=new Wi,e=new fs,r=new pc(0),o=new pc(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new pc(0),r=new pc(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;me(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var a=e;do a.Org=o,a=a.Onext;while(a!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;me(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var a=e;do a.Lface=o,a=a.Lnext;while(a!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,a=t.next;a.prev=i,i.next=a},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,a=t.next;a.prev=i,i.next=a},n.prototype.makeEdge=function(){var t=new Wi,e=new Wi,r=new fs,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new Wi;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var a=new fs;this.makeFace_(a,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new fs;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new Wi;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var a=new fs;this.makeFace_(a,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,a,s;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);a=t.prev,s=t.next,s.prev=a,a.next=s},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,a,s,l;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,a=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(s=this.countFaceVerts_(e),l=this.countFaceVerts_(i.Lface),s+l-2<=t&&pe.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&pe.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===a);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,a,s,l,d;for(i=t,i=t;(o=i.next)!==t;i=o){me(o.prev===i),l=o.anEdge;do me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l),me(l.Lface===o),l=l.Lnext;while(l!==o.anEdge)}for(me(o.prev===i&&o.anEdge===null),s=e,s=e;(a=s.next)!==e;s=a){me(a.prev===s),l=a.anEdge;do me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l),me(l.Org===a),l=l.Onext;while(l!==a.anEdge)}for(me(a.prev===s&&a.anEdge===null),d=r,d=r;(l=d.next)!==r;d=l)me(l.Sym.next===d.Sym),me(l.Sym!==l),me(l.Sym.Sym===l),me(l.Org!==null),me(l.Dst!==null),me(l.Lnext.Onext.Sym===l),me(l.Onext.Sym.Lnext===l);me(l.Sym.next===d.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},n}(),mg=function(){function n(){this.handle=null}return n}(),yg=function(){function n(){this.key=null,this.node=0}return n}(),sP=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new mg,this.handles[r]=new yg;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t<<1,a<this.size&&this.leq(r[e[a+1].handle].key,r[e[a].handle].key)&&++a,me(a<=this.max),i=e[a].handle,a>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=a}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,a;for(o=e[t].handle;;){if(a=t>>1,i=e[a].handle,a===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=a}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new mg;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new yg}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;me(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},n}(),Ad=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),gg=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),lP=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new gg,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new gg;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),cP=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,a=r.eUp;if(i.Dst===o)return a.Dst===o?pe.vertLeq(i.Org,a.Org)?pe.edgeSign(a.Dst,i.Org,a.Org)<=0:pe.edgeSign(i.Dst,a.Org,i.Org)>=0:pe.edgeSign(a.Dst,o,a.Org)<=0;if(a.Dst===o)return pe.edgeSign(i.Dst,o,i.Org)>=0;var s=pe.edgeEval(i.Dst,o,i.Org),l=pe.edgeEval(a.Dst,o,a.Org);return s>=l},n.deleteRegion=function(t,e){e.fixUpperEdge&&me(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){me(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Ad;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case Pe.ODD:return(e&1)!==0;case Pe.NONZERO:return e!==0;case Pe.POSITIVE:return e>0;case Pe.NEGATIVE:return e<0;case Pe.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,a=e,s=e.eUp;a!==r;){if(a.fixUpperEdge=!1,i=n.regionBelow(a),o=i.eUp,o.Org!=s.Org){if(!i.fixUpperEdge){n.finishRegion(t,a);break}o=t.mesh.connect(s.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}s.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(s,o)),n.finishRegion(t,a),s=i.eUp,a=i}return s},n.addRightEdges=function(t,e,r,o,i,a){var s,l,d,c,u=!0;d=r;do me(pe.vertLeq(d.Org,d.Dst)),n.addRegionBelow(t,e,d.Sym),d=d.Onext;while(d!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),l=e,c=i;s=n.regionBelow(l),d=s.eUp.Sym,d.Org===c.Org;)d.Onext!==c&&(t.mesh.splice(d.Oprev,d),t.mesh.splice(c.Oprev,d)),s.windingNumber=l.windingNumber-d.winding,s.inside=n.isWindingInside(t,s.windingNumber),l.dirty=!0,!u&&n.checkForRightSplice(t,l)&&(n.addWinding(d,c),n.deleteRegion(t,l),t.mesh.delete(c)),u=!1,l=s,c=d;l.dirty=!0,me(l.windingNumber-d.winding===s.windingNumber),a&&n.walkDirtyRegions(t,l)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=pe.vertL1dist(e,t),i=pe.vertL1dist(r,t),a=.5*i/(o+i),s=.5*o/(o+i);t.coords[0]+=a*e.coords[0]+s*r.coords[0],t.coords[1]+=a*e.coords[1]+s*r.coords[1],t.coords[2]+=a*e.coords[2]+s*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,a){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,a)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(pe.vertLeq(o.Org,i.Org)){if(pe.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;pe.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(pe.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,a;if(me(!pe.vertEq(o.Dst,i.Dst)),pe.vertLeq(o.Dst,i.Dst)){if(pe.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,a=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,a),a.Lface.inside=e.inside}else{if(pe.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,a=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),a.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,a=o.Org,s=i.Org,l=o.Dst,d=i.Dst,c,u,p=new Wi,f,h;if(me(!pe.vertEq(d,l)),me(pe.edgeSign(l,t.event,a)<=0),me(pe.edgeSign(d,t.event,s)>=0),me(a!==t.event&&s!==t.event),me(!e.fixUpperEdge&&!r.fixUpperEdge),a===s||(c=Math.min(a.t,l.t),u=Math.max(s.t,d.t),c>u))return!1;if(pe.vertLeq(a,s)){if(pe.edgeSign(d,a,s)>0)return!1}else if(pe.edgeSign(l,s,a)<0)return!1;return n.debugEvent(t),pe.intersect(l,a,d,s,p),me(Math.min(a.t,l.t)<=p.t),me(p.t<=Math.max(s.t,d.t)),me(Math.min(d.s,l.s)<=p.s),me(p.s<=Math.max(s.s,a.s)),pe.vertLeq(p,t.event)&&(p.s=t.event.s,p.t=t.event.t),f=pe.vertLeq(a,s)?a:s,pe.vertLeq(f,p)&&(p.s=f.s,p.t=f.t),pe.vertEq(p,a)||pe.vertEq(p,s)?(n.checkForRightSplice(t,e),!1):!pe.vertEq(l,t.event)&&pe.edgeSign(l,t.event,p)>=0||!pe.vertEq(d,t.event)&&pe.edgeSign(d,t.event,p)<=0?d===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):l===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),h=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,h,!0),!0):(pe.edgeSign(l,t.event,p)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),pe.edgeSign(d,t.event,p)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=p.s,o.Org.t=p.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,a,l,s,d),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,a=n.regionBelow(e),s=e.eUp,l=a.eUp,d=!1;if(s.Dst!==l.Dst&&n.checkForIntersect(t,e),pe.vertEq(s.Org,t.event)&&(t.mesh.splice(i.Oprev,s),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),a),d=!0),pe.vertEq(l.Org,t.event)&&(t.mesh.splice(r,l.Oprev),r=n.finishLeftRegions(t,a,null),d=!0),d){n.addRightEdges(t,e,r.Onext,i,i,!0);return}pe.vertLeq(l.Org,s.Org)?o=l.Oprev:o=s,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,a,s,l;if(o=e.eUp,pe.vertEq(o.Org,r)){me(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!pe.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}me(!1),e=n.topRightRegion(e),l=n.regionBelow(e),a=l.eUp.Sym,i=s=a.Onext,l.fixUpperEdge&&(me(i!==a),n.deleteRegion(t,l),t.mesh.delete(a),a=i.Oprev),t.mesh.splice(r.anEdge,a),pe.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,a.Onext,s,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,a,s,l,d=new Ad;if(d.eUp=e.anEdge.Sym,r=t.dict.search(d).key,o=n.regionBelow(r),!!o){if(a=r.eUp,s=o.eUp,pe.edgeSign(a.Dst,e,a.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=pe.vertLeq(s.Dst,a.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)l=t.mesh.connect(e.anEdge.Sym,a.Lnext);else{var c=t.mesh.connect(s.Dnext,e.anEdge);l=c.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,l):n.computeWinding(t,n.addRegionBelow(t,r,l)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);me(o!==null);var i=n.regionBelow(o),a=i.eUp,s=n.finishLeftRegions(t,i,null);s.Onext===a?n.connectRightVertex(t,o,s):n.addRightEdges(t,o,s.Onext,a,a,!0)},n.addSentinel=function(t,e,r,o){var i=new Ad,a=t.mesh.makeEdge();a.Org.s=r,a.Org.t=o,a.Dst.s=e,a.Dst.t=o,t.event=a.Dst,i.eUp=a,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new lP(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,a=t.bmin[1]-r,s=t.bmax[1]+r;n.addSentinel(t,o,i,a),n.addSentinel(t,o,i,s)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(me(e.fixUpperEdge),me(++r===1)),me(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,pe.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new sP(i,pe.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,me(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!pe.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),uP=function(){function n(){this.mesh=new hg,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Pe.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,a,s,l=[0,0,0],d=[0,0,0],c=[0,0,0],u=[0,0,0],p=[0,0,0],f=[null,null,null],h=[null,null,null],m=this.mesh.vHead;e=m.next;for(var y=0;y<3;++y)i=e.coords[y],d[y]=i,h[y]=e,l[y]=i,f[y]=e;for(e=m.next;e!==m;e=e.next)for(var g=0;g<3;++g)i=e.coords[g],i<d[g]&&(d[g]=i,h[g]=e),i>l[g]&&(l[g]=i,f[g]=e);var x=0;if(l[1]-d[1]>l[0]-d[0]&&(x=1),l[2]-d[2]>l[x]-d[x]&&(x=2),d[x]>=l[x]){t[0]=0,t[1]=0,t[2]=1;return}for(s=0,r=h[x],o=f[x],c[0]=r.coords[0]-o.coords[0],c[1]=r.coords[1]-o.coords[1],c[2]=r.coords[2]-o.coords[2],e=m.next;e!==m;e=e.next)u[0]=e.coords[0]-o.coords[0],u[1]=e.coords[1]-o.coords[1],u[2]=e.coords[2]-o.coords[2],p[0]=c[1]*u[2]-c[2]*u[1],p[1]=c[2]*u[0]-c[0]*u[2],p[2]=c[0]*u[1]-c[1]*u[0],a=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],a>s&&(s=a,t[0]=p[0],t[1]=p[1],t[2]=p[2]);s<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(c)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,a=t.next;a!==t;a=a.next)if(o=a.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==a.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var a=this.longAxis_(e);r[a]=0,r[(a+1)%3]=1,r[(a+2)%3]=0,o[a]=0,o[(a+1)%3]=0,o[(a+2)%3]=e[a]>0?1:-1;for(var s=t.next;s!==t;s=s.next)s.s=this.dot_(s.coords,r),s.t=this.dot_(s.coords,o);i&&this.checkOrientation_();for(var l=!0,d=t.next;d!==t;d=d.next)l?(this.bmin[0]=this.bmax[0]=d.s,this.bmin[1]=this.bmax[1]=d.t,l=!1):(d.s<this.bmin[0]&&(this.bmin[0]=d.s),d.s>this.bmax[0]&&(this.bmax[0]=d.s),d.t<this.bmin[1]&&(this.bmin[1]=d.t),d.t>this.bmax[1]&&(this.bmax[1]=d.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;pe.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;pe.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(pe.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(pe.edgeGoesLeft(o.Lnext)||pe.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(pe.edgeGoesRight(r.Lprev)||pe.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,a=0,s=0,l;r>3&&t.mergeConvexFaces(r);for(var d=t.vHead.next;d!==t.vHead;d=d.next)d.n=-1;for(var c=t.fHead.next;c!==t.fHead;c=c.next)if(c.n=-1,!!c.inside){i=c.anEdge,l=0;do{var d=i.Org;d.n===-1&&(d.n=s,s++),l++,i=i.Lnext}while(i!==c.anEdge);if(l>r)throw"Face vertex greater that support polygon";c.n=a,++a}this.elementCount=a,e===Xe.CONNECTED_POLYGONS&&(a*=2),this.elements=[],this.elements.length=a*r,this.vertexCount=s,this.vertices=[],this.vertices.length=s*o,this.vertexIndices=[],this.vertexIndices.length=s;for(var d=t.vHead.next;d!==t.vHead;d=d.next)if(d.n!==-1){var u=d.n*o;this.vertices[u+0]=d.coords[0],this.vertices[u+1]=d.coords[1],o>2&&(this.vertices[u+2]=d.coords[2]),this.vertexIndices[d.n]=d.idx}for(var p=0,c=t.fHead.next;c!==t.fHead;c=c.next)if(!!c.inside){i=c.anEdge,l=0;do{var d=i.Org;this.elements[p++]=d.n,l++,i=i.Lnext}while(i!==c.anEdge);for(var f=l;f<r;++f)this.elements[p++]=-1;if(e===Xe.CONNECTED_POLYGONS){i=c.anEdge;do this.elements[p++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==c.anEdge);for(var h=l;h<r;++h)this.elements[p++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,a=0;this.vertexCount=0,this.elementCount=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){o=r=s.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,d=0,c=0;i=0;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){a=0,o=r=s.anEdge;do this.vertices[l++]=r.Org.coords[0],this.vertices[l++]=r.Org.coords[1],e>2&&(this.vertices[l++]=r.Org.coords[2]),this.vertexIndices[d++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,a++,r=r.Lnext;while(r!==o);this.elements[c++]=i,this.elements[c++]=a,i+=a}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new hg),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,a){if(t===void 0&&(t=Pe.ODD),e===void 0&&(e=Xe.POLYGONS),a===void 0&&(a=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),cP.computeInterior(this,a);var s=this.mesh;return e===Xe.BOUNDARY_CONTOURS?this.setWindingNumber_(s,1,!0):this.tessellateInterior_(s),a&&s.check(),e===Xe.BOUNDARY_CONTOURS?this.outputContours_(s,o):this.outputPolymesh_(s,e,r,o),!0},n}();function Cr(n){var t=n.windingRule,e=t===void 0?Pe.ODD:t,r=n.elementType,o=r===void 0?Xe.POLYGONS:r,i=n.polySize,a=i===void 0?3:i,s=n.vertexSize,l=s===void 0?2:s,d=n.normal,c=d===void 0?[0,0,1]:d,u=n.contours,p=u===void 0?[]:u,f=n.strict,h=f===void 0?!0:f,m=n.debug,y=m===void 0?!1:m;if(!p&&h)throw new Error("Contours can't be empty");if(!!p){var g=new uP;n.edgeCreateCallback&&(g.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(g.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<p.length;x++)g.addContour(l||2,p[x]);return g.tesselate(e,o,a,l,c,h),{vertices:g.vertices,vertexIndices:g.vertexIndices,vertexCount:g.vertexCount,elements:g.elements,elementCount:g.elementCount,mesh:y?g.mesh:void 0}}}var Z4=Pe.ODD,J4=Pe.NONZERO,e5=Pe.POSITIVE,t5=Pe.NEGATIVE,r5=Pe.ABS_GEQ_TWO,o5=Xe.POLYGONS,n5=Xe.CONNECTED_POLYGONS,i5=Xe.BOUNDARY_CONTOURS;import{Box2 as mP,BufferAttribute as mc,BufferGeometry as yP,Vector2 as gP}from"three";var fc=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*fc.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*fc.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,a=0,s=new Float32Array(o,a*i,3*t);a+=3*t;let l=new Float32Array(o,a*i,3*t);a+=3*t;let d=new Float32Array(o,a*i,2*t);e?(s.set(this.positions.subarray(0,this.size*3)),l.set(this.normals.subarray(0,this.size*3)),d.set(this.uvs.subarray(0,this.size*2))):(s.set(this.positions),l.set(this.normals),d.set(this.uvs)),this.buffer=o,this.positions=s,this.normals=l,this.uvs=d,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},hs=fc;hs.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Sg=Rt(bg()),ms={vertices:[160,160,-160,160,-160,-160,160,-160],vertexIndices:[1,0,3,2],vertexCount:4,elements:[0,4],elementCount:1,mesh:void 0},Md={vertices:[],vertexIndices:[],vertexCount:0,elements:[],elementCount:0,mesh:void 0},Id={vertices:[-160,160,160,-160,160,160,-160,-160],vertexIndices:[1,3,0,2],vertexCount:4,elements:[0,1,2,1,0,3],elementCount:2,mesh:void 0},Od=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),tn=class extends yP{constructor(e,r,o=0,i=12,a=3,s=Pe.ODD,l=!1){super();this.forPathBevel=l;this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._curveSegments=i,this._bevelSegmentsInput=a;let d=this._shape.extractShapePointsToFlatArray([],i),c=this._shape.shapeHoles.map(T=>{let C=T.extractShapePointsToFlatArray([],i),P=[];for(let I=C.length-1;I>=1;I-=2){let D=C[I-1],G=C[I-0];P.push(D,G)}return P}),u=[],p=[];for(let T=0;T<d.length;T+=2)p.push([d[T],d[T+1]]);u.push(p);for(let T=0;T<c.length;T++){let C=c[T],P=[];for(let I=0;I<C.length;I+=2)P.push([C[I],C[I+1]]);u.push(P)}let f;e.isText?f=new mP().setFromPoints(e.points.map(C=>C.position)).getSize(new gP).length()*.1:u[0].length===0?f=o:f=(0,Sg.default)(u).distance,o<=0?(this._bevel=0,this._bevelSegments=0):(this._bevel=Math.min(o,f,r/2),this._bevelSegments=Math.floor(a));let h;try{h=Cr({windingRule:s,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[d]})}catch{h=ms}let m;try{m=Cr({windingRule:Pe.ODD,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...c]})}catch{m=Md}if(!h)throw new Error("error generating geometry");let y=h.elementCount;if(m){h.elementCount+=m.elementCount;for(let T=0;T<m.elements.length;T++){let C=m.elements[T],P=T%2===0?h.vertexCount:0;h.elements.push(C+P)}for(let T=0;T<m.vertexIndices.length;T++){let C=m.vertexIndices[T],P=h.vertexCount;h.vertexIndices.push(C+P)}for(let T=0;T<m.vertices.length;T++){let C=m.vertices[T];h.vertices.push(C)}}let g=1/0,x=-1/0,S=1/0,w=-1/0;for(let T=0,C=h.vertexCount;T<C;T++){let P=T*2,I=h.vertices[P+0],D=h.vertices[P+1];I<g&&(g=I),I>x&&(x=I),D<S&&(S=D),D>w&&(w=D)}this._minX=g,this._minY=S,this._width=x-g,this._height=w-S,this._buffer=new hs(this._computeBufferEstimatedSize(h));let b=[],_=[];for(let T=h.elementCount-1;T>=0;T--){let C=T>=y,P=T*2,I=h.elements[P+0],D=h.elements[P+1],G=I+D,N={start:I,count:D,normals:[],continuous:[],concave:[]},F=I,B=G-1,R=I+1,V=this._shape.roundedCurves.length;do{let X=F-I,k=h.vertices[B*2+0],W=h.vertices[B*2+1],U=h.vertices[F*2+0],z=h.vertices[F*2+1],oe=h.vertices[R*2+0],ee=h.vertices[R*2+1],Q=U-k,te=z-W,Z=Math.sqrt(Q*Q+te*te);Q/=Z,te/=Z;let se=U-oe,ne=z-ee,ie=Math.sqrt(se*se+ne*ne);se/=ie,ne/=ie,N.normals[X*2+0]=-ne,N.normals[X*2+1]=se,N.concave[X]=Q*ne-te*se>0;let ue=h.vertexIndices[F];if(Array.isArray(ue))N.continuous[X]=!1;else{let[le,de]=this._shape.getCurveIndexFromVertexId(ue-1,!0);if(de>0&&de<1)N.continuous[X]=!0;else{let ge=de===1?le+1:le-1;ge=(ge+V)%V;let Oe=de===1?0:1,He=this._shape.roundedCurves[le].getTangent(de),Me=this._shape.roundedCurves[ge].getTangent(Oe);N.continuous[X]=He.dot(Me)>.95}}C&&(N.normals[X*2+0]*=-1,N.normals[X*2+1]*=-1),[B,F,R]=[F,R,R+1],R>=G&&(R-=D)}while(R!==I+1);let q=[];q.push({bevelI:0,angle:0,size:0,boundary:{vertices:h.vertices.slice(I*2,G*2),vertexCount:D,vertexIndices:new Array(D).fill(!0).map((X,k)=>[k,k]),elements:[0,D],elementCount:1,mesh:null},reverseMap:[],insetPoints:h.vertices.slice(I*2,G*2)});let Y=0;for(let X=1;X<=this._bevelSegments;X++){let k=X/this._bevelSegments*Math.PI/2,W=(1-Math.cos(k))*this._bevel,U=[],z=[],oe=[],ee=[],Q=0;for(let Z=0;Z<D;Z++){let se=Z*2,ne=(Z-1+D)%D*2,ie=h.vertices[N.start*2+se+0],ue=h.vertices[N.start*2+se+1],le=-N.normals[ne+0]*W,de=-N.normals[ne+1]*W,ge=-N.normals[se+0]*W,Oe=-N.normals[se+1]*W;if(N.concave[Z]||!N.concave[Z]&&C){let He=Math.atan2(de,le),Me=Math.atan2(Oe,ge);Me>He&&(Me-=Math.PI*2);let Ge=Me-He;if(N.continuous[Z]||C){let Ut=He+Ge/2,Se=Math.cos(Ut)*W,ut=Math.sin(Ut)*W;U[2*Q+0]=ie+Se*(C?-1:1),U[2*Q+1]=ue+ut*(C?-1:1),ee[Q]=Z,Q++}else{let Ut=Math.max(1,Math.floor(i/4*Math.abs(Ge)/Math.PI));for(let Se=0;Se<=Ut;Se++){let ut=He+Ge*(Se/Ut),mt=Math.cos(ut)*W,Qn=Math.sin(ut)*W;U[2*Q+0]=ie+mt,U[2*Q+1]=ue+Qn,ee[Q]=Z,Q++}}}else U[2*Q+0]=ie+le,U[2*Q+1]=ue+de,ee[Q]=Z,z[Z]=Q,Q++,U[2*Q+0]=ie,U[2*Q+1]=ue,ee[Q]=Z,Q++,U[2*Q+0]=ie+ge,U[2*Q+1]=ue+Oe,ee[Q]=Z,oe[Z]=Q,Q++}let te=Cr({windingRule:Pe.POSITIVE,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[U],edgeCreateCallback:Z=>{let ne=Z.Org.idx,ie=ee[ne],ue=ee[(ne+1)%ee.length];Z.idx=[ie,ue],Z.Sym.idx=[ue,ie]},vertexIdCallback:Z=>{let se=Z.Lprev.idx;return[se?se[1]:0,Z.idx?Z.idx[0]:0]}});if(!te)throw console.log("Error"),new Error(`error generating bevel geometry for ${X}'th loop`);if(!te.vertexCount){let Z=(X-1)/this._bevelSegments*Math.PI/2;Y=(1-Math.sin(Z))*this._bevel;break}for(let Z=0;Z<te.vertexIndices.length;Z++){let[se,ne]=te.vertexIndices[Z];if(se===ne)continue;let ie=ne;ne<se&&(ie+=D);for(let ue=se;ue<ie;ue++){let le=ue%D,de=(ue+1)%D;if(!N.continuous[le]||!N.continuous[de]){te.vertexIndices[Z]=[se,le],te.vertexIndices.splice(Z+1,0,[de,ne]),te.vertices.splice((Z+1)*2,0,te.vertices[Z*2],te.vertices[Z*2+1]);break}}}q.push({bevelI:X,angle:k,size:W,boundary:te,reverseMap:ee,insetPoints:U})}let $=(X,k,W)=>{let U=0,z=X.boundary.vertexIndices.length;for(;U<z&&W(X.boundary.vertexIndices[k]);)k=(k+1)%z,U++;return U},H=b.length;for(let X=1;X<q.length;X++){let k=q[X-1],W=q[X],U=k.boundary.vertexIndices.length,z=W.boundary.vertexIndices.length;if(!U||!z)break;let oe=N.concave.length,ee=0,Q=Od(ee,D);for(;!k.boundary.vertexIndices.filter(Q).length||!W.boundary.vertexIndices.filter(Q).length;)ee++,Q=Od(ee,D);let te=k.boundary.vertexIndices.findIndex(Q),Z=W.boundary.vertexIndices.findIndex(Q);do te=(te+1)%U;while(Q(k.boundary.vertexIndices[te]));do Z=(Z+1)%z;while(Q(W.boundary.vertexIndices[Z]));ee=(ee+1)%D;let se=ee,ne=0,ie=this._buildBevelVert(N,k,(te-1+U)%U,void 0,ne),ue=this._buildBevelVert(N,W,(Z-1+z)%z,void 0,ne),le=ie,de=ue,ge,Oe,He=!1;do{ne=(ee||oe)/oe,Q=Od(ee,D);let Me=$(k,te,Q),Ge=$(W,Z,Q),Ut=He;if(He=!1,Me&&!Ge){for(let Se=0;Se<Me;Se++)ge=this._buildBevelVert(N,k,(te+Se)%U,Se/(Me-1),ne),b.push(le.topN,ge.topP,de.topN),l===!1&&b.push(ge.bottomP,le.bottomN,de.bottomN),le=ge;He=!0}else if(!Me&&Ge)for(let Se=0;Se<Ge;Se++)Oe=this._buildBevelVert(N,W,(Z+Se)%z,Se/(Ge-1),ne),b.push(de.topN,le.topP,Oe.topP),l===!1&&b.push(le.bottomP,de.bottomN,Oe.bottomP),de=Oe;else if(Me&&Ge)if(ge=this._buildBevelVert(N,k,te,0,ne),Oe=this._buildBevelVert(N,W,Z,0,ne),Ut?(b.push(le.topN,Oe.topP,de.topN),b.push(le.topN,ge.topP,Oe.topP),l===!1&&(b.push(Oe.bottomP,le.bottomN,de.bottomN),b.push(Oe.bottomP,ge.bottomP,le.bottomN))):(b.push(de.topN,le.topN,ge.topP),b.push(de.topN,ge.topP,Oe.topP),l===!1&&(b.push(ge.bottomP,le.bottomN,de.bottomN),b.push(ge.bottomP,de.bottomN,Oe.bottomP))),le=ge,de=Oe,Me===Ge)for(let Se=1;Se<Me;Se++)ge=this._buildBevelVert(N,k,(te+Se)%U,Se/(Me-1),ne),Oe=this._buildBevelVert(N,W,(Z+Se)%z,Se/(Ge-1),ne),b.push(le.topN,ge.topP,de.topN),b.push(de.topN,ge.topP,Oe.topP),l===!1&&(b.push(ge.bottomP,le.bottomN,de.bottomN),b.push(ge.bottomP,de.bottomN,Oe.bottomP)),le=ge,de=Oe;else if(Me>Ge){let Se=Me/Ge,ut=0;for(let mt=1;mt<Me;mt++)ge=this._buildBevelVert(N,k,(te+mt)%U,mt/(Me-1),ne),b.push(le.topN,ge.topP,de.topN),l===!1&&b.push(ge.bottomP,le.bottomN,de.bottomN),le=ge,mt>(ut+1)*Se&&(ut++,Oe=this._buildBevelVert(N,W,(Z+ut)%z,ut/(Ge-1),ne),b.push(de.topN,ge.topP,Oe.topP),l===!1&&b.push(ge.bottomP,de.bottomN,Oe.bottomP),de=Oe)}else{let Se=Ge/Me,ut=0;for(let mt=1;mt<Ge;mt++)Oe=this._buildBevelVert(N,W,(Z+mt)%z,mt/(Ge-1),ne),b.push(de.topN,ge.topP,Oe.topP),l===!1&&b.push(ge.bottomP,de.bottomN,Oe.bottomP),de=Oe,mt>(ut+1)*Se&&(ut++,ge=this._buildBevelVert(N,k,(te+ut)%U,ut/(Me-1),ne),b.push(le.topN,ge.topP,de.topN),l===!1&&b.push(ge.bottomP,le.bottomN,de.bottomN),le=ge)}te=(te+Me)%U,Z=(Z+Ge)%z,ee=(ee+1)%oe}while(ee!==se)}if(l===!1&&this._depth>this._bevel*2&&this._buildWall(q,N,b),C){let X=[];for(let k=b.length-1;k>=H+2;k-=3){let W=b[k-2],U=b[k-1],z=b[k-0];X.push(z,U,W)}b.splice(H,b.length-H,...X)}if(C){let X=[];for(let k=q[q.length-1].boundary.vertices.length-1;k>=1;k-=2){let W=q[q.length-1].boundary.vertices[k-1],U=q[q.length-1].boundary.vertices[k-0];X.push(W,U)}_.push(X)}if(!C){let X=q[q.length-1],k;try{k=Cr({windingRule:q.length>1?Pe.POSITIVE:Pe.ODD,elementType:Xe.POLYGONS,vertexSize:2,strict:!0,contours:[X.insetPoints,..._]})}catch{k=Id}if(!k)throw new Error("Error generating geometry for surface");c.length===0&&this._bevel<f&&Object.assign(this,{useNgonForTopBottomFaceDuringBake:!0});for(let W=0;W<k.elementCount*3;W+=3){let U=this._buildSurfaceVert(k,k.elements[W+0],Y),z=this._buildSurfaceVert(k,k.elements[W+1],Y),oe=this._buildSurfaceVert(k,k.elements[W+2],Y);b.push(U.top,z.top,oe.top),l===!1&&b.push(oe.bottom,z.bottom,U.bottom)}}this.vertexCache={}}this._buffer.shrink();let A=new mc(Uint32Array.from(b),1),v=new mc(this._buffer.positions,3),M=new mc(this._buffer.normals,3),O=new mc(this._buffer.uvs,2);v.needsUpdate=!0,M.needsUpdate=!0,O.needsUpdate=!0,A.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",M),this.setAttribute("uv",O),this.setIndex(A)}_computeBufferEstimatedSize(e){return e.vertexCount*2*(2+this._bevelSegments)}_buildWall(e,r,o){let i=e[0];for(let a=0,s=i.boundary.vertexCount;a<s;a++){let l=this._buildBevelVert(r,i,a),d=this._buildBevelVert(r,i,(a+1)%s);o.push(d.topP,l.topN,l.bottomN),o.push(d.topP,l.bottomN,d.bottomP)}}_buildSurfaceVert(e,r,o){let i=r.toString();if(i in this.vertexCache)return this.vertexCache[i];let a=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(a-this._minX)/this._width,d=(s-this._minY)/this._height;this.forPathBevel&&(d=1);let c=this._buffer.get(this.forPathBevel?1:2),u=c*3,p=c*2,f={top:c+0,bottom:c+1};return this._buffer.positions[u+0]=a,this._buffer.positions[u+1]=s,this._buffer.positions[u+2]=this.forPathBevel?this._bevel:this._depth-o,this._buffer.normals[u+0]=0,this._buffer.normals[u+1]=0,this._buffer.normals[u+2]=1,this._buffer.uvs[p+0]=l,this._buffer.uvs[p+1]=d,this.forPathBevel===!1&&(this._buffer.positions[u+3]=a,this._buffer.positions[u+4]=s,this._buffer.positions[u+5]=o,this._buffer.normals[u+3]=0,this._buffer.normals[u+4]=0,this._buffer.normals[u+5]=-1,this._buffer.uvs[p+2]=l,this._buffer.uvs[p+3]=d),this.vertexCache[i]=f,f}_buildBevelVert(e,r,o,i=1,a){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache&&a!==0&&a!==1&&(!a||a===this.vertexCache[s].pathBevelUCoord))return this.vertexCache[s];let[l,d]=r.boundary.vertexIndices[o],c,u,p,f;l!==d?(u=l,c=d,f=!1,p=e.continuous[u]&&e.continuous[c]):(c=l,u=(c-1+e.count)%e.count,f=e.concave[c]&&r.bevelI>0,p=e.continuous[c]||f);let h=Math.cos(r.angle),m=Math.sin(r.angle),y=o*2,g=c*2,x=u*2,S=r.boundary.vertices[y+0],w=r.boundary.vertices[y+1],b=(1-m)*this._bevel,_=(S-this._minX)/this._width,A=(w-this._minY)/this._height;this.forPathBevel&&(a!==void 0&&(_=a),A=1);let v=e.normals[g+0],M=e.normals[g+1],O=e.normals[x+0],T=e.normals[x+1];if(f){let G=O-v,N=T-M;v=v+G*(1-i),M=M+N*(1-i);let F=Math.sqrt(v*v+M*M);v/=F,M/=F}let C=this.forPathBevel?this._buffer.get(p?1:2):this._buffer.get(p?2:4),P=C*3,I=C*2,D={i:o,fi:c,topP:C+0,topN:C+0,bottomP:C+1,bottomN:C+1,pathBevelUCoord:a};return this._buffer.positions[P+0]=S,this._buffer.positions[P+1]=w,this._buffer.positions[P+2]=(this.forPathBevel?this._bevel:this._depth)-b,this._buffer.normals[P+0]=v*h,this._buffer.normals[P+1]=M*h,this._buffer.normals[P+2]=m,this._buffer.uvs[I+0]=_,this._buffer.uvs[I+1]=A,this.forPathBevel===!1&&(this._buffer.positions[P+3]=S,this._buffer.positions[P+4]=w,this._buffer.positions[P+5]=b,this._buffer.normals[P+3]=v*h,this._buffer.normals[P+4]=M*h,this._buffer.normals[P+5]=-m,this._buffer.uvs[I+2]=A,this._buffer.uvs[I+3]=_),p||(this.forPathBevel?(C+=1,P+=3,I+=2):(C+=2,P+=6,I+=4),D.topP=C+0,D.bottomP=C+1,this._buffer.positions[P+0]=S,this._buffer.positions[P+1]=w,this._buffer.positions[P+2]=(this.forPathBevel?this._bevel:this._depth)-b,this._buffer.normals[P+0]=O*h,this._buffer.normals[P+1]=T*h,this._buffer.normals[P+2]=m,this._buffer.uvs[I+0]=_,this._buffer.uvs[I+1]=A,this.forPathBevel===!1&&(this._buffer.positions[P+3]=S,this._buffer.positions[P+4]=w,this._buffer.positions[P+5]=b,this._buffer.normals[P+3]=O*h,this._buffer.normals[P+4]=T*h,this._buffer.normals[P+5]=-m,this._buffer.uvs[I+2]=A,this._buffer.uvs[I+3]=_)),this.vertexCache[s]=D,D}clone(){let e=new tn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=yo(this.userData),e}};var $i=class extends xP{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Pe.ODD;this.elementType=Xe.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Pe.ODD,elementType:Xe.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),a=this._shape.shapeHoles.map(h=>h.extractShapePointsToFlatArray([],this._curveSegments)),s,l=!0,d=!0,c,u;for(let h=0,m=i.length/2;h<m;h++){let y=h*2,g=i[y+0],x=i[y+1];if(c!==void 0&&g!==c&&(l=!1),u!==void 0&&x!==u&&(d=!1),c=g,u=x,!l&&!d)break}if(!l&&!d)try{s=Cr({contours:[i,...a],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict})}catch{s=ms}let p=s?.vertexCount??1,f=s?.elementCount??1;if(this._positionAttribute=new yc(new Float32Array(p*3),3),this._normalAttribute=new yc(new Float32Array(p*3),3),this._uvAttribute=new yc(new Float32Array(p*2),2),this._indexAttribute=new yc(new Uint32Array(f*3),1),s){let h=1/0,m=-1/0,y=1/0,g=-1/0;for(let w=0,b=p;w<b;w++){let _=w*2,A=s.vertices[_+0],v=s.vertices[_+1];A<h&&(h=A),A>m&&(m=A),v<y&&(y=v),v>g&&(g=v)}let x=m-h,S=g-y;for(let w=0,b=p;w<b;w++){let _=w*2,A=s.vertices[_+0],v=s.vertices[_+1],M=(A-h)/x,O=(v-y)/S;this._positionAttribute.setXYZ(w,A,v,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,M,O)}for(let w=0,b=f;w<b;w++){let _=w*3,A=s.elements[_+0],v=s.elements[_+1],M=s.elements[_+2];this._indexAttribute.setX(_+0,A),this._indexAttribute.setX(_+1,v),this._indexAttribute.setX(_+2,M)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(s?.elementCount??1)*3)}clone(){let e=new $i(this._shape,this._curveSegments);return e.userData=yo(this.userData),e}};var Yi=class extends tn{constructor(e,r,o=0,i=12,a=3,s=Pe.ODD){super(e,r,o,i,a,s);this.type="ShapeGeometry"}_computeBufferEstimatedSize(e){return e.vertexCount*2*(2+this._bevelSegments)}_buildWall(e,r,o){let i=e[0];for(let a=0,s=i.boundary.vertexCount;a<s;a++){let l=this._buildBevelVert(r,i,a),d=this._buildBevelVert(r,i,(a+1)%s);o.push(d.topP,l.topN,l.bottomN),o.push(d.topP,l.bottomN,d.bottomP)}}clone(){let e=new Yi(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=yo(this.userData),e}};var Xt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Pe.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),a=n.shape??t?.shape,s=a?.roundness??e.roundness;a!==void 0&&(a instanceof Ne?(a.width!==r||a.height!==o)&&a.applySize(r,o):a=new Ne(r,o).fromJSON(a),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&a.update());let l=a??new Ne(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:s}),shape:l}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:a}=n.parameters;n.shape.roundness=i;let s;return t<=0?s=new $i(n.shape,o,{windingRule:a}):s=new Yi(n.shape,t,e,o,r,a),Object.assign(s,{userData:{...n,type:"VectorGeometry"}})}};import{BufferGeometry as vP,Float32BufferAttribute as bP,MathUtils as Nd,Vector2 as _g}from"three";var Ag=Math.PI*2,Ki=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return e.angle=Nd.clamp(e.angle,0,360),{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,d=n.shape,c=t*.5,u=e*.5,p=SP(d,c,u,o*Math.PI/180,r,i);d.isClosed=!0,d.update();let f;return o===0?(f=new vP,f.setAttribute("position",new bP([],3))):f=Xt.create({shape:d,parameters:{subdivisions:p,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}}),Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function SP(n,t,e,r,o,i){if(r>=Ag)return o>30||o%4===0?(_P(n,t,e,i),Math.round(o/4)):wg(n,r,o,t,e,i);r=Math.max(r,.001);let a={x:0,y:e},s=r+Math.PI*.5,l={x:Math.cos(s)*t,y:Math.sin(s)*e},d=fg({px:a.x,py:a.y,cx:l.x,cy:l.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%d.length===0?wP(n,a.x,a.y,d,o,t,e,i):wg(n,r,o,t,e,i)}function wP(n,t,e,r,o,i,a,s){let l=Math.round(o/r.length);n.addPoint(Xi(t,e));for(let d=0,c=r.length;d<c;d++){let u=r[d],p=n.points[d],f=Xi(u.x,u.y);p.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return s>0?Tg(n,i,a,s):n.addPoint(Xi(0,0)),l}function wg(n,t,e,r,o,i){let a=-t/e;for(let s=0;s<=e;s++){let l=a*s,d=Math.sin(l)*r,c=Math.cos(l)*o;n.addPoint(Xi(d,c))}return t<Ag?i>0?Tg(n,r,o,i):n.addPoint(Xi(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Cg(n,r,o,i)),1}function _P(n,t,e,r=0,o=0,i=0){let a=.5522847498,s=t*a,l=e*a;n.addPoint(gc(o-t,i,o-t,i-l,o-t,i+l)),n.addPoint(gc(o,i+e,o-s,i+e,o+s,i+e)),n.addPoint(gc(o+t,i,o+t,i+l,o+t,i-l)),n.addPoint(gc(o,i-e,o+s,i-e,o-s,i-e)),r>0&&Cg(n,t,e,r)}function Xi(n,t){return new Tr(Nd.generateUUID(),new _g(n,t))}function gc(n,t,e,r,o,i){let a=Xi(n,t);return a.controls[0].position.set(e,r),a.controls[1].position.set(o,i),a}function Tg(n,t,e,r){Pg(n,t,e,r).forEach(i=>n.addPoint(i))}function Cg(n,t,e,r){let o=Pg(n,t,e,r),i=new Ne;o.forEach(a=>i.addPoint(a)),i.isClosed=!0,n.shapeHoles.push(i)}function Pg(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),a=new _g(o/t,i/e),s=n.points.map(l=>{let d=l.clone();return d.uuid=Nd.generateUUID(),d}).reverse();return s.forEach(l=>{l.position.multiply(a);let d=l.controls[0].position.clone().multiply(a),c=l.controls[1].position.clone().multiply(a);l.controls[0].position.copy(c),l.controls[1].position.copy(d)}),s}import{BufferGeometry as AP,Float32BufferAttribute as Ed,Uint32BufferAttribute as TP,Vector3 as Og}from"three";var Mg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),a=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:a,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:a,pathRadius:s,pathType:l,pathSegments:d,cornerRadius:c,cornerSegments:u}=n.parameters,p=new ys(!1,t,e,r,o,i,a,s,l,d,c,u);return Object.assign(p,{userData:{...n,type:"HelixGeometry"}})}},Dd=new TP([0,0,0],1),ys=class extends AP{constructor(t=!0,e=1,r=1,o=1,i=1,a=1,s=1,l=1,d=1,c=1,u=1,p=1){if(super(),a===0)return;let f=t&&a===1;f&&(p=0),u>100&&(u=100),u===0&&(p=0);let h=()=>new Og,m=new Og,y=h(),g=h(),x=h(),S,w,b,_,A,v,M,O,T=h(),C=h(),P=h(),I=h(),D=h(),G=h(),N=h(),F=h(),B=r-2*l+.001,R=B/a,V=Math.ceil(s*a),q=V+1,Y=B/V,$=-B/2,H=c+1,X=2*Math.PI/c,k=Math.PI/2/p,W=.01,U=Math.min((1-u/100)*l,l-W),z=l-U,oe=0,ee=2,Q=p*ee+ee,te=H*Q/ee,Z=te+H*q,se=Math.max(0,H*(q+Q)),[ne,ie,ue]=[3,3,2].map(rt=>Array(se*rt).fill(0)),le=[],de=i-l;function ge(rt,rr){let Br=Math.PI/2;v=rr*Y,O=2*Math.PI*(v%R)/R+Br,v+=$,M=Math.sin(O)*de,A=Math.cos(O)*de,t?rt.set(A,M,v):rt.set(A,v,M)}ge(m,-1e-10),ge(y,0),T.copy(m),ge(m,1);let Oe=m.distanceTo(y),He=f?0:z+U,Me=Oe*V+2*He,Ge=U,Ut=Me-He;for(let rt=0;rt<=V;rt++){ge(g,rt),F.subVectors(g,T).normalize(),T.copy(g),G.copy(g).setComponent(+t+1,0).normalize(),N.crossVectors(F,G).normalize();let rr=rt===0,Br=rt===V,Gv=rr?3*Math.PI/2:k,zv=rr?Ge:Ut,kv=rr?H:Z,Fv=rr?0:se-H,jv=F.clone().multiplyScalar(rr?-z:z).add(g),Uv=F.clone().multiplyScalar(rr?-1:1).normalize();for(let uo=0;uo<H;uo++){let Jp=uo*X;if(C.addVectors(m.copy(G).multiplyScalar(l*Math.cos(Jp)),y.copy(N).multiplyScalar(l*Math.sin(Jp))),P.copy(C).normalize(),rr||Br){f||(oe=Fv+uo,[0,1,2].forEach(Ht=>{ne[oe*3+Ht]=jv.getComponent(Ht),ie[oe*3+Ht]=Uv.getComponent(Ht)}),ue[oe*2]=+Br,ue[oe*2+1]=uo/c),y.copy(P).multiplyScalar(U),x.addVectors(g,y);for(let Ht=0;Ht<p;Ht++){let mu=Ht*k+Gv;I.addVectors(m.copy(F).multiplyScalar(z*Math.sin(mu)),y.copy(P).multiplyScalar(z*Math.cos(mu))),D.copy(I).normalize(),y.addVectors(x,I),I.normalize(),oe=kv+Ht*H+uo,[0,1,2].forEach(qs=>{ne[oe*3+qs]=y.getComponent(qs),ie[oe*3+qs]=D.getComponent(qs)});let Hv=+rr+Math.sin(mu);ue[oe*2]=(zv+z*Hv)/Me,ue[oe*2+1]=uo/c}}y.addVectors(g,C),oe=te+rt*H+uo,[0,1,2].forEach(Ht=>{ne[oe*3+Ht]=y.getComponent(Ht),ie[oe*3+Ht]=P.getComponent(Ht)}),ue[oe*2]=(He+rt*Oe)/Me,ue[oe*2+1]=uo/c}}let Se=q+2*p+ee,ut=1,[mt,Qn]=[+f,Se-1];for(let rt=mt;rt<=Qn-1;rt++){let rr=f&&rt===Qn-1;for(let Br=0;Br<H-1;Br++)S=rt*H+Br,w=S+1,b=(rr?Br:S)+H,_=(rr?Br+1:w)+H,rt===0?le.push(w,_,b):rt===Se-2?le.push(S,w,b):le.push(S,w,b,w,_,b)}this.setIndex(le),this.setAttribute("position",new Ed(ne,3)),this.setAttribute("normal",new Ed(ie,3)),this.setAttribute("uv",new Ed(ue,2))}getClosedTorusIndicesForBooleanOrSubdiv(){let t=this.userData.parameters,e=Math.ceil(t.tubularSegments),r=t.radialSegments+1,o=Array.from(this.getIndex().array),i,a,s,l,d=6*(e-1)*t.radialSegments,c=e,u=c===e;for(let p=0;p<t.radialSegments;p++)i=c*r+p,a=i+1,s=(u?p:i)+r,l=(u?p+1:a)+r,o[d++]=i,o[d++]=a,o[d++]=s,o[d++]=a,o[d++]=l,o[d++]=s;return o.length=d,Dd.array=o,Dd.count=o.length,Dd}};import{IcosahedronGeometry as CP}from"three";var Ig=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:a}=n.parameters,s=o===0&&i!==0?new gs(t*.5,i,a):new CP(t*.5,o);return s.scale(1,e/t,r/t),Object.assign(s,{userData:{...n,type:"IcosahedronGeometry"}})}},gs=class extends Zo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],a=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],s="IcosahedronGeometry";super(i,a,s,t,e,r),this.type=s}static fromJSON(t){return new gs(t.radius,t.corner,t.cornerSides)}};import{LatheGeometry as PP,Shape as OP}from"three";var Ng=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new OP;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new PP(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};import{BufferGeometry as zg,BufferGeometryLoader as kP,Vector3 as FP,BoxGeometry as kg}from"three";import{BufferGeometry as RP,Vector2 as Vd,Vector3 as Gg}from"three";import{Box3 as MP,BufferAttribute as xs,BufferGeometry as Eg,Color as Rd,EventDispatcher as IP,Float32BufferAttribute as Qi,Matrix3 as Dg,Matrix4 as Vg,MathUtils as NP,Object3D as EP,Sphere as DP,Vector2 as sr,Vector3 as Mt,Vector4 as LP}from"three";var Yr=new Vg,Ld=new EP,xc=new Mt,rn=class extends IP{constructor(){super(),this.uuid=NP.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new Dg().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let a=0,s=i.vertexNormals.length;a<s;a++)i.vertexNormals[a].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Yr.makeRotationX(t),this.applyMatrix4(Yr),this}rotateY(t){return Yr.makeRotationY(t),this.applyMatrix4(Yr),this}rotateZ(t){return Yr.makeRotationZ(t),this.applyMatrix4(Yr),this}translate(t,e,r){return Yr.makeTranslation(t,e,r),this.applyMatrix4(Yr),this}scale(t,e,r){return Yr.makeScale(t,e,r),this.applyMatrix4(Yr),this}lookAt(t){return Ld.lookAt(t),Ld.updateMatrix(),this.applyMatrix4(Ld.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,a=o.normal,s=o.color,l=o.uv,d=o.uv2;d!==void 0&&(this.faceVertexUvs[1]=[]);for(let p=0;p<i.count;p++)e.vertices.push(new Mt().fromBufferAttribute(i,p)),s!==void 0&&e.colors.push(new Rd().fromBufferAttribute(s,p));function c(p,f,h,m){let y=s===void 0?[]:[e.colors[p].clone(),e.colors[f].clone(),e.colors[h].clone()],g=a===void 0?[]:[new Mt().fromBufferAttribute(a,p),new Mt().fromBufferAttribute(a,f),new Mt().fromBufferAttribute(a,h)],x=new Zi(p,f,h,g,y,m);e.faces.push(x),l!==void 0&&e.faceVertexUvs[0].push([new sr().fromBufferAttribute(l,p),new sr().fromBufferAttribute(l,f),new sr().fromBufferAttribute(l,h)]),d!==void 0&&e.faceVertexUvs[1].push([new sr().fromBufferAttribute(d,p),new sr().fromBufferAttribute(d,f),new sr().fromBufferAttribute(d,h)])}let u=t.groups;if(u.length>0)for(let p=0;p<u.length;p++){let f=u[p],h=f.start,m=f.count;for(let y=h,g=h+m;y<g;y+=3)r!==void 0?c(r.getX(y),r.getX(y+1),r.getX(y+2),f.materialIndex):c(y,y+1,y+2,f.materialIndex)}else if(r!==void 0)for(let p=0;p<r.count;p+=3)c(r.getX(p),r.getX(p+1),r.getX(p+2));else for(let p=0;p<i.count;p+=3)c(p,p+1,p+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(xc).negate(),this.translate(xc.x,xc.y,xc.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new Vg;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new Mt,e=new Mt;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],a=this.vertices[i.a],s=this.vertices[i.b],l=this.vertices[i.c];t.subVectors(l,s),e.subVectors(a,s),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new Mt;if(t){let r=new Mt,o=new Mt;for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=this.vertices[s.a],d=this.vertices[s.b],c=this.vertices[s.c];r.subVectors(c,d),o.subVectors(l,d),r.cross(o),e[s.a].add(r),e[s.b].add(r),e[s.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],a=i.vertexNormals;a.length===3?(a[0].copy(e[i.a]),a[1].copy(e[i.b]),a[2].copy(e[i.c])):(a[0]=e[i.a].clone(),a[1]=e[i.b].clone(),a[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,a=o.vertexNormals.length;i<a;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new rn;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,a=this.morphNormals[e].vertexNormals;for(let s=0,l=this.faces.length;s<l;s++){let d=new Mt,c={a:new Mt,b:new Mt,c:new Mt};i.push(d),a.push(c)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,a=this.faces.length;i<a;i++){let s=this.faces[i],l=o.faceNormals[i],d=o.vertexNormals[i];l.copy(s.normal),d.a.copy(s.vertexNormals[0]),d.b.copy(s.vertexNormals[1]),d.c.copy(s.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new MP),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new DP),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,a=this.vertices,s=t.vertices,l=this.faces,d=t.faces,c=this.colors,u=t.colors;e!==void 0&&(o=new Dg().getNormalMatrix(e));for(let p=0,f=s.length;p<f;p++){let m=s[p].clone();e!==void 0&&m.applyMatrix4(e),a.push(m)}for(let p=0,f=u.length;p<f;p++)c.push(u[p].clone());for(let p=0,f=d.length;p<f;p++){let h=d[p],m,y,g=h.vertexNormals,x=h.vertexColors,S=new Zi(h.a+i,h.b+i,h.c+i);S.normal.copy(h.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,b=g.length;w<b;w++)m=g[w].clone(),o!==void 0&&m.applyMatrix3(o).normalize(),S.vertexNormals.push(m);S.color.copy(h.color);for(let w=0,b=x.length;w<b;w++)y=x[w],S.vertexColors.push(y.clone());S.materialIndex=h.materialIndex+r,l.push(S)}for(let p=0,f=t.faceVertexUvs.length;p<f;p++){let h=t.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let m=0,y=h.length;m<y;m++){let g=h[m],x=[];for(let S=0,w=g.length;S<w;S++)x.push(g[S].clone());this.faceVertexUvs[p].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},r=[],o=[],i=Math.pow(10,t);for(let l=0,d=this.vertices.length;l<d;l++){let c=this.vertices[l],u=Math.round(c.x*i)+"_"+Math.round(c.y*i)+"_"+Math.round(c.z*i);e[u]===void 0?(e[u]=l,r.push(this.vertices[l]),o[l]=r.length-1):o[l]=o[e[u]]}let a=[];for(let l=0,d=this.faces.length;l<d;l++){let c=this.faces[l];c.a=o[c.a],c.b=o[c.b],c.c=o[c.c];let u=[c.a,c.b,c.c];for(let p=0;p<3;p++)if(u[p]===u[(p+1)%3]){a.push(l);break}}for(let l=a.length-1;l>=0;l--){let d=a[l];this.faces.splice(d,1);for(let c=0,u=this.faceVertexUvs.length;c<u;c++)this.faceVertexUvs[c].splice(d,1)}let s=this.vertices.length-r.length;return this.vertices=r,s}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new Mt(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let l=0;l<e;l++)t[l]._id=l;function r(l,d){return l.materialIndex-d.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],a,s;o&&o.length===e&&(a=[]),i&&i.length===e&&(s=[]);for(let l=0;l<e;l++){let d=t[l]._id;a&&a.push(o[d]),s&&s.push(i[d])}a&&(this.faceVertexUvs[0]=a),s&&(this.faceVertexUvs[1]=s)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let h=this.parameters;for(let m in h)h[m]!==void 0&&(t[m]=h[m]);return t}let e=[];for(let h=0;h<this.vertices.length;h++){let m=this.vertices[h];e.push(m.x,m.y,m.z)}let r=[],o=[],i={},a=[],s={},l=[],d={};for(let h=0;h<this.faces.length;h++){let m=this.faces[h],y=!0,g=!1,x=this.faceVertexUvs[0][h]!==void 0,S=m.normal.length()>0,w=m.vertexNormals.length>0,b=m.color.r!==1||m.color.g!==1||m.color.b!==1,_=m.vertexColors.length>0,A=0;if(A=c(A,0,0),A=c(A,1,y),A=c(A,2,g),A=c(A,3,x),A=c(A,4,S),A=c(A,5,w),A=c(A,6,b),A=c(A,7,_),r.push(A),r.push(m.a,m.b,m.c),r.push(m.materialIndex),x){let v=this.faceVertexUvs[0][h];r.push(f(v[0]),f(v[1]),f(v[2]))}if(S&&r.push(u(m.normal)),w){let v=m.vertexNormals;r.push(u(v[0]),u(v[1]),u(v[2]))}if(b&&r.push(p(m.color)),_){let v=m.vertexColors;r.push(p(v[0]),p(v[1]),p(v[2]))}}function c(h,m,y){return y?h|1<<m:h&~(1<<m)}function u(h){let m=h.x.toString()+h.y.toString()+h.z.toString();return i[m]!==void 0||(i[m]=o.length/3,o.push(h.x,h.y,h.z)),i[m]}function p(h){let m=h.r.toString()+h.g.toString()+h.b.toString();return s[m]!==void 0||(s[m]=a.length,a.push(h.getHex())),s[m]}function f(h){let m=h.x.toString()+h.y.toString();return d[m]!==void 0||(d[m]=l.length/2,l.push(h.x,h.y)),d[m]}return t.data={},t.data.vertices=e,t.data.normals=o,a.length>0&&(t.data.colors=a),l.length>0&&(t.data.uvs=[l]),t.data.faces=r,t}clone(){return new rn().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let p=0,f=e.length;p<f;p++)this.vertices.push(e[p].clone());let r=t.colors;for(let p=0,f=r.length;p<f;p++)this.colors.push(r[p].clone());let o=t.faces;for(let p=0,f=o.length;p<f;p++)this.faces.push(o[p].clone());for(let p=0,f=t.faceVertexUvs.length;p<f;p++){let h=t.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let m=0,y=h.length;m<y;m++){let g=h[m],x=[];for(let S=0,w=g.length;S<w;S++){let b=g[S];x.push(b.clone())}this.faceVertexUvs[p].push(x)}}let i=t.morphTargets;for(let p=0,f=i.length;p<f;p++){let h={};if(h.name=i[p].name,i[p].vertices!==void 0){h.vertices=[];for(let m=0,y=i[p].vertices.length;m<y;m++)h.vertices.push(i[p].vertices[m].clone())}if(i[p].normals!==void 0){h.normals=[];for(let m=0,y=i[p].normals.length;m<y;m++)h.normals.push(i[p].normals[m].clone())}this.morphTargets.push(h)}let a=t.morphNormals;for(let p=0,f=a.length;p<f;p++){let h={};if(a[p].vertexNormals!==void 0){h.vertexNormals=[];for(let m=0,y=a[p].vertexNormals.length;m<y;m++){let g=a[p].vertexNormals[m],x={};x.a=g.a.clone(),x.b=g.b.clone(),x.c=g.c.clone(),h.vertexNormals.push(x)}}if(a[p].faceNormals!==void 0){h.faceNormals=[];for(let m=0,y=a[p].faceNormals.length;m<y;m++)h.faceNormals.push(a[p].faceNormals[m].clone())}this.morphNormals.push(h)}let s=t.skinWeights;for(let p=0,f=s.length;p<f;p++)this.skinWeights.push(s[p].clone());let l=t.skinIndices;for(let p=0,f=l.length;p<f;p++)this.skinIndices.push(l[p].clone());let d=t.lineDistances;for(let p=0,f=d.length;p<f;p++)this.lineDistances.push(d[p]);let c=t.boundingBox;c!==null&&(this.boundingBox=c.clone());let u=t.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Bd().fromGeometry(this),e=new Eg,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",vc.call(new xs(r,3),t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",vc.call(new xs(o,3),t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",Lg.call(new xs(o,3),t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",Bg.call(new xs(o,2),t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",Bg.call(new xs(o,2),t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],a=t.morphTargets[o];for(let s=0,l=a.length;s<l;s++){let d=a[s],c=new Qi(d.data.length*3,3);c.name=d.name,i.push(vc.call(c,d.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new Qi(t.skinIndices.length*4,4);e.setAttribute("skinIndex",Rg.call(o,t.skinIndices))}if(t.skinWeights.length>0){let o=new Qi(t.skinWeights.length*4,4);e.setAttribute("skinWeight",Rg.call(o,t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new Eg,r=t.geometry;if(t.isPoints||t.isLine){let o=new Qi(r.vertices.length*3,3),i=new Qi(r.colors.length*3,3);if(e.setAttribute("position",vc.call(o,r.vertices)),e.setAttribute("color",Lg.call(i,r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let a=new Qi(r.lineDistances.length,1);e.setAttribute("lineDistance",BP.call(a,r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};rn.prototype.isGeometry=!0;var Bd=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,a=t.faces;for(o=0;o<a.length;o++){let s=a[o];s.materialIndex!==i&&(i=s.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,a=o[1]&&o[1].length>0,s=t.morphTargets,l=s.length,d;if(l>0){d=[];for(let g=0;g<l;g++)d[g]={name:s[g].name,data:[]};this.morphTargets.position=d}let c=t.morphNormals,u=c.length,p;if(u>0){p=[];for(let g=0;g<u;g++)p[g]={name:c[g].name,data:[]};this.morphTargets.normal=p}let f=t.skinIndices,h=t.skinWeights,m=f.length===r.length,y=h.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let g=0;g<e.length;g++){let x=e[g];this.vertices.push(r[x.a],r[x.b],r[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let b=x.normal;this.normals.push(b,b,b)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let b=x.color;this.colors.push(b,b,b)}if(i===!0){let b=o[0][g];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",g),this.uvs.push(new sr,new sr,new sr))}if(a===!0){let b=o[1][g];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",g),this.uvs2.push(new sr,new sr,new sr))}for(let b=0;b<l;b++){let _=s[b].vertices;d[b].data.push(_[x.a],_[x.b],_[x.c])}for(let b=0;b<u;b++){let _=c[b].vertexNormals[g];p[b].data.push(_.a,_.b,_.c)}m&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),y&&this.skinWeights.push(h[x.a],h[x.b],h[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},Zi=class{constructor(t,e,r,o,i,a=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new Mt,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new Rd,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=a}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};function BP(n){return this.array.set(n),this}function Lg(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",r),i=new Rd),t[e++]=i.r,t[e++]=i.g,t[e++]=i.b}return this}function Bg(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",r),i=new sr),t[e++]=i.x,t[e++]=i.y}return this}function vc(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",r),i=new Mt),t[e++]=i.x,t[e++]=i.y,t[e++]=i.z}return this}function Rg(n){let t=this.array,e=0;for(let r=0,o=n.length;r<o;r++){let i=n[r];i===void 0&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",r),i=new LP),t[e++]=i.x,t[e++]=i.y,t[e++]=i.z,t[e++]=i.w}return this}var VP=["a","b","c"];function GP(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Gd(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function zd(n,t,e,r,o,i){let a=Math.min(n,t),s=Math.max(n,t),l=a+"_"+s,d;if(r.has(l))d=r.get(l);else{let c=e[a],u=e[s];d={a:c,b:u,newEdge:null,faces:[]},r.set(l,d)}d.faces.push(o),i[n].edges.push(d),i[t].edges.push(d)}function zP(n,t,e,r){let o,i,a;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)a=t[o],zd(a.a,a.b,n,r,a,e),zd(a.b,a.c,n,r,a,e),zd(a.c,a.a,n,r,a,e)}function bc(n,t,e,r,o){n.push(new Zi(t,e,r,void 0,void 0,o))}function Ji(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Sc(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var wc=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof RP?t=new rn().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new Gg,r,o,i,a,s,l=t.vertices,d=t.faces,c=t.faceVertexUvs[0],u=c!==void 0&&c.length>0,p=[],f=new Map;zP(l,d,p,f);let h=[],m,y,g,x,S,w,b;for(let W of Array.from(f.keys())){for(y=f.get(W),g=new Gg,S=3/8,w=1/8,b=y.faces.length,b!=2&&(S=.5,w=0,b!=1),g.addVectors(y.a,y.b).multiplyScalar(S),e.set(0,0,0),a=0;a<b;a++){for(x=y.faces[a],s=0;s<3&&(m=l[GP(x,VP[s])],!(m!==y.a&&m!==y.b));s++);m&&e.add(m)}e.multiplyScalar(w),g.add(e),y.newEdge=h.length,h.push(g)}let _,A,v,M,O,T,C,P=[];for(o=0,i=l.length;o<i;o++){for(T=l[o],O=p[o].edges,r=O.length,r==3?_=3/16:r>3&&(_=3/(8*r)),A=1-r*Number(_),v=_,r<=2&&(r==2?(A=3/4,v=1/8):r==1||r==0),C=T.clone().multiplyScalar(A),e.set(0,0,0),a=0;a<r;a++)M=O[a],m=M.a!==T?M.a:M.b,e.add(m);e.multiplyScalar(Number(v)),C.add(e),P.push(C)}let I=P.concat(h),D=P.length,G,N,F,B=[],R=[],V,q,Y,$,H=new Vd,X=new Vd,k=new Vd;for(o=0,i=d.length;o<i;o++)x=d[o],G=Number(Gd(x.a,x.b,f).newEdge)+D,N=Number(Gd(x.b,x.c,f).newEdge)+D,F=Number(Gd(x.c,x.a,f).newEdge)+D,bc(B,G,N,F,x.materialIndex),bc(B,x.a,G,F,x.materialIndex),bc(B,x.b,N,G,x.materialIndex),bc(B,x.c,F,N,x.materialIndex),u&&(V=c[o],q=V[0],Y=V[1],$=V[2],H.set(Ji(q.x,Y.x),Ji(q.y,Y.y)),X.set(Ji(Y.x,$.x),Ji(Y.y,$.y)),k.set(Ji(q.x,$.x),Ji(q.y,$.y)),Sc(R,H,X,k),Sc(R,q,H,k),Sc(R,Y,X,H),Sc(R,$,k,X));t.vertices=I,t.faces=B,u&&(t.faceVertexUvs[0]=R)}};var pt=new FP,Fg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new zg().copy(new kg(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(pt),r={width:pt.x,height:pt.y,depth:pt.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new zg().copy(new kg(100,100,100)),a=i.userData.parameters;a===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(pt)):pt.set(a.width,a.height,a.depth),(t!==pt.x||e!==pt.y||r!==pt.z)&&i.scale(pt.x===0?1:t/pt.x,pt.y===0?1:e/pt.y,pt.z===0?1:r/pt.z);let s=i.originalGeometry;try{o>0?(s===void 0||a?.subdivisions!==o)&&(s===void 0&&(s=i),i=new wc(o).modify(s).toBufferGeometry()):(s!==void 0&&(i=s),s=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals())}catch{s!==void 0&&(i=s),s=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()}return s!==void 0&&Object.assign(i,{originalGeometry:s}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new kP(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(pt);let a=100/pt.x;Object.assign(i.parameters,{width:100,height:pt.y*a,depth:pt.z*a}),t(this.build(i))})}};var _c=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}=n.parameters,l=n.shape,d=t*.5,c=e*.5,u=0,p=0,f=2*Math.PI/r;for(let m=0;m<r;m++){let y=f*m,g=u+Math.sin(y)*d,x=p+Math.cos(y)*c;l.addPoint(l.createPoint(g,x))}l.isClosed=!0;for(let m=0,y=l.points.length;m<y;m++)l.points[m].roundness=o;l.roundness=o,l.update();let h=Xt.create({shape:l,parameters:{roundness:o,depth:i,extrudeBevelSize:a,extrudeBevelSegments:s}});return Object.assign(h,{userData:{...n,type:"PolygonGeometry"}})}};import{BufferGeometry as jP,Float32BufferAttribute as kd,Vector2 as Xr,Vector3 as bt}from"three";var jg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:a,cornerRadius:s,cornerSegments:l}=n.parameters,d=new jd(t*.5,e,o,i,a,s,l);return d.scale(1,1,r/t),Object.assign(d,{userData:{...n,type:"PyramidGeometry"}})}};function vs(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Fd(n,t,e,r,o,i){let a=t.clone().sub(n),s=e.clone().sub(n),l=a.angleTo(s);if(a.normalize(),s.normalize(),r===o){let d=a.add(s).normalize();i.copy(n).addScaledVector(d,r/Math.sin(l/2))}else{let d=a.angleTo(s);i.copy(n),i.addScaledVector(a,o/Math.sin(d)),i.addScaledVector(s,r/Math.sin(d))}}function UP(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var jd=class extends jP{constructor(t=.5,e=1,r=4,o=1,i=!1,a=0,s=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),s=Math.floor(s);let l=[],d=[],c=[],u=[],p=0,f=e/2,h=Math.PI/r,m=t*Math.cos(Math.PI/r),y=2*Math.PI/r,g=(r-2)*Math.PI/r,x=Math.PI-g,S=new bt(0,-f,0),w=new bt(0,f,0),b=new Xr(t,-f),_=new Xr(m,-f),A=new Xr(0,w.y).sub(_),v=new Xr(0,w.y).sub(b),M=new Xr(A.y,-A.x).normalize(),O=new Xr(v.y,-v.x).normalize(),C=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-A.angle())/2)-1e-8;a=Math.min(a,C);let P;{let R=new bt(M.x,M.y,0),V=new bt(Math.cos(y)*R.x,R.y,Math.sin(y)*R.x);P=R.angleTo(V)}let I=a/Math.tan((Math.PI-A.angle())/2),D=a/Math.tan((Math.PI-P)/2),G=new bt;if(!i){d.push(S.x,S.y,S.z),c.push(0,-1,0),u.push(0,0);let R=p++,V=[],q=b.clone(),Y=I/Math.cos(Math.PI/r);q.x-=Y;for(let $=0;$<r;$++){let H=$/r*Math.PI*2+h,X=new Xr(Math.sin(H),Math.cos(H));vs(q,X,G),d.push(G.x,G.y,G.z),c.push(0,-1,0),u.push(0,0),V.push(p++)}for(let $=0;$<V.length;$++)l.push(V[$],R,V[($+1)%V.length])}let N=[];{let R=new bt,V=new bt,q=new bt,Y=new bt,$=new bt,H=new bt;for(let X=0;X<r;X++){let k=X/r*Math.PI*2+h,W=(X+.5)/r*Math.PI*2+h,U=(X+1)/r*Math.PI*2+h,z=new Xr(Math.sin(k),Math.cos(k)),oe=new Xr(Math.sin(W),Math.cos(W)),ee=new Xr(Math.sin(U),Math.cos(U));vs(b,z,V),vs(b,ee,q),vs(M,oe,R),Fd(w,V,q,D,D,Y),d.push(Y.x,Y.y,Y.z),Fd(V,w,q,D,I,$),d.push($.x,$.y,$.z),Fd(q,V,w,I,D,H),d.push(H.x,H.y,H.z),c.push(R.x,R.y,R.z),c.push(R.x,R.y,R.z),c.push(R.x,R.y,R.z),u.push(0,0),u.push(0,0),u.push(0,0);let Q=p++,te=p++,Z=p++;if(l.push(Q,te,Z),a>0){{let ie=V.clone().add(q).multiplyScalar(.5),ue=w.clone().sub(ie).normalize(),de=S.clone().sub(ie).normalize().add(ue).normalize().multiplyScalar(-1),ge=H.clone().sub($);F(ie,ge,de,A.angle())}let se,ne;{let ie=new bt;vs(O,ee,ie);let ue=H.clone().add(Y).multiplyScalar(.5);ue=UP(ue,q,w);let le=H.clone().sub(Y);[se,ne]=F(ue,le,ie,P,Y.y)}{let ie=se,ue=ie.clone().setY(0).normalize(),le=new bt(0,-1,0),de=ue.clone().cross(le);B(ie,ue,le,de)}N.concat(ne);{let ie=A.angle(),ue=Math.PI-ie,le=w.clone();le.y-=a/Math.sin(ie-Math.PI/2);let de=new bt,ge=[];for(let He=0;He<s;He++){let Me=[],Ge=Math.PI/2-ue*He/s,Ut=Math.cos(Ge),Se=Math.sin(Ge),ut=W;for(let mt=0;mt<=He;mt++){let Qn=Math.cos(ut),rt=Math.sin(ut);R.x=Ut*rt,R.y=Se,R.z=Ut*Qn,de.copy(le).addScaledVector(R,a),d.push(de.x,de.y,de.z),c.push(R.x,R.y,R.z),u.push(0,0),Me.push(p++),ut+=Math.PI*2/He/r}ge.push(Me)}ne.reverse(),ge.push(ne);let Oe=ge.length-1;for(let He=0;He<Oe;He++){let Me=ge[He],Ge=ge[He+1],Ut=Me.length-1;l.push(Ge[1],Me[0],Ge[0]);for(let Se=1;Se<=Ut;Se++)l.push(Me[Se],Me[Se-1],Ge[Se]),l.push(Ge[Se+1],Me[Se],Ge[Se])}}}}}this.setIndex(l),this.setAttribute("position",new kd(d,3)),this.setAttribute("normal",new kd(c,3)),this.setAttribute("uv",new kd(u,2));function F(R,V,q,Y,$){let H=-Y/2,X=(Math.PI-Y)/2,k=V.clone().normalize().cross(q);R.addScaledVector(q,-a/Math.sin(X));let W=new bt,U=new bt,z=1,oe=p,ee=[];for(let Q=0;Q<=s;Q++){let te=H+Q/s*Y;U.set(0,0,0),U.addScaledVector(k,Math.sin(te)),U.addScaledVector(q,Math.cos(te));for(let Z=0;Z<=z;Z++){let se=Z/z-.5;if(W.copy(R),W.addScaledVector(V,se),W.addScaledVector(U,a),$!=null){let ne=Math.max(0,W.y-$);W.addScaledVector(V,-ne/V.y)}d.push(W.x,W.y,W.z),c.push(U.x,U.y,U.z),u.push(0,0),Z===0&&ee.push(p),p++}}for(let Q=0;Q<s;Q++)for(let te=0;te<z;te++){let Z=oe+te+(z+1)*Q,se=Z+(z+1),ne=se+1,ie=Z+1;l.push(Z,se,ie),l.push(se,ne,ie)}return[R.clone().addScaledVector(V,.5),ee]}function B(R,V,q,Y){let $=Math.PI/2,H=v.angle()-$,X=[],k=new bt,W=new bt;for(let z=0;z<=s;z++){let oe=[],ee=z/s;for(let Q=0;Q<=z;Q++){let Z=((z?Q/z:0)-.5)*x,se=Math.cos(Z),ne=Math.sin(Z),ie=Math.atan(Math.tan(H)*se),ue=($+ie)*ee,le=Math.cos(ue),de=Math.sin(ue);k.set(0,0,0),k.addScaledVector(V,de*se),k.addScaledVector(q,le),k.addScaledVector(Y,de*ne),W.copy(R).addScaledVector(k,a),d.push(W.x,W.y,W.z),c.push(k.x,k.y,k.z),u.push(0,0),oe.push(p++)}X.push(oe)}let U=X.length-1;for(let z=0;z<U;z++){let oe=X[z],ee=X[z+1],Q=oe.length-1;l.push(oe[0],ee[1],ee[0]);for(let te=1;te<=Q;te++)l.push(oe[te-1],oe[te],ee[te]),l.push(oe[te],ee[te+1],ee[te])}}}};var Ac=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,d={x:e*.5,y:r*.5},c={x:-d.x,y:-d.y},u={x:d.x,y:d.y};function p(w,b,_){return b>e&&_>r?Math.min(w*e/b,w*r/_):b>e?w*e/b:_>r?w*r/_:w}let f=[];f[0]=o[0]===0?0:p(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:p(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:p(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:p(o[3],o[3]+o[0],o[3]+o[2]);let h=c.x,m=u.x,y=u.y,g=c.y;t.addPoint(t.createPoint(h,y)),t.addPoint(t.createPoint(m,y)),t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.isClosed=!0;let x=!0;for(let w=0,b=t.points.length;w<b;w++)t.points[w].roundness=f[w],w>0&&f[w]!==f[w-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let S=Xt.create({shape:t,parameters:{depth:a,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(S,{userData:{...n,type:"RectangleGeometry"}})}};import{BufferGeometry as HP,Float32BufferAttribute as qP,MathUtils as Ug,SphereGeometry as WP}from"three";var Hg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:180},n.parameters);return e.thetaLength=Ug.clamp(e.thetaLength,0,180),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:a,phiLength:s,thetaStart:l,thetaLength:d}=n.parameters,c;return d===0?(c=new HP,c.setAttribute("position",new qP([],3))):c=new WP(.5*t,o,i,a,s,l,d*Ug.DEG2RAD),c.scale(1,e/t,r/t),Object.assign(c,{userData:{...n,type:"SphereGeometry"}})}};import{PlaneGeometry as $P}from"three";var qg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new $P(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};import{BufferGeometry as YP,Float32BufferAttribute as Ud,Vector3 as XP}from"three";var Wg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:a}=n.parameters,s=new Hd(t,e,r,o,i,a);return Object.assign(s,{userData:{...n,type:"BackdropGeometry"}})}},Hd=class extends YP{constructor(t=1,e=1,r=1,o=90,i=10,a=24){super(),this.type="BackdropGeometry";let s=[],l=[],d=[],c=.001;i==0&&(a=1),a=Math.max(1,Math.floor(a)),i=Math.min(i,100),o=Math.min(180-c,o),o*=Math.PI/180;let u=[],p=Math.PI/2,f=(W=0,U=0,z=0)=>new XP(W,U,z),h=f(),m=f(),[y,g,x]=[e/2,t/2,r/2],S=-g,w=+g,[b,_,A]=[f(S,-y,+x),f(S,-y,-x),f(S,+y,-x)],v=(W,U=!1)=>Math.sin(W-Math.PI/(1+ +U)),M=(W,U=!1)=>Math.cos(W-Math.PI/(1+ +U));A.y=Math.sin(o)*e-y;let O=Math.cos(o)*e-x,T=b.z-c;o<=p?(A.z=Math.min(O,T),A.z==T&&(A.y-=(O-T)/Math.tan(p-o))):_.z=Math.min(_.z-O-x,b.z-c),h.subVectors(b,_),m.subVectors(A,_);let C=Math.min(h.length(),m.length())*i/100,P=C*Math.tan(o/2),I=C/Math.cos(o/2),D=h.clone().normalize().add(m.normalize()).setLength(I).add(_);h.set(0,v(o,!0),M(o,!0)),u.push([A,h.clone()]);let G=(Math.PI-o)/a;for(let W=0;W<=a;W++){let U=p+o+W*G;h.set(0,Math.sin(U)*P,Math.cos(U)*P),h.add(D),m.set(0,v(U),M(U)),u.push([h.clone(),m.clone()])}u.push([b,f(0,1,0)]);let N=Math.sin(G/2)*P*2,F=u.length-1,B=u[0][0].distanceTo(u[1][0]),R=u[F-1][0].distanceTo(u[F][0]),V=B+N*a+R;u[0].push(1);for(let W=0;W<=a;W++)u[W+1].push(1-(B+W*N)/V);u[F].push(0);let[q,Y,$]=u[0],H,X,k;for(let W=1;W<u.length;W++)[H,X,k]=u[W],s.push(S,q.y,q.z,S,H.y,H.z,w,q.y,q.z,w,q.y,q.z,S,H.y,H.z,w,H.y,H.z),l.push(0,Y.y,Y.z,0,X.y,X.z,0,Y.y,Y.z,0,Y.y,Y.z,0,X.y,X.z,0,X.y,X.z),d.push(0,$,0,k,1,$,1,$,0,k,1,k),[q,Y,$]=[H,X,k];this.setAttribute("position",new Ud(s,3)),this.setAttribute("normal",new Ud(l,3)),this.setAttribute("uv",new Ud(d,2))}};var Tc=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:a,depth:s,extrudeBevelSize:l,extrudeBevelSegments:d}=n.parameters,c=n.shape,u=t*.5,p=e*.5,f=0,h=0,m=a*Math.PI/360/o,y=Math.PI/2*3*-1,g=u*r/100,x=p*r/100;if(o===3&&r===50){m=2*Math.PI/o;for(let w=0;w<o;w++){let b=m*w,_=f+Math.sin(b)*u,A=h+Math.cos(b)*p;c.addPoint(c.createPoint(_,A))}}else for(let w=0;w<o;w++){let b=f+Math.cos(y)*u,_=h+Math.sin(y)*p;c.addPoint(c.createPoint(b,_)),y+=m,b=f+Math.cos(y)*g,_=h+Math.sin(y)*x,w<=o,c.addPoint(c.createPoint(b,_)),y+=m}c.isClosed=!0;for(let w=0,b=c.points.length;w<b;w++)c.points[w].roundness=i;c.roundness=i,c.update();let S=Xt.create({shape:c,parameters:{roundness:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:d}});return Object.assign(S,{userData:{...n,type:"StarGeometry"}})}};import{PlaneGeometry as KP}from"three";var $g=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new KP(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};import{BufferGeometry as QP,Float32BufferAttribute as ZP,MathUtils as JP}from"three";var Yg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:360,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.round(Math.abs(e.depth??e.width*.25));return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:a,cornerRadius:s,cornerSegments:l}=n.parameters,d=e2(t,e,r,t*.5,a,i,0,0,o,s,l);return d.scale(1,e/t,1),Object.assign(d,{userData:{...n,type:"TorusGeometry"}})}};function e2(n,t,e,r,o,i,a,s,l,d,c){[t,e]=[e,t],a=t/2;let u=JP.clamp(o/360,0,1);if(u===0){let p=new QP;return p.setAttribute("position",new ZP([],3)),p}return u===1&&(d=0),new ys(!0,n,t,e,r,u,i,a,s,l,d,c)}import{TorusKnotGeometry as t2}from"three";var Xg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:a}=n.parameters,s=t*.5;s!==e&&(s-=e);let l=new t2(s,e,r,o,i,a);return Object.assign(l,{userData:{...n,type:"TorusKnotGeometry"}})}};var Kg=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof Ne?n.shape:new Ne,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a,isRect:s}=n.parameters,l=n.shape,d=t*.5,c=e*.5;s?(l.addPoint(l.createPoint(-d,c)),l.addPoint(l.createPoint(d,-c)),l.addPoint(l.createPoint(-d,-c))):(l.addPoint(l.createPoint(0,c)),l.addPoint(l.createPoint(d,-c)),l.addPoint(l.createPoint(-d,-c))),l.isClosed=!0;for(let p=0,f=l.points.length;p<f;p++)l.points[p].roundness=r;l.roundness=r,l.update();let u=Xt.create({shape:l,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};import{Vector2 as Zg,Vector3 as St,Matrix3 as r2,Matrix4 as Mn,BufferGeometry as Jg,BufferAttribute as ea,MathUtils as Cc}from"three";function Qg(n,t){let e=2*Math.PI;return(n%e+e)%e===(t%e+e)%e}var o2=new Mn,n2=new Mn;function i2(n,t,e){let r=[new St,new St,new St],o=[new St,new St,new St];return n.extractBasis(r[0],r[1],r[2]),t.extractBasis(o[0],o[1],o[2]),r.forEach((i,a)=>{let s=o[a],l=Cc.lerp(i.length(),s.length(),e);i.lerp(s,e).setLength(l)}),new Mn().makeBasis(r[0],r[1],r[2])}var e0=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,height:100,depth:1,subdivisions:12,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),a=t?.shapeData??Ki.create({parameters:Uu}).userData.shape;return{path:n.path??Mi.defaultData(),parameters:Object.assign(e,{width:r,height:o,depth:i,extrusion:{...jl,...e.extrusion}}),shapeData:a}}static build(n){if(n.path.points.length>=2){let e=new qd(n);return Object.assign(e,{userData:{...n,type:"PathGeometry"}})}else return Object.assign(new Jg,{userData:{...n,type:"PathGeometry"}})}},qd=class extends Jg{constructor(e){super();this.type="PathExtrusionGeometry",this.inputs=e,this.build()}_isGeometryClosed(){return this.inputs.path.isClosed&&this.inputs.parameters.extrusion.depth===1}_isOpenEnded(){let e=this.inputs.parameters.extrusion;return!(this.inputs.path.isClosed&&e.depth===1)||!Qg(e.twist,0)||e.startScale!==e.endScale}build(){let e=this._extractPathPoints();if(e.length<2)return;let r=this._computeBasisMatrices(e),{depth:o,offset:i}=this.inputs.parameters.extrusion;o=Math.max(0,Math.min(o,1)),i=Math.max(0,Math.min(i,1));let a=this.inputs.path.isClosed?e.length:e.length-1,s=Math.floor(i*a),l=this.inputs.path.isClosed?Math.ceil((o+i)*a):Math.ceil(Math.min(1,o+i)*a),d=Math.min(Math.max(2,l-s+1),a+2),c=[],u=[];for(let B=0;B<d;B++){let R=this.inputs.path.isClosed?(B+s)%e.length:Math.min(B+s,e.length-1);c.push(e[R].clone()),u.push(r[R].clone())}let p=(B,R,V)=>{c[B]=c[B].clone().lerp(c[R],V),u[B]=i2(u[B],u[R],V)},f=0,h=i*a%1;(!this.inputs.path.isClosed||o<=1)&&(h||i===0)&&(f=h,p(0,1,f));let m=0,y=(i+o)*a%1;if((this.inputs.path.isClosed&&o<=1||!this.inputs.path.isClosed&&i+o<1)&&y&&(m=y,p(c.length-1,c.length-2,1-m)),o===0){let B=c.length-1;c[B].copy(c[0]),u[B].copy(u[0])}this._applyPathModifiers(u,f,m);let{bevel:g,bevelSides:x}=this.inputs.parameters.extrusion,S=g>0?this.inputs.parameters.extrusion.capType:"flat",w=5;this.inputs.parameters.extrusion.shape.type==="Custom"&&(w=this.inputs.parameters.extrusion.shape.shapeQuality==="low"?5:12);let{regions:b,infos:_,vertices:A}=this._computeShapePoints(w),v=0,M;S==="round"&&(M=new tn(this.inputs.shapeData,2*g,g,w,x,void 0,!0),v=M.getAttribute("position").count);let O=0,T=0;_.sort((B,R)=>B.start-R.start),_.forEach(B=>{B.verticesStart=O,B.verticesCount=B.continuous.reduce((R,V,q)=>R+(q===0||!V?2:1),0),T+=B.verticesCount,O=T});let C=T*d,P,I=0;if(this._isOpenEnded()&&S==="flat"){try{P=Cr({windingRule:Pe.ODD,elementType:Xe.POLYGONS,polySize:3,vertexSize:2,strict:!0,contours:b})}catch{P=Id}I=P.vertexCount}let D=C+2*I+v*2,G=C+2*I,N={positions:new Float32Array(D*3),normals:new Float32Array(D*3),uvs:new Float32Array(D*2)},F=[];if(_.forEach(B=>{this._extrudeRegion(B,A,u,c,N,F,this._isGeometryClosed()&&!this._isOpenEnded())}),P&&(this._closeEnd(P,C,F,N,u[0],c[0],!1),this._closeEnd(P,C+I,F,N,u[u.length-1],c[c.length-1],!0)),M){N.positions.set(M.getAttribute("position").array,G*3),N.normals.set(M.getAttribute("normal").array,G*3),N.uvs.set(M.getAttribute("uv").array,G*2);let B=F.length;F.push(...M.getIndex().array.map(q=>q+G)),G+=v,N.positions.set(M.getAttribute("position").array,G*3),N.normals.set(M.getAttribute("normal").array,G*3),N.uvs.set(M.getAttribute("uv").array,G*2);let R=F.length;F.push(...M.getIndex().array.map(q=>q+G)),this.setAttribute("position",new ea(N.positions,3)),this.setAttribute("normal",new ea(N.normals,3)),this.setAttribute("uv",new ea(N.uvs,2)),this.setIndex(F);let V=o2;V.copy(u[u.length-1]).setPosition(c[c.length-1]),this.applyMatrix4OnRange(V,G,D),V.copy(u[0]).setPosition(c[0]).multiply(n2.makeScale(1,1,-1)),this.applyMatrix4OnRange(V,G-v,G),this.reverseIndicesOnRange(B,R)}else this.setAttribute("position",new ea(N.positions,3)),this.setAttribute("normal",new ea(N.normals,3)),this.setAttribute("uv",new ea(N.uvs,2)),this.setIndex(F)}_extractPathPoints(){let r=nc(this.inputs.path).getPoints(this.inputs.path.subdivisions);if(r.length<2)return[];let o=[r[0]];return r.forEach(a=>{o[o.length-1].distanceToSquared(a)>.001&&o.push(a)}),this.inputs.path.isClosed&&o[o.length-1].distanceTo(o[0])<.001&&o.pop(),o}_computeBasisMatrices(e){let r=[],o=e.length,i=this.inputs.path.isClosed,a=new St,s=new St,l=new St,d=new St,c=new St(0,1,0);for(let y=0;y<o;y++){let g=e[y],x;y===0?x=i?e[e.length-2]:g.clone().multiplyScalar(2).sub(e[1]):x=e[y-1];let S;y===o-1?S=i?e[1]:g.clone().multiplyScalar(2).sub(e[y-1]):S=e[y+1];let w=g.clone().sub(x).normalize(),b=S.clone().sub(g).normalize(),_=w.clone().add(b).normalize();l.copy(_),y===0&&(_.equals(c)||_.clone().negate().equals(c))&&c.set(0,0,1);let A=c.clone().cross(_).normalize(),v=_.clone().cross(A).normalize();c.copy(v),d.copy(A),y===0&&(a.copy(v),s.copy(_));let M=new Mn().makeBasis(A,v,_);r.push(M)}let u=i?s:l,p=i?a:new St(0,1,0),f=u.clone().cross(d).normalize(),h=Math.acos(p.dot(f));if(isNaN(h))return r;let m=p.clone().cross(f);u.dot(m)>0&&(h*=-1);for(let y=1;y<r.length;y++){let g=new Mn().makeRotationZ(h*y/r.length);r[y].multiply(g)}return r}_applyPathModifiers(e,r,o){let i=e.length,{angle:a,twist:s,startScale:l,endScale:d}=this.inputs.parameters.extrusion,c=new Mn,u=new Mn;return e.forEach((p,f)=>{let h=f===0?0:f===i-1?1:(f-r)/(i-(o===0?0:1)-(r+(1-o)));c.makeRotationZ(Cc.lerp(a,a+s,h)*Cc.DEG2RAD);let m=Cc.lerp(l,d,h);u.makeScale(m,m,m),p.multiply(c).multiply(u)}),e}_computeShapePoints(e=12,r=Pe.ODD){let o=this.inputs.shapeData,i=o.extractShapePointsToFlatArray([],e),a=o.shapeHoles.map(m=>{let y=m.extractShapePointsToFlatArray([],e),g=[];for(let x=y.length-1;x>=1;x-=2){let S=y[x-1],w=y[x-0];g.push(S,w)}return g}),s;try{s=Cr({windingRule:r,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[i]})}catch{s=ms}let l;try{l=Cr({windingRule:Pe.ODD,elementType:Xe.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...a]})}catch{l=Md}if(!s)throw new Error("error generating geometry");let d=s.elementCount;if(l){s.elementCount+=l.elementCount;for(let m=0;m<l.elements.length;m++){let y=l.elements[m],g=m%2===0?s.vertexCount:0;s.elements.push(y+g)}for(let m=0;m<l.vertexIndices.length;m++){let y=l.vertexIndices[m],g=s.vertexCount;s.vertexIndices.push(y+g)}for(let m=0;m<l.vertices.length;m++){let y=l.vertices[m];s.vertices.push(y)}}let c=1/0,u=-1/0,p=1/0,f=-1/0;for(let m=0,y=s.vertexCount;m<y;m++){let g=m*2,x=s.vertices[g+0],S=s.vertices[g+1];x<c&&(c=x),x>u&&(u=x),S<p&&(p=S),S>f&&(f=S)}let h=[];for(let m=s.elementCount-1;m>=0;m--){let y=m>=d,g=m*2,x=s.elements[g+0],S=s.elements[g+1],w=x+S,b={start:x,count:S,normals:[],isHole:y,continuous:[],verticesStart:0,verticesCount:0};h.push(b);let _=x,A=w-1,v=x+1,M=o.roundedCurves.length;do{let O=_-x,T=s.vertices[A*2+0],C=s.vertices[A*2+1],P=s.vertices[_*2+0],I=s.vertices[_*2+1],D=s.vertices[v*2+0],G=s.vertices[v*2+1],N=P-T,F=I-C,B=Math.sqrt(N*N+F*F);N/=B,F/=B;let R=P-D,V=I-G,q=Math.sqrt(R*R+V*V);R/=q,V/=q,b.normals[O*2+0]=-V,b.normals[O*2+1]=R;let Y=s.vertexIndices[_];if(Array.isArray(Y))b.continuous[O]=!1;else{let[$,H]=o.getCurveIndexFromVertexId(Y-1,!0);if(H>0&&H<1)b.continuous[O]=!0;else{let X=H===1?$+1:$-1;X=(X+M)%M;let k=H===1?0:1,W=o.roundedCurves[$].getTangent(H),U=o.roundedCurves[X].getTangent(k);b.continuous[O]=W.dot(U)>.95}}y&&(b.normals[O*2+0]*=-1,b.normals[O*2+1]*=-1),[A,_,v]=[_,v,v+1],v>=w&&(v-=S)}while(v!==x+1)}return{regions:[i,...a],infos:h,vertices:s.vertices}}_insertVertex(e,r,o,i,a){let s=r*2,l=r*3;e.positions[l+0]=o.x,e.positions[l+1]=o.y,e.positions[l+2]=o.z,e.normals[l+0]=i.x,e.normals[l+1]=i.y,e.normals[l+2]=i.z,e.uvs[s+0]=a.x,e.uvs[s+1]=a.y}_extrudeRegion(e,r,o,i,a,s,l){let d=new St,c=new St,u=new St,p=new St,f=new Zg;o.forEach((m,y)=>{let g=i[y],x=e.verticesStart*o.length+e.verticesCount*y;for(let S=0;S<e.count;S++){let w=(e.start+S)*2;if(d.set(r[w+0],r[w+1],0),u.copy(d).applyMatrix4(m).add(g),e.continuous[S])p.set(e.normals[S*2+0],e.normals[S*2+1],0);else{let b=S===0?(e.start+e.count-1)*2:w-2;c.set(r[b+0],r[b+1],0),p.copy(d).sub(c),p.set(-p.y,p.x,0),e.isHole||p.negate()}if(p.applyMatrix4(m).normalize(),f.set(S===0?1:S/e.count,y/(o.length-1)),this._insertVertex(a,x,u,p,f),x++,!e.continuous[S]||S===0){if(S===0)p.set(e.normals[S*2+0],e.normals[S*2+1],0),f.set(0,y/(o.length-1));else{let b=S===e.count-1?e.start*2:w+2;c.set(r[b+0],r[b+1],0),p.copy(c).sub(d),p.set(-p.y,p.x,0),e.isHole||p.negate()}p.applyMatrix4(m).normalize(),this._insertVertex(a,x,u,p,f),x++}}});let h=o.length-1;for(let m=0;m<h;m++){let y=e.verticesStart*o.length+e.verticesCount*m,g=e.verticesStart*o.length+e.verticesCount*(m+1),x=0;for(let S=0;S<e.count;S++){(!e.continuous[S]||S===0)&&x++;let w=S===e.count-1?0:x+1,b=y+x,_=y+w,A=g+w,v=g+x;e.isHole?s.push(b,A,_,b,v,A):s.push(b,_,A,b,A,v),x++}}}_closeEnd(e,r,o,i,a,s,l){let d=e.vertexCount,c=new St(0,0,l?-1:1).applyMatrix4(a),u=new St,p=new Zg;for(let h=0;h<d;h++){let m=2*h;u.set(e.vertices[m+0],e.vertices[m+1],0).applyMatrix4(a).add(s),this._insertVertex(i,r+h,u,c,p)}let f=e.elements;for(let h=0;h<e.elementCount;h++){let m=3*h,y=f[m+0]+r,g=f[m+(l?1:2)]+r,x=f[m+(l?2:1)]+r;o.push(y,g,x)}}applyMatrix4OnRange(e,r,o){let i=e.elements,a=new r2().getNormalMatrix(e).elements,s,l,d,c,u=this.attributes.position,p=this.attributes.normal;if(!u||!p)return;let f=u.array,h=p.array,m=u.itemSize;for(let y=r*m,g=o*m;y<g;y+=m){if(y===r)debugger;s=f[y+0],l=f[y+1],d=f[y+2],c=1/(i[3]*s+i[7]*l+i[11]*d+i[15]),f[y+0]=(i[0]*s+i[4]*l+i[8]*d+i[12])*c,f[y+1]=(i[1]*s+i[5]*l+i[9]*d+i[13])*c,f[y+2]=(i[2]*s+i[6]*l+i[10]*d+i[14])*c,s=h[y+0],l=h[y+1],d=h[y+2],h[y+0]=a[0]*s+a[3]*l+a[6]*d,h[y+1]=a[1]*s+a[4]*l+a[7]*d,h[y+2]=a[2]*s+a[5]*l+a[8]*d}u.needsUpdate=!0,p.needsUpdate=!0}reverseIndicesOnRange(e,r){let o=this.index;if(o){for(let i=e;i<r;i+=3){let a=o.getX(i),s=o.getX(i+1),l=o.getX(i+2);o.setXYZ(i,l,s,a)}o.needsUpdate=!0}}};import{BufferAttribute as t0,BufferGeometry as Wd}from"three";import{mergeBufferGeometries as a2}from"three/examples/jsm/utils/BufferGeometryUtils.js";function r0(){let n=new Wd;return n.setAttribute("position",new t0(new Float32Array([]),3)),n.setIndex(new t0(new Uint16Array([]),1)),n}var s2=r0().attributes,l2=12,c2=1,ta=class extends Wd{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];Object.assign(this.attributes,s2),this.userData={parameters:e,type:"TextGeometry"};let o=r.getFont(e.font);o?.isLoaded?(this.font=o,this.update(e)):this.updateFont(e.font,r).then(()=>{this.update(e),r?.requestRender()})}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r?.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:a,extrudeBevelSize:s,extrudeBevelSegments:l,text:d,textTransform:c}=e,u=Kl.getDisplayedValue(d),p=c===2?u.toUpperCase():c===3?u.toLowerCase():u,f=u2(e,r,p),{shapes:h,charWidths:m,charCoords:y}=r.generateShapes(f,e),g=(typeof o=="number"?o:1)*.5,x=(typeof i=="number"?i:1)*.5,S=h.map(_=>new Ne().fromShape(_,!0));this.vectorShapes=S;let w=S.map(_=>Xt.create({shape:_,parameters:{depth:a,extrudeBevelSegments:l,extrudeBevelSize:s,windingRule:a<=0?Pe.NONZERO:Pe.ODD,subdivisions:this.isLowResolution&&a>0?c2:l2}})),b=w.length?a2(w):r0();b.translate(-g,x,0),this.dispose(),this.wrappedText=f,this.charCoords=y,this.charWidths=m,this.deleteAttribute("extrudeNormal"),Object.entries(b.attributes).forEach(([_,A])=>{this.setAttribute(_,A)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=Wt(new Wd,ta.prototype);return e.copy(this),console.log("CloneGeometry",this,e),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function u2(n,t,e){let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
16
16
  `?(r[r.length-1]+=o,o="",i===`
17
- `&&r.push("")):t.getTextWidth(r[r.length-1]+o,n)>n.width&&(r[r.length-1].length&&r.push(""),t.getTextWidth(r[r.length-1]+o,n)>n.width&&(o.length===1?(r[r.length-1]+=o,o=""):(r[r.length-1]+=o.slice(0,-1),o=o[o.length-1],r.push(""))));return r[r.length-1]+=o,r}import{BufferGeometry as Yd,BufferAttribute as a0,Uint32BufferAttribute as Xd,Float32BufferAttribute as Kd,Matrix4 as h2,Vector3 as ws,Sphere as m2,Box3 as y2,BoxGeometry as g2}from"three";var n0,ra=new Promise(n=>{n0=n}),o0=!1;var Pc;function i0(){if(o0)return;if(Pc)return Pc;async function n(){let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.521/build",o=import("./process.js"),[i,a]=await Promise.all([o,fetch(`${e}/process.wasm`).then(d=>d.arrayBuffer())]),s=i.default,l=await s({wasmBinary:a});n0(l),o0=!0}return Pc=n(),Pc}import{BufferGeometryLoader as d2}from"three";function Nn(n,t,e,r){let o,i,a;n.type==="PathGeometry"?(i=JSON.parse(JSON.stringify(n)),a=[[],["extrusion"]]):(i={...n},a=[[]]);for(let d of a){let c=i;for(let u of d)c=c[u];for(o in c){let u=c[o];ku(u)&&(c[o]=t.getVariable(u,[r.uuid,"geometry",...d,o]),ku(c[o])&&(c[o]=1))}}let s={parameters:i,type:i.type};if(i.type==="PathGeometry")s.path=i.path;else if(i.type==="VectorGeometry"){let d=Ne.createFromState(i.shape,i.width,i.height);s.shape=d}else if(i.type==="NonParametricGeometry")i.data.groups&&i.data.groups?.forEach(d=>d.materialIndex=Math.max(d.materialIndex??0,0)),s.geometry=new d2().parse(i);else if(i.type==="SubdivGeometry"){let d=new at(i,e);return d.data=n,d}else if(i.type==="TextGeometry")return new ta(i,t);let l;try{l=$d(s)}catch(d){console.error(d)}if(!l){let d=Ne.createFromState(Oi.defaultData(),100,100);s.shape=d,l=$d(s)}return l}import{Matrix4 as p2}from"three";var f2=new p2;function Ss(n,t,e,r){let o=n.position.array,i=n.normal.array,a=f2.makeScale(t,e,r).invert().elements,s,l,d;for(var c=0,u=o.length;c<u;c+=3)o[c]*=t,o[c+1]*=e,o[c+2]*=r,s=i[c],l=i[c+1],d=i[c+2],i[c]=a[0]*s+a[4]*l+a[8]*d,i[c+1]=a[1]*s+a[5]*l+a[9]*d,i[c+2]=a[2]*s+a[6]*l+a[10]*d;n.position.needsUpdate=!0,n.normal.needsUpdate=!0}var Oc=new y2,oa=new ws,fe;ra.then(n=>{fe=n});var s0=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),l0=new Uint32Array([0,1,2,3]),c0=new Uint8Array([4]),at=class extends Yd{constructor(e,r){super();this.data=e;this.flatShading=r;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(e,r){this.freeSubdivPointer();let o=this.data.scaleBaked,i=Fo.div(r,o);this.subdividedGeometry&&Ss(this.subdividedGeometry.attributes,...i),this.originalGeometry&&Ss(this.originalGeometry.attributes,...i),this.data=e;let a=this.userData.parameters;this.userData.parameters={width:a.width*i[0],height:a.height*i[1],depth:a.depth*i[2]},this.originalGeometry.boundingSphere.center.multiply(oa.fromArray(i));let s=oa.set(a.width,a.height,a.depth).length();this.originalGeometry.boundingSphere.radius=s/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let e,r,o;try{({originalGeometry:e,subdividedGeometry:r,subdivPointer:o}=at.build(this.data,void 0,!this.flatShading,void 0))}catch{e=new g2(100,100,100),o=0}this.subdivPointer=o,this.originalGeometry=e,this.subdividedGeometry=r??void 0;let i=this.subdividedGeometry??this.originalGeometry;Object.assign(this,i),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(at.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new m2,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let r=e.attributes.position,o=e.boundingSphere.center;Oc.setFromBufferAttribute(r),Oc.getCenter(o),e.boundingSphere.radius=o.distanceTo(Oc.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Oc.getSize(oa);let i={width:oa.x,height:oa.y,depth:oa.z};return this.userData.parameters=i,i}static build(e,r,o,i){let a,s,l,d=e?.phongAngle??35;o===!1&&(d=-1),r&&(fe.free_bvh(r),fe.free_subdivision_surface(r));try{a=at.allocate(e,i)}catch(c){console.error(c,e),a=at.allocate({positionWASM:s0,indexWASM:l0,verticesPerFaceWASM:c0},i)}if(fe.set_destination_refinement_level(a,0),s=at.buildLevel(a,!0,d),e.subdivisions>0)try{fe.set_destination_refinement_level(a,e.subdivisions),l=at.buildLevel(a,!1,d)}catch{try{fe.set_destination_refinement_level(a,e.subdivisions-1),l=at.buildLevel(a,!1,d)}catch{l=null}}else l=null;return{subdivPointer:a,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(e,r,o){e.widthSegments>16&&(e.widthSegments=16),e.heightSegments>16&&(e.heightSegments=16),e.depthSegments>16&&(e.depthSegments=16),e.radialSegments>16&&(e.radialSegments=16),e.type==="DodecahedronGeometry"&&(e.detail=0);let i=e.shape!==void 0||e.path!==void 0?r.geometry:Nn(e,o,!1),a;e.type==="TorusGeometry"&&e.arc===Math.PI*2?a=i.getClosedTorusIndicesForBooleanOrSubdiv():a=i.getIndex();let s,l,d,c;({positions:s,triIndices:c}=ep(i.getAttribute("position"),a));let u;if(e.type==="CylinderGeometry"&&e.cornerRadius===0&&e.hollow===0&&e.openEnded===!1){let p=e.radialSegments*e.heightSegments*3*2,f=p+e.radialSegments*3;u=[p,f]}return{indices:l,verticesPerFace:d}=tp(s,c,i,u),{positions:s,indices:l,verticesPerFace:d}}static allocate(e,r){let o,i,a,s=[],l=[];e.positionWASM&&e.positionWASM.length>0?(o=e.positionWASM,i=e.indexWASM,a=e.verticesPerFaceWASM):(o=s0,i=l0,a=c0);let d=o.length,c=i.length,u=a.length,p=o.length+s.length+l.length,f=i.length+a.length,h=p*Float32Array.BYTES_PER_ELEMENT+f*Uint32Array.BYTES_PER_ELEMENT,m=p*Float32Array.BYTES_PER_ELEMENT,y=f*Uint32Array.BYTES_PER_ELEMENT,g=fe._malloc(h),x=new Float32Array(fe.HEAPF32.buffer,g,p),S=new Uint32Array(fe.HEAPU32.buffer,g+m,f);x.set(o,0),x.set(s,o.length),x.set(l,o.length+s.length),S.set(i,0),S.set(a,i.length);let w;e?.scaleBaked?.some(_=>_!==1)&&(w=new h2().makeScale(...e.scaleBaked)),r&&(w?w.premultiply(r):w=r);let b=w?fe.alloc_subdivision_surface2(g,d,g+m,c,g+m+i.length*Uint32Array.BYTES_PER_ELEMENT,u,w.elements):fe.alloc_subdivision_surface(g,d,g+m,c,g+m+i.length*Uint32Array.BYTES_PER_ELEMENT,u);return fe._free(g),b}static buildLevel(e,r,o,i,a){let s=a?fe.get_mesh_data2(e,r?fe.Level.CONTROL:fe.Level.REFINED,o,a.elements):fe.get_mesh_data(e,r?fe.Level.CONTROL:fe.Level.REFINED,o),l=8,d=fe.HEAPU32.subarray(s>>2,(s>>2)+l),c=d.subarray(4,4+4),u=0,p=fe.HEAPU32[d[u]>>2],f=fe.HEAPF32.subarray(p>>2,(p>>2)+c[u]);u++;let h=fe.HEAPU32[d[u]>>2],m=fe.HEAPF32.subarray(h>>2,(h>>2)+c[u]);u++;let y=fe.HEAPU32[d[u]>>2],g=fe.HEAPU32.subarray(y>>2,(y>>2)+c[u]);u++;let x=fe.HEAPU32[d[u]>>2],S=fe.HEAPU32.subarray(x>>2,(x>>2)+c[u]);if(u++,i===void 0){let w=new Yd;if(w.setIndex(new Xd(S,1)),w.setAttribute("position",new Kd(f,3)),w.setAttribute("normal",new Kd(m,3)),r){w.setAttribute("faceMap",new Xd(g,1));let b=new Float32Array(m.length/3*4).fill(0);w.setAttribute("color",new a0(b,4))}return fe.free_mesh_data(s),w.userData.type="SubdivGeometry",w}i.getAttribute("position").copyArray(f),i.getAttribute("normal").copyArray(m),i.attributes.position.needsUpdate=!0,i.attributes.normal.needsUpdate=!0,fe.free_mesh_data(s)}static freeSubdivPointer(e){fe.free_bvh(e),fe.free_subdivision_surface(e)}static buildControlCageWireframe(e,r,o){let i=fe.get_wireframe_data_for_base_level(e),a=4,s=fe.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(2,2+2),d=0,c=fe.HEAPU32[s[d]>>2],u=fe.HEAPF32.subarray(c>>2,(c>>2)+l[d]);d++;let p=fe.HEAPU32[s[d]>>2],f=fe.HEAPU32.subarray(p>>2,(p>>2)+l[d]);if(r===void 0){let h=new Yd;h.setAttribute("position",new Kd(u,3));let m=new Float32Array(u.length);for(let y=0,g=u.length;y<g;)m[y++]=o.r,m[y++]=o.g,m[y++]=o.b;return h.setAttribute("color",new a0(m,3)),h.setIndex(new Xd(f,1)),fe.free_wireframe_data_for_base_level(i),h}r.getAttribute("position").copyArray(u),r.attributes.position.needsUpdate=!0,fe.free_wireframe_data_for_base_level(i)}static updateCollabMesh(e,r,o){let i=r===0;i||fe.set_destination_refinement_level(e,r);let a=o?fe.get_topological_data2(e,i?fe.Level.CONTROL:fe.Level.REFINED,o.elements):fe.get_topological_data(e,i?fe.Level.CONTROL:fe.Level.REFINED),s=6,l=fe.HEAPU32.subarray(a>>2,(a>>2)+s),d=l.subarray(3,3+3),c=0,u=fe.HEAPU32[l[c]>>2],p=new Float32Array(fe.HEAPF32.subarray(u>>2,(u>>2)+d[c]));c++;let f=fe.HEAPU32[l[c]>>2],h=new Uint32Array(fe.HEAPU32.subarray(f>>2,(f>>2)+d[c]));c++;let m=fe.HEAPU32[l[c]>>2],y=new Uint8Array(fe.HEAPU32.subarray(m>>2,(m>>2)+d[c]));return fe.free_topological_data(a),{positions:p,indices:h,verticesPerFace:y}}};var u0=["getX","getY","getZ"];function ep(n,t){let e={},r=t?t.count:n.count,o=0,i=[],a=[],s=1e4;for(let d=0;d<r;d++){let c=t?t.getX(d):d,u="";for(let p=0;p<3;p++)u+=`${~~(n[u0[p]](c)*s)},`;if(u in e)i.push(e[u]);else{for(let p=0;p<3;p++)a.push(n[u0[p]](c));e[u]=o,i.push(o),o++}}let l=[];for(let d=0;d<i.length;d+=3)i[d]===i[d+1]||i[d]===i[d+2]||i[d+1]===i[d+2]||l.push(i[d],i[d+1],i[d+2]);return{positions:a,triIndices:l}}var Mc=new ws,Qd=new ws,Zd=new ws,Jd=new ws;function tp(n,t,e,r){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let l=e.userData.shape.extractShapePointsToFlatArray([]),d=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&d<=24&&d%4===0&&e.userData.parameters.angle>=360){let p=l.length/2/d;l=l.filter((f,h)=>Math.floor(h/2)%p===0)}let c=0;for(let p=0;p<l.length;p+=2)c+=(l[p]-l[(p===0?l.length:p)-2])*(l[p+1]+l[(p===0?l.length:p)-1]);n.length=0;let u=0;if(c<0)for(let p=0;p<l.length;p+=2)n.push(l[p],l[p+1],0),o.push(u++);else for(let p=l.length-2;p>=0;p-=2)n.push(l[p],l[p+1],0),o.push(u++);return i.push(u),{indices:o,verticesPerFace:i}}let a=new Float32Array([e.userData.parameters.depth])[0],s=0;for(;s<t.length;){if(e.useNgonForTopBottomFaceDuringBake){let l=0;if((n[t[s]*3+2]===a||n[t[s]*3+2]===0)&&l++,(n[t[s+1]*3+2]===a||n[t[s+1]*3+2]===0)&&l++,(n[t[s+2]*3+2]===a||n[t[s+2]*3+2]===0)&&l++,l===3)break}if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){Mc.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Qd.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Zd.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Jd.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Qd.sub(Mc).normalize(),Zd.sub(Mc).normalize(),Jd.sub(Mc).normalize();let l=Qd.cross(Zd).dot(Jd);Math.abs(l)>.005||r&&r.some((d,c)=>c%2===1?!1:s>=r[c]&&s<r[c+1])?(o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),i.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3}if(e.useNgonForTopBottomFaceDuringBake){let l=[],d=[],c=0;for(let u=0,p=0;u<n.length;u+=3,p++)n[u+2]===0&&(l.push(p),c++),n[u+2]===a&&d.push(p);if(e.userData.parameters.extrudeBevelSize===0){let u=d[0];d[0]=d[1],d[1]=u}l.reverse(),o.push(...l,...d),i.push(c,c)}return{indices:o,verticesPerFace:i}}var dr={};Qv(dr,{calcBoolean:()=>w2,calcBooleanTopological:()=>S2,freeMeshSet:()=>C2,getMeshSet:()=>_2,hasOpenEdges:()=>A2,transformMeshSet:()=>T2});var x2,d0=new Promise(n=>{x2=n});import{Float32BufferAttribute as p0,Sphere as v2}from"three";var we,na;d0.then(n=>we=n);function b2(n,t,e){let r,o;n.userData.parameters.type==="TorusGeometry"&&n.userData.parameters.arc===Math.PI*2?o=n.getClosedTorusIndicesForBooleanOrSubdiv():o=n.getIndex();let{positions:i,triIndices:a}=ep(n.getAttribute("position"),o),s;if(t&&e){let{indices:l,verticesPerFace:d}=tp(i,a,n);s=d.length,r=[];for(let c=0,u=0;c<s;c++){r.push(d[c]);for(let p=0;p<d[c];p++)r.push(l[u++])}}else{let l=a.length;r=Array(l+l/3),s=0;for(let d=0,c=0;c<r.length;)r[c++]=3,s++,r[c++]=a[d++],r[c++]=a[d++],r[c++]=a[d++]}return{positions:i,faceIndices:r,nFaces:s}}function f0(n){let t=n.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:r,i=we._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(we.HEAPU32.buffer,i,t):new Float32Array(we.HEAPF32.buffer,i,t)).set(n,0),i}function h0(n){switch(n){case 0:return we.OP.UNION;case 1:return we.OP.INTERSECTION;case 2:return we.OP.A_MINUS_B;case 3:return we.OP.B_MINUS_A;case 4:return we.OP.SYMMETRIC_DIFFERENCE;case 5:return we.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function S2(n,t){na===void 0&&(na=we.init_csg());let e=f0(n),r=we.csg_calc_topological(na,e,n.length,h0(t));we._free(e);let o=6,i=we.HEAPU32.subarray(r>>2,(r>>2)+o),a=i.subarray(3,3+3),s=0,l=we.HEAPU32[i[s]>>2],d=new Float32Array(we.HEAPF32.subarray(l>>2,(l>>2)+a[s]));s++;let c=we.HEAPU32[i[s]>>2],u=new Uint32Array(we.HEAPU32.subarray(c>>2,(c>>2)+a[s]));s++;let p=we.HEAPU32[i[s]>>2],f=new Uint8Array(we.HEAPU32.subarray(p>>2,(p>>2)+a[s]));return we.free_mesh_data(r),{positions:d,indices:u,verticesPerFace:f}}function w2(n,t,e,r){na===void 0&&(na=we.init_csg());let o=f0(n),i=we.csg_calc(na,o,n.length,r,h0(t));we._free(o);let a=5,s=we.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(2,2+3),d=0,c=we.HEAPU32[s[d]>>2],u=we.HEAPF32.subarray(c>>2,(c>>2)+l[d]);d++;let p=we.HEAPU32[s[d]>>2],f=we.HEAPF32.subarray(p>>2,(p>>2)+l[d]);d++;let h=l[d];e.setAttribute("position",new p0(u,3)),e.setAttribute("normal",new p0(f,3));let m=we.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new v2),e.boundingSphere.radius=-1,e.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},we.free_mesh_data(i),h}function _2(n,t,e){if(we===void 0)return-1;let r,o,i;if(t&&n.userData.positions!==void 0){let g=n.userData;i=g.verticesPerFace.length,r=g.positions,o=Array(g.verticesPerFace.reduce((x,S)=>x+S,0)+i);for(let x=0,S=0,w=0;x<g.verticesPerFace.length;x++){o[w++]=g.verticesPerFace[x];for(let b=0;b<g.verticesPerFace[x];b++)o[w++]=g.indices[S++]}}else({positions:r,faceIndices:o,nFaces:i}=b2(n,t,e));let a=r.length,s=o.length,l=r.length,d=o.length,c=l*Float32Array.BYTES_PER_ELEMENT+d*Uint32Array.BYTES_PER_ELEMENT,u=l*Float32Array.BYTES_PER_ELEMENT,p=d*Uint32Array.BYTES_PER_ELEMENT,f=we._malloc(c),h=new Float32Array(we.HEAPF32.buffer,f,l),m=new Uint32Array(we.HEAPU32.buffer,f+u,d);h.set(r,0),m.set(o,0);let y=we.get_csg_mesh(f,a,f+u,s,i);return we._free(f),y}function A2(n){return we.has_open_edges(n)}function T2(n,t){we.transform_csg_mesh(n,t.elements)}function C2(n){we.free_csg_mesh(n)}var P2={ConeGeometry:$y,CubeGeometry:Yy,CylinderGeometry:Wy,DodecahedronGeometry:Xy,EllipseGeometry:Ki,HelixGeometry:Mg,IcosahedronGeometry:Ig,LatheGeometry:Ng,NonParametricGeometry:Fg,PolygonGeometry:_c,PyramidGeometry:jg,RectangleGeometry:Ac,SphereGeometry:Hg,PlaneGeometry:qg,BackdropGeometry:Wg,StarGeometry:Tc,TextFrameGeometry:$g,TorusGeometry:Yg,TorusKnotGeometry:Xg,TriangleGeometry:Kg,PathGeometry:e0,VectorGeometry:Xt},$d=n=>P2[n.type].create(n);function ia(n){return n!==null&&"booleanOp"in n}var aa=class extends ji(M2){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new O2}updateVisible(e){super.updateVisible(e),this.visible=!ia(this.parent)&&this.visible,ia(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(dr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),ia(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)e instanceof aa&&(e.freeBooleanPointer(),ia(e)&&e.invalidateUpstreamBooleanData())}updateTransformState(e,r){let o=super.updateTransformState(e,r);return o&&ia(this.parent)&&this.invalidateDownstreamBooleanData(!0),o}onVariableUpdate(e=!1){super.onVariableUpdate(e),ia(this.parent)&&this.invalidateDownstreamBooleanData(!0)}};var Ic=new I2;function _s(n,t=0,e=n.count,r,o){let i=1/0,a=1/0,s=1/0,l=-1/0,d=-1/0,c=-1/0;for(let u=t;u<e;u++){let p=n.getX(u),f=n.getY(u),h=n.getZ(u);p<i&&(i=p),f<a&&(a=f),h<s&&(s=h),p>l&&(l=p),f>d&&(d=f),h>c&&(c=h)}Ic.min.set(i,a,s),Ic.max.set(l,d,c),Ic.getCenter(r),Ic.getSize(o).multiplyScalar(.5)}var L2=new N2,D2=new E2,It=class extends aa{constructor(t,e){super(L2,D2),this.super_Entity(t,e)}updateState(t,e){this.updateState_Entity(t,e)}updateEntityBoxSize(t,e){let r=this.geometry.getAttribute("position");r!==void 0?_s(r,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:r.count,t,e):super.updateEntityBoxSize(t,e)}};import{Box3 as WO,Matrix4 as $O,Sphere as Z0,Vector3 as YO}from"three";import{BufferAttribute as UO,Float32BufferAttribute as Q0,MathUtils as Op,Vector3 as Mp}from"three";import{ShaderMaterial as OO}from"three";import{CubeReflectionMapping as W2,CubeRefractionMapping as $2,CubeUVReflectionMapping as Y2,LinearEncoding as w0,sRGBEncoding as X2}from"three";var As=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};import{MathUtils as B2}from"three";var wt=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=B2.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,a){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof wt&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}};var rp=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},ft=new rp;import{Vector2 as m0}from"three";import{MathUtils as R2}from"three";var ae=class extends wt{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let a=this.getUnique(e,r);a&&this.uuid===void 0&&(this.uuid=R2.generateUUID()),o=e.getUUID(o??this.getUUID(),!a);let s=e.getNodeData(o),l=s.output||this.getType(e);if(e.analyzing)return(s.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,s,r),this.generate(e,r,o)):super.build(e,r,o);if(a)return s.name=s.name||super.build(e,r,o),s.name;if(!this.getLabel()&&(!this.getShared(e,l)||e.context.ignoreCache||s.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let d=this.getTemp(e,o);if(d)return e.format(d,l,r);{d=super.generate(e,r,o,s.output,i);let c=this.generate(e,l,o);return e.addNodeCode(d+" = "+c+";"),e.format(d,l,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,a){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),a,this.getLabel()).name}};var Re=class extends ae{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,r)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,r))}};var Ke=class extends Re{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof m0?e:new m0(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,a,s){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};import{Vector3 as y0}from"three";var Nt=class extends Re{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof y0?e:new y0(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,a,s){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};import{Color as V2}from"three";var ht=class extends V2{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}setStyle(e,r="srgb"){let o;if(e==="transparent")return this.setRGBA(0,0,0,0),this;if(o=/^((?:rgb|hsl)a?)\(([^)]*)\)/.exec(e)){let i,a=o[1],s=o[2];switch(a){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="rgba"?parseFloat(i[4]):1,super.setStyle(e,r);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)%\s*,\s*(\d*\.?\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="hsla"?parseFloat(i[4]):1,super.setStyle(e,r);break}}return super.setStyle(e,r)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Kt=class extends Re{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ht?e:new ht(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,a,s){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var G2=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,g0=/[a-z_0-9]+/gi,K=class extends ae{constructor(e,r,o,i,a){super(a);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=a===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,a){let s,l=0,d=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)e.include(this.includes[u],this);for(let u in this.extensions)e.extensions[u]=!0;let c=[];for(;s=g0.exec(this.src);)c.push(s);for(let u=0;u<c.length;u++){let p=c[u],f=p[0],h=this.isMethod?!this.getInputByName(f):!0,m=f;if(this.keywords[f]||this.useKeywords&&h&&ft.containsKeyword(f)){let y=this.keywords[f];if(!y){let g=ft.getKeywordData(f);g.cache&&(y=e.keywords[f]),y=y||ft.getKeyword(f,e),g.cache&&(e.keywords[f]=y)}m=y.build(e)}f!==m&&d[p.index+l-1]!=="."&&(d=d.substring(0,p.index+l)+m+d.substring(p.index+f.length+l),l+=m.length-f.length),this.getIncludeByName(m)===void 0&&ft.contains(m)&&e.include(ft.get(m))}return r==="source"?d:this.isMethod?(this.isInterface||e.include(this,void 0,d),this.name):e.format("( "+d+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let a=G2.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let s=a[3].match(g0);if(s){let l=0;for(;l<s.length;){let d=s[l++],c;d==="in"||d==="out"||d==="inout"?c=s[l++]:(c=d,d="");let u=s[l++];this.inputs.push({name:u,type:c,qualifier:d})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var z2=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,op=class extends ae{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||op.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,a){this.src=e||"";let s,l,d="",c=z2.exec(e);this.useDefine=a??this.src.charAt(0)==="#",c&&c.length>1?(l=c[1],s=c[2],d=c[3]):(s=this.src,l="f"),this.name=s,this.type=l,this.value=d}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,a){return e.format(this.name,this.getType(e),r)}},Ie=op;Ie.PI="PI",Ie.PI2="PI2",Ie.RECIPROCAL_PI="RECIPROCAL_PI",Ie.RECIPROCAL_PI2="RECIPROCAL_PI2",Ie.LOG2="LOG2",Ie.EPSILON="EPSILON";var k2=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
18
- )*?)}`,"gim"),F2=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),sa=class extends ae{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,o,i,a){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=k2.exec(e);if(r){let o=r[2],i;for(;i=F2.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var la=class extends ae{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,r){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),r)}};ft.addKeyword("uv",function(){return new la});ft.addKeyword("uv2",function(){return new la(1)});import{LinearEncoding as j2,sRGBEncoding as U2}from"three";var En=class extends ae{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??En.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case j2:return["Linear"];case U2:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),a=En.Nodes[this.method],s=e.include(a);if(s===En.LINEAR_TO_LINEAR)return e.format(o,i,r);if(a.inputs?.length===2){let l=this.factor.build(e,"f");return e.format(s+"( "+o+", "+l+" )",i,r)}else return e.format(s+"( "+o+" )",i,r)}fromEncoding(e){let r=En.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=En.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},kt=En;kt.Nodes={LinearToLinear:new K(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
17
+ `&&r.push("")):t.getTextWidth(r[r.length-1]+o,n)>n.width&&(r[r.length-1].length&&r.push(""),t.getTextWidth(r[r.length-1]+o,n)>n.width&&(o.length===1?(r[r.length-1]+=o,o=""):(r[r.length-1]+=o.slice(0,-1),o=o[o.length-1],r.push(""))));return r[r.length-1]+=o,r}import{BufferGeometry as Yd,BufferAttribute as a0,Uint32BufferAttribute as Xd,Float32BufferAttribute as Kd,Matrix4 as m2,Vector3 as Ss,Sphere as y2,Box3 as g2,BoxGeometry as x2}from"three";var n0,ra=new Promise(n=>{n0=n}),o0=!1;var Pc;function i0(){if(o0)return;if(Pc)return Pc;async function n(){let e=!1?".":"https://unpkg.com/@splinetool/modelling-wasm@0.9.522/build",o=import("./process.js"),[i,a]=await Promise.all([o,fetch(`${e}/process.wasm`).then(d=>d.arrayBuffer())]),s=i.default,l=await s({wasmBinary:a});n0(l),o0=!0}return Pc=n(),Pc}import{BufferGeometryLoader as d2}from"three";var p2=["font"];function Nn(n,t,e,r){let o,i,a;n.type==="PathGeometry"?(i=JSON.parse(JSON.stringify(n)),a=[[],["extrusion"]]):(i={...n},a=[[]]);for(let d of a){let c=i;for(let u of d)c=c[u];for(o in c){let u=c[o];ku(u)&&!p2.includes(o)&&(c[o]=t.getVariable(u,[r.uuid,"geometry",...d,o]),ku(c[o])&&(c[o]=1))}}let s={parameters:i,type:i.type};if(i.type==="PathGeometry")s.path=i.path;else if(i.type==="VectorGeometry"){let d=Ne.createFromState(i.shape,i.width,i.height);s.shape=d}else if(i.type==="NonParametricGeometry")i.data.groups&&i.data.groups?.forEach(d=>d.materialIndex=Math.max(d.materialIndex??0,0)),s.geometry=new d2().parse(i);else if(i.type==="SubdivGeometry"){let d=new at(i,e);return d.data=n,d}else if(i.type==="TextGeometry")return new ta(i,t);let l;try{l=$d(s)}catch(d){console.error(d)}if(!l){let d=Ne.createFromState(Oi.defaultData(),100,100);s.shape=d,l=$d(s)}return l}import{Matrix4 as f2}from"three";var h2=new f2;function bs(n,t,e,r){let o=n.position.array,i=n.normal.array,a=h2.makeScale(t,e,r).invert().elements,s,l,d;for(var c=0,u=o.length;c<u;c+=3)o[c]*=t,o[c+1]*=e,o[c+2]*=r,s=i[c],l=i[c+1],d=i[c+2],i[c]=a[0]*s+a[4]*l+a[8]*d,i[c+1]=a[1]*s+a[5]*l+a[9]*d,i[c+2]=a[2]*s+a[6]*l+a[10]*d;n.position.needsUpdate=!0,n.normal.needsUpdate=!0}var Oc=new g2,oa=new Ss,fe;ra.then(n=>{fe=n});var s0=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),l0=new Uint32Array([0,1,2,3]),c0=new Uint8Array([4]),at=class extends Yd{constructor(e,r){super();this.data=e;this.flatShading=r;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(e,r){this.freeSubdivPointer();let o=this.data.scaleBaked,i=Fo.div(r,o);this.subdividedGeometry&&bs(this.subdividedGeometry.attributes,...i),this.originalGeometry&&bs(this.originalGeometry.attributes,...i),this.data=e;let a=this.userData.parameters;this.userData.parameters={width:a.width*i[0],height:a.height*i[1],depth:a.depth*i[2]},this.originalGeometry.boundingSphere.center.multiply(oa.fromArray(i));let s=oa.set(a.width,a.height,a.depth).length();this.originalGeometry.boundingSphere.radius=s/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let e,r,o;try{({originalGeometry:e,subdividedGeometry:r,subdivPointer:o}=at.build(this.data,void 0,!this.flatShading,void 0))}catch{e=new x2(100,100,100),o=0}this.subdivPointer=o,this.originalGeometry=e,this.subdividedGeometry=r??void 0;let i=this.subdividedGeometry??this.originalGeometry;Object.assign(this,i),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(at.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new y2,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let r=e.attributes.position,o=e.boundingSphere.center;Oc.setFromBufferAttribute(r),Oc.getCenter(o),e.boundingSphere.radius=o.distanceTo(Oc.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Oc.getSize(oa);let i={width:oa.x,height:oa.y,depth:oa.z};return this.userData.parameters=i,i}static build(e,r,o,i){let a,s,l,d=e?.phongAngle??35;o===!1&&(d=-1),r&&(fe.free_bvh(r),fe.free_subdivision_surface(r));try{a=at.allocate(e,i)}catch(c){console.error(c,e),a=at.allocate({positionWASM:s0,indexWASM:l0,verticesPerFaceWASM:c0},i)}if(fe.set_destination_refinement_level(a,0),s=at.buildLevel(a,!0,d),e.subdivisions>0)try{fe.set_destination_refinement_level(a,e.subdivisions),l=at.buildLevel(a,!1,d)}catch{try{fe.set_destination_refinement_level(a,e.subdivisions-1),l=at.buildLevel(a,!1,d)}catch{l=null}}else l=null;return{subdivPointer:a,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(e,r,o){e.widthSegments>16&&(e.widthSegments=16),e.heightSegments>16&&(e.heightSegments=16),e.depthSegments>16&&(e.depthSegments=16),e.radialSegments>16&&(e.radialSegments=16),e.type==="DodecahedronGeometry"&&(e.detail=0);let i=e.shape!==void 0||e.path!==void 0?r.geometry:Nn(e,o,!1),a;e.type==="TorusGeometry"&&e.arc===Math.PI*2?a=i.getClosedTorusIndicesForBooleanOrSubdiv():a=i.getIndex();let s,l,d,c;({positions:s,triIndices:c}=ep(i.getAttribute("position"),a));let u;if(e.type==="CylinderGeometry"&&e.cornerRadius===0&&e.hollow===0&&e.openEnded===!1){let p=e.radialSegments*e.heightSegments*3*2,f=p+e.radialSegments*3;u=[p,f]}return{indices:l,verticesPerFace:d}=tp(s,c,i,u),{positions:s,indices:l,verticesPerFace:d}}static allocate(e,r){let o,i,a,s=[],l=[];e.positionWASM&&e.positionWASM.length>0?(o=e.positionWASM,i=e.indexWASM,a=e.verticesPerFaceWASM):(o=s0,i=l0,a=c0);let d=o.length,c=i.length,u=a.length,p=o.length+s.length+l.length,f=i.length+a.length,h=p*Float32Array.BYTES_PER_ELEMENT+f*Uint32Array.BYTES_PER_ELEMENT,m=p*Float32Array.BYTES_PER_ELEMENT,y=f*Uint32Array.BYTES_PER_ELEMENT,g=fe._malloc(h),x=new Float32Array(fe.HEAPF32.buffer,g,p),S=new Uint32Array(fe.HEAPU32.buffer,g+m,f);x.set(o,0),x.set(s,o.length),x.set(l,o.length+s.length),S.set(i,0),S.set(a,i.length);let w;e?.scaleBaked?.some(_=>_!==1)&&(w=new m2().makeScale(...e.scaleBaked)),r&&(w?w.premultiply(r):w=r);let b=w?fe.alloc_subdivision_surface2(g,d,g+m,c,g+m+i.length*Uint32Array.BYTES_PER_ELEMENT,u,w.elements):fe.alloc_subdivision_surface(g,d,g+m,c,g+m+i.length*Uint32Array.BYTES_PER_ELEMENT,u);return fe._free(g),b}static buildLevel(e,r,o,i,a){let s=a?fe.get_mesh_data2(e,r?fe.Level.CONTROL:fe.Level.REFINED,o,a.elements):fe.get_mesh_data(e,r?fe.Level.CONTROL:fe.Level.REFINED,o),l=8,d=fe.HEAPU32.subarray(s>>2,(s>>2)+l),c=d.subarray(4,4+4),u=0,p=fe.HEAPU32[d[u]>>2],f=fe.HEAPF32.subarray(p>>2,(p>>2)+c[u]);u++;let h=fe.HEAPU32[d[u]>>2],m=fe.HEAPF32.subarray(h>>2,(h>>2)+c[u]);u++;let y=fe.HEAPU32[d[u]>>2],g=fe.HEAPU32.subarray(y>>2,(y>>2)+c[u]);u++;let x=fe.HEAPU32[d[u]>>2],S=fe.HEAPU32.subarray(x>>2,(x>>2)+c[u]);if(u++,i===void 0){let w=new Yd;if(w.setIndex(new Xd(S,1)),w.setAttribute("position",new Kd(f,3)),w.setAttribute("normal",new Kd(m,3)),r){w.setAttribute("faceMap",new Xd(g,1));let b=new Float32Array(m.length/3*4).fill(0);w.setAttribute("color",new a0(b,4))}return fe.free_mesh_data(s),w.userData.type="SubdivGeometry",w}i.getAttribute("position").copyArray(f),i.getAttribute("normal").copyArray(m),i.attributes.position.needsUpdate=!0,i.attributes.normal.needsUpdate=!0,fe.free_mesh_data(s)}static freeSubdivPointer(e){fe.free_bvh(e),fe.free_subdivision_surface(e)}static buildControlCageWireframe(e,r,o){let i=fe.get_wireframe_data_for_base_level(e),a=4,s=fe.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(2,2+2),d=0,c=fe.HEAPU32[s[d]>>2],u=fe.HEAPF32.subarray(c>>2,(c>>2)+l[d]);d++;let p=fe.HEAPU32[s[d]>>2],f=fe.HEAPU32.subarray(p>>2,(p>>2)+l[d]);if(r===void 0){let h=new Yd;h.setAttribute("position",new Kd(u,3));let m=new Float32Array(u.length);for(let y=0,g=u.length;y<g;)m[y++]=o.r,m[y++]=o.g,m[y++]=o.b;return h.setAttribute("color",new a0(m,3)),h.setIndex(new Xd(f,1)),fe.free_wireframe_data_for_base_level(i),h}r.getAttribute("position").copyArray(u),r.attributes.position.needsUpdate=!0,fe.free_wireframe_data_for_base_level(i)}static updateCollabMesh(e,r,o){let i=r===0;i||fe.set_destination_refinement_level(e,r);let a=o?fe.get_topological_data2(e,i?fe.Level.CONTROL:fe.Level.REFINED,o.elements):fe.get_topological_data(e,i?fe.Level.CONTROL:fe.Level.REFINED),s=6,l=fe.HEAPU32.subarray(a>>2,(a>>2)+s),d=l.subarray(3,3+3),c=0,u=fe.HEAPU32[l[c]>>2],p=new Float32Array(fe.HEAPF32.subarray(u>>2,(u>>2)+d[c]));c++;let f=fe.HEAPU32[l[c]>>2],h=new Uint32Array(fe.HEAPU32.subarray(f>>2,(f>>2)+d[c]));c++;let m=fe.HEAPU32[l[c]>>2],y=new Uint8Array(fe.HEAPU32.subarray(m>>2,(m>>2)+d[c]));return fe.free_topological_data(a),{positions:p,indices:h,verticesPerFace:y}}};var u0=["getX","getY","getZ"];function ep(n,t){let e={},r=t?t.count:n.count,o=0,i=[],a=[],s=1e4;for(let d=0;d<r;d++){let c=t?t.getX(d):d,u="";for(let p=0;p<3;p++)u+=`${~~(n[u0[p]](c)*s)},`;if(u in e)i.push(e[u]);else{for(let p=0;p<3;p++)a.push(n[u0[p]](c));e[u]=o,i.push(o),o++}}let l=[];for(let d=0;d<i.length;d+=3)i[d]===i[d+1]||i[d]===i[d+2]||i[d+1]===i[d+2]||l.push(i[d],i[d+1],i[d+2]);return{positions:a,triIndices:l}}var Mc=new Ss,Qd=new Ss,Zd=new Ss,Jd=new Ss;function tp(n,t,e,r){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let l=e.userData.shape.extractShapePointsToFlatArray([]),d=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&d<=24&&d%4===0&&e.userData.parameters.angle>=360){let p=l.length/2/d;l=l.filter((f,h)=>Math.floor(h/2)%p===0)}let c=0;for(let p=0;p<l.length;p+=2)c+=(l[p]-l[(p===0?l.length:p)-2])*(l[p+1]+l[(p===0?l.length:p)-1]);n.length=0;let u=0;if(c<0)for(let p=0;p<l.length;p+=2)n.push(l[p],l[p+1],0),o.push(u++);else for(let p=l.length-2;p>=0;p-=2)n.push(l[p],l[p+1],0),o.push(u++);return i.push(u),{indices:o,verticesPerFace:i}}let a=new Float32Array([e.userData.parameters.depth])[0],s=0;for(;s<t.length;){if(e.useNgonForTopBottomFaceDuringBake){let l=0;if((n[t[s]*3+2]===a||n[t[s]*3+2]===0)&&l++,(n[t[s+1]*3+2]===a||n[t[s+1]*3+2]===0)&&l++,(n[t[s+2]*3+2]===a||n[t[s+2]*3+2]===0)&&l++,l===3)break}if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){Mc.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Qd.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Zd.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Jd.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Qd.sub(Mc).normalize(),Zd.sub(Mc).normalize(),Jd.sub(Mc).normalize();let l=Qd.cross(Zd).dot(Jd);Math.abs(l)>.005||r&&r.some((d,c)=>c%2===1?!1:s>=r[c]&&s<r[c+1])?(o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),i.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3}if(e.useNgonForTopBottomFaceDuringBake){let l=[],d=[],c=0;for(let u=0,p=0;u<n.length;u+=3,p++)n[u+2]===0&&(l.push(p),c++),n[u+2]===a&&d.push(p);if(e.userData.parameters.extrudeBevelSize===0){let u=d[0];d[0]=d[1],d[1]=u}l.reverse(),o.push(...l,...d),i.push(c,c)}return{indices:o,verticesPerFace:i}}var pr={};Qv(pr,{calcBoolean:()=>_2,calcBooleanTopological:()=>w2,freeMeshSet:()=>P2,getMeshSet:()=>A2,hasOpenEdges:()=>T2,transformMeshSet:()=>C2});var v2,d0=new Promise(n=>{v2=n});import{Float32BufferAttribute as p0,Sphere as b2}from"three";var we,na;d0.then(n=>we=n);function S2(n,t,e){let r,o;n.userData.parameters.type==="TorusGeometry"&&n.userData.parameters.arc===Math.PI*2?o=n.getClosedTorusIndicesForBooleanOrSubdiv():o=n.getIndex();let{positions:i,triIndices:a}=ep(n.getAttribute("position"),o),s;if(t&&e){let{indices:l,verticesPerFace:d}=tp(i,a,n);s=d.length,r=[];for(let c=0,u=0;c<s;c++){r.push(d[c]);for(let p=0;p<d[c];p++)r.push(l[u++])}}else{let l=a.length;r=Array(l+l/3),s=0;for(let d=0,c=0;c<r.length;)r[c++]=3,s++,r[c++]=a[d++],r[c++]=a[d++],r[c++]=a[d++]}return{positions:i,faceIndices:r,nFaces:s}}function f0(n){let t=n.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:r,i=we._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(we.HEAPU32.buffer,i,t):new Float32Array(we.HEAPF32.buffer,i,t)).set(n,0),i}function h0(n){switch(n){case 0:return we.OP.UNION;case 1:return we.OP.INTERSECTION;case 2:return we.OP.A_MINUS_B;case 3:return we.OP.B_MINUS_A;case 4:return we.OP.SYMMETRIC_DIFFERENCE;case 5:return we.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function w2(n,t){na===void 0&&(na=we.init_csg());let e=f0(n),r=we.csg_calc_topological(na,e,n.length,h0(t));we._free(e);let o=6,i=we.HEAPU32.subarray(r>>2,(r>>2)+o),a=i.subarray(3,3+3),s=0,l=we.HEAPU32[i[s]>>2],d=new Float32Array(we.HEAPF32.subarray(l>>2,(l>>2)+a[s]));s++;let c=we.HEAPU32[i[s]>>2],u=new Uint32Array(we.HEAPU32.subarray(c>>2,(c>>2)+a[s]));s++;let p=we.HEAPU32[i[s]>>2],f=new Uint8Array(we.HEAPU32.subarray(p>>2,(p>>2)+a[s]));return we.free_mesh_data(r),{positions:d,indices:u,verticesPerFace:f}}function _2(n,t,e,r){na===void 0&&(na=we.init_csg());let o=f0(n),i=we.csg_calc(na,o,n.length,r,h0(t));we._free(o);let a=5,s=we.HEAPU32.subarray(i>>2,(i>>2)+a),l=s.subarray(2,2+3),d=0,c=we.HEAPU32[s[d]>>2],u=we.HEAPF32.subarray(c>>2,(c>>2)+l[d]);d++;let p=we.HEAPU32[s[d]>>2],f=we.HEAPF32.subarray(p>>2,(p>>2)+l[d]);d++;let h=l[d];e.setAttribute("position",new p0(u,3)),e.setAttribute("normal",new p0(f,3));let m=we.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new b2),e.boundingSphere.radius=-1,e.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},we.free_mesh_data(i),h}function A2(n,t,e){if(we===void 0)return-1;let r,o,i;if(t&&n.userData.positions!==void 0){let g=n.userData;i=g.verticesPerFace.length,r=g.positions,o=Array(g.verticesPerFace.reduce((x,S)=>x+S,0)+i);for(let x=0,S=0,w=0;x<g.verticesPerFace.length;x++){o[w++]=g.verticesPerFace[x];for(let b=0;b<g.verticesPerFace[x];b++)o[w++]=g.indices[S++]}}else({positions:r,faceIndices:o,nFaces:i}=S2(n,t,e));let a=r.length,s=o.length,l=r.length,d=o.length,c=l*Float32Array.BYTES_PER_ELEMENT+d*Uint32Array.BYTES_PER_ELEMENT,u=l*Float32Array.BYTES_PER_ELEMENT,p=d*Uint32Array.BYTES_PER_ELEMENT,f=we._malloc(c),h=new Float32Array(we.HEAPF32.buffer,f,l),m=new Uint32Array(we.HEAPU32.buffer,f+u,d);h.set(r,0),m.set(o,0);let y=we.get_csg_mesh(f,a,f+u,s,i);return we._free(f),y}function T2(n){return we.has_open_edges(n)}function C2(n,t){we.transform_csg_mesh(n,t.elements)}function P2(n){we.free_csg_mesh(n)}var O2={ConeGeometry:$y,CubeGeometry:Yy,CylinderGeometry:Wy,DodecahedronGeometry:Xy,EllipseGeometry:Ki,HelixGeometry:Mg,IcosahedronGeometry:Ig,LatheGeometry:Ng,NonParametricGeometry:Fg,PolygonGeometry:_c,PyramidGeometry:jg,RectangleGeometry:Ac,SphereGeometry:Hg,PlaneGeometry:qg,BackdropGeometry:Wg,StarGeometry:Tc,TextFrameGeometry:$g,TorusGeometry:Yg,TorusKnotGeometry:Xg,TriangleGeometry:Kg,PathGeometry:e0,VectorGeometry:Xt},$d=n=>O2[n.type].create(n);function ia(n){return n!==null&&"booleanOp"in n}var aa=class extends ji(I2){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new M2}updateVisible(e){super.updateVisible(e),this.visible=!ia(this.parent)&&this.visible,ia(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(pr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),ia(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)e instanceof aa&&(e.freeBooleanPointer(),ia(e)&&e.invalidateUpstreamBooleanData())}updateTransformState(e,r){let o=super.updateTransformState(e,r);return o&&ia(this.parent)&&this.invalidateDownstreamBooleanData(!0),o}onVariableUpdate(e=!1){super.onVariableUpdate(e),ia(this.parent)&&this.invalidateDownstreamBooleanData(!0)}};var Ic=new N2;function ws(n,t=0,e=n.count,r,o){let i=1/0,a=1/0,s=1/0,l=-1/0,d=-1/0,c=-1/0;for(let u=t;u<e;u++){let p=n.getX(u),f=n.getY(u),h=n.getZ(u);p<i&&(i=p),f<a&&(a=f),h<s&&(s=h),p>l&&(l=p),f>d&&(d=f),h>c&&(c=h)}Ic.min.set(i,a,s),Ic.max.set(l,d,c),Ic.getCenter(r),Ic.getSize(o).multiplyScalar(.5)}var L2=new E2,B2=new D2,It=class extends aa{constructor(t,e){super(L2,B2),this.super_Entity(t,e)}updateState(t,e){this.updateState_Entity(t,e)}updateEntityBoxSize(t,e){let r=this.geometry.getAttribute("position");r!==void 0?ws(r,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:r.count,t,e):super.updateEntityBoxSize(t,e)}};import{Box3 as $O,Matrix4 as YO,Sphere as Z0,Vector3 as XO}from"three";import{BufferAttribute as HO,Float32BufferAttribute as Q0,MathUtils as Op,Vector3 as Mp}from"three";import{ShaderMaterial as MO}from"three";import{CubeReflectionMapping as $2,CubeRefractionMapping as Y2,CubeUVReflectionMapping as X2,LinearEncoding as w0,sRGBEncoding as K2}from"three";var _s=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};import{MathUtils as R2}from"three";var wt=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=R2.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,a){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof wt&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}};var rp=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},ft=new rp;import{Vector2 as m0}from"three";import{MathUtils as V2}from"three";var ae=class extends wt{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let a=this.getUnique(e,r);a&&this.uuid===void 0&&(this.uuid=V2.generateUUID()),o=e.getUUID(o??this.getUUID(),!a);let s=e.getNodeData(o),l=s.output||this.getType(e);if(e.analyzing)return(s.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,s,r),this.generate(e,r,o)):super.build(e,r,o);if(a)return s.name=s.name||super.build(e,r,o),s.name;if(!this.getLabel()&&(!this.getShared(e,l)||e.context.ignoreCache||s.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let d=this.getTemp(e,o);if(d)return e.format(d,l,r);{d=super.generate(e,r,o,s.output,i);let c=this.generate(e,l,o);return e.addNodeCode(d+" = "+c+";"),e.format(d,l,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,a){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),a,this.getLabel()).name}};var Re=class extends ae{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,r)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,r))}};var Ke=class extends Re{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof m0?e:new m0(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,a,s){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};import{Vector3 as y0}from"three";var Nt=class extends Re{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof y0?e:new y0(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,a,s){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};import{Color as G2}from"three";var ht=class extends G2{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}setStyle(e,r="srgb"){let o;if(e==="transparent")return this.setRGBA(0,0,0,0),this;if(o=/^((?:rgb|hsl)a?)\(([^)]*)\)/.exec(e)){let i,a=o[1],s=o[2];switch(a){case"rgb":case"rgba":if(i=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="rgba"?parseFloat(i[4]):1,super.setStyle(e,r);break;case"hsl":case"hsla":if(i=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)%\s*,\s*(\d*\.?\d+)%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(s))return this.a=a==="hsla"?parseFloat(i[4]):1,super.setStyle(e,r);break}}return super.setStyle(e,r)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Kt=class extends Re{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ht?e:new ht(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,a,s){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var z2=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,g0=/[a-z_0-9]+/gi,K=class extends ae{constructor(e,r,o,i,a){super(a);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=a===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,a){let s,l=0,d=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)e.include(this.includes[u],this);for(let u in this.extensions)e.extensions[u]=!0;let c=[];for(;s=g0.exec(this.src);)c.push(s);for(let u=0;u<c.length;u++){let p=c[u],f=p[0],h=this.isMethod?!this.getInputByName(f):!0,m=f;if(this.keywords[f]||this.useKeywords&&h&&ft.containsKeyword(f)){let y=this.keywords[f];if(!y){let g=ft.getKeywordData(f);g.cache&&(y=e.keywords[f]),y=y||ft.getKeyword(f,e),g.cache&&(e.keywords[f]=y)}m=y.build(e)}f!==m&&d[p.index+l-1]!=="."&&(d=d.substring(0,p.index+l)+m+d.substring(p.index+f.length+l),l+=m.length-f.length),this.getIncludeByName(m)===void 0&&ft.contains(m)&&e.include(ft.get(m))}return r==="source"?d:this.isMethod?(this.isInterface||e.include(this,void 0,d),this.name):e.format("( "+d+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let a=z2.exec(this.src);if(this.inputs=[],a&&a.length==4){this.type=a[1],this.name=a[2];let s=a[3].match(g0);if(s){let l=0;for(;l<s.length;){let d=s[l++],c;d==="in"||d==="out"||d==="inout"?c=s[l++]:(c=d,d="");let u=s[l++];this.inputs.push({name:u,type:c,qualifier:d})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var k2=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,op=class extends ae{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||op.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,a){this.src=e||"";let s,l,d="",c=k2.exec(e);this.useDefine=a??this.src.charAt(0)==="#",c&&c.length>1?(l=c[1],s=c[2],d=c[3]):(s=this.src,l="f"),this.name=s,this.type=l,this.value=d}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,a){return e.format(this.name,this.getType(e),r)}},Ie=op;Ie.PI="PI",Ie.PI2="PI2",Ie.RECIPROCAL_PI="RECIPROCAL_PI",Ie.RECIPROCAL_PI2="RECIPROCAL_PI2",Ie.LOG2="LOG2",Ie.EPSILON="EPSILON";var F2=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
18
+ )*?)}`,"gim"),j2=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),sa=class extends ae{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,o,i,a){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=F2.exec(e);if(r){let o=r[2],i;for(;i=j2.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var la=class extends ae{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,r){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),r)}};ft.addKeyword("uv",function(){return new la});ft.addKeyword("uv2",function(){return new la(1)});import{LinearEncoding as U2,sRGBEncoding as H2}from"three";var En=class extends ae{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??En.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case U2:return["Linear"];case H2:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),a=En.Nodes[this.method],s=e.include(a);if(s===En.LINEAR_TO_LINEAR)return e.format(o,i,r);if(a.inputs?.length===2){let l=this.factor.build(e,"f");return e.format(s+"( "+o+", "+l+" )",i,r)}else return e.format(s+"( "+o+" )",i,r)}fromEncoding(e){let r=En.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=En.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},kt=En;kt.Nodes={LinearToLinear:new K(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
19
19
  `)),sRGBToLinear:new K(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
20
20
  `)),LinearTosRGB:new K(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
21
- `))},kt.LINEAR_TO_LINEAR="LinearToLinear",kt.SRGB_TO_LINEAR="sRGBToLinear",kt.LINEAR_TO_SRGB="LinearTosRGB";var Ee=class extends K{constructor(e="",r,o,i,a){super(e,a,i,o,r);this.nodeType="Expression"}};import{Texture as H2}from"three";var Ft=class extends Re{constructor(e=new H2,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new la,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,r){return super.generate(e,r,this.value.uuid,"t")}generate(e,r){if(r==="sampler2D")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv.build(e,this.project?"v4":"v2"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s,l;this.project?s="texture2DProj":s=a?"tex2DBias":"tex2D",a?l=s+"( "+o+", "+i+", "+a+" )":l=s+"( "+o+", "+i+" )";let d={include:e.isShader("vertex"),ignoreCache:!0},c=this.getType(e);return e.addContext(d),this.colorSpace=this.colorSpace??new kt(new Ee("",c)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,c),e.removeContext(),e.format(l,c,r)}};var J=class extends Re{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,i,a,s){return e.format(this.value+(this.value%1?"":".0"),i,r)}};var Ts=class extends ae{constructor(e,r){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=r??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,r,o,i,a){i=this.getType(e);let s=this.value,l=s.build(e,r)+"( ",d=[];if(s.inputs){for(let c=0;c<s.inputs.length;c++){let u=s.inputs[c],p=this.inputs[c]||this.inputs[u.name];d.push(p.build(e,e.getTypeByFormat(u.type)))}l+=d.join(", ")+" )"}return e.format(l,i,r)}};var np=class extends ae{constructor(e,r,o=np.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=r,this.op=o}getType(e){let r=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(r)?"v4":e.getTypeLength(o)>e.getTypeLength(r)?o:r}generate(e,r){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),a=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+a+" )",o,r)}},_t=np;_t.ADD="+",_t.SUB="-",_t.MUL="*",_t.DIV="/";var Ve=class extends ae{constructor(e,r=Ve.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:i=r,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Ve.MIX:case Ve.CLAMP:case Ve.REFRACT:case Ve.SMOOTHSTEP:case Ve.FACEFORWARD:return 3;case Ve.MIN:case Ve.MAX:case Ve.MOD:case Ve.STEP:case Ve.REFLECT:case Ve.DISTANCE:case Ve.DOT:case Ve.CROSS:case Ve.POW:return 2;default:return 1}}getInputType(e){let r=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Ve.LENGTH:case Ve.DISTANCE:case Ve.DOT:return"f";case Ve.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,i,a,s=this.a?e.getTypeLength(this.a.getType(e)):0,l=this.b?e.getTypeLength(this.b.getType(e)):0,d=this.c?e.getTypeLength(this.c.getType(e)):0,c=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Ve.NEGATE:return e.format("( -"+this.a.build(e,c)+" )",c,r);case Ve.INVERT:return e.format("( 1.0 - "+this.a.build(e,c)+" )",c,r);case Ve.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ve.STEP:o=this.a.build(e,s===1?"f":c),i=this.b.build(e,c);break;case Ve.MIN:case Ve.MAX:case Ve.MOD:o=this.a.build(e,c),i=this.b.build(e,l===1?"f":c);break;case Ve.REFRACT:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,"f");break;case Ve.MIX:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,d===1?"f":c);break;default:o=this.a.build(e,c),this.b&&(i=this.b.build(e,c)),this.c&&(a=this.c.build(e,c));break}let p=[];p.push(o),i&&p.push(i),a&&p.push(a);let f=this.getNumInputs(e);if(p.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${p.length}.`);return e.format(this.method+"( "+p.join(", ")+" )",u,r)}},xe=Ve;xe.RAD="radians",xe.DEG="degrees",xe.EXP="exp",xe.EXP2="exp2",xe.LOG="log",xe.LOG2="log2",xe.SQRT="sqrt",xe.INV_SQRT="inversesqrt",xe.FLOOR="floor",xe.CEIL="ceil",xe.NORMALIZE="normalize",xe.FRACT="fract",xe.SATURATE="saturate",xe.SIN="sin",xe.COS="cos",xe.TAN="tan",xe.ASIN="asin",xe.ACOS="acos",xe.ARCTAN="atan",xe.ABS="abs",xe.SIGN="sign",xe.LENGTH="length",xe.NEGATE="negate",xe.INVERT="invert",xe.MIN="min",xe.MAX="max",xe.MOD="mod",xe.STEP="step",xe.REFLECT="reflect",xe.DISTANCE="distance",xe.DOT="dot",xe.CROSS="cross",xe.POW="pow",xe.MIX="mix",xe.CLAMP="clamp",xe.REFRACT="refract",xe.SMOOTHSTEP="smoothstep",xe.FACEFORWARD="faceforward";var ca=class extends ae{constructor(e,r,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=o}bilinearCubeUV(e,r,o,i){let a=new Ts(ca.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new kt(new Ee("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(a.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new kt(new Ee("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(a.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new kt(new Ee("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(a.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new kt(new Ee("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(a.build(e)+".br");let s={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(s),this.colorSpaceTLExp=new Ee(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ee(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ee(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ee(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let l=new Ee("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return l.keywords.cubeUV_TL=this.colorSpaceTLExp,l.keywords.cubeUV_TR=this.colorSpaceTRExp,l.keywords.cubeUV_BL=this.colorSpaceBLExp,l.keywords.cubeUV_BR=this.colorSpaceBRExp,l.keywords.cubeUV=a,l}generate(e,r){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,a=new Ts(ca.Nodes.roughnessToMip,[i]),s=new xe(a,ca.Nodes.m0,ca.Nodes.cubeUV_maxMipLevel,xe.CLAMP),l=new xe(s,xe.FLOOR),d=new xe(s,xe.FRACT),c=this.bilinearCubeUV(e,this.value,o,l),u=this.bilinearCubeUV(e,this.value,o,new _t(l,new J(1).setReadonly(!0),_t.ADD)),p=new xe(c,u,d,xe.MIX);return e.format(p.build(e),"v4",r)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r)}},ua=ca;ua.Nodes=function(){let e=new sa(`struct TextureCubeUVData {
21
+ `))},kt.LINEAR_TO_LINEAR="LinearToLinear",kt.SRGB_TO_LINEAR="sRGBToLinear",kt.LINEAR_TO_SRGB="LinearTosRGB";var Ee=class extends K{constructor(e="",r,o,i,a){super(e,a,i,o,r);this.nodeType="Expression"}};import{Texture as q2}from"three";var Ft=class extends Re{constructor(e=new q2,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new la,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,r){return super.generate(e,r,this.value.uuid,"t")}generate(e,r){if(r==="sampler2D")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv.build(e,this.project?"v4":"v2"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s,l;this.project?s="texture2DProj":s=a?"tex2DBias":"tex2D",a?l=s+"( "+o+", "+i+", "+a+" )":l=s+"( "+o+", "+i+" )";let d={include:e.isShader("vertex"),ignoreCache:!0},c=this.getType(e);return e.addContext(d),this.colorSpace=this.colorSpace??new kt(new Ee("",c)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,c),e.removeContext(),e.format(l,c,r)}};var J=class extends Re{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,i,a,s){return e.format(this.value+(this.value%1?"":".0"),i,r)}};var As=class extends ae{constructor(e,r){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=r??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,r,o,i,a){i=this.getType(e);let s=this.value,l=s.build(e,r)+"( ",d=[];if(s.inputs){for(let c=0;c<s.inputs.length;c++){let u=s.inputs[c],p=this.inputs[c]||this.inputs[u.name];d.push(p.build(e,e.getTypeByFormat(u.type)))}l+=d.join(", ")+" )"}return e.format(l,i,r)}};var np=class extends ae{constructor(e,r,o=np.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=r,this.op=o}getType(e){let r=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(r)?"v4":e.getTypeLength(o)>e.getTypeLength(r)?o:r}generate(e,r){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),a=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+a+" )",o,r)}},_t=np;_t.ADD="+",_t.SUB="-",_t.MUL="*",_t.DIV="/";var Ve=class extends ae{constructor(e,r=Ve.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:i=r,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Ve.MIX:case Ve.CLAMP:case Ve.REFRACT:case Ve.SMOOTHSTEP:case Ve.FACEFORWARD:return 3;case Ve.MIN:case Ve.MAX:case Ve.MOD:case Ve.STEP:case Ve.REFLECT:case Ve.DISTANCE:case Ve.DOT:case Ve.CROSS:case Ve.POW:return 2;default:return 1}}getInputType(e){let r=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Ve.LENGTH:case Ve.DISTANCE:case Ve.DOT:return"f";case Ve.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,i,a,s=this.a?e.getTypeLength(this.a.getType(e)):0,l=this.b?e.getTypeLength(this.b.getType(e)):0,d=this.c?e.getTypeLength(this.c.getType(e)):0,c=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Ve.NEGATE:return e.format("( -"+this.a.build(e,c)+" )",c,r);case Ve.INVERT:return e.format("( 1.0 - "+this.a.build(e,c)+" )",c,r);case Ve.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ve.STEP:o=this.a.build(e,s===1?"f":c),i=this.b.build(e,c);break;case Ve.MIN:case Ve.MAX:case Ve.MOD:o=this.a.build(e,c),i=this.b.build(e,l===1?"f":c);break;case Ve.REFRACT:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,"f");break;case Ve.MIX:o=this.a.build(e,c),i=this.b.build(e,c),a=this.c.build(e,d===1?"f":c);break;default:o=this.a.build(e,c),this.b&&(i=this.b.build(e,c)),this.c&&(a=this.c.build(e,c));break}let p=[];p.push(o),i&&p.push(i),a&&p.push(a);let f=this.getNumInputs(e);if(p.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${p.length}.`);return e.format(this.method+"( "+p.join(", ")+" )",u,r)}},xe=Ve;xe.RAD="radians",xe.DEG="degrees",xe.EXP="exp",xe.EXP2="exp2",xe.LOG="log",xe.LOG2="log2",xe.SQRT="sqrt",xe.INV_SQRT="inversesqrt",xe.FLOOR="floor",xe.CEIL="ceil",xe.NORMALIZE="normalize",xe.FRACT="fract",xe.SATURATE="saturate",xe.SIN="sin",xe.COS="cos",xe.TAN="tan",xe.ASIN="asin",xe.ACOS="acos",xe.ARCTAN="atan",xe.ABS="abs",xe.SIGN="sign",xe.LENGTH="length",xe.NEGATE="negate",xe.INVERT="invert",xe.MIN="min",xe.MAX="max",xe.MOD="mod",xe.STEP="step",xe.REFLECT="reflect",xe.DISTANCE="distance",xe.DOT="dot",xe.CROSS="cross",xe.POW="pow",xe.MIX="mix",xe.CLAMP="clamp",xe.REFRACT="refract",xe.SMOOTHSTEP="smoothstep",xe.FACEFORWARD="faceforward";var ca=class extends ae{constructor(e,r,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=o}bilinearCubeUV(e,r,o,i){let a=new As(ca.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new kt(new Ee("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(a.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new kt(new Ee("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(a.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new kt(new Ee("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(a.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new kt(new Ee("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(a.build(e)+".br");let s={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(s),this.colorSpaceTLExp=new Ee(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ee(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ee(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ee(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let l=new Ee("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return l.keywords.cubeUV_TL=this.colorSpaceTLExp,l.keywords.cubeUV_TR=this.colorSpaceTRExp,l.keywords.cubeUV_BL=this.colorSpaceBLExp,l.keywords.cubeUV_BR=this.colorSpaceBRExp,l.keywords.cubeUV=a,l}generate(e,r){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,a=new As(ca.Nodes.roughnessToMip,[i]),s=new xe(a,ca.Nodes.m0,ca.Nodes.cubeUV_maxMipLevel,xe.CLAMP),l=new xe(s,xe.FLOOR),d=new xe(s,xe.FRACT),c=this.bilinearCubeUV(e,this.value,o,l),u=this.bilinearCubeUV(e,this.value,o,new _t(l,new J(1).setReadonly(!0),_t.ADD)),p=new xe(c,u,d,xe.MIX);return e.format(p.build(e),"v4",r)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r)}},ua=ca;ua.Nodes=function(){let e=new sa(`struct TextureCubeUVData {
22
22
  vec4 tl;
23
23
  vec4 tr;
24
24
  vec4 br;
@@ -97,7 +97,7 @@ var qv=Object.create;var Ws=Object.defineProperty;var Wv=Object.getOwnPropertyDe
97
97
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
98
98
  }
99
99
  return mip;
100
- }`,M);return{bilinearCubeUV:d,roughnessToMip:O,m0:p,cubeUV_maxMipLevel:r}}();var Ln=class extends ae{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Ln.VIEW}getShared(){return this.scope===Ln.WORLD}build(e,r,o,i){let a=e.context[this.scope+"Normal"];return a?a.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,a){let s;switch(this.scope){case Ln.VIEW:e.isShader("vertex")?s="transformedNormal":s="geometryNormal";break;case Ln.LOCAL:e.isShader("vertex")?s="objectNormal":(e.requires.normal=!0,s="vObjectNormal");break;case Ln.WORLD:e.isShader("vertex")?s="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,s="vWNormal");break}return e.format(s,this.getType(e),r)}},At=Ln;At.LOCAL="local",At.WORLD="world",At.VIEW="view",At.NORMAL="normal";ft.addKeyword("viewNormal",function(){return new At(At.VIEW)});ft.addKeyword("localNormal",function(){return new At(At.NORMAL)});ft.addKeyword("worldNormal",function(){return new At(At.WORLD)});var Kr=class extends ae{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Kr.LOCAL}getType(){switch(this.scope){case Kr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Kr.LOCAL:case Kr.WORLD:return!1}return!0}generate(e,r,o,i,a){let s;switch(this.scope){case Kr.LOCAL:e.isShader("vertex")?s="transformed":(e.requires.position=!0,s="vPosition");break;case Kr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,s="vWPosition";break;case Kr.VIEW:s=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Kr.PROJECTION:s=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(s,this.getType(),r)}},Qt=Kr;Qt.LOCAL="local",Qt.WORLD="world",Qt.VIEW="view",Qt.PROJECTION="projection";ft.addKeyword("position",function(){return new Qt});ft.addKeyword("worldPosition",function(){return new Qt(Qt.WORLD)});ft.addKeyword("viewPosition",function(){return new Qt(Qt.VIEW)});var Pr=class extends ae{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??Pr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case Pr.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case Pr.VECTOR:{let a=new At(At.VIEW),s=e.context.roughness,l=a.build(e,"v3"),d=new Qt(Qt.VIEW).build(e,"v3"),c=s?s.build(e,"f"):void 0,u=`reflect( -normalize( ${d} ), ${l} )`;c&&(u=`normalize( mix( ${u}, ${l}, ${c} * ${c} ) )`);let p=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${p};`),i="reflectVec"):i=p;break}case Pr.CUBE:{let a=new Pr(Pr.VECTOR).build(e,"v3"),s="vec3( -"+a+".x, "+a+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${s};`),i="reflectCubeVec"):i=s;break}case Pr.SPHERE:{let s="normalize( ( viewMatrix * vec4( "+new Pr(Pr.VECTOR).build(e,"v3")+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${s};`),i="reflectSphereVec"):i=s;break}}return e.format(i,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},Qr=Pr;Qr.CUBE="cube",Qr.SPHERE="sphere",Qr.VECTOR="vector";var Nc=class extends ae{constructor(e=new Ft,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new ua(this.value,r??new Qr(Qr.VECTOR),o),this.irradianceNode=new ua(this.value,new At(At.WORLD),new J(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};import{CubeTexture as q2}from"three";var Ec=class extends Re{constructor(e=new q2,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new Qr,this.bias=o}getTexture(e,r){return super.generate(e,r,this.value.uuid,"tc")}generate(e,r){if(r==="samplerCube")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv?.build(e,"v3"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s;a?s="texCubeBias( "+o+", "+i+", "+a+" )":s="texCube( "+o+", "+i+" )";let l={include:e.isShader("vertex"),ignoreCache:!0},d=this.getType(e);return e.addContext(l),this.colorSpace=this.colorSpace??new kt(new Ee("",d)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(s),s=this.colorSpace.build(e,d),e.removeContext(),e.format(s,d,r)}};var x0=`
100
+ }`,M);return{bilinearCubeUV:d,roughnessToMip:O,m0:p,cubeUV_maxMipLevel:r}}();var Dn=class extends ae{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Dn.VIEW}getShared(){return this.scope===Dn.WORLD}build(e,r,o,i){let a=e.context[this.scope+"Normal"];return a?a.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,a){let s;switch(this.scope){case Dn.VIEW:e.isShader("vertex")?s="transformedNormal":s="geometryNormal";break;case Dn.LOCAL:e.isShader("vertex")?s="objectNormal":(e.requires.normal=!0,s="vObjectNormal");break;case Dn.WORLD:e.isShader("vertex")?s="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,s="vWNormal");break}return e.format(s,this.getType(e),r)}},At=Dn;At.LOCAL="local",At.WORLD="world",At.VIEW="view",At.NORMAL="normal";ft.addKeyword("viewNormal",function(){return new At(At.VIEW)});ft.addKeyword("localNormal",function(){return new At(At.NORMAL)});ft.addKeyword("worldNormal",function(){return new At(At.WORLD)});var Kr=class extends ae{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Kr.LOCAL}getType(){switch(this.scope){case Kr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Kr.LOCAL:case Kr.WORLD:return!1}return!0}generate(e,r,o,i,a){let s;switch(this.scope){case Kr.LOCAL:e.isShader("vertex")?s="transformed":(e.requires.position=!0,s="vPosition");break;case Kr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,s="vWPosition";break;case Kr.VIEW:s=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Kr.PROJECTION:s=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(s,this.getType(),r)}},Qt=Kr;Qt.LOCAL="local",Qt.WORLD="world",Qt.VIEW="view",Qt.PROJECTION="projection";ft.addKeyword("position",function(){return new Qt});ft.addKeyword("worldPosition",function(){return new Qt(Qt.WORLD)});ft.addKeyword("viewPosition",function(){return new Qt(Qt.VIEW)});var Pr=class extends ae{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??Pr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case Pr.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case Pr.VECTOR:{let a=new At(At.VIEW),s=e.context.roughness,l=a.build(e,"v3"),d=new Qt(Qt.VIEW).build(e,"v3"),c=s?s.build(e,"f"):void 0,u=`reflect( -normalize( ${d} ), ${l} )`;c&&(u=`normalize( mix( ${u}, ${l}, ${c} * ${c} ) )`);let p=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${p};`),i="reflectVec"):i=p;break}case Pr.CUBE:{let a=new Pr(Pr.VECTOR).build(e,"v3"),s="vec3( -"+a+".x, "+a+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${s};`),i="reflectCubeVec"):i=s;break}case Pr.SPHERE:{let s="normalize( ( viewMatrix * vec4( "+new Pr(Pr.VECTOR).build(e,"v3")+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${s};`),i="reflectSphereVec"):i=s;break}}return e.format(i,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},Qr=Pr;Qr.CUBE="cube",Qr.SPHERE="sphere",Qr.VECTOR="vector";var Nc=class extends ae{constructor(e=new Ft,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new ua(this.value,r??new Qr(Qr.VECTOR),o),this.irradianceNode=new ua(this.value,new At(At.WORLD),new J(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};import{CubeTexture as W2}from"three";var Ec=class extends Re{constructor(e=new W2,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new Qr,this.bias=o}getTexture(e,r){return super.generate(e,r,this.value.uuid,"tc")}generate(e,r){if(r==="samplerCube")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv?.build(e,"v3"),a=this.bias?this.bias.build(e,"f"):void 0;a===void 0&&e.context.bias&&(a=e.context.bias.setTexture(this).build(e,"f"));let s;a?s="texCubeBias( "+o+", "+i+", "+a+" )":s="texCube( "+o+", "+i+" )";let l={include:e.isShader("vertex"),ignoreCache:!0},d=this.getType(e);return e.addContext(l),this.colorSpace=this.colorSpace??new kt(new Ee("",d)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(s),s=this.colorSpace.build(e,d),e.removeContext(),e.format(s,d,r)}};var x0=`
101
101
  uniform int frameIndex;
102
102
  uniform vec2 resolution;
103
103
  uniform mat4 previousModelViewMatrix;
@@ -199,7 +199,7 @@ vec2 velocity = (newPos - oldPos);
199
199
  if (gl_FragColor.a <= 0.0) discard;
200
200
 
201
201
  gVelocity = vec4(velocity, 0.0, 1.0);
202
- `;var _0=["x","y","z","w"],K2=["float","vec2","vec3","vec4"],Q2={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},Z2={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Lc=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.needsJitter=!0;this.getIncludesCode=function(){function t(e,r){return e.deps.length-r.deps.length}return function(r,o){let i=this.getIncludes(r,o);if(!i)return"";let a="";i=i.sort(t);for(let s=0;s<i.length;s++)i[s].src&&(a+=i[s].src+`
202
+ `;var _0=["x","y","z","w"],Q2=["float","vec2","vec3","vec4"],Z2={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},J2={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},Dc=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.needsJitter=!0;this.getIncludesCode=function(){function t(e,r){return e.deps.length-r.deps.length}return function(r,o){let i=this.getIncludes(r,o);if(!i)return"";let a="";i=i.sort(t);for(let s=0;s<i.length;s++)i[s].src&&(a+=i[s].src+`
203
203
  `);return a}}();this.slots=[],this.caches=[],this.contexts=[],this.keywords={},this.nodeData={},this.fragmentVariables={},this.fragmentParsVariables={},this.vertexParsVariables={},this.requires={uv:[],color:[],transparent:!1,irradiance:!1,position:!1,worldPosition:!1,normal:!1,worldNormal:!1,vWorldViewDir:!1,modelMatrix:!1,viewMatrix:!1,projectionMatrix:!1},this.includes={consts:[],functions:[],structs:[]},this.attributes={},this.prefixCode=["#ifdef TEXTURE_LOD_EXT"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)","#else"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCube(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2D(a, b, c)","#endif",`
204
204
  // NOTE: Include Spline's blending modes. This could be part of BlendNode
205
205
  #define SPE_BLENDING_NORMAL 0
@@ -244,7 +244,7 @@ gVelocity = vec4(velocity, 0.0, 1.0);
244
244
  `}addVaryCode(t){this.addVertexParsCode(t),this.addFragmentParsCode(t)}isCache(t){return this.caches.indexOf(t)!==-1}isSlot(t){return this.slots.indexOf(t)!==-1}define(t,e){this.defines[t]=e===void 0?1:e}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,e,r,o="varying",i="V",a=""){let s=this.getVars(o),l=s[t];if(!l){let d=s.length;l={name:r||"node"+i+d+(a?"_"+a:""),type:e},s.push(l),s[t]=l}return l}getTempVar(t,e,r,o){return this.getVar(t,e,r,this.shader,"T",o)}getAttribute(t,e){if(!this.attributes[t]){let r=this.getVar(t,e);this.addVertexParsCode("attribute "+e+" "+t+";"),this.addVertexFinalCode(r.name+" = "+t+";"),this.attributes[t]={varying:r,name:t,type:e}}return this.attributes[t]}getCode(t){return[this.prefixCode,this.parsCode[t],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[t],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[t],"uniform"),this.getIncludesCode("consts",t),this.getIncludesCode("structs",t),this.getIncludesCode("functions",t),"void main() {",this.getVarListCode(this.getVars(t)),this.code[t],this.resultCode[t],this.finalCode[t],"}"].join(`
245
245
  `)}getVarListCode(t,e){e=e??"";let r="";for(let o=0,i=t.length;o<i;++o){let a=t[o],s=a.type,l=a.name,d=a.size,c=this.getFormatByType(s);if(c===void 0)throw new Error("Node pars "+c+" not found.");c.includes("[]")?r+=e+" "+c.substring(0,c.length-2)+" "+l+`[${d}];
246
246
  `:r+=e+" "+c+" "+l+`;
247
- `}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof wt?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,a){if(e.includes("[]")){let s=this.inputs.arrayUniforms,l=s.list.length,d=new As({type:e,size:r.size,name:o||"nodeUA"+l+(a?"_"+a:""),node:r,needsUpdate:i});return s.list.push(d),s[t].push(d),s[t][d.name]=d,this.uniforms[d.name]=d,d}else{let s=this.inputs.uniforms,l=s.list.length,d=new As({type:e,name:o||"nodeU"+l+(a?"_"+a:""),node:r,needsUpdate:i});return s.list.push(d),s[t].push(d),s[t][d.name]=d,this.uniforms[d.name]=d,d}}createVertexUniform(t,e,r,o,i){return this.createUniform("vertex",t,e,r,o,i)}createFragmentUniform(t,e,r,o,i){return this.createUniform("fragment",t,e,r,o,i)}include(t,e,r){let o;if(t=typeof t=="string"?ft.get(t):t,this.context.include===!1)return t.name;t instanceof K?o=this.includes.functions:t instanceof Ie?o=this.includes.consts:t instanceof sa&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let a=i[t.name];if(a||(a=i[t.name]={node:t,deps:[]},i.push(a),a.src=t.build(this,"source")),t instanceof K&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let s=0;do this.include(t.includes[s++],e);while(s<t.includes.length)}return r&&(a.src=r),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return K2[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r?.isNode)return r}}resolve(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r!==void 0){if(r.isNode)return r;if(r.isTexture)switch(r.mapping){case W2:case $2:return new Ec(r);case Y2:return new Nc(new Ft(r));default:return new Ft(r)}else{if(r.isVector2)return new Ke(r);if(r.isVector3)return new Nt(r);if(r.isVector4)return new Kt(r)}}}}format(t,e,r){switch(this.colorToVector(r+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return Q2[t]||t}getFormatByType(t){return Z2[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return _0[t]}getIndexByElement(t){return _0.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=w0,e===w0&&this.context.gamma&&(e=X2),e}};import{Vector2 as Nr,Vector3 as eo,Vector4 as Pa}from"three";var De=class extends Re{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof ht?e:new ht(e||0,r,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o),d=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let c=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${c};`)}return d?this.generateReadonly(e,r,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,r)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,r))}generateReadonly(e,r,o,i,a,s){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,r)}};var _e=class extends Re{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,i,a,s){return e.format(this.value.toString(),i,r)}};import{UniformsLib as oO,UniformsUtils as nO}from"three";var et=class extends Re{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,i){return e.format(this.value?"true":"false",i,r)}};var Or=class extends Re{constructor(e=1,r){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(r)?r:typeof r=="number"?new Array(e).fill(r):new Array(e).fill(0)}};import{Vector3 as J2}from"three";var on=class extends Re{};var Dc=class extends on{constructor(e){super("v3");this.image=e;this._value=new J2}get value(){return this._value.x=this.image.isVideo?this.image.img.videoWidth??0:this.image.img.width,this._value.y=this.image.isVideo?this.image.img.videoHeight??0:this.image.img.height,this._value}};var Dn=class extends on{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};import{Matrix3 as eO}from"three";var da=class extends Re{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new eO}generateReadonly(e,r,o,i,a,s){return e.format("mat3("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};import{Matrix4 as tO}from"three";var Et=class extends Re{constructor(e){super("m4");this.nodeType="Matrix4";this.value=e??new tO}generateReadonly(e,r,o,i,a,s){return e.format("mat4("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};import{Matrix3 as rO}from"three";function A0(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Bc=class extends da{constructor(e,r){super(new rO);this.repeat=e;this.offset=r;A0(this.value,e,r)}updateMatrix(){A0(this.value,this.repeat,this.offset)}};import{Vector4 as T0}from"three";var Mr=class extends Re{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof T0?new Array(e).fill(r):new Array(e).fill(new T0(0))}};var pa=class extends ae{constructor(e,r,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=r,this.alpha=o,this.mode=i}generate(e,r){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),r)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}};var ip=class extends ae{constructor(e,r){super("v3");this.nodeType="CustomColor";this.color=e,this.alpha=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){let o=e.include(ip.Nodes.customColor);e.addFragmentVariable(this.calpha,"float");let i=[];return i.push(this.color.build(e,"v3")),i.push(this.mask?`luminance(${this.mask.build(e,"v3")})`:"1.0"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("CustomColorNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Bn=ip;Bn.Nodes=function(){return{customColor:new K(`vec3 customColor(vec3 color, float mask, float alpha, out float calpha) {
247
+ `}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof wt?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,a){if(e.includes("[]")){let s=this.inputs.arrayUniforms,l=s.list.length,d=new _s({type:e,size:r.size,name:o||"nodeUA"+l+(a?"_"+a:""),node:r,needsUpdate:i});return s.list.push(d),s[t].push(d),s[t][d.name]=d,this.uniforms[d.name]=d,d}else{let s=this.inputs.uniforms,l=s.list.length,d=new _s({type:e,name:o||"nodeU"+l+(a?"_"+a:""),node:r,needsUpdate:i});return s.list.push(d),s[t].push(d),s[t][d.name]=d,this.uniforms[d.name]=d,d}}createVertexUniform(t,e,r,o,i){return this.createUniform("vertex",t,e,r,o,i)}createFragmentUniform(t,e,r,o,i){return this.createUniform("fragment",t,e,r,o,i)}include(t,e,r){let o;if(t=typeof t=="string"?ft.get(t):t,this.context.include===!1)return t.name;t instanceof K?o=this.includes.functions:t instanceof Ie?o=this.includes.consts:t instanceof sa&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let a=i[t.name];if(a||(a=i[t.name]={node:t,deps:[]},i.push(a),a.src=t.build(this,"source")),t instanceof K&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let s=0;do this.include(t.includes[s++],e);while(s<t.includes.length)}return r&&(a.src=r),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return Q2[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r?.isNode)return r}}resolve(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r!==void 0){if(r.isNode)return r;if(r.isTexture)switch(r.mapping){case $2:case Y2:return new Ec(r);case X2:return new Nc(new Ft(r));default:return new Ft(r)}else{if(r.isVector2)return new Ke(r);if(r.isVector3)return new Nt(r);if(r.isVector4)return new Kt(r)}}}}format(t,e,r){switch(this.colorToVector(r+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return Z2[t]||t}getFormatByType(t){return J2[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return _0[t]}getIndexByElement(t){return _0.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=w0,e===w0&&this.context.gamma&&(e=K2),e}};import{Vector2 as Nr,Vector3 as eo,Vector4 as Pa}from"three";var Le=class extends Re{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof ht?e:new ht(e||0,r,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,i,a,s){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let l=e.getNodeData(o),d=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let c=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${c};`)}return d?this.generateReadonly(e,r,o,i,a,s):e.isShader("vertex")?(l.vertex||(l.vertex=e.createVertexUniform(i,this,a,s,this.getLabel())),e.format(l.vertex.name,i,r)):(l.fragment||(l.fragment=e.createFragmentUniform(i,this,a,s,this.getLabel())),e.format(l.fragment.name,i,r))}generateReadonly(e,r,o,i,a,s){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,r)}};var _e=class extends Re{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,i,a,s){return e.format(this.value.toString(),i,r)}};import{UniformsLib as nO,UniformsUtils as iO}from"three";var et=class extends Re{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,i){return e.format(this.value?"true":"false",i,r)}};var Or=class extends Re{constructor(e=1,r){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(r)?r:typeof r=="number"?new Array(e).fill(r):new Array(e).fill(0)}};import{Vector3 as eO}from"three";var on=class extends Re{};var Lc=class extends on{constructor(e){super("v3");this.image=e;this._value=new eO}get value(){return this._value.x=this.image.isVideo?this.image.img.videoWidth??0:this.image.img.width,this._value.y=this.image.isVideo?this.image.img.videoHeight??0:this.image.img.height,this._value}};var Ln=class extends on{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};import{Matrix3 as tO}from"three";var da=class extends Re{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new tO}generateReadonly(e,r,o,i,a,s){return e.format("mat3("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};import{Matrix4 as rO}from"three";var Et=class extends Re{constructor(e){super("m4");this.nodeType="Matrix4";this.value=e??new rO}generateReadonly(e,r,o,i,a,s){return e.format("mat4("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};import{Matrix3 as oO}from"three";function A0(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var Bc=class extends da{constructor(e,r){super(new oO);this.repeat=e;this.offset=r;A0(this.value,e,r)}updateMatrix(){A0(this.value,this.repeat,this.offset)}};import{Vector4 as T0}from"three";var Mr=class extends Re{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof T0?new Array(e).fill(r):new Array(e).fill(new T0(0))}};var pa=class extends ae{constructor(e,r,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=r,this.alpha=o,this.mode=i}generate(e,r){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),r)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}};var ip=class extends ae{constructor(e,r){super("v3");this.nodeType="CustomColor";this.color=e,this.alpha=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){let o=e.include(ip.Nodes.customColor);e.addFragmentVariable(this.calpha,"float");let i=[];return i.push(this.color.build(e,"v3")),i.push(this.mask?`luminance(${this.mask.build(e,"v3")})`:"1.0"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("CustomColorNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},Bn=ip;Bn.Nodes=function(){return{customColor:new K(`vec3 customColor(vec3 color, float mask, float alpha, out float calpha) {
248
248
  float lalpha = alpha * mask;
249
249
  calpha = lalpha / clamp(lalpha + accumAlpha, 0.00001, 1.0);
250
250
  accumAlpha += (1.0 - accumAlpha) * lalpha;
@@ -492,7 +492,7 @@ vec3 sphericalTexture(vec3 normal, sampler2D tex, vec2 textureSize, float crop,
492
492
  }`),i=new K(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
493
493
  float dist = length(position - origin);
494
494
  return ( dist - near ) / ( far - near );
495
- }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var Cs=class extends ae{constructor(e,r,o,i,a,s,l,d){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=o,this.intensity=i,this.factor=a,this.isMask=d,this.alpha=s,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=new K(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, bool isMask, float mask, float alpha, int mode, out float calpha) {
495
+ }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var Ts=class extends ae{constructor(e,r,o,i,a,s,l,d){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=o,this.intensity=i,this.factor=a,this.isMask=d,this.alpha=s,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=new K(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, bool isMask, float mask, float alpha, int mode, out float calpha) {
496
496
  float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
497
497
 
498
498
  float lalpha = clamp(fresnel, 0.0, 1.0) * alpha * mask;
@@ -554,7 +554,7 @@ vec3 sphericalTexture(vec3 normal, sampler2D tex, vec2 textureSize, float crop,
554
554
  accumAlpha += (1.0 - accumAlpha) * lalpha * (1.0 - float(isMask));
555
555
 
556
556
  return matcapColor.rgb;
557
- }`)}}();var Ps=(a=>(a.SIMPLEX="simplex3d",a.SIMPLEX_FRACTAL="simplex3dFractal",a.ASHIMA="simplexAshima",a.FBM="fbm",a.PERLIN="perlin",a.VORONOI="voronoi",a))(Ps||{}),Tt=function(){let t=new K(`vec3 random3(vec3 c) {
557
+ }`)}}();var Cs=(a=>(a.SIMPLEX="simplex3d",a.SIMPLEX_FRACTAL="simplex3dFractal",a.ASHIMA="simplexAshima",a.FBM="fbm",a.PERLIN="perlin",a.VORONOI="voronoi",a))(Cs||{}),Tt=function(){let t=new K(`vec3 random3(vec3 c) {
558
558
  float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
559
559
  vec3 r;
560
560
  r.z = fract(512.0*j);
@@ -907,7 +907,7 @@ vec3 sphericalTexture(vec3 normal, sampler2D tex, vec2 textureSize, float crop,
907
907
  return hashwithoutsine13(vec3(p + mb) + seed);
908
908
  }
909
909
  }
910
- `,[f,h,m,y,g,x]);return{simplex:e,simplexFractal:r,simplexAshima:a,fbm:c,perlin:p,voronoi:S}}();var va=class extends ae{constructor(e,r,o,i,a,s,l,d,c,u,p,f,h,m,y,g,x,S,w){super("v3");this.nodeType="Noise";this.scale=e,this.size=r,this.move=o,this.fA=i,this.fB=a,this.distortion=s,this.colorA=l,this.colorB=d,this.colorC=c,this.colorD=u,this.noiseType=f,this.voronoiStyle=m,this.highCut=y,this.lowCut=g,this.smoothness=x,this.seed=S,this.quality=w,this.isMask=h,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r,o,i,a){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let s=Object.values(Ps)[this.noiseType.value],l=s=="voronoi"?`
910
+ `,[f,h,m,y,g,x]);return{simplex:e,simplexFractal:r,simplexAshima:a,fbm:c,perlin:p,voronoi:S}}();var va=class extends ae{constructor(e,r,o,i,a,s,l,d,c,u,p,f,h,m,y,g,x,S,w){super("v3");this.nodeType="Noise";this.scale=e,this.size=r,this.move=o,this.fA=i,this.fB=a,this.distortion=s,this.colorA=l,this.colorB=d,this.colorC=c,this.colorD=u,this.noiseType=f,this.voronoiStyle=m,this.highCut=y,this.lowCut=g,this.smoothness=x,this.seed=S,this.quality=w,this.isMask=h,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r,o,i,a){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let s=Object.values(Cs)[this.noiseType.value],l=s=="voronoi"?`
911
911
  float v = ${s}(st + move, voronoiStyle, smoothness, seed, quality);
912
912
 
913
913
  // Apply clipping to colors
@@ -1773,7 +1773,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
1773
1773
  accumAlpha += ( 1.0 - accumAlpha ) * alpha;
1774
1774
 
1775
1775
  return transmission;
1776
- }`,[a])}}();var fp=(e=>(e.NOISE="noise",e.MAP="map",e))(fp||{}),hp=class extends ae{constructor(e,r,o,i,a,s,l,d,c,u,p){super("v3");this.displacementTypeIndex=new _e(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=r,Object.values(fp)[this.displacementTypeIndex.value]==="map"&&(this.mat=new da(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=u,this.noiseFunctionIndex=p,this.voronoiStyle=i,this.smoothness=a,this.seed=s,this.highCut=l,this.lowCut=d,this.quality=c}generate(e,r){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(fp)[this.displacementTypeIndex.value]){case"map":{o=e.include(hp.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case"noise":{let s=Object.values(Ps)[this.noiseFunctionIndex.value],l=new K(`vec3 orthogonal(vec3 v) {
1776
+ }`,[a])}}();var fp=(e=>(e.NOISE="noise",e.MAP="map",e))(fp||{}),hp=class extends ae{constructor(e,r,o,i,a,s,l,d,c,u,p){super("v3");this.displacementTypeIndex=new _e(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=r,Object.values(fp)[this.displacementTypeIndex.value]==="map"&&(this.mat=new da(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=u,this.noiseFunctionIndex=p,this.voronoiStyle=i,this.smoothness=a,this.seed=s,this.highCut=l,this.lowCut=d,this.quality=c}generate(e,r){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(fp)[this.displacementTypeIndex.value]){case"map":{o=e.include(hp.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case"noise":{let s=Object.values(Cs)[this.noiseFunctionIndex.value],l=new K(`vec3 orthogonal(vec3 v) {
1777
1777
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
1778
1778
  }`),d=s=="voronoi"?`
1779
1779
  float v = ${s}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1), voronoiStyle, smoothness, seed, quality);
@@ -1824,7 +1824,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
1824
1824
  vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
1825
1825
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
1826
1826
  return displaced_position;
1827
- }`,[e,r])}}();var be={normalRenderTarget:new Ft,normalRenderTargetDepth:new Ft,transmissionRenderTarget:new Ft,aspectRatio:new Ke,transmissionSize:new Ke(2048,2048),transmissionRenderTargetDepth:new Ft,aoRenderTarget:new Ft,aoEnabled:new et,pixelRatioNode:new J(1),resolution:new Ke,penumbraSize:new Or(5,.5),frameIndex:new _e(0),transmissionLod:new _e(2)};for(let n of Object.values(be))n.isRenderGlobal=!0;var Vn=class extends wt{constructor(){super("basic");this.nodeType="Basic";this.color=new De(dt),this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et}get category(){return"phong"}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(nO.merge([oO.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
1827
+ }`,[e,r])}}();var be={normalRenderTarget:new Ft,normalRenderTargetDepth:new Ft,transmissionRenderTarget:new Ft,aspectRatio:new Ke,transmissionSize:new Ke(2048,2048),transmissionRenderTargetDepth:new Ft,aoRenderTarget:new Ft,aoEnabled:new et,pixelRatioNode:new J(1),resolution:new Ke,penumbraSize:new Or(5,.5),frameIndex:new _e(0),transmissionLod:new _e(2)};for(let n of Object.values(be))n.isRenderGlobal=!0;var Vn=class extends wt{constructor(){super("basic");this.nodeType="Basic";this.color=new Le(dt),this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et}get category(){return"phong"}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(iO.merge([nO.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
1828
1828
  `));let i=["#include <beginnormal_vertex>",`
1829
1829
  #if !defined( USE_LAYER_DISPLACE )
1830
1830
  #include <defaultnormal_vertex>
@@ -1842,9 +1842,9 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
1842
1842
  #include <begin_vertex>
1843
1843
  #endif /* !USE_LAYER_DISPLACE */
1844
1844
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
1845
- `)}else{this.color===void 0&&(this.color=new De(dt)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,a=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0,s=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
1845
+ `)}else{this.color===void 0&&(this.color=new Le(dt)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,a=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0,s=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
1846
1846
  `));let l=["#include <normal_fragment_begin>",o.code];i&&l.push(i.code,"#ifdef ALPHATEST"," if ( "+i.result+" <= ALPHATEST ) discard;","#endif"),s?l.push(s.code,`vec3 outgoingLight = ${o.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${s.result}, 1.0, SPE_BLENDING_NORMAL);`):l.push(`vec3 finalColor = ${o.result};`);let d="1.0";this.mask&&(this.mask.analyze(e),d=`luminance(${this.mask.flow(e,"v3").result})`),i?l.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} * ${d} );`):l.push("gl_FragColor = vec4("+o.result+", 1.0 );"),a&&l.push(`gl_FragColor.a *= ${a.result};`),l.push("#include <fog_fragment>","#include <dithering_fragment>"),r=l.join(`
1847
- `)}return r}};import{UniformsLib as M0,UniformsUtils as iO}from"three";var Os=class extends wt{constructor(){super("lambert");this.nodeType="Lambert";this.color=new De(dt),this.emissive=new De(0),this.emissiveIntensity=new J(1),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.occlusion=new et(!0)}get category(){return"lambert"}build(e){let r;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(iO.merge([M0.fog,M0.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1847
+ `)}return r}};import{UniformsLib as M0,UniformsUtils as aO}from"three";var Ps=class extends wt{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Le(dt),this.emissive=new Le(0),this.emissiveIntensity=new J(1),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.occlusion=new et(!0)}get category(){return"lambert"}build(e){let r;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(aO.merge([M0.fog,M0.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1848
1848
  `));let i=["#include <beginnormal_vertex>",`
1849
1849
  #ifndef USE_LAYER_DISPLACE
1850
1850
  #include <defaultnormal_vertex>
@@ -1937,7 +1937,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
1937
1937
  #pragma unroll_loop_end
1938
1938
  #endif
1939
1939
  `," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
1940
- `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled}),this.color===void 0&&(this.color=new De(dt)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),a=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),s=this.occlusion.flow(e,"b",{slot:"occlusion"}),l=this.shadingAlpha.flow(e,"f"),d=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,u=this.alpha?this.alpha.flow(e,"f"):void 0,p=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0;e.requires.transparent=u!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
1940
+ `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled}),this.color===void 0&&(this.color=new Le(dt)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),a=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),s=this.occlusion.flow(e,"b",{slot:"occlusion"}),l=this.shadingAlpha.flow(e,"f"),d=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,u=this.alpha?this.alpha.flow(e,"f"):void 0,p=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0;e.requires.transparent=u!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
1941
1941
  `));let f=["#include <normal_fragment_begin>",`
1942
1942
  // NOTE: gl_FrontFacing alternative using face normal estimation.
1943
1943
  vec3 viewdx = dFdx(vViewPosition);
@@ -1953,7 +1953,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
1953
1953
  outgoingLight *= ao;
1954
1954
  }
1955
1955
  `),c&&f.push(c.code,`outgoingLight = spe_blend(outgoingLight, ${c.result}, 1.0, SPE_BLENDING_NORMAL);`),u?f.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${u.result} );`):f.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p&&f.push(`gl_FragColor.a *= ${p.result};`),f.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=f.join(`
1956
- `)}return r}};import{UniformsLib as I0,UniformsUtils as aO}from"three";var To=function(){let n=new K(`vec2 dHdxy(sampler2D bumpMap, vec2 bumpMapUv, float bumpScale) {
1956
+ `)}return r}};import{UniformsLib as I0,UniformsUtils as sO}from"three";var To=function(){let n=new K(`vec2 dHdxy(sampler2D bumpMap, vec2 bumpMapUv, float bumpScale) {
1957
1957
 
1958
1958
  // Gradient of UVs w.r.t. X coordinate (in screen-space)
1959
1959
  vec2 dSTdx = dFdx(bumpMapUv);
@@ -1984,7 +1984,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
1984
1984
 
1985
1985
  vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
1986
1986
  return normalize( abs( fDet ) * vN - vGrad );
1987
- }`);return{dHdxy:n,perturbNormalArb:t}}();var Ms=class extends wt{constructor(){super("phong");this.nodeType="Phong";this.color=new De(dt),this.specular=new De(1118481),this.shininess=new J(30),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.occlusion=new et(!0)}get category(){return"phong"}build(e){let r;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(aO.merge([I0.fog,I0.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <skinning_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1987
+ }`);return{dHdxy:n,perturbNormalArb:t}}();var Os=class extends wt{constructor(){super("phong");this.nodeType="Phong";this.color=new Le(dt),this.specular=new Le(1118481),this.shininess=new J(30),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.occlusion=new et(!0)}get category(){return"phong"}build(e){let r;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(sO.merge([I0.fog,I0.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <skinning_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
1988
1988
  `));let i=["#include <beginnormal_vertex>",`
1989
1989
  #include <skinbase_vertex>
1990
1990
  #include <skinnormal_vertex>
@@ -2005,7 +2005,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
2005
2005
  #include <begin_vertex>
2006
2006
  #endif
2007
2007
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","#include <skinning_vertex>","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
2008
- `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled}),this.color===void 0&&(this.color=new De(dt)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e);let o=this.occlusion.flow(e,"b",{slot:"occlusion"});this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let i=this.color.flow(e,"c",{slot:"color"}),a=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),d=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,u=this.alpha?this.alpha.flow(e,"f"):void 0,p=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0;e.requires.transparent=u!==void 0,e.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
2008
+ `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled}),this.color===void 0&&(this.color=new Le(dt)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e);let o=this.occlusion.flow(e,"b",{slot:"occlusion"});this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let i=this.color.flow(e,"c",{slot:"color"}),a=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),d=this.shadingBlend.flow(e,"i"),c=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,u=this.alpha?this.alpha.flow(e,"f"):void 0,p=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0;e.requires.transparent=u!==void 0,e.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
2009
2009
  `));let f=["#include <normal_fragment_begin>",`
2010
2010
  // NOTE: gl_FrontFacing alternative using face normal estimation.
2011
2011
  vec3 viewdx = dFdx(vViewPosition);
@@ -2052,7 +2052,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
2052
2052
  outgoingLight *= ao;
2053
2053
  }
2054
2054
  `),c&&f.push(c.code,`outgoingLight = spe_blend(outgoingLight, ${c.result}, 1.0, SPE_BLENDING_NORMAL);`),u?f.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${u.result});`):f.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p&&f.push(`gl_FragColor.a *= ${p.result};`),f.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=f.join(`
2055
- `)}return r}};import{UniformsLib as mp,UniformsUtils as sO}from"three";var Is=class extends wt{constructor(){super("standard");this.nodeType="Standard";this.color=new De(dt),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.occlusion=new et(!0)}get category(){return"physical"}build(e){let r;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(sO.merge([mp.fog,mp.lights])),mp.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
2055
+ `)}return r}};import{UniformsLib as mp,UniformsUtils as lO}from"three";var Ms=class extends wt{constructor(){super("standard");this.nodeType="Standard";this.color=new Le(dt),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0),this.occlusion=new et(!0)}get category(){return"physical"}build(e){let r;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(lO.merge([mp.fog,mp.lights])),mp.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
2056
2056
  `));let i=["#include <beginnormal_vertex>",`
2057
2057
  #if !defined( USE_LAYER_DISPLACE )
2058
2058
  #include <defaultnormal_vertex>
@@ -2070,7 +2070,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
2070
2070
  #include <begin_vertex>
2071
2071
  #endif /* !USE_LAYER_DISPLACE */
2072
2072
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
2073
- `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled});let o={gamma:!0};this.color===void 0&&(this.color=new De(dt)),this.color.analyze(e,{slot:"color",context:o}),this.roughness.analyze(e),this.metalness.analyze(e);let i=this.occlusion.flow(e,"b",{slot:"occlusion"});this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let a=this.color.flow(e,"c",{slot:"color",context:o}),s=this.roughness.flow(e,"f"),l=this.metalness.flow(e,"f"),d=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,p=this.alpha?this.alpha.flow(e,"f"):void 0,f=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0,h=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=p!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
2073
+ `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled});let o={gamma:!0};this.color===void 0&&(this.color=new Le(dt)),this.color.analyze(e,{slot:"color",context:o}),this.roughness.analyze(e),this.metalness.analyze(e);let i=this.occlusion.flow(e,"b",{slot:"occlusion"});this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let a=this.color.flow(e,"c",{slot:"color",context:o}),s=this.roughness.flow(e,"f"),l=this.metalness.flow(e,"f"),d=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,p=this.alpha?this.alpha.flow(e,"f"):void 0,f=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0,h=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=p!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
2074
2074
  `));let m=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
2075
2075
  // NOTE: gl_FrontFacing alternative using face normal estimation.
2076
2076
  vec3 viewdx = dFdx(vViewPosition);
@@ -2143,7 +2143,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
2143
2143
  outgoingLight *= ao;
2144
2144
  }
2145
2145
  `),u&&m.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),p?m.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${p.result} );`):m.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),f&&m.push(`gl_FragColor.a *= ${f.result};`),m.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=m.join(`
2146
- `)}return r}};import{UniformsLib as N0,UniformsUtils as lO}from"three";var Ns=class extends wt{constructor(){super("toon");this.nodeType="Toon";this.color=new De(dt),this.specular=new De(1118481),this.shininess=new J(30),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0)}get category(){return"toon"}build(e){let r;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(lO.merge([N0.fog,N0.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
2146
+ `)}return r}};import{UniformsLib as N0,UniformsUtils as cO}from"three";var Is=class extends wt{constructor(){super("toon");this.nodeType="Toon";this.color=new Le(dt),this.specular=new Le(1118481),this.shininess=new J(30),this.previousModelViewMatrix=new Et,this.previouseProjectionMatrix=new Et,this.shadingAlpha=new J(1),this.shadingBlend=new _e(0)}get category(){return"toon"}build(e){let r;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({resolution:be.resolution}),e.mergeUniform({previousModelViewMatrix:this.previousModelViewMatrix}),e.mergeUniform({previousProjectionMatrix:this.previouseProjectionMatrix}),e.mergeUniform(cO.merge([N0.fog,N0.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
2147
2147
  `));let i=["#include <beginnormal_vertex>",`
2148
2148
  #ifndef USE_LAYER_DISPLACE
2149
2149
  #include <defaultnormal_vertex>
@@ -2161,7 +2161,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
2161
2161
  #include <begin_vertex>
2162
2162
  #endif
2163
2163
  `];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
2164
- `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled}),this.color===void 0&&(this.color=new De(dt)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),d=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0,u=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
2164
+ `)}else{e.mergeUniform({penumbraSize:be.penumbraSize}),e.mergeUniform({frameIndex:be.frameIndex}),e.mergeUniform({aoMap:be.aoRenderTarget}),e.mergeUniform({aoEnabled:be.aoEnabled}),this.color===void 0&&(this.color=new Le(dt)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),a=this.shininess.flow(e,"f"),s=this.shadingAlpha.flow(e,"f"),l=this.shadingBlend.flow(e,"i"),d=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(e,"f"):void 0,u=this.alphaOverride?this.alphaOverride.flow(e,"f"):void 0;e.requires.transparent=c!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"uniform sampler2D aoMap;","uniform bool aoEnabled;","varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
2165
2165
  varying vec3 vViewPosition;
2166
2166
  struct ToonMaterial {
2167
2167
  vec3 diffuseColor;
@@ -2226,11 +2226,11 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
2226
2226
  outgoingLight = spe_blend( diffuseColor, outgoingLight, ${s.result} * ${f}, ${l.result} );
2227
2227
  }
2228
2228
  `),d&&p.push(d.code,`outgoingLight = spe_blend(outgoingLight, ${d.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u&&p.push(`gl_FragColor.a *= ${u.result};`),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=p.join(`
2229
- `)}return r}};import{VideoTexture as cO,Texture as uO}from"three";var Rc=class{constructor(t=1e3*10){this.timeout=t;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...t){}remove(t){let e=this.cache.get(t);e&&(this.dispose(t,e.data),this.cache.delete(t),e.prev.next=e.next,e.next.prev=e.prev)}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let t=Date.now(),e=this.head.next;for(;e.time<t-this.timeout;)this.dispose(e.src,e.data),this.cache.delete(e.src),e=e.next,e.prev=this.head,this.head.next=e;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}has(t){return this.cache.get(t)?.data}load(t){let e=Date.now(),r=this.cache.get(t);return r===void 0?(r={data:this.create(t),src:t,time:e,next:null,prev:null},this.cache.set(t,r)):(r.time=e,r.prev.next=r.next,r.next.prev=r.prev),r.prev=this.tail.prev,r.next=this.tail,this.tail.prev.next=r,this.tail.prev=r,this.scheduleCleanup(),r.data}};var gp=class extends Rc{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,e){URL.revokeObjectURL(e)}},yp;function E0(n){return typeof n=="string"?n:(yp||(yp=new gp),yp.load(n))}var Vc=class{constructor(t,e){this.data=t;this.cache=e;this.refCount=0}deref(){if(this.refCount===0&&!1)throw new Error("ref count -1?");this.refCount-=1,this.refCount===0&&(this.cache.remove(this),this.dispose())}dispose(){if(this.refCount!==0&&!1)throw new Error("ref count is not 0")}},Gc=class{constructor(){this.cache=new Map}remove(t){if(this.cache.delete(t.data)===!1&&!1)throw new Error("ref count remove non-exists")}load(t){let e=this.cache.get(t);return e===void 0&&(e=this.create(t),this.cache.set(t,e)),e.refCount+=1,e}};var Ca=class extends Vc{constructor(e,r){super(e,r.imageHolderCache);this.data=e;this.shared=r;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type==="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.disposeTextures(),this.loaded=!1;let r=()=>{this.loaded=!0;let i=[1e3,1001,1002];for(let a of i){let s=this[a];s&&(s.image=this.img,s.needsUpdate=!0)}this.shared.requestRender()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,typeof e!="string"){var o=new FileReader;o.readAsDataURL(new Blob([e],{type:"video/mp4"}));let i;await new Promise(a=>{o.onloadend=s=>{i=s.target?.result,a(null)}}),this.img.src=i}else this.img.src=e;this.img.onloadeddata=()=>{r()}}else this.img=new Image,this.img.src=E0(e),this.img.onload=r}getTexture(e){let r=this[e];if(r)return r;{let o;return this.isVideo?o=new cO(this.img,void 0,e,e):o=new uO(this.img,void 0,e,e),this.loaded&&(o.needsUpdate=!0),this[e]=o,o}}disposeTextures(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}dispose(){super.dispose(),this.disposeTextures()}};1e3,1001,1002;var pr=class extends Ca{};import{Vector2 as Co,Vector3 as Jr,Vector4 as zc}from"three";function Lt(n,t){return t.color(n)}function L0(n,t){switch(n.type){case"fresnel":return fO(n,t);case"gradient":return hO(n,t);case"depth":return mO(n,t);case"normal":return yO(n,t);case"noise":return gO(n,t);case"rainbow":return xO(n,t);case"toon":return vO(n,t);case"outline":return bO(n,t);case"transmission":return SO(n,t);case"color":return pO(n,t);case"pattern":return wO(n,t)}}function dO(n){return{type:n.type}}function Ir(n,t){let{alpha:e,mode:r,isMask:o}=n,i=typeof e=="string"?(Number(t.getVariable(e))??100)/100:e;return{...dO(n),alpha:i,mode:r,isMask:o}}function pO(n,t){return{...Ir(n,t),color:Lt(n.color,t)}}function fO(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:a}=n;return{...Ir(n,t),color:Lt(a,t),bias:e,scale:r,intensity:o,factor:i}}function hO(n,t){let{gradientType:e,smooth:r,colors:o,steps:i,angle:a,offset:s,morph:l}=n;return{...Ir(n,t),gradientType:e,smooth:r,colors:o.map(d=>new zc(d[0],d[1],d[2],d[3])),num:o.length,steps:i,offset:new Co(...s),morph:new Co(...l),angle:a}}function mO(n,t){let{gradientType:e,near:r,far:o,isVector:i,isWorldSpace:a,origin:s,direction:l,colors:d,steps:c,smooth:u}=n;return{...Ir(n,t),gradientType:e,near:r,far:o,isVector:i,isWorldSpace:a,origin:new Jr(...s),direction:l?new Jr(...l):new Jr(1,0,0),colors:d.map(p=>p!==void 0?new zc(p[0],p[1],p[2],p[3]):new zc(0,0,0,0)),steps:c.slice(0,d.length),smooth:u}}function yO(n,t){let{cnormal:e}=n;return{...Ir(n,t),cnormal:new Jr(e[0],e[1],e[2])}}function gO(n,t){return{...Ir(n,t),scale:n.scale,move:n.move,fA:new Co(...n.fA),fB:new Co(...n.fB),size:new Jr(...n.size),distortion:new Co(...n.distortion),colorA:Lt(n.colorA,t),colorB:Lt(n.colorB,t),colorC:Lt(n.colorC,t),colorD:Lt(n.colorD,t),noiseType:n.noiseType,voronoiStyle:n.voronoiStyle,highCut:n.highCut,lowCut:n.lowCut,smoothness:n.smoothness,seed:n.seed,quality:n.quality}}function xO(n,t){return{...Ir(n,t),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Jr(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Jr(...n.offset)}}function vO(n,t){return{...Ir(n,t),positioning:n.positioning,colors:n.colors.map(e=>new zc(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Jr(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:Lt(n.shadowColor,t),offset:new Jr(...n.offset)}}function bO(n,t){return{...Ir(n,t),outlineColor:Lt(n.outlineColor,t),contourColor:Lt(n.contourColor,t),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:new Jr(...n.contourDirection),positionalLines:n.positionalLines,compensation:n.compensation}}function SO(n,t){return{...Ir(n,t),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}function wO(n,t){return{...Ir(n,t),style:n.style,projection:n.projection,axis:n.axis,blending:n.blending,offset:new Co(...n.offset),colorA:Lt(n.colorA,t),colorB:Lt(n.colorB,t),frequency:new Co(...n.frequency),size:n.size,variation:n.variation,smoothness:n.smoothness,zigzag:n.zigzag,rotation:n.rotation,vertical:new Co(...n.vertical),horizontal:new Co(...n.horizontal),sides:n.sides}}var an=class extends ht{};import{Vector4 as _O}from"three";var xp={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],light:["roughnessMap","bumpMap"],depth:["smooth","isWorldSpace","gradientType","isVector"],pattern:["style","projection","axis"]},vp={depth:["colors"]};function AO(n,t,e){if(t==="isMask")return!0;let r=xp[n.type],o=vp[n.type];if(o!==void 0){let i=n.color;if(o.includes(t)){let a=i[t]?.value?.length;if(a!==void 0&&a!==e.length)return!0}}return r!==void 0?r.includes(t):!1}function bp(n,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,i=n;if("image"in i){let a=i.image,s=t.image(a),l=r;l.image instanceof pr||l.image.deref(),l.image=s}if("video"in i){let a=i.video,s=t.video(a),l=r;l.image instanceof pr||l.image.deref(),l.image=s}if("wrapping"in i){let a=r;a.wrap=i.wrapping}if("repeat"in i||"offset"in i){let a="mat",s=e.uniforms[`f${e.id}_${a}`];"repeat"in i&&(s.repeat=i.repeat),"offset"in i&&(s.offset=i.offset),s.updateMatrix()}return o}function D0(n,t,e,r){let o=!1;for(let[i,a]of Object.entries(n)){if(i==="bumpMap"||i==="roughnessMap"){o=!0;continue}if(!i||a===void 0)continue;if(Sp(i,e,r,t)){i==="visible"&&e.type==="light"&&(o=!0);continue}e.visible=r.visible;let s=e.uniforms[`f${e.id}_${i}`];if(!!s&&!(s instanceof on))switch(o=o||AO(e,i,a),s.constructor){case De:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof an?s.value=new ht(l.r,l.g,l.b,l.a):s.setRGBA(l);break}case Kt:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof an?s.value=new ht(l.r,l.g,l.b,l.a):s.value.setRGBA(l.r,l.g,l.b,l.a);break}case Ke:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]);break}case Nt:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]),s.value.setZ(l[2]);break}case Ft:{bp(a,t,e);break}case Mr:{s.value=a.map(l=>new _O(...l));break}default:{s.value=a;break}}}return o}var sn=(n,t,e)=>Math.max(0,Math.min(1,Number(t.getVariable(typeof n=="number"?n*100:n,e)??100)/100))??1,to=class{constructor(t,e,r,o,i){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let a in o)this.uniforms[`f${this.id}_${a}`]=o[a];for(let a in r)Sp(a,this,r,i)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return sr.createLigherLayer(t,e,r,o);if(r.type==="texture"||r.type==="video"){let i=r.type==="texture"?o.image(r.texture.image):o.video(r.texture.video),a=new Dn(i,r.texture.wrapping),s=new Dc(i),l=new Bc(r.texture.repeat,r.texture.offset),d=new J(r.crop?1:0),c=new _e(r.projection??0),u=new _e(["x","y","z"].indexOf(r.axis)??0),p=new _e(r.side??0),f=new Ke(r.size?new Nr(r.size[0],r.size[1]):new Nr(100,100)),h=new J(r.blending??0),m=new J(sn(r.alpha,o)),y=new _e(r.mode??0),g=new et(r.isMask??!1),x=new nn(a,s,d,c,u,p,f,h,l,m,y,g),S=new Ee(x.calpha,"f");return new We(t,e,r,{texture:a,textureSize:s,crop:d,projection:c,axis:u,side:p,size:f,blending:h,mat:l,alpha:m,mode:y,isMask:g},x,y,S,g,o)}else if(r.type==="matcap"){let i=o.image(r.texture.image),a=new Dn(i,r.texture.wrapping),s=new J(sn(r.alpha,o)),l=new _e(r.mode??0),d=new et(r.isMask??!1),c=new xa(a,s,l,d),u=new Ee(c.calpha,"f");return new We(t,e,r,{texture:a,alpha:s,mode:l,isMask:d},c,l,u,d,o)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new Nt(new eo(...r.offset)),a=new J(r.scale??10),s=new J(r.intensity??8),l=new J(r.movement??1),d=new _e(r.noiseType??0),c=new _e(r.voronoiStyle??0),u=new J(r.smoothness??.5),p=new J(r.seed??0),f=new J(r.highCut??1),h=new J(r.lowCut??0),m=new _e(r.quality??1),y=new Ta(s,l,i,c,u,p,f,h,m,a,d);return new Es(t,e,r,{offset:i,scale:a,intensity:s,movement:l,noiseType:d,voronoiStyle:c,smoothness:u,seed:p,highCut:f,lowCut:h,quality:m},y,o)}else throw new Error;else return PO(t,e,r,o)}updateByOp(t,e,r){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props||"visible"in o.props?(r.scene.markNeedsUpdateRendererDirty(),!0):D0(o.props,r.shared,this,e)}else if(o.path[0]==="texture")return"texture"in e||"video"in e?bp(o.props,r.shared,this):!0;return!1}dispose(){if(TO(this)){let t=this.uniforms[`f${this.id}_texture`];if(!t)return!1;let e=t;e.image instanceof pr||e.image.deref()}}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}},We=class extends to{constructor(e,r,o,i,a,s,l,d,c){super(e,r,o,i,c);this.params=i;this.color=a;this.mode=s;this.alpha=l;this.isMask=d}},Es=class extends to{constructor(e,r,o,i,a,s){super(e,r,o,i,s);this.position=a}},sr=class extends to{constructor(e,r,o,i,a,s){super(e,r,o,a,s);this.node=i}static createLigherLayer(e,r,o,i){let a,s=new J(sn(o.alpha,i)),l=new _e(o.mode),d=new J(o.bumpMapIntensity),c=new J(sn(o.alphaOverride,i)),u;if(!o.visible)a=new Vn,u={};else if(o.category==="lambert"){a=new Os;let p=new De(i.color(o.emissive)??0),f=new et(o.occlusion??!0);u={emissive:p,occlusion:f},a.emissive=p,a.occlusion=f}else if(o.category==="toon"){a=new Ns;let p=new J(o.shininess??30),f=new De(i.color(o.specular)??1118481);u={shininess:p,specular:f},a.shininess=p,a.specular=f}else if(o.category==="physical"){a=new Is;let p=new J(o.roughness??.3),f=new J(o.metalness??0),h=new J(o.reflectivity??.5),m=new et(o.occlusion??!0);u={roughness:p,metalness:f,reflectivity:h,occlusion:m},a.roughness=p,a.metalness=f,a.reflectivity=h,a.occlusion=m}else{a=new Ms;let p=new J(o.shininess??30),f=new De(o.specular!==void 0?i.color(o.specular)??1118481:1118481),h=new et(o.occlusion??!0);u={shininess:p,specular:f,occlusion:h},a.shininess=p,a.specular=f,a.occlusion=h}return a.alpha=new J(1),a.shadingAlpha=s,a.shadingBlend=l,a.bumpMapIntensity=d,a.alphaOverride=c,u.alpha=a.shadingAlpha,u.mode=a.shadingBlend,u.bumpMapIntensity=a.bumpMapIntensity,u.alphaOverride=a.alphaOverride,new sr(e,r,o,a,u,i)}get category(){return this.node.category}};function TO(n){let t=n instanceof to?n.type:n;return t==="texture"||t==="video"||t==="displace_map"||t==="matcap"}function fr(n){return{alpha:new J(n.alpha??1),mode:new _e(n.mode??0),isMask:new et(n.isMask??!1)}}function CO(n,t,e,r,o){switch(n.type){case"color":{let i=new De(r.color??dt),a=fr(r),s=new Bn(i,a.alpha),l=new Ee(s.calpha,"f");return new We(t,e,n,{color:i,...a},s,a.mode,l,a.isMask,o)}case"fresnel":{let i=new De(r.color??16777215),a=new J(r.bias??.1),s=new J(r.scale??1),l=new J(r.intensity??2),d=new J(r.factor??1),c=fr(r),u=new Cs(i,a,s,l,d,c.alpha,c.mode,c.isMask),p=new Ee(u.calpha,"f");return new We(t,e,n,{color:i,bias:a,scale:s,intensity:l,factor:d,...c},u,c.mode,p,c.isMask,o)}case"rainbow":{let i=new J(r.filmThickness??30),a=new J(r.movement??0),s=new Nt(r.wavelengths??new eo(0,0,0)),l=new J(r.noiseStrength??0),d=new J(r.noiseScale??1),c=new Nt(r.offset??new eo(0,0,0)),u=fr(r),p=new wa(i,a,s,l,d,c,u.alpha,u.isMask),f=new Ee(p.calpha,"f");return new We(t,e,n,{filmThickness:i,movement:a,wavelengths:s,noiseStrength:l,noiseScale:d,offset:c,...u},p,u.mode,f,u.isMask,o)}case"transmission":{let i=new J(r.thickness??10),a=new J(r.ior??1.5),s=new J(r.roughness??.5),l=be.transmissionSize,d=be.transmissionRenderTarget,c=be.transmissionRenderTargetDepth,u=window.innerWidth,p=window.innerHeight,f=u>=p?new Ke(p/u,1):new Ke(1,u/p),h=fr(r),m=new Aa(i,a,s,l,d,c,f,h.alpha),y=new Ee(m.calpha,"f");return new We(t,e,n,{thickness:i,ior:a,roughness:s,aspectRatio:f,...h},m,h.mode,y,h.isMask,o)}case"toon":{let i=new _e(r.positioning??0),a;r.colors?a=new Mr(r.colors.length,r.colors):(a=new Mr(10,new Pa(0,0,0,1)),a.value[1]=new Pa(1,1,1,1));let s;r.steps?s=new Or(r.steps.length,r.steps):(s=new Or(10,1),s.value[0]=0);let l=new Nt(r.source??new eo(0,0,0)),d=new et(r.isWorldSpace??!0),c=new J(r.noiseStrength??0),u=new J(r.noiseScale??1),p=new Kt(r.shadowColor),f=new Nt(r.offset??new eo(0,0,0)),h=fr(r),m=new _a(i,a,s,l,d,c,u,p,f,h.alpha),y=new Ee(m.calpha,"f");return new We(t,e,n,{positioning:i,colors:a,steps:s,source:l,isWorldSpace:d,noiseStrength:c,noiseScale:u,shadowColor:p,offset:f,...h},m,h.mode,y,h.isMask,o)}case"outline":{let i=new De(r.outlineColor??16777215),a=new De(r.contourColor??16777215),s=new J(r.outlineWidth??.1),l=new J(r.contourWidth??.1),d=new J(r.outlineThreshold??.1),c=new J(r.contourThreshold??.1),u=new J(r.outlineSmoothing??.1),p=new J(r.contourFrequency??.1),f=new Nt(r.contourDirection??new eo(0,1,0)),h=new et(r.positionalLines??!1),m=new et(r.compensation??!0),y=be.normalRenderTarget,g=be.normalRenderTargetDepth,x=be.pixelRatioNode,S=be.resolution,w=fr(r),b=new ba(i,a,s,l,d,c,u,p,f,h,m,S,y,g,x,w.alpha),_=new Ee(b.calpha,"f");return new We(t,e,n,{outlineColor:i,contourColor:a,outlineWidth:s,contourWidth:l,outlineThreshold:d,contourThreshold:c,outlineSmoothing:u,contourFrequency:p,contourDirection:f,positionalLines:h,compensation:m,...w},b,w.mode,_,w.isMask,o)}case"depth":{let i=new _e(r.gradientType??0),a=new et(r.smooth??!1),s=new J(r.near??50),l=new J(r.far??200),d=new J(r.isVector??1),c=new J(r.isWorldSpace??0),u=new Nt(r.origin??new eo),p=new Nt(r.direction??new eo),f;r.colors?f=new Mr(r.colors.length,r.colors):(f=new Mr(2,new Pa(0,0,0,1)),f.value[1]=new Pa(1,1,1,1));let h;r.steps?h=new Or(r.steps.length,r.steps):(h=new Or(2,1),h.value[0]=0);let m=fr(r),y=new ya(i,a,s,l,d,c,u,p,f,h,m.alpha,m.isMask),g=new Ee(y.calpha,"f");return new We(t,e,n,{gradientType:i,smooth:a,near:s,far:l,isVector:d,isWorldSpace:c,origin:u,direction:p,colors:f,steps:h,...m},y,m.mode,g,m.isMask,o)}case"noise":{let i=new J(r.scale??1),a=new Nt(r.size??new eo(100,100,100)),s=new J(r.move??1),l=new Ke(r.fA??new Nr(1.7,9.2)),d=new Ke(r.fB??new Nr(8.3,2.8)),c=new Ke(r.distortion??new Nr(1,1)),u=new Kt(r.colorA),p=new Kt(r.colorB),f=new Kt(r.colorC),h=new Kt(r.colorD),m=new _e(r.noiseType??0),y=new _e(r.voronoiStyle??0),g=new J(r.highCut??1),x=new J(r.lowCut??0),S=new J(r.smoothness??.5),w=new J(r.seed??.5),b=new _e(r.quality??1),_=fr(r),A=new va(i,a,s,l,d,c,u,p,f,h,_.alpha,m,_.isMask,y,g,x,S,w,b),v=new Ee(A.calpha,"f");return new We(t,e,n,{scale:i,size:a,move:s,fA:l,fB:d,distortion:c,colorA:u,colorB:p,colorC:f,colorD:h,noiseType:m,..._,voronoiStyle:y,highCut:g,lowCut:x,smoothness:S,seed:w,quality:b},A,_.mode,v,_.isMask,o)}case"normal":{let i=new Nt(r.cnormal??new eo(1,1,1)),a=fr(r),s=new fa(i,a.alpha),l=new Ee(s.calpha,"f");return new We(t,e,n,{cnormal:i,...a},s,a.mode,l,a.isMask,o)}case"gradient":{let i=new _e(r.gradientType??0),a=new et(r.smooth??!1),s;r.colors?s=new Mr(r.colors.length,r.colors):(s=new Mr(10,new Pa(0,0,0,1)),s.value[1]=new Pa(1,1,1,1));let l;r.steps?l=new Or(r.steps.length,r.steps):(l=new Or(10,1),l.value[0]=0);let d=new Ke(r.offset??new Nr(0,0)),c=new Ke(r.morph??new Nr(0,0)),u=new J(r.angle??0),p=fr(r),f=new ga(i,a,s,l,d,c,u,p.alpha,p.isMask),h=new Ee(f.calpha,"f");return new We(t,e,n,{gradientType:i,smooth:a,colors:s,steps:l,offset:d,morph:c,angle:u,...p},f,p.mode,h,p.isMask,o)}case"pattern":{let i=new _e(r.style??0),a=new _e(r.projection??0),s=new _e(["x","y","z"].indexOf(r.axis)??0),l=new J(r.blending??0),d=new Ke(r.offset??new Nr(0,0)),c=new Kt(r.colorA),u=new Kt(r.colorB),p=new Ke(r.frequency??new Nr(10,10)),f=new J(r.size??.5),h=new J(r.variation??0),m=new J(r.smoothness??.5),y=new J(r.zigzag??0),g=new J(r.rotation??0),x=new Ke(r.vertical??new Nr(0,1)),S=new Ke(r.horizontal??new Nr(0,1)),w=new _e(r.sides??6),b=fr(r),_=new Sa(i,a,s,l,d,c,u,p,f,h,m,y,g,x,S,w,b.alpha,b.isMask),A=new Ee(_.calpha,"f");return new We(t,e,n,{style:i,projection:a,axis:s,blending:l,offset:d,colorA:c,colorB:u,frequency:p,size:f,variation:h,smoothness:m,zigzag:y,rotation:g,vertical:x,horizontal:S,sides:w,...b},_,b.mode,A,b.isMask,o)}default:{let i=new De(1,0,0,1),a=fr(r),s=new Bn(i,a.alpha),l=new Ee(s.calpha,"f");return new We(t,e,n,{color:i,...a},s,a.mode,l,a.isMask,o)}}}function PO(n,t,e,r){let o=L0(e,r);return CO(e,n,t,o,r)}function Sp(n,t,e,r){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let o=t.uniforms[`f${t.id}_intensity`];return o?(o.value=e.intensity*(e.visible?1:0),o):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let o=t.uniforms[`f${t.id}_alpha`];if(!o)return;if(o.value=sn(e.alpha,r)*(e.visible?1:0),e.type==="outline"&&n==="visible"){let i=t.uniforms[`f${t.id}_compensation`];i&&(i.value=e.compensation&&e.visible)}return o}}function kc(n,t){let e=0,r=n.layers.find(o=>o.data.type==="light");if(r){let o=r.data,i=Number(t.getVariable(o.alphaOverride));if((typeof o.alphaOverride=="string"?i/100:o.alphaOverride)<1)return!0}for(let o of n.layers){if(o.data.type!=="displace"&&o.data.isMask)return!0;if(o.data.type!=="displace"&&"alpha"in o.data&&o.data.type!=="light"&&o.data.type!=="fresnel"&&o.data.type!=="texture"&&o.data.type!=="matcap"&&o.data.type!=="rainbow"&&o.data.type!=="outline"&&o.data.type!=="pattern"){let i=o.data.visible?o.data.alpha:0;if(typeof i=="string"&&(i=Math.max(0,Math.min(1,Number(t.getVariable(i)??100)/100))),i===1&&o.data.type==="depth"||o.data.type==="gradient"){for(let a of o.data.colors)if(a[3]<1){i=a[3];break}}else if(i===1&&o.data.type==="noise"){let a=t.color(o.data.colorA).a,s=t.color(o.data.colorB).a,l=t.color(o.data.colorC).a,d=t.color(o.data.colorD).a,c=Math.min(a,Math.min(s,Math.min(l,d)));c<1&&(i=c)}e+=(1-e)*i}}return e<1}var Zt=class extends OO{constructor(){super(void 0);this.flatShading=!1;this.needsJitter=!0;this.cacheKey="";this.fog=!0,this.dithering=!0,this.vertexColors=!0,this.transparent=!0}customProgramCacheKey(){return this.cacheKey}},Fc=class extends Zt{constructor(e,r,o,i){super();this.flatShading=e;this.side=r;this.wireframe=o;this.root=i}updateAfterBuild(){let e=this.root;this.lights=e.lights,this.vertexShader=e.vertexShader,this.fragmentShader=e.fragmentShader,this.defines=e.defines,this.uniforms=e.uniforms,this.extensions=e.extensions,this.transparent=e.transparent,this.cacheKey=e.customProgramCacheKey()+"flat"+this.flatShading+this.side}onBeforeCompile(e,r){this.root.onBeforeCompile(e)}get data(){return this.root.data}get category(){return this.root.category}get hasAO(){return this.root.hasAO}getFlavor(e,r,o){return this.root.getFlavor(e,r,o)}get layers(){return this.root.layers}get fragment(){return this.root.fragment}getLayersOfType(e){return this.root.getLayersOfType(e)}getLayerByUuid(e){return this.root.getLayerByUuid(e)}updateByOp(e,r,o){this.root.updateByOp(e,r,o)}nodeMaterialDispose(){this.root.nodeMaterialDispose()}},Gn=class extends Zt{constructor(e,r,o=!0){super();this.data=e;this.allowVariableSaves=o;this.layerIdGen=0;this.flavors=[];this.masks={};this.type="NodeMaterial";this.updaters=[],this.reset0(e,r)}get nodeMaterial(){return this}getFlavor(e,r,o){let i=o?6:(e?3:0)+r;if(i===0)return this;this.flavors===void 0&&(this.flavors=[]),i-=1;let a=this.flavors[i];return a===void 0&&(a=new Fc(e,r,o,this),this.flavors[i]=a,a.flatShading=e,a.side=r,a.updateAfterBuild()),a}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.category}get hasAO(){return this.lightLayer.getNode("occlusion")?.value??!1}reset(e,r){this.data!==e&&this.reset0(e,r)}reset0(e,r){this.data=e;let o=e.layers??Pt.defaultTwoLayerData("phong").layers;try{this.layers=o.map(i=>to.create(this.layerIdGen++,i.id,i.data,r.shared))}catch{this.layers=[]}this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r.shared),this.transparent=kc(e,r.shared),this.saveVariableLocations(r)}onVariableUpdate(e,r,o){if(e[0]==="alphaOverride")this.transparent=kc(this.data,o.shared),this.lightLayer.setValue("alphaOverride",Math.max(0,Math.min(Number(r)/100,1)));else if(e[0]==="layer"){let i=e[1],a=e[2];if(i&&a){let s=this.layers.find(l=>l.uuid===i);s?.hasValue(a)&&(a==="alpha"?(this.transparent=kc(this.data,o.shared),s.setValue(a,Math.max(0,Math.min(Number(r)/100,1)))):s.setValue(a,r))}}}saveVariableLocations(e){if(!this.allowVariableSaves)return;let r=this.data.layers.find(o=>o.data.type==="light");r&&e.shared.getVariable(r.data.alphaOverride,["material",this.uuid,"alphaOverride"]),this.data.layers.forEach(o=>{"alpha"in o.data&&typeof o.data.alpha=="string"&&e.shared.getVariable(o.data.alpha,["material",this.uuid,"layer",o.id,"alpha"])})}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.cacheKey=this.computeCacheKey(),this.lightLayer=this.layers.find(r=>r instanceof sr),this.lightLayer===void 0&&(this.lightLayer=new sr(0,"",{...zt.defaultData("light","phong"),visible:!1},new Vn,{},e)),this.dispose();for(let r of this.flavors)r&&r.dispose();this.applyTextureMaps(),this.applyMasks(),this.blendColors(),this.blendAfterColors(),this.blendPositions()}applyTextureMaps(){let e=this.layers.find(a=>a instanceof sr);if(!e)return;let r=e.data,o=r.bumpMap,i=r.roughnessMap;e.node.bumpMap=void 0,e.node.roughnessMap=void 0;for(let a=0;a<this.layers.length;++a){let s=this.layers[a];s instanceof We&&s.color instanceof nn&&(s.uuid===o&&(e.node.bumpMap=s.color),s.uuid===i&&(e.node.roughnessMap=s.color))}}updateByOp(e,r,o){if(r!==void 0?this.data=r:r=this.data,this.transparent=kc(r,o.shared),e.path[0]==="layers"){this.data=r;let i=o.shared,a=e.path[1];if(a===void 0){if(this.layers.reverse(),e.type===4){let s=to.create(this.layerIdGen++,e.id,e.data,o.shared);this.layers.splice(e.localIndex,0,s),o.scene.markNeedsUpdateRendererDirty()}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose(),o.scene.markNeedsUpdateRendererDirty();else if(e.type===6){let s=this.layers.findIndex(d=>d.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l),o.scene.markNeedsUpdateRendererDirty()}this.layers.reverse(),this.onUpdate(o.shared)}else{e.type===0&&e.props.occlusion!==void 0&&o.scene.markNeedsUpdateRendererDirty();let s=this.layers.find(l=>l.uuid===a);if(s){let l=r.layers.data(a),d;if(e.type===0&&("alpha"in e.props||"alphaOverride"in e.props)&&("alpha"in e.props?d={...e.props,alpha:sn(e.props.alpha,i,["material",this.uuid,"layer",a,"alpha"])}:d={...e.props,alphaOverride:sn(e.props.alphaOverride,i,["material",this.uuid,"alphaOverride"])}),s.updateByOp({...e,...d?{props:d}:{},path:e.path.slice(2)},l,o)){let u=to.create(this.layerIdGen++,a,l,i);this.layers.splice(this.layers.findIndex(p=>p.uuid===a),1,u),this.onUpdate(o.shared)}}}}else this.reset(r,o)}applyMasks(){for(let e=0;e<this.layers.length;++e){let r=this.layers[e];r instanceof We?r.color.mask=void 0:r instanceof sr&&(r.node.mask=void 0)}for(let e=0;e<this.layers.length;++e){let r=this.layers[e];if(r instanceof We&&r.isMask.value&&r.data.visible&&e>0){let o=e-1,i=this.layers[o];i instanceof sr?i.node.mask=new _t(r.color,r.alpha,_t.MUL):i instanceof We&&(i.isMask.value||(i.color.mask=new _t(r.color,r.alpha,_t.MUL)))}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof We),r=this.layers.findIndex(o=>o instanceof sr);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let a=this.layers[i];if(a instanceof We){if(a.isMask.value)continue;o=new pa(o,a.color,a.alpha,a.mode)}}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ee("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof sr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];if(i instanceof We){if(i.isMask.value)continue;e=new pa(e,i.color,i.alpha,i.mode)}}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof Es);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new _t(r,e[o].position,_t.ADD),r=new _t(r,new J(.5).setReadonly(!0),_t.MUL));this.fragment.position=r}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}onBeforeCompile(e){this.build(),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,r){let o=(i,a,s)=>Math.min(Math.max(i,a),s);for(let i of this.layers)if(i.type==="displace"){let a=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=a}}computeCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.visible?r.category.toUpperCase():"Basic"}"`;else{let o=(xp[r.type]??[]).map(d=>r[d]),i=(vp[r.type]??[]).map(d=>r[d]?.length??0),a=[...o,...i],s="isMask"in r&&r.isMask,l=`"${r.type}-${r.visible}-${s}"`;a.length?e+=`[${l}, "${a.join('","')}"],`:e+=l}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(){let e=new Lc;e.needsJitter=this.needsJitter,this.lights=this.lightLayer.data.visible,e.build(this.fragment,this.fragment),this.vertexShader=e.getCode("vertex"),this.fragmentShader=e.getCode("fragment"),this.defines=e.defines,this.uniforms=e.uniforms,this.extensions=e.extensions,this.updaters=e.updaters;for(let r of this.flavors)r&&r.updateAfterBuild();return this}nodeMaterialDispose(){this.layers.forEach(e=>e.dispose()),super.dispose();for(let e of this.flavors)e&&e.dispose()}assetsLoaded(){for(let e of this.layers)if(e instanceof We){let r=e.params.texture;if(r instanceof Dn&&!r.image.loaded)return!1}return!0}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Zt.prototype,{properties:{get:function(){return this.fragment.properties}}});var zn=class extends Gn{constructor(t,e,r){super(t,e,!1),this.uuid=r,this.allowVariableSaves=!0,this.saveVariableLocations(e)}};var G0=Rt(B0());var R0=new Map;function V0(n){if(typeof n=="string")return n;let t=R0.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},R0.set(n,t)),t.url}var kn=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:V0(t),format:"wav"},this.sound=new G0.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),r!==void 0&&(this.delay=r),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};import{Box2 as MO,Vector2 as Fn,Path as z0,Shape as IO,ShapeUtils as NO,Color as EO}from"three";var Uc=class{constructor(){this.type="ShapePath";this.color=new EO;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new z0,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,r,o){return this.currentPath?.quadraticCurveTo(t,e,r,o),this}bezierCurveTo(t,e,r,o,i,a){return this.currentPath?.bezierCurveTo(t,e,r,o,i,a),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:e.ORIGIN,t:0};function o(m,y,g,x){let S=m.x,w=y.x,b=g.x,_=x.x,A=m.y,v=y.y,M=g.y,O=x.y,T=(_-b)*(A-M)-(O-M)*(S-b),C=(w-S)*(A-M)-(v-A)*(S-b),P=(O-M)*(w-S)-(_-b)*(v-A),I=T/P,L=C/P;if(P===0&&T!==0||I<=0||I>=1||L<0||L>1)return null;if(T===0&&P===0){for(let G=0;G<2;G++)if(i(G===0?g:x,m,y),r.loc===e.ORIGIN){let N=G===0?g:x;return{x:N.x,y:N.y,t:r.t}}else if(r.loc===e.BETWEEN){let N=+(S+r.t*(w-S)).toPrecision(10),F=+(A+r.t*(v-A)).toPrecision(10);return{x:N,y:F,t:r.t}}return null}else{for(let F=0;F<2;F++)if(i(F===0?g:x,m,y),r.loc===e.ORIGIN){let B=F===0?g:x;return{x:B.x,y:B.y,t:r.t}}let G=+(S+I*(w-S)).toPrecision(10),N=+(A+I*(v-A)).toPrecision(10);return{x:G,y:N,t:I}}}function i(m,y,g){let x=g.x-y.x,S=g.y-y.y,w=m.x-y.x,b=m.y-y.y,_=x*b-w*S;if(m.x===y.x&&m.y===y.y){r.loc=e.ORIGIN,r.t=0;return}if(m.x===g.x&&m.y===g.y){r.loc=e.DESTINATION,r.t=1;return}if(_<-Number.EPSILON){r.loc=e.LEFT;return}if(_>Number.EPSILON){r.loc=e.RIGHT;return}if(x*w<0||S*b<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+b*b)){r.loc=e.BEYOND;return}let A;x!==0?A=w/x:A=b/S,r.loc=e.BETWEEN,r.t=A}function a(m,y){let g=[],x=[];for(let S=1;S<m.length;S++){let w=m[S-1],b=m[S];for(let _=1;_<y.length;_++){let A=y[_-1],v=y[_],M=o(w,b,A,v);M!==null&&g.find(O=>O.t<=M.t+Number.EPSILON&&O.t>=M.t-Number.EPSILON)===void 0&&(g.push(M),x.push(new Fn(M.x,M.y)))}}return x}function s(m,y,g){let x=new Fn;y.getCenter(x);let S=[];return g.forEach(w=>{w.boundingBox.containsPoint(x)&&a(m,w.points).forEach(_=>{S.push({identifier:w.identifier,isCW:w.isCW,point:_})})}),S.sort((w,b)=>w.point.x-b.point.x),S}function l(m,y,g,x,S){(S==null||S==="")&&(S="nonzero");let w=new Fn;m.boundingBox.getCenter(w);let b=[new Fn(g,w.y),new Fn(x,w.y)],_=s(b,m.boundingBox,y);_.sort((C,P)=>C.point.x-P.point.x);let A=[],v=[];_.forEach(C=>{C.identifier===m.identifier?A.push(C):v.push(C)});let M=A[0].point.x,O=[],T=0;for(;T<v.length&&v[T].point.x<M;)O.length>0&&O[O.length-1]===v[T].identifier?O.pop():O.push(v[T].identifier),T++;if(O.push(m.identifier),S==="evenodd"){let C=O.length%2===0,P=O[O.length-2];return{identifier:m.identifier,isHole:C,for:P}}else if(S==="nonzero"){let C=!0,P=null,I=null;for(let L=0;L<O.length;L++){let G=O[L];y[G]&&(C?(I=y[G].isCW,C=!1,P=G):I!==y[G].isCW&&(I=y[G].isCW,C=!0))}return{identifier:m.identifier,isHole:C,for:P}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let d=0,c=999999999,u=-999999999,p=[];this.subPaths.forEach(m=>{let y=m.getPoints(),g=-999999999,x=999999999,S=-999999999,w=999999999;for(let b=0;b<y.length;b++){let _=y[b];_.y>g&&(g=_.y),_.y<x&&(x=_.y),_.x>S&&(S=_.x),_.x<w&&(w=_.x)}u<=S&&(u=S+1),c>=w&&(c=w-1),y.length&&p.push({curves:m.curves,points:y,isCW:NO.isClockWise(y),identifier:d++,boundingBox:new MO(new Fn(w,x),new Fn(S,g))})});let f=p.map(m=>l(m,p,c,u,this.userData?.style.fillRule)),h=[];return p.forEach(m=>{let y=f[m.identifier];if(y&&!y.isHole){let g=new IO;g.curves=m.curves,f.filter(S=>S?.isHole&&S.for===m.identifier).forEach(S=>{if(S){let w=p[S.identifier],b=new z0;b.curves=w.curves,g.holes.push(b)}}),h.push(g)}}),h}};var F0,wp=new Promise(n=>{F0=n}),k0=!1;var Hc;function j0(){if(k0)return;if(Hc)return Hc;async function n(){let e=await import("./opentype.js");F0(e),k0=!0}return Hc=n(),Hc}var Ls=class{async load(t,e,r=()=>{}){let{load:o}=await wp;o(t,(i,a)=>{i||!a?r(i??"Something went wrong"):e(a)})}async parse(t){let{parse:e,Bidi:r}=await wp;try{let o=e(t),i=new r,a=s=>o.charToGlyphIndex(s.char);return i.registerModifier("glyphIndex",null,a),i.applyFeatures(o,o.defaultRenderOptions.features),{font:o,bidi:i}}catch(o){console.error(o)}}};async function LO(n){return await(await fetch(n)).arrayBuffer()}var DO=new Ls;async function _p(n){let t,e,r=!1;if(n.url?(t=await LO(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer.slice(n.data.byteOffset,n.data.byteOffset+n.data.byteLength)),t){let o=await DO.parse(t);if(o)return{font:o.font,url:e,intercepted:r,arr:t,bidi:o.bidi}}}import{CubicBezierCurve as BO,LineCurve as RO,QuadraticBezierCurve as VO}from"three";function GO(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var qc=class{constructor(t){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=_p(t).then(e=>{e&&(this._arrayBuffer=e.arr,this._url=e.url,this.font=e.font,this._intercepted=e.intercepted,this._isLoaded=!0,this._bidi=e.bidi)})}update(t){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=_p(t).then(e=>{e&&(this._arrayBuffer=e.arr,this._url=e.url,this.font=e.font,this._intercepted=e.intercepted,this._isLoaded=!0,this._bidi=e.bidi)})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(t,e,r){if(!this._bidi)return[];let o=this._bidi;o.getTextGlyphs(e);let i=o.tokenizer.tokens,a=[],s=0,l=r.length===i.length;for(let d=0;d<r.length;d++){let c=r[d].index,u=String.fromCharCode(r[d].unicode),p=i[s];if(GO(c,p)||l)a.push({char:u,index:c,replacements:[p.state.glyphIndex],replacementChars:[p.char]}),s++;else{let f=p.char,h="",m=[p.state.glyphIndex],y=[],g=!1;for(;!g;)s++,h=e.charAt(s),f+=h,m.push(t.charToGlyphIndex(h)),y=t.stringToGlyphs(f),y.length===1&&y[0].index===c&&(g=!0),s>e.length&&(g=!0);a.push({char:u,index:c,replacements:m,replacementChars:Array.from(f)}),s++}}return a}generateShapes(t,e){if(!this._isLoaded)return;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,a=t.map(x=>this.getTextWidth(x,e)),s=e.width,l=this.getCharWidth(`
2229
+ `)}return r}};import{VideoTexture as uO,Texture as dO}from"three";var Rc=class{constructor(t=1e3*10){this.timeout=t;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...t){}remove(t){let e=this.cache.get(t);e&&(this.dispose(t,e.data),this.cache.delete(t),e.prev.next=e.next,e.next.prev=e.prev)}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let t=Date.now(),e=this.head.next;for(;e.time<t-this.timeout;)this.dispose(e.src,e.data),this.cache.delete(e.src),e=e.next,e.prev=this.head,this.head.next=e;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}has(t){return this.cache.get(t)?.data}load(t){let e=Date.now(),r=this.cache.get(t);return r===void 0?(r={data:this.create(t),src:t,time:e,next:null,prev:null},this.cache.set(t,r)):(r.time=e,r.prev.next=r.next,r.next.prev=r.prev),r.prev=this.tail.prev,r.next=this.tail,this.tail.prev.next=r,this.tail.prev=r,this.scheduleCleanup(),r.data}};var gp=class extends Rc{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,e){URL.revokeObjectURL(e)}},yp;function E0(n){return typeof n=="string"?n:(yp||(yp=new gp),yp.load(n))}var Vc=class{constructor(t,e){this.data=t;this.cache=e;this.refCount=0}deref(){if(this.refCount===0&&!1)throw new Error("ref count -1?");this.refCount-=1,this.refCount===0&&(this.cache.remove(this),this.dispose())}dispose(){if(this.refCount!==0&&!1)throw new Error("ref count is not 0")}},Gc=class{constructor(){this.cache=new Map}remove(t){if(this.cache.delete(t.data)===!1&&!1)throw new Error("ref count remove non-exists")}load(t){let e=this.cache.get(t);return e===void 0&&(e=this.create(t),this.cache.set(t,e)),e.refCount+=1,e}};var Ca=class extends Vc{constructor(e,r){super(e,r.imageHolderCache);this.data=e;this.shared=r;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type==="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.disposeTextures(),this.loaded=!1;let r=()=>{this.loaded=!0;let i=[1e3,1001,1002];for(let a of i){let s=this[a];s&&(s.image=this.img,s.needsUpdate=!0)}this.shared.requestRender()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,typeof e!="string"){var o=new FileReader;o.readAsDataURL(new Blob([e],{type:"video/mp4"}));let i;await new Promise(a=>{o.onloadend=s=>{i=s.target?.result,a(null)}}),this.img.src=i}else this.img.src=e;this.img.onloadeddata=()=>{r()}}else this.img=new Image,this.img.src=E0(e),this.img.onload=r}getTexture(e){let r=this[e];if(r)return r;{let o;return this.isVideo?o=new uO(this.img,void 0,e,e):o=new dO(this.img,void 0,e,e),this.loaded&&(o.needsUpdate=!0),this[e]=o,o}}disposeTextures(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}dispose(){super.dispose(),this.disposeTextures()}};1e3,1001,1002;var fr=class extends Ca{};import{Vector2 as Co,Vector3 as Jr,Vector4 as zc}from"three";function Dt(n,t){return t.color(n)}function D0(n,t){switch(n.type){case"fresnel":return hO(n,t);case"gradient":return mO(n,t);case"depth":return yO(n,t);case"normal":return gO(n,t);case"noise":return xO(n,t);case"rainbow":return vO(n,t);case"toon":return bO(n,t);case"outline":return SO(n,t);case"transmission":return wO(n,t);case"color":return fO(n,t);case"pattern":return _O(n,t)}}function pO(n){return{type:n.type}}function Ir(n,t){let{alpha:e,mode:r,isMask:o}=n,i=typeof e=="string"?(Number(t.getVariable(e))??100)/100:e;return{...pO(n),alpha:i,mode:r,isMask:o}}function fO(n,t){return{...Ir(n,t),color:Dt(n.color,t)}}function hO(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:a}=n;return{...Ir(n,t),color:Dt(a,t),bias:e,scale:r,intensity:o,factor:i}}function mO(n,t){let{gradientType:e,smooth:r,colors:o,steps:i,angle:a,offset:s,morph:l}=n;return{...Ir(n,t),gradientType:e,smooth:r,colors:o.map(d=>new zc(d[0],d[1],d[2],d[3])),num:o.length,steps:i,offset:new Co(...s),morph:new Co(...l),angle:a}}function yO(n,t){let{gradientType:e,near:r,far:o,isVector:i,isWorldSpace:a,origin:s,direction:l,colors:d,steps:c,smooth:u}=n;return{...Ir(n,t),gradientType:e,near:r,far:o,isVector:i,isWorldSpace:a,origin:new Jr(...s),direction:l?new Jr(...l):new Jr(1,0,0),colors:d.map(p=>p!==void 0?new zc(p[0],p[1],p[2],p[3]):new zc(0,0,0,0)),steps:c.slice(0,d.length),smooth:u}}function gO(n,t){let{cnormal:e}=n;return{...Ir(n,t),cnormal:new Jr(e[0],e[1],e[2])}}function xO(n,t){return{...Ir(n,t),scale:n.scale,move:n.move,fA:new Co(...n.fA),fB:new Co(...n.fB),size:new Jr(...n.size),distortion:new Co(...n.distortion),colorA:Dt(n.colorA,t),colorB:Dt(n.colorB,t),colorC:Dt(n.colorC,t),colorD:Dt(n.colorD,t),noiseType:n.noiseType,voronoiStyle:n.voronoiStyle,highCut:n.highCut,lowCut:n.lowCut,smoothness:n.smoothness,seed:n.seed,quality:n.quality}}function vO(n,t){return{...Ir(n,t),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Jr(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Jr(...n.offset)}}function bO(n,t){return{...Ir(n,t),positioning:n.positioning,colors:n.colors.map(e=>new zc(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Jr(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:Dt(n.shadowColor,t),offset:new Jr(...n.offset)}}function SO(n,t){return{...Ir(n,t),outlineColor:Dt(n.outlineColor,t),contourColor:Dt(n.contourColor,t),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:new Jr(...n.contourDirection),positionalLines:n.positionalLines,compensation:n.compensation}}function wO(n,t){return{...Ir(n,t),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}function _O(n,t){return{...Ir(n,t),style:n.style,projection:n.projection,axis:n.axis,blending:n.blending,offset:new Co(...n.offset),colorA:Dt(n.colorA,t),colorB:Dt(n.colorB,t),frequency:new Co(...n.frequency),size:n.size,variation:n.variation,smoothness:n.smoothness,zigzag:n.zigzag,rotation:n.rotation,vertical:new Co(...n.vertical),horizontal:new Co(...n.horizontal),sides:n.sides}}var an=class extends ht{};import{Vector4 as AO}from"three";var xp={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],light:["roughnessMap","bumpMap"],depth:["smooth","isWorldSpace","gradientType","isVector"],pattern:["style","projection","axis"]},vp={depth:["colors"]};function TO(n,t,e){if(t==="isMask")return!0;let r=xp[n.type],o=vp[n.type];if(o!==void 0){let i=n.color;if(o.includes(t)){let a=i[t]?.value?.length;if(a!==void 0&&a!==e.length)return!0}}return r!==void 0?r.includes(t):!1}function bp(n,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,i=n;if("image"in i){let a=i.image,s=t.image(a),l=r;l.image instanceof fr||l.image.deref(),l.image=s}if("video"in i){let a=i.video,s=t.video(a),l=r;l.image instanceof fr||l.image.deref(),l.image=s}if("wrapping"in i){let a=r;a.wrap=i.wrapping}if("repeat"in i||"offset"in i){let a="mat",s=e.uniforms[`f${e.id}_${a}`];"repeat"in i&&(s.repeat=i.repeat),"offset"in i&&(s.offset=i.offset),s.updateMatrix()}return o}function L0(n,t,e,r){let o=!1;for(let[i,a]of Object.entries(n)){if(i==="bumpMap"||i==="roughnessMap"){o=!0;continue}if(!i||a===void 0)continue;if(Sp(i,e,r,t)){i==="visible"&&e.type==="light"&&(o=!0);continue}e.visible=r.visible;let s=e.uniforms[`f${e.id}_${i}`];if(!!s&&!(s instanceof on))switch(o=o||TO(e,i,a),s.constructor){case Le:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof an?s.value=new ht(l.r,l.g,l.b,l.a):s.setRGBA(l);break}case Kt:if(typeof a=="string"){let l=t.getColor(a);l&&(s.value=l);break}else{let l=a;s.value instanceof an?s.value=new ht(l.r,l.g,l.b,l.a):s.value.setRGBA(l.r,l.g,l.b,l.a);break}case Ke:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]);break}case Nt:{let l=a;s.value.setX(l[0]),s.value.setY(l[1]),s.value.setZ(l[2]);break}case Ft:{bp(a,t,e);break}case Mr:{s.value=a.map(l=>new AO(...l));break}default:{s.value=a;break}}}return o}var sn=(n,t,e)=>Math.max(0,Math.min(1,Number(t.getVariable(typeof n=="number"?n*100:n,e)??100)/100))??1,to=class{constructor(t,e,r,o,i){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let a in o)this.uniforms[`f${this.id}_${a}`]=o[a];for(let a in r)Sp(a,this,r,i)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return lr.createLigherLayer(t,e,r,o);if(r.type==="texture"||r.type==="video"){let i=r.type==="texture"?o.image(r.texture.image):o.video(r.texture.video),a=new Ln(i,r.texture.wrapping),s=new Lc(i),l=new Bc(r.texture.repeat,r.texture.offset),d=new J(r.crop?1:0),c=new _e(r.projection??0),u=new _e(["x","y","z"].indexOf(r.axis)??0),p=new _e(r.side??0),f=new Ke(r.size?new Nr(r.size[0],r.size[1]):new Nr(100,100)),h=new J(r.blending??0),m=new J(sn(r.alpha,o)),y=new _e(r.mode??0),g=new et(r.isMask??!1),x=new nn(a,s,d,c,u,p,f,h,l,m,y,g),S=new Ee(x.calpha,"f");return new We(t,e,r,{texture:a,textureSize:s,crop:d,projection:c,axis:u,side:p,size:f,blending:h,mat:l,alpha:m,mode:y,isMask:g},x,y,S,g,o)}else if(r.type==="matcap"){let i=o.image(r.texture.image),a=new Ln(i,r.texture.wrapping),s=new J(sn(r.alpha,o)),l=new _e(r.mode??0),d=new et(r.isMask??!1),c=new xa(a,s,l,d),u=new Ee(c.calpha,"f");return new We(t,e,r,{texture:a,alpha:s,mode:l,isMask:d},c,l,u,d,o)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new Nt(new eo(...r.offset)),a=new J(r.scale??10),s=new J(r.intensity??8),l=new J(r.movement??1),d=new _e(r.noiseType??0),c=new _e(r.voronoiStyle??0),u=new J(r.smoothness??.5),p=new J(r.seed??0),f=new J(r.highCut??1),h=new J(r.lowCut??0),m=new _e(r.quality??1),y=new Ta(s,l,i,c,u,p,f,h,m,a,d);return new Ns(t,e,r,{offset:i,scale:a,intensity:s,movement:l,noiseType:d,voronoiStyle:c,smoothness:u,seed:p,highCut:f,lowCut:h,quality:m},y,o)}else throw new Error;else return OO(t,e,r,o)}updateByOp(t,e,r){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props||"visible"in o.props?(r.scene.markNeedsUpdateRendererDirty(),!0):L0(o.props,r.shared,this,e)}else if(o.path[0]==="texture")return"texture"in e||"video"in e?bp(o.props,r.shared,this):!0;return!1}dispose(){if(CO(this)){let t=this.uniforms[`f${this.id}_texture`];if(!t)return!1;let e=t;e.image instanceof fr||e.image.deref()}}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}},We=class extends to{constructor(e,r,o,i,a,s,l,d,c){super(e,r,o,i,c);this.params=i;this.color=a;this.mode=s;this.alpha=l;this.isMask=d}},Ns=class extends to{constructor(e,r,o,i,a,s){super(e,r,o,i,s);this.position=a}},lr=class extends to{constructor(e,r,o,i,a,s){super(e,r,o,a,s);this.node=i}static createLigherLayer(e,r,o,i){let a,s=new J(sn(o.alpha,i)),l=new _e(o.mode),d=new J(o.bumpMapIntensity),c=new J(sn(o.alphaOverride,i)),u;if(!o.visible)a=new Vn,u={};else if(o.category==="lambert"){a=new Ps;let p=new Le(i.color(o.emissive)??0),f=new et(o.occlusion??!0);u={emissive:p,occlusion:f},a.emissive=p,a.occlusion=f}else if(o.category==="toon"){a=new Is;let p=new J(o.shininess??30),f=new Le(i.color(o.specular)??1118481);u={shininess:p,specular:f},a.shininess=p,a.specular=f}else if(o.category==="physical"){a=new Ms;let p=new J(o.roughness??.3),f=new J(o.metalness??0),h=new J(o.reflectivity??.5),m=new et(o.occlusion??!0);u={roughness:p,metalness:f,reflectivity:h,occlusion:m},a.roughness=p,a.metalness=f,a.reflectivity=h,a.occlusion=m}else{a=new Os;let p=new J(o.shininess??30),f=new Le(o.specular!==void 0?i.color(o.specular)??1118481:1118481),h=new et(o.occlusion??!0);u={shininess:p,specular:f,occlusion:h},a.shininess=p,a.specular=f,a.occlusion=h}return a.alpha=new J(1),a.shadingAlpha=s,a.shadingBlend=l,a.bumpMapIntensity=d,a.alphaOverride=c,u.alpha=a.shadingAlpha,u.mode=a.shadingBlend,u.bumpMapIntensity=a.bumpMapIntensity,u.alphaOverride=a.alphaOverride,new lr(e,r,o,a,u,i)}get category(){return this.node.category}};function CO(n){let t=n instanceof to?n.type:n;return t==="texture"||t==="video"||t==="displace_map"||t==="matcap"}function hr(n){return{alpha:new J(n.alpha??1),mode:new _e(n.mode??0),isMask:new et(n.isMask??!1)}}function PO(n,t,e,r,o){switch(n.type){case"color":{let i=new Le(r.color??dt),a=hr(r),s=new Bn(i,a.alpha),l=new Ee(s.calpha,"f");return new We(t,e,n,{color:i,...a},s,a.mode,l,a.isMask,o)}case"fresnel":{let i=new Le(r.color??16777215),a=new J(r.bias??.1),s=new J(r.scale??1),l=new J(r.intensity??2),d=new J(r.factor??1),c=hr(r),u=new Ts(i,a,s,l,d,c.alpha,c.mode,c.isMask),p=new Ee(u.calpha,"f");return new We(t,e,n,{color:i,bias:a,scale:s,intensity:l,factor:d,...c},u,c.mode,p,c.isMask,o)}case"rainbow":{let i=new J(r.filmThickness??30),a=new J(r.movement??0),s=new Nt(r.wavelengths??new eo(0,0,0)),l=new J(r.noiseStrength??0),d=new J(r.noiseScale??1),c=new Nt(r.offset??new eo(0,0,0)),u=hr(r),p=new wa(i,a,s,l,d,c,u.alpha,u.isMask),f=new Ee(p.calpha,"f");return new We(t,e,n,{filmThickness:i,movement:a,wavelengths:s,noiseStrength:l,noiseScale:d,offset:c,...u},p,u.mode,f,u.isMask,o)}case"transmission":{let i=new J(r.thickness??10),a=new J(r.ior??1.5),s=new J(r.roughness??.5),l=be.transmissionSize,d=be.transmissionRenderTarget,c=be.transmissionRenderTargetDepth,u=window.innerWidth,p=window.innerHeight,f=u>=p?new Ke(p/u,1):new Ke(1,u/p),h=hr(r),m=new Aa(i,a,s,l,d,c,f,h.alpha),y=new Ee(m.calpha,"f");return new We(t,e,n,{thickness:i,ior:a,roughness:s,aspectRatio:f,...h},m,h.mode,y,h.isMask,o)}case"toon":{let i=new _e(r.positioning??0),a;r.colors?a=new Mr(r.colors.length,r.colors):(a=new Mr(10,new Pa(0,0,0,1)),a.value[1]=new Pa(1,1,1,1));let s;r.steps?s=new Or(r.steps.length,r.steps):(s=new Or(10,1),s.value[0]=0);let l=new Nt(r.source??new eo(0,0,0)),d=new et(r.isWorldSpace??!0),c=new J(r.noiseStrength??0),u=new J(r.noiseScale??1),p=new Kt(r.shadowColor),f=new Nt(r.offset??new eo(0,0,0)),h=hr(r),m=new _a(i,a,s,l,d,c,u,p,f,h.alpha),y=new Ee(m.calpha,"f");return new We(t,e,n,{positioning:i,colors:a,steps:s,source:l,isWorldSpace:d,noiseStrength:c,noiseScale:u,shadowColor:p,offset:f,...h},m,h.mode,y,h.isMask,o)}case"outline":{let i=new Le(r.outlineColor??16777215),a=new Le(r.contourColor??16777215),s=new J(r.outlineWidth??.1),l=new J(r.contourWidth??.1),d=new J(r.outlineThreshold??.1),c=new J(r.contourThreshold??.1),u=new J(r.outlineSmoothing??.1),p=new J(r.contourFrequency??.1),f=new Nt(r.contourDirection??new eo(0,1,0)),h=new et(r.positionalLines??!1),m=new et(r.compensation??!0),y=be.normalRenderTarget,g=be.normalRenderTargetDepth,x=be.pixelRatioNode,S=be.resolution,w=hr(r),b=new ba(i,a,s,l,d,c,u,p,f,h,m,S,y,g,x,w.alpha),_=new Ee(b.calpha,"f");return new We(t,e,n,{outlineColor:i,contourColor:a,outlineWidth:s,contourWidth:l,outlineThreshold:d,contourThreshold:c,outlineSmoothing:u,contourFrequency:p,contourDirection:f,positionalLines:h,compensation:m,...w},b,w.mode,_,w.isMask,o)}case"depth":{let i=new _e(r.gradientType??0),a=new et(r.smooth??!1),s=new J(r.near??50),l=new J(r.far??200),d=new J(r.isVector??1),c=new J(r.isWorldSpace??0),u=new Nt(r.origin??new eo),p=new Nt(r.direction??new eo),f;r.colors?f=new Mr(r.colors.length,r.colors):(f=new Mr(2,new Pa(0,0,0,1)),f.value[1]=new Pa(1,1,1,1));let h;r.steps?h=new Or(r.steps.length,r.steps):(h=new Or(2,1),h.value[0]=0);let m=hr(r),y=new ya(i,a,s,l,d,c,u,p,f,h,m.alpha,m.isMask),g=new Ee(y.calpha,"f");return new We(t,e,n,{gradientType:i,smooth:a,near:s,far:l,isVector:d,isWorldSpace:c,origin:u,direction:p,colors:f,steps:h,...m},y,m.mode,g,m.isMask,o)}case"noise":{let i=new J(r.scale??1),a=new Nt(r.size??new eo(100,100,100)),s=new J(r.move??1),l=new Ke(r.fA??new Nr(1.7,9.2)),d=new Ke(r.fB??new Nr(8.3,2.8)),c=new Ke(r.distortion??new Nr(1,1)),u=new Kt(r.colorA),p=new Kt(r.colorB),f=new Kt(r.colorC),h=new Kt(r.colorD),m=new _e(r.noiseType??0),y=new _e(r.voronoiStyle??0),g=new J(r.highCut??1),x=new J(r.lowCut??0),S=new J(r.smoothness??.5),w=new J(r.seed??.5),b=new _e(r.quality??1),_=hr(r),A=new va(i,a,s,l,d,c,u,p,f,h,_.alpha,m,_.isMask,y,g,x,S,w,b),v=new Ee(A.calpha,"f");return new We(t,e,n,{scale:i,size:a,move:s,fA:l,fB:d,distortion:c,colorA:u,colorB:p,colorC:f,colorD:h,noiseType:m,..._,voronoiStyle:y,highCut:g,lowCut:x,smoothness:S,seed:w,quality:b},A,_.mode,v,_.isMask,o)}case"normal":{let i=new Nt(r.cnormal??new eo(1,1,1)),a=hr(r),s=new fa(i,a.alpha),l=new Ee(s.calpha,"f");return new We(t,e,n,{cnormal:i,...a},s,a.mode,l,a.isMask,o)}case"gradient":{let i=new _e(r.gradientType??0),a=new et(r.smooth??!1),s;r.colors?s=new Mr(r.colors.length,r.colors):(s=new Mr(10,new Pa(0,0,0,1)),s.value[1]=new Pa(1,1,1,1));let l;r.steps?l=new Or(r.steps.length,r.steps):(l=new Or(10,1),l.value[0]=0);let d=new Ke(r.offset??new Nr(0,0)),c=new Ke(r.morph??new Nr(0,0)),u=new J(r.angle??0),p=hr(r),f=new ga(i,a,s,l,d,c,u,p.alpha,p.isMask),h=new Ee(f.calpha,"f");return new We(t,e,n,{gradientType:i,smooth:a,colors:s,steps:l,offset:d,morph:c,angle:u,...p},f,p.mode,h,p.isMask,o)}case"pattern":{let i=new _e(r.style??0),a=new _e(r.projection??0),s=new _e(["x","y","z"].indexOf(r.axis)??0),l=new J(r.blending??0),d=new Ke(r.offset??new Nr(0,0)),c=new Kt(r.colorA),u=new Kt(r.colorB),p=new Ke(r.frequency??new Nr(10,10)),f=new J(r.size??.5),h=new J(r.variation??0),m=new J(r.smoothness??.5),y=new J(r.zigzag??0),g=new J(r.rotation??0),x=new Ke(r.vertical??new Nr(0,1)),S=new Ke(r.horizontal??new Nr(0,1)),w=new _e(r.sides??6),b=hr(r),_=new Sa(i,a,s,l,d,c,u,p,f,h,m,y,g,x,S,w,b.alpha,b.isMask),A=new Ee(_.calpha,"f");return new We(t,e,n,{style:i,projection:a,axis:s,blending:l,offset:d,colorA:c,colorB:u,frequency:p,size:f,variation:h,smoothness:m,zigzag:y,rotation:g,vertical:x,horizontal:S,sides:w,...b},_,b.mode,A,b.isMask,o)}default:{let i=new Le(1,0,0,1),a=hr(r),s=new Bn(i,a.alpha),l=new Ee(s.calpha,"f");return new We(t,e,n,{color:i,...a},s,a.mode,l,a.isMask,o)}}}function OO(n,t,e,r){let o=D0(e,r);return PO(e,n,t,o,r)}function Sp(n,t,e,r){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let o=t.uniforms[`f${t.id}_intensity`];return o?(o.value=e.intensity*(e.visible?1:0),o):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let o=t.uniforms[`f${t.id}_alpha`];if(!o)return;if(o.value=sn(e.alpha,r)*(e.visible?1:0),e.type==="outline"&&n==="visible"){let i=t.uniforms[`f${t.id}_compensation`];i&&(i.value=e.compensation&&e.visible)}return o}}function kc(n,t){let e=0,r=n.layers.find(o=>o.data.type==="light");if(r){let o=r.data,i=Number(t.getVariable(o.alphaOverride));if((typeof o.alphaOverride=="string"?i/100:o.alphaOverride)<1)return!0}for(let o of n.layers){if(o.data.type!=="displace"&&o.data.isMask)return!0;if(o.data.type!=="displace"&&"alpha"in o.data&&o.data.type!=="light"&&o.data.type!=="fresnel"&&o.data.type!=="texture"&&o.data.type!=="matcap"&&o.data.type!=="rainbow"&&o.data.type!=="outline"&&o.data.type!=="pattern"){let i=o.data.visible?o.data.alpha:0;if(typeof i=="string"&&(i=Math.max(0,Math.min(1,Number(t.getVariable(i)??100)/100))),i===1&&o.data.type==="depth"||o.data.type==="gradient"){for(let a of o.data.colors)if(a[3]<1){i=a[3];break}}else if(i===1&&o.data.type==="noise"){let a=t.color(o.data.colorA).a,s=t.color(o.data.colorB).a,l=t.color(o.data.colorC).a,d=t.color(o.data.colorD).a,c=Math.min(a,Math.min(s,Math.min(l,d)));c<1&&(i=c)}e+=(1-e)*i}}return e<1}var Zt=class extends MO{constructor(){super(void 0);this.flatShading=!1;this.needsJitter=!0;this.cacheKey="";this.fog=!0,this.dithering=!0,this.vertexColors=!0,this.transparent=!0}customProgramCacheKey(){return this.cacheKey}},Fc=class extends Zt{constructor(e,r,o,i){super();this.flatShading=e;this.side=r;this.wireframe=o;this.root=i}updateAfterBuild(){let e=this.root;this.lights=e.lights,this.vertexShader=e.vertexShader,this.fragmentShader=e.fragmentShader,this.defines=e.defines,this.uniforms=e.uniforms,this.extensions=e.extensions,this.transparent=e.transparent,this.cacheKey=e.customProgramCacheKey()+"flat"+this.flatShading+this.side}onBeforeCompile(e,r){this.root.onBeforeCompile(e)}get data(){return this.root.data}get category(){return this.root.category}get hasAO(){return this.root.hasAO}getFlavor(e,r,o){return this.root.getFlavor(e,r,o)}get layers(){return this.root.layers}get fragment(){return this.root.fragment}getLayersOfType(e){return this.root.getLayersOfType(e)}getLayerByUuid(e){return this.root.getLayerByUuid(e)}updateByOp(e,r,o){this.root.updateByOp(e,r,o)}nodeMaterialDispose(){this.root.nodeMaterialDispose()}},Gn=class extends Zt{constructor(e,r,o=!0){super();this.data=e;this.allowVariableSaves=o;this.layerIdGen=0;this.flavors=[];this.masks={};this.type="NodeMaterial";this.updaters=[],this.reset0(e,r)}get nodeMaterial(){return this}getFlavor(e,r,o){let i=o?6:(e?3:0)+r;if(i===0)return this;this.flavors===void 0&&(this.flavors=[]),i-=1;let a=this.flavors[i];return a===void 0&&(a=new Fc(e,r,o,this),this.flavors[i]=a,a.flatShading=e,a.side=r,a.updateAfterBuild()),a}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.category}get hasAO(){return this.lightLayer.getNode("occlusion")?.value??!1}reset(e,r){this.data!==e&&this.reset0(e,r)}reset0(e,r){this.data=e;let o=e.layers??Pt.defaultTwoLayerData("phong").layers;try{this.layers=o.map(i=>to.create(this.layerIdGen++,i.id,i.data,r.shared))}catch{this.layers=[]}this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r.shared),this.transparent=kc(e,r.shared),this.saveVariableLocations(r)}onVariableUpdate(e,r,o){if(e[0]==="alphaOverride")this.transparent=kc(this.data,o.shared),this.lightLayer.setValue("alphaOverride",Math.max(0,Math.min(Number(r)/100,1)));else if(e[0]==="layer"){let i=e[1],a=e[2];if(i&&a){let s=this.layers.find(l=>l.uuid===i);s?.hasValue(a)&&(a==="alpha"?(this.transparent=kc(this.data,o.shared),s.setValue(a,Math.max(0,Math.min(Number(r)/100,1)))):s.setValue(a,r))}}}saveVariableLocations(e){if(!this.allowVariableSaves)return;let r=this.data.layers.find(o=>o.data.type==="light");r&&e.shared.getVariable(r.data.alphaOverride,["material",this.uuid,"alphaOverride"]),this.data.layers.forEach(o=>{"alpha"in o.data&&typeof o.data.alpha=="string"&&e.shared.getVariable(o.data.alpha,["material",this.uuid,"layer",o.id,"alpha"])})}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.cacheKey=this.computeCacheKey(),this.lightLayer=this.layers.find(r=>r instanceof lr),this.lightLayer===void 0&&(this.lightLayer=new lr(0,"",{...zt.defaultData("light","phong"),visible:!1},new Vn,{},e)),this.dispose();for(let r of this.flavors)r&&r.dispose();this.applyTextureMaps(),this.applyMasks(),this.blendColors(),this.blendAfterColors(),this.blendPositions()}applyTextureMaps(){let e=this.layers.find(a=>a instanceof lr);if(!e)return;let r=e.data,o=r.bumpMap,i=r.roughnessMap;e.node.bumpMap=void 0,e.node.roughnessMap=void 0;for(let a=0;a<this.layers.length;++a){let s=this.layers[a];s instanceof We&&s.color instanceof nn&&(s.uuid===o&&(e.node.bumpMap=s.color),s.uuid===i&&(e.node.roughnessMap=s.color))}}updateByOp(e,r,o){if(r!==void 0?this.data=r:r=this.data,this.transparent=kc(r,o.shared),e.path[0]==="layers"){this.data=r;let i=o.shared,a=e.path[1];if(a===void 0){if(this.layers.reverse(),e.type===4){let s=to.create(this.layerIdGen++,e.id,e.data,o.shared);this.layers.splice(e.localIndex,0,s),o.scene.markNeedsUpdateRendererDirty()}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose(),o.scene.markNeedsUpdateRendererDirty();else if(e.type===6){let s=this.layers.findIndex(d=>d.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l),o.scene.markNeedsUpdateRendererDirty()}this.layers.reverse(),this.onUpdate(o.shared)}else{e.type===0&&e.props.occlusion!==void 0&&o.scene.markNeedsUpdateRendererDirty();let s=this.layers.find(l=>l.uuid===a);if(s){let l=r.layers.data(a),d;if(e.type===0&&("alpha"in e.props||"alphaOverride"in e.props)&&("alpha"in e.props?d={...e.props,alpha:sn(e.props.alpha,i,["material",this.uuid,"layer",a,"alpha"])}:d={...e.props,alphaOverride:sn(e.props.alphaOverride,i,["material",this.uuid,"alphaOverride"])}),s.updateByOp({...e,...d?{props:d}:{},path:e.path.slice(2)},l,o)){let u=to.create(this.layerIdGen++,a,l,i);this.layers.splice(this.layers.findIndex(p=>p.uuid===a),1,u),this.onUpdate(o.shared)}}}}else this.reset(r,o)}applyMasks(){for(let e=0;e<this.layers.length;++e){let r=this.layers[e];r instanceof We?r.color.mask=void 0:r instanceof lr&&(r.node.mask=void 0)}for(let e=0;e<this.layers.length;++e){let r=this.layers[e];if(r instanceof We&&r.isMask.value&&r.data.visible&&e>0){let o=e-1,i=this.layers[o];i instanceof lr?i.node.mask=new _t(r.color,r.alpha,_t.MUL):i instanceof We&&(i.isMask.value||(i.color.mask=new _t(r.color,r.alpha,_t.MUL)))}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof We),r=this.layers.findIndex(o=>o instanceof lr);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let a=this.layers[i];if(a instanceof We){if(a.isMask.value)continue;o=new pa(o,a.color,a.alpha,a.mode)}}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ee("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof lr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];if(i instanceof We){if(i.isMask.value)continue;e=new pa(e,i.color,i.alpha,i.mode)}}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof Ns);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new _t(r,e[o].position,_t.ADD),r=new _t(r,new J(.5).setReadonly(!0),_t.MUL));this.fragment.position=r}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}onBeforeCompile(e){this.build(),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,r){let o=(i,a,s)=>Math.min(Math.max(i,a),s);for(let i of this.layers)if(i.type==="displace"){let a=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=a}}computeCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.visible?r.category.toUpperCase():"Basic"}"`;else{let o=(xp[r.type]??[]).map(d=>r[d]),i=(vp[r.type]??[]).map(d=>r[d]?.length??0),a=[...o,...i],s="isMask"in r&&r.isMask,l=`"${r.type}-${r.visible}-${s}"`;a.length?e+=`[${l}, "${a.join('","')}"],`:e+=l}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(){let e=new Dc;e.needsJitter=this.needsJitter,this.lights=this.lightLayer.data.visible,e.build(this.fragment,this.fragment),this.vertexShader=e.getCode("vertex"),this.fragmentShader=e.getCode("fragment"),this.defines=e.defines,this.uniforms=e.uniforms,this.extensions=e.extensions,this.updaters=e.updaters;for(let r of this.flavors)r&&r.updateAfterBuild();return this}nodeMaterialDispose(){this.layers.forEach(e=>e.dispose()),super.dispose();for(let e of this.flavors)e&&e.dispose()}assetsLoaded(){for(let e of this.layers)if(e instanceof We){let r=e.params.texture;if(r instanceof Ln&&!r.image.loaded)return!1}return!0}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Zt.prototype,{properties:{get:function(){return this.fragment.properties}}});var zn=class extends Gn{constructor(t,e,r){super(t,e,!1),this.uuid=r,this.allowVariableSaves=!0,this.saveVariableLocations(e)}};var G0=Rt(B0());var R0=new Map;function V0(n){if(typeof n=="string")return n;let t=R0.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},R0.set(n,t)),t.url}var kn=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:V0(t),format:"wav"},this.sound=new G0.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),r!==void 0&&(this.delay=r),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};import{Box2 as IO,Vector2 as Fn,Path as z0,Shape as NO,ShapeUtils as EO,Color as DO}from"three";var Uc=class{constructor(){this.type="ShapePath";this.color=new DO;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new z0,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,r,o){return this.currentPath?.quadraticCurveTo(t,e,r,o),this}bezierCurveTo(t,e,r,o,i,a){return this.currentPath?.bezierCurveTo(t,e,r,o,i,a),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:e.ORIGIN,t:0};function o(m,y,g,x){let S=m.x,w=y.x,b=g.x,_=x.x,A=m.y,v=y.y,M=g.y,O=x.y,T=(_-b)*(A-M)-(O-M)*(S-b),C=(w-S)*(A-M)-(v-A)*(S-b),P=(O-M)*(w-S)-(_-b)*(v-A),I=T/P,D=C/P;if(P===0&&T!==0||I<=0||I>=1||D<0||D>1)return null;if(T===0&&P===0){for(let G=0;G<2;G++)if(i(G===0?g:x,m,y),r.loc===e.ORIGIN){let N=G===0?g:x;return{x:N.x,y:N.y,t:r.t}}else if(r.loc===e.BETWEEN){let N=+(S+r.t*(w-S)).toPrecision(10),F=+(A+r.t*(v-A)).toPrecision(10);return{x:N,y:F,t:r.t}}return null}else{for(let F=0;F<2;F++)if(i(F===0?g:x,m,y),r.loc===e.ORIGIN){let B=F===0?g:x;return{x:B.x,y:B.y,t:r.t}}let G=+(S+I*(w-S)).toPrecision(10),N=+(A+I*(v-A)).toPrecision(10);return{x:G,y:N,t:I}}}function i(m,y,g){let x=g.x-y.x,S=g.y-y.y,w=m.x-y.x,b=m.y-y.y,_=x*b-w*S;if(m.x===y.x&&m.y===y.y){r.loc=e.ORIGIN,r.t=0;return}if(m.x===g.x&&m.y===g.y){r.loc=e.DESTINATION,r.t=1;return}if(_<-Number.EPSILON){r.loc=e.LEFT;return}if(_>Number.EPSILON){r.loc=e.RIGHT;return}if(x*w<0||S*b<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+b*b)){r.loc=e.BEYOND;return}let A;x!==0?A=w/x:A=b/S,r.loc=e.BETWEEN,r.t=A}function a(m,y){let g=[],x=[];for(let S=1;S<m.length;S++){let w=m[S-1],b=m[S];for(let _=1;_<y.length;_++){let A=y[_-1],v=y[_],M=o(w,b,A,v);M!==null&&g.find(O=>O.t<=M.t+Number.EPSILON&&O.t>=M.t-Number.EPSILON)===void 0&&(g.push(M),x.push(new Fn(M.x,M.y)))}}return x}function s(m,y,g){let x=new Fn;y.getCenter(x);let S=[];return g.forEach(w=>{w.boundingBox.containsPoint(x)&&a(m,w.points).forEach(_=>{S.push({identifier:w.identifier,isCW:w.isCW,point:_})})}),S.sort((w,b)=>w.point.x-b.point.x),S}function l(m,y,g,x,S){(S==null||S==="")&&(S="nonzero");let w=new Fn;m.boundingBox.getCenter(w);let b=[new Fn(g,w.y),new Fn(x,w.y)],_=s(b,m.boundingBox,y);_.sort((C,P)=>C.point.x-P.point.x);let A=[],v=[];_.forEach(C=>{C.identifier===m.identifier?A.push(C):v.push(C)});let M=A[0].point.x,O=[],T=0;for(;T<v.length&&v[T].point.x<M;)O.length>0&&O[O.length-1]===v[T].identifier?O.pop():O.push(v[T].identifier),T++;if(O.push(m.identifier),S==="evenodd"){let C=O.length%2===0,P=O[O.length-2];return{identifier:m.identifier,isHole:C,for:P}}else if(S==="nonzero"){let C=!0,P=null,I=null;for(let D=0;D<O.length;D++){let G=O[D];y[G]&&(C?(I=y[G].isCW,C=!1,P=G):I!==y[G].isCW&&(I=y[G].isCW,C=!0))}return{identifier:m.identifier,isHole:C,for:P}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let d=0,c=999999999,u=-999999999,p=[];this.subPaths.forEach(m=>{let y=m.getPoints(),g=-999999999,x=999999999,S=-999999999,w=999999999;for(let b=0;b<y.length;b++){let _=y[b];_.y>g&&(g=_.y),_.y<x&&(x=_.y),_.x>S&&(S=_.x),_.x<w&&(w=_.x)}u<=S&&(u=S+1),c>=w&&(c=w-1),y.length&&p.push({curves:m.curves,points:y,isCW:EO.isClockWise(y),identifier:d++,boundingBox:new IO(new Fn(w,x),new Fn(S,g))})});let f=p.map(m=>l(m,p,c,u,this.userData?.style.fillRule)),h=[];return p.forEach(m=>{let y=f[m.identifier];if(y&&!y.isHole){let g=new NO;g.curves=m.curves,f.filter(S=>S?.isHole&&S.for===m.identifier).forEach(S=>{if(S){let w=p[S.identifier],b=new z0;b.curves=w.curves,g.holes.push(b)}}),h.push(g)}}),h}};var F0,wp=new Promise(n=>{F0=n}),k0=!1;var Hc;function j0(){if(k0)return;if(Hc)return Hc;async function n(){let e=await import("./opentype.js");F0(e),k0=!0}return Hc=n(),Hc}var Es=class{async load(t,e,r=()=>{}){let{load:o}=await wp;o(t,(i,a)=>{i||!a?r(i??"Something went wrong"):e(a)})}async parse(t){let{parse:e,Bidi:r}=await wp;try{let o=e(t),i=new r,a=s=>o.charToGlyphIndex(s.char);return i.registerModifier("glyphIndex",null,a),i.applyFeatures(o,o.defaultRenderOptions.features),{font:o,bidi:i}}catch(o){console.error(o)}}};async function LO(n){return await(await fetch(n)).arrayBuffer()}var BO=new Es;async function _p(n){let t,e,r=!1;if(n.url?(t=await LO(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer.slice(n.data.byteOffset,n.data.byteOffset+n.data.byteLength)),t){let o=await BO.parse(t);if(o)return{font:o.font,url:e,intercepted:r,arr:t,bidi:o.bidi}}}import{CubicBezierCurve as RO,LineCurve as VO,QuadraticBezierCurve as GO}from"three";function zO(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var qc=class{constructor(t){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=_p(t).then(e=>{e&&(this._arrayBuffer=e.arr,this._url=e.url,this.font=e.font,this._intercepted=e.intercepted,this._isLoaded=!0,this._bidi=e.bidi)})}update(t){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=_p(t).then(e=>{e&&(this._arrayBuffer=e.arr,this._url=e.url,this.font=e.font,this._intercepted=e.intercepted,this._isLoaded=!0,this._bidi=e.bidi)})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(t,e,r){if(!this._bidi)return[];let o=this._bidi;o.getTextGlyphs(e);let i=o.tokenizer.tokens,a=[],s=0,l=r.length===i.length;for(let d=0;d<r.length;d++){let c=r[d].index,u=String.fromCharCode(r[d].unicode),p=i[s];if(zO(c,p)||l)a.push({char:u,index:c,replacements:[p.state.glyphIndex],replacementChars:[p.char]}),s++;else{let f=p.char,h="",m=[p.state.glyphIndex],y=[],g=!1;for(;!g;)s++,h=e.charAt(s),f+=h,m.push(t.charToGlyphIndex(h)),y=t.stringToGlyphs(f),y.length===1&&y[0].index===c&&(g=!0),s>e.length&&(g=!0);a.push({char:u,index:c,replacements:m,replacementChars:Array.from(f)}),s++}}return a}generateShapes(t,e){if(!this._isLoaded)return;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,a=t.map(x=>this.getTextWidth(x,e)),s=e.width,l=this.getCharWidth(`
2230
2230
  `,e),d=e.horizontalAlign===1?l:0,c=this.computeSpaceWidthForLine(t,0,e),u=this.getLineInitialOffsetX(a[0],s,e.horizontalAlign,t[0],l),p=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),f=[],h=t.map(x=>[]),m=t.map(x=>[]),y;for(let x=0;x<t.length;x++){let S=t[x],w={features:{liga:!0}},b=[];try{b=r.stringToGlyphs(S,w)}catch(A){console.warn(A)}u=this.getLineInitialOffsetX(a[x],s,e.horizontalAlign,S,l);let _=[];try{_=this.reverseLigaturesTable(r,S,b)}catch(A){console.warn(A)}c=this.computeSpaceWidthForLine(t,x,e);for(let A=0;A<b.length;A++){let v=b[A],M=v.index===0?`
2231
2231
  `:v.unicode?String.fromCharCode(v.unicode):void 0,O=_[A],T=0,C=0;A===0&&e.horizontalAlign===2&&v.leftSideBearing!==void 0&&(C=-v.leftSideBearing*o),y&&(T=r.getKerningValue(v,y)*o),u+=C+T;let P=0;if(M===`
2232
- `)P=d;else if(M===" ")P=c;else{let I=this.createPath(v,o,u,p,e);I&&(P=I.offsetX-(T+C),f.push(I.path))}if(O.replacements.length===1)m[x].push([u,p]),h[x].push(P);else{let I=O.replacements.map(F=>(r.glyphs.get(F).advanceWidth??0)*o),L=I.reduce((F,B)=>F+=B,0),G=I.map(F=>F/L),N=u;for(let F=0;F<G.length;F++){let B=P*G[F];m[x].push([N,p]),h[x].push(B),N+=B}}u+=P,y=v}p-=i}let g=[];for(let x=0,S=f.length;x<S;x++)g.push(...f[x].toShapes());return{shapes:g,charWidths:h,lineWidths:a,charCoords:m}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,r,o,i){return(r===3||r===2)&&o.indexOf(`
2233
- `)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let a=e*t,s=Math.abs(this.ascender-this.descender)*o,l=t-s,d=-this.ascender*o-l/2;return i===3?-(r-a-d):i===2?-(r*.5-a*.5-d):d}createPath(t,e,r,o,i){let a=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!a){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let s=new Uc,l=(t.advanceWidth??1)*e;if(t)for(let d of a.commands){let c=s.currentPath?.currentPoint;if(!(c&&d.type!=="Z"&&c.x===d.x&&-c.y===d.y))switch(d.type){case"M":s.moveTo(d.x,-d.y);break;case"L":s.lineTo(d.x,-d.y);break;case"Q":s.quadraticCurveTo(d.x1,-d.y1,d.x,-d.y);break;case"C":s.bezierCurveTo(d.x1,-d.y1,d.x2,-d.y2,d.x,-d.y);break}}return s.subPaths.forEach(d=>{let c=zO(d.curves);c!==void 0&&d.currentPoint.distanceTo(c)>0&&d.lineTo(c.x,c.y)}),{offsetX:l+i.fontSize*i.letterSpacing,path:s}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,r){let o=this.getCharWidth(" ",r),i=t[e];if(i){let a=this.countSpaces(i.trimEnd());if(r.horizontalAlign===4&&e<t.length-1&&a){let s=r.width,l=this.getTextWidth(i,r);return(s-(l-a*o))/a}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function zO(n){if(n.length){let t=n[0];if(t instanceof RO)return t.v1;if(t instanceof BO||t instanceof VO)return t.v0}}var Ap=class{constructor(){this.objects=new Map;this.unreachable=new Set}getCached(t){return this.objects.get(t)}get size(){return this.objects.size}get(t,e,r){let o=this.objects.get(t);return o===void 0?(o=this.createObject(t,e,r),this.objects.set(t,o)):o.isShared=!0,o}forceDelete(t){let e=this.objects.get(t);e&&(this.disposeObject(e),this.objects.delete(t))}mutateIfUnique(t,e){let r=this.objects.get(t);if(r&&r.isShared!==!0)return this.objects.delete(t),this.objects.set(e,r),r}startGc(){this.unreachable=new Set(this.objects.keys())}markAsReachable(t,e){let r=this.objects.get(t);e===r?this.unreachable.delete(t):!1&&console.warn("Reachable but deleted",t)}endGc(){this.unreachable.forEach(t=>{this.disposeObject(this.objects.get(t)),this.objects.delete(t)}),this.unreachable.clear()}dispose(){this.objects.forEach(t=>{this.disposeObject(t)}),this.objects.clear()}},Ds=class extends Ap{constructor(e){super();this.flatShading=e}disposeObject(e){e.dispose()}createObject(e,r,o){let i=Nn(e,r,this.flatShading,o);return i.computeBoundingSphere(),i}};var U0={markNeedsUpdateRendererDirty:()=>{}};import{MathUtils as H0}from"three";var Tp=class extends Gc{constructor(e){super();this.shared=e}create(e){return new Ca(e,this.shared)}},jn=class{constructor(t,e={}){this.data=t;this.geometryCache=new Ds(!0);this.geometryCache2=new Ds(!1);this.imageHolderCache=new Tp(this);this.thisContext={scene:U0,shared:this};this.deletedMaterial=new zn(Pt.defaultTwoLayerData("phong"),this.thisContext,"");this.deletedImage=new pr(Ri.emptyImage,this);this.deletedVideo=new pr(Pi.defaultVideo,this);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.variables={};this.mouseProperty=null;this.raycastProperty=null;this.requestRender=()=>{this._requestRender&&this._requestRender()};if(e.images)for(let[r,o]of Object.entries(e.images))this.addImage(r,o);if(e.videos)for(let[r,o]of Object.entries(e.videos))this.addVideo(r,o);if(e.audios)for(let[r,o]of Object.entries(e.audios))this.addAudio(r,o);this.reset(t)}setRequestRender(t){this._requestRender=t}setEntityOpContext(t){this.entityOpContext=t}reset(t,e=!1){this.resetLib(t.lib);for(let{id:r,data:o}of t.variables)this.addVariableHolder(r,o),e&&this.updateVariableHolder(r,o);for(let[r,o]of Object.entries(t.images))this.addImage(r,o);for(let[r,o]of Object.entries(t.videos))this.addVideo(r,o);for(let[r,o]of Object.entries(t.colors))this.addColor(r,o);for(let[r,o]of Object.entries(t.materials))this.addMaterial(r,o);for(let[r,o]of Object.entries(t.audios))this.addAudio(r,o);for(let[r,o]of Object.entries(t.fonts))this.addFont(r,o)}addMaterial(t,e){if(this.materials[t]){let r=this.materials[t];r.reset(e,this.thisContext),r.dispose()}else{let r=new zn(e,this.thisContext,t);this.materials[t]=r}}deleteMaterial(t){this.materials[t]&&(this.materials[t].nodeMaterialDispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):t==null?(console.error("material is undefined or null"),this.deletedMaterial):new Gn(t,this.thisContext)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),this.images[t].updateSrc(e.data),!0):(this.images[t]=new pr(e,this),!1)}deleteImage(t){let e=this.images[t];e&&(e.dispose(),delete this.images[t])}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):this.imageHolderCache.load(t)}addVideo(t,e){return this.videos[t]?(this.videos[t].updateSrc(e.data),!0):(this.videos[t]=new pr(e,this),!1)}deleteVideo(t){let e=this.videos[t];e&&(e.dispose(),delete this.videos[t])}getVideo(t){return this.videos[t]??this.deletedVideo}video(t){return typeof t=="string"?this.getVideo(t):this.imageHolderCache.load(t)}addColor(t,e){return this.colors[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),"a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new an(e.r,e.g,e.b,e.a):this.colors[t]=new an(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate();let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new ht(0,0,0,0))}else return"a"in t?new ht(t.r,t.g,t.b,t.a):new ht(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof kn)return e;{let r=new kn({src:e.data});return this.audios[t]=r,r}}deleteAudio(t){let e=this.audios[t];e&&(e instanceof kn&&e.dispose(),delete this.audios[t])}addFont(t,e){this.fonts[t]=new qc(e),this.fonts[t].loadingPromise.then(()=>this.requestRender())}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._requestRender=void 0,Object.values(this.audios).forEach(e=>{e instanceof kn&&e.dispose()}),this.audios={},this.geometryCache.dispose(),this.geometryCache2.dispose()}addVariableHolder(t,e){return this.variables[t]===void 0?(this.variables[t]={value:e.value,locations:[]},"dynamicVariableType"in e&&(this.variables[t].dynamicVariablePlayState="Playing",this.variables[t].dynamicVariableToggleIsForward=void 0),!0):(this.variables[t].value=e.value,!1)}resetDynamicVariablePlayState(){for(let t in this.variables)this.variables[t].dynamicVariablePlayState!==void 0&&(this.variables[t].dynamicVariablePlayState="Playing",this.variables[t].dynamicVariableToggleIsForward=void 0)}updateVariableHolder(t,e){this.updateVariable(t,e.value)}updateVariable(t,e){if(this.variables[t]===void 0)return!1;this.variables[t].value=e;let r=e;for(;typeof r=="string";)r=this.variables[r].value;let o=this.entityOpContext.scene;for(let i=this.variables[t].locations.length-1;i>=0;i--){let a=this.variables[t].locations[i];if(a[0]==="material"){let s=a[1],l=r,d={scene:o,shared:this},c=a.slice(2);o.traverseMaterial(p=>{let f=p.root??p;f.uuid===s&&f.onVariableUpdate(c,l,d)});let u=this.materials[s];u&&u.onVariableUpdate(c,l,d)}else{let s=o.find(a[0]);if(s===void 0){this.variables[t].locations.splice(i,1);continue}if(a[1]!=="geometry"){for(let l=1;l<a.length-1;l++)s=s[a[l]];a[1]==="rotation"?s[a[a.length-1]]=r*H0.DEG2RAD:s[a[a.length-1]]=r}if(s=o.find(a[0]),Ae.is(s)){if(a[1]==="position"||a[1]==="rotation"||a[1]==="scale")s.onVariableUpdate();else if(a[1]==="geometry"){let l=s;s.component&&(l=s.component);let d=l.dataPatched;l.chooseGeoemtryCache(this).forceDelete(d.geometry),l.createGeometryDelayed(this.entityOpContext),l.onVariableUpdate(!0),l.instances.forEach(c=>{let u=c.dataPatched;c.chooseGeoemtryCache(this).forceDelete(u.geometry),c.createGeometryDelayed(this.entityOpContext),c.onVariableUpdate(!0)})}}}}return!0}deleteVariable(t){this.variables[t]&&delete this.variables[t]}getVariable(t,e){if(Array.isArray(t)){if(t[0]==="mouse")return this.mouseProperty?.[t[1]]??0;if(t[0]==="raycast")return this.raycastProperty?.[t[1]]??0;let r=this.entityOpContext.scene.find(t[0]);if(t[1]==="width"||t[1]==="height"||t[1]==="depth")return r.geometry.userData.parameters[t[1]];for(let o=1;o<t.length;o++)r=r[t[o]];return t[1]==="rotation"&&(r*=H0.RAD2DEG),r}for(let r in this.variables){if(e===void 0)break;let o=this.variables[r],i=o.locations?.findIndex(a=>ot.equal(a,e));i!==void 0&&i!==-1&&o.locations.splice(i,1)}if(typeof t=="string"){let r=t,o=t;do{if(o=r,this.variables[r]===void 0)break;r=this.variables[r].value}while(typeof r=="string");return e&&this.variables[o]!==void 0&&this.variables[o].locations.push(e),r}else return t}getVariables(){return this.variables}getDynamicVariablePlayState(t){return this.variables[t]?.dynamicVariablePlayState}setDynamicVariablePlayState(t,e){this.variables[t]!==void 0&&(this.variables[t].dynamicVariablePlayState=e)}getDynamicVariableToggleIsForward(t){return this.variables[t]?.dynamicVariableToggleIsForward}setDynamicVariableToggleIsForward(t,e){this.variables[t]!==void 0&&(this.variables[t].dynamicVariableToggleIsForward=e)}resetLib(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r.asset);for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.asset);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r.asset);for(let[e,r]of Object.entries(t.fonts))this.addFont(e,r.asset);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,r.asset);for(let[e,r]of Object.entries(t.videos))this.addVideo(e,r.asset);for(let[e,r]of Object.entries(t.variables))this.addVariableHolder(e,r.asset)}updateLibByOp(t,e){t.path[0]==="images"?t.path.length===1&&t.type===1?this.addImage(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteImage(t.id):t.path[0]==="videos"?t.path.length===1&&t.type===1?this.addVideo(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteVideo(t.id):t.path[0]==="audios"?t.path.length===1&&t.type===1?this.addAudio(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteAudio(t.id):t.path[0]==="colors"?t.path.length===1&&t.type===1?this.addColor(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteColor(t.id):t.path[0]==="materials"?t.path.length===1&&t.type===1?this.addMaterial(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteMaterial(t.id):t.path[0]==="fonts"?t.path.length===1&&t.type===1?this.addFont(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteFont(t.id):t.path[0]==="variables"?t.path.length===1&&t.type===1?this.addVariableHolder(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteVariable(t.id):t.path[0]==="components"&&e.updateByLibOp(t,this)}updateByOp(t,e,r){this.data=e,t.path[0]==="images"?t.path.length===2&&t.type===0?t.props.data&&this.getImage(t.path[1]).updateSrc(t.props.data):t.path.length===1&&t.type===1?this.addImage(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteImage(t.id):t.path[0]==="videos"?t.path.length===2&&t.type===0?t.props.data&&this.getVideo(t.path[1]).updateSrc(t.props.data):t.path.length===1&&t.type===1?this.addVideo(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteVideo(t.id):t.path[0]==="audios"?t.path.length===2&&t.type===0?t.props.data&&this.addAudio(t.path[1],e.audios[t.path[1]]):t.path.length===1&&t.type===1?this.addAudio(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteAudio(t.id):t.path[0]==="colors"?t.path.length===2&&t.type===0?this.updateColor(t.path[1],t.props):t.path.length===1&&t.type===1?this.addColor(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteColor(t.id):t.path[0]==="materials"?t.path.length===1&&t.type===1?this.addMaterial(t.id,t.data):t.path.length===1&&t.type===2?this.deleteMaterial(t.id):t.path.length>1&&this.getMaterial(t.path[1]).updateByOp(nt.drop(t,2),e.materials[t.path[1]],{shared:this,scene:r}):t.path[0]==="fonts"?t.path.length===2&&t.type===0?this.updateFont(t.path[1],t,r):t.path.length===1&&t.type===1?this.addFont(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteFont(t.id):t.path[0]==="variables"?t.path.length===2&&t.type===0&&"value"in t.props?this.updateVariable(t.path[1],t.props.value):t.path.length===1&&t.type===4?this.addVariableHolder(t.id,t.data):t.path.length===1&&t.type===5&&this.deleteVariable(t.id):t.path[0]==="lib"&&this.updateLibByOp(nt.drop(t,1),r)}updateFont(t,e,r){if(e.props.url){let o=this.getFont(t),i={...this.data.fonts[t],url:e.props.url};o.update(i),o.loadingPromise.then(()=>this.requestRender()),r.updateFont(t,this)}}},q0=new jn(br.emptyData());var Jt=class extends It{updateByPatchedOp(e,r,o){if(super.updateByPatchedOp(e,r,o),Dm(e.path,["materials"])!==null&&e.type===0&&Array.isArray(this.material))for(let[i,a]of Object.entries(e.props)){let s=o.shared.material(a);this.material[Number(i)]=s}else if(Dt(e.path,["material"])&&this.material instanceof Zt)"material"in r&&typeof r.material!="string"&&this.material.updateByOp(nt.drop(e,1),r.material,o);else if(Dt(e.path,["materials","*"])&&Array.isArray(this.material)){let i=e.path[1];if("materials"in r&&i<this.material.length){let a=r.materials[i];typeof a!="string"&&this.material[i].updateByOp(nt.drop(e,2),a,o)}}}get needsAO(){return this.material!==void 0?(Array.isArray(this.material)?this.material[0]:this.material).hasAO:!1}updateState(e,r){super.updateState(e,r),e.castShadow!==void 0&&(this.castShadow=e.castShadow),e.receiveShadow!==void 0&&(this.receiveShadow=e.receiveShadow);let o=this.dataPatched;if(e.geometry?.type!=="NonParametricGeometry"&&"material"in e&&e.material!==void 0&&(this.disposeMaterial(),this.material=r.shared.material(e.material).getFlavor(o.flatShading,o.side,o.wireframe),r.scene.markNeedsUpdateRendererDirty()),e.geometry?.type==="NonParametricGeometry"&&("materials"in e&&e.materials!==void 0?(this.disposeMaterial(),this.material=e.materials.map(i=>r.shared.material(i).getFlavor(o.flatShading,o.side,o.wireframe)),r.scene.markNeedsUpdateRendererDirty()):"material"in e&&e.material!==void 0&&(this.disposeMaterial(),this.material=[r.shared.material(e.material).getFlavor(o.flatShading,o.side,o.wireframe)],r.scene.markNeedsUpdateRendererDirty())),e.flatShading!==void 0||e.wireframe!==void 0||e.side!==void 0)if(Array.isArray(this.material))for(let i=0;i<this.material.length;i++)this.material[i]=this.material[i].getFlavor(o.flatShading,o.side,o.wireframe);else this.material=this.material.getFlavor(o.flatShading,o.side,o.wireframe)}disposeMaterial(){this.material&&$s(this.material).forEach(e=>{e instanceof Zt&&(e instanceof zn||e.nodeMaterialDispose())})}dispose(){this.disposeMaterial(),super.dispose()}};import{BufferGeometry as FO,Matrix4 as Cp,Vector3 as K0,Vector4 as Pp}from"three";var W0=new K0,$0=new Pp,Y0=new Pp,jO=new K0,X0=new Cp,st=class extends Jt{constructor(e,r,o){super(e,r);this.data=r;this.isSkinnedMesh=!1;this.localGeometry=void 0,r.bindMode&&r.bindMatrix&&(this.bindMode=r.bindMode,this.bindMatrix=new Cp().fromArray(r.bindMatrix),this.bindMatrixInverse=new Cp)}chooseGeoemtryCache(e){return e.geometryCache}markGeometryAsReachable(e){this.geometryCreateDeleyed instanceof FO&&this.chooseGeoemtryCache(e).markAsReachable(this.dataPatched.geometry,this.geometryCreateDeleyed)}get geometry(){if(this.localGeometry!==void 0)return this.localGeometry;if(this.geometryCreateDeleyed instanceof jn){let e=this.geometryCreateDeleyed,r=this.chooseGeoemtryCache(e);this.geometryCreateDeleyed=r.get(this.dataPatched.geometry,e,this)}return this.geometryCreateDeleyed}set geometry(e){this.localGeometry=e}get is2DAndNoDepth(){let e=this.dataPatched.geometry;return os.is2DParametricMesh(e.type)&&e.depth===0}get is2DType(){return os.is2DParametricMesh(this.geometry.userData.type)}get isNonParametric(){return this.geometry.userData.type==="NonParametricGeometry"}updateByPatchedOp(e,r,o){super.updateByPatchedOp(e,r,o),Dt(e.path,["geometry"])&&this.updateByPatchedOpGeometry(nt.drop(e,1),r.geometry,o)}removeInteractionGeometry(){this.localGeometry?.dispose(),this.localGeometry=void 0}updateGeometryInteractions(e,r){this.invalidateDownstreamBooleanData();let o=this.data.geometry.type;if(o==="NonParametricGeometry"||o==="SubdivGeometry"){let i=e;if(this.localGeometry===void 0){let c={...this.data.geometry,...i};this.localGeometry=Nn(c,r,this.data.flatShading,this)}let a,s,l;i.scaleBaked?[a,s,l]=i.scaleBaked:{width:a,height:s,depth:l}=i;let d=this.localGeometry.userData;d.sxPrev!==void 0&&Ss(this.localGeometry.attributes,a/d.sxPrev,s/d.syPrev,l/d.szPrev),d.sxPrev=a,d.syPrev=s,d.szPrev=l}else{let i={...this.data.geometry,...e};this.localGeometry?.dispose(),this.localGeometry=Nn(i,r,this.data.flatShading,this)}}refreshAttachedCloners(e){for(let r of this.attachedSurfaceCloners)e.scene.addPendingUpdateCloner(r.object)}refreshAttachedPaths(e){for(let r of this.attachedPaths)e.scene.addPendingCommand(()=>r.updateShape())}createGeometryDelayed(e){this.geometryCreateDeleyed=e.shared,this.refreshAttachedCloners(e),this.refreshAttachedPaths(e)}updateByPatchedOpGeometry(e,r,o){let i=!1;e.type===0&&e.path.length===0&&Object.keys(e.props).includes("scaleBaked")&&this.geometryCreateDeleyed instanceof at&&this.chooseGeoemtryCache(o.shared).mutateIfUnique(this.geometryCreateDeleyed.data,r)===this.geometryCreateDeleyed&&(i=!0,this.geometryCreateDeleyed.mutateDirectlyScaleBaked(r,e.props.scaleBaked),this.refreshAttachedCloners(o),this.refreshAttachedPaths(o)),i||(o.scene?.markGeometryCacheDirty(),this.createGeometryDelayed(o)),this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateGeometryOnStateUpdate(e,r){this.createGeometryDelayed(r)}updateState(e,r){e.geometry!==void 0&&this.updateGeometryOnStateUpdate(e.geometry,r),super.updateState(e,r)}updateGeometryGroupsIfNeeded(){Array.isArray(this.material)&&this.geometry.groups.length===0&&this.geometry.addGroup(0,Math.max(this.geometry.getIndex()?.count??0,this.geometry.getAttribute("position").count),0)}updateEntityBoxSize(e,r){let o=this.geometry.userData.parameters;this.is2DType?e.set(0,0,o.depth*.5):this.isNonParametric?(e.setScalar(0),this.geometry.boundingSphere&&e.copy(this.geometry.boundingSphere.center),r.set(o.width,o.height,o.depth??0).multiplyScalar(.5)):e.setScalar(0),r.set(o.width,o.height,o.depth??0).multiplyScalar(.5)}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode==="attached"?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode==="detached"&&this.bindMatrixInverse.copy(this.bindMatrix).invert()}bind(e,r){this.skeleton=e,this.isSkinnedMesh=!0,r===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),r=this.matrixWorld),this.bindMatrix.copy(r),this.bindMatrixInverse.copy(r).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(e){let r=new Pp,o=this.geometry.attributes.skinWeight;for(let i=0,a=o.count;i<a;i++){r.fromBufferAttribute(o,i);let s=1/r.manhattanLength();s!==1/0?r.multiplyScalar(s):r.set(1,0,0,0),o.setXYZW(i,r.x,r.y,r.z,r.w)}}boneTransform(e,r){let o=this.skeleton;if(o===void 0)return;let i=this.geometry;$0.fromBufferAttribute(i.attributes.skinIndex,e),Y0.fromBufferAttribute(i.attributes.skinWeight,e),W0.copy(r).applyMatrix4(this.bindMatrix),r.set(0,0,0);for(let a=0;a<4;a++){let s=Y0.getComponent(a);if(s!==0){let l=$0.getComponent(a);X0.multiplyMatrices(o.bones[l].matrixWorld,o.boneInverses[l]),r.addScaledVector(jO.copy(W0).applyMatrix4(X0),s)}}return r.applyMatrix4(this.bindMatrixInverse)}};function HO(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes,r=e.position.array,o=e.normal.array,i=new Float32Array(r.length);for(let a=0;a<r.length;a+=3){let s=`${r[a]}_${r[a+1]}_${r[a+2]}`,l=new Mp(o[a],o[a+1],o[a+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new Mp})}t.forEach((a,s)=>{for(let l of a.normals)a.result.add(l);a.result.divideScalar(a.normals.length)});for(let a=0;a<r.length;a+=3){let s=`${r[a]}_${r[a+1]}_${r[a+2]}`,l=t.get(s)?.result;l&&(i[a]=l.x,i[a+1]=l.y,i[a+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new Q0(i,3))}function qO(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let e=n.geometry.attributes.position.array,r=new Float32Array(e.length),o=new Mp;for(let i=0;i<e.length;i+=3)o.set(e[i],e[i+1],e[i+2]).normalize(),r[i]=o.x,r[i+1]=o.y,r[i+2]=o.z;n.geometry.setAttribute("extrudeNormal",new Q0(r,3))}function Oa(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Zt)||n.material.getLayersOfType("outline").length===0)return;n instanceof st&&n.is2DAndNoDepth?qO(n):HO(n)}function Ma(n){if(!n.geometry.attributes.position)return;let e=n.geometry.attributes.position.array,r=new Float32Array(e.length),o=parseInt(n.uuid.replace(/\D/g,"")),i=[Op.seededRandom(o),Op.seededRandom(o+1e4),Op.seededRandom(o+2e4)];for(let a=0;a<e.length;a++)r[a]=i[a%3];n.geometry.setAttribute("randomColor",new UO(r,3))}var XO;ra.then(n=>{XO=n});var ro=new WO,Bs=new YO;function J0(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="SubdivGeometry"&&(t=!0)}),t}var Un=class extends st{constructor(e,r,o){super(e,r,o);this.data=r;this.hiddenMatrixOld=new $O;this.smoothShading=!0;this.skipReactionUpdate=!1}chooseGeoemtryCache(e){return this.dataPatched.flatShading?e.geometryCache:e.geometryCache2}get subdivPointerNew(){return this.localGeometry!==void 0?this.subdivPointer:this.geometry.ensureSubdivPointer()}get originalGeometryNew(){return this.localGeometry!==void 0?this.originalGeometry:this.geometry.originalGeometry}get phongAngle(){return this.data.geometry.phongAngle??45}updateEntityBoxSize(e,r){let o=this.geometry.userData.parameters;e.copy(this.originalGeometryNew.boundingSphere.center),r.set(o.width,o.height,o.depth??0).multiplyScalar(.5)}createGeometryByControls(e){if(this.skipReactionUpdate===!0)return;let r=this.localGeometry?.uuid,{originalGeometry:o,subdividedGeometry:i,subdivPointer:a}=at.build(e,this.subdivPointer,this.smoothShading,this.hasNonUniformScale?this.shearScale:void 0);this.subdivPointer=a,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.localGeometry=this.subdividedGeometry??this.originalGeometry,Oa(this),Ma(this),this.calcBoundingBox(),r&&(this.localGeometry.uuid=r)}updateState(e,r){if(super.updateState(e,r),e.flatShading!==void 0){let o=this.material;this.material=o.getFlavor(!1,o.side,o.wireframe),this.smoothShading=!e.flatShading,this.createGeometryDelayed(r)}}updateMesh(e=!1){at.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e&&this.hasNonUniformScale?this.shearScaleInv:void 0),this.subdividedGeometry&&at.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e&&this.hasNonUniformScale?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=at.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=at.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.localGeometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){let o=this.localGeometry;this.localGeometry=this.originalGeometryNew,It.prototype.raycast.call(this,e,r),this.localGeometry=o}activateSVDCompensation(){!this.hasNonUniformScale||(this.matrix.copy(this.matrixWorldRigid),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){!this.hasNonUniformScale||(this.updateMatrix(),this.hasNonUniformScale=void 0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new Z0,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let r=e.attributes.position,o=e.boundingSphere.center;ro.setFromBufferAttribute(r),ro.getCenter(o),e.boundingSphere.radius=o.distanceTo(ro.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ro.getSize(Bs),this.hasNonUniformScale&&Bs.divide(this.scale);let i={width:Bs.x,height:Bs.y,depth:Bs.z};return this.geometry.userData.parameters=i,i}updateBoundingSphere(e){let r=this.originalGeometry;ro.min.set(e[0],e[2],e[4]),ro.max.set(e[1],e[3],e[5]),this.hasNonUniformScale&&(ro.min.applyMatrix4(this.shearScaleInv),ro.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new Z0);let o=r.boundingSphere.center;ro.getCenter(o),r.boundingSphere.radius=o.distanceTo(ro.max)}freeSubdivPointer(){this.subdivPointer&&(at.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0),this.localGeometry=void 0,this.originalGeometry?.dispose(),this.subdividedGeometry?.dispose()}dispose(){super.dispose(),this.freeSubdivPointer()}updateByPatchedOpGeometry(e,r,o){super.updateByPatchedOpGeometry(e,r,o),this.localGeometry&&this.createGeometryByControls(r)}};import{Triangle as KO,Vector3 as qn}from"three";var ex=-1,QO=1,tx={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},rx={polygon_center:0,edge:1,vertex:2},Rs=(n,t)=>(e,r)=>!t||e===0||n===0?0:n*r/100,ve=(n,t)=>{let e=Math.abs(t),r=e*-1;return(n-ex)*(e-r)/(QO-ex)+r};function ox(n){let t=[],e={};for(var r=0,o=n.length;r<o;r++){var i=JSON.stringify(n[r].pos.map(a=>Math.round(a*1e4)/1e4));e[i]||(t.push(n[r]),e[i]=!0)}return t}var ZO=new qn,Wc=new qn,JO=new qn,eM=new qn;function Ia(n,t){let e=JO.fromArray(n),r=eM.fromArray(t);Wc.copy(r).sub(e);let o=Wc.length();return Wc.normalize().multiplyScalar(o*.5),ZO.copy(e).add(Wc).toArray()}var hr=new KO,$c=new qn,Yc=new qn,Hn=new qn;function nx(n){let t=[];for(let e=0;e<=n.index.count;e++)if($c.fromArray(n.index.array,e*3),hr.setFromAttributeAndIndices(n.attributes.position,$c.x,$c.y,$c.z),hr.getNormal(Yc),hr.getMidpoint(Hn),!(isNaN(Hn.x)||isNaN(Hn.y)||isNaN(Hn.z))){let{a:r,b:o,c:i}=hr,a=r.toArray(),s=o.toArray(),l=i.toArray(),d=r.distanceTo(o),c=o.distanceTo(i),u=i.distanceTo(r),p=Ia(a,s),f=Ia(s,l),h=Ia(l,a),m=[d,c,u],y=Math.max(...m),g=m.filter(w=>Math.round(w)===Math.round(y)).length>1,x=[],S=hr.getMidpoint(Hn).toArray();y===d&&!g&&(x=[f,h,h],S=p),y===c&&!g&&(x=[p,h,h],S=f),y===u&&!g&&(x=[p,f,f],S=h),g&&(x=[p,f,h]),t.push({vertices:[a,s,l],faceCenters:x,midpoint:S,norm:hr.getNormal(Yc).toArray()})}return t}function ix(n){let t=[],{position:e}=n.attributes;for(let r=0;r<e.count;r++){hr.setFromAttributeAndIndices(e,r*3,r*3+1,r*3+2),hr.getNormal(Yc),hr.getMidpoint(Hn);let o=hr.a.toArray(),i=hr.b.toArray(),a=hr.c.toArray();t.push({vertices:[o,i,a],faceCenters:[Ia(o,i),Ia(i,a),Ia(a,o)],midpoint:Hn.toArray(),norm:Yc.toArray()})}return t}var tM=4,rM=.5,Ip=n=>.5*(1-Math.cos(n*Math.PI)),Np=class{constructor(){this.perlin=new Array(4095+1)}noise(t,e=0,r=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let g=0;g<4095+1;g++)this.perlin[g]=Math.random()}t<0&&(t=-t),e<0&&(e=-e),r<0&&(r=-r);let o=Math.floor(t),i=Math.floor(e),a=Math.floor(r),s=t-o,l=e-i,d=r-a,c,u,p=0,f=.5,h,m,y;for(let g=0;g<tM;g++){let x=o+(i<<4)+(a<<8);c=Ip(s),u=Ip(l),h=this.perlin[x&4095],h+=c*(this.perlin[x+1&4095]-h),m=this.perlin[x+16&4095],m+=c*(this.perlin[x+16+1&4095]-m),h+=u*(m-h),x+=256,m=this.perlin[x&4095],m+=c*(this.perlin[x+1&4095]-m),y=this.perlin[x+16&4095],y+=c*(this.perlin[x+16+1&4095]-y),m+=u*(y-m),h+=Ip(d)*(m-h),p+=h*f,f*=rM,o<<=1,s*=2,i<<=1,l*=2,a<<=1,d*=2,s>=1&&(o++,s--),l>=1&&(i++,l--),d>=1&&(a++,d--)}return p}noiseSeed(t){let e=(()=>{let a,s;return{setSeed(l){s=a=(l??Math.random()*4294967296)>>>0},getSeed(){return a},rand(){return s=(1664525*s+1013904223)%4294967296,s/4294967296}}})();e.setSeed(t),this.perlin=new Array(4095+1);for(let r=0;r<4095+1;r++)this.perlin[r]=e.rand()}},ax=Np;import{Vector3 as oM,Matrix4 as nM,Ray as iM}from"three";var sx=new oM,lx=new nM,cx=new iM;function ux(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var Na=class extends st{constructor(e,r,o){super(e,r,o);this.data=r}get textGeometry(){return this.geometry}get charWidths(){return this.textGeometry.charWidths}get charCoords(){return this.textGeometry.charCoords}get wrappedText(){return this.textGeometry.wrappedText}get font(){return this.textGeometry.font}get initialOffsetY(){let e=this.dataPatched;return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,e.geometry.height,this.fontScale,e.geometry.verticalAlign)??0}get fontScale(){let e=this.dataPatched;return this.font?e.geometry.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){let e=this.dataPatched;return e.geometry.fontSize*e.geometry.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(!(isNaN(e.ray.origin.x)||this.scale.x===0||this.scale.y===0||this.scale.z===0)&&(lx.copy(o).invert(),cx.copy(e.ray).applyMatrix4(lx),cx.intersectBox(this.singleBBox,sx))){let i=sx.applyMatrix4(o),a=e.ray.origin.distanceTo(i);r.push({distance:a,point:i.clone(),object:this})}}};var jt=1e-4,oo,hx,mx,yx,px=new lr,fx=new lr;ra.then(n=>{oo=n,hx=[oo.get_face_center,oo.get_edge_midpoint,oo.get_vertex_position],mx=[oo.get_face_normal,oo.get_edge_normal,oo.get_vertex_normal],yx=[oo.face_count,oo.edge_count,oo.vertex_count]});var sM=new $n,lM=new $n,ln=new lr,Wn=new lr,Vs=new lr,Lp=new lr,cM=new lr,uM=new lr;var Po=new ax,La=class extends zi(aM){constructor(e,r){super();this.parameters=r;this.objectForSample=void 0;this._pendingMediaLoad=!1;this.object=e}resetOnMove(){this.removeFromParent(),this.parent=null}expandClones(e){if(this.parent===null)this.updateState(this.parameters,e);else for(let r of this.children)r instanceof wo&&r.expand()}invalidateTransform(e){this.matrixWorldNeedsUpdate=!0,this.traverse(r=>{r instanceof wo&&r.object===e&&(r.matrixWorldNeedsUpdate=!0)})}onObjUpdateMatrix(){this.parameters.type!=="toObject"&&(this.matrixWorldNeedsUpdate=!0)}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}for(let e of this.children)e.updateMatrix(),e.hasNonUniformScale&&(e.updateMatrixWorld(),e.updateMatrixWorldSVD())}_updateCount(e){let r;if(e!==void 0?r=e:r=this.parameters.type==="grid"?Math.round(this.parameters.grid.count[0])*Math.round(this.parameters.grid.count[1])*Math.round(this.parameters.grid.count[2]):this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(r=0),this.parameters.type==="toObject"&&this.objectForSample){for(let i=0,a=this.children.length;i<a;++i)this.remove(this.children[0]);let o=this.children;if(o.length===r)return;if(o.length<r)for(let i=0,a=r-o.length;i<a;++i){let s=new wo(this.object);s.expand(),this.add(s)}else for(let i=0,a=o.length-r;i<a;++i)this.remove(o[i])}else{if(this.children.length===r)return;if(this.children.length<r)for(let o=0,i=r-this.children.length;o<i;++o){let a=new wo(this.object);a.expand(),this.add(a)}else for(let o=0,i=this.children.length-r;o<i;++o)this.remove(this.children[0])}}_updateRadial(e){let r=e.radial,o=r.start*dx.DEG2RAD,i=r.end*dx.DEG2RAD,a=o-i,s=new Ep(r.rotation[0],r.rotation[1],r.rotation[2]),l;switch(r.axis){case"z":l=new lr(0,0,1);break;case"y":l=new lr(0,1,0);break;default:case"x":l=new lr(1,0,0);break}let d=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,c=d.noiseType==="perlin";Po.noiseSeed(d.seed);let u=tc((0,Ea.default)(d.seed)),p=Rs(d.strength,this.parameters.randomness);for(let[f,h]of this.children.entries()){let m=f*(d.freqScale/10)+d.movement,y=c?Po.noise(m):u(m,m),g=f+1;h.scale.x=r.scale[0]+p(g,ve(y,d.scale[0]))||jt,h.scale.y=r.scale[1]+p(g,ve(y,d.scale[1]))||jt,h.scale.z=r.scale[2]+p(g,ve(y,d.scale[2]))||jt,h.position.setScalar(0);let x=a/e.count*f-o;switch(r.axis){case"x":h.rotation.set(0,x,0);break;case"y":h.rotation.set(0,0,x);break;case"z":h.rotation.set(x,0,0);break}h.translateOnAxis(l,r.radius),h.position.x+=r.position[0]+p(g,ve(y,d.position[0])),h.position.y+=r.position[1]+p(g,ve(y,d.position[1])),h.position.z+=r.position[2]+p(g,ve(y,d.position[2]));let S=p(g,ve(y,d.rotation[0])),w=p(g,ve(y,d.rotation[1])),b=p(g,ve(y,d.rotation[2]));r.alignment===!0?(h.rotation.x+=s.x+S,h.rotation.y+=s.y+w,h.rotation.z+=s.z+b):h.rotation.set(s.x+S,s.y+w,s.z+b)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ep(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,a=i.noiseType==="perlin";Po.noiseSeed(i.seed);let s=tc((0,Ea.default)(i.seed)),l=Rs(i.strength,this.parameters.randomness);for(let[d,c]of this.children.entries()){let u=d*(i.freqScale/10)+i.movement,p=a?Po.noise(u):s(u,u),f=d+1,h=l(f,ve(p,i.rotation[0])),m=l(f,ve(p,i.rotation[1])),y=l(f,ve(p,i.rotation[2]));c.scale.x=1+(r.scale[0]-1)*d+l(f,ve(p,i.scale[0]))||jt,c.scale.y=1+(r.scale[1]-1)*d+l(f,ve(p,i.scale[1]))||jt,c.scale.z=1+(r.scale[2]-1)*d+l(f,ve(p,i.scale[2]))||jt,c.rotation.x=o.x*d+h,c.rotation.y=o.y*d+m,c.rotation.z=o.z*d+y,c.position.x=r.position[0]*d+l(f,ve(p,i.position[0])),c.position.y=r.position[1]*d+l(f,ve(p,i.position[1])),c.position.z=r.position[2]*d+l(f,ve(p,i.position[2]))}}_updateGrid(e){let r=0,o=e.grid,i=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,a=Rs(i.strength,this.parameters.randomness),s=i.noiseType==="perlin";Po.noiseSeed(i.seed);let l=Ry((0,Ea.default)(i.seed));if(o.useCenter===!0){let d={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},c=new lr(o.size[0]*(o.count[0]-d.x)*.5,o.size[1]*(o.count[1]-d.y)*.5,o.size[2]*(o.count[2]-d.z)*.5);for(let u=0;u<o.count[0];u++)for(let p=0;p<o.count[1];p++)for(let f=0;f<o.count[2];f++){let h=[(u+1)*(i.freqScale/10)+i.movement,(p+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],m=s?Po.noise(...h):l(...h),y=this.children[r++];y.scale.x=1+a(r,ve(m,i.scale[0]))||jt,y.scale.y=1+a(r,ve(m,i.scale[1]))||jt,y.scale.z=1+a(r,ve(m,i.scale[2]))||jt;let g=a(r,ve(m,i.rotation[0])),x=a(r,ve(m,i.rotation[1])),S=a(r,ve(m,i.rotation[2]));y.rotation.set(g,x,S),y.position.x=o.size[0]*u-c.x+a(r,ve(m,i.position[0])),y.position.y=o.size[1]*p-c.y+a(r,ve(m,i.position[1])),y.position.z=o.size[2]*f-c.z+a(r,ve(m,i.position[2]))}}else for(let d=0;d<o.count[0];d++)for(let c=0;c<o.count[1];c++)for(let u=0;u<o.count[2];u++){let p=[(d+1)*(i.freqScale/10)+i.movement,(c+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],f=s?Po.noise(...p):l(...p),h=this.children[r++];h.scale.x=1+a(r,ve(f,i.scale[0]))||jt,h.scale.y=1+a(r,ve(f,i.scale[1]))||jt,h.scale.z=1+a(r,ve(f,i.scale[2]))||jt;let m=a(r,ve(f,i.rotation[0])),y=a(r,ve(f,i.rotation[1])),g=a(r,ve(f,i.rotation[2]));h.rotation.set(m,y,g),h.position.x=o.size[0]*d+a(r,ve(f,i.position[0])),h.position.y=-o.size[1]*c+a(r,ve(f,i.position[1])),h.position.z=-o.size[2]*u+a(r,ve(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:r}=e,o=new Ep(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,a=i.noiseType==="perlin";Po.noiseSeed(i.seed);let s=tc((0,Ea.default)(i.seed)),l=Rs(i.strength,this.parameters.randomness);if(!r.object){for(let[,g]of this.children.entries())g.position.set(0,0,0),g.scale.setScalar(1),g.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;if(this.objectForSample instanceof Na)if(!this.objectForSample.font?.isLoaded||this.objectForSample.geometry.attributes.position===void 0){this._pendingMediaLoad=!0;return}else this._pendingMediaLoad=!1;if(this.objectForSample.geometry===void 0&&this.objectForSample.isAncestorOf(this.object.uuid)){console.warn(`Oh no! The object "${this.object.name}" (${this.object.uuid}) seem to be a child/descendant of the object it's being cloned to. Please re-parent it so that they are siblings instead.`);return}let d=this.getSubdivData(),c=[],u=g=>{let x=g.length,S=g.map(_=>_[0]).reduce((_,A)=>_+A,0),w=g.map(_=>_[1]).reduce((_,A)=>_+A,0),b=g.map(_=>_[2]).reduce((_,A)=>_+A,0);return[S/x,w/x,b/x]},p=g=>Math.round(g*1e6)/1e6;d.forEach(g=>{let x=d.filter(S=>p(g.pos[0])===p(S.pos[0])&&p(g.pos[1])===p(S.pos[1])&&p(g.pos[2])===p(S.pos[2]));x.length>1?c.push({pos:g.pos,norm:u(x.map(S=>S.norm))}):c.push(g)});let f=ox(c);if(f.length>0){let g=Math.round(f.length*r.count/100);this._updateCount(g)}else{let g=this.objectForSample.geometry.getAttribute("position");if(!g||isNaN(g.count)||g.count===0){console.warn(`Oh no! The object "${this.object.name}" (${this.object.uuid}) cannot be cloned on the surface of "${this.objectForSample.name}" (${this.objectForSample.uuid}) because the latter does not have a valid geometry.`);return}}this.objectForSample.updateMatrixWorld();let h=new rc(this.objectForSample).build(),m=tx[r.axis],y=this.children;h.setRandomGenerator((0,Ea.default)(this.object.uuid+r.seed));for(let[g,x]of y.entries()){let S=g*(i.freqScale/10)+i.movement,w=a?Po.noise(S):s(S,S),b=g+1,_=l(b,ve(w,i.rotation[0])),A=l(b,ve(w,i.rotation[1])),v=l(b,ve(w,i.rotation[2]));r.spreadType==="random"?h.sample(Vs,Lp):(f.length&&(Vs.fromArray(f[g].pos),Lp.fromArray(f[g].norm)),this.objectForSample instanceof Un&&Vs.applyMatrix4(sM.copy(this.objectForSample.matrixWorld).invert())),Vs.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(Vs),ln.fromArray(m);let M=r.align==="normal"?Lp:this.object.getWorldDirection(uM),O=Wn.fromArray(r.position);Wn.x+=Wn.x+l(b,ve(w,i.position[0])),Wn.y+=Wn.y+l(b,ve(w,i.position[1])),Wn.z+=Wn.z+l(b,ve(w,i.position[2]));let T=Math.acos(M.dot(ln)),C=cM.crossVectors(ln,M).normalize(),P=lM.makeRotationAxis(C,T),I=M.clone().cross(this.object.up).normalize(),L=I.clone().cross(M).normalize(),G=new $n().makeBasis(I,M,L),N=new lr(ln.y,ln.z,ln.x).normalize(),F=N.clone().cross(ln).normalize(),B=new $n().makeBasis(N,ln,F).invert(),R=new $n().multiplyMatrices(G,B);x.rotation.setFromRotationMatrix(R),O.applyMatrix4(P),x.position.add(O),x.rotation.x=x.rotation.x+o.x+_,x.rotation.y=x.rotation.y+o.y+A,x.rotation.z=x.rotation.z+o.z+v,x.scale.setScalar(1),x.scale.x=x.scale.x+r.scale[0]+l(b,ve(w,i.scale[0]))||jt,x.scale.y=x.scale.y+r.scale[1]+l(b,ve(w,i.scale[1]))||jt,x.scale.z=x.scale.z+r.scale[2]+l(b,ve(w,i.scale[2]))||jt,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample instanceof Un){let r=this.objectForSample,o=rx[e],i=yx[o],a=hx[o],s=mx[o],l=[],d=i(r.subdivPointerNew);for(let c=0;c<=d-1;c++){let u=a(r.subdivPointerNew,c),p=s(r.subdivPointerNew,c);px.fromArray(u).applyMatrix4(r.matrixWorld),fx.fromArray(p),l.push({pos:px.toArray(),norm:fx.toArray()})}return l}else return(this.objectForSample.geometry.index?nx(this.objectForSample.geometry):ix(this.objectForSample.geometry)).map((o,i)=>e==="polygon_center"?{pos:o.midpoint,norm:o.norm}:e==="vertex"?[{pos:o.vertices[0],norm:o.norm},{pos:o.vertices[1],norm:o.norm},{pos:o.vertices[2],norm:o.norm}]:e==="edge"?[{pos:o.faceCenters[0],norm:o.norm},{pos:o.faceCenters[1],norm:o.norm},{pos:o.faceCenters[2],norm:o.norm}]:[]).flat()}updateState(e,r){if(this.parameters=yo(e),this.parameters.type!=="toObject")(this.parent===null||this.parent!==this.object)&&(this.removeFromParent(),this.object.parent?.add(this),this.matrix=this.object.matrix,this.hiddenMatrix=this.object.hiddenMatrix,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1);else if(this.parent===null||this.parent.uuid!==this.parameters.toObject.object){this.removeFromParent();let o=r.find(this.parameters.toObject.object);o instanceof It?this.objectForSample=o:this.objectForSample=void 0,this.matrix=new $n,this.hiddenMatrix=new $n,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1,o&&o.add(this)}this.update()}get pendingMediaLoad(){return this._pendingMediaLoad}};import{Scene as iN,Vector3 as aN,Matrix4 as sN,Box3 as lN,MeshBasicMaterial as cN,Skeleton as uN}from"three";import{Camera as wM,OrthographicCamera as _M,PerspectiveCamera as AM,Vector3 as Lr,Object3D as bx,Quaternion as TM,Matrix4 as CM}from"three";import{Camera as yM,LineSegments as gM,BufferGeometry as xM,LineBasicMaterial as vM,Color as Bp,Vector3 as bM,Float32BufferAttribute as xx}from"three";import{BoxGeometry as dM}from"three";var no=n=>{var t;return t=class extends n{},t.geometryHelper=new dM(30,30,30),t};import{Ray as pM,Sphere as fM,Matrix4 as hM,Vector3 as Oo}from"three";var Xc=new pM,Dp=new fM,gx=new hM,io=(n,t,e,r,o=!1)=>{let i=t,a=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Dp.copy(i.boundingSphere),Dp.applyMatrix4(a),e.ray.intersectsSphere(Dp)===!1||(gx.copy(a).invert(),Xc.copy(e.ray).applyMatrix4(gx),i.boundingBox!==null&&Xc.intersectsBox(i.boundingBox)===!1))return;let s,l,d,c,u=i.index,p=i.attributes.position,f=i.drawRange,h,m;if(o===!1){let g=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(h=g,m=x;h<m;h+=3)if(l=u.getX(h),d=u.getX(h+1),c=u.getX(h+2),s=y(n,e,Xc,p,l,d,c),s){s.faceIndex=Math.floor(h/3),r.push(s);return}}else{let x=i.attributes.position,S=new Oo,w=new Oo,b=new Oo,_=new Oo,A=2,M=1/((n.scale.x+n.scale.y+n.scale.z)/3),O=M*M,T=Math.max(0,f.start),C=Math.min(x.count,f.start+f.count);for(let P=T,I=C-1;P<I;P+=A){if(S.fromBufferAttribute(x,P),w.fromBufferAttribute(x,P+1),Xc.distanceSqToSegment(S,w,_,b)>O)continue;_.applyMatrix4(n.matrixWorld);let G=e.ray.origin.distanceTo(_);G<e.near||G>e.far||r.push({distance:G,point:b.clone().applyMatrix4(n.matrixWorld),object:n})}}function y(g,x,S,w,b,_,A){let v=new Oo,M=new Oo,O=new Oo,T=new Oo,C=new Oo;if(v.fromBufferAttribute(w,b),M.fromBufferAttribute(w,_),O.fromBufferAttribute(w,A),S.intersectTriangle(v,M,O,!1,T)===null)return null;C.copy(T),C.applyMatrix4(g.matrixWorld);let I=x.ray.origin.distanceTo(C);return I<x.near||I>x.far?null:{faceIndex:1,distance:I,point:C.clone(),object:g}}};var Kc=new bM,mr=new yM,Rp=class extends gM{constructor(e){let r=new xM,o=new vM({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],a=[],s={},l=new Bp(15711266),d=new Bp(15711266),c=new Bp(2857471);u("n1","n2",l),u("n2","n4",l),u("n4","n3",l),u("n3","n1",l),u("f1","f2",l),u("f2","f4",l),u("f4","f3",l),u("f3","f1",l),u("n1","f1",l),u("n2","f2",l),u("n3","f3",l),u("n4","f4",l),u("p","n1",d),u("p","n2",d),u("p","n3",d),u("p","n4",d),u("u1","u2",c),u("u2","u3",c),u("u3","u1",c);function u(f,h,m){p(f,m),p(h,m)}function p(f,h){i.push(0,0,0),a.push(h.r,h.g,h.b),s[f]===void 0&&(s[f]=[]),s[f].push(i.length/3-1)}r.setAttribute("position",new xx(i,3)),r.setAttribute("color",new xx(a,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;mr.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,a=1,s=o?.8:1e-4;Er("n1",r,e,mr,-i,-a,s),Er("n2",r,e,mr,i,-a,s),Er("n3",r,e,mr,-i,a,s),Er("n4",r,e,mr,i,a,s);let l=s;Er("f1",r,e,mr,-i,-a,l),Er("f2",r,e,mr,i,-a,l),Er("f3",r,e,mr,-i,a,l),Er("f4",r,e,mr,i,a,l);let d=l,c=.5;Er("u1",r,e,mr,i*.7*c,a*1.1,d),Er("u2",r,e,mr,-i*.7*c,a*1.1,d),Er("u3",r,e,mr,0,a*(1.1+.9*c),d),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Er(n,t,e,r,o,i,a){Kc.set(o,i,a).unproject(r);let s=t[n];if(s!==void 0){let l=e.getAttribute("position");for(let d=0,c=s.length;d<c;d++)l.setXYZ(s[d],Kc.x,Kc.y,Kc.z)}}var Qc=class extends no(Rp){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,r){io(this.object,this.geometry,e,r,!0)}};import{Box3Helper as vx,BoxGeometry as SM}from"three";var Zc;(t=>t.is=e=>"objectHelper"in e)(Zc||(Zc={}));var ao=(n,t)=>class extends ji(n){constructor(){super(...arguments);this.objectHelper=new t(this);this.gizmos={}}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}showGizmos(){for(let o in this.gizmos){let i=this.gizmos[o];i instanceof vx&&(i.visible=!0)}}updateEntityBoxSize(o,i){this.objectHelper.visible&&this.geometryHelper instanceof SM?(o.setScalar(0),i.set(this.geometryHelper.parameters.width,this.geometryHelper.parameters.height,this.geometryHelper.parameters.height).multiplyScalar(.5)):super.updateEntityBoxSize(o,i)}hideGizmos(){for(let o in this.gizmos){let i=this.gizmos[o];i instanceof vx&&(i.visible=!1)}}};var Jc=790,Da=new Lr,Vp=new Lr,Gp=new TM,zp=new Lr,Gs=new Lr,kp=new Lr,Mo=class extends ao(wM,Qc){constructor(e="",r={...Tn.defaultData,name:""}){super();this._cameraType="OrthographicCamera";this.targetOffset=qo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.wasMovedByUser=!1;this.wasMovedBySwitchCameraAction=!1;this.super_Entity(e,r),this.previousProjectionMatrix=new CM,this.matrixAutoUpdate=!0,this.width=window.innerWidth,this.height=window.innerHeight;let o=this.width,i=this.height;this.orthoCamera=new _M(o*-.5,o*.5,i*.5,i*-.5,-5e4,1e4),this.perspCamera=new AM(45,o/i,50,1e4),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.objectHelper.update()}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}set fov(e){this.perspCamera.fov=e}get fov(){return this.perspCamera.fov}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e,r,o){typeof e=="number"&&(e=new Lr(e,r,o)),super.lookAt(e),this.getWorldPosition(Da),this.targetOffset=Da.distanceTo(e)}getTarget(e=new Lr){return this.getWorldDirection(Vp),this.getWorldPosition(Da),Vp.multiplyScalar(this.targetOffset),e.copy(Da).add(Vp),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Da),Da.distanceTo(e)}updateUp(){this.getWorldQuaternion(Gp),zp.set(0,0,1).applyQuaternion(Gp),Gs.copy(bx.DEFAULT_UP),this.isUpVectorFlipped&&Gs.negate(),Gs.applyQuaternion(Gp),kp.copy(bx.DEFAULT_UP).projectOnPlane(zp),this.angleOffsetFromUp=kp.angleTo(Gs),this.angleOffsetFromUp*=kp.cross(Gs).dot(zp)>=0?1:-1}updateTransformState(e,r){let o=super.updateTransformState(e,r);return e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateUp(),o}getViewFrontToObject(e){let r=e.getWorldPosition(new Lr),i=e.getWorldDirection(new Lr).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToTarget(e){let o=this.getWorldDirection(new Lr).multiplyScalar(this.targetOffset);return{position:e.clone().sub(o),target:e}}getViewToObject(e){let r=new Lr,o=e.getWorldPosition(r);return this.getViewToTarget(r)}setViewplaneSize(e,r,o=!1){if(this.aspect=e/r,o){let i=e>r?this.aspect:1,a=e>r?1:this.aspect;this.left=-Jc*.5*i,this.right=Jc*.5*i,this.top=Jc*.5*(1/a),this.bottom=-Jc*.5*(1/a)}else this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5;this.updateProjectionMatrix()}copyViewPlaneSize(e){this.aspect=e.aspect,this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,r,o,i,a,s){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,a,s):this.orthoCamera.setViewOffset(e,r,o,i,a,s)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}copyHistory(){this.previousProjectionMatrix&&this.previousProjectionMatrix.copy(this.projectionMatrix)}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),this.parent=e.parent,this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return vi(r,e)}updateCameraSubtype(e,r){let o=e==="perspective"?"PerspectiveCamera":"OrthographicCamera";r.zoom!==void 0&&this.setZoom(o,r.zoom),r.near!==void 0&&this.setNear(o,r.near),r.fov!==void 0&&o==="PerspectiveCamera"&&(this.fov=r.fov)}updateState(e,r){this.updateCameraState(e,r)}updateCameraState(e,r){this.updateState_Entity(e,r),e.far!==void 0&&(this.far=e.far),e.orthographic!==void 0&&this.updateCameraSubtype("orthographic",e.orthographic),e.perspective!==void 0&&this.updateCameraSubtype("perspective",e.perspective),e.type!==void 0&&(this.cameraType=e.type),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix()}updateByPatchedOp(e,r,o){super.updateByPatchedOp(e,r,o),e.path.length===1&&e.type===0&&this.updateCameraSubtype(e.path[0],e.props)}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}};import{MathUtils as ZJ}from"three";import{BufferGeometry as Sx,Matrix4 as Fp,Float32BufferAttribute as PM,Vector3 as Ax}from"three";var Ba=new Fp,OM=new Fp,eu=new Fp,wx=new Ax,_x=new Ax;var yr=class extends Jt{constructor(e,r,o){super(e,r);this.data=r;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.geometry=new Sx;this.onAfterRender=(e,r,o,i,a,s)=>{super.onAfterRender(e,r,o,i,a,s),this.recomputeBoolean()};this.geometry.userData.parameters={width:0,height:0,depth:0}}get booleanOp(){return this.data.geometry.operation}get phongAngle(){return this.data.geometry.phongAngle??45}get isLOD(){return this.recomputeBoolean(),!1}updateByPatchedOp(e,r,o){super.updateByPatchedOp(e,r,o),e.path.length===1&&e.path[0]==="geometry"&&e.type===0&&e.props.operation!==void 0&&(this.freeBooleanPointer(),this.resetBBoxNeedsUpdate())}freeBooleanPointer(){super.freeBooleanPointer(),this.geometry.dispose()}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1&&!e)return;for(let i=0;i<this.children.length;i++){let a=this.children[i];a instanceof yr&&a.dataPatched.visible===!0&&a.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let a=this.children[i];if(a instanceof It&&a.dataPatched.visible===!0&&a.geometry.attributes.position?.count>0&&a.geometry.drawRange.count>0&&a.booleanMeshSetAddress!==0){Ba.multiplyMatrices(a.hiddenMatrix,a.matrix);try{if(a.booleanMeshSetAddress===-1){if((a.geometry.index??a.geometry.getAttribute("position")).count/3<15e5&&(a.booleanMeshSetAddress=dr.getMeshSet(a.geometry,e===!0,r)),a.booleanMeshSetAddress===-1)return;dr.transformMeshSet(a.booleanMeshSetAddress,Ba),a.booleanMatrixInvOld.copy(Ba).invert(),a.booleanWasTransformed=!1}else a instanceof yr&&a.needsTransformForDownstream===!0?(dr.transformMeshSet(a.booleanMeshSetAddress,Ba),a.needsTransformForDownstream=!1):a.booleanWasTransformed===!0&&(dr.transformMeshSet(a.booleanMeshSetAddress,OM.multiplyMatrices(Ba,a.booleanMatrixInvOld)),a.booleanMatrixInvOld.copy(Ba).invert(),a.booleanWasTransformed=!1)}catch(s){console.error(s),a.booleanMeshSetAddress=0,a.geometry.userData.booleanOperationDidFail=!0;continue}dr.hasOpenEdges(a.booleanMeshSetAddress)===!1||i===this.children.length-1&&this.booleanOp===2?(this.meshSetAddresses.push(a.booleanMeshSetAddress),a.geometry.userData.booleanOperationDidFail=!1):a.geometry.userData.booleanOperationDidFail="openEdges"}}if(this.meshSetAddresses.length===0){this.geometry.setAttribute("position",new PM([],0)),this.geometry.setDrawRange(0,0);return}if(e===!0)return dr.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Sx,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=dr.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,this.geometry.userData.booleanOperationDidFail=!0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Oa(this),Ma(this)}dispose(){super.dispose(),this.geometry.dispose()}get recursiveBBox(){let e=super.recursiveBBox;return this.geometry.boundingSphere?.radius===-1&&(e.getCenter(this.geometry.boundingSphere.center),eu.copy(this.matrixWorld).invert(),this.geometry.boundingSphere.center.applyMatrix4(eu),wx.copy(e.max).applyMatrix4(eu),_x.copy(e.min).applyMatrix4(eu),this.geometry.boundingSphere.radius=wx.distanceTo(_x)/2),e}};import{Light as MM}from"three";var Tx;(t=>{function n(e){return Ae.is(e)&&e instanceof MM}t.is=n})(Tx||(Tx={}));var Ra=(n,t)=>class extends ao(n,t){updateState_Light(r,o){this.updateState_Entity(r,o),r.color!==void 0&&(this.color=o.shared.color(r.color)),r.intensity!==void 0&&(this.intensity=r.intensity),r.depth!==void 0&&(this.shadow.camera.far=r.depth,this.shadow.needsUpdate=!0),r.shadows!==void 0&&(this.castShadow=r.shadows)}};var cn=n=>n instanceof It,Va=n=>n!==null&&n instanceof yr;var zs=n=>Zc.is(n);import{Group as NM}from"three";import{AxesHelper as IM}from"three";var so=class extends no(IM){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.object.isBone&&(this.visible=!1)}raycast(e,r){io(this.object,so.geometryHelper,e,r)}update(){}};var un=class extends ao(NM,so){constructor(t,e){super(),this.super_Entity(t,e),this.objectHelper.update()}updateState(t,e){this.updateState_Entity(t,e),"buffer"in t&&Object.keys(t).length===1&&e.scene.reloadSplats()}};import{Color as qM,Fog as WM,HemisphereLight as $M}from"three";import{ShaderChunk as ks}from"three";var EM=n=>`
2232
+ `)P=d;else if(M===" ")P=c;else{let I=this.createPath(v,o,u,p,e);I&&(P=I.offsetX-(T+C),f.push(I.path))}if(O.replacements.length===1)m[x].push([u,p]),h[x].push(P);else{let I=O.replacements.map(F=>(r.glyphs.get(F).advanceWidth??0)*o),D=I.reduce((F,B)=>F+=B,0),G=I.map(F=>F/D),N=u;for(let F=0;F<G.length;F++){let B=P*G[F];m[x].push([N,p]),h[x].push(B),N+=B}}u+=P,y=v}p-=i}let g=[];for(let x=0,S=f.length;x<S;x++)g.push(...f[x].toShapes());return{shapes:g,charWidths:h,lineWidths:a,charCoords:m}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,r,o,i){return(r===3||r===2)&&o.indexOf(`
2233
+ `)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let a=e*t,s=Math.abs(this.ascender-this.descender)*o,l=t-s,d=-this.ascender*o-l/2;return i===3?-(r-a-d):i===2?-(r*.5-a*.5-d):d}createPath(t,e,r,o,i){let a=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!a){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let s=new Uc,l=(t.advanceWidth??1)*e;if(t)for(let d of a.commands){let c=s.currentPath?.currentPoint;if(!(c&&d.type!=="Z"&&c.x===d.x&&-c.y===d.y))switch(d.type){case"M":s.moveTo(d.x,-d.y);break;case"L":s.lineTo(d.x,-d.y);break;case"Q":s.quadraticCurveTo(d.x1,-d.y1,d.x,-d.y);break;case"C":s.bezierCurveTo(d.x1,-d.y1,d.x2,-d.y2,d.x,-d.y);break}}return s.subPaths.forEach(d=>{let c=kO(d.curves);c!==void 0&&d.currentPoint.distanceTo(c)>0&&d.lineTo(c.x,c.y)}),{offsetX:l+i.fontSize*i.letterSpacing,path:s}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,r){let o=this.getCharWidth(" ",r),i=t[e];if(i){let a=this.countSpaces(i.trimEnd());if(r.horizontalAlign===4&&e<t.length-1&&a){let s=r.width,l=this.getTextWidth(i,r);return(s-(l-a*o))/a}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function kO(n){if(n.length){let t=n[0];if(t instanceof VO)return t.v1;if(t instanceof RO||t instanceof GO)return t.v0}}var Ap=class{constructor(){this.objects=new Map;this.unreachable=new Set}getCached(t){return this.objects.get(t)}get size(){return this.objects.size}get(t,e,r){let o=this.objects.get(t);return o===void 0?(o=this.createObject(t,e,r),this.objects.set(t,o)):o.isShared=!0,o}forceDelete(t){let e=this.objects.get(t);e&&(this.disposeObject(e),this.objects.delete(t))}mutateIfUnique(t,e){let r=this.objects.get(t);if(r&&r.isShared!==!0)return this.objects.delete(t),this.objects.set(e,r),r}startGc(){this.unreachable=new Set(this.objects.keys())}markAsReachable(t,e){let r=this.objects.get(t);e===r?this.unreachable.delete(t):!1&&console.warn("Reachable but deleted",t)}endGc(){this.unreachable.forEach(t=>{this.disposeObject(this.objects.get(t)),this.objects.delete(t)}),this.unreachable.clear()}dispose(){this.objects.forEach(t=>{this.disposeObject(t)}),this.objects.clear()}},Ds=class extends Ap{constructor(e){super();this.flatShading=e}disposeObject(e){e.dispose()}createObject(e,r,o){let i=Nn(e,r,this.flatShading,o);return i.computeBoundingSphere(),i}};var U0={markNeedsUpdateRendererDirty:()=>{}};import{MathUtils as H0}from"three";var Tp=class extends Gc{constructor(e){super();this.shared=e}create(e){return new Ca(e,this.shared)}},jn=class{constructor(t,e={}){this.data=t;this.geometryCache=new Ds(!0);this.geometryCache2=new Ds(!1);this.imageHolderCache=new Tp(this);this.thisContext={scene:U0,shared:this};this.deletedMaterial=new zn(Pt.defaultTwoLayerData("phong"),this.thisContext,"");this.deletedImage=new fr(Ri.emptyImage,this);this.deletedVideo=new fr(Pi.defaultVideo,this);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.variables={};this.mouseProperty=null;this.raycastProperty=null;this.requestRender=()=>{this._requestRender&&this._requestRender()};if(e.images)for(let[r,o]of Object.entries(e.images))this.addImage(r,o);if(e.videos)for(let[r,o]of Object.entries(e.videos))this.addVideo(r,o);if(e.audios)for(let[r,o]of Object.entries(e.audios))this.addAudio(r,o);this.reset(t)}setRequestRender(t){this._requestRender=t}setEntityOpContext(t){this.entityOpContext=t}reset(t,e=!1){this.resetLib(t.lib);for(let{id:r,data:o}of t.variables)this.addVariableHolder(r,o),e&&this.updateVariableHolder(r,o);for(let[r,o]of Object.entries(t.images))this.addImage(r,o);for(let[r,o]of Object.entries(t.videos))this.addVideo(r,o);for(let[r,o]of Object.entries(t.colors))this.addColor(r,o);for(let[r,o]of Object.entries(t.materials))this.addMaterial(r,o);for(let[r,o]of Object.entries(t.audios))this.addAudio(r,o);for(let[r,o]of Object.entries(t.fonts))this.addFont(r,o)}addMaterial(t,e){if(this.materials[t]){let r=this.materials[t];r.reset(e,this.thisContext),r.dispose()}else{let r=new zn(e,this.thisContext,t);this.materials[t]=r}}deleteMaterial(t){this.materials[t]&&(this.materials[t].nodeMaterialDispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):t==null?(console.error("material is undefined or null"),this.deletedMaterial):new Gn(t,this.thisContext)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),this.images[t].updateSrc(e.data),!0):(this.images[t]=new fr(e,this),!1)}deleteImage(t){let e=this.images[t];e&&(e.dispose(),delete this.images[t])}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):this.imageHolderCache.load(t)}addVideo(t,e){return this.videos[t]?(this.videos[t].updateSrc(e.data),!0):(this.videos[t]=new fr(e,this),!1)}deleteVideo(t){let e=this.videos[t];e&&(e.dispose(),delete this.videos[t])}getVideo(t){return this.videos[t]??this.deletedVideo}video(t){return typeof t=="string"?this.getVideo(t):this.imageHolderCache.load(t)}addColor(t,e){return this.colors[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),"a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new an(e.r,e.g,e.b,e.a):this.colors[t]=new an(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate();let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new ht(0,0,0,0))}else return"a"in t?new ht(t.r,t.g,t.b,t.a):new ht(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof kn)return e;{let r=new kn({src:e.data});return this.audios[t]=r,r}}deleteAudio(t){let e=this.audios[t];e&&(e instanceof kn&&e.dispose(),delete this.audios[t])}addFont(t,e){this.fonts[t]=new qc(e),this.fonts[t].loadingPromise.then(()=>this.requestRender())}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._requestRender=void 0,Object.values(this.audios).forEach(e=>{e instanceof kn&&e.dispose()}),this.audios={},this.geometryCache.dispose(),this.geometryCache2.dispose()}addVariableHolder(t,e){return this.variables[t]===void 0?(this.variables[t]={value:e.value,locations:[]},"dynamicVariableType"in e&&(this.variables[t].dynamicVariablePlayState="Playing",this.variables[t].dynamicVariableToggleIsForward=void 0),!0):(this.variables[t].value=e.value,!1)}resetDynamicVariablePlayState(){for(let t in this.variables)this.variables[t].dynamicVariablePlayState!==void 0&&(this.variables[t].dynamicVariablePlayState="Playing",this.variables[t].dynamicVariableToggleIsForward=void 0)}updateVariableHolder(t,e){this.updateVariable(t,e.value)}updateVariable(t,e){if(this.variables[t]===void 0)return!1;this.variables[t].value=e;let r=e;for(;typeof r=="string";)r=this.variables[r].value;let o=this.entityOpContext.scene;for(let i=this.variables[t].locations.length-1;i>=0;i--){let a=this.variables[t].locations[i];if(a[0]==="material"){let s=a[1],l=r,d={scene:o,shared:this},c=a.slice(2);o.traverseMaterial(p=>{let f=p.root??p;f.uuid===s&&f.onVariableUpdate(c,l,d)});let u=this.materials[s];u&&u.onVariableUpdate(c,l,d)}else{let s=o.find(a[0]);if(s===void 0){this.variables[t].locations.splice(i,1);continue}if(a[1]!=="geometry"){for(let l=1;l<a.length-1;l++)s=s[a[l]];a[1]==="rotation"?s[a[a.length-1]]=r*H0.DEG2RAD:s[a[a.length-1]]=r}if(s=o.find(a[0]),Ae.is(s)){if(a[1]==="position"||a[1]==="rotation"||a[1]==="scale")s.onVariableUpdate();else if(a[1]==="geometry"){let l=s;s.component&&(l=s.component);let d=l.dataPatched;l.chooseGeoemtryCache(this).forceDelete(d.geometry),l.createGeometryDelayed(this.entityOpContext),l.onVariableUpdate(!0),l.instances.forEach(c=>{let u=c.dataPatched;c.chooseGeoemtryCache(this).forceDelete(u.geometry),c.createGeometryDelayed(this.entityOpContext),c.onVariableUpdate(!0)})}}}}return!0}deleteVariable(t){this.variables[t]&&delete this.variables[t]}getVariable(t,e){if(Array.isArray(t)){if(t[0]==="mouse")return this.mouseProperty?.[t[1]]??0;if(t[0]==="raycast")return this.raycastProperty?.[t[1]]??0;let r=this.entityOpContext.scene.find(t[0]);if(t[1]==="width"||t[1]==="height"||t[1]==="depth")return r.geometry.userData.parameters[t[1]];for(let o=1;o<t.length;o++)r=r[t[o]];return t[1]==="rotation"&&(r*=H0.RAD2DEG),r}for(let r in this.variables){if(e===void 0)break;let o=this.variables[r],i=o.locations?.findIndex(a=>ot.equal(a,e));i!==void 0&&i!==-1&&o.locations.splice(i,1)}if(typeof t=="string"){let r=t,o=t;do{if(o=r,this.variables[r]===void 0)break;r=this.variables[r].value}while(typeof r=="string");return e&&this.variables[o]!==void 0&&this.variables[o].locations.push(e),r}else return t}getVariables(){return this.variables}getDynamicVariablePlayState(t){return this.variables[t]?.dynamicVariablePlayState}setDynamicVariablePlayState(t,e){this.variables[t]!==void 0&&(this.variables[t].dynamicVariablePlayState=e)}getDynamicVariableToggleIsForward(t){return this.variables[t]?.dynamicVariableToggleIsForward}setDynamicVariableToggleIsForward(t,e){this.variables[t]!==void 0&&(this.variables[t].dynamicVariableToggleIsForward=e)}resetLib(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r.asset);for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.asset);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r.asset);for(let[e,r]of Object.entries(t.fonts))this.addFont(e,r.asset);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,r.asset);for(let[e,r]of Object.entries(t.videos))this.addVideo(e,r.asset);for(let[e,r]of Object.entries(t.variables))this.addVariableHolder(e,r.asset)}updateLibByOp(t,e){t.path[0]==="images"?t.path.length===1&&t.type===1?this.addImage(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteImage(t.id):t.path[0]==="videos"?t.path.length===1&&t.type===1?this.addVideo(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteVideo(t.id):t.path[0]==="audios"?t.path.length===1&&t.type===1?this.addAudio(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteAudio(t.id):t.path[0]==="colors"?t.path.length===1&&t.type===1?this.addColor(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteColor(t.id):t.path[0]==="materials"?t.path.length===1&&t.type===1?this.addMaterial(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteMaterial(t.id):t.path[0]==="fonts"?t.path.length===1&&t.type===1?this.addFont(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteFont(t.id):t.path[0]==="variables"?t.path.length===1&&t.type===1?this.addVariableHolder(t.id,t.data.asset):t.path.length===1&&t.type===2&&this.deleteVariable(t.id):t.path[0]==="components"&&e.updateByLibOp(t,this)}updateByOp(t,e,r){this.data=e,t.path[0]==="images"?t.path.length===2&&t.type===0?t.props.data&&this.getImage(t.path[1]).updateSrc(t.props.data):t.path.length===1&&t.type===1?this.addImage(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteImage(t.id):t.path[0]==="videos"?t.path.length===2&&t.type===0?t.props.data&&this.getVideo(t.path[1]).updateSrc(t.props.data):t.path.length===1&&t.type===1?this.addVideo(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteVideo(t.id):t.path[0]==="audios"?t.path.length===2&&t.type===0?t.props.data&&this.addAudio(t.path[1],e.audios[t.path[1]]):t.path.length===1&&t.type===1?this.addAudio(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteAudio(t.id):t.path[0]==="colors"?t.path.length===2&&t.type===0?this.updateColor(t.path[1],t.props):t.path.length===1&&t.type===1?this.addColor(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteColor(t.id):t.path[0]==="materials"?t.path.length===1&&t.type===1?this.addMaterial(t.id,t.data):t.path.length===1&&t.type===2?this.deleteMaterial(t.id):t.path.length>1&&this.getMaterial(t.path[1]).updateByOp(nt.drop(t,2),e.materials[t.path[1]],{shared:this,scene:r}):t.path[0]==="fonts"?t.path.length===2&&t.type===0?this.updateFont(t.path[1],t,r):t.path.length===1&&t.type===1?this.addFont(t.id,t.data):t.path.length===1&&t.type===2&&this.deleteFont(t.id):t.path[0]==="variables"?t.path.length===2&&t.type===0&&"value"in t.props?this.updateVariable(t.path[1],t.props.value):t.path.length===1&&t.type===4?this.addVariableHolder(t.id,t.data):t.path.length===1&&t.type===5&&this.deleteVariable(t.id):t.path[0]==="lib"&&this.updateLibByOp(nt.drop(t,1),r)}updateFont(t,e,r){if(e.props.url){let o=this.getFont(t),i={...this.data.fonts[t],url:e.props.url};o.update(i),o.loadingPromise.then(()=>this.requestRender()),r.updateFont(t,this)}}},q0=new jn(br.emptyData());var Jt=class extends It{updateByPatchedOp(e,r,o){if(super.updateByPatchedOp(e,r,o),Lm(e.path,["materials"])!==null&&e.type===0&&Array.isArray(this.material))for(let[i,a]of Object.entries(e.props)){let s=o.shared.material(a);this.material[Number(i)]=s}else if(Lt(e.path,["material"])&&this.material instanceof Zt)"material"in r&&typeof r.material!="string"&&this.material.updateByOp(nt.drop(e,1),r.material,o);else if(Lt(e.path,["materials","*"])&&Array.isArray(this.material)){let i=e.path[1];if("materials"in r&&i<this.material.length){let a=r.materials[i];typeof a!="string"&&this.material[i].updateByOp(nt.drop(e,2),a,o)}}}get needsAO(){return this.material!==void 0?(Array.isArray(this.material)?this.material[0]:this.material).hasAO:!1}updateState(e,r){super.updateState(e,r),e.castShadow!==void 0&&(this.castShadow=e.castShadow),e.receiveShadow!==void 0&&(this.receiveShadow=e.receiveShadow);let o=this.dataPatched;if(e.geometry?.type!=="NonParametricGeometry"&&"material"in e&&e.material!==void 0&&(this.disposeMaterial(),this.material=r.shared.material(e.material).getFlavor(o.flatShading,o.side,o.wireframe),r.scene.markNeedsUpdateRendererDirty()),e.geometry?.type==="NonParametricGeometry"&&("materials"in e&&e.materials!==void 0?(this.disposeMaterial(),this.material=e.materials.map(i=>r.shared.material(i).getFlavor(o.flatShading,o.side,o.wireframe)),r.scene.markNeedsUpdateRendererDirty()):"material"in e&&e.material!==void 0&&(this.disposeMaterial(),this.material=[r.shared.material(e.material).getFlavor(o.flatShading,o.side,o.wireframe)],r.scene.markNeedsUpdateRendererDirty())),e.flatShading!==void 0||e.wireframe!==void 0||e.side!==void 0)if(Array.isArray(this.material))for(let i=0;i<this.material.length;i++)this.material[i]=this.material[i].getFlavor(o.flatShading,o.side,o.wireframe);else this.material=this.material.getFlavor(o.flatShading,o.side,o.wireframe)}disposeMaterial(){this.material&&$s(this.material).forEach(e=>{e instanceof Zt&&(e instanceof zn||e.nodeMaterialDispose())})}dispose(){this.disposeMaterial(),super.dispose()}};import{BufferGeometry as jO,Matrix4 as Cp,Vector3 as K0,Vector4 as Pp}from"three";var W0=new K0,$0=new Pp,Y0=new Pp,UO=new K0,X0=new Cp,st=class extends Jt{constructor(e,r,o){super(e,r);this.data=r;this.isSkinnedMesh=!1;this.localGeometry=void 0,r.bindMode&&r.bindMatrix&&(this.bindMode=r.bindMode,this.bindMatrix=new Cp().fromArray(r.bindMatrix),this.bindMatrixInverse=new Cp)}chooseGeoemtryCache(e){return e.geometryCache}markGeometryAsReachable(e){this.geometryCreateDeleyed instanceof jO&&this.chooseGeoemtryCache(e).markAsReachable(this.dataPatched.geometry,this.geometryCreateDeleyed)}get geometry(){if(this.localGeometry!==void 0)return this.localGeometry;if(this.geometryCreateDeleyed instanceof jn){let e=this.geometryCreateDeleyed,r=this.chooseGeoemtryCache(e);this.geometryCreateDeleyed=r.get(this.dataPatched.geometry,e,this)}return this.geometryCreateDeleyed}set geometry(e){this.localGeometry=e}get is2DAndNoDepth(){let e=this.dataPatched.geometry;return rs.is2DParametricMesh(e.type)&&e.depth===0}get is2DType(){return rs.is2DParametricMesh(this.geometry.userData.type)}get isNonParametric(){return this.geometry.userData.type==="NonParametricGeometry"}updateByPatchedOp(e,r,o){super.updateByPatchedOp(e,r,o),Lt(e.path,["geometry"])&&this.updateByPatchedOpGeometry(nt.drop(e,1),r.geometry,o)}removeInteractionGeometry(){this.localGeometry?.dispose(),this.localGeometry=void 0}updateGeometryInteractions(e,r){this.invalidateDownstreamBooleanData();let o=this.data.geometry.type;if(o==="NonParametricGeometry"||o==="SubdivGeometry"){let i=e;if(this.localGeometry===void 0){let c={...this.data.geometry,...i};this.localGeometry=Nn(c,r,this.data.flatShading,this)}let a,s,l;i.scaleBaked?[a,s,l]=i.scaleBaked:{width:a,height:s,depth:l}=i;let d=this.localGeometry.userData;d.sxPrev!==void 0&&bs(this.localGeometry.attributes,a/d.sxPrev,s/d.syPrev,l/d.szPrev),d.sxPrev=a,d.syPrev=s,d.szPrev=l}else{let i={...this.data.geometry,...e};this.localGeometry?.dispose(),this.localGeometry=Nn(i,r,this.data.flatShading,this)}}refreshAttachedCloners(e){for(let r of this.attachedSurfaceCloners)e.scene.addPendingUpdateCloner(r.object)}refreshAttachedPaths(e){for(let r of this.attachedPaths)e.scene.addPendingCommand(()=>r.updateShape())}createGeometryDelayed(e){this.geometryCreateDeleyed=e.shared,this.refreshAttachedCloners(e),this.refreshAttachedPaths(e)}updateByPatchedOpGeometry(e,r,o){let i=!1;e.type===0&&e.path.length===0&&Object.keys(e.props).includes("scaleBaked")&&this.geometryCreateDeleyed instanceof at&&this.chooseGeoemtryCache(o.shared).mutateIfUnique(this.geometryCreateDeleyed.data,r)===this.geometryCreateDeleyed&&(i=!0,this.geometryCreateDeleyed.mutateDirectlyScaleBaked(r,e.props.scaleBaked),this.refreshAttachedCloners(o),this.refreshAttachedPaths(o)),i||(o.scene?.markGeometryCacheDirty(),this.createGeometryDelayed(o)),this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateGeometryOnStateUpdate(e,r){this.createGeometryDelayed(r)}updateState(e,r){e.geometry!==void 0&&this.updateGeometryOnStateUpdate(e.geometry,r),super.updateState(e,r)}updateGeometryGroupsIfNeeded(){Array.isArray(this.material)&&this.geometry.groups.length===0&&this.geometry.addGroup(0,Math.max(this.geometry.getIndex()?.count??0,this.geometry.getAttribute("position").count),0)}updateEntityBoxSize(e,r){let o=this.geometry.userData.parameters;this.is2DType?e.set(0,0,o.depth*.5):this.isNonParametric?(e.setScalar(0),this.geometry.boundingSphere&&e.copy(this.geometry.boundingSphere.center),r.set(o.width,o.height,o.depth??0).multiplyScalar(.5)):e.setScalar(0),r.set(o.width,o.height,o.depth??0).multiplyScalar(.5)}updateMatrixWorld(e){super.updateMatrixWorld(e),this.bindMode==="attached"?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode==="detached"&&this.bindMatrixInverse.copy(this.bindMatrix).invert()}bind(e,r){this.skeleton=e,this.isSkinnedMesh=!0,r===void 0&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),r=this.matrixWorld),this.bindMatrix.copy(r),this.bindMatrixInverse.copy(r).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(e){let r=new Pp,o=this.geometry.attributes.skinWeight;for(let i=0,a=o.count;i<a;i++){r.fromBufferAttribute(o,i);let s=1/r.manhattanLength();s!==1/0?r.multiplyScalar(s):r.set(1,0,0,0),o.setXYZW(i,r.x,r.y,r.z,r.w)}}boneTransform(e,r){let o=this.skeleton;if(o===void 0)return;let i=this.geometry;$0.fromBufferAttribute(i.attributes.skinIndex,e),Y0.fromBufferAttribute(i.attributes.skinWeight,e),W0.copy(r).applyMatrix4(this.bindMatrix),r.set(0,0,0);for(let a=0;a<4;a++){let s=Y0.getComponent(a);if(s!==0){let l=$0.getComponent(a);X0.multiplyMatrices(o.bones[l].matrixWorld,o.boneInverses[l]),r.addScaledVector(UO.copy(W0).applyMatrix4(X0),s)}}return r.applyMatrix4(this.bindMatrixInverse)}};function qO(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes,r=e.position.array,o=e.normal.array,i=new Float32Array(r.length);for(let a=0;a<r.length;a+=3){let s=`${r[a]}_${r[a+1]}_${r[a+2]}`,l=new Mp(o[a],o[a+1],o[a+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new Mp})}t.forEach((a,s)=>{for(let l of a.normals)a.result.add(l);a.result.divideScalar(a.normals.length)});for(let a=0;a<r.length;a+=3){let s=`${r[a]}_${r[a+1]}_${r[a+2]}`,l=t.get(s)?.result;l&&(i[a]=l.x,i[a+1]=l.y,i[a+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new Q0(i,3))}function WO(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let e=n.geometry.attributes.position.array,r=new Float32Array(e.length),o=new Mp;for(let i=0;i<e.length;i+=3)o.set(e[i],e[i+1],e[i+2]).normalize(),r[i]=o.x,r[i+1]=o.y,r[i+2]=o.z;n.geometry.setAttribute("extrudeNormal",new Q0(r,3))}function Oa(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Zt)||n.material.getLayersOfType("outline").length===0)return;n instanceof st&&n.is2DAndNoDepth?WO(n):qO(n)}function Ma(n){if(!n.geometry.attributes.position)return;let e=n.geometry.attributes.position.array,r=new Float32Array(e.length),o=parseInt(n.uuid.replace(/\D/g,"")),i=[Op.seededRandom(o),Op.seededRandom(o+1e4),Op.seededRandom(o+2e4)];for(let a=0;a<e.length;a++)r[a]=i[a%3];n.geometry.setAttribute("randomColor",new HO(r,3))}var KO;ra.then(n=>{KO=n});var ro=new $O,Ls=new XO;function J0(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="SubdivGeometry"&&(t=!0)}),t}var Un=class extends st{constructor(e,r,o){super(e,r,o);this.data=r;this.hiddenMatrixOld=new YO;this.smoothShading=!0;this.skipReactionUpdate=!1}chooseGeoemtryCache(e){return this.dataPatched.flatShading?e.geometryCache:e.geometryCache2}get subdivPointerNew(){return this.localGeometry!==void 0?this.subdivPointer:this.geometry.ensureSubdivPointer()}get originalGeometryNew(){return this.localGeometry!==void 0?this.originalGeometry:this.geometry.originalGeometry}get phongAngle(){return this.data.geometry.phongAngle??45}updateEntityBoxSize(e,r){let o=this.geometry.userData.parameters;e.copy(this.originalGeometryNew.boundingSphere.center),r.set(o.width,o.height,o.depth??0).multiplyScalar(.5)}createGeometryByControls(e){if(this.skipReactionUpdate===!0)return;let r=this.localGeometry?.uuid,{originalGeometry:o,subdividedGeometry:i,subdivPointer:a}=at.build(e,this.subdivPointer,this.smoothShading,this.hasNonUniformScale?this.shearScale:void 0);this.subdivPointer=a,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.localGeometry=this.subdividedGeometry??this.originalGeometry,Oa(this),Ma(this),this.calcBoundingBox(),r&&(this.localGeometry.uuid=r)}updateState(e,r){if(super.updateState(e,r),e.flatShading!==void 0){let o=this.material;this.material=o.getFlavor(!1,o.side,o.wireframe),this.smoothShading=!e.flatShading,this.createGeometryDelayed(r)}}updateMesh(e=!1){at.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e&&this.hasNonUniformScale?this.shearScaleInv:void 0),this.subdividedGeometry&&at.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e&&this.hasNonUniformScale?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=at.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=at.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.localGeometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){let o=this.localGeometry;this.localGeometry=this.originalGeometryNew,It.prototype.raycast.call(this,e,r),this.localGeometry=o}activateSVDCompensation(){!this.hasNonUniformScale||(this.matrix.copy(this.matrixWorldRigid),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){!this.hasNonUniformScale||(this.updateMatrix(),this.hasNonUniformScale=void 0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new Z0,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let r=e.attributes.position,o=e.boundingSphere.center;ro.setFromBufferAttribute(r),ro.getCenter(o),e.boundingSphere.radius=o.distanceTo(ro.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ro.getSize(Ls),this.hasNonUniformScale&&Ls.divide(this.scale);let i={width:Ls.x,height:Ls.y,depth:Ls.z};return this.geometry.userData.parameters=i,i}updateBoundingSphere(e){let r=this.originalGeometry;ro.min.set(e[0],e[2],e[4]),ro.max.set(e[1],e[3],e[5]),this.hasNonUniformScale&&(ro.min.applyMatrix4(this.shearScaleInv),ro.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new Z0);let o=r.boundingSphere.center;ro.getCenter(o),r.boundingSphere.radius=o.distanceTo(ro.max)}freeSubdivPointer(){this.subdivPointer&&(at.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0),this.localGeometry=void 0,this.originalGeometry?.dispose(),this.subdividedGeometry?.dispose()}dispose(){super.dispose(),this.freeSubdivPointer()}updateByPatchedOpGeometry(e,r,o){super.updateByPatchedOpGeometry(e,r,o),this.localGeometry&&this.createGeometryByControls(r)}};import{Triangle as QO,Vector3 as qn}from"three";var ex=-1,ZO=1,tx={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},rx={polygon_center:0,edge:1,vertex:2},Bs=(n,t)=>(e,r)=>!t||e===0||n===0?0:n*r/100,ve=(n,t)=>{let e=Math.abs(t),r=e*-1;return(n-ex)*(e-r)/(ZO-ex)+r};function ox(n){let t=[],e={};for(var r=0,o=n.length;r<o;r++){var i=JSON.stringify(n[r].pos.map(a=>Math.round(a*1e4)/1e4));e[i]||(t.push(n[r]),e[i]=!0)}return t}var JO=new qn,Wc=new qn,eM=new qn,tM=new qn;function Ia(n,t){let e=eM.fromArray(n),r=tM.fromArray(t);Wc.copy(r).sub(e);let o=Wc.length();return Wc.normalize().multiplyScalar(o*.5),JO.copy(e).add(Wc).toArray()}var mr=new QO,$c=new qn,Yc=new qn,Hn=new qn;function nx(n){let t=[];for(let e=0;e<=n.index.count;e++)if($c.fromArray(n.index.array,e*3),mr.setFromAttributeAndIndices(n.attributes.position,$c.x,$c.y,$c.z),mr.getNormal(Yc),mr.getMidpoint(Hn),!(isNaN(Hn.x)||isNaN(Hn.y)||isNaN(Hn.z))){let{a:r,b:o,c:i}=mr,a=r.toArray(),s=o.toArray(),l=i.toArray(),d=r.distanceTo(o),c=o.distanceTo(i),u=i.distanceTo(r),p=Ia(a,s),f=Ia(s,l),h=Ia(l,a),m=[d,c,u],y=Math.max(...m),g=m.filter(w=>Math.round(w)===Math.round(y)).length>1,x=[],S=mr.getMidpoint(Hn).toArray();y===d&&!g&&(x=[f,h,h],S=p),y===c&&!g&&(x=[p,h,h],S=f),y===u&&!g&&(x=[p,f,f],S=h),g&&(x=[p,f,h]),t.push({vertices:[a,s,l],faceCenters:x,midpoint:S,norm:mr.getNormal(Yc).toArray()})}return t}function ix(n){let t=[],{position:e}=n.attributes;for(let r=0;r<e.count;r++){mr.setFromAttributeAndIndices(e,r*3,r*3+1,r*3+2),mr.getNormal(Yc),mr.getMidpoint(Hn);let o=mr.a.toArray(),i=mr.b.toArray(),a=mr.c.toArray();t.push({vertices:[o,i,a],faceCenters:[Ia(o,i),Ia(i,a),Ia(a,o)],midpoint:Hn.toArray(),norm:Yc.toArray()})}return t}var rM=4,oM=.5,Ip=n=>.5*(1-Math.cos(n*Math.PI)),Np=class{constructor(){this.perlin=new Array(4095+1)}noise(t,e=0,r=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let g=0;g<4095+1;g++)this.perlin[g]=Math.random()}t<0&&(t=-t),e<0&&(e=-e),r<0&&(r=-r);let o=Math.floor(t),i=Math.floor(e),a=Math.floor(r),s=t-o,l=e-i,d=r-a,c,u,p=0,f=.5,h,m,y;for(let g=0;g<rM;g++){let x=o+(i<<4)+(a<<8);c=Ip(s),u=Ip(l),h=this.perlin[x&4095],h+=c*(this.perlin[x+1&4095]-h),m=this.perlin[x+16&4095],m+=c*(this.perlin[x+16+1&4095]-m),h+=u*(m-h),x+=256,m=this.perlin[x&4095],m+=c*(this.perlin[x+1&4095]-m),y=this.perlin[x+16&4095],y+=c*(this.perlin[x+16+1&4095]-y),m+=u*(y-m),h+=Ip(d)*(m-h),p+=h*f,f*=oM,o<<=1,s*=2,i<<=1,l*=2,a<<=1,d*=2,s>=1&&(o++,s--),l>=1&&(i++,l--),d>=1&&(a++,d--)}return p}noiseSeed(t){let e=(()=>{let a,s;return{setSeed(l){s=a=(l??Math.random()*4294967296)>>>0},getSeed(){return a},rand(){return s=(1664525*s+1013904223)%4294967296,s/4294967296}}})();e.setSeed(t),this.perlin=new Array(4095+1);for(let r=0;r<4095+1;r++)this.perlin[r]=e.rand()}},ax=Np;import{Vector3 as nM,Matrix4 as iM,Ray as aM}from"three";var sx=new nM,lx=new iM,cx=new aM;function ux(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var Na=class extends st{constructor(e,r,o){super(e,r,o);this.data=r}get textGeometry(){return this.geometry}get charWidths(){return this.textGeometry.charWidths}get charCoords(){return this.textGeometry.charCoords}get wrappedText(){return this.textGeometry.wrappedText}get font(){return this.textGeometry.font}get initialOffsetY(){let e=this.dataPatched;return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,e.geometry.height,this.fontScale,e.geometry.verticalAlign)??0}get fontScale(){let e=this.dataPatched;return this.font?e.geometry.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){let e=this.dataPatched;return e.geometry.fontSize*e.geometry.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(!(isNaN(e.ray.origin.x)||this.scale.x===0||this.scale.y===0||this.scale.z===0)&&(lx.copy(o).invert(),cx.copy(e.ray).applyMatrix4(lx),cx.intersectBox(this.singleBBox,sx))){let i=sx.applyMatrix4(o),a=e.ray.origin.distanceTo(i);r.push({distance:a,point:i.clone(),object:this})}}};var jt=1e-4,oo,hx,mx,yx,px=new cr,fx=new cr;ra.then(n=>{oo=n,hx=[oo.get_face_center,oo.get_edge_midpoint,oo.get_vertex_position],mx=[oo.get_face_normal,oo.get_edge_normal,oo.get_vertex_normal],yx=[oo.face_count,oo.edge_count,oo.vertex_count]});var lM=new $n,cM=new $n,ln=new cr,Wn=new cr,Rs=new cr,Dp=new cr,uM=new cr,dM=new cr;var Po=new ax,Da=class extends zi(sM){constructor(e,r){super();this.parameters=r;this.objectForSample=void 0;this._pendingMediaLoad=!1;this.object=e}resetOnMove(){this.removeFromParent(),this.parent=null}expandClones(e){if(this.parent===null)this.updateState(this.parameters,e);else for(let r of this.children)r instanceof wo&&r.expand()}invalidateTransform(e){this.matrixWorldNeedsUpdate=!0,this.traverse(r=>{r instanceof wo&&r.object===e&&(r.matrixWorldNeedsUpdate=!0)})}onObjUpdateMatrix(){this.parameters.type!=="toObject"&&(this.matrixWorldNeedsUpdate=!0)}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}for(let e of this.children)e.updateMatrix(),e.hasNonUniformScale&&(e.updateMatrixWorld(),e.updateMatrixWorldSVD())}_updateCount(e){let r;if(e!==void 0?r=e:r=this.parameters.type==="grid"?Math.round(this.parameters.grid.count[0])*Math.round(this.parameters.grid.count[1])*Math.round(this.parameters.grid.count[2]):this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(r=0),this.parameters.type==="toObject"&&this.objectForSample){for(let i=0,a=this.children.length;i<a;++i)this.remove(this.children[0]);let o=this.children;if(o.length===r)return;if(o.length<r)for(let i=0,a=r-o.length;i<a;++i){let s=new wo(this.object);s.expand(),this.add(s)}else for(let i=0,a=o.length-r;i<a;++i)this.remove(o[i])}else{if(this.children.length===r)return;if(this.children.length<r)for(let o=0,i=r-this.children.length;o<i;++o){let a=new wo(this.object);a.expand(),this.add(a)}else for(let o=0,i=this.children.length-r;o<i;++o)this.remove(this.children[0])}}_updateRadial(e){let r=e.radial,o=r.start*dx.DEG2RAD,i=r.end*dx.DEG2RAD,a=o-i,s=new Ep(r.rotation[0],r.rotation[1],r.rotation[2]),l;switch(r.axis){case"z":l=new cr(0,0,1);break;case"y":l=new cr(0,1,0);break;default:case"x":l=new cr(1,0,0);break}let d=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,c=d.noiseType==="perlin";Po.noiseSeed(d.seed);let u=tc((0,Ea.default)(d.seed)),p=Bs(d.strength,this.parameters.randomness);for(let[f,h]of this.children.entries()){let m=f*(d.freqScale/10)+d.movement,y=c?Po.noise(m):u(m,m),g=f+1;h.scale.x=r.scale[0]+p(g,ve(y,d.scale[0]))||jt,h.scale.y=r.scale[1]+p(g,ve(y,d.scale[1]))||jt,h.scale.z=r.scale[2]+p(g,ve(y,d.scale[2]))||jt,h.position.setScalar(0);let x=a/e.count*f-o;switch(r.axis){case"x":h.rotation.set(0,x,0);break;case"y":h.rotation.set(0,0,x);break;case"z":h.rotation.set(x,0,0);break}h.translateOnAxis(l,r.radius),h.position.x+=r.position[0]+p(g,ve(y,d.position[0])),h.position.y+=r.position[1]+p(g,ve(y,d.position[1])),h.position.z+=r.position[2]+p(g,ve(y,d.position[2]));let S=p(g,ve(y,d.rotation[0])),w=p(g,ve(y,d.rotation[1])),b=p(g,ve(y,d.rotation[2]));r.alignment===!0?(h.rotation.x+=s.x+S,h.rotation.y+=s.y+w,h.rotation.z+=s.z+b):h.rotation.set(s.x+S,s.y+w,s.z+b)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ep(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,a=i.noiseType==="perlin";Po.noiseSeed(i.seed);let s=tc((0,Ea.default)(i.seed)),l=Bs(i.strength,this.parameters.randomness);for(let[d,c]of this.children.entries()){let u=d*(i.freqScale/10)+i.movement,p=a?Po.noise(u):s(u,u),f=d+1,h=l(f,ve(p,i.rotation[0])),m=l(f,ve(p,i.rotation[1])),y=l(f,ve(p,i.rotation[2]));c.scale.x=1+(r.scale[0]-1)*d+l(f,ve(p,i.scale[0]))||jt,c.scale.y=1+(r.scale[1]-1)*d+l(f,ve(p,i.scale[1]))||jt,c.scale.z=1+(r.scale[2]-1)*d+l(f,ve(p,i.scale[2]))||jt,c.rotation.x=o.x*d+h,c.rotation.y=o.y*d+m,c.rotation.z=o.z*d+y,c.position.x=r.position[0]*d+l(f,ve(p,i.position[0])),c.position.y=r.position[1]*d+l(f,ve(p,i.position[1])),c.position.z=r.position[2]*d+l(f,ve(p,i.position[2]))}}_updateGrid(e){let r=0,o=e.grid,i=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,a=Bs(i.strength,this.parameters.randomness),s=i.noiseType==="perlin";Po.noiseSeed(i.seed);let l=Ry((0,Ea.default)(i.seed));if(o.useCenter===!0){let d={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},c=new cr(o.size[0]*(o.count[0]-d.x)*.5,o.size[1]*(o.count[1]-d.y)*.5,o.size[2]*(o.count[2]-d.z)*.5);for(let u=0;u<o.count[0];u++)for(let p=0;p<o.count[1];p++)for(let f=0;f<o.count[2];f++){let h=[(u+1)*(i.freqScale/10)+i.movement,(p+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],m=s?Po.noise(...h):l(...h),y=this.children[r++];y.scale.x=1+a(r,ve(m,i.scale[0]))||jt,y.scale.y=1+a(r,ve(m,i.scale[1]))||jt,y.scale.z=1+a(r,ve(m,i.scale[2]))||jt;let g=a(r,ve(m,i.rotation[0])),x=a(r,ve(m,i.rotation[1])),S=a(r,ve(m,i.rotation[2]));y.rotation.set(g,x,S),y.position.x=o.size[0]*u-c.x+a(r,ve(m,i.position[0])),y.position.y=o.size[1]*p-c.y+a(r,ve(m,i.position[1])),y.position.z=o.size[2]*f-c.z+a(r,ve(m,i.position[2]))}}else for(let d=0;d<o.count[0];d++)for(let c=0;c<o.count[1];c++)for(let u=0;u<o.count[2];u++){let p=[(d+1)*(i.freqScale/10)+i.movement,(c+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],f=s?Po.noise(...p):l(...p),h=this.children[r++];h.scale.x=1+a(r,ve(f,i.scale[0]))||jt,h.scale.y=1+a(r,ve(f,i.scale[1]))||jt,h.scale.z=1+a(r,ve(f,i.scale[2]))||jt;let m=a(r,ve(f,i.rotation[0])),y=a(r,ve(f,i.rotation[1])),g=a(r,ve(f,i.rotation[2]));h.rotation.set(m,y,g),h.position.x=o.size[0]*d+a(r,ve(f,i.position[0])),h.position.y=-o.size[1]*c+a(r,ve(f,i.position[1])),h.position.z=-o.size[2]*u+a(r,ve(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:r}=e,o=new Ep(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject??Ur.defaultData([1,1,1]).randomnessObject,a=i.noiseType==="perlin";Po.noiseSeed(i.seed);let s=tc((0,Ea.default)(i.seed)),l=Bs(i.strength,this.parameters.randomness);if(!r.object){for(let[,g]of this.children.entries())g.position.set(0,0,0),g.scale.setScalar(1),g.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;if(this.objectForSample instanceof Na)if(!this.objectForSample.font?.isLoaded||this.objectForSample.geometry.attributes.position===void 0){this._pendingMediaLoad=!0;return}else this._pendingMediaLoad=!1;if(this.objectForSample.geometry===void 0&&this.objectForSample.isAncestorOf(this.object.uuid)){console.warn(`Oh no! The object "${this.object.name}" (${this.object.uuid}) seem to be a child/descendant of the object it's being cloned to. Please re-parent it so that they are siblings instead.`);return}let d=this.getSubdivData(),c=[],u=g=>{let x=g.length,S=g.map(_=>_[0]).reduce((_,A)=>_+A,0),w=g.map(_=>_[1]).reduce((_,A)=>_+A,0),b=g.map(_=>_[2]).reduce((_,A)=>_+A,0);return[S/x,w/x,b/x]},p=g=>Math.round(g*1e6)/1e6;d.forEach(g=>{let x=d.filter(S=>p(g.pos[0])===p(S.pos[0])&&p(g.pos[1])===p(S.pos[1])&&p(g.pos[2])===p(S.pos[2]));x.length>1?c.push({pos:g.pos,norm:u(x.map(S=>S.norm))}):c.push(g)});let f=ox(c);if(f.length>0){let g=Math.round(f.length*r.count/100);this._updateCount(g)}else{let g=this.objectForSample.geometry.getAttribute("position");if(!g||isNaN(g.count)||g.count===0){console.warn(`Oh no! The object "${this.object.name}" (${this.object.uuid}) cannot be cloned on the surface of "${this.objectForSample.name}" (${this.objectForSample.uuid}) because the latter does not have a valid geometry.`);return}}this.objectForSample.updateMatrixWorld();let h=new rc(this.objectForSample).build(),m=tx[r.axis],y=this.children;h.setRandomGenerator((0,Ea.default)(this.object.uuid+r.seed));for(let[g,x]of y.entries()){let S=g*(i.freqScale/10)+i.movement,w=a?Po.noise(S):s(S,S),b=g+1,_=l(b,ve(w,i.rotation[0])),A=l(b,ve(w,i.rotation[1])),v=l(b,ve(w,i.rotation[2]));r.spreadType==="random"?h.sample(Rs,Dp):(f.length&&(Rs.fromArray(f[g].pos),Dp.fromArray(f[g].norm)),this.objectForSample instanceof Un&&Rs.applyMatrix4(lM.copy(this.objectForSample.matrixWorld).invert())),Rs.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(Rs),ln.fromArray(m);let M=r.align==="normal"?Dp:this.object.getWorldDirection(dM),O=Wn.fromArray(r.position);Wn.x+=Wn.x+l(b,ve(w,i.position[0])),Wn.y+=Wn.y+l(b,ve(w,i.position[1])),Wn.z+=Wn.z+l(b,ve(w,i.position[2]));let T=Math.acos(M.dot(ln)),C=uM.crossVectors(ln,M).normalize(),P=cM.makeRotationAxis(C,T),I=M.clone().cross(this.object.up).normalize(),D=I.clone().cross(M).normalize(),G=new $n().makeBasis(I,M,D),N=new cr(ln.y,ln.z,ln.x).normalize(),F=N.clone().cross(ln).normalize(),B=new $n().makeBasis(N,ln,F).invert(),R=new $n().multiplyMatrices(G,B);x.rotation.setFromRotationMatrix(R),O.applyMatrix4(P),x.position.add(O),x.rotation.x=x.rotation.x+o.x+_,x.rotation.y=x.rotation.y+o.y+A,x.rotation.z=x.rotation.z+o.z+v,x.scale.setScalar(1),x.scale.x=x.scale.x+r.scale[0]+l(b,ve(w,i.scale[0]))||jt,x.scale.y=x.scale.y+r.scale[1]+l(b,ve(w,i.scale[1]))||jt,x.scale.z=x.scale.z+r.scale[2]+l(b,ve(w,i.scale[2]))||jt,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample instanceof Un){let r=this.objectForSample,o=rx[e],i=yx[o],a=hx[o],s=mx[o],l=[],d=i(r.subdivPointerNew);for(let c=0;c<=d-1;c++){let u=a(r.subdivPointerNew,c),p=s(r.subdivPointerNew,c);px.fromArray(u).applyMatrix4(r.matrixWorld),fx.fromArray(p),l.push({pos:px.toArray(),norm:fx.toArray()})}return l}else return(this.objectForSample.geometry.index?nx(this.objectForSample.geometry):ix(this.objectForSample.geometry)).map((o,i)=>e==="polygon_center"?{pos:o.midpoint,norm:o.norm}:e==="vertex"?[{pos:o.vertices[0],norm:o.norm},{pos:o.vertices[1],norm:o.norm},{pos:o.vertices[2],norm:o.norm}]:e==="edge"?[{pos:o.faceCenters[0],norm:o.norm},{pos:o.faceCenters[1],norm:o.norm},{pos:o.faceCenters[2],norm:o.norm}]:[]).flat()}updateState(e,r){if(this.parameters=yo(e),this.parameters.type!=="toObject")(this.parent===null||this.parent!==this.object)&&(this.removeFromParent(),this.object.parent?.add(this),this.matrix=this.object.matrix,this.hiddenMatrix=this.object.hiddenMatrix,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1);else if(this.parent===null||this.parent.uuid!==this.parameters.toObject.object){this.removeFromParent();let o=r.find(this.parameters.toObject.object);o instanceof It?this.objectForSample=o:this.objectForSample=void 0,this.matrix=new $n,this.hiddenMatrix=new $n,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1,o&&o.add(this)}this.update()}get pendingMediaLoad(){return this._pendingMediaLoad}};import{Scene as aN,Vector3 as sN,Matrix4 as lN,Box3 as cN,MeshBasicMaterial as uN,Skeleton as dN}from"three";import{Camera as _M,OrthographicCamera as AM,PerspectiveCamera as TM,Vector3 as Dr,Object3D as bx,Quaternion as CM,Matrix4 as PM}from"three";import{Camera as gM,LineSegments as xM,BufferGeometry as vM,LineBasicMaterial as bM,Color as Bp,Vector3 as SM,Float32BufferAttribute as xx}from"three";import{BoxGeometry as pM}from"three";var no=n=>{var t;return t=class extends n{},t.geometryHelper=new pM(30,30,30),t};import{Ray as fM,Sphere as hM,Matrix4 as mM,Vector3 as Oo}from"three";var Xc=new fM,Lp=new hM,gx=new mM,io=(n,t,e,r,o=!1)=>{let i=t,a=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Lp.copy(i.boundingSphere),Lp.applyMatrix4(a),e.ray.intersectsSphere(Lp)===!1||(gx.copy(a).invert(),Xc.copy(e.ray).applyMatrix4(gx),i.boundingBox!==null&&Xc.intersectsBox(i.boundingBox)===!1))return;let s,l,d,c,u=i.index,p=i.attributes.position,f=i.drawRange,h,m;if(o===!1){let g=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(h=g,m=x;h<m;h+=3)if(l=u.getX(h),d=u.getX(h+1),c=u.getX(h+2),s=y(n,e,Xc,p,l,d,c),s){s.faceIndex=Math.floor(h/3),r.push(s);return}}else{let x=i.attributes.position,S=new Oo,w=new Oo,b=new Oo,_=new Oo,A=2,M=1/((n.scale.x+n.scale.y+n.scale.z)/3),O=M*M,T=Math.max(0,f.start),C=Math.min(x.count,f.start+f.count);for(let P=T,I=C-1;P<I;P+=A){if(S.fromBufferAttribute(x,P),w.fromBufferAttribute(x,P+1),Xc.distanceSqToSegment(S,w,_,b)>O)continue;_.applyMatrix4(n.matrixWorld);let G=e.ray.origin.distanceTo(_);G<e.near||G>e.far||r.push({distance:G,point:b.clone().applyMatrix4(n.matrixWorld),object:n})}}function y(g,x,S,w,b,_,A){let v=new Oo,M=new Oo,O=new Oo,T=new Oo,C=new Oo;if(v.fromBufferAttribute(w,b),M.fromBufferAttribute(w,_),O.fromBufferAttribute(w,A),S.intersectTriangle(v,M,O,!1,T)===null)return null;C.copy(T),C.applyMatrix4(g.matrixWorld);let I=x.ray.origin.distanceTo(C);return I<x.near||I>x.far?null:{faceIndex:1,distance:I,point:C.clone(),object:g}}};var Kc=new SM,yr=new gM,Rp=class extends xM{constructor(e){let r=new vM,o=new bM({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],a=[],s={},l=new Bp(15711266),d=new Bp(15711266),c=new Bp(2857471);u("n1","n2",l),u("n2","n4",l),u("n4","n3",l),u("n3","n1",l),u("f1","f2",l),u("f2","f4",l),u("f4","f3",l),u("f3","f1",l),u("n1","f1",l),u("n2","f2",l),u("n3","f3",l),u("n4","f4",l),u("p","n1",d),u("p","n2",d),u("p","n3",d),u("p","n4",d),u("u1","u2",c),u("u2","u3",c),u("u3","u1",c);function u(f,h,m){p(f,m),p(h,m)}function p(f,h){i.push(0,0,0),a.push(h.r,h.g,h.b),s[f]===void 0&&(s[f]=[]),s[f].push(i.length/3-1)}r.setAttribute("position",new xx(i,3)),r.setAttribute("color",new xx(a,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;yr.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,a=1,s=o?.8:1e-4;Er("n1",r,e,yr,-i,-a,s),Er("n2",r,e,yr,i,-a,s),Er("n3",r,e,yr,-i,a,s),Er("n4",r,e,yr,i,a,s);let l=s;Er("f1",r,e,yr,-i,-a,l),Er("f2",r,e,yr,i,-a,l),Er("f3",r,e,yr,-i,a,l),Er("f4",r,e,yr,i,a,l);let d=l,c=.5;Er("u1",r,e,yr,i*.7*c,a*1.1,d),Er("u2",r,e,yr,-i*.7*c,a*1.1,d),Er("u3",r,e,yr,0,a*(1.1+.9*c),d),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Er(n,t,e,r,o,i,a){Kc.set(o,i,a).unproject(r);let s=t[n];if(s!==void 0){let l=e.getAttribute("position");for(let d=0,c=s.length;d<c;d++)l.setXYZ(s[d],Kc.x,Kc.y,Kc.z)}}var Qc=class extends no(Rp){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,r){io(this.object,this.geometry,e,r,!0)}};import{Box3Helper as vx,BoxGeometry as wM}from"three";var Zc;(t=>t.is=e=>"objectHelper"in e)(Zc||(Zc={}));var ao=(n,t)=>class extends ji(n){constructor(){super(...arguments);this.objectHelper=new t(this);this.gizmos={}}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}showGizmos(){for(let o in this.gizmos){let i=this.gizmos[o];i instanceof vx&&(i.visible=!0)}}updateEntityBoxSize(o,i){this.objectHelper.visible&&this.geometryHelper instanceof wM?(o.setScalar(0),i.set(this.geometryHelper.parameters.width,this.geometryHelper.parameters.height,this.geometryHelper.parameters.height).multiplyScalar(.5)):super.updateEntityBoxSize(o,i)}hideGizmos(){for(let o in this.gizmos){let i=this.gizmos[o];i instanceof vx&&(i.visible=!1)}}};var Jc=790,La=new Dr,Vp=new Dr,Gp=new CM,zp=new Dr,Vs=new Dr,kp=new Dr,Mo=class extends ao(_M,Qc){constructor(e="",r={...Tn.defaultData,name:""}){super();this._cameraType="OrthographicCamera";this.targetOffset=qo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.wasMovedByUser=!1;this.wasMovedBySwitchCameraAction=!1;this.super_Entity(e,r),this.previousProjectionMatrix=new PM,this.matrixAutoUpdate=!0,this.width=window.innerWidth,this.height=window.innerHeight;let o=this.width,i=this.height;this.orthoCamera=new AM(o*-.5,o*.5,i*.5,i*-.5,-5e4,1e4),this.perspCamera=new TM(45,o/i,50,1e4),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.objectHelper.update()}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}set fov(e){this.perspCamera.fov=e}get fov(){return this.perspCamera.fov}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e,r,o){typeof e=="number"&&(e=new Dr(e,r,o)),super.lookAt(e),this.getWorldPosition(La),this.targetOffset=La.distanceTo(e)}getTarget(e=new Dr){return this.getWorldDirection(Vp),this.getWorldPosition(La),Vp.multiplyScalar(this.targetOffset),e.copy(La).add(Vp),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(La),La.distanceTo(e)}updateUp(){this.getWorldQuaternion(Gp),zp.set(0,0,1).applyQuaternion(Gp),Vs.copy(bx.DEFAULT_UP),this.isUpVectorFlipped&&Vs.negate(),Vs.applyQuaternion(Gp),kp.copy(bx.DEFAULT_UP).projectOnPlane(zp),this.angleOffsetFromUp=kp.angleTo(Vs),this.angleOffsetFromUp*=kp.cross(Vs).dot(zp)>=0?1:-1}updateTransformState(e,r){let o=super.updateTransformState(e,r);return e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateUp(),o}getViewFrontToObject(e){let r=e.getWorldPosition(new Dr),i=e.getWorldDirection(new Dr).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToTarget(e){let o=this.getWorldDirection(new Dr).multiplyScalar(this.targetOffset);return{position:e.clone().sub(o),target:e}}getViewToObject(e){let r=new Dr,o=e.getWorldPosition(r);return this.getViewToTarget(r)}setViewplaneSize(e,r,o=!1){if(this.aspect=e/r,o){let i=e>r?this.aspect:1,a=e>r?1:this.aspect;this.left=-Jc*.5*i,this.right=Jc*.5*i,this.top=Jc*.5*(1/a),this.bottom=-Jc*.5*(1/a)}else this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5;this.updateProjectionMatrix()}copyViewPlaneSize(e){this.aspect=e.aspect,this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,r,o,i,a,s){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,a,s):this.orthoCamera.setViewOffset(e,r,o,i,a,s)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}copyHistory(){this.previousProjectionMatrix&&this.previousProjectionMatrix.copy(this.projectionMatrix)}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),this.parent=e.parent,this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return vi(r,e)}updateCameraSubtype(e,r){let o=e==="perspective"?"PerspectiveCamera":"OrthographicCamera";r.zoom!==void 0&&this.setZoom(o,r.zoom),r.near!==void 0&&this.setNear(o,r.near),r.fov!==void 0&&o==="PerspectiveCamera"&&(this.fov=r.fov)}updateState(e,r){this.updateCameraState(e,r)}updateCameraState(e,r){this.updateState_Entity(e,r),e.far!==void 0&&(this.far=e.far),e.orthographic!==void 0&&this.updateCameraSubtype("orthographic",e.orthographic),e.perspective!==void 0&&this.updateCameraSubtype("perspective",e.perspective),e.type!==void 0&&(this.cameraType=e.type),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix()}updateByPatchedOp(e,r,o){super.updateByPatchedOp(e,r,o),e.path.length===1&&e.type===0&&this.updateCameraSubtype(e.path[0],e.props)}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}};import{MathUtils as JJ}from"three";import{BufferGeometry as Sx,Matrix4 as Fp,Float32BufferAttribute as OM,Vector3 as Ax}from"three";var Ba=new Fp,MM=new Fp,eu=new Fp,wx=new Ax,_x=new Ax;var er=class extends Jt{constructor(e,r,o){super(e,r);this.data=r;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.geometry=new Sx;this.onAfterRender=(e,r,o,i,a,s)=>{super.onAfterRender(e,r,o,i,a,s),this.recomputeBoolean()};this.geometry.userData.parameters={width:0,height:0,depth:0}}get booleanOp(){return this.data.geometry.operation}get phongAngle(){return this.data.geometry.phongAngle??45}get isLOD(){return this.recomputeBoolean(),!1}updateByPatchedOp(e,r,o){super.updateByPatchedOp(e,r,o),e.path.length===1&&e.path[0]==="geometry"&&e.type===0&&e.props.operation!==void 0&&(this.freeBooleanPointer(),this.resetBBoxNeedsUpdate())}freeBooleanPointer(){super.freeBooleanPointer(),this.geometry.dispose()}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1&&!e)return;for(let i=0;i<this.children.length;i++){let a=this.children[i];a instanceof er&&a.dataPatched.visible===!0&&a.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let a=this.children[i];if(a instanceof It&&a.dataPatched.visible===!0&&a.geometry.attributes.position?.count>0&&a.geometry.drawRange.count>0&&a.booleanMeshSetAddress!==0){Ba.multiplyMatrices(a.hiddenMatrix,a.matrix);try{if(a.booleanMeshSetAddress===-1){if((a.geometry.index??a.geometry.getAttribute("position")).count/3<15e5&&(a.booleanMeshSetAddress=pr.getMeshSet(a.geometry,e===!0,r)),a.booleanMeshSetAddress===-1)return;pr.transformMeshSet(a.booleanMeshSetAddress,Ba),a.booleanMatrixInvOld.copy(Ba).invert(),a.booleanWasTransformed=!1}else a instanceof er&&a.needsTransformForDownstream===!0?(pr.transformMeshSet(a.booleanMeshSetAddress,Ba),a.needsTransformForDownstream=!1):a.booleanWasTransformed===!0&&(pr.transformMeshSet(a.booleanMeshSetAddress,MM.multiplyMatrices(Ba,a.booleanMatrixInvOld)),a.booleanMatrixInvOld.copy(Ba).invert(),a.booleanWasTransformed=!1)}catch(s){console.error(s),a.booleanMeshSetAddress=0,a.geometry.userData.booleanOperationDidFail=!0;continue}pr.hasOpenEdges(a.booleanMeshSetAddress)===!1||i===this.children.length-1&&this.booleanOp===2?(this.meshSetAddresses.push(a.booleanMeshSetAddress),a.geometry.userData.booleanOperationDidFail=!1):a.geometry.userData.booleanOperationDidFail="openEdges"}}if(this.meshSetAddresses.length===0){this.geometry.setAttribute("position",new OM([],0)),this.geometry.setDrawRange(0,0);return}if(e===!0)return pr.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Sx,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=pr.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,this.geometry.userData.booleanOperationDidFail=!0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Oa(this),Ma(this)}dispose(){super.dispose(),this.geometry.dispose()}get recursiveBBox(){let e=super.recursiveBBox;return this.geometry.boundingSphere?.radius===-1&&(e.getCenter(this.geometry.boundingSphere.center),eu.copy(this.matrixWorld).invert(),this.geometry.boundingSphere.center.applyMatrix4(eu),wx.copy(e.max).applyMatrix4(eu),_x.copy(e.min).applyMatrix4(eu),this.geometry.boundingSphere.radius=wx.distanceTo(_x)/2),e}};import{Light as IM}from"three";var Tx;(t=>{function n(e){return Ae.is(e)&&e instanceof IM}t.is=n})(Tx||(Tx={}));var Ra=(n,t)=>class extends ao(n,t){updateState_Light(r,o){this.updateState_Entity(r,o),r.color!==void 0&&(this.color=o.shared.color(r.color)),r.intensity!==void 0&&(this.intensity=r.intensity),r.depth!==void 0&&(this.shadow.camera.far=r.depth,this.shadow.needsUpdate=!0),r.shadows!==void 0&&(this.castShadow=r.shadows)}};var cn=n=>n instanceof It,Gs=n=>n!==null&&n instanceof er;var zs=n=>Zc.is(n);import{Group as EM}from"three";import{AxesHelper as NM}from"three";var so=class extends no(NM){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.object.isBone&&(this.visible=!1)}raycast(e,r){io(this.object,so.geometryHelper,e,r)}update(){}};var un=class extends ao(EM,so){constructor(t,e){super(),this.super_Entity(t,e),this.objectHelper.update()}updateState(t,e){this.updateState_Entity(t,e),"buffer"in t&&Object.keys(t).length===1&&e.scene.reloadSplats()}};import{Color as WM,Fog as $M,HemisphereLight as YM}from"three";import{ShaderChunk as ks}from"three";var DM=n=>`
2234
2234
 
2235
2235
  // PCSS implementation based on:
2236
2236
  // https://www.gamedev.net/articles/programming/graphics/contact-hardening-soft-shadows-made-fast-r4906/
@@ -2604,13 +2604,13 @@ float vogelShadow(int index, sampler2D shadowMap, vec2 uv, float texelSize, floa
2604
2604
  }
2605
2605
 
2606
2606
  #endif
2607
- `,LM=ks.lights_fragment_begin,DM=ks.shadowmask_pars_fragment,Cx=null,BM=n=>{switch(n){case"low":return 8;case"medium":return 16;case"high":return 32;default:return 16}},Px=(n="medium")=>{if(Cx===n)return!1;Cx=n;let t=BM(n);ks.shadowmap_pars_fragment=EM(t);let e=LM.slice();e=e.replace("getShadow( spotShadowMap[ i ]",`getShadow( UNROLLED_LOOP_INDEX + ${3}, spotShadowMap[ i ]`),e=e.replace("getShadow( directionalShadowMap[ i ]","getShadow( UNROLLED_LOOP_INDEX, directionalShadowMap[ i ]"),ks.lights_fragment_begin=e;let r=DM.slice();return r=r.replaceAll("getShadow(","getShadow( UNROLLED_LOOP_INDEX, "),ks.shadowmask_pars_fragment=r,!0};import{DirectionalLight as kM,CameraHelper as Ox}from"three";import{DirectionalLightHelper as RM}from"three";var Ga=class extends no(RM){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){io(this.object,Ga.geometryHelper,e,r)}};import{PointLightHelper as VM}from"three";var za=class extends no(VM){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){io(this.object,za.geometryHelper,e,r)}};import{SpotLightHelper as GM,Vector3 as zM}from"three";var tu=class extends no(GM){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){io(this.object,tu.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=tu._vector,r=this.object.distance?this.object.distance:1e3,o=r*Math.tan(this.object.angle);this.cone.scale.set(o,o,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let a=0,s=this.cone.material.length;a<s;a++)this.cone.material[a].color.set(i);else this.cone.material.color.set(i)}}},Fs=tu;Fs._vector=new zM;function FM(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var ka=class extends Ra(kM,Ga){constructor(t,e,r){super(),this.super_Entity(t,e),this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.top=1250,i.bottom=-1250,i.right=1250,i.left=-1250,i.near=-1e4,i.far=2500;let a=new Ox(this.shadow.camera);a.visible=!1,this.gizmos.shadowmap=a}update(){this.shadow.camera.updateProjectionMatrix();for(let t in this.gizmos){let e=this.gizmos[t];e instanceof Ox&&e.update()}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.objectHelper&&this.objectHelper.update()}updateState(t,e){this.updateState_Light(t,e);let r=t.depth!==void 0&&t.depth!==this.shadow.camera.far||t.size!==void 0&&t.size/2!==this.shadow.camera.right;t.size!==void 0&&FM(this,t.size),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),t.penumbraSize!==void 0&&e.scene.markPenumbraSizeDirty(),r&&this.update()}};import{Scene as YM}from"three";import{SpotLight as jM,CameraHelper as Mx,MathUtils as UM,Vector3 as Lx,Quaternion as HM}from"three";var Ix=new Lx,Nx=new Lx,Ex=new HM,Fa=class extends Ra(jM,Fs){constructor(t,e,r){super(),this.super_Entity(t,e),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.fov=UM.RAD2DEG*2*this.angle,i.aspect=1,i.near=100,i.far=2500;let a=new Mx(this.shadow.camera);a.visible=!1,this.gizmos.shadowmap=a,this.update()}update(){this.shadow.camera.updateProjectionMatrix();for(let t in this.gizmos){let e=this.gizmos[t];e instanceof Mx&&e.update()}}updateMatrixWorld(t){super.updateMatrixWorld(t),Nx.setFromMatrixPosition(this.matrixWorld),Ex.setFromRotationMatrix(this.matrixWorld),Ix.copy(this.up).applyQuaternion(Ex).negate().multiplyScalar(this.distance),this.target.position.copy(Nx).add(Ix),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}updateState(t,e){this.updateState_Light(t,e),t.distance!==void 0&&(this.distance=t.distance),t.decay!==void 0&&(this.decay=t.decay),t.angle!==void 0&&(this.angle=t.angle),t.penumbra!==void 0&&(this.penumbra=t.penumbra),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.penumbraSize!==void 0&&e.scene.markPenumbraSizeDirty(),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var dn=class extends ji(YM){constructor(e,r){super();this.data=r;this.bgColor=new ht(1,1,1,1);this.fog=null;this.backupFog=new WM(16777215,.1,2e3);this.fogUseBGColor=!1;this.isActive=!1;this.aoColor=new qM;this.penumbraSizeArrayCache=null;this.super_Entity(e,r),this.personalCamera=new Mo(Uo,{...Tn.defaultData,...r.camera,name:"Personal Camera"}),this.personalCamera.objectHelper.visible=!1,this.add(this.personalCamera),this.activeCamera=this.personalCamera,this.ambientLight=new $M(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.ambientLight.removeFromParent(),this.add(this.ambientLight)}get scene(){return this.parent}get postprocessing(){return this.data.postprocessing}updateVisible(){}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}updateAmbientLight(e,r){e.color!==void 0&&(this.ambientLight.color=Lt(e.color,r)),e.intensity!==void 0&&(this.ambientLight.intensity=e.intensity),e.enabled!==void 0&&(e.enabled?this.add(this.ambientLight):this.remove(this.ambientLight))}onDeactive(){this.isActive=!1}onActive(e){this.isActive=!0,e.fog=this.fog,this.updateShadow(this.data.shadow)}forceMaterialsUpdate(){this.traverseEntity(e=>{if(e instanceof Jt)if(Array.isArray(e.material))for(let r of e.material)r.needsUpdate=!0;else e.material.needsUpdate=!0,e.material.dispose()})}updateShadow(e){e.softShadowQuality!==void 0&&this.isActive&&Px(e.softShadowQuality)&&this.forceMaterialsUpdate()}updateFog(e,r){if(e.enabled?this.fog=this.backupFog:this.fog=null,this.isActive){let o=this.scene;o.fog=this.fog}this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=Lt(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}updateAo(e,r){e.aoColor!==void 0&&(this.aoColor=Lt(e.aoColor,r))}updateByOp(e,r,o,i){super.updateByOp(e,r,o,i);let a=r;Dt(e.path,["fog"])?this.updateFog(a.fog,o.shared):Dt(e.path,["ao"])?this.updateAo(a.ao,o.shared):Dt(e.path,["ambient"])?this.updateAmbientLight(a.ambient,o.shared):Dt(e.path,["shadow"])&&this.updateShadow(a.shadow)}updateState(e,r){this.updateState_Entity(e,r),e.backgroundColor!==void 0&&this.setBackgroundColor(Lt(e.backgroundColor,r.shared)),e.fog!==void 0&&this.updateFog(e.fog,r.shared),e.ambient!==void 0&&this.updateAmbientLight(e.ambient,r.shared),e.ao!==void 0&&this.updateAo(e.ao,r.shared),e.shadow!==void 0&&this.updateShadow(e.shadow)}raycast(e,r){super.raycast(e,r)}switchActiveCamera(e){e&&e.isDescendantOf(this)&&(this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1)}get playCamera(){return this.scene?.find(this.data.publish.playCamera)??this.personalCamera}switchToPlayCamera(){this.switchActiveCamera(this.playCamera)}get penumbraSizeArray(){return this.penumbraSizeArrayCache===null&&this.updatePenumbraSizeArray(),this.penumbraSizeArrayCache}updatePenumbraSizeArray(){this.penumbraSizeArrayCache=new Array(5).fill(.5);let e=0,r=0;this.traverseEntity(o=>{if(!o.visible)return!0;o instanceof ka&&o.visible&&e<3&&(this.penumbraSizeArrayCache[e]=o.data.penumbraSize,e+=1),o instanceof Fa&&o.visible&&e<5-3&&(this.penumbraSizeArrayCache[3+r]=o.data.penumbraSize,r+=1)})}raycastWithClones(e){let r=[],o=i=>{for(let a of i.children){let s=a.cloner;Ae.is(a)&&(a.visible||s?.object.data.visible)&&((cn(a)||zs(a)&&this.scene.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,r),Us(a,e,r,!0)),o(a))}};return o(this),r}};import{PointLight as XM,Vector3 as ru,Box3 as KM,Box3Helper as Dx,Color as QM}from"three";var ou=class extends Ra(XM,za){constructor(t,e,r){super(),this.super_Entity(t,e),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.fov=90,i.aspect=1,i.near=100,i.far=2500;let a=new ru(-i.far+this.position.x,-i.far+this.position.y,-i.far+this.position.z),s=new ru(i.far+this.position.x,i.far+this.position.y,i.far+this.position.z),l=new KM(a,s),d=new Dx(l,new QM(16755200));d.visible=!1,this.gizmos.shadowmap=d,this.update()}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this.gizmos))for(let t in this.gizmos){let e=this.gizmos[t];if(e instanceof Dx){let r=this.shadow.camera,o=new ru(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),i=new ru(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z);e.box.set(o,i),e.updateMatrixWorld(!0)}}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.objectHelper&&this.objectHelper.update()}updateState(t,e){this.updateState_Light(t,e),t.distance!==void 0&&(this.distance=t.distance),t.decay!==void 0&&(this.decay=t.decay),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var nu=class extends st{get forceComputeSize(){return!0}get shape(){return this.geometry.userData.shape}updateEntityBoxSize(t,e){let r=this.geometry.getAttribute("position");r!==void 0?_s(r,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:r.count,t,e):super.updateEntityBoxSize(t,e)}};var ja=class extends st{constructor(e,r,o){super(e,r,o);this._shapeId=null;this._context=o}updateState(e,r){super.updateState(e,r),this.updateShape()}updateShape(){let e={...this.data.geometry.extrusion.shape};for(let i in e)typeof e[i]=="string"&&(e[i]=this._context.shared.getVariable(e[i],[this.uuid,"geometry","extrusion","shape",i]));let r;if(e.type==="Custom"){let i=e.shapeId;if(i!==this._shapeId&&this.detachShape(),i){this._shapeId=i;let a=this._context.scene.find(i);a?.data&&(a.attachedPaths.add(this),r=a.geometry.userData?.shape),r||this._context.scene.addPendingCommand(()=>this.updateShape())}}else{let i;switch(e.type){case"Rectangle":i=Ac;break;case"Ellipse":i=Ki;break;case"Polygon":i=_c;break;case"Star":i=Tc;break;default:throw new Error(`Unknown shape type: ${e.type}`)}r=i.create({parameters:e}).userData.shape}let o=this.geometry;r&&o.inputs&&(o.inputs.shapeData=r,o.build(),this.attachedSurfaceCloners.forEach(i=>i.update()))}detachShape(){this._shapeId!==null&&this._context.scene.find(this._shapeId)?.attachedPaths.delete(this)}createGeometryDelayed(e){this.geometryCreateDeleyed=e.shared,this.updateShape(),this.refreshAttachedPaths(e)}updateTransformState(e,r){return super.updateTransformState(e,r)}updateGeometryInteractions(e,r){super.updateGeometryInteractions(e,r),this.updateShape()}updateEntityBoxSize(e,r){let o=this.geometry.getAttribute("position");o!==void 0?_s(o,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:o.count,e,r):super.updateEntityBoxSize(e,r)}};import{Group as ZM,Matrix4 as JM,Skeleton as eI}from"three";var Io=class extends ao(ZM,so){constructor(e,r,o){super();r.type==="Instance"&&typeof e=="string"&&(r=this.transformAssignData(r,o)),this.super_Entity(e,r),this.objectHelper.update()}get isComponentRoot(){return this.data.type==="Component"&&typeof this.identity=="string"}get isInstanceRoot(){return this.data.type==="Instance"&&typeof this.identity=="string"}transformAssignData(e,r){let o=Di.getComponentData({scene:r.scene.data,shared:r.shared.data},e.component);if(o){let i,a;for(let s of Hr.rootOverrideProps)e[s]===void 0?(i===void 0&&(i={...e}),i[s]=o.data[s]):(a===void 0&&(a={}),a[s]=e[s],i===void 0&&(i={...e}),i[s]=Gr.apply(o.data[s],e[s]));return this.overrideData=a,i}else return{...Ot.defaultData,...e,...xr(Ot.defaultData,Hr.rootOverrideProps)}}updateByOp(e,r,o,i){let a;if(this.isInstanceRoot&&!i){if(r=this.transformAssignData(r,o),e.type===0&&e.path.length===0&&this.component)for(let s of Hr.rootOverrideProps)s in e.props&&e.props[s]===void 0&&(a===void 0&&(a={...e,props:{...e.props}}),a.props[s]=this.component.data[s]);else if(e.type===0&&e.path.length>0&&Hr.rootOverrideProps.includes(e.path[0])){let s=e.path[0];a===void 0&&(a={...e,path:[],props:{[s]:r[s]}})}}super.updateByOp(a??e,r,o,i)}updateState(e,r){this.updateState_Entity(e,r)}expandInstanceChildren(e){let r=this.data;if(this.component===void 0){let o=e.scene.find(r.component)??null,i=!1;if(o!==this.oldComponent){if(this.oldComponent){let a=0;for(let s of this.children)if(Ae.is(s))e.scene.disposeAndUnregisterEntityRecursivelyIfNotReregistered(s),iu(s),a+=1;else break;this.children.splice(0,a)}i=!0}if(o){let a={};Rx(e,[this.uuid],r.overrides,this,o,o,0,i,a);for(let s of this.children)if(Ae.is(s)){let l=s.data;l.type==="Empty"&&l.animations&&s.traverseEntity(d=>{if(d instanceof st&&d.isSkinnedMesh){let c=d.dataPatched;if(c.bones&&c.boneInverses){let u=c.bones.map(h=>e.scene.find(a[h])),p=c.boneInverses.map(h=>new JM().fromArray(h)),f=new eI(u,p);d.bind(f,d.bindMatrix)}}else d.matrixAutoUpdate=!0})}}this.oldComponent=this.component}}};function iu(n){if(n.component){let t=n.component.instances.indexOf(n);t>=0&&n.component.instances.splice(t,1);for(let e of n.children)Ae.is(e)&&iu(e)}}function Bx(n,t,e,r){return n.component===t&&Su(n.identity,r)?n.overrideData===e?2:1:0}function Rx(n,t,e,r,o,i,a,s,l){if(a>50)return!1;if(r.component!==o){if(r.component){let c=r.component.instances.indexOf(r);c>=0&&r.component.instances.splice(c,1)}o.instances.push(r),r.component=o}o instanceof Io&&o.isInstanceRoot&&o.expandInstanceChildren(n);let d=0;for(let c of o.children)if(Ae.is(c)){let u=[...t,...typeof c.identity=="string"?[c.identity]:c.identity],p=Ni.resolve(e,u,1);if(p!=null&&!(p instanceof ke)){if(!1)debugger;Object.setPrototypeOf(p,ke.prototype),console.error("wrong prototype")}let f=null,h;if(!s){let m=r.children[d];if(f=Ae.is(m)?m:null,f!==null){let y=Bx(f,c,p,u);h=y>=1?f.stateSelection:void 0,y!==2&&(f=null)}if(f===null&&(f=n.scene.findInstance(u)??null,f!==null)){let y=Bx(f,c,p,u);if(h=y>=1?f.stateSelection:void 0,y!==2)f=null;else{let g=f.parent.children.indexOf(f);f.parent.children.splice(g,1),r.children.splice(d,0,f),f.parent===r?(g<=d&&console.error("not possible"),void 0):(f.parent=r,f.matrixWorldNeedsUpdate=!0,f.resetBBoxNeedsUpdate(),f.updateVisible(),n.pendingDeletes.delete(f),void 0)}}}if(f===null){let m=p?Gr.apply(c.data,p):c.data;vr.is(m.type)&&(m={...m,type:"Empty"}),f=wr.createEntity(u,m,n),f.overrideData=p,r.add(f),r.children.splice(r.children.length-1,1),r.children.splice(d,0,f),f.updateState(f.data,n),h&&f.changeSelectedState(h,n),n.scene.registerInstanceAndSetUuid(f)}if(f.isBone){let m=f.identity[f.identity.length-1];l[m]=f.uuid}d+=1,Rx(n,t,e,f,c,i,a+1,s,l)}if(!s){let c=d;for(;;){let u=r.children[d];if(Ae.is(u))n.pendingDeletes.add(u);else break;d+=1}r.children.splice(c,d-c)}return!0}import{Bone as tI}from"three";var au=class extends ao(tI,so){constructor(t,e){super(),this.super_Entity(t,e),this.objectHelper.update(),this.matrixAutoUpdate=!0}updateState(t,e){this.updateState_Entity(t,e)}};function rI(n,t,e){let r;return t.geometry.type==="TextGeometry"?new Na(n,t,e):(t.geometry.type==="SubdivGeometry"?r=new Un(n,t,e):t.geometry.type==="PathGeometry"?r=new ja(n,t,e):t.geometry.type==="VectorGeometry"?r=new nu(n,t,e):t.geometry.type==="BooleanGeometry"?r=new yr(n,t,e):r=new st(n,t,e),r)}function su(n,t,e){return t.type==="Mesh"?rI(n,t,e):t.type==="Empty"?new un(n,t):t.type==="Splat"?new un(n,t):t.type==="Bone"?new au(n,t):t.type==="Page"?new dn(n,t):t.type==="PointLight"?new ou(n,t,e):t.type==="SpotLight"?new Fa(n,t,e):t.type==="DirectionalLight"?new ka(n,t,e):t.type==="Component"||t.type==="Instance"?new Io(n,t,e):vr.is(t.type)?new Mo(n,t):(console.error(t),new un(n,t))}wr.createEntity=su;function oI(n,t,e){let r=su(n.identity,t,e),o=n.children,i=n.attachedPaths,a=n.parent,s=n.component,l=n.instances,d=n.overrideData,c=n.uuid,u=n.stateSelection;n.dispose();for(let p of Object.keys(n))delete n[p];Object.setPrototypeOf(n,Object.getPrototypeOf(r));for(let p of Object.keys(r))n[p]=r[p];n.children=[...n.children,...o],n.attachedPaths=i,n.parent=a,n.component=s,n.instances=l,n.uuid=c,n.overrideData=d,n.updateState(n.data,e),u&&n.changeSelectedState(u,e),n.resetBBoxNeedsUpdate()}wr.changeEntityProptotype=oI;wr.Cloner=La;function Vx(n,t,e,r){n.updateByOp(t,e,r,!1)}import{Matrix4 as aI,Ray as sI,Raycaster as lI}from"three";function Gx(n,t){let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),r.length>0&&n.layers.enable(3),e=!0,Ma(n),Oa(n)),r.length===0&&o.length===0&&n.layers.set(0),n instanceof Jt&&n.needsAO&&n.layers.enable(5),e}function zx(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission").filter(i=>i.data.visible),o=t.getLayersOfType("outline").filter(i=>i.data.visible);return r.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),r.length===0&&o.length===0&&n.layers.set(0),n.needsAO&&n.layers.enable(5),e}function kx(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Jt)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Gx(e,e.material[r])&&(t=!0);else Gx(e,e.material)&&(t=!0)}),t}function Fx(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Jt)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)zx(e,e.material[r])&&(t=!0);else zx(e,e.material)&&(t=!0)}),t}var cI=new lI,uI=new aI,dI=new sI;function Us(n,t,e,r=!1){let o=n.cloner;if(o)for(let i of o.children){let a=uI.copy(i.matrixWorld).invert(),s=dI.copy(t.ray).applyMatrix4(a),l=n.matrixWorld;s.applyMatrix4(l);let d=cI;d.set(s.origin,s.direction),d.near=t.near,d.far=t.far;let c=d.intersectObject(n,!1);c.length>0&&e.push({...c[0],object:r?i:n})}}var lu=class{constructor(){this._constraints=new Map}setConstraint(t,e){e===null?this._constraints.delete(t):this._constraints.set(t,e)}removeDependencies(t){this._constraints.delete(t)}applyConstraints(t){let e=new Set;this._constraints.forEach((r,o)=>{let i=[o,r],a=r;for(;this._constraints.has(a);)a=this._constraints.get(a),e.has(a)||i.push(a);for(let s=i.length-2;s>=0;s--)if(!e.has(i[s])){let l=t.find(i[s]);l?l.applyPathSnapping(t):console.warn(`missing entity ${i[s]}`),e.add(i[s])}})}findDependency(t,e){let r=t;for(;this._constraints.has(r);)if(r=this._constraints.get(r),r===e)return!0;return!1}};var Dr=Rt(Ua()),lo=Rt(Ha());var tt=Rt(Ua()),ce=Rt(Ha()),pn=class{constructor(t,e,r){this._dataNormalized=t,this._minD=e,this._maxD=r}static createFromUnnormalized(t){let e=ce.sup(t),r=ce.inf(t),o=(0,tt.default)(new Float32Array(t.size),t.shape),i=e-r;return i<1e-4?ce.assigns(o,0):(ce.subs(o,t,r),ce.divs(o,o,i)),new pn(o,r,e)}get data(){return this._dataNormalized}get minD(){return this._minD}get maxD(){return this._maxD}denormalize(){let t=(0,tt.default)(new Float32Array(this._dataNormalized.size),this._dataNormalized.shape);return ce.muls(t,this._dataNormalized,this._maxD-this._minD),ce.adds(t,t,this._minD),t}},Fe=class{constructor(t,e){this._quantized=t,this._method=e}get quantized(){return this._quantized}static maxIntBits(t){return 2**t-1}static fromNormalized(t,e){let r=t.data,o;if(e==="norm8x"){let i=Fe.maxIntBits(8),a=(0,tt.default)(new Float32Array(r.size),r.shape);ce.muls(a,r,i),ce.roundeq(a),o=(0,tt.default)(new Uint8Array(a.data),r.shape)}else if(e==="norm565"){let i=(0,tt.default)(new Float32Array(r.size),r.shape);ce.assign(i,r),ce.mulseq(i.pick(null,0),Fe.maxIntBits(5)),ce.mulseq(i.pick(null,1),Fe.maxIntBits(6)),ce.mulseq(i.pick(null,2),Fe.maxIntBits(5)),ce.roundeq(i);let a=(0,tt.default)(new Uint16Array(i.data),r.shape),s=(0,tt.default)(new Uint16Array(r.shape[0]),[r.shape[0]]),l=(0,tt.default)(new Uint16Array(r.shape[0]),[r.shape[0]]);ce.lshifts(s,a.pick(null,0),11),ce.lshifts(l,a.pick(null,1),5),ce.boreq(s,l),ce.boreq(s,a.pick(null,2)),o=s}else{let i=(0,tt.default)(new Float32Array(r.size),r.shape);ce.assign(i,r),ce.mulseq(i.pick(null,0),Fe.maxIntBits(11)),ce.mulseq(i.pick(null,1),Fe.maxIntBits(10)),ce.mulseq(i.pick(null,2),Fe.maxIntBits(11)),ce.roundeq(i);let a=(0,tt.default)(new Uint32Array(i.data),r.shape),s=(0,tt.default)(new Uint32Array(r.shape[0]),[r.shape[0]]),l=(0,tt.default)(new Uint32Array(r.shape[0]),[r.shape[0]]);ce.lshifts(s,a.pick(null,0),21),ce.lshifts(l,a.pick(null,1),11),ce.boreq(s,l),ce.boreq(s,a.pick(null,2)),o=s}return new Fe(o,e)}dequantize(t,e){let r=this._method,o,i=this._quantized;if(r==="norm8x"){let a=Fe.maxIntBits(8);o=(0,tt.default)(new Float32Array(i.size),i.shape),ce.muls(o,i,1/a)}else if(r==="norm565"){let a=(0,tt.default)(new Uint8Array(i.shape[0]),[i.shape[0]]),s=(0,tt.default)(new Uint8Array(i.shape[0]),[i.shape[0]]),l=(0,tt.default)(new Uint8Array(i.shape[0]),[i.shape[0]]);ce.rrshifts(a,i,11),ce.rrshifts(s,i,5),ce.bandseq(s,Fe.maxIntBits(6)),ce.bands(l,i,Fe.maxIntBits(5)),o=(0,tt.default)(new Float32Array(i.shape[0]*3),[i.shape[0],3]),ce.muls(o.pick(null,0),a,1/Fe.maxIntBits(5)),ce.muls(o.pick(null,1),s,1/Fe.maxIntBits(6)),ce.muls(o.pick(null,2),l,1/Fe.maxIntBits(5))}else{let a=(0,tt.default)(new Uint16Array(i.shape[0]),[i.shape[0]]),s=(0,tt.default)(new Uint16Array(i.shape[0]),[i.shape[0]]),l=(0,tt.default)(new Uint16Array(i.shape[0]),[i.shape[0]]);ce.rrshifts(a,i,21),ce.rrshifts(s,i,11),ce.bandseq(s,Fe.maxIntBits(10)),ce.bands(l,i,Fe.maxIntBits(11)),o=(0,tt.default)(new Float32Array(i.shape[0]*3),[i.shape[0],3]),ce.muls(o.pick(null,0),a,1/Fe.maxIntBits(11)),ce.muls(o.pick(null,1),s,1/Fe.maxIntBits(10)),ce.muls(o.pick(null,2),l,1/Fe.maxIntBits(11))}return new pn(o,t,e)}};var je=class{constructor(t,e,r,o,i,a=!1){this._quantized=t,this._minMaxMatrix=e,this._chunkSize=r,this._quantizationMethod=o,this._variableChunkSize=i,this._isDynamicChunks=a}get length(){return this._quantized.shape[0]}get nchunks(){return this._minMaxMatrix.shape[0]}get quantized(){return this._quantized}get method(){return this._quantizationMethod}get minmaxMatrix(){return this._minMaxMatrix}_createPrunedMinMax(t){let e=t.length,r=this.minmaxMatrix.shape[0]-e,o=(0,Dr.default)(new Float32Array(r*2),[r,2]),i=0,a=r,s=0,l=this.minmaxMatrix.shape[0];for(let d=0;d<t.length;d++)l=t[d],a=l-s+i,a>i&&lo.assign(o.hi(a,2).lo(i,0),this.minmaxMatrix.hi(l,2).lo(s,0)),i=a,s=l+1;return i<r&&lo.assign(o.lo(i,0),this.minmaxMatrix.lo(s,0)),o}_createPrunedQuantized(t){let e=t.length,r=this.quantized.shape[0]-e,o=this._quantizationMethod,i,a;if(o==="norm8x"){a=this._quantized.shape[1];let u=a?r*a:r;i=(0,Dr.default)(new Uint8Array(u),a?[r,a]:[r,1])}else o==="norm565"?i=(0,Dr.default)(new Uint16Array(r),[r]):i=(0,Dr.default)(new Uint32Array(r),[r]);let s=0,l=r,d=0,c=i.shape[0];for(let u=0;u<t.length;u++)c=t[u],l=c-d+s,l>s&&(a?lo.assign(i.hi(l,a).lo(s,0),this._quantized.hi(c,a).lo(d,0)):lo.assign(i.hi(l).lo(s),this._quantized.hi(c).lo(d))),s=l,d=c+1;return s<r&&(a?lo.assign(i.lo(s,0),this._quantized.lo(d,0)):lo.assign(i.lo(s),this._quantized.lo(d))),i}pruneFeature(t,e,r){let o=this._createPrunedQuantized(t),i=this._createPrunedMinMax(e);return new je(o,i,this._chunkSize,this._quantizationMethod,r,!0)}static getRequiredNChunks(t,e){return Math.floor(t/e)}static fromArray(t,e,r){let o=t.shape[0],i=Math.floor(o/r),a=(0,Dr.default)(new Float32Array(i*2),[i,2],[2,1]),s;e==="norm8x"?s=(0,Dr.default)(new Uint8Array(t.size),t.shape):e==="norm565"?s=(0,Dr.default)(new Uint16Array(t.shape[0]),[t.shape[0]]):s=(0,Dr.default)(new Uint32Array(t.shape[0]),[t.shape[0]]);for(let l=0;l<i;l++){let d=l*r,c=l+1<i?(l+1)*r:o,u;t.shape.length>1?u=pn.createFromUnnormalized(t.hi(c,t.shape[1]).lo(d,0)):u=pn.createFromUnnormalized(t.hi(c).lo(d)),a.set(l,0,u.minD),a.set(l,1,u.maxD),s.shape.length>1?lo.assign(s.hi(c,s.shape[1]).lo(d,0),Fe.fromNormalized(u,e).quantized):lo.assign(s.hi(c).lo(d),Fe.fromNormalized(u,e).quantized)}return new je(s,a,r,e)}denormDequant(){let t=this._minMaxMatrix.shape[0],e=this._quantized,r=e.shape[0],o=this._quantizationMethod,i=this._chunkSize,a;if(this._isDynamicChunks){if(!this._variableChunkSize)throw new Error("variable chunk must exists if chunkSize isDynamic");a=this._variableChunkSize}let s;o==="norm8x"?s=(0,Dr.default)(new Float32Array(e.size),e.shape):s=(0,Dr.default)(new Float32Array(r*3),[r,3]);let l=0,d=i;for(let c=0;c<t;c++){let[u,p]=[this._minMaxMatrix.get(c,0),this._minMaxMatrix.get(c,1)];this._isDynamicChunks&&(d=a[c]);let f=c+1<t?l+d:r,h;e.shape.length>1?h=new Fe(e.hi(f,e.shape[1]).lo(l,0),o):h=new Fe(e.hi(f).lo(l),o),lo.assign(s.hi(f,s.shape[1]).lo(l,0),h.dequantize(u,p).denormalize()),l=f}return s}static async fetchArrayBuffer(t){return await(await fetch(t,{mode:"cors"})).arrayBuffer()}};var No=Rt(Ua()),Ce=Rt(Ha());var cv="http://127.0.0.1:8000";var Yn=Rt(Ua()),ze=Rt(Ha());var uv=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];function dv(n){return n<1e5?n<100?n<10?0:1:n<1e4?n<1e3?2:3:4:n<1e7?n<1e6?5:6:n<1e9?n<1e8?7:8:9}function pv(n,t){if(n===t)return 0;if(~~n===n&&~~t===t){if(n===0||t===0)return n<t?-1:1;if(n<0||t<0){if(t>=0)return-1;if(n>=0)return 1;n=-n,t=-t}let o=dv(n),i=dv(t),a=0;return o<i?(n*=uv[i-o-1],t/=10,a=-1):o>i&&(t*=uv[o-i-1],n/=10,a=1),n===t?a:n<t?-1:1}let e=String(n),r=String(t);return e===r?0:e<r?-1:1}function RI(n){let t=0;for(;n>=32;)t|=n&1,n>>=1;return n+t}function fv(n,t,e,r){let o=t+1;if(o===e)return 1;if(r(n[o++],n[t])<0){for(;o<e&&r(n[o],n[o-1])<0;)o++;VI(n,t,o)}else for(;o<e&&r(n[o],n[o-1])>=0;)o++;return o-t}function VI(n,t,e){for(e--;t<e;){let r=n[t];n[t++]=n[e],n[e--]=r}}function hv(n,t,e,r,o){for(r===t&&r++;r<e;r++){let i=n[r],a=t,s=r;for(;a<s;){let d=a+s>>>1;o(i,n[d])<0?s=d:a=d+1}let l=r-a;switch(l){case 3:n[a+3]=n[a+2];case 2:n[a+2]=n[a+1];case 1:n[a+1]=n[a];break;default:for(;l>0;)n[a+l]=n[a+l-1],l--}n[a]=i}}function qp(n,t,e,r,o,i){let a=0,s=0,l=1;if(i(n,t[e+o])>0){for(s=r-o;l<s&&i(n,t[e+o+l])>0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),a+=o,l+=o}else{for(s=o+1;l<s&&i(n,t[e+o-l])<=0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s);let d=a;a=o-l,l=o-d}for(a++;a<l;){let d=a+(l-a>>>1);i(n,t[e+d])>0?a=d+1:l=d}return l}function Wp(n,t,e,r,o,i){let a=0,s=0,l=1;if(i(n,t[e+o])<0){for(s=o+1;l<s&&i(n,t[e+o-l])<0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s);let d=a;a=o-l,l=o-d}else{for(s=r-o;l<s&&i(n,t[e+o+l])>=0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),a+=o,l+=o}for(a++;a<l;){let d=a+(l-a>>>1);i(n,t[e+d])<0?l=d:a=d+1}return l}var $p=class{constructor(t,e){yt(this,"array",null);yt(this,"compare",null);yt(this,"minGallop",7);yt(this,"length",0);yt(this,"tmpStorageLength",256);yt(this,"stackLength",0);yt(this,"runStart",null);yt(this,"runLength",null);yt(this,"stackSize",0);this.array=t,this.compare=e,this.length=t.length,this.length<2*256&&(this.tmpStorageLength=this.length>>>1),this.tmp=new Array(this.tmpStorageLength),this.stackLength=this.length<120?5:this.length<1542?10:this.length<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength)}pushRun(t,e){this.runStart[this.stackSize]=t,this.runLength[this.stackSize]=e,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;if(t>=1&&this.runLength[t-1]<=this.runLength[t]+this.runLength[t+1]||t>=2&&this.runLength[t-2]<=this.runLength[t]+this.runLength[t-1])this.runLength[t-1]<this.runLength[t+1]&&t--;else if(this.runLength[t]>this.runLength[t+1])break;this.mergeAt(t)}}forceMergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;t>0&&this.runLength[t-1]<this.runLength[t+1]&&t--,this.mergeAt(t)}}mergeAt(t){let e=this.compare,r=this.array,o=this.runStart[t],i=this.runLength[t],a=this.runStart[t+1],s=this.runLength[t+1];this.runLength[t]=i+s,t===this.stackSize-3&&(this.runStart[t+1]=this.runStart[t+2],this.runLength[t+1]=this.runLength[t+2]),this.stackSize--;let l=Wp(r[a],r,o,i,0,e);o+=l,i-=l,i!==0&&(s=qp(r[o+i-1],r,a,s,s-1,e),s!==0&&(i<=s?this.mergeLow(o,i,a,s):this.mergeHigh(o,i,a,s)))}mergeLow(t,e,r,o){let i=this.compare,a=this.array,s=this.tmp,l=0;for(l=0;l<e;l++)s[l]=a[t+l];let d=0,c=r,u=t;if(a[u++]=a[c++],--o===0){for(l=0;l<e;l++)a[u+l]=s[d+l];return}if(e===1){for(l=0;l<o;l++)a[u+l]=a[c+l];a[u+o]=s[d];return}let p=this.minGallop;for(;;){let f=0,h=0,m=!1;do if(i(a[c],s[d])<0){if(a[u++]=a[c++],h++,f=0,--o===0){m=!0;break}}else if(a[u++]=s[d++],f++,h=0,--e===1){m=!0;break}while((f|h)<p);if(m)break;do{if(f=Wp(a[c],s,d,e,0,i),f!==0){for(l=0;l<f;l++)a[u+l]=s[d+l];if(u+=f,d+=f,e-=f,e<=1){m=!0;break}}if(a[u++]=a[c++],--o===0){m=!0;break}if(h=qp(s[d],a,c,o,0,i),h!==0){for(l=0;l<h;l++)a[u+l]=a[c+l];if(u+=h,c+=h,o-=h,o===0){m=!0;break}}if(a[u++]=s[d++],--e===1){m=!0;break}p--}while(f>=7||h>=7);if(m)break;p<0&&(p=0),p+=2}if(this.minGallop=p,p<1&&(this.minGallop=1),e===1){for(l=0;l<o;l++)a[u+l]=a[c+l];a[u+o]=s[d]}else{if(e===0)throw new Error("mergeLow preconditions were not respected");for(l=0;l<e;l++)a[u+l]=s[d+l]}}mergeHigh(t,e,r,o){let i=this.compare,a=this.array,s=this.tmp,l=0;for(l=0;l<o;l++)s[l]=a[r+l];let d=t+e-1,c=o-1,u=r+o-1,p=0,f=0;if(a[u--]=a[d--],--e===0){for(p=u-(o-1),l=0;l<o;l++)a[p+l]=s[l];return}if(o===1){for(u-=e,d-=e,f=u+1,p=d+1,l=e-1;l>=0;l--)a[f+l]=a[p+l];a[u]=s[c];return}let h=this.minGallop;for(;;){let m=0,y=0,g=!1;do if(i(s[c],a[d])<0){if(a[u--]=a[d--],m++,y=0,--e===0){g=!0;break}}else if(a[u--]=s[c--],y++,m=0,--o===1){g=!0;break}while((m|y)<h);if(g)break;do{if(m=e-Wp(s[c],a,t,e,e-1,i),m!==0){for(u-=m,d-=m,e-=m,f=u+1,p=d+1,l=m-1;l>=0;l--)a[f+l]=a[p+l];if(e===0){g=!0;break}}if(a[u--]=s[c--],--o===1){g=!0;break}if(y=o-qp(a[d],s,0,o,o-1,i),y!==0){for(u-=y,c-=y,o-=y,f=u+1,p=c+1,l=0;l<y;l++)a[f+l]=s[p+l];if(o<=1){g=!0;break}}if(a[u--]=a[d--],--e===0){g=!0;break}h--}while(m>=7||y>=7);if(g)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),o===1){for(u-=e,d-=e,f=u+1,p=d+1,l=e-1;l>=0;l--)a[f+l]=a[p+l];a[u]=s[c]}else{if(o===0)throw new Error("mergeHigh preconditions were not respected");for(p=u-(o-1),l=0;l<o;l++)a[p+l]=s[l]}}};function mv(n,t,e,r){if(!Array.isArray(n))throw new TypeError("Can only sort arrays");t?typeof t!="function"&&(r=e,e=t,t=pv):t=pv,e||(e=0),r||(r=n.length);let o=r-e;if(o<2)return;let i=0;if(o<32){i=fv(n,e,r,t),hv(n,e,r,e+i,t);return}let a=new $p(n,t),s=RI(o);do{if(i=fv(n,e,r,t),i<s){let l=o;l>s&&(l=s),hv(n,e,e+l,e+i,t),i=l}a.pushRun(e,i),a.mergeRuns(),o-=i,e+=i}while(o!==0);a.forceMergeRuns()}function Yp(n){let t=(0,Yn.default)(new Int32Array(n.shape[0]),[n.shape[0]]),e=(0,Yn.default)(new Int32Array(n.shape[0]),[n.shape[0]]);return ze.bands(t,n,1023),ze.lshifts(e,t,16),ze.bxoreq(t,e),ze.bandseq(t,4278190335),ze.lshifts(e,t,8),ze.bxoreq(t,e),ze.bandseq(t,50393103),ze.lshifts(e,t,4),ze.bxoreq(t,e),ze.bandseq(t,51130563),ze.lshifts(e,t,2),ze.bxoreq(t,e),ze.bandseq(t,153391689),t}function GI(n){let t=Yp(n.pick(null,0)),e=Yp(n.pick(null,1));ze.lshiftseq(e,1);let r=Yp(n.pick(null,2));return ze.lshiftseq(r,2),ze.boreq(t,e),ze.boreq(t,r),t}function fn(n,t){if(n.shape[0]!==t.shape[0])throw new Error("wrong length");let e=(0,Yn.default)(new Float32Array(n.size),n.shape,n.stride,n.offset);for(let r=0;r<t.shape[0];r++){let o=t.get(r);if(n.shape.length>1)for(let i=0;i<n.shape[1];i++)e.set(r,i,n.get(o,i));else e.set(r,n.get(o))}return e}function Xp(n){let t=ze.sup(n),e=ze.inf(n),r=1e3/Math.min(1e3,t-e),o=(0,Yn.default)(new Float32Array(n.data),n.shape);ze.mulseq(o,r);let i=(0,Yn.default)(new Int32Array(o.data),n.shape),a=GI(i),l=Array.from(a.data).map((u,p)=>[u,p]);mv(l,(u,p)=>u[0]-p[0]);let d=l.map(([u,p])=>p);return(0,Yn.default)(Uint32Array.from(d))}var gr=class{constructor(t,e,r,o,i,a,s,l,d,c){this.propertyDescs=t,this.format=e,this.nsplats=r,this.xyz=o,this.colors=i,this.harmonics=a,this.opacity=s,this.scaling=l,this.rotation=d,this.maxSHDegree=c}getPlyBinary(){let t=gr._generateHeaderString(this.propertyDescs,this.format,this.nsplats),e=new TextEncoder().encode(t),r=Object.keys(this.propertyDescs).length,o=(0,No.default)(new Float32Array(this.nsplats*r),[this.nsplats,r]);if(Ce.assign(o.pick(null,this.propertyDescs.x.index),this.xyz.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.y.index),this.xyz.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.z.index),this.xyz.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.f_dc_0.index),this.colors.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.f_dc_1.index),this.colors.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.f_dc_2.index),this.colors.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.opacity.index),this.opacity.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.scale_0.index),this.scaling.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.scale_1.index),this.scaling.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.scale_2.index),this.scaling.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.rot_0.index),this.rotation.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.rot_1.index),this.rotation.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.rot_2.index),this.rotation.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.rot_3.index),this.rotation.pick(null,3)),this.harmonics&&this.harmonics.length>0)for(let s=0;s<this.harmonics.length;s++){let l=s*3;Ce.assign(o.pick(null,this.propertyDescs[`f_rest_${l}`].index),this.harmonics[s].pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs[`f_rest_${l+1}`].index),this.harmonics[s].pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs[`f_rest_${l+2}`].index),this.harmonics[s].pick(null,2))}let i=new Uint8Array(o.data.buffer),a=new Uint8Array(i.length+e.length);return a.set(e),a.set(i,e.length),a.buffer}save(t,e){let r=this.getPlyBinary(),o=new Blob([r],{type:"application/octet-stream"}),i=new File([o],t),a=new FormData;a.append("file",i),a.append("filename",t),a.append("basedir",e),fetch(`${cv}/push_file`,{method:"POST",body:a})}static async loadFile(t){return await(await fetch(t)).arrayBuffer()}mortonPositionSplatsSort(){let t=Xp(this.xyz),e=fn(this.xyz,t),r=fn(this.colors,t),o=fn(this.opacity,t),i=fn(this.scaling,t),a=fn(this.rotation,t),s=[];for(let l=0;l<this.harmonics.length;l++)s.push(fn(this.harmonics[l],t));return new gr(this.propertyDescs,this.format,this.nsplats,e,r,s,o,i,a,this.maxSHDegree)}static _generateHeaderString(t,e,r){let o=`ply
2607
+ `,LM=ks.lights_fragment_begin,BM=ks.shadowmask_pars_fragment,Cx=null,RM=n=>{switch(n){case"low":return 8;case"medium":return 16;case"high":return 32;default:return 16}},Px=(n="medium")=>{if(Cx===n)return!1;Cx=n;let t=RM(n);ks.shadowmap_pars_fragment=DM(t);let e=LM.slice();e=e.replace("getShadow( spotShadowMap[ i ]",`getShadow( UNROLLED_LOOP_INDEX + ${3}, spotShadowMap[ i ]`),e=e.replace("getShadow( directionalShadowMap[ i ]","getShadow( UNROLLED_LOOP_INDEX, directionalShadowMap[ i ]"),ks.lights_fragment_begin=e;let r=BM.slice();return r=r.replaceAll("getShadow(","getShadow( UNROLLED_LOOP_INDEX, "),ks.shadowmask_pars_fragment=r,!0};import{DirectionalLight as FM,CameraHelper as Ox}from"three";import{DirectionalLightHelper as VM}from"three";var Va=class extends no(VM){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){io(this.object,Va.geometryHelper,e,r)}};import{PointLightHelper as GM}from"three";var Ga=class extends no(GM){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){io(this.object,Ga.geometryHelper,e,r)}};import{SpotLightHelper as zM,Vector3 as kM}from"three";var tu=class extends no(zM){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){io(this.object,tu.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=tu._vector,r=this.object.distance?this.object.distance:1e3,o=r*Math.tan(this.object.angle);this.cone.scale.set(o,o,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let a=0,s=this.cone.material.length;a<s;a++)this.cone.material[a].color.set(i);else this.cone.material.color.set(i)}}},Fs=tu;Fs._vector=new kM;function jM(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var za=class extends Ra(FM,Va){constructor(t,e,r){super(),this.super_Entity(t,e),this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.top=1250,i.bottom=-1250,i.right=1250,i.left=-1250,i.near=-1e4,i.far=2500;let a=new Ox(this.shadow.camera);a.visible=!1,this.gizmos.shadowmap=a}update(){this.shadow.camera.updateProjectionMatrix();for(let t in this.gizmos){let e=this.gizmos[t];e instanceof Ox&&e.update()}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.objectHelper&&this.objectHelper.update()}updateState(t,e){this.updateState_Light(t,e);let r=t.depth!==void 0&&t.depth!==this.shadow.camera.far||t.size!==void 0&&t.size/2!==this.shadow.camera.right;t.size!==void 0&&jM(this,t.size),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),t.penumbraSize!==void 0&&e.scene.markPenumbraSizeDirty(),r&&this.update()}};import{Scene as XM}from"three";import{SpotLight as UM,CameraHelper as Mx,MathUtils as HM,Vector3 as Dx,Quaternion as qM}from"three";var Ix=new Dx,Nx=new Dx,Ex=new qM,ka=class extends Ra(UM,Fs){constructor(t,e,r){super(),this.super_Entity(t,e),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.fov=HM.RAD2DEG*2*this.angle,i.aspect=1,i.near=100,i.far=2500;let a=new Mx(this.shadow.camera);a.visible=!1,this.gizmos.shadowmap=a,this.update()}update(){this.shadow.camera.updateProjectionMatrix();for(let t in this.gizmos){let e=this.gizmos[t];e instanceof Mx&&e.update()}}updateMatrixWorld(t){super.updateMatrixWorld(t),Nx.setFromMatrixPosition(this.matrixWorld),Ex.setFromRotationMatrix(this.matrixWorld),Ix.copy(this.up).applyQuaternion(Ex).negate().multiplyScalar(this.distance),this.target.position.copy(Nx).add(Ix),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}updateState(t,e){this.updateState_Light(t,e),t.distance!==void 0&&(this.distance=t.distance),t.decay!==void 0&&(this.decay=t.decay),t.angle!==void 0&&(this.angle=t.angle),t.penumbra!==void 0&&(this.penumbra=t.penumbra),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.penumbraSize!==void 0&&e.scene.markPenumbraSizeDirty(),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var dn=class extends ji(XM){constructor(e,r){super();this.data=r;this.bgColor=new ht(1,1,1,1);this.fog=null;this.backupFog=new $M(16777215,.1,2e3);this.fogUseBGColor=!1;this.isActive=!1;this.aoColor=new WM;this.penumbraSizeArrayCache=null;this.super_Entity(e,r),this.personalCamera=new Mo(Uo,{...Tn.defaultData,...r.camera,name:"Personal Camera"}),this.personalCamera.objectHelper.visible=!1,this.add(this.personalCamera),this.activeCamera=this.personalCamera,this.ambientLight=new YM(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.ambientLight.removeFromParent(),this.add(this.ambientLight)}get scene(){return this.parent}get postprocessing(){return this.data.postprocessing}updateVisible(){}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}updateAmbientLight(e,r){e.color!==void 0&&(this.ambientLight.color=Dt(e.color,r)),e.intensity!==void 0&&(this.ambientLight.intensity=e.intensity),e.enabled!==void 0&&(e.enabled?this.add(this.ambientLight):this.remove(this.ambientLight))}onDeactive(){this.isActive=!1}onActive(e){this.isActive=!0,e.fog=this.fog,this.traverseEntity(r=>{r instanceof er&&r.recomputeBoolean()}),this.updateShadow(this.data.shadow)}forceMaterialsUpdate(){this.traverseEntity(e=>{if(e instanceof Jt)if(Array.isArray(e.material))for(let r of e.material)r.needsUpdate=!0;else e.material.needsUpdate=!0,e.material.dispose()})}updateShadow(e){e.softShadowQuality!==void 0&&this.isActive&&Px(e.softShadowQuality)&&this.forceMaterialsUpdate()}updateFog(e,r){if(e.enabled?this.fog=this.backupFog:this.fog=null,this.isActive){let o=this.scene;o.fog=this.fog}this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=Dt(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}updateAo(e,r){e.aoColor!==void 0&&(this.aoColor=Dt(e.aoColor,r))}updateByOp(e,r,o,i){super.updateByOp(e,r,o,i);let a=r;Lt(e.path,["fog"])?this.updateFog(a.fog,o.shared):Lt(e.path,["ao"])?this.updateAo(a.ao,o.shared):Lt(e.path,["ambient"])?this.updateAmbientLight(a.ambient,o.shared):Lt(e.path,["shadow"])&&this.updateShadow(a.shadow)}updateState(e,r){this.updateState_Entity(e,r),e.backgroundColor!==void 0&&this.setBackgroundColor(Dt(e.backgroundColor,r.shared)),e.fog!==void 0&&this.updateFog(e.fog,r.shared),e.ambient!==void 0&&this.updateAmbientLight(e.ambient,r.shared),e.ao!==void 0&&this.updateAo(e.ao,r.shared),e.shadow!==void 0&&this.updateShadow(e.shadow)}raycast(e,r){super.raycast(e,r)}switchActiveCamera(e){e&&e.isDescendantOf(this)&&(this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1)}get playCamera(){return this.scene?.find(this.data.publish.playCamera)??this.personalCamera}switchToPlayCamera(){this.switchActiveCamera(this.playCamera)}get penumbraSizeArray(){return this.penumbraSizeArrayCache===null&&this.updatePenumbraSizeArray(),this.penumbraSizeArrayCache}updatePenumbraSizeArray(){this.penumbraSizeArrayCache=new Array(5).fill(.5);let e=0,r=0;this.traverseEntity(o=>{if(!o.visible)return!0;o instanceof za&&o.visible&&e<3&&(this.penumbraSizeArrayCache[e]=o.data.penumbraSize,e+=1),o instanceof ka&&o.visible&&e<5-3&&(this.penumbraSizeArrayCache[3+r]=o.data.penumbraSize,r+=1)})}raycastWithClones(e){let r=[],o=i=>{for(let a of i.children){let s=a.cloner;Ae.is(a)&&(a.visible||s?.object.data.visible)&&((cn(a)||zs(a)&&this.scene.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,r),Us(a,e,r,!0)),o(a))}};return o(this),r}};import{PointLight as KM,Vector3 as ru,Box3 as QM,Box3Helper as Lx,Color as ZM}from"three";var ou=class extends Ra(KM,Ga){constructor(t,e,r){super(),this.super_Entity(t,e),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.fov=90,i.aspect=1,i.near=100,i.far=2500;let a=new ru(-i.far+this.position.x,-i.far+this.position.y,-i.far+this.position.z),s=new ru(i.far+this.position.x,i.far+this.position.y,i.far+this.position.z),l=new QM(a,s),d=new Lx(l,new ZM(16755200));d.visible=!1,this.gizmos.shadowmap=d,this.update()}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this.gizmos))for(let t in this.gizmos){let e=this.gizmos[t];if(e instanceof Lx){let r=this.shadow.camera,o=new ru(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),i=new ru(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z);e.box.set(o,i),e.updateMatrixWorld(!0)}}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.objectHelper&&this.objectHelper.update()}updateState(t,e){this.updateState_Light(t,e),t.distance!==void 0&&(this.distance=t.distance),t.decay!==void 0&&(this.decay=t.decay),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var nu=class extends st{get forceComputeSize(){return!0}get shape(){return this.geometry.userData.shape}updateEntityBoxSize(t,e){let r=this.geometry.getAttribute("position");r!==void 0?ws(r,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:r.count,t,e):super.updateEntityBoxSize(t,e)}};var Fa=class extends st{constructor(e,r,o){super(e,r,o);this._shapeId=null;this._context=o}updateState(e,r){super.updateState(e,r),this.updateShape()}updateShape(){let e={...this.data.geometry.extrusion.shape};for(let i in e)typeof e[i]=="string"&&(e[i]=this._context.shared.getVariable(e[i],[this.uuid,"geometry","extrusion","shape",i]));let r;if(e.type==="Custom"){let i=e.shapeId;if(i!==this._shapeId&&this.detachShape(),i){this._shapeId=i;let a=this._context.scene.find(i);a?.data&&(a.attachedPaths.add(this),r=a.geometry.userData?.shape),r||this._context.scene.addPendingCommand(()=>this.updateShape())}}else{let i;switch(e.type){case"Rectangle":i=Ac;break;case"Ellipse":i=Ki;break;case"Polygon":i=_c;break;case"Star":i=Tc;break;default:throw new Error(`Unknown shape type: ${e.type}`)}r=i.create({parameters:e}).userData.shape}let o=this.geometry;r&&o.inputs&&(o.inputs.shapeData=r,o.build(),this.attachedSurfaceCloners.forEach(i=>i.update()))}detachShape(){this._shapeId!==null&&this._context.scene.find(this._shapeId)?.attachedPaths.delete(this)}createGeometryDelayed(e){this.geometryCreateDeleyed=e.shared,this.updateShape(),this.refreshAttachedPaths(e)}updateTransformState(e,r){return super.updateTransformState(e,r)}updateGeometryInteractions(e,r){super.updateGeometryInteractions(e,r),this.updateShape()}updateEntityBoxSize(e,r){let o=this.geometry.getAttribute("position");o!==void 0?ws(o,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:o.count,e,r):super.updateEntityBoxSize(e,r)}};import{Group as JM,Matrix4 as eI,Skeleton as tI}from"three";var Io=class extends ao(JM,so){constructor(e,r,o){super();r.type==="Instance"&&typeof e=="string"&&(r=this.transformAssignData(r,o)),this.super_Entity(e,r),this.objectHelper.update()}get isComponentRoot(){return this.data.type==="Component"&&typeof this.identity=="string"}get isInstanceRoot(){return this.data.type==="Instance"&&typeof this.identity=="string"}transformAssignData(e,r){let o=Li.getComponentData({scene:r.scene.data,shared:r.shared.data},e.component);if(o){let i,a;for(let s of Hr.rootOverrideProps)e[s]===void 0?(i===void 0&&(i={...e}),i[s]=o.data[s]):(a===void 0&&(a={}),a[s]=e[s],i===void 0&&(i={...e}),i[s]=Gr.apply(o.data[s],e[s]));return this.overrideData=a,i}else return{...Ot.defaultData,...e,...xr(Ot.defaultData,Hr.rootOverrideProps)}}updateByOp(e,r,o,i){let a;if(this.isInstanceRoot&&!i){if(r=this.transformAssignData(r,o),e.type===0&&e.path.length===0&&this.component)for(let s of Hr.rootOverrideProps)s in e.props&&e.props[s]===void 0&&(a===void 0&&(a={...e,props:{...e.props}}),a.props[s]=this.component.data[s]);else if(e.type===0&&e.path.length>0&&Hr.rootOverrideProps.includes(e.path[0])){let s=e.path[0];a===void 0&&(a={...e,path:[],props:{[s]:r[s]}})}}super.updateByOp(a??e,r,o,i)}updateState(e,r){this.updateState_Entity(e,r)}expandInstanceChildren(e){let r=this.data;if(this.component===void 0){let o=e.scene.find(r.component)??null,i=!1;if(o!==this.oldComponent){if(this.oldComponent){let a=0;for(let s of this.children)if(Ae.is(s))e.scene.disposeAndUnregisterEntityRecursivelyIfNotReregistered(s),iu(s),a+=1;else break;this.children.splice(0,a)}i=!0}if(o){let a={};Rx(e,[this.uuid],r.overrides,this,o,o,0,i,a);for(let s of this.children)if(Ae.is(s)){let l=s.data;l.type==="Empty"&&l.animations&&s.traverseEntity(d=>{if(d instanceof st&&d.isSkinnedMesh){let c=d.dataPatched;if(c.bones&&c.boneInverses){let u=c.bones.map(h=>e.scene.find(a[h])),p=c.boneInverses.map(h=>new eI().fromArray(h)),f=new tI(u,p);d.bind(f,d.bindMatrix)}}else d.matrixAutoUpdate=!0})}}this.oldComponent=this.component}}};function iu(n){if(n.component){let t=n.component.instances.indexOf(n);t>=0&&n.component.instances.splice(t,1);for(let e of n.children)Ae.is(e)&&iu(e)}}function Bx(n,t,e,r){return n.component===t&&Su(n.identity,r)?n.overrideData===e?2:1:0}function Rx(n,t,e,r,o,i,a,s,l){if(a>50)return!1;if(r.component!==o){if(r.component){let c=r.component.instances.indexOf(r);c>=0&&r.component.instances.splice(c,1)}o.instances.push(r),r.component=o}o instanceof Io&&o.isInstanceRoot&&o.expandInstanceChildren(n);let d=0;for(let c of o.children)if(Ae.is(c)){let u=[...t,...typeof c.identity=="string"?[c.identity]:c.identity],p=Ni.resolve(e,u,1);if(p!=null&&!(p instanceof ke)){if(!1)debugger;Object.setPrototypeOf(p,ke.prototype),console.error("wrong prototype")}let f=null,h;if(!s){let m=r.children[d];if(f=Ae.is(m)?m:null,f!==null){let y=Bx(f,c,p,u);h=y>=1?f.stateSelection:void 0,y!==2&&(f=null)}if(f===null&&(f=n.scene.findInstance(u)??null,f!==null)){let y=Bx(f,c,p,u);if(h=y>=1?f.stateSelection:void 0,y!==2)f=null;else{let g=f.parent.children.indexOf(f);f.parent.children.splice(g,1),r.children.splice(d,0,f),f.parent===r?(g<=d&&console.error("not possible"),void 0):(f.parent=r,f.matrixWorldNeedsUpdate=!0,f.resetBBoxNeedsUpdate(),f.updateVisible(),n.pendingDeletes.delete(f),void 0)}}}if(f===null){let m=p?Gr.apply(c.data,p):c.data;vr.is(m.type)&&(m={...m,type:"Empty"}),f=wr.createEntity(u,m,n),f.overrideData=p,r.add(f),r.children.splice(r.children.length-1,1),r.children.splice(d,0,f),f.updateState(f.data,n),h&&f.changeSelectedState(h,n),n.scene.registerInstanceAndSetUuid(f)}if(f.isBone){let m=f.identity[f.identity.length-1];l[m]=f.uuid}d+=1,Rx(n,t,e,f,c,i,a+1,s,l)}if(!s){let c=d;for(;;){let u=r.children[d];if(Ae.is(u))n.pendingDeletes.add(u);else break;d+=1}r.children.splice(c,d-c)}return!0}import{Bone as rI}from"three";var au=class extends ao(rI,so){constructor(t,e){super(),this.super_Entity(t,e),this.objectHelper.update(),this.matrixAutoUpdate=!0}updateState(t,e){this.updateState_Entity(t,e)}};function oI(n,t,e){let r;return t.geometry.type==="TextGeometry"?new Na(n,t,e):(t.geometry.type==="SubdivGeometry"?r=new Un(n,t,e):t.geometry.type==="PathGeometry"?r=new Fa(n,t,e):t.geometry.type==="VectorGeometry"?r=new nu(n,t,e):t.geometry.type==="BooleanGeometry"?r=new er(n,t,e):r=new st(n,t,e),r)}function su(n,t,e){return t.type==="Mesh"?oI(n,t,e):t.type==="Empty"?new un(n,t):t.type==="Splat"?new un(n,t):t.type==="Bone"?new au(n,t):t.type==="Page"?new dn(n,t):t.type==="PointLight"?new ou(n,t,e):t.type==="SpotLight"?new ka(n,t,e):t.type==="DirectionalLight"?new za(n,t,e):t.type==="Component"||t.type==="Instance"?new Io(n,t,e):vr.is(t.type)?new Mo(n,t):(console.error(t),new un(n,t))}wr.createEntity=su;function nI(n,t,e){let r=su(n.identity,t,e),o=n.children,i=n.attachedPaths,a=n.parent,s=n.component,l=n.instances,d=n.overrideData,c=n.uuid,u=n.stateSelection;n.dispose();for(let p of Object.keys(n))delete n[p];Object.setPrototypeOf(n,Object.getPrototypeOf(r));for(let p of Object.keys(r))n[p]=r[p];n.children=[...n.children,...o],n.attachedPaths=i,n.parent=a,n.component=s,n.instances=l,n.uuid=c,n.overrideData=d,n.updateState(n.data,e),u&&n.changeSelectedState(u,e),n.resetBBoxNeedsUpdate()}wr.changeEntityProptotype=nI;wr.Cloner=Da;function Vx(n,t,e,r){n.updateByOp(t,e,r,!1)}import{Matrix4 as sI,Ray as lI,Raycaster as cI}from"three";function Gx(n,t){let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),r.length>0&&n.layers.enable(3),e=!0,Ma(n),Oa(n)),r.length===0&&o.length===0&&n.layers.set(0),n instanceof Jt&&n.needsAO&&n.layers.enable(5),e}function zx(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission").filter(i=>i.data.visible),o=t.getLayersOfType("outline").filter(i=>i.data.visible);return r.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),r.length===0&&o.length===0&&n.layers.set(0),n.needsAO&&n.layers.enable(5),e}function kx(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Jt)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Gx(e,e.material[r])&&(t=!0);else Gx(e,e.material)&&(t=!0)}),t}function Fx(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof Jt)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)zx(e,e.material[r])&&(t=!0);else zx(e,e.material)&&(t=!0)}),t}var uI=new cI,dI=new sI,pI=new lI;function Us(n,t,e,r=!1){let o=n.cloner;if(o)for(let i of o.children){let a=dI.copy(i.matrixWorld).invert(),s=pI.copy(t.ray).applyMatrix4(a),l=n.matrixWorld;s.applyMatrix4(l);let d=uI;d.set(s.origin,s.direction),d.near=t.near,d.far=t.far;let c=d.intersectObject(n,!1);c.length>0&&e.push({...c[0],object:r?i:n})}}var lu=class{constructor(){this._constraints=new Map}setConstraint(t,e){e===null?this._constraints.delete(t):this._constraints.set(t,e)}removeDependencies(t){this._constraints.delete(t)}applyConstraints(t){let e=new Set;this._constraints.forEach((r,o)=>{let i=[o,r],a=r;for(;this._constraints.has(a);)a=this._constraints.get(a),e.has(a)||i.push(a);for(let s=i.length-2;s>=0;s--)if(!e.has(i[s])){let l=t.find(i[s]);l?l.applyPathSnapping(t):console.warn(`missing entity ${i[s]}`),e.add(i[s])}})}findDependency(t,e){let r=t;for(;this._constraints.has(r);)if(r=this._constraints.get(r),r===e)return!0;return!1}};var Lr=Rt(ja()),lo=Rt(Ua());var tt=Rt(ja()),ce=Rt(Ua()),pn=class{constructor(t,e,r){this._dataNormalized=t,this._minD=e,this._maxD=r}static createFromUnnormalized(t){let e=ce.sup(t),r=ce.inf(t),o=(0,tt.default)(new Float32Array(t.size),t.shape),i=e-r;return i<1e-4?ce.assigns(o,0):(ce.subs(o,t,r),ce.divs(o,o,i)),new pn(o,r,e)}get data(){return this._dataNormalized}get minD(){return this._minD}get maxD(){return this._maxD}denormalize(){let t=(0,tt.default)(new Float32Array(this._dataNormalized.size),this._dataNormalized.shape);return ce.muls(t,this._dataNormalized,this._maxD-this._minD),ce.adds(t,t,this._minD),t}},Fe=class{constructor(t,e){this._quantized=t,this._method=e}get quantized(){return this._quantized}static maxIntBits(t){return 2**t-1}static fromNormalized(t,e){let r=t.data,o;if(e==="norm8x"){let i=Fe.maxIntBits(8),a=(0,tt.default)(new Float32Array(r.size),r.shape);ce.muls(a,r,i),ce.roundeq(a),o=(0,tt.default)(new Uint8Array(a.data),r.shape)}else if(e==="norm565"){let i=(0,tt.default)(new Float32Array(r.size),r.shape);ce.assign(i,r),ce.mulseq(i.pick(null,0),Fe.maxIntBits(5)),ce.mulseq(i.pick(null,1),Fe.maxIntBits(6)),ce.mulseq(i.pick(null,2),Fe.maxIntBits(5)),ce.roundeq(i);let a=(0,tt.default)(new Uint16Array(i.data),r.shape),s=(0,tt.default)(new Uint16Array(r.shape[0]),[r.shape[0]]),l=(0,tt.default)(new Uint16Array(r.shape[0]),[r.shape[0]]);ce.lshifts(s,a.pick(null,0),11),ce.lshifts(l,a.pick(null,1),5),ce.boreq(s,l),ce.boreq(s,a.pick(null,2)),o=s}else{let i=(0,tt.default)(new Float32Array(r.size),r.shape);ce.assign(i,r),ce.mulseq(i.pick(null,0),Fe.maxIntBits(11)),ce.mulseq(i.pick(null,1),Fe.maxIntBits(10)),ce.mulseq(i.pick(null,2),Fe.maxIntBits(11)),ce.roundeq(i);let a=(0,tt.default)(new Uint32Array(i.data),r.shape),s=(0,tt.default)(new Uint32Array(r.shape[0]),[r.shape[0]]),l=(0,tt.default)(new Uint32Array(r.shape[0]),[r.shape[0]]);ce.lshifts(s,a.pick(null,0),21),ce.lshifts(l,a.pick(null,1),11),ce.boreq(s,l),ce.boreq(s,a.pick(null,2)),o=s}return new Fe(o,e)}dequantize(t,e){let r=this._method,o,i=this._quantized;if(r==="norm8x"){let a=Fe.maxIntBits(8);o=(0,tt.default)(new Float32Array(i.size),i.shape),ce.muls(o,i,1/a)}else if(r==="norm565"){let a=(0,tt.default)(new Uint8Array(i.shape[0]),[i.shape[0]]),s=(0,tt.default)(new Uint8Array(i.shape[0]),[i.shape[0]]),l=(0,tt.default)(new Uint8Array(i.shape[0]),[i.shape[0]]);ce.rrshifts(a,i,11),ce.rrshifts(s,i,5),ce.bandseq(s,Fe.maxIntBits(6)),ce.bands(l,i,Fe.maxIntBits(5)),o=(0,tt.default)(new Float32Array(i.shape[0]*3),[i.shape[0],3]),ce.muls(o.pick(null,0),a,1/Fe.maxIntBits(5)),ce.muls(o.pick(null,1),s,1/Fe.maxIntBits(6)),ce.muls(o.pick(null,2),l,1/Fe.maxIntBits(5))}else{let a=(0,tt.default)(new Uint16Array(i.shape[0]),[i.shape[0]]),s=(0,tt.default)(new Uint16Array(i.shape[0]),[i.shape[0]]),l=(0,tt.default)(new Uint16Array(i.shape[0]),[i.shape[0]]);ce.rrshifts(a,i,21),ce.rrshifts(s,i,11),ce.bandseq(s,Fe.maxIntBits(10)),ce.bands(l,i,Fe.maxIntBits(11)),o=(0,tt.default)(new Float32Array(i.shape[0]*3),[i.shape[0],3]),ce.muls(o.pick(null,0),a,1/Fe.maxIntBits(11)),ce.muls(o.pick(null,1),s,1/Fe.maxIntBits(10)),ce.muls(o.pick(null,2),l,1/Fe.maxIntBits(11))}return new pn(o,t,e)}};var je=class{constructor(t,e,r,o,i,a=!1){this._quantized=t,this._minMaxMatrix=e,this._chunkSize=r,this._quantizationMethod=o,this._variableChunkSize=i,this._isDynamicChunks=a}get length(){return this._quantized.shape[0]}get nchunks(){return this._minMaxMatrix.shape[0]}get quantized(){return this._quantized}get method(){return this._quantizationMethod}get minmaxMatrix(){return this._minMaxMatrix}_createPrunedMinMax(t){let e=t.length,r=this.minmaxMatrix.shape[0]-e,o=(0,Lr.default)(new Float32Array(r*2),[r,2]),i=0,a=r,s=0,l=this.minmaxMatrix.shape[0];for(let d=0;d<t.length;d++)l=t[d],a=l-s+i,a>i&&lo.assign(o.hi(a,2).lo(i,0),this.minmaxMatrix.hi(l,2).lo(s,0)),i=a,s=l+1;return i<r&&lo.assign(o.lo(i,0),this.minmaxMatrix.lo(s,0)),o}_createPrunedQuantized(t){let e=t.length,r=this.quantized.shape[0]-e,o=this._quantizationMethod,i,a;if(o==="norm8x"){a=this._quantized.shape[1];let u=a?r*a:r;i=(0,Lr.default)(new Uint8Array(u),a?[r,a]:[r,1])}else o==="norm565"?i=(0,Lr.default)(new Uint16Array(r),[r]):i=(0,Lr.default)(new Uint32Array(r),[r]);let s=0,l=r,d=0,c=i.shape[0];for(let u=0;u<t.length;u++)c=t[u],l=c-d+s,l>s&&(a?lo.assign(i.hi(l,a).lo(s,0),this._quantized.hi(c,a).lo(d,0)):lo.assign(i.hi(l).lo(s),this._quantized.hi(c).lo(d))),s=l,d=c+1;return s<r&&(a?lo.assign(i.lo(s,0),this._quantized.lo(d,0)):lo.assign(i.lo(s),this._quantized.lo(d))),i}pruneFeature(t,e,r){let o=this._createPrunedQuantized(t),i=this._createPrunedMinMax(e);return new je(o,i,this._chunkSize,this._quantizationMethod,r,!0)}static getRequiredNChunks(t,e){return Math.floor(t/e)}static fromArray(t,e,r){let o=t.shape[0],i=Math.floor(o/r),a=(0,Lr.default)(new Float32Array(i*2),[i,2],[2,1]),s;e==="norm8x"?s=(0,Lr.default)(new Uint8Array(t.size),t.shape):e==="norm565"?s=(0,Lr.default)(new Uint16Array(t.shape[0]),[t.shape[0]]):s=(0,Lr.default)(new Uint32Array(t.shape[0]),[t.shape[0]]);for(let l=0;l<i;l++){let d=l*r,c=l+1<i?(l+1)*r:o,u;t.shape.length>1?u=pn.createFromUnnormalized(t.hi(c,t.shape[1]).lo(d,0)):u=pn.createFromUnnormalized(t.hi(c).lo(d)),a.set(l,0,u.minD),a.set(l,1,u.maxD),s.shape.length>1?lo.assign(s.hi(c,s.shape[1]).lo(d,0),Fe.fromNormalized(u,e).quantized):lo.assign(s.hi(c).lo(d),Fe.fromNormalized(u,e).quantized)}return new je(s,a,r,e)}denormDequant(){let t=this._minMaxMatrix.shape[0],e=this._quantized,r=e.shape[0],o=this._quantizationMethod,i=this._chunkSize,a;if(this._isDynamicChunks){if(!this._variableChunkSize)throw new Error("variable chunk must exists if chunkSize isDynamic");a=this._variableChunkSize}let s;o==="norm8x"?s=(0,Lr.default)(new Float32Array(e.size),e.shape):s=(0,Lr.default)(new Float32Array(r*3),[r,3]);let l=0,d=i;for(let c=0;c<t;c++){let[u,p]=[this._minMaxMatrix.get(c,0),this._minMaxMatrix.get(c,1)];this._isDynamicChunks&&(d=a[c]);let f=c+1<t?l+d:r,h;e.shape.length>1?h=new Fe(e.hi(f,e.shape[1]).lo(l,0),o):h=new Fe(e.hi(f).lo(l),o),lo.assign(s.hi(f,s.shape[1]).lo(l,0),h.dequantize(u,p).denormalize()),l=f}return s}static async fetchArrayBuffer(t){return await(await fetch(t,{mode:"cors"})).arrayBuffer()}};var No=Rt(ja()),Ce=Rt(Ua());var cv="http://127.0.0.1:8000";var Yn=Rt(ja()),ze=Rt(Ua());var uv=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];function dv(n){return n<1e5?n<100?n<10?0:1:n<1e4?n<1e3?2:3:4:n<1e7?n<1e6?5:6:n<1e9?n<1e8?7:8:9}function pv(n,t){if(n===t)return 0;if(~~n===n&&~~t===t){if(n===0||t===0)return n<t?-1:1;if(n<0||t<0){if(t>=0)return-1;if(n>=0)return 1;n=-n,t=-t}let o=dv(n),i=dv(t),a=0;return o<i?(n*=uv[i-o-1],t/=10,a=-1):o>i&&(t*=uv[o-i-1],n/=10,a=1),n===t?a:n<t?-1:1}let e=String(n),r=String(t);return e===r?0:e<r?-1:1}function VI(n){let t=0;for(;n>=32;)t|=n&1,n>>=1;return n+t}function fv(n,t,e,r){let o=t+1;if(o===e)return 1;if(r(n[o++],n[t])<0){for(;o<e&&r(n[o],n[o-1])<0;)o++;GI(n,t,o)}else for(;o<e&&r(n[o],n[o-1])>=0;)o++;return o-t}function GI(n,t,e){for(e--;t<e;){let r=n[t];n[t++]=n[e],n[e--]=r}}function hv(n,t,e,r,o){for(r===t&&r++;r<e;r++){let i=n[r],a=t,s=r;for(;a<s;){let d=a+s>>>1;o(i,n[d])<0?s=d:a=d+1}let l=r-a;switch(l){case 3:n[a+3]=n[a+2];case 2:n[a+2]=n[a+1];case 1:n[a+1]=n[a];break;default:for(;l>0;)n[a+l]=n[a+l-1],l--}n[a]=i}}function qp(n,t,e,r,o,i){let a=0,s=0,l=1;if(i(n,t[e+o])>0){for(s=r-o;l<s&&i(n,t[e+o+l])>0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),a+=o,l+=o}else{for(s=o+1;l<s&&i(n,t[e+o-l])<=0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s);let d=a;a=o-l,l=o-d}for(a++;a<l;){let d=a+(l-a>>>1);i(n,t[e+d])>0?a=d+1:l=d}return l}function Wp(n,t,e,r,o,i){let a=0,s=0,l=1;if(i(n,t[e+o])<0){for(s=o+1;l<s&&i(n,t[e+o-l])<0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s);let d=a;a=o-l,l=o-d}else{for(s=r-o;l<s&&i(n,t[e+o+l])>=0;)a=l,l=(l<<1)+1,l<=0&&(l=s);l>s&&(l=s),a+=o,l+=o}for(a++;a<l;){let d=a+(l-a>>>1);i(n,t[e+d])<0?l=d:a=d+1}return l}var $p=class{constructor(t,e){yt(this,"array",null);yt(this,"compare",null);yt(this,"minGallop",7);yt(this,"length",0);yt(this,"tmpStorageLength",256);yt(this,"stackLength",0);yt(this,"runStart",null);yt(this,"runLength",null);yt(this,"stackSize",0);this.array=t,this.compare=e,this.length=t.length,this.length<2*256&&(this.tmpStorageLength=this.length>>>1),this.tmp=new Array(this.tmpStorageLength),this.stackLength=this.length<120?5:this.length<1542?10:this.length<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength)}pushRun(t,e){this.runStart[this.stackSize]=t,this.runLength[this.stackSize]=e,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;if(t>=1&&this.runLength[t-1]<=this.runLength[t]+this.runLength[t+1]||t>=2&&this.runLength[t-2]<=this.runLength[t]+this.runLength[t-1])this.runLength[t-1]<this.runLength[t+1]&&t--;else if(this.runLength[t]>this.runLength[t+1])break;this.mergeAt(t)}}forceMergeRuns(){for(;this.stackSize>1;){let t=this.stackSize-2;t>0&&this.runLength[t-1]<this.runLength[t+1]&&t--,this.mergeAt(t)}}mergeAt(t){let e=this.compare,r=this.array,o=this.runStart[t],i=this.runLength[t],a=this.runStart[t+1],s=this.runLength[t+1];this.runLength[t]=i+s,t===this.stackSize-3&&(this.runStart[t+1]=this.runStart[t+2],this.runLength[t+1]=this.runLength[t+2]),this.stackSize--;let l=Wp(r[a],r,o,i,0,e);o+=l,i-=l,i!==0&&(s=qp(r[o+i-1],r,a,s,s-1,e),s!==0&&(i<=s?this.mergeLow(o,i,a,s):this.mergeHigh(o,i,a,s)))}mergeLow(t,e,r,o){let i=this.compare,a=this.array,s=this.tmp,l=0;for(l=0;l<e;l++)s[l]=a[t+l];let d=0,c=r,u=t;if(a[u++]=a[c++],--o===0){for(l=0;l<e;l++)a[u+l]=s[d+l];return}if(e===1){for(l=0;l<o;l++)a[u+l]=a[c+l];a[u+o]=s[d];return}let p=this.minGallop;for(;;){let f=0,h=0,m=!1;do if(i(a[c],s[d])<0){if(a[u++]=a[c++],h++,f=0,--o===0){m=!0;break}}else if(a[u++]=s[d++],f++,h=0,--e===1){m=!0;break}while((f|h)<p);if(m)break;do{if(f=Wp(a[c],s,d,e,0,i),f!==0){for(l=0;l<f;l++)a[u+l]=s[d+l];if(u+=f,d+=f,e-=f,e<=1){m=!0;break}}if(a[u++]=a[c++],--o===0){m=!0;break}if(h=qp(s[d],a,c,o,0,i),h!==0){for(l=0;l<h;l++)a[u+l]=a[c+l];if(u+=h,c+=h,o-=h,o===0){m=!0;break}}if(a[u++]=s[d++],--e===1){m=!0;break}p--}while(f>=7||h>=7);if(m)break;p<0&&(p=0),p+=2}if(this.minGallop=p,p<1&&(this.minGallop=1),e===1){for(l=0;l<o;l++)a[u+l]=a[c+l];a[u+o]=s[d]}else{if(e===0)throw new Error("mergeLow preconditions were not respected");for(l=0;l<e;l++)a[u+l]=s[d+l]}}mergeHigh(t,e,r,o){let i=this.compare,a=this.array,s=this.tmp,l=0;for(l=0;l<o;l++)s[l]=a[r+l];let d=t+e-1,c=o-1,u=r+o-1,p=0,f=0;if(a[u--]=a[d--],--e===0){for(p=u-(o-1),l=0;l<o;l++)a[p+l]=s[l];return}if(o===1){for(u-=e,d-=e,f=u+1,p=d+1,l=e-1;l>=0;l--)a[f+l]=a[p+l];a[u]=s[c];return}let h=this.minGallop;for(;;){let m=0,y=0,g=!1;do if(i(s[c],a[d])<0){if(a[u--]=a[d--],m++,y=0,--e===0){g=!0;break}}else if(a[u--]=s[c--],y++,m=0,--o===1){g=!0;break}while((m|y)<h);if(g)break;do{if(m=e-Wp(s[c],a,t,e,e-1,i),m!==0){for(u-=m,d-=m,e-=m,f=u+1,p=d+1,l=m-1;l>=0;l--)a[f+l]=a[p+l];if(e===0){g=!0;break}}if(a[u--]=s[c--],--o===1){g=!0;break}if(y=o-qp(a[d],s,0,o,o-1,i),y!==0){for(u-=y,c-=y,o-=y,f=u+1,p=c+1,l=0;l<y;l++)a[f+l]=s[p+l];if(o<=1){g=!0;break}}if(a[u--]=a[d--],--e===0){g=!0;break}h--}while(m>=7||y>=7);if(g)break;h<0&&(h=0),h+=2}if(this.minGallop=h,h<1&&(this.minGallop=1),o===1){for(u-=e,d-=e,f=u+1,p=d+1,l=e-1;l>=0;l--)a[f+l]=a[p+l];a[u]=s[c]}else{if(o===0)throw new Error("mergeHigh preconditions were not respected");for(p=u-(o-1),l=0;l<o;l++)a[p+l]=s[l]}}};function mv(n,t,e,r){if(!Array.isArray(n))throw new TypeError("Can only sort arrays");t?typeof t!="function"&&(r=e,e=t,t=pv):t=pv,e||(e=0),r||(r=n.length);let o=r-e;if(o<2)return;let i=0;if(o<32){i=fv(n,e,r,t),hv(n,e,r,e+i,t);return}let a=new $p(n,t),s=VI(o);do{if(i=fv(n,e,r,t),i<s){let l=o;l>s&&(l=s),hv(n,e,e+l,e+i,t),i=l}a.pushRun(e,i),a.mergeRuns(),o-=i,e+=i}while(o!==0);a.forceMergeRuns()}function Yp(n){let t=(0,Yn.default)(new Int32Array(n.shape[0]),[n.shape[0]]),e=(0,Yn.default)(new Int32Array(n.shape[0]),[n.shape[0]]);return ze.bands(t,n,1023),ze.lshifts(e,t,16),ze.bxoreq(t,e),ze.bandseq(t,4278190335),ze.lshifts(e,t,8),ze.bxoreq(t,e),ze.bandseq(t,50393103),ze.lshifts(e,t,4),ze.bxoreq(t,e),ze.bandseq(t,51130563),ze.lshifts(e,t,2),ze.bxoreq(t,e),ze.bandseq(t,153391689),t}function zI(n){let t=Yp(n.pick(null,0)),e=Yp(n.pick(null,1));ze.lshiftseq(e,1);let r=Yp(n.pick(null,2));return ze.lshiftseq(r,2),ze.boreq(t,e),ze.boreq(t,r),t}function fn(n,t){if(n.shape[0]!==t.shape[0])throw new Error("wrong length");let e=(0,Yn.default)(new Float32Array(n.size),n.shape,n.stride,n.offset);for(let r=0;r<t.shape[0];r++){let o=t.get(r);if(n.shape.length>1)for(let i=0;i<n.shape[1];i++)e.set(r,i,n.get(o,i));else e.set(r,n.get(o))}return e}function Xp(n){let t=ze.sup(n),e=ze.inf(n),r=1e3/Math.min(1e3,t-e),o=(0,Yn.default)(new Float32Array(n.data),n.shape);ze.mulseq(o,r);let i=(0,Yn.default)(new Int32Array(o.data),n.shape),a=zI(i),l=Array.from(a.data).map((u,p)=>[u,p]);mv(l,(u,p)=>u[0]-p[0]);let d=l.map(([u,p])=>p);return(0,Yn.default)(Uint32Array.from(d))}var gr=class{constructor(t,e,r,o,i,a,s,l,d,c){this.propertyDescs=t,this.format=e,this.nsplats=r,this.xyz=o,this.colors=i,this.harmonics=a,this.opacity=s,this.scaling=l,this.rotation=d,this.maxSHDegree=c}getPlyBinary(){let t=gr._generateHeaderString(this.propertyDescs,this.format,this.nsplats),e=new TextEncoder().encode(t),r=Object.keys(this.propertyDescs).length,o=(0,No.default)(new Float32Array(this.nsplats*r),[this.nsplats,r]);if(Ce.assign(o.pick(null,this.propertyDescs.x.index),this.xyz.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.y.index),this.xyz.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.z.index),this.xyz.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.f_dc_0.index),this.colors.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.f_dc_1.index),this.colors.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.f_dc_2.index),this.colors.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.opacity.index),this.opacity.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.scale_0.index),this.scaling.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.scale_1.index),this.scaling.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.scale_2.index),this.scaling.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.rot_0.index),this.rotation.pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs.rot_1.index),this.rotation.pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs.rot_2.index),this.rotation.pick(null,2)),Ce.assign(o.pick(null,this.propertyDescs.rot_3.index),this.rotation.pick(null,3)),this.harmonics&&this.harmonics.length>0)for(let s=0;s<this.harmonics.length;s++){let l=s*3;Ce.assign(o.pick(null,this.propertyDescs[`f_rest_${l}`].index),this.harmonics[s].pick(null,0)),Ce.assign(o.pick(null,this.propertyDescs[`f_rest_${l+1}`].index),this.harmonics[s].pick(null,1)),Ce.assign(o.pick(null,this.propertyDescs[`f_rest_${l+2}`].index),this.harmonics[s].pick(null,2))}let i=new Uint8Array(o.data.buffer),a=new Uint8Array(i.length+e.length);return a.set(e),a.set(i,e.length),a.buffer}save(t,e){let r=this.getPlyBinary(),o=new Blob([r],{type:"application/octet-stream"}),i=new File([o],t),a=new FormData;a.append("file",i),a.append("filename",t),a.append("basedir",e),fetch(`${cv}/push_file`,{method:"POST",body:a})}static async loadFile(t){return await(await fetch(t)).arrayBuffer()}mortonPositionSplatsSort(){let t=Xp(this.xyz),e=fn(this.xyz,t),r=fn(this.colors,t),o=fn(this.opacity,t),i=fn(this.scaling,t),a=fn(this.rotation,t),s=[];for(let l=0;l<this.harmonics.length;l++)s.push(fn(this.harmonics[l],t));return new gr(this.propertyDescs,this.format,this.nsplats,e,r,s,o,i,a,this.maxSHDegree)}static _generateHeaderString(t,e,r){let o=`ply
2608
2608
  format ${e.format} ${e.version}
2609
2609
  element vertex ${r}`,i=Object.keys(t).length,a=Array(i);for(let s in t){let l=t[s];a[l.index]={name:s,dtype:l.dtype}}for(let s=0;s<a.length;s++)o=`${o}
2610
2610
  property ${a[s].dtype} ${a[s].name}`;return`${o}
2611
2611
  end_header
2612
2612
  `}static fromArrayBuffer(t,e=3){let{splatCount:r,vertexData:o,propertiesDesc:i,format:a}=gr.decodeHeader(t),s=o.buffer.slice(o.byteOffset),l=Object.keys(i).length,d=(0,No.default)(new Float32Array(s),[r,l]),c=0,u={},p={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1};for(let b in i)if(i.hasOwnProperty(b)){let _=i[b].dtype;u[b]=c,c+=p[_]}let f=(0,No.default)(new Float32Array(r*3),[r,3]);Ce.assign(f.pick(null,0),d.pick(null,u.x/4)),Ce.assign(f.pick(null,1),d.pick(null,u.y/4)),Ce.assign(f.pick(null,2),d.pick(null,u.z/4));let h=(0,No.default)(new Float32Array(r*3),[r,3]);Ce.assign(h.pick(null,0),d.pick(null,u.scale_0/4)),Ce.assign(h.pick(null,1),d.pick(null,u.scale_1/4)),Ce.assign(h.pick(null,2),d.pick(null,u.scale_2/4));let m=(0,No.default)(new Float32Array(r*3),[r,3]);Ce.assign(m.pick(null,0),d.pick(null,u.f_dc_0/4)),Ce.assign(m.pick(null,1),d.pick(null,u.f_dc_1/4)),Ce.assign(m.pick(null,2),d.pick(null,u.f_dc_2/4));let y=(0,No.default)(new Float32Array(r*4),[r,4]);Ce.assign(y.pick(null,0),d.pick(null,u.rot_1/4)),Ce.assign(y.pick(null,1),d.pick(null,u.rot_2/4)),Ce.assign(y.pick(null,2),d.pick(null,u.rot_3/4)),Ce.assign(y.pick(null,3),d.pick(null,u.rot_0/4));for(let b=0;b<r;b++){let _=y.pick(b,null),A=Math.sqrt(_.get(0)**2+_.get(1)**2+_.get(2)**2+_.get(3)**2);Ce.divseq(_,A)}let g=(0,No.default)(new Float32Array(r*1),[r,1]);Ce.assign(g.pick(null,0),d.pick(null,u.opacity/4));let S=(Math.min(Math.max(e,0),3)+1)**2-1,w=[];for(let b=0;b<S;b++){let _=(0,No.default)(new Float32Array(r*3),[r,3]),A=b*3;Ce.assign(_.pick(null,0),d.pick(null,u[`f_rest_${A}`]/4)),Ce.assign(_.pick(null,1),d.pick(null,u[`f_rest_${A+1}`]/4)),Ce.assign(_.pick(null,2),d.pick(null,u[`f_rest_${A+2}`]/4)),w.push(_)}return new gr(i,a,r,f,m,w,g,h,y,e)}static async fromPLYFile(t,e=3){let r=await gr.loadFile(t);return gr.fromArrayBuffer(r,e)}static decodeHeader(t){let e=new TextDecoder,r=0,o="",i=100;for(;;){if(r+i>=t.byteLength)throw new Error("End of file reached while searching for end of header");let h=new Uint8Array(t,r,i);o+=e.decode(h),r+=i;let m=r-i*2,y=new Uint8Array(t,Math.max(0,m),m>0?i*2:i);if(e.decode(y).includes("end_header"))break}let a=o.split(`
2613
- `),s=0,l={},d={},c=0,u;for(let h=0;h<a.length;h++){let m=a[h].trim();if(m.startsWith("element vertex")){let y=m.match(/\d+/);y&&(s=parseInt(y[0]))}else if(m.startsWith("property")){let y=m.match(/(\w+)\s+(\w+)\s+(\w+)/);if(y){let g=y[2],x=y[3];l[x]=c,d[x]={dtype:g,index:c},c++}}else if(m.startsWith("format")){let y=m.match(/(\w+)\s+(\w+)\s+(\d+\.?\d*)/);y&&(u={format:y[2],version:y[3]})}else if(m==="end_header")break}let p=o.indexOf("end_header")+10+1,f=new DataView(t,p);return{splatCount:s,vertexData:f,headerOffset:r,propertiesDesc:d,format:u}}};var Xn=class{constructor(t,e,r,o,i,a,s,l){this.config=t,this.xyz=e,this.scaling=r,this.color=o,this.opacity=i,this.harmonics=s,this.quaternion=a,this.variableChunkSize=l}get isDynamicChunks(){return this.variableChunkSize&&this.variableChunkSize.length>0}get nchunks(){return this.xyz.nchunks}get nsplats(){return this.xyz.length}get chunkSize(){return this.config.chunkSize}static compressFromGaussianData(t,e){let r=je.fromArray(t.xyz,e.xyz,e.chunkSize),o=je.fromArray(t.scaling,e.scaling,e.chunkSize),i=je.fromArray(t.colors,e.color,e.chunkSize),a=je.fromArray(t.opacity,e.opacity,e.chunkSize),s=je.fromArray(t.rotation,e.quaternion,e.chunkSize),l=t.harmonics,d=[];if(e.harmonics)for(let c=0;c<l.length;c++){let u=je.fromArray(l[c],e.harmonics,e.chunkSize);d.push(u)}return new Xn(e,r,o,i,a,s,d)}_countIndexesInChunks(t){let e=[],r=this.nchunks,o=this.chunkSize,i=this.nsplats,a=je.getRequiredNChunks(i,o);if(r===a)for(let s=0;s<t.length;s++){let l=t[s],d=Math.floor(l/this.chunkSize);d in e?e[d].push(l):e[d]=[l]}else{let s=this.variableChunkSize,l={},d=0;for(let c=0;c<r;c++)l[c]=d,d+=s[c];for(let c=0;c<t.length;c++){let u=t[c],p=Math.min(Math.floor(u/o),r-1);for(;u>=l[p]+s[p];)p++;p in e?e[p].push(u):e[p]=[u]}}return e}pruneSplats(t){let e=this._countIndexesInChunks(t),r,o=[];return e.length>0&&(r=this.variableChunkSize?[...this.variableChunkSize]:Array(this.nchunks).fill(this.chunkSize),e.forEach((i,a)=>{r[a]-=i.length,r[a]<=0&&o.push(a)}),r=r.filter(i=>i>0)),new Xn(this.config,this.xyz.pruneFeature(t,o,r),this.scaling.pruneFeature(t,o,r),this.color.pruneFeature(t,o,r),this.opacity.pruneFeature(t,o,r),this.quaternion.pruneFeature(t,o,r),this.harmonics?this.harmonics.map(i=>i.pruneFeature(t,o,this.variableChunkSize)):void 0,r)}static async loadConfig(t){return await(await fetch(t,{method:"GET",mode:"cors",headers:{Accept:"application/json"}})).json()}toGaussians(){let t={format:"binary_little_endian",version:"1.0"},e={},r=0;if(e.x={dtype:"float",index:r},r++,e.y={dtype:"float",index:r},r++,e.z={dtype:"float",index:r},r++,e.f_dc_0={dtype:"float",index:r},r++,e.f_dc_1={dtype:"float",index:r},r++,e.f_dc_2={dtype:"float",index:r},r++,this.harmonics&&this.harmonics.length>0)for(let a=0;a<this.harmonics.length;a++)e[`f_rest_${a}`]={dtype:"float",index:r},r++,e[`f_rest_${a+1}`]={dtype:"float",index:r},r++,e[`f_rest_${a+2}`]={dtype:"float",index:r},r++;e.opacity={dtype:"float",index:r},r++,e.scale_0={dtype:"float",index:r},r++,e.scale_1={dtype:"float",index:r},r++,e.scale_2={dtype:"float",index:r},r++,e.rot_0={dtype:"float",index:r},r++,e.rot_1={dtype:"float",index:r},r++,e.rot_2={dtype:"float",index:r},r++,e.rot_3={dtype:"float",index:r},r++;let o=this.harmonics?.map(a=>a.denormDequant());return new gr(e,t,this.xyz.length,this.xyz.denormDequant(),this.color.denormDequant(),o||[],this.opacity.denormDequant(),this.scaling.denormDequant(),this.quaternion.denormDequant(),3)}};var Kn=Rt(Ua()),ct=Rt(Ha());import{Matrix3 as Kp,Matrix4 as zI,Quaternion as kI}from"three";var yv={xyz:3,color:3,opacity:1,scaling:3,quaternion:4,harmonics:3},hn=class{constructor(t){this._buffer=t}get buffer(){return this._buffer}get decoded(){return this._decoded||(this._decoded=this.decodeBuffer()),this._decoded}get colorsA(){let t=.28209479177387814,e=this.decoded.color.denormDequant(),r=this.decoded.opacity.denormDequant(),o=(0,Kn.default)(new Float32Array(e.shape[0]*4),[e.shape[0],4]);return ct.mulseq(e,t),ct.addseq(e,.5),ct.mulseq(e,255),ct.maxseq(e,0),ct.minseq(e,255),ct.negeq(r),ct.expeq(r),ct.addseq(r,1),ct.recipeq(r),ct.mulseq(r,255),ct.assign(o.hi(e.shape[0],3).lo(0,0),e),ct.assign(o.hi(e.shape[0],4).lo(0,3),r),(0,Kn.default)(new Uint8Array(o.data),[e.shape[0],4]).data}get nsplats(){return this.decoded.nsplats}getSplatCount(){return this.decoded.nsplats}get precomputedCovarianceBufferData(){return this._precomputedCovarianceBufferData}decodeBuffer(){let{splatCount:t,chunkCount:e,chunkSize:r,typeChunks:o,vertexData:i,propertiesDesc:a}=this.decodeHeader(),s={xyz:a.xyz.compressionMethod,color:a.color.compressionMethod,opacity:a.opacity.compressionMethod,scaling:a.scaling.compressionMethod,quaternion:a.quaternion.compressionMethod,chunkSize:r};a.harmonics_0&&(s.harmonics=a.harmonics_0.compressionMethod);let l=i.byteOffset,d=Array(Object.keys(a).length);for(let g in a)d[a[g].index]={name:g,method:a[g].compressionMethod};let c=e*2*4,u=l,p=o==="dynamic"?e*2:0,f,h=!1;if(p>0){let g=new Uint16Array(i.buffer.slice(u,u+p));u+=p,f=Array.from(g),h=!0}let m={};for(let g of d){let x=0,S=!0;if(g.method==="norm8x")x=t*1*yv[g.name];else if(g.method==="norm11")x=t*4;else if(g.method==="norm565")x=t*2;else throw S=!1,new Error(`Not Implemented format: ${g.method}`);let w;if(S){let A=i.buffer.slice(u,u+c);w=(0,Kn.default)(new Float32Array(A),[e,2]),u+=c}else throw new Error("loading chunk byt hasnot minmax!");let b=i.buffer.slice(u,u+x);u+=x;let _;if(g.method==="norm8x")_=(0,Kn.default)(new Uint8Array(b),[t,yv[g.name]]);else if(g.method==="norm11")_=(0,Kn.default)(new Uint32Array(b));else if(g.method==="norm565")_=(0,Kn.default)(new Uint16Array(b));else throw new Error(`Not Implemented format: ${g.method}`);m[g.name]=new je(_,w,r,g.method,f,h)}let y=[];for(let g=0;g<15;g++){let x=m[`harmonics_${g}`];x&&(y.push(x),delete m[`harmonics_${g}`])}return y.length>0&&(m.harmonics=y),new Xn(s,m.xyz,m.scaling,m.color,m.opacity,m.quaternion,m.harmonics,f)}buildPreComputedBuffers(){let r=this.decoded,o=r.nsplats,i=new ArrayBuffer(24*o),a=new Float32Array(i),s=r.scaling.denormDequant(),l=r.quaternion.denormDequant(),d=new kI,c=new Kp,u=new Kp,p=new Kp,f=new zI;for(let h=0;h<o;h++){f.makeScale(Math.exp(s.get(h,0)),Math.exp(s.get(h,1)),Math.exp(s.get(h,2))),u.setFromMatrix4(f),d.set(l.get(h,0),l.get(h,1),l.get(h,2),l.get(h,3)),f.makeRotationFromQuaternion(d),c.setFromMatrix4(f),p.copy(c).multiply(u);let m=p.elements;a[6*h]=m[0]*m[0]+m[3]*m[3]+m[6]*m[6],a[6*h+1]=m[0]*m[1]+m[3]*m[4]+m[6]*m[7],a[6*h+2]=m[0]*m[2]+m[3]*m[5]+m[6]*m[8],a[6*h+3]=m[1]*m[1]+m[4]*m[4]+m[7]*m[7],a[6*h+4]=m[1]*m[2]+m[4]*m[5]+m[7]*m[8],a[6*h+5]=m[2]*m[2]+m[5]*m[5]+m[8]*m[8]}this._precomputedCovarianceBufferData=i}decodeHeader(){let t=this._buffer,e=new TextDecoder,r=0,o="",i=100;for(;;){if(r+i>=t.byteLength)throw new Error("End of file reached while searching for end of header");let m=new Uint8Array(t,r,i);o+=e.decode(m),r+=i;let y=r-i*2,g=new Uint8Array(t,Math.max(0,y),y>=0?i*2:i);if(e.decode(g).includes("end_header"))break}let a=o.split(`
2613
+ `),s=0,l={},d={},c=0,u;for(let h=0;h<a.length;h++){let m=a[h].trim();if(m.startsWith("element vertex")){let y=m.match(/\d+/);y&&(s=parseInt(y[0]))}else if(m.startsWith("property")){let y=m.match(/(\w+)\s+(\w+)\s+(\w+)/);if(y){let g=y[2],x=y[3];l[x]=c,d[x]={dtype:g,index:c},c++}}else if(m.startsWith("format")){let y=m.match(/(\w+)\s+(\w+)\s+(\d+\.?\d*)/);y&&(u={format:y[2],version:y[3]})}else if(m==="end_header")break}let p=o.indexOf("end_header")+10+1,f=new DataView(t,p);return{splatCount:s,vertexData:f,headerOffset:r,propertiesDesc:d,format:u}}};var Xn=class{constructor(t,e,r,o,i,a,s,l){this.config=t,this.xyz=e,this.scaling=r,this.color=o,this.opacity=i,this.harmonics=s,this.quaternion=a,this.variableChunkSize=l}get isDynamicChunks(){return this.variableChunkSize&&this.variableChunkSize.length>0}get nchunks(){return this.xyz.nchunks}get nsplats(){return this.xyz.length}get chunkSize(){return this.config.chunkSize}static compressFromGaussianData(t,e){let r=je.fromArray(t.xyz,e.xyz,e.chunkSize),o=je.fromArray(t.scaling,e.scaling,e.chunkSize),i=je.fromArray(t.colors,e.color,e.chunkSize),a=je.fromArray(t.opacity,e.opacity,e.chunkSize),s=je.fromArray(t.rotation,e.quaternion,e.chunkSize),l=t.harmonics,d=[];if(e.harmonics)for(let c=0;c<l.length;c++){let u=je.fromArray(l[c],e.harmonics,e.chunkSize);d.push(u)}return new Xn(e,r,o,i,a,s,d)}_countIndexesInChunks(t){let e=[],r=this.nchunks,o=this.chunkSize,i=this.nsplats,a=je.getRequiredNChunks(i,o);if(r===a)for(let s=0;s<t.length;s++){let l=t[s],d=Math.floor(l/this.chunkSize);d in e?e[d].push(l):e[d]=[l]}else{let s=this.variableChunkSize,l={},d=0;for(let c=0;c<r;c++)l[c]=d,d+=s[c];for(let c=0;c<t.length;c++){let u=t[c],p=Math.min(Math.floor(u/o),r-1);for(;u>=l[p]+s[p];)p++;p in e?e[p].push(u):e[p]=[u]}}return e}pruneSplats(t){let e=this._countIndexesInChunks(t),r,o=[];return e.length>0&&(r=this.variableChunkSize?[...this.variableChunkSize]:Array(this.nchunks).fill(this.chunkSize),e.forEach((i,a)=>{r[a]-=i.length,r[a]<=0&&o.push(a)}),r=r.filter(i=>i>0)),new Xn(this.config,this.xyz.pruneFeature(t,o,r),this.scaling.pruneFeature(t,o,r),this.color.pruneFeature(t,o,r),this.opacity.pruneFeature(t,o,r),this.quaternion.pruneFeature(t,o,r),this.harmonics?this.harmonics.map(i=>i.pruneFeature(t,o,this.variableChunkSize)):void 0,r)}static async loadConfig(t){return await(await fetch(t,{method:"GET",mode:"cors",headers:{Accept:"application/json"}})).json()}toGaussians(){let t={format:"binary_little_endian",version:"1.0"},e={},r=0;if(e.x={dtype:"float",index:r},r++,e.y={dtype:"float",index:r},r++,e.z={dtype:"float",index:r},r++,e.f_dc_0={dtype:"float",index:r},r++,e.f_dc_1={dtype:"float",index:r},r++,e.f_dc_2={dtype:"float",index:r},r++,this.harmonics&&this.harmonics.length>0)for(let a=0;a<this.harmonics.length;a++)e[`f_rest_${a}`]={dtype:"float",index:r},r++,e[`f_rest_${a+1}`]={dtype:"float",index:r},r++,e[`f_rest_${a+2}`]={dtype:"float",index:r},r++;e.opacity={dtype:"float",index:r},r++,e.scale_0={dtype:"float",index:r},r++,e.scale_1={dtype:"float",index:r},r++,e.scale_2={dtype:"float",index:r},r++,e.rot_0={dtype:"float",index:r},r++,e.rot_1={dtype:"float",index:r},r++,e.rot_2={dtype:"float",index:r},r++,e.rot_3={dtype:"float",index:r},r++;let o=this.harmonics?.map(a=>a.denormDequant());return new gr(e,t,this.xyz.length,this.xyz.denormDequant(),this.color.denormDequant(),o||[],this.opacity.denormDequant(),this.scaling.denormDequant(),this.quaternion.denormDequant(),3)}};var Kn=Rt(ja()),ct=Rt(Ua());import{Matrix3 as Kp,Matrix4 as kI,Quaternion as FI}from"three";var yv={xyz:3,color:3,opacity:1,scaling:3,quaternion:4,harmonics:3},hn=class{constructor(t){this._buffer=t}get buffer(){return this._buffer}get decoded(){return this._decoded||(this._decoded=this.decodeBuffer()),this._decoded}get colorsA(){let t=.28209479177387814,e=this.decoded.color.denormDequant(),r=this.decoded.opacity.denormDequant(),o=(0,Kn.default)(new Float32Array(e.shape[0]*4),[e.shape[0],4]);return ct.mulseq(e,t),ct.addseq(e,.5),ct.mulseq(e,255),ct.maxseq(e,0),ct.minseq(e,255),ct.negeq(r),ct.expeq(r),ct.addseq(r,1),ct.recipeq(r),ct.mulseq(r,255),ct.assign(o.hi(e.shape[0],3).lo(0,0),e),ct.assign(o.hi(e.shape[0],4).lo(0,3),r),(0,Kn.default)(new Uint8Array(o.data),[e.shape[0],4]).data}get nsplats(){return this.decoded.nsplats}getSplatCount(){return this.decoded.nsplats}get precomputedCovarianceBufferData(){return this._precomputedCovarianceBufferData}decodeBuffer(){let{splatCount:t,chunkCount:e,chunkSize:r,typeChunks:o,vertexData:i,propertiesDesc:a}=this.decodeHeader(),s={xyz:a.xyz.compressionMethod,color:a.color.compressionMethod,opacity:a.opacity.compressionMethod,scaling:a.scaling.compressionMethod,quaternion:a.quaternion.compressionMethod,chunkSize:r};a.harmonics_0&&(s.harmonics=a.harmonics_0.compressionMethod);let l=i.byteOffset,d=Array(Object.keys(a).length);for(let g in a)d[a[g].index]={name:g,method:a[g].compressionMethod};let c=e*2*4,u=l,p=o==="dynamic"?e*2:0,f,h=!1;if(p>0){let g=new Uint16Array(i.buffer.slice(u,u+p));u+=p,f=Array.from(g),h=!0}let m={};for(let g of d){let x=0,S=!0;if(g.method==="norm8x")x=t*1*yv[g.name];else if(g.method==="norm11")x=t*4;else if(g.method==="norm565")x=t*2;else throw S=!1,new Error(`Not Implemented format: ${g.method}`);let w;if(S){let A=i.buffer.slice(u,u+c);w=(0,Kn.default)(new Float32Array(A),[e,2]),u+=c}else throw new Error("loading chunk byt hasnot minmax!");let b=i.buffer.slice(u,u+x);u+=x;let _;if(g.method==="norm8x")_=(0,Kn.default)(new Uint8Array(b),[t,yv[g.name]]);else if(g.method==="norm11")_=(0,Kn.default)(new Uint32Array(b));else if(g.method==="norm565")_=(0,Kn.default)(new Uint16Array(b));else throw new Error(`Not Implemented format: ${g.method}`);m[g.name]=new je(_,w,r,g.method,f,h)}let y=[];for(let g=0;g<15;g++){let x=m[`harmonics_${g}`];x&&(y.push(x),delete m[`harmonics_${g}`])}return y.length>0&&(m.harmonics=y),new Xn(s,m.xyz,m.scaling,m.color,m.opacity,m.quaternion,m.harmonics,f)}buildPreComputedBuffers(){let r=this.decoded,o=r.nsplats,i=new ArrayBuffer(24*o),a=new Float32Array(i),s=r.scaling.denormDequant(),l=r.quaternion.denormDequant(),d=new FI,c=new Kp,u=new Kp,p=new Kp,f=new kI;for(let h=0;h<o;h++){f.makeScale(Math.exp(s.get(h,0)),Math.exp(s.get(h,1)),Math.exp(s.get(h,2))),u.setFromMatrix4(f),d.set(l.get(h,0),l.get(h,1),l.get(h,2),l.get(h,3)),f.makeRotationFromQuaternion(d),c.setFromMatrix4(f),p.copy(c).multiply(u);let m=p.elements;a[6*h]=m[0]*m[0]+m[3]*m[3]+m[6]*m[6],a[6*h+1]=m[0]*m[1]+m[3]*m[4]+m[6]*m[7],a[6*h+2]=m[0]*m[2]+m[3]*m[5]+m[6]*m[8],a[6*h+3]=m[1]*m[1]+m[4]*m[4]+m[7]*m[7],a[6*h+4]=m[1]*m[2]+m[4]*m[5]+m[7]*m[8],a[6*h+5]=m[2]*m[2]+m[5]*m[5]+m[8]*m[8]}this._precomputedCovarianceBufferData=i}decodeHeader(){let t=this._buffer,e=new TextDecoder,r=0,o="",i=100;for(;;){if(r+i>=t.byteLength)throw new Error("End of file reached while searching for end of header");let m=new Uint8Array(t,r,i);o+=e.decode(m),r+=i;let y=r-i*2,g=new Uint8Array(t,Math.max(0,y),y>=0?i*2:i);if(e.decode(g).includes("end_header"))break}let a=o.split(`
2614
2614
  `),s=0,l=0,d=0,c=0,u="",p={};for(let m=0;m<a.length;m++){let y=a[m].trim();if(y.startsWith("element vertex")){let g=y.match(/\d+/);g&&(s=parseInt(g[0]))}else if(y.startsWith("property")){let g=y.match(/(\w+)\s+(\w+)\s+(\w+)/);if(g){let x=g[2],S=g[3];p[x]={compressionMethod:S,index:c},c++}}else if(y.startsWith("element chunks")){let g=y.match(/\d+/);g&&(l=parseInt(g[0]))}else if(y.startsWith("element chunkSize")){let g=y.match(/\d+/);g&&(d=parseInt(g[0]))}else if(y.startsWith("element typeChunks")){let g=y.match(/(\w+)\s+(\w+)\s+(\w+)/);g&&(u=g[3])}else if(y==="end_header")break}let f=o.indexOf("end_header")+10+1,h=new DataView(t,f);return{splatCount:s,chunkCount:l,chunkSize:d,typeChunks:u,vertexData:h,propertiesDesc:p}}pruneSplats(t){let r=this.decodeBuffer().pruneSplats(t);return hn.fromCompressedGaussianSplats(r)}static fromCompressedGaussianSplats(t){let e=t.xyz.length,r=t.xyz.nchunks,o=`gspline
2615
2615
  element vertex ${e}
2616
2616
  element chunks ${r}
@@ -2623,7 +2623,7 @@ property scaling ${t.scaling.method}
2623
2623
  property quaternion ${t.quaternion.method}`;if(t.harmonics&&t.harmonics.length>0)for(let M=0;M<t.harmonics.length;M++)o=`${o}
2624
2624
  property harmonics_${M} ${t.harmonics[M].method}`;o=`${o}
2625
2625
  end_header
2626
- `;let a=new TextEncoder().encode(o),s=r*2*4,l=t.xyz.quantized.data.buffer.byteLength,d=t.xyz instanceof je?s:0,c=t.color.quantized.data.buffer.byteLength,u=t.color instanceof je?s:0,p=t.opacity.quantized.data.buffer.byteLength,f=t.opacity instanceof je?s:0,h=t.scaling.quantized.data.buffer.byteLength,m=t.scaling instanceof je?s:0,y=t.quaternion.quantized.data.buffer.byteLength,g=t.quaternion instanceof je?s:0,x=t.variableChunkSize?Uint16Array.from(t.variableChunkSize):void 0,S=x?x.byteLength:0,w=a.byteLength+S+l+d+c+u+p+f+h+m+y+g,b=0,_=0;if(t.harmonics&&t.harmonics.length>0)for(let M=0;M<t.harmonics.length;M++)b+=t.harmonics[M].quantized.data.buffer.byteLength,_+=t.harmonics[M]instanceof je?s:0;b=0,_=0,w+=b+_;let A=new Uint8Array(w),v=0;if(A.set(a,v),v+=a.byteLength,S>0&&(A.set(new Uint8Array(x.buffer),v),v+=S),t.xyz instanceof je&&(A.set(new Uint8Array(t.xyz.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.xyz.quantized.data.buffer),v),v+=l,t.color instanceof je&&(A.set(new Uint8Array(t.color.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.color.quantized.data.buffer),v),v+=c,t.opacity instanceof je&&(A.set(new Uint8Array(t.opacity.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.opacity.quantized.data.buffer),v),v+=p,t.scaling instanceof je&&(A.set(new Uint8Array(t.scaling.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.scaling.quantized.data.buffer),v),v+=h,t.quaternion instanceof je&&(A.set(new Uint8Array(t.quaternion.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.quaternion.quantized.data.buffer),v),v+=y,b>0&&t.harmonics&&t.harmonics.length>0)for(let M=0;M<t.harmonics.length;M++){let O=t.harmonics[M];O instanceof je&&(A.set(new Uint8Array(O.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(O.quantized.data.buffer),v),v+=O.quantized.data.byteLength}return new hn(A.buffer)}};var gv="AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAETA2AAAGAIf39/f39/f38AYAABfwISAQNlbnYGbWVtb3J5AgMAgIAEAwQDAAECBzkDEV9fd2FzbV9jYWxsX2N0b3JzAAALc29ydEluZGV4ZXMAARNlbXNjcmlwdGVuX3Rsc19pbml0AAIK3gMDAwABC9IDAwF/BnwBfgJAIAdFDQAgAysDUCEMIAMrAzAhDSADKwMQIQ5BACEDRP///////+9/IQtEAAAAAAAAEAAhCgNAIAIgA0ECdGoCfyAOIAEgA0EMbGoiCCoCALuiIA0gCCoCBLuioCAMIAgqAgi7oqBEAAAAAAAAsECiIgmZRAAAAAAAAOBBYwRAIAmqDAELQYCAgIB4CzYCACAJIAsgCSALYxshCyAJIAogCSAKZBshCiADQQFqIgMgB0cNAAsgB0UNACAGuCAKIAuhoyEJQQAhAwNAAn8gCSACIANBAnRqIgEoAgC3IAuhoiIKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAshCCABIAg2AgAgBCAIQQJ0aiIBIAEoAgBBAWo2AgAgA0EBaiIDIAdHDQALCyAGQQJPBEAgBCgCACEIQQEhAwNAIAQgA0ECdGoiASABKAIAIAhqIgg2AgAgA0EBaiIDIAZHDQALCyAHQQFrIgGtIQ8DQCAEIAIgD6dBAnQiA2ooAgBBAnRqIgcgBygCAEEBayIHNgIAIAUgASAHa0ECdGogACADaigCADYCACAPUCEDIA9CAX0hDyADRQ0ACyAGBEAgBEEAIAZBAnT8CwALCwQAQQAL";var co=class{};yt(co,"DepthMapRange",1<<16),yt(co,"MemoryPageSize",65536),yt(co,"BytesPerFloat",4),yt(co,"BytesPerInt",4);function FI(n){let t,e,r,o,i,a,s,l,d,c,u,p,f,h,m,y;function g(T){let C=new Float64Array(c,a,16);for(let I=0;I<16;I++)C[I]=T[I];let P;if(r>1){t.exports.sortIndexes(o,i,d,a,s,l,p.DepthMapRange,r);let I=new Uint32Array(r);P=I.buffer,I.set(new Uint32Array(c,l,r))}else if(r===1){let I=new Uint32Array(r);I[0]=new Uint32Array(c,o,e)[0],P=I.buffer}else P=new ArrayBuffer(0);n.postMessage({sortDone:!0,indexesBuffer:P},[P])}function x(T,C,P){let I=new Float32Array(c,i,e*3);r=0;let L=new Uint32Array(c,o,e);for(let G=0;G<P.length-1;G++){let N=C[G],F=T[G].elements,B=N.filter(V=>V.enabled&&V.mode==="Include").map(V=>V.type==="Box"?_(V):M(V)),R=N.filter(V=>V.enabled&&V.mode==="Exclude").map(V=>V.type==="Box"?_(V):M(V));for(let V=P[G];V<P[G+1];V++){let q=f[V*3],Y=f[V*3+1],$=f[V*3+2];if((B.length===0||w(q,Y,$,B))&&(R.length===0||!w(q,Y,$,R))){let H=1/(F[3]*q+F[7]*Y+F[11]*$+F[15]);I[r*3]=(F[0]*q+F[4]*Y+F[8]*$+F[12])*H,I[r*3+1]=(F[1]*q+F[5]*Y+F[9]*$+F[13])*H,I[r*3+2]=(F[2]*q+F[6]*Y+F[10]*$+F[14])*H,L[r]=V,r++}}}}function S(T,C){let P=[],I=C.filter(N=>N.enabled&&N.mode==="Include").map(N=>N.type==="Box"?_(N):M(N)),L=C.filter(N=>N.enabled&&N.mode==="Exclude").map(N=>N.type==="Box"?_(N):M(N)),G=T.length;for(let N=0;N<G;N+=3){let F=T[N],B=T[N+1],R=T[N+2];(I.length===0||w(F,B,R,I))&&(L.length===0||!w(F,B,R,L))||P.push(N/3)}return console.log(P),P}function w(T,C,P,I,L){return I[L==="Intersect"?"every":"some"](G=>{let N=b(T,C,P,G.invRotationMatrix,G.cropCenter);return Array.isArray(G)?v(N.x,N.y,N.z,G):O(N.x,N.y,N.z,G)})}function b(T,C,P,I,L){let G=T-L[0],N=C-L[1],F=P-L[2],B=1/(I[3]*G+I[7]*N+I[11]*F+I[15]);return{x:(I[0]*G+I[4]*N+I[8]*F+I[12])*B+L[0],y:(I[1]*G+I[5]*N+I[9]*F+I[13])*B+L[1],z:(I[2]*G+I[6]*N+I[10]*F+I[14])*B+L[2]}}function _(T){let C=T.cropSize[0]/2,P=T.cropSize[1]/2,I=T.cropSize[2]/2,L=[T.cropCenter[0]-C,T.cropCenter[1]-P,T.cropCenter[2]-I,T.cropCenter[0]+C,T.cropCenter[1]+P,T.cropCenter[2]+I],G=A(T.cropRotation);return Object.assign(L,{invRotationMatrix:G,cropCenter:T.cropCenter})}function A(T){let C=[],P=T[0]*Math.PI/180,I=T[1]*Math.PI/180,L=T[2]*Math.PI/180,G=Math.cos(P),N=Math.sin(P),F=Math.cos(I),B=Math.sin(I),R=Math.cos(L),V=Math.sin(L),q=G*R,Y=G*V,$=N*R,H=N*V;return C[0]=F*R,C[1]=-F*V,C[2]=B,C[4]=Y+$*B,C[5]=q-H*B,C[6]=-N*F,C[8]=H-q*B,C[9]=$+Y*B,C[10]=G*F,C[12]=0,C[13]=0,C[14]=0,C[3]=0,C[7]=0,C[11]=0,C[15]=1,C}function v(T,C,P,I){return T>=I[0]&&T<=I[3]&&C>=I[1]&&C<=I[4]&&P>=I[2]&&P<=I[5]}function M(T){let C=2/T.cropSize[0],P=2/T.cropSize[1],I=2/T.cropSize[2],L=A(T.cropRotation);return{invRadiusX:C,invRadiusY:P,invRadiusZ:I,cropCenter:T.cropCenter,invRotationMatrix:L}}function O(T,C,P,I){let L=(T-I.cropCenter[0])*I.invRadiusX,G=(C-I.cropCenter[1])*I.invRadiusY,N=(P-I.cropCenter[2])*I.invRadiusZ;return L*L+G*G+N*N<=1}n.onmessage=T=>{if(T.data.getCroppedIndexes){let C=new Uint32Array(S(new Float32Array(T.data.positions),T.data.crops)).buffer;n.postMessage({outOfBoundsIndexes:C},[C])}else if(T.data.positions)u=T.data.positions,f=new Float32Array(u),m=T.data.meshMatrixWorlds,y=T.data.cropsArray,h=T.data.meshIndexIntervals,x(m,y,h),n.postMessage({sortSetupComplete:!0});else if(T.data.sort||T.data.newMatrixWorlds||T.data.newCropsArray)(T.data.newMatrixWorlds||T.data.newCropsArray)&&(y=T.data.newCropsArray||y,m=T.data.newMatrixWorlds||m,x(m,y,h)),g(T.data.sort.view,T.data.sort.cameraPosition);else if(T.data.init){p=T.data.init.Constants,e=T.data.init.splatCount;let C=p.BytesPerInt,P=p.BytesPerFloat*3,I=new Uint8Array(T.data.init.sorterWasmBytes),L=C+P,G=e*L,N=e*p.BytesPerInt*2+p.DepthMapRange*p.BytesPerInt*2,F=p.MemoryPageSize*32,B=G+N+F,R=Math.floor(B/p.MemoryPageSize)+1,V={module:{},env:{memory:new WebAssembly.Memory({initial:R*2,maximum:R*3,shared:!0})}};WebAssembly.compile(I).then(q=>WebAssembly.instantiate(q,V)).then(q=>{t=q,o=0,i=e*C,a=i+e*P,d=a+16*p.BytesPerFloat*2,s=d+e*p.BytesPerInt,l=s+p.DepthMapRange*p.BytesPerInt,c=V.env.memory.buffer,n.postMessage({sortSetupPhase1Complete:!0})})}}}function xv(n){let t=new Worker(URL.createObjectURL(new Blob(["(",FI.toString(),")(self)"],{type:"application/javascript"}))),e=atob(gv),r=new Uint8Array(e.length);for(let o=0;o<e.length;o++)r[o]=e.charCodeAt(o);return t.postMessage({init:{sorterWasmBytes:r.buffer,splatCount:n,Constants:{BytesPerFloat:co.BytesPerFloat,BytesPerInt:co.BytesPerInt,DepthMapRange:co.DepthMapRange,MemoryPageSize:co.MemoryPageSize}}}),t}import{Matrix4 as oN,Quaternion as wv,Vector2 as nN,Vector3 as qa}from"three";import{BufferAttribute as jI,BufferGeometry as UI,Color as HI,DataTexture as pu,DataUtils as qI,DoubleSide as WI,DynamicDrawUsage as $I,FloatType as bv,HalfFloatType as YI,InstancedBufferAttribute as XI,InstancedBufferGeometry as KI,Mesh as QI,NormalBlending as ZI,RGBAFormat as JI,RGBAIntegerFormat as eN,RGFormat as Sv,ShaderMaterial as tN,UnsignedIntType as rN,Vector2 as mn}from"three";var du=function(){let n=new Float32Array(1),t=new Int32Array(n.buffer);return function(e){return n[0]=e,t[0]}}(),vv=function(n,t,e,r){return n+(t<<8)+(e<<16)+(r<<24)};var fu=new mn,yn=class extends QI{constructor(e,r,o,i,a=!1,s=1,l,d){super(o,i);this.splatCount=r,this.meshIndexIntervals=l,this.meshMatrixWorlds=d,this.splatBuffers=e,this.geometry=o,this.material=i,this.splatDataTextures=null,this.halfPrecisionCovariancesOnGPU=a,this.devicePixelRatio=s,this.resetLocalSplatDataAndTexturesFromSplatBuffer()}static buildMesh(e,r,o=!1,i=1,a,s){let l=yn.buildGeomtery(r),d=yn.buildMaterial(a);return new yn(e,r,l,d,o,i,a,s)}static buildMaterial(e){let r=`
2626
+ `;let a=new TextEncoder().encode(o),s=r*2*4,l=t.xyz.quantized.data.buffer.byteLength,d=t.xyz instanceof je?s:0,c=t.color.quantized.data.buffer.byteLength,u=t.color instanceof je?s:0,p=t.opacity.quantized.data.buffer.byteLength,f=t.opacity instanceof je?s:0,h=t.scaling.quantized.data.buffer.byteLength,m=t.scaling instanceof je?s:0,y=t.quaternion.quantized.data.buffer.byteLength,g=t.quaternion instanceof je?s:0,x=t.variableChunkSize?Uint16Array.from(t.variableChunkSize):void 0,S=x?x.byteLength:0,w=a.byteLength+S+l+d+c+u+p+f+h+m+y+g,b=0,_=0;if(t.harmonics&&t.harmonics.length>0)for(let M=0;M<t.harmonics.length;M++)b+=t.harmonics[M].quantized.data.buffer.byteLength,_+=t.harmonics[M]instanceof je?s:0;b=0,_=0,w+=b+_;let A=new Uint8Array(w),v=0;if(A.set(a,v),v+=a.byteLength,S>0&&(A.set(new Uint8Array(x.buffer),v),v+=S),t.xyz instanceof je&&(A.set(new Uint8Array(t.xyz.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.xyz.quantized.data.buffer),v),v+=l,t.color instanceof je&&(A.set(new Uint8Array(t.color.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.color.quantized.data.buffer),v),v+=c,t.opacity instanceof je&&(A.set(new Uint8Array(t.opacity.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.opacity.quantized.data.buffer),v),v+=p,t.scaling instanceof je&&(A.set(new Uint8Array(t.scaling.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.scaling.quantized.data.buffer),v),v+=h,t.quaternion instanceof je&&(A.set(new Uint8Array(t.quaternion.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(t.quaternion.quantized.data.buffer),v),v+=y,b>0&&t.harmonics&&t.harmonics.length>0)for(let M=0;M<t.harmonics.length;M++){let O=t.harmonics[M];O instanceof je&&(A.set(new Uint8Array(O.minmaxMatrix.data.buffer),v),v+=s),A.set(new Uint8Array(O.quantized.data.buffer),v),v+=O.quantized.data.byteLength}return new hn(A.buffer)}};var gv="AGFzbQEAAAAADwhkeWxpbmsuMAEEAAAAAAETA2AAAGAIf39/f39/f38AYAABfwISAQNlbnYGbWVtb3J5AgMAgIAEAwQDAAECBzkDEV9fd2FzbV9jYWxsX2N0b3JzAAALc29ydEluZGV4ZXMAARNlbXNjcmlwdGVuX3Rsc19pbml0AAIK3gMDAwABC9IDAwF/BnwBfgJAIAdFDQAgAysDUCEMIAMrAzAhDSADKwMQIQ5BACEDRP///////+9/IQtEAAAAAAAAEAAhCgNAIAIgA0ECdGoCfyAOIAEgA0EMbGoiCCoCALuiIA0gCCoCBLuioCAMIAgqAgi7oqBEAAAAAAAAsECiIgmZRAAAAAAAAOBBYwRAIAmqDAELQYCAgIB4CzYCACAJIAsgCSALYxshCyAJIAogCSAKZBshCiADQQFqIgMgB0cNAAsgB0UNACAGuCAKIAuhoyEJQQAhAwNAAn8gCSACIANBAnRqIgEoAgC3IAuhoiIKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAshCCABIAg2AgAgBCAIQQJ0aiIBIAEoAgBBAWo2AgAgA0EBaiIDIAdHDQALCyAGQQJPBEAgBCgCACEIQQEhAwNAIAQgA0ECdGoiASABKAIAIAhqIgg2AgAgA0EBaiIDIAZHDQALCyAHQQFrIgGtIQ8DQCAEIAIgD6dBAnQiA2ooAgBBAnRqIgcgBygCAEEBayIHNgIAIAUgASAHa0ECdGogACADaigCADYCACAPUCEDIA9CAX0hDyADRQ0ACyAGBEAgBEEAIAZBAnT8CwALCwQAQQAL";var co=class{};yt(co,"DepthMapRange",1<<16),yt(co,"MemoryPageSize",65536),yt(co,"BytesPerFloat",4),yt(co,"BytesPerInt",4);function jI(n){let t,e,r,o,i,a,s,l,d,c,u,p,f,h,m,y;function g(T){let C=new Float64Array(c,a,16);for(let I=0;I<16;I++)C[I]=T[I];let P;if(r>1){t.exports.sortIndexes(o,i,d,a,s,l,p.DepthMapRange,r);let I=new Uint32Array(r);P=I.buffer,I.set(new Uint32Array(c,l,r))}else if(r===1){let I=new Uint32Array(r);I[0]=new Uint32Array(c,o,e)[0],P=I.buffer}else P=new ArrayBuffer(0);n.postMessage({sortDone:!0,indexesBuffer:P},[P])}function x(T,C,P){let I=new Float32Array(c,i,e*3);r=0;let D=new Uint32Array(c,o,e);for(let G=0;G<P.length-1;G++){let N=C[G],F=T[G].elements,B=N.filter(V=>V.enabled&&V.mode==="Include").map(V=>V.type==="Box"?_(V):M(V)),R=N.filter(V=>V.enabled&&V.mode==="Exclude").map(V=>V.type==="Box"?_(V):M(V));for(let V=P[G];V<P[G+1];V++){let q=f[V*3],Y=f[V*3+1],$=f[V*3+2];if((B.length===0||w(q,Y,$,B))&&(R.length===0||!w(q,Y,$,R))){let H=1/(F[3]*q+F[7]*Y+F[11]*$+F[15]);I[r*3]=(F[0]*q+F[4]*Y+F[8]*$+F[12])*H,I[r*3+1]=(F[1]*q+F[5]*Y+F[9]*$+F[13])*H,I[r*3+2]=(F[2]*q+F[6]*Y+F[10]*$+F[14])*H,D[r]=V,r++}}}}function S(T,C){let P=[],I=C.filter(N=>N.enabled&&N.mode==="Include").map(N=>N.type==="Box"?_(N):M(N)),D=C.filter(N=>N.enabled&&N.mode==="Exclude").map(N=>N.type==="Box"?_(N):M(N)),G=T.length;for(let N=0;N<G;N+=3){let F=T[N],B=T[N+1],R=T[N+2];(I.length===0||w(F,B,R,I))&&(D.length===0||!w(F,B,R,D))||P.push(N/3)}return console.log(P),P}function w(T,C,P,I,D){return I[D==="Intersect"?"every":"some"](G=>{let N=b(T,C,P,G.invRotationMatrix,G.cropCenter);return Array.isArray(G)?v(N.x,N.y,N.z,G):O(N.x,N.y,N.z,G)})}function b(T,C,P,I,D){let G=T-D[0],N=C-D[1],F=P-D[2],B=1/(I[3]*G+I[7]*N+I[11]*F+I[15]);return{x:(I[0]*G+I[4]*N+I[8]*F+I[12])*B+D[0],y:(I[1]*G+I[5]*N+I[9]*F+I[13])*B+D[1],z:(I[2]*G+I[6]*N+I[10]*F+I[14])*B+D[2]}}function _(T){let C=T.cropSize[0]/2,P=T.cropSize[1]/2,I=T.cropSize[2]/2,D=[T.cropCenter[0]-C,T.cropCenter[1]-P,T.cropCenter[2]-I,T.cropCenter[0]+C,T.cropCenter[1]+P,T.cropCenter[2]+I],G=A(T.cropRotation);return Object.assign(D,{invRotationMatrix:G,cropCenter:T.cropCenter})}function A(T){let C=[],P=T[0]*Math.PI/180,I=T[1]*Math.PI/180,D=T[2]*Math.PI/180,G=Math.cos(P),N=Math.sin(P),F=Math.cos(I),B=Math.sin(I),R=Math.cos(D),V=Math.sin(D),q=G*R,Y=G*V,$=N*R,H=N*V;return C[0]=F*R,C[1]=-F*V,C[2]=B,C[4]=Y+$*B,C[5]=q-H*B,C[6]=-N*F,C[8]=H-q*B,C[9]=$+Y*B,C[10]=G*F,C[12]=0,C[13]=0,C[14]=0,C[3]=0,C[7]=0,C[11]=0,C[15]=1,C}function v(T,C,P,I){return T>=I[0]&&T<=I[3]&&C>=I[1]&&C<=I[4]&&P>=I[2]&&P<=I[5]}function M(T){let C=2/T.cropSize[0],P=2/T.cropSize[1],I=2/T.cropSize[2],D=A(T.cropRotation);return{invRadiusX:C,invRadiusY:P,invRadiusZ:I,cropCenter:T.cropCenter,invRotationMatrix:D}}function O(T,C,P,I){let D=(T-I.cropCenter[0])*I.invRadiusX,G=(C-I.cropCenter[1])*I.invRadiusY,N=(P-I.cropCenter[2])*I.invRadiusZ;return D*D+G*G+N*N<=1}n.onmessage=T=>{if(T.data.getCroppedIndexes){let C=new Uint32Array(S(new Float32Array(T.data.positions),T.data.crops)).buffer;n.postMessage({outOfBoundsIndexes:C},[C])}else if(T.data.positions)u=T.data.positions,f=new Float32Array(u),m=T.data.meshMatrixWorlds,y=T.data.cropsArray,h=T.data.meshIndexIntervals,x(m,y,h),n.postMessage({sortSetupComplete:!0});else if(T.data.sort||T.data.newMatrixWorlds||T.data.newCropsArray)(T.data.newMatrixWorlds||T.data.newCropsArray)&&(y=T.data.newCropsArray||y,m=T.data.newMatrixWorlds||m,x(m,y,h)),g(T.data.sort.view,T.data.sort.cameraPosition);else if(T.data.init){p=T.data.init.Constants,e=T.data.init.splatCount;let C=p.BytesPerInt,P=p.BytesPerFloat*3,I=new Uint8Array(T.data.init.sorterWasmBytes),D=C+P,G=e*D,N=e*p.BytesPerInt*2+p.DepthMapRange*p.BytesPerInt*2,F=p.MemoryPageSize*32,B=G+N+F,R=Math.floor(B/p.MemoryPageSize)+1,V={module:{},env:{memory:new WebAssembly.Memory({initial:R*2,maximum:R*3,shared:!0})}};WebAssembly.compile(I).then(q=>WebAssembly.instantiate(q,V)).then(q=>{t=q,o=0,i=e*C,a=i+e*P,d=a+16*p.BytesPerFloat*2,s=d+e*p.BytesPerInt,l=s+p.DepthMapRange*p.BytesPerInt,c=V.env.memory.buffer,n.postMessage({sortSetupPhase1Complete:!0})})}}}function xv(n){let t=new Worker(URL.createObjectURL(new Blob(["(",jI.toString(),")(self)"],{type:"application/javascript"}))),e=atob(gv),r=new Uint8Array(e.length);for(let o=0;o<e.length;o++)r[o]=e.charCodeAt(o);return t.postMessage({init:{sorterWasmBytes:r.buffer,splatCount:n,Constants:{BytesPerFloat:co.BytesPerFloat,BytesPerInt:co.BytesPerInt,DepthMapRange:co.DepthMapRange,MemoryPageSize:co.MemoryPageSize}}}),t}import{Matrix4 as nN,Quaternion as wv,Vector2 as iN,Vector3 as Ha}from"three";import{BufferAttribute as UI,BufferGeometry as HI,Color as qI,DataTexture as pu,DataUtils as WI,DoubleSide as $I,DynamicDrawUsage as YI,FloatType as bv,HalfFloatType as XI,InstancedBufferAttribute as KI,InstancedBufferGeometry as QI,Mesh as ZI,NormalBlending as JI,RGBAFormat as eN,RGBAIntegerFormat as tN,RGFormat as Sv,ShaderMaterial as rN,UnsignedIntType as oN,Vector2 as mn}from"three";var du=function(){let n=new Float32Array(1),t=new Int32Array(n.buffer);return function(e){return n[0]=e,t[0]}}(),vv=function(n,t,e,r){return n+(t<<8)+(e<<16)+(r<<24)};var fu=new mn,yn=class extends ZI{constructor(e,r,o,i,a=!1,s=1,l,d){super(o,i);this.splatCount=r,this.meshIndexIntervals=l,this.meshMatrixWorlds=d,this.splatBuffers=e,this.geometry=o,this.material=i,this.splatDataTextures=null,this.halfPrecisionCovariancesOnGPU=a,this.devicePixelRatio=s,this.resetLocalSplatDataAndTexturesFromSplatBuffer()}static buildMesh(e,r,o=!1,i=1,a,s){let l=yn.buildGeomtery(r),d=yn.buildMaterial(a);return new yn(e,r,l,d,o,i,a,s)}static buildMaterial(e){let r=`
2627
2627
  precision highp float;
2628
2628
  #include <common>
2629
2629
 
@@ -2777,4 +2777,4 @@ end_header
2777
2777
  A = exp(A) * vColor.a;
2778
2778
  gl_FragColor = vec4(color.rgb, A);
2779
2779
  gVelocity = vec4(0.0); // so it is ignored by TAA
2780
- }`,i={covariancesTexture:{type:"t",value:null},centersColorsTexture:{type:"t",value:null},meshIndexIntervals:{value:e},meshMatrixWorldsTexture:{type:"t",value:null},focal:{type:"v2",value:new mn},viewport:{type:"v2",value:new mn},basisViewport:{type:"v2",value:new mn},debugColor:{type:"v3",value:new HI},covariancesTextureSize:{type:"v2",value:new mn(1024,1024)},centersColorsTextureSize:{type:"v2",value:new mn(1024,1024)},orthoZoom:{type:"f",value:-1}};return new tN({uniforms:i,vertexShader:r,fragmentShader:o,transparent:!0,alphaTest:1,blending:ZI,depthTest:!0,depthWrite:!1,side:WI})}static buildGeomtery(e){let r=new UI;r.setIndex([0,1,2,0,2,3]);let o=new Float32Array(4*3),i=new jI(o,3);r.setAttribute("position",i),i.setXYZ(0,-1,-1,0),i.setXYZ(1,-1,1,0),i.setXYZ(2,1,1,0),i.setXYZ(3,1,-1,0),i.needsUpdate=!0;let a=new KI().copy(r),s=new Uint32Array(e),l=new XI(s,1,!1);return l.setUsage($I),a.setAttribute("splatIndex",l),a.instanceCount=e,a}resetLocalSplatDataAndTexturesFromSplatBuffer(){this.updateLocalSplatDataFromSplatBuffer(),this.allocateAndStoreLocalSplatDataInTextures()}updateLocalSplatDataFromSplatBuffer(){this.splatBuffers.forEach(i=>i.buildPreComputedBuffers()),this.covariances=new Float32Array(this.splatCount*6),this.colors=new Uint8Array(this.splatCount*4),this.centers=new Float32Array(this.splatCount*3);let e=0,r=0,o=0;for(let i of this.splatBuffers){let a=i.nsplats;this.colors.subarray(e,e+a*4).set(i.colorsA),e+=a*4,this.centers.subarray(r,r+a*3).set(i.decoded.xyz.denormDequant().data),r+=a*3,this.covariances.subarray(o,o+a*6).set(new Float32Array(i.precomputedCovarianceBufferData)),o+=a*6}}allocateAndStoreLocalSplatDataInTextures(){let o=this.splatCount,i=new mn(4096,1024);for(;i.x*i.y*2<o*6;)i.y*=2;let a=new mn(4096,1024);for(;a.x*a.y*4<o*4;)a.y*=2;let s,l;if(this.halfPrecisionCovariancesOnGPU){l=new Uint16Array(i.x*i.y*2);for(let h=0;h<this.covariances.length;h++)l[h]=qI.toHalfFloat(this.covariances[h]);s=new pu(l,i.x,i.y,Sv,YI)}else l=new Float32Array(i.x*i.y*2),l.set(this.covariances),s=new pu(l,i.x,i.y,Sv,bv);s.needsUpdate=!0,this.material.uniforms.covariancesTexture.value=s,this.material.uniforms.covariancesTextureSize.value.copy(i);let d=new Uint32Array(a.x*a.y*4);for(let h=0;h<o;h++){let m=h*4,y=h*3,g=h*4;d[g]=vv(this.colors[m],this.colors[m+1],this.colors[m+2],this.colors[m+3]),d[g+1]=du(this.centers[y]),d[g+2]=du(this.centers[y+1]),d[g+3]=du(this.centers[y+2])}let c=new pu(d,a.x,a.y,eN,rN);c.internalFormat="RGBA32UI",c.needsUpdate=!0,this.material.uniforms.centersColorsTexture.value=c,this.material.uniforms.centersColorsTextureSize.value.copy(a);let u=256*4,p=new Float32Array(256*16);for(let h=0;h<this.meshMatrixWorlds.length;h++)p.set(this.meshMatrixWorlds[h].elements,h*16);let f=new pu(p,u,1,JI,bv);f.needsUpdate=!0,this.material.uniforms.meshMatrixWorldsTexture.value=f,this.material.uniformsNeedUpdate=!0,this.splatDataTextures={covariances:{data:l,texture:s,size:i},centerColors:{data:d,texture:c,size:a},meshMatrixWorlds:{data:p,texture:f}}}updateIndexes(e){let r=this.geometry;r.attributes.splatIndex.set(e),r.attributes.splatIndex.needsUpdate=!0,r.instanceCount=e.length}updateUniforms(e,r,o,i){this.splatCount>0&&(fu.set(e.x*this.devicePixelRatio,e.y*this.devicePixelRatio),this.material.uniforms.viewport.value.copy(fu),this.material.uniforms.basisViewport.value.set(2/fu.x,2/fu.y),this.material.uniforms.focal.value.set(r,o),this.material.uniforms.orthoZoom.value=i,this.material.uniformsNeedUpdate=!0)}getSplatDataTextures(){return this.splatDataTextures}getSplatCount(){return this.splatCount}getCenters(){return this.centers}getColors(){return this.colors}getCovariances(){return this.covariances}dispose(){this.geometry.dispose(),this.material.dispose(),this.splatDataTextures&&(this.splatDataTextures.covariances.texture.dispose(),this.splatDataTextures.centerColors.texture.dispose(),this.splatDataTextures.meshMatrixWorlds.texture.dispose())}};var Hs=class{constructor(t={}){yt(this,"updateSplatMeshUniforms",function(){let t=new nN;return function(){if(this.splatMesh===null)return;this.splatMesh.getSplatCount()>0&&(this.renderer.getSize(t),this.cameraFocalLengthX=this.camera.projectionMatrix.elements[0]*this.devicePixelRatio*t.x*.45,this.cameraFocalLengthY=this.camera.projectionMatrix.elements[5]*this.devicePixelRatio*t.y*.45,this.splatMesh.updateUniforms(t,this.cameraFocalLengthX,this.cameraFocalLengthY,this.camera.isPerspectiveCamera?-1:this.camera.zoom*this.devicePixelRatio))}}());yt(this,"updateView",function(){let t=new oN,e=[],r=new qa(0,0,-1),o=new qa(0,0,-1),i=new qa,a=new qa;return function(s=!1){let l=this.updateMatrixWorldsInWorkerIfNeeded(),d=this.cropsChanged();if(!s){o.set(0,0,-1).applyQuaternion(this.camera.quaternion);let u=!1,p=!1;if(o.dot(r)<=.95&&(u=!0),a.copy(this.camera.position).sub(i).length()>=1&&(p=!0),!u&&!p&&!l&&!d)return}i.copy(this.camera.position),r.copy(o),t.copy(this.camera.matrixWorld).invert(),t.premultiply(this.camera.perspCamera.projectionMatrix),e[0]=this.camera.position.x,e[1]=this.camera.position.y,e[2]=this.camera.position.z;let c={sort:{view:t.elements,cameraPosition:e,splatRenderCount:this.splatRenderCount,splatSortCount:this.splatRenderCount},...l?{newMatrixWorlds:this.meshMatrixWorlds}:{},...d?{newCropsArray:this.cropsArray}:{}};this.sortRunning?this.queuedMessage=c:(this.queuedMessage=null,this.sortRunning=!0,this.sortWorker.postMessage(c))}}());this.scene=t.scene,this.currentPage=null,this.renderer=t.renderer,this.devicePixelRatio=window.devicePixelRatio,this.sortWorker=null,this.splatRenderCount=0,this.splatSortCount=0,this.splatMesh=null,this.sortRunning=!1,this.splatRenderingInitialized=!1,this.meshMatrixWorlds=null,this.meshMatrixWorldsOld=null,this.cropsArray=null,this.splatEntries=null,this.queuedMessage=null}get camera(){return this.scene.activeCamera}reloadSplats(){this.splatRenderingInitialized=!1;let t=this.loadSplat();this.renderer.pipeline.opaquePass.splatViewer=t?this:null}loadSplat(t={}){this.activePage=this.scene.activePage,t.position&&(t.position=new qa().fromArray(t.position)),t.orientation&&(t.orientation=new wv().fromArray(t.orientation)),t.halfPrecisionCovariances=!!t.halfPrecisionCovariances;let e=[];if(this.splatEntries=e,this.activePage.traverseEntity(a=>{if(a.data.type==="Splat"){let s=a.visible;a.traverseAncestors(l=>{s&&(s=l.visible)}),s&&e.push(a)}}),this.splatMesh&&this.splatMesh.dispose(),e.length===0)return this.splatMesh=null,!1;this.meshMatrixWorlds=e.map(a=>a.matrixWorld),this.meshMatrixWorldsOld=e.map(a=>a.matrixWorld.clone()),this.cropsArray=e.map(a=>a.data.crops.map(s=>s.data));let r=e.map(a=>new hn(new Uint8Array(a.data.buffer).buffer)),o=0,i=[0];for(let a of r)o+=a.getSplatCount(),i.push(o);return this.setupSplatMesh(r,o,t.position,t.orientation,t.halfPrecisionCovariances,this.devicePixelRatio,i,this.meshMatrixWorlds),this.setupSortWorker(o),!0}updateMatrixWorldsInWorkerIfNeeded(){let t=this.splatDataTextures.meshMatrixWorlds.data;for(let e=0;e<this.meshMatrixWorlds.length;e++)t.set(this.meshMatrixWorlds[e].elements,e*16);return this.splatDataTextures.meshMatrixWorlds.texture.needsUpdate=!0,this.meshMatrixWorlds.every((e,r)=>e.equals(this.meshMatrixWorldsOld[r]))?!1:(this.meshMatrixWorldsOld=this.meshMatrixWorlds.map(e=>e.clone()),!0)}cropsChanged(){let t=!1;return this.splatEntries.forEach((e,r)=>{e.data.crops.forEach((o,i)=>{this.cropsArray[r][i]===void 0?(t=!0,this.cropsArray[r][i]=o.data):Object.entries(o.data).forEach(([a,s])=>{Array.isArray(s)&&s.some((l,d)=>l!==this.cropsArray[r][i][a][d])?(t=!0,this.cropsArray[r][i][a]=s):s!==this.cropsArray[r][i]?.[a]&&(t=!0,this.cropsArray[r][i][a]=s)})}),e.data.crops.length!==this.cropsArray[r]?.length&&(this.cropsArray[r].length=e.data.crops.length,t=!0)}),t}setupSplatMesh(t,e,r=new qa,o=new wv,i=!1,a=1,s,l){this.splatMesh=yn.buildMesh(t,e,i,a,s,l),this.splatMesh.position.copy(r),this.splatMesh.quaternion.copy(o),this.splatMesh.frustumCulled=!1,this.splatMesh.renderOrder=10,this.updateSplatMeshUniforms(),this.splatRenderCount=e}setupSortWorker(t){this.sortWorker=xv(t),this.sortWorker.onmessage=e=>{e.data.sortDone?(this.sortRunning=!1,this.splatMesh?.updateIndexes(new Uint32Array(e.data.indexesBuffer)),this.lastSortTime=e.data.sortTime,this.queuedMessage&&(this.sortWorker.postMessage(this.queuedMessage),this.queuedMessage=null)):e.data.sortCanceled?this.sortRunning=!1:e.data.sortSetupPhase1Complete?this.sortWorker.postMessage({positions:this.splatMesh.getCenters().buffer,meshMatrixWorlds:this.splatMesh.meshMatrixWorlds,meshIndexIntervals:this.splatMesh.meshIndexIntervals,cropsArray:this.cropsArray}):e.data.sortSetupComplete&&(this.splatDataTextures=this.splatMesh.getSplatDataTextures(),this.updateView(!0,!0),this.splatRenderingInitialized=!0)}}update(){this.splatRenderingInitialized!==!1&&(this.updateSplatMeshUniforms(),this.updateView())}getSplatMesh(){return this.splatMesh}};var dN=new cN;dN.wireframe=!0;var _v=new aN,hu=class extends iN{constructor(e,r){super();this.data=e;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.geometryCacheChanged=!1;this.splatViewer=null;this.entityByUuid={};this.entityIdentityToEntity={};this.toExpandCloner=new Set;this.toUpdateCloner=new Set;this.pendingCommands=[];this.pathConstraints=new lu;this.errorPage=new dn("fdasfa",{...xo.defaultData,name:""});this.invisibleObjects=new un("jflkdsafjasdifjaslk",{...$l.defaultData,visible:!1,name:"buildin invisible"});this.needsRecomputeInstances=!1;this.init(e,r),this.matrixAutoUpdate=!1}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Fx(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=kx(this),this.needsNormalDirty=!1),this._needsNormal}registerInstanceAndSetUuid(e){let r=e.identity.join("-"),o=this.entityIdentityToEntity[r];o&&(e.uuid=o.uuid),this.entityIdentityToEntity[r]=e,this.entityByUuid[e.uuid]=e}markPenumbraSizeDirty(){for(let e of this.children)e instanceof dn&&(e.penumbraSizeArrayCache=null)}findInstance(e){return this.entityIdentityToEntity[e.join("-")]}get bgColor(){return this.activePage.bgColor}get postprocessing(){return this.activePage.data.postprocessing}getWithSortKey(e){let r=this.find(e);if(r===void 0)return;let o=[],i=r;for(;i!==this;){let a=i;i=i.parent;let s=i.children.indexOf(a);o.splice(0,0,s)}return{entity:r,sortKey:o}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push(i)}return r.sort((o,i)=>tf(o.sortKey,i.sortKey)),r.map(o=>o.entity)}nonExistOrDescendantOf(e,r){let o=this.find(e);if(o===void 0)return!0;for(;o;){if(o.uuid===r)return!0;o=o.parent}return!1}find(e){if(this.activePage&&this.activePage.personalCamera.parent){if(e==="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera")return this.activePage.personalCamera;if(e===Uo)return this.activePage.personalCamera}if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}debugEnsureEntity(e){let r=this.find(e);if(r){if(Array.isArray(r.identity)&&this.findInstance(r.identity)===void 0){console.error("not found instance");debugger}}else{console.error("not found");debugger}}addPendingExpandCloner(e){this.toExpandCloner.add(e)}addPendingUpdateCloner(e){this.toUpdateCloner.add(e)}markToExpandCloner(e){this.toExpandCloner.add(e),e.traverseEntityAncestors(r=>{this.toExpandCloner.add(r)})}doPendingExpandCloner(){this.toExpandCloner.forEach(e=>{e.expandCloner(this)}),this.toExpandCloner.clear()}doPendingUpdateCloner(){this.toUpdateCloner.forEach(e=>{e.cloner?.update()}),this.toUpdateCloner.clear()}doPendingUpdates(){this.doPendingExpandCloner(),this.doPendingUpdateCloner(),this.applyPendingCommands()}addPendingCommand(e){this.pendingCommands.push(e)}applyPendingCommands(){this.pendingCommands.forEach(e=>e()),this.pendingCommands.length=0}updateByLibOp(e,r){e.path.length===1&&e.path[0]==="components"&&e.type===1&&this.createChildrenObjects([{...e.data.asset,id:e.id}],this.invisibleObjects,r)}updateTreeByOp(e,r){if(e.path.length===0&&e.type===7){let o=e.parent===null?this:this.find(e.parent);if(o===void 0)throw new Error("unexpected");let i=this.createObject(e.id,e.data,e.children,o,e.localIndex,r);i.updateVisible(),i.resetBBoxNeedsUpdate(),cn(i)&&Va(i.parent)&&(i.invalidateUpstreamBooleanData(),i.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markNeedsRecomputeInstancesForAncessors(o),this.markNeedsRecomputeInstancesForChildren(i),this.markToExpandCloner(i),this.markPenumbraSizeDirty(),i.updatePathSnapping()}else if(e.path.length===0&&e.type===8){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markToExpandCloner(o),o.resetBBoxNeedsUpdate(),this.unregisterObject(o);let i=o.parent;this.markNeedsRecomputeInstancesForAncessors(i),this.markNeedsRecomputeInstancesForChildren(o),this.markPenumbraSizeDirty(),o.parent.remove(o),Va(o.parent)&&(o.parent.invalidateUpstreamBooleanData(),o.parent.invalidateDownstreamBooleanData().recomputeBoolean()),cn(o)&&(o.freeBooleanPointer(),i instanceof yr&&i.invalidateDownstreamBooleanData().recomputeBoolean()),o instanceof ja&&o.detachShape(),this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(o),this.pathConstraints.removeDependencies(o.uuid),o.updatePathSnapping()}else if(e.path.length===0&&e.type===9){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markNeedsRecomputeInstancesForChildren(o);let i=o.parent;this.markNeedsRecomputeInstancesForAncessors(i),o.cloner?.resetOnMove(),this.markToExpandCloner(o);let a=e.parent===null?this:this.find(e.parent);if(a===void 0)throw new Error("unexpected");a.add(o),this.markNeedsRecomputeInstancesForAncessors(a),this.markToExpandCloner(o),o.invalidateClonerTransform(o),o.updateVisible(),o.resetBBoxNeedsUpdate(),this.markPenumbraSizeDirty();let s=e.localIndex;a.children.splice(s,0,a.children.pop()),cn(o)&&(o.invalidateUpstreamBooleanData(),Va(o.parent)?o.parent.invalidateDownstreamBooleanData().recomputeBoolean():i instanceof yr&&i.invalidateDownstreamBooleanData().recomputeBoolean()),o.updatePathSnapping()}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}get playPage(){return this.find(this.data.publish.playPage)??this.errorPage}updatePage(e){this.activePage&&this.activePage.onDeactive(),this.activePage=this.errorPage;for(let r of this.children)r instanceof dn&&(r.visible=r.uuid===e,r.visible&&(this.activePage=r,this.activePage.onActive(this)));this.activePage!==this.splatViewer?.activePage&&this.reloadSplats()}updateEntityByOp(e,r,o,i){if(r.type===0){if(("overrides"in r.props||"component"in r.props)&&this.markNeedsRecomputeInstances(),"visible"in r.props&&this.markPenumbraSizeDirty(),r.path.includes("overrides")&&"states"in r.props){let{rest:s}=r.props;r={...r,props:s},this.markNeedsRecomputeInstances()}r.path[0]==="pathSnapping"&&r.props.pathId!==void 0&&this.pathConstraints.setConstraint(e,r.props.pathId)}let a=this.find(e);if(a)try{Vx(a,r,o,{scene:this,shared:i}),a instanceof st&&a.updateGeometryGroupsIfNeeded()}catch(s){console.error(s)}}get activeCamera(){return this.activePage.activeCamera}switchActiveCamera(e){this.activePage.switchActiveCamera(e)}isInvisibleObjects(e){return e===this.invisibleObjects||e.hasAnccestor(this.invisibleObjects)}init(e,r){let o=Object.entries(r.data.lib.components).map((i,a)=>({data:i[1].asset.data,children:i[1].asset.children,id:i[0],fi:a}));this.invisibleObjects.updateState(this.invisibleObjects.data,{scene:this,shared:r}),this.add(this.invisibleObjects),this.createChildrenObjects(o,this.invisibleObjects,r),this.createChildrenObjects(e.objects,this,r),this.updatePage(e.publish.playPage),this.activePage.switchToPlayCamera(),this.expandInstances(r,!0),this.traverseEntity(i=>{Va(i)&&i.recomputeBoolean(),i instanceof Mo&&i.updateUp()}),this.doPendingExpandCloner(),this.applyPendingCommands()}markNeedsRecomputeInstances(){this.needsRecomputeInstances=!0}markNeedsRecomputeInstancesForChildren(e){e.traverseEntity(r=>{(r.data.type==="Component"||r.data.type==="Instance")&&this.markNeedsRecomputeInstances()})}markNeedsRecomputeInstancesForAncessors(e){Ae.is(e)&&(e.data.type==="Component"&&this.markNeedsRecomputeInstances(),e.traverseAncestors(r=>{Ae.is(r)&&r.data.type==="Component"&&this.markNeedsRecomputeInstances()}))}relativeizeInner(e,r,o,i,a,s,l){if(e){let d=i.find(e);d&&d!==i&&a.forInstancesRec(c=>{c.data=Vo(c.data,u=>{let p=u.events.data(l.id),f=c.goUp(s);if(f){let h=[...$s(f.identity),e].join("-"),m=this.entityIdentityToEntity[h];if(m){let y=m.uuid,g=ot.zoom(p,r);g[o]=y}else{if(!1)debugger;console.warn("cannot find instance")}}}).data})}}rewriteActions(e,r,o,i,a,s){e.forEach(l=>{l.data.type==="Transition"?this.relativeizeInner(l.data.object,[...r,l.id],"object",o,i,a,s):l.data.type==="Animation"&&this.relativeizeInner(l.data.object,[...r,l.id],"object",o,i,a,s)})}rewriteEventsBeforeGoToPlayMode(){this.traverseEntity(e=>{if(e instanceof Io&&typeof e.identity=="string"&&e.data.type==="Component")return e.traverseEntity((r,o)=>{r.data.events.forEach(i=>{if(i.data.type==="GameControl"){let a=!1;if(r.forInstancesRec(s=>{s.data=Vo(s.data,l=>{s.isInstanceRoot||(l.events.delete(i.id),a=!0)}).data}),a===!1)for(let s of Ql.list)this.rewriteActions(i.data.gameActions[s],["gameActions",s],e,r,o,i)}else i.data.type==="Conditional"?(i.data.condition.type==="Distance"?(this.relativeizeInner(i.data.condition.fromObject,["condition"],"fromObject",e,r,o,i),this.relativeizeInner(i.data.condition.toObject,["condition"],"toObject",e,r,o,i)):i.data.condition.type==="State"?this.relativeizeInner(i.data.condition.object,["condition"],"object",e,r,o,i):i.data.condition.type==="Comparison"&&(i.data.condition.lOperand.type==="Property"&&this.relativeizeInner(i.data.condition.lOperand.value[0],["condition","lOperand","value"],0,e,r,o,i),i.data.condition.rOperand.type==="Property"&&this.relativeizeInner(i.data.condition.rOperand.value[0],["condition","rOperand","value"],0,e,r,o,i)),this.rewriteActions(i.data.inActions,["inActions"],e,r,o,i),this.rewriteActions(i.data.outActions,["outActions"],e,r,o,i)):"actions"in i.data&&this.rewriteActions(i.data.actions,["actions"],e,r,o,i)})}),!0})}expandInstances(e,r,o){let i=new Set;this.traverseEntity(a=>{if(a instanceof Io&&a.isInstanceRoot)return a.expandInstanceChildren({scene:this,shared:e,pendingDeletes:i}),r||a.resetBBoxNeedsUpdate(),o&&a.traverseEntity(s=>{o.addClip(s)}),!0});for(let a of i)this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(a),iu(a)}recomputeInstances(e,r){this.needsRecomputeInstances&&(this.needsRecomputeInstances=!1,this.traverseEntity(o=>{o instanceof Io&&o.isInstanceRoot&&(o.component=void 0)}),this.expandInstances(e,!1,r))}disposeAndUnregisterEntityRecursivelyIfNotReregistered(e){e.traverseEntity(r=>{let o=typeof r.identity=="string"?r.identity:r.identity.join("-");this.entityIdentityToEntity[o]===r&&(delete this.entityByUuid[r.uuid],delete this.entityIdentityToEntity[o]),r.dispose()})}clearScene(){for(let e of this.children)Ae.is(e)&&e.disposeRecursively();this.children.length=0}resetAfterClear(e,r){this.init(e,r)}raycast(e){return this.raycast1(e,!1)}raycast1(e,r){let o=[],i=a=>{for(let s of a.children){let l=s.cloner;if(Ae.is(s)&&!s.raycastLock&&(s.visible||l?.object.data.visible))if(r===!0&&s.isInstanceRoot){let d=[];if(e.intersectObject(s,!0,d),d.length){let c=d[0];c.object=s,c.point.applyMatrix4(c.object.matrixWorld);let u=s.matrixWorld.clone().invert();c.point.applyMatrix4(u),o.push(c)}}else(cn(s)||zs(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,o),Us(s,e,o)),i(s)}};return i(this),o}raycastWithClones(e){let r=[],o=i=>{for(let a of i.children){let s=a.cloner;Ae.is(a)&&(a.visible||s?.object.data.visible)&&((cn(a)||zs(a)&&this.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,r),Us(a,e,r,!0)),o(a))}};return o(this),r}forEachEntity(e){for(let r of this.children)Ae.is(r)&&e(r)}traverseConcreteEntity(e){for(let r of this.children)Ae.is(r)&&r.isConcreteEntity&&r.traverseEntity(e)}traverseEntity(e){for(let r of this.children)Ae.is(r)&&r.traverseEntity(e)}updateFont(e,r){this.traverseEntity(o=>{if(o instanceof st&&o.data.type==="Mesh"&&o.data.geometry.type==="TextGeometry"&&o.data.geometry.font===e){let i=o.geometry,a=o.data.geometry;i.updateFont(e,r).then(()=>{i.update(a);let s=o.invalidateDownstreamBooleanData();Va(s)&&s.recomputeBoolean()})}})}traverseObject(e){for(let r of this.children)Gi.is(r)&&r.traverseObject(e)}traverseVisibleEntity(e){for(let r of this.children)Ae.is(r)&&r.visible&&r.traverseVisibleEntity(e)}dispose(){this.clearScene()}createChildrenObjects(e,r,o){let i=0;for(let a of e)this.createObject(a.id,a.data,a.children,r,i,o),i+=1}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createObject(e,r,o,i,a,s){let l={scene:this,shared:s},d=su(e,r,l);return d&&(this.entityByUuid[e]=d,i.add(d),i.children.splice(a,0,i.children.pop()),o.length>0&&(d.isInstanceRoot?console.error("instance should not have children!"):this.createChildrenObjects(o,d,s)),d.updateState(r,l),d instanceof st&&d.updateGeometryGroupsIfNeeded(),d.updateVisible(),d.cloner&&this.toExpandCloner.add(d),r.pathSnapping?.pathId&&this.pathConstraints.setConstraint(e,r.pathSnapping.pathId)),r.type==="Empty"&&r.animations&&d.traverseEntity(c=>{let u=c.dataPatched;if(c instanceof st&&u.bones&&u.boneInverses){let p=u.bones.map(m=>this.find(m)),f=u.boneInverses.map(m=>new sN().fromArray(m)),h=new uN(p,f);c.bind(h,c.bindMatrix)}else c.matrixAutoUpdate=!0}),d}getCenter(e){let r=[];for(let i=0,a=e.length;i<a;++i){let{id:s,recursive:l}=e[i],d=this.find(s),c=l?d.recursiveBBox:d.singleBBox;r.push(...c.vertices)}let o=new lN;return o.setFromPoints(r),o.getCenter(_v),_v}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof It)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Zt&&e(r.material[o]);else r.material instanceof Zt&&e(r.material)})}updateViewPlaneSize(e,r,o=!1){this.traverseConcreteEntity(i=>{i instanceof Mo&&i.setViewplaneSize(e,r,o)})}initializeSplatViewer(e){this.splatViewer=new Hs({scene:this,renderer:e}),this.reloadSplats()}reloadSplats(){this.splatViewer?.reloadSplats()}};import{DRACOLoader as pN}from"three/examples/jsm/loaders/DRACOLoader.js";var gn;function fN(){return gn||(gn=new pN,gn.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),gn.decoderPending}async function hN(n){if(gn){let t={attributeIDs:gn.defaultAttributeIDs,attributeTypes:gn.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await gn.decodeGeometry(new Int8Array(n).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function Av(n,t){let[e,r]=Pu(Bl.deserialize(new Uint8Array(n)));ec(e);let o=[];e.scene.objects.traverse((i,a)=>{a.type==="Mesh"&&a.geometry.type==="NonParametricGeometry"&&a.geometry.data.draco!==void 0&&o.push(a)}),o.length&&await fN();for(let i of o){let a=await hN(Ye(i.geometry.data.draco));if(a){a.index&&(i.geometry.data.index={array:a.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let s={};a.attributes.forEach(({name:l,array:d,itemSize:c})=>{s[l]={array:d,itemSize:c,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=s,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}import{Mesh as zne}from"three";import{mergeBufferGeometries as jne}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Tv(n){let t;if(!!n.index)for(let e=0;e<n.index.array.length;e+=3)t=n.index.array[e],n.index.array[e]=n.index.array[e+2],n.index.array[e+2]=t}import{Color as Cv,ShaderLib as mN}from"three";function Pv(n){let t=new Set;return n.traverse(e=>{if(e instanceof Jt)if(Ze(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(yN(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Cv,specularColor:new Cv});let o=0;e.onBeforeCompile=(i,a)=>{r&&r(i,a),i.uniforms=Object.assign({},mN.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(s=>{if(i.uniforms.transmissionSamplerMap.value){let l=s.color;l&&(l.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value,l.aspectRatio.value=O0(window.innerWidth,window.innerHeight),e.defines.IS_THREEJS_EXPORT=!0)}else o++,o<2&&(e.needsUpdate=!0)})}}else gN(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function yN(n){return n.getLayersOfType("transmission").length>0}function gN(n){let t=0;for(let e of n.layers){if(e.data.type!=="displace"&&e.data.isMask)return!0;if(e.type!=="light"&&e.type!=="fresnel"){let o=e.uniforms["f"+e.id+"_alpha"];o&&(t+=(1-t)*o.value)}}return t<1}function Ov(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function Mv(n){let t=[],e=(r,o=0)=>{let i=o>0?r+o:r;return t.includes(i)?e(r,o+1):i};return n.traverse(r=>{if(t.includes(r.name)){let o=r.name,i=e(r.name);if(r.name=i,r.isMesh){let a=r;a.material instanceof Array?a.material.forEach(s=>{s.name=s.name.replace(o,i)}):a.material.isAsset||(a.material.name=a.material.name.replace(o,i))}}t.push(r.name)}),n}import{mergeBufferGeometries as xN}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Iv(n){let t=[];return n.traverse(e=>{e instanceof La&&t.push(e)}),t.forEach(e=>{let r=e.object,a=[...e.children.map(s=>{s.updateMatrix();let l;if(s.geometry!==void 0)try{l=s.geometry.clone().applyMatrix4(s.matrix)}catch(d){console.error(d)}return l!==void 0&&s.matrix.determinant()<0&&Tv(l),l}).filter(s=>s!==void 0)];if(!e.parameters.hideBase&&r instanceof It&&a.unshift(r.geometry),a.length){let s=xN(a);r instanceof It&&(r.geometry=s)}e.removeFromParent(),r.setFromClonerState(null,{scene:n,shared:q0})}),n}function Nv(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function Ev(n){Object.values(n.shared.materials).forEach(t=>{Qp(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?Qp(e.material):"materials"in e&&e.materials.forEach(r=>{Qp(r)})})}function Qp(n){if(typeof n=="string")return;let t=[];n.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{n.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var Vv=Rt(Dv(),1);function Bv(n){return n.traverseMaterial(t=>{t.needsJitter=!1}),n}var Rv="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Zp=class extends bN{load(t,e,r,o=console.error){let i=new vN(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(Rv+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(Rv),i.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let s=await this.parse(a);e(s)}catch(s){o(s)}},r,o)}async parse(t){let e=await Av(t,Ev);e.version&&(0,Vv.default)(e.version,"0.9.521")>0&&console.warn("Your .splinecode file is more recent than the library. Please upgrade @splinetool/loader to the latest version."),await Promise.all([J0(e)&&i0(),ux(e)&&j0()].filter(Boolean));let r=new jn(e.shared);Object.values(r.getMaterials()).forEach(a=>Object.assign(a,{isAsset:!0}));let o=new hu(e.scene,r),i=o.activeCamera;return i&&Object.assign(i,{makeDefault:!0}),o=Iv(o),o=Pv(o),o=Ov(o),o=Mv(o),o=Nv(o),o=Bv(o),o}};export{Zp as default};
2780
+ }`,i={covariancesTexture:{type:"t",value:null},centersColorsTexture:{type:"t",value:null},meshIndexIntervals:{value:e},meshMatrixWorldsTexture:{type:"t",value:null},focal:{type:"v2",value:new mn},viewport:{type:"v2",value:new mn},basisViewport:{type:"v2",value:new mn},debugColor:{type:"v3",value:new qI},covariancesTextureSize:{type:"v2",value:new mn(1024,1024)},centersColorsTextureSize:{type:"v2",value:new mn(1024,1024)},orthoZoom:{type:"f",value:-1}};return new rN({uniforms:i,vertexShader:r,fragmentShader:o,transparent:!0,alphaTest:1,blending:JI,depthTest:!0,depthWrite:!1,side:$I})}static buildGeomtery(e){let r=new HI;r.setIndex([0,1,2,0,2,3]);let o=new Float32Array(4*3),i=new UI(o,3);r.setAttribute("position",i),i.setXYZ(0,-1,-1,0),i.setXYZ(1,-1,1,0),i.setXYZ(2,1,1,0),i.setXYZ(3,1,-1,0),i.needsUpdate=!0;let a=new QI().copy(r),s=new Uint32Array(e),l=new KI(s,1,!1);return l.setUsage(YI),a.setAttribute("splatIndex",l),a.instanceCount=e,a}resetLocalSplatDataAndTexturesFromSplatBuffer(){this.updateLocalSplatDataFromSplatBuffer(),this.allocateAndStoreLocalSplatDataInTextures()}updateLocalSplatDataFromSplatBuffer(){this.splatBuffers.forEach(i=>i.buildPreComputedBuffers()),this.covariances=new Float32Array(this.splatCount*6),this.colors=new Uint8Array(this.splatCount*4),this.centers=new Float32Array(this.splatCount*3);let e=0,r=0,o=0;for(let i of this.splatBuffers){let a=i.nsplats;this.colors.subarray(e,e+a*4).set(i.colorsA),e+=a*4,this.centers.subarray(r,r+a*3).set(i.decoded.xyz.denormDequant().data),r+=a*3,this.covariances.subarray(o,o+a*6).set(new Float32Array(i.precomputedCovarianceBufferData)),o+=a*6}}allocateAndStoreLocalSplatDataInTextures(){let o=this.splatCount,i=new mn(4096,1024);for(;i.x*i.y*2<o*6;)i.y*=2;let a=new mn(4096,1024);for(;a.x*a.y*4<o*4;)a.y*=2;let s,l;if(this.halfPrecisionCovariancesOnGPU){l=new Uint16Array(i.x*i.y*2);for(let h=0;h<this.covariances.length;h++)l[h]=WI.toHalfFloat(this.covariances[h]);s=new pu(l,i.x,i.y,Sv,XI)}else l=new Float32Array(i.x*i.y*2),l.set(this.covariances),s=new pu(l,i.x,i.y,Sv,bv);s.needsUpdate=!0,this.material.uniforms.covariancesTexture.value=s,this.material.uniforms.covariancesTextureSize.value.copy(i);let d=new Uint32Array(a.x*a.y*4);for(let h=0;h<o;h++){let m=h*4,y=h*3,g=h*4;d[g]=vv(this.colors[m],this.colors[m+1],this.colors[m+2],this.colors[m+3]),d[g+1]=du(this.centers[y]),d[g+2]=du(this.centers[y+1]),d[g+3]=du(this.centers[y+2])}let c=new pu(d,a.x,a.y,tN,oN);c.internalFormat="RGBA32UI",c.needsUpdate=!0,this.material.uniforms.centersColorsTexture.value=c,this.material.uniforms.centersColorsTextureSize.value.copy(a);let u=256*4,p=new Float32Array(256*16);for(let h=0;h<this.meshMatrixWorlds.length;h++)p.set(this.meshMatrixWorlds[h].elements,h*16);let f=new pu(p,u,1,eN,bv);f.needsUpdate=!0,this.material.uniforms.meshMatrixWorldsTexture.value=f,this.material.uniformsNeedUpdate=!0,this.splatDataTextures={covariances:{data:l,texture:s,size:i},centerColors:{data:d,texture:c,size:a},meshMatrixWorlds:{data:p,texture:f}}}updateIndexes(e){let r=this.geometry;r.attributes.splatIndex.set(e),r.attributes.splatIndex.needsUpdate=!0,r.instanceCount=e.length}updateUniforms(e,r,o,i){this.splatCount>0&&(fu.set(e.x*this.devicePixelRatio,e.y*this.devicePixelRatio),this.material.uniforms.viewport.value.copy(fu),this.material.uniforms.basisViewport.value.set(2/fu.x,2/fu.y),this.material.uniforms.focal.value.set(r,o),this.material.uniforms.orthoZoom.value=i,this.material.uniformsNeedUpdate=!0)}getSplatDataTextures(){return this.splatDataTextures}getSplatCount(){return this.splatCount}getCenters(){return this.centers}getColors(){return this.colors}getCovariances(){return this.covariances}dispose(){this.geometry.dispose(),this.material.dispose(),this.splatDataTextures&&(this.splatDataTextures.covariances.texture.dispose(),this.splatDataTextures.centerColors.texture.dispose(),this.splatDataTextures.meshMatrixWorlds.texture.dispose())}};var Hs=class{constructor(t={}){yt(this,"updateSplatMeshUniforms",function(){let t=new iN;return function(){if(this.splatMesh===null)return;this.splatMesh.getSplatCount()>0&&(this.renderer.getSize(t),this.cameraFocalLengthX=this.camera.projectionMatrix.elements[0]*this.devicePixelRatio*t.x*.45,this.cameraFocalLengthY=this.camera.projectionMatrix.elements[5]*this.devicePixelRatio*t.y*.45,this.splatMesh.updateUniforms(t,this.cameraFocalLengthX,this.cameraFocalLengthY,this.camera.isPerspectiveCamera?-1:this.camera.zoom*this.devicePixelRatio))}}());yt(this,"updateView",function(){let t=new nN,e=[],r=new Ha(0,0,-1),o=new Ha(0,0,-1),i=new Ha,a=new Ha;return function(s=!1){let l=this.updateMatrixWorldsInWorkerIfNeeded(),d=this.cropsChanged();if(!s){o.set(0,0,-1).applyQuaternion(this.camera.quaternion);let u=!1,p=!1;if(o.dot(r)<=.95&&(u=!0),a.copy(this.camera.position).sub(i).length()>=1&&(p=!0),!u&&!p&&!l&&!d)return}i.copy(this.camera.position),r.copy(o),t.copy(this.camera.matrixWorld).invert(),t.premultiply(this.camera.perspCamera.projectionMatrix),e[0]=this.camera.position.x,e[1]=this.camera.position.y,e[2]=this.camera.position.z;let c={sort:{view:t.elements,cameraPosition:e,splatRenderCount:this.splatRenderCount,splatSortCount:this.splatRenderCount},...l?{newMatrixWorlds:this.meshMatrixWorlds}:{},...d?{newCropsArray:this.cropsArray}:{}};this.sortRunning?this.queuedMessage=c:(this.queuedMessage=null,this.sortRunning=!0,this.sortWorker.postMessage(c))}}());this.scene=t.scene,this.currentPage=null,this.renderer=t.renderer,this.devicePixelRatio=window.devicePixelRatio,this.sortWorker=null,this.splatRenderCount=0,this.splatSortCount=0,this.splatMesh=null,this.sortRunning=!1,this.splatRenderingInitialized=!1,this.meshMatrixWorlds=null,this.meshMatrixWorldsOld=null,this.cropsArray=null,this.splatEntries=null,this.queuedMessage=null}get camera(){return this.scene.activeCamera}reloadSplats(){this.splatRenderingInitialized=!1;let t=this.loadSplat();this.renderer.pipeline.opaquePass.splatViewer=t?this:null}loadSplat(t={}){this.activePage=this.scene.activePage,t.position&&(t.position=new Ha().fromArray(t.position)),t.orientation&&(t.orientation=new wv().fromArray(t.orientation)),t.halfPrecisionCovariances=!!t.halfPrecisionCovariances;let e=[];if(this.splatEntries=e,this.activePage.traverseEntity(a=>{if(a.data.type==="Splat"){let s=a.visible;a.traverseAncestors(l=>{s&&(s=l.visible)}),s&&e.push(a)}}),this.splatMesh&&this.splatMesh.dispose(),e.length===0)return this.splatMesh=null,!1;this.meshMatrixWorlds=e.map(a=>a.matrixWorld),this.meshMatrixWorldsOld=e.map(a=>a.matrixWorld.clone()),this.cropsArray=e.map(a=>a.data.crops.map(s=>s.data));let r=e.map(a=>new hn(new Uint8Array(a.data.buffer).buffer)),o=0,i=[0];for(let a of r)o+=a.getSplatCount(),i.push(o);return this.setupSplatMesh(r,o,t.position,t.orientation,t.halfPrecisionCovariances,this.devicePixelRatio,i,this.meshMatrixWorlds),this.setupSortWorker(o),!0}updateMatrixWorldsInWorkerIfNeeded(){let t=this.splatDataTextures.meshMatrixWorlds.data;for(let e=0;e<this.meshMatrixWorlds.length;e++)t.set(this.meshMatrixWorlds[e].elements,e*16);return this.splatDataTextures.meshMatrixWorlds.texture.needsUpdate=!0,this.meshMatrixWorlds.every((e,r)=>e.equals(this.meshMatrixWorldsOld[r]))?!1:(this.meshMatrixWorldsOld=this.meshMatrixWorlds.map(e=>e.clone()),!0)}cropsChanged(){let t=!1;return this.splatEntries.forEach((e,r)=>{e.data.crops.forEach((o,i)=>{this.cropsArray[r][i]===void 0?(t=!0,this.cropsArray[r][i]=o.data):Object.entries(o.data).forEach(([a,s])=>{Array.isArray(s)&&s.some((l,d)=>l!==this.cropsArray[r][i][a][d])?(t=!0,this.cropsArray[r][i][a]=s):s!==this.cropsArray[r][i]?.[a]&&(t=!0,this.cropsArray[r][i][a]=s)})}),e.data.crops.length!==this.cropsArray[r]?.length&&(this.cropsArray[r].length=e.data.crops.length,t=!0)}),t}setupSplatMesh(t,e,r=new Ha,o=new wv,i=!1,a=1,s,l){this.splatMesh=yn.buildMesh(t,e,i,a,s,l),this.splatMesh.position.copy(r),this.splatMesh.quaternion.copy(o),this.splatMesh.frustumCulled=!1,this.splatMesh.renderOrder=10,this.updateSplatMeshUniforms(),this.splatRenderCount=e}setupSortWorker(t){this.sortWorker=xv(t),this.sortWorker.onmessage=e=>{e.data.sortDone?(this.sortRunning=!1,this.splatMesh?.updateIndexes(new Uint32Array(e.data.indexesBuffer)),this.lastSortTime=e.data.sortTime,this.queuedMessage&&(this.sortWorker.postMessage(this.queuedMessage),this.queuedMessage=null)):e.data.sortCanceled?this.sortRunning=!1:e.data.sortSetupPhase1Complete?this.sortWorker.postMessage({positions:this.splatMesh.getCenters().buffer,meshMatrixWorlds:this.splatMesh.meshMatrixWorlds,meshIndexIntervals:this.splatMesh.meshIndexIntervals,cropsArray:this.cropsArray}):e.data.sortSetupComplete&&(this.splatDataTextures=this.splatMesh.getSplatDataTextures(),this.updateView(!0,!0),this.splatRenderingInitialized=!0)}}update(){this.splatRenderingInitialized!==!1&&(this.updateSplatMeshUniforms(),this.updateView())}getSplatMesh(){return this.splatMesh}};var pN=new uN;pN.wireframe=!0;var _v=new sN,hu=class extends aN{constructor(e,r){super();this.data=e;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.geometryCacheChanged=!1;this.splatViewer=null;this.entityByUuid={};this.entityIdentityToEntity={};this.toExpandCloner=new Set;this.toUpdateCloner=new Set;this.pendingCommands=[];this.pathConstraints=new lu;this.errorPage=new dn("fdasfa",{...xo.defaultData,name:""});this.invisibleObjects=new un("jflkdsafjasdifjaslk",{...$l.defaultData,visible:!1,name:"buildin invisible"});this.needsRecomputeInstances=!1;this.init(e,r),this.matrixAutoUpdate=!1}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Fx(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=kx(this),this.needsNormalDirty=!1),this._needsNormal}registerInstanceAndSetUuid(e){let r=e.identity.join("-"),o=this.entityIdentityToEntity[r];o&&(e.uuid=o.uuid),this.entityIdentityToEntity[r]=e,this.entityByUuid[e.uuid]=e}markPenumbraSizeDirty(){for(let e of this.children)e instanceof dn&&(e.penumbraSizeArrayCache=null)}findInstance(e){return this.entityIdentityToEntity[e.join("-")]}get bgColor(){return this.activePage.bgColor}get postprocessing(){return this.activePage.data.postprocessing}getWithSortKey(e){let r=this.find(e);if(r===void 0)return;let o=[],i=r;for(;i!==this;){let a=i;i=i.parent;let s=i.children.indexOf(a);o.splice(0,0,s)}return{entity:r,sortKey:o}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push(i)}return r.sort((o,i)=>tf(o.sortKey,i.sortKey)),r.map(o=>o.entity)}nonExistOrDescendantOf(e,r){let o=this.find(e);if(o===void 0)return!0;for(;o;){if(o.uuid===r)return!0;o=o.parent}return!1}find(e){if(this.activePage&&this.activePage.personalCamera.parent){if(e==="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera")return this.activePage.personalCamera;if(e===Uo)return this.activePage.personalCamera}if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}debugEnsureEntity(e){let r=this.find(e);if(r){if(Array.isArray(r.identity)&&this.findInstance(r.identity)===void 0){console.error("not found instance");debugger}}else{console.error("not found");debugger}}addPendingExpandCloner(e){this.toExpandCloner.add(e)}addPendingUpdateCloner(e){this.toUpdateCloner.add(e)}markToExpandCloner(e){this.toExpandCloner.add(e),e.traverseEntityAncestors(r=>{this.toExpandCloner.add(r)})}doPendingExpandCloner(){this.toExpandCloner.forEach(e=>{e.expandCloner(this)}),this.toExpandCloner.clear()}doPendingUpdateCloner(){this.toUpdateCloner.forEach(e=>{e.cloner?.update()}),this.toUpdateCloner.clear()}doPendingUpdates(){this.doPendingExpandCloner(),this.doPendingUpdateCloner(),this.applyPendingCommands()}addPendingCommand(e){this.pendingCommands.push(e)}applyPendingCommands(){this.pendingCommands.forEach(e=>e()),this.pendingCommands.length=0}updateByLibOp(e,r){e.path.length===1&&e.path[0]==="components"&&e.type===1&&this.createChildrenObjects([{...e.data.asset,id:e.id}],this.invisibleObjects,r)}updateTreeByOp(e,r){if(e.path.length===0&&e.type===7){let o=e.parent===null?this:this.find(e.parent);if(o===void 0)throw new Error("unexpected");let i=this.createObject(e.id,e.data,e.children,o,e.localIndex,r);i.updateVisible(),i.resetBBoxNeedsUpdate(),cn(i)&&Gs(i.parent)&&(i.invalidateUpstreamBooleanData(),i.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markNeedsRecomputeInstancesForAncessors(o),this.markNeedsRecomputeInstancesForChildren(i),this.markToExpandCloner(i),this.markPenumbraSizeDirty(),i.updatePathSnapping()}else if(e.path.length===0&&e.type===8){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markToExpandCloner(o),o.resetBBoxNeedsUpdate(),this.unregisterObject(o);let i=o.parent;this.markNeedsRecomputeInstancesForAncessors(i),this.markNeedsRecomputeInstancesForChildren(o),this.markPenumbraSizeDirty(),o.parent.remove(o),Gs(o.parent)&&(o.parent.invalidateUpstreamBooleanData(),o.parent.invalidateDownstreamBooleanData().recomputeBoolean()),cn(o)&&(o.freeBooleanPointer(),i instanceof er&&i.invalidateDownstreamBooleanData().recomputeBoolean()),o instanceof Fa&&o.detachShape(),this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(o),this.pathConstraints.removeDependencies(o.uuid),o.updatePathSnapping()}else if(e.path.length===0&&e.type===9){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markNeedsRecomputeInstancesForChildren(o);let i=o.parent;this.markNeedsRecomputeInstancesForAncessors(i),o.cloner?.resetOnMove(),this.markToExpandCloner(o);let a=e.parent===null?this:this.find(e.parent);if(a===void 0)throw new Error("unexpected");a.add(o),this.markNeedsRecomputeInstancesForAncessors(a),this.markToExpandCloner(o),o.invalidateClonerTransform(o),o.updateVisible(),o.resetBBoxNeedsUpdate(),this.markPenumbraSizeDirty();let s=e.localIndex;a.children.splice(s,0,a.children.pop()),cn(o)&&(o.invalidateUpstreamBooleanData(),Gs(o.parent)?o.parent.invalidateDownstreamBooleanData().recomputeBoolean():i instanceof er&&i.invalidateDownstreamBooleanData().recomputeBoolean()),o.updatePathSnapping()}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}get playPage(){return this.find(this.data.publish.playPage)??this.errorPage}updatePage(e){this.activePage&&this.activePage.onDeactive(),this.activePage=this.errorPage;for(let r of this.children)r instanceof dn&&(r.visible=r.uuid===e,r.visible&&(this.activePage=r,this.activePage.onActive(this)));this.activePage!==this.splatViewer?.activePage&&this.reloadSplats()}updateEntityByOp(e,r,o,i){if(r.type===0){if(("overrides"in r.props||"component"in r.props)&&this.markNeedsRecomputeInstances(),"visible"in r.props&&this.markPenumbraSizeDirty(),r.path.includes("overrides")&&"states"in r.props){let{rest:s}=r.props;r={...r,props:s},this.markNeedsRecomputeInstances()}r.path[0]==="pathSnapping"&&r.props.pathId!==void 0&&this.pathConstraints.setConstraint(e,r.props.pathId)}let a=this.find(e);if(a)try{Vx(a,r,o,{scene:this,shared:i}),a instanceof st&&a.updateGeometryGroupsIfNeeded()}catch(s){console.error(s)}}get activeCamera(){return this.activePage.activeCamera}switchActiveCamera(e){this.activePage.switchActiveCamera(e)}isInvisibleObjects(e){return e===this.invisibleObjects||e.hasAnccestor(this.invisibleObjects)}init(e,r){let o=Object.entries(r.data.lib.components).map((i,a)=>({data:i[1].asset.data,children:i[1].asset.children,id:i[0],fi:a}));this.invisibleObjects.updateState(this.invisibleObjects.data,{scene:this,shared:r}),this.add(this.invisibleObjects),this.createChildrenObjects(o,this.invisibleObjects,r),this.createChildrenObjects(e.objects,this,r),this.updatePage(e.publish.playPage),this.activePage.switchToPlayCamera(),this.expandInstances(r,!0),this.traverseEntity(i=>{i instanceof Mo&&i.updateUp()}),this.doPendingExpandCloner(),this.applyPendingCommands()}markNeedsRecomputeInstances(){this.needsRecomputeInstances=!0}markNeedsRecomputeInstancesForChildren(e){e.traverseEntity(r=>{(r.data.type==="Component"||r.data.type==="Instance")&&this.markNeedsRecomputeInstances()})}markNeedsRecomputeInstancesForAncessors(e){Ae.is(e)&&(e.data.type==="Component"&&this.markNeedsRecomputeInstances(),e.traverseAncestors(r=>{Ae.is(r)&&r.data.type==="Component"&&this.markNeedsRecomputeInstances()}))}relativeizeInner(e,r,o,i,a,s,l){if(e){let d=i.find(e);d&&d!==i&&a.forInstancesRec(c=>{c.data=Vo(c.data,u=>{let p=u.events.data(l.id),f=c.goUp(s);if(f){let h=[...$s(f.identity),e].join("-"),m=this.entityIdentityToEntity[h];if(m){let y=m.uuid,g=ot.zoom(p,r);g[o]=y}else{if(!1)debugger;console.warn("cannot find instance")}}}).data})}}rewriteActions(e,r,o,i,a,s){e.forEach(l=>{l.data.type==="Transition"?this.relativeizeInner(l.data.object,[...r,l.id],"object",o,i,a,s):l.data.type==="Animation"&&this.relativeizeInner(l.data.object,[...r,l.id],"object",o,i,a,s)})}rewriteEventsBeforeGoToPlayMode(){this.traverseEntity(e=>{if(e instanceof Io&&typeof e.identity=="string"&&e.data.type==="Component")return e.traverseEntity((r,o)=>{r.data.events.forEach(i=>{if(i.data.type==="GameControl"){let a=!1;if(r.forInstancesRec(s=>{s.data=Vo(s.data,l=>{s.isInstanceRoot||(l.events.delete(i.id),a=!0)}).data}),a===!1)for(let s of Ql.list)this.rewriteActions(i.data.gameActions[s],["gameActions",s],e,r,o,i)}else i.data.type==="Conditional"?(i.data.condition.type==="Distance"?(this.relativeizeInner(i.data.condition.fromObject,["condition"],"fromObject",e,r,o,i),this.relativeizeInner(i.data.condition.toObject,["condition"],"toObject",e,r,o,i)):i.data.condition.type==="State"?this.relativeizeInner(i.data.condition.object,["condition"],"object",e,r,o,i):i.data.condition.type==="Comparison"&&(i.data.condition.lOperand.type==="Property"&&this.relativeizeInner(i.data.condition.lOperand.value[0],["condition","lOperand","value"],0,e,r,o,i),i.data.condition.rOperand.type==="Property"&&this.relativeizeInner(i.data.condition.rOperand.value[0],["condition","rOperand","value"],0,e,r,o,i)),this.rewriteActions(i.data.inActions,["inActions"],e,r,o,i),this.rewriteActions(i.data.outActions,["outActions"],e,r,o,i)):"actions"in i.data&&this.rewriteActions(i.data.actions,["actions"],e,r,o,i)})}),!0})}expandInstances(e,r,o){let i=new Set;this.traverseEntity(a=>{if(a instanceof Io&&a.isInstanceRoot)return a.expandInstanceChildren({scene:this,shared:e,pendingDeletes:i}),r||a.resetBBoxNeedsUpdate(),o&&a.traverseEntity(s=>{o.addClip(s)}),!0});for(let a of i)this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(a),iu(a)}recomputeInstances(e,r){this.needsRecomputeInstances&&(this.needsRecomputeInstances=!1,this.traverseEntity(o=>{o instanceof Io&&o.isInstanceRoot&&(o.component=void 0)}),this.expandInstances(e,!1,r))}disposeAndUnregisterEntityRecursivelyIfNotReregistered(e){e.traverseEntity(r=>{let o=typeof r.identity=="string"?r.identity:r.identity.join("-");this.entityIdentityToEntity[o]===r&&(delete this.entityByUuid[r.uuid],delete this.entityIdentityToEntity[o]),r.dispose()})}clearScene(){for(let e of this.children)Ae.is(e)&&e.disposeRecursively();this.children.length=0}resetAfterClear(e,r){this.init(e,r)}raycast(e){return this.raycast1(e,!1)}raycast1(e,r){let o=[],i=a=>{for(let s of a.children){let l=s.cloner;if(Ae.is(s)&&!s.raycastLock&&(s.visible||l?.object.data.visible))if(r===!0&&s.isInstanceRoot){let d=[];if(e.intersectObject(s,!0,d),d.length){let c=d[0];c.object=s,c.point.applyMatrix4(c.object.matrixWorld);let u=s.matrixWorld.clone().invert();c.point.applyMatrix4(u),o.push(c)}}else(cn(s)||zs(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,o),Us(s,e,o)),i(s)}};return i(this),o}raycastWithClones(e){let r=[],o=i=>{for(let a of i.children){let s=a.cloner;Ae.is(a)&&(a.visible||s?.object.data.visible)&&((cn(a)||zs(a)&&this.enableHelpers&&a.objectHelper.visible)&&(e.intersectObject(a,!1,r),Us(a,e,r,!0)),o(a))}};return o(this),r}forEachEntity(e){for(let r of this.children)Ae.is(r)&&e(r)}traverseConcreteEntity(e){for(let r of this.children)Ae.is(r)&&r.isConcreteEntity&&r.traverseEntity(e)}traverseEntity(e){for(let r of this.children)Ae.is(r)&&r.traverseEntity(e)}updateFont(e,r){this.traverseEntity(o=>{if(o instanceof st&&o.data.type==="Mesh"&&o.data.geometry.type==="TextGeometry"&&o.data.geometry.font===e){let i=o.geometry,a=o.data.geometry;i.updateFont(e,r).then(()=>{i.update(a);let s=o.invalidateDownstreamBooleanData();Gs(s)&&s.recomputeBoolean()})}})}traverseObject(e){for(let r of this.children)Gi.is(r)&&r.traverseObject(e)}traverseVisibleEntity(e){for(let r of this.children)Ae.is(r)&&r.visible&&r.traverseVisibleEntity(e)}dispose(){this.clearScene()}createChildrenObjects(e,r,o){let i=0;for(let a of e)this.createObject(a.id,a.data,a.children,r,i,o),i+=1}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createObject(e,r,o,i,a,s){let l={scene:this,shared:s},d=su(e,r,l);return d&&(this.entityByUuid[e]=d,i.add(d),i.children.splice(a,0,i.children.pop()),o.length>0&&(d.isInstanceRoot?console.error("instance should not have children!"):this.createChildrenObjects(o,d,s)),d.updateState(r,l),d instanceof st&&d.updateGeometryGroupsIfNeeded(),d.updateVisible(),d.cloner&&this.toExpandCloner.add(d),r.pathSnapping?.pathId&&this.pathConstraints.setConstraint(e,r.pathSnapping.pathId)),r.type==="Empty"&&r.animations&&d.traverseEntity(c=>{let u=c.dataPatched;if(c instanceof st&&u.bones&&u.boneInverses){let p=u.bones.map(m=>this.find(m)),f=u.boneInverses.map(m=>new lN().fromArray(m)),h=new dN(p,f);c.bind(h,c.bindMatrix)}else c.matrixAutoUpdate=!0}),d}getCenter(e){let r=[];for(let i=0,a=e.length;i<a;++i){let{id:s,recursive:l}=e[i],d=this.find(s),c=l?d.recursiveBBox:d.singleBBox;r.push(...c.vertices)}let o=new cN;return o.setFromPoints(r),o.getCenter(_v),_v}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof It)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Zt&&e(r.material[o]);else r.material instanceof Zt&&e(r.material)})}updateViewPlaneSize(e,r,o=!1){this.traverseConcreteEntity(i=>{i instanceof Mo&&i.setViewplaneSize(e,r,o)})}initializeSplatViewer(e){this.splatViewer=new Hs({scene:this,renderer:e}),this.reloadSplats()}reloadSplats(){this.splatViewer?.reloadSplats()}};import{DRACOLoader as fN}from"three/examples/jsm/loaders/DRACOLoader.js";var gn;function hN(){return gn||(gn=new fN,gn.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),gn.decoderPending}async function mN(n){if(gn){let t={attributeIDs:gn.defaultAttributeIDs,attributeTypes:gn.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await gn.decodeGeometry(new Int8Array(n).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function Av(n,t){let[e,r]=Pu(Bl.deserialize(new Uint8Array(n)));ec(e);let o=[];e.scene.objects.traverse((i,a)=>{a.type==="Mesh"&&a.geometry.type==="NonParametricGeometry"&&a.geometry.data.draco!==void 0&&o.push(a)}),o.length&&await hN();for(let i of o){let a=await mN(Ye(i.geometry.data.draco));if(a){a.index&&(i.geometry.data.index={array:a.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let s={};a.attributes.forEach(({name:l,array:d,itemSize:c})=>{s[l]={array:d,itemSize:c,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=s,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}import{Mesh as Gne}from"three";import{mergeBufferGeometries as Fne}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Tv(n){let t;if(!!n.index)for(let e=0;e<n.index.array.length;e+=3)t=n.index.array[e],n.index.array[e]=n.index.array[e+2],n.index.array[e+2]=t}import{Color as Cv,ShaderLib as yN}from"three";function Pv(n){let t=new Set;return n.traverse(e=>{if(e instanceof Jt)if(Ze(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(gN(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Cv,specularColor:new Cv});let o=0;e.onBeforeCompile=(i,a)=>{r&&r(i,a),i.uniforms=Object.assign({},yN.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(s=>{if(i.uniforms.transmissionSamplerMap.value){let l=s.color;l&&(l.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value,l.aspectRatio.value=O0(window.innerWidth,window.innerHeight),e.defines.IS_THREEJS_EXPORT=!0)}else o++,o<2&&(e.needsUpdate=!0)})}}else xN(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function gN(n){return n.getLayersOfType("transmission").length>0}function xN(n){let t=0;for(let e of n.layers){if(e.data.type!=="displace"&&e.data.isMask)return!0;if(e.type!=="light"&&e.type!=="fresnel"){let o=e.uniforms["f"+e.id+"_alpha"];o&&(t+=(1-t)*o.value)}}return t<1}function Ov(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function Mv(n){let t=[],e=(r,o=0)=>{let i=o>0?r+o:r;return t.includes(i)?e(r,o+1):i};return n.traverse(r=>{if(t.includes(r.name)){let o=r.name,i=e(r.name);if(r.name=i,r.isMesh){let a=r;a.material instanceof Array?a.material.forEach(s=>{s.name=s.name.replace(o,i)}):a.material.isAsset||(a.material.name=a.material.name.replace(o,i))}}t.push(r.name)}),n}import{mergeBufferGeometries as vN}from"three/examples/jsm/utils/BufferGeometryUtils.js";function Iv(n){let t=[];return n.traverse(e=>{e instanceof Da&&t.push(e)}),t.forEach(e=>{let r=e.object,a=[...e.children.map(s=>{s.updateMatrix();let l;if(s.geometry!==void 0)try{l=s.geometry.clone().applyMatrix4(s.matrix)}catch(d){console.error(d)}return l!==void 0&&s.matrix.determinant()<0&&Tv(l),l}).filter(s=>s!==void 0)];if(!e.parameters.hideBase&&r instanceof It&&a.unshift(r.geometry),a.length){let s=vN(a);r instanceof It&&(r.geometry=s)}e.removeFromParent(),r.setFromClonerState(null,{scene:n,shared:q0})}),n}function Nv(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function Ev(n){Object.values(n.shared.materials).forEach(t=>{Qp(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?Qp(e.material):"materials"in e&&e.materials.forEach(r=>{Qp(r)})})}function Qp(n){if(typeof n=="string")return;let t=[];n.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{n.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var Vv=Rt(Lv(),1);function Bv(n){return n.traverseMaterial(t=>{t.needsJitter=!1}),n}var Rv="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Zp=class extends SN{load(t,e,r,o=console.error){let i=new bN(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(Rv+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(Rv),i.load(t,async a=>{try{if(typeof a=="string")throw new Error("The .spline file is not binary!");let s=await this.parse(a);e(s)}catch(s){o(s)}},r,o)}async parse(t){let e=await Av(t,Ev);e.version&&(0,Vv.default)(e.version,"0.9.522")>0&&console.warn("Your .splinecode file is more recent than the library. Please upgrade @splinetool/loader to the latest version."),await Promise.all([J0(e)&&i0(),ux(e)&&j0()].filter(Boolean));let r=new jn(e.shared);Object.values(r.getMaterials()).forEach(a=>Object.assign(a,{isAsset:!0}));let o=new hu(e.scene,r),i=o.activeCamera;return i&&Object.assign(i,{makeDefault:!0}),o=Iv(o),o=Pv(o),o=Ov(o),o=Mv(o),o=Nv(o),o=Bv(o),o}};export{Zp as default};