@splinetool/loader 0.9.149 → 0.9.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/SplineLoader.cjs +21 -21
- package/build/SplineLoader.js +10 -10
- package/package.json +1 -1
package/build/SplineLoader.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
"use strict";var Sg=Object.create;var Ms=Object.defineProperty;var wg=Object.getOwnPropertyDescriptor;var _g=Object.getOwnPropertyNames;var Tg=Object.getPrototypeOf,Ag=Object.prototype.hasOwnProperty;var Nl=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),uu=(n,t)=>{for(var e in t)Ms(n,e,{get:t[e],enumerable:!0})},pu=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _g(t))!Ag.call(n,o)&&o!==e&&Ms(n,o,{get:()=>t[o],enumerable:!(r=wg(t,o))||r.enumerable});return n};var Ls=(n,t,e)=>(e=n!=null?Sg(Tg(n)):{},pu(t||!n||!n.__esModule?Ms(e,"default",{value:n,enumerable:!0}):e,n)),Ng=n=>pu(Ms({},"__esModule",{value:!0}),n);var _f=Nl((ec,wf)=>{(function(n,t){typeof ec=="object"?wf.exports=t():typeof define=="function"&&define.amd?define(t):n.Alea=t()})(ec,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,s=1;e.length==0&&(e=[+new Date]);var l=t();r=l(" "),o=l(" "),i=l(" ");for(var c=0;c<e.length;c++)r-=l(e[c]),r<0&&(r+=1),o-=l(e[c]),o<0&&(o+=1),i-=l(e[c]),i<0&&(i+=1);l=null;var p=function(){var a=2091639*r+s*23283064365386963e-26;return r=o,o=i,i=a-(s=a|0)};return p.next=p,p.uint32=function(){return p()*4294967296},p.fract53=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.version="Alea 0.9",p.args=e,p.exportState=function(){return[r,o,i,s]},p.importState=function(a){r=+a[0]||0,o=+a[1]||0,i=+a[2]||0,s=+a[3]||0},p}(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 s=.02519603282416938*e;e=s>>>0,s-=e,s*=e,e=s>>>0,s-=e,e+=s*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var Fh=Nl((bl,Vh)=>{(function(n,t){typeof bl=="object"&&typeof Vh<"u"?t(bl):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(bl,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 s,l,c,p,a,u,d,f,m,h,g,b,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],v=[],N=[],_=e==="f"?S:x,y=h=d=0;y<S;y++)v[y]=new Array(_).fill(0);for(y=0;y<x;y++)N[y]=new Array(x).fill(0);var I,A=new Array(x).fill(0);for(y=0;y<S;y++)for(s=0;s<x;s++)v[y][s]=t[y][s];for(y=0;y<x;y++){for(w[y]=d,m=0,c=y+1,s=y;s<S;s++)m+=Math.pow(v[s][y],2);if(m<i)d=0;else for(f=(u=v[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y]=u-d,s=c;s<x;s++){for(m=0,l=y;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(v[y][s],2);if(m<i)d=0;else{for(f=(u=v[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y+1]=u-d,s=c;s<x;s++)w[s]=v[y][s]/f;for(s=c;s<S;s++){for(m=0,l=c;l<x;l++)m+=v[s][l]*v[y][l];for(l=c;l<x;l++)v[s][l]=v[s][l]+m*w[l]}}h<(g=Math.abs(A[y])+Math.abs(w[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=v[y][y+1]*d,s=c;s<x;s++)N[s][y]=v[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=v[y][l]*N[l][s];for(l=c;l<x;l++)N[l][s]=N[l][s]+m*N[l][y]}}for(s=c;s<x;s++)N[y][s]=0,N[s][y]=0;N[y][y]=1,d=w[y],c=y}if(e){if(e==="f")for(y=x;y<S;y++){for(s=x;s<S;s++)v[y][s]=0;v[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)v[y][s]=0;if(d!==0){for(f=v[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(s=y;s<S;s++)v[s][y]=v[s][y]/d}else for(s=y;s<S;s++)v[s][y]=0;v[y][y]=v[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var P=0;P<50;P++){for(I=!1,c=l;0<=c;c--){if(Math.abs(w[c])<=o){I=!0;break}if(Math.abs(A[c-1])<=o)break}if(!I){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*w[y],w[y]=a*w[y],!(Math.abs(u)<=o));y++)if(d=A[y],A[y]=Math.sqrt(u*u+d*d),a=d/(f=A[y]),m=-u/f,e)for(s=0;s<S;s++)g=v[s][p],b=v[s][y],v[s][p]=g*a+b*m,v[s][y]=-g*m+b*a}if(b=A[l],c===l){if(b<0&&(A[l]=-b,r))for(s=0;s<x;s++)N[s][l]=-N[s][l];break}for(h=A[c],u=(((g=A[l-1])-b)*(g+b)+((d=w[l-1])-(f=w[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-b)*(h+b)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=w[y],g=A[y],f=m*d,d*=a,b=Math.sqrt(u*u+f*f),u=h*(a=u/(w[y-1]=b))+d*(m=f/b),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=N[s][y-1],b=N[s][y],N[s][y-1]=h*a+b*m,N[s][y]=-h*m+b*a;if(b=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=b))*d+(m=f/b)*g,h=-m*d+a*g,e)for(s=0;s<S;s++)g=v[s][y-1],b=v[s][y],v[s][y-1]=g*a+b*m,v[s][y]=-g*m+b*a}w[c]=0,w[l]=u,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:v,q:A,v:N}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var Jh=Nl(vl=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,b=f.match(/Version\/(.*?) /),x=g&&b&&parseInt(b[1],10)<15;return a._codecs={mp3:!!(!h&&(d||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,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$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var u=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var b=a._howls[m]._soundById(h[g]);b&&b._node&&!b._node._unlocked&&(b._node._unlocked=!0,b._node.load())}a._autoResume();var x=a.ctx.createBufferSource();x.buffer=a._scratchBuffer,x.connect(a.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),x.onended=function(){x.disconnect(0),a._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<a._howls.length;S++)a._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),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._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(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.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 a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.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=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var b=g._id;return d._queue.push({event:"play",action:function(){d.play(b)}}),b}if(f&&!g._paused)return u||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:d._sprite[a][0]/1e3),S=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),w=S*1e3/Math.abs(g._rate),v=d._sprite[a][0]/1e3,N=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var _=function(){g._paused=!1,g._seek=x,g._start=v,g._stop=N,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=N){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,_(),d._refreshBuffer(g);var C=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(C,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,S):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,S),w!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?I():(d._playLock=!0,d.once("resume",I),d._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var C=y.play();if(C&&typeof Promise<"u"&&(C instanceof Promise||typeof C.then=="function")?(d._playLock=!0,_(),C.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._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."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,_(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._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}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(L){d._emit("playerror",g._id,L)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var P=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||P)A();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",A(),y.removeEventListener(t._canPlayEvent,T,!1)};y.addEventListener(t._canPlayEvent,T,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(a)}}),u;for(var d=u._getSoundIds(a),f=0;f<d.length;f++){u._clearTimer(d[f]);var m=u._soundById(d[f]);if(m&&!m._paused&&(m._seek=u.seek(d[f]),m._rateSeek=0,m._paused=!0,u._stopFade(d[f]),m._node))if(u._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||u._emit("pause",m?m._id:null)}return u},stop:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),u||d._emit("stop",h._id))}return d},mute:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,u)}}),d;if(typeof u>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(u),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,u=arguments,d,f;if(u.length===0)return a._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,u)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var b=0;b<f.length;b++)g=a._soundById(f[b]),g&&(g._volume=d,u[2]||a._stopFade(f[b]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,u,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,u,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var b=m._soundById(h[g]);if(b){if(f||m._stopFade(h[g]),m._webAudio&&!b._muted){var x=t.ctx.currentTime,S=x+d/1e3;b._volume=a,b._node.gain.setValueAtTime(a,x),b._node.gain.linearRampToValueAtTime(u,S)}m._startFadeInterval(b,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,b=u,x=d-u,S=Math.abs(x/.01),w=Math.max(4,S>0?f/S:f),v=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var N=(Date.now()-v)/f;v=Date.now(),b+=x*N,b=Math.round(b*100)/100,x<0?b=Math.max(d,b):b=Math.min(d,b),g._webAudio?a._volume=b:g.volume(b,a._id,!0),h&&(g._volume=b),(d<u&&b<=d||d>u&&b>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},w)},_stopFade:function(a){var u=this,d=u._soundById(a);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,a),d._fadeTo=null,u._emit("fade",a)),u},loop:function(){var a=this,u=arguments,d,f,m;if(u.length===0)return a._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],a._loop=d;else return m=a._soundById(parseInt(u[0],10)),m?m._loop:!1;else u.length===2&&(d=u[0],f=parseInt(u[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,u=arguments,d,f;if(u.length===0)f=a._sounds[0]._id;else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,u)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var b=0;b<f.length;b++)if(g=a._soundById(f[b]),g){a.playing(f[b])&&(g._rateSeek=a.seek(f[b]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var x=a.seek(f[b]),S=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,w=S*1e3/Math.abs(g._rate);(a._endTimers[f[b]]||!g._paused)&&(a._clearTimer(f[b]),a._endTimers[f[b]]=setTimeout(a._ended.bind(a,g),w)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,u=arguments,d,f;if(u.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,u)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var b=a.playing(f);b&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var x=function(){b&&a.play(f,!0),a._emit("seek",f)};if(b&&!a._webAudio){var S=function(){a._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(a._webAudio){var w=a.playing(f)?t.ctx.currentTime-g._playStart:0,v=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(v+w*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var u=this;if(typeof a=="number"){var d=u._soundById(a);return d?!d._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(a){var u=this,d=u._duration,f=u._soundById(a);return f&&(d=u._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,u=a._sounds,d=0;d<u.length;d++)u[d]._paused||a.stop(u[d]._id),a._webAudio||(a._clearSound(u[d]._node),u[d]._node.removeEventListener("error",u[d]._errorFn,!1),u[d]._node.removeEventListener(t._canPlayEvent,u[d]._loadFn,!1),u[d]._node.removeEventListener("ended",u[d]._endFn,!1),t._releaseHtml5Audio(u[d]._node)),delete u[d]._node,a._clearTimer(u[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,u,d,f){var m=this,h=m["_on"+a];return typeof u=="function"&&h.push(f?{id:d,fn:u,once:f}:{id:d,fn:u}),m},off:function(a,u,d){var f=this,m=f["_on"+a],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(u===m[h].fn&&g||!u&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var b=Object.keys(f);for(h=0;h<b.length;h++)b[h].indexOf("_on")===0&&Array.isArray(f[b[h]])&&(f[b[h]]=[])}return f},once:function(a,u,d){var f=this;return f.on(a,u,d,1),f},_emit:function(a,u,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===u||a==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===a&&(u._queue.shift(),u._loadQueue()),a||d.action()}return u},_ended:function(a){var u=this,d=a._sprite;if(!u._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(u._ended.bind(u,a),100),u;var f=!!(a._loop||u._sprite[d][2]);if(u._emit("end",a._id),!u._webAudio&&f&&u.stop(a._id,!0).play(a._id),u._webAudio&&f){u._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);u._endTimers[a._id]=setTimeout(u._ended.bind(u,a),m)}return u._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,u._clearTimer(a._id),u._cleanBuffer(a._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(a._id,!0),u},_clearTimer:function(a){var u=this;if(u._endTimers[a]){if(typeof u._endTimers[a]!="function")clearTimeout(u._endTimers[a]);else{var d=u._soundById(a);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[a],!1)}delete u._endTimers[a]}return u},_soundById:function(a){for(var u=this,d=0;d<u._sounds.length;d++)if(a===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var u=0;u<a._sounds.length;u++)if(a._sounds[u]._ended)return a._sounds[u].reset();return new r(a)},_drain:function(){var a=this,u=a._pool,d=0,f=0;if(!(a._sounds.length<u)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=u)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var u=this;if(typeof a>"u"){for(var d=[],f=0;f<u._sounds.length;f++)d.push(u._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var u=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[u._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),u},_cleanBuffer:function(a){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,u},_clearSound:function(a){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,u._sounds.push(a),a.create(),a},create:function(){var a=this,u=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return u._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=u._src,a._node.preload=u._preload===!0?"auto":u._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,u=a._parent;u._duration=Math.ceil(a._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()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,u=a._parent;u._duration===1/0&&(u._duration=Math.ceil(a._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var u=a._src;if(o[u]){a._duration=o[u].duration,c(a);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,u,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[u],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&u._sounds.length>0?(o[u._src]=m,c(u,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,u){u&&!a._duration&&(a._duration=u.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},p=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 a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=u?parseInt(u[1],10):null;if(a&&d&&d<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 vl<"u"&&(vl.Howler=t,vl.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,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},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),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._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 s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._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 s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._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 s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.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 $w={};uu($w,{default:()=>_l});module.exports=Ng($w);var Tl=require("three");var Ge=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,Ge.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:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ge.prototype),{data:l,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,Ge.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function gi(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"&&gi(r)}return Object.freeze(n)}function du(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 Ko=class extends Error{};var ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)gi(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,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ge.prototype);let r=e;return fu()||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,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,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 fr(0,r,r);{let i=o[0].fi;return fr(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return fr(l,l+r,r)}else return fr(i.fi,s.fi,r)}}};function fr(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 s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function yi(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 fu(){return typeof process<"u"}function Il(n){return typeof n!="object"||yi(n)||Ig(n)}function Es(n){return Il(n)||n instanceof ge||n instanceof Fe||n instanceof Ge}function Ig(n){return Array.isArray(n)&&n.every(t=>typeof t!="object")}function mu(n,t){for(let e of n)t(e.id,e.data)!==!0&&mu(e.children,t)}function hu(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)hu(e,t)}var Fe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Fe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)gi(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}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&&hu(o,r)}}traverse(e){mu(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),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Fe.prototype);let s=i;return s.fillCaches(),s}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:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),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),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,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 Ko("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,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(s=>s.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(s=>s.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)=>du(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),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,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 fr(0,o,o);{let s=i[0].fi;return fr(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return fr(c,c+o,o)}else return fr(s.fi,l.fi,o)}}};var Zo;(t=>{function n(e,r){if(r.type!==0)return null;if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(Zo||(Zo={}));var Qo=class{unusedFun(t){}},Rt=class{unusedFun(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 instanceof Fe||r instanceof ge)return null;o+=1}r={...r};for(let[c,p]of Object.entries(t.props)){let a=r[c];i[c]=a,p===void 0?delete r[c]:r[c]=p}for(;o>0;)Object.keys(r).length===0?(r={...e[o-1]},delete r[t.path[o-1]]):r={...e[o-1],[t.path[o-1]]:r},o-=1;let s=Object.setPrototypeOf(r,Rt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},gu;(r=>{function n(o,i){return Jo(o,i)??o}r.apply=n;function t(o,i){return xu(o,i)}r.merge=t;function e(o,i){let s=0,l=i.path,c=o;for(;s<l.length&&c!==void 0;){if(c=jr.zoomOnce(c,l[s]),c instanceof Fe||c instanceof ge)return;s+=1}if(c===void 0)return i;if(Es(c))return;if(i.type===0)if(c&&typeof c=="object"){let p={...i.props};for(let a of Object.keys(c))delete p[a];return{...i,props:p}}else return;else if(i.type===1||i.type===4||i.type===7)if(typeof c=="object"){let p={...i.data,...c};return{...i,data:p}}else return;else return i}r.filterOp=e})(gu||(gu={}));function yu(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Jo(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=yu(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Pg(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Jo(o.data,t[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function Jo(n,t){if(Es(t)||t instanceof Qo)return t;if(n instanceof Fe){let e=yu(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ge)return Pg(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=Jo(o,t[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let s=Jo(i,t[o]);r=r||s!==void 0,s===void 0&&(s=i),e[o]=s}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}}}function xu(n,t){if(n===void 0)return t;if(t===void 0)return n;if(Es(t)||Il(n))return t;if(n instanceof Fe||n instanceof ge)return Jo(n,t);if(typeof n=="object"&&typeof t=="object"){let e=new Set;if(n)for(let o of Object.keys(n))e.add(o);if(t)for(let o of Object.keys(t))e.add(o);let r={};for(let o of e){let i=xu(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}else return n}function bu(n,t){let e={cur:[],result:[],len:0};return n=xi(n,t,e)??n,[n,e.result]}function Bs(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function Ds(n){n&&(n.len-=1)}function Og(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function vu(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=xi(i.data,t,Bs(e,s));Ds(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=vu(i.children,t,e);return p!==void 0?r=!0:p=i.children,{...i,id:s,data:c,children:p}});if(r)return o}function Cg(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=xi(i.data,t,Bs(e,s));return Ds(e),r=r||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function xi(n,t,e){if(n instanceof Fe){let r=vu(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ge)return Cg(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=xi(i,t,Bs(e,s));return Ds(e),r=r||l!==void 0,l===void 0&&(l=i),l});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"){let r={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=t[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=xi(s,t,Bs(e,i));Ds(e),o=o||c!==void 0,c===void 0&&(c=s),r[i]=c}else r[i]=s;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];if(r!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Og(e)}return r}else return}}var Su;(t=>{function n(e,r){let o=jr.zoom(r,e.path);if(typeof o=="object"){let i={};for(let s of Object.keys(e.props))i[s]=o[s];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(Su||(Su={}));var ro;(l=>{function n(c,p){return{...c,path:c.path.slice(p)}}l.drop=n;function t(c,p){return e(c,p)?.data??c}l.applySimple=t;function e(c,p){let a=p.path;for(var u=[];;){let d;if(c instanceof Rt&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Fe||c instanceof ge||c instanceof Ge?d=c.runOp(p):d=Zo.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let b=a[g],x=u[g];if(x instanceof Fe){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof ge){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Ge){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Rt){let S={...x,[b]:h};h=Object.setPrototypeOf(S,Rt.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof b=="string"&&(b=parseInt(b),isNaN(b)))throw new Error("Invalid path");let S=h;h=[...x],h[b]=S}else h={...x,[b]:h};else return null}return{data:h,actual:{...d.actual,path:a},reverse:{...d.reverse,path:a}}}else return null;let f=a[u.length],m;if(c instanceof Fe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof ge){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)u.push(c),c=m;else return null}}l.apply=e;function r(c,p){for(let a=0;a<c.length&&a<p.length;a++)if(c[a]!==p[a])return!0;return!1}l.pathDisjoint=r;function o(c,p){if(c.length!==p.length)return!1;for(let a=0;a<c.length;a++)if(c[a]!==p[a])return!1;return!0}l.pathEq=o;function i(c,p){return r(c.path,p.path)}l.commutative=i;function s(c,p){return c.type===0&&p.type===0&&o(c.path,p.path)?Object.keys(c.props).every(a=>p.props[a]!==void 0):!1}l.subsumed=s})(ro||(ro={}));var wu;(c=>{function n(){return[]}c.empty=n;function t(p,a){let u=[];for(let d of p){let[f,...m]=d.path;f===a&&u.push({...d,path:m})}return u}c.removePrefix=t;function e(p,a){return p.map(u=>({...u,path:[a,...u.path]}))}c.addPrefix=e;function r(p,a){return[...p,...a]}c.concat=r;function o(p,a){return[...p.filter(d=>!a.some(f=>ro.subsumed(d,f))),...a]}c.compress=o;function i(p,a){return p.every(u=>a.every(d=>ro.commutative(u,d)))}c.commutative=i;function s(p,a){for(let u of a){let d=l(p,u);d!==null&&(p=d.data)}return p}c.applyAll=s;function l(p,a){var u=p;let d=[],f=[];for(let m of a)try{if(m.type===3){let h=jr.zoom(u,[...m.path,m.id]),g=ro.apply(u,{...m,type:2});if(g!==null){u=g.data;let[b,x]=bu(u,{[m.id]:h});u=b;for(let S of x){let w=S[S.length-1];S.splice(S.length-1,1),d.push({type:0,path:S,props:{[w]:h}}),f.push({type:0,path:S,props:{[w]:m.id}})}f.push(g.reverse),d.push(g.actual)}}else{let h=ro.apply(u,m);h!==null&&(d.push(h.actual),u=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Ko)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(wu||(wu={}));var _u=Symbol(),bi=Symbol(),Oo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof Rs);){let s=o._path,l=o._current;if(s!==""&&i.splice(0,0,s),o=o._parent,o===null)return;o.update(s,l)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[bi];r&&r(),delete this._children[t]}}}},Ol=class extends Oo{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,Zo.runOp(this._current,t),t.path)}},Cl=class extends Oo{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,Ge.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Tu={get(n,t){if(t===bi)return()=>{n._parent=null};if(t===_u)return n._current;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],s=Vs(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):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]}}},Mg={...Tu,set(n,t,e){let r={type:0,props:{[t]:Nt(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}},Lg={...Tu,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}},en=class extends Oo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[bi]=()=>{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,s=Vs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):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 s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}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)}},Gs=class extends Oo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[bi]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,ro.apply(this._current,t),e)}},tn=class extends Oo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[bi]=()=>{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,s=Vs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):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 Pl(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&jr.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var Rs=class{constructor(t){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){Pl(this.ts,e,t),Pl(this.actual,r,t),Pl(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Vs(n,t,e){return e instanceof Fe?new en(n,t,e):e instanceof ge?new tn(n,t,e):e instanceof Rt?new Gs(n,t,e):e instanceof Ge?new Proxy(new Cl(n,t,e),Lg):e!==null&&typeof e=="object"?yi(e)?e:new Proxy(new Ol(n,t,e),Mg):e}function Ml(n){let t=new Rs(n);return[Vs(t,"",n),t]}function Ll(n,t){let[e,r]=Ml(n);return t(e),r.result()}function Nt(n){return n instanceof en||n instanceof tn||n instanceof Gs?n._current:n!==null&&typeof n=="object"?n[_u]:n}var jr;(o=>{function n(i,s){if(s.length===i.length)for(var l=0;l<i.length;){if(i[l]!==s[l])return!1;l+=1}else return!1;return!0}o.equal=n;function t(i,s,l){let c=r(l,i);if(c!==void 0&&typeof c=="object"&&c!==null){let p={...s};return Object.keys(c).forEach(a=>{delete p[a]}),p}else return s}o.removeOverridden=t;function e(i,s){if((i instanceof Fe||i instanceof en)&&typeof s=="string")return i.data(s);if((i instanceof ge||i instanceof tn)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object"&&i!==null)return i[s]}o.zoomOnce=e;function r(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=r})(jr||(jr={}));var Fs=class{},vi=class extends Fs{constructor(e){super();this.id=e}},Si=class extends Fs{constructor(e){super();this.data=e}};var Bl;try{Bl=new TextDecoder}catch{}var ne,no,O=0;var Lu=[],Dl=Lu,Gl=0,It={},Ae,oo,Wt=0,mr=0,Vt,Ur,vt=[],Ce,Au={useRecords:!1,mapsAsObjects:!0},wi=class{},Vl=new wi;Vl.name="MessagePack 0xC1";var rn=!1,hr=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(ne)return Ru(()=>(js(),this?this.unpack(t,e):hr.prototype.unpack.call(Au,t,e)));no=e>-1?e:t.length,O=0,Gl=0,mr=0,oo=null,Dl=Lu,Vt=null,ne=t;try{Ce=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw ne=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 hr){if(It=this,this.structures)return Ae=this.structures,zs();(!Ae||Ae.length>0)&&(Ae=[])}else It=Au,(!Ae||Ae.length>0)&&(Ae=[]);return zs()}unpackMultiple(t,e){let r,o=0;try{rn=!0;let i=t.length,s=this?this.unpack(t,i):Hs.unpack(t,i);if(e){for(e(s);O<i;)if(o=O,e(zs())===!1)return}else{for(r=[s];O<i;)o=O,r.push(zs());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{rn=!1,js()}}_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 zs(){try{if(!It.trusted&&!rn){let t=Ae.sharedLength||0;t<Ae.length&&(Ae.length=t)}let n=ke();if(O==no)Ae.restoreStructures&&Nu(),Ae=null,ne=null,Ur&&(Ur=null);else if(O>no){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!rn)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Ae.restoreStructures&&Nu(),js(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Nu(){for(let n in Ae.restoreStructures)Ae[n]=Ae.restoreStructures[n];Ae.restoreStructures=null}function ke(){let n=ne[O++];if(n<160)if(n<128){if(n<64)return n;{let t=Ae[n&63]||It.getStructures&&Eu()[n&63];return t?(t.read||(t.read=Fl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,It.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Du()]=ke();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(ke(),ke());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=ke();return t}else if(n<192){let t=n-160;if(mr>=O)return oo.slice(O-Wt,(O+=t)-Wt);if(mr==0&&no<140){let e=t<16?zl(t):Bu(t);if(e!=null)return e}return Rl(t)}else{let t;switch(n){case 192:return null;case 193:return Vt?(t=ke(),t>0?Vt[1].slice(Vt.position1,Vt.position1+=t):Vt[0].slice(Vt.position0,Vt.position0-=t)):Vl;case 194:return!1;case 195:return!0;case 196:return El(ne[O++]);case 197:return t=Ce.getUint16(O),O+=2,El(t);case 198:return t=Ce.getUint32(O),O+=4,El(t);case 199:return Co(ne[O++]);case 200:return t=Ce.getUint16(O),O+=2,Co(t);case 201:return t=Ce.getUint32(O),O+=4,Co(t);case 202:if(t=Ce.getFloat32(O),It.useFloat32>2){let e=ks[(ne[O]&127)<<1|ne[O+1]>>7];return O+=4,(e*t+(t>0?.5:-.5)>>0)/e}return O+=4,t;case 203:return t=Ce.getFloat64(O),O+=8,t;case 204:return ne[O++];case 205:return t=Ce.getUint16(O),O+=2,t;case 206:return t=Ce.getUint32(O),O+=4,t;case 207:return It.int64AsNumber?(t=Ce.getUint32(O)*4294967296,t+=Ce.getUint32(O+4)):t=Ce.getBigUint64(O),O+=8,t;case 208:return Ce.getInt8(O++);case 209:return t=Ce.getInt16(O),O+=2,t;case 210:return t=Ce.getInt32(O),O+=4,t;case 211:return It.int64AsNumber?(t=Ce.getInt32(O)*4294967296,t+=Ce.getUint32(O+4)):t=Ce.getBigInt64(O),O+=8,t;case 212:if(t=ne[O++],t==114)return Mu(ne[O++]&63);{let e=vt[t];if(e)return e.read?(O++,e.read(ke())):e.noBuffer?(O++,e()):e(ne.subarray(O,++O));throw new Error("Unknown extension "+t)}case 213:return t=ne[O],t==114?(O++,Mu(ne[O++]&63,ne[O++])):Co(2);case 214:return Co(4);case 215:return Co(8);case 216:return Co(16);case 217:return t=ne[O++],mr>=O?oo.slice(O-Wt,(O+=t)-Wt):Bg(t);case 218:return t=Ce.getUint16(O),O+=2,mr>=O?oo.slice(O-Wt,(O+=t)-Wt):Dg(t);case 219:return t=Ce.getUint32(O),O+=4,mr>=O?oo.slice(O-Wt,(O+=t)-Wt):Gg(t);case 220:return t=Ce.getUint16(O),O+=2,Pu(t);case 221:return t=Ce.getUint32(O),O+=4,Pu(t);case 222:return t=Ce.getUint16(O),O+=2,Ou(t);case 223:return t=Ce.getUint32(O),O+=4,Ou(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 Eg=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Fl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Eg.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(ke);return n.highByte===0&&(n.read=Iu(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=ke()}return r}return e.count=0,n.highByte===0?Iu(t,e):e}var Iu=(n,t)=>function(){let e=ne[O++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Ae[r]||Eu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Fl(o,n)),o.read()};function Eu(){let n=Ru(()=>(ne=null,It.getStructures()));return Ae=It._mergeStructures(n,Ae)}var Rl=Us,Bg=Us,Dg=Us,Gg=Us;function Us(n){let t;if(n<16&&(t=zl(n)))return t;if(n>64&&Bl)return Bl.decode(ne.subarray(O,O+=n));let e=O+n,r=[];for(t="";O<e;){let o=ne[O++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=ne[O++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=ne[O++]&63,s=ne[O++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=ne[O++]&63,s=ne[O++]&63,l=ne[O++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=at.apply(String,r),r.length=0)}return r.length>0&&(t+=at.apply(String,r)),t}function Pu(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=ke();return t}function Ou(n){if(It.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Du()]=ke();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(ke(),ke());return t}}var at=String.fromCharCode;function Bu(n){let t=O,e=new Array(n);for(let r=0;r<n;r++){let o=ne[O++];if((o&128)>0){O=t;return}e[r]=o}return at.apply(String,e)}function zl(n){if(n<4)if(n<2){if(n===0)return"";{let t=ne[O++];if((t&128)>1){O-=1;return}return at(t)}}else{let t=ne[O++],e=ne[O++];if((t&128)>0||(e&128)>0){O-=2;return}if(n<3)return at(t,e);let r=ne[O++];if((r&128)>0){O-=3;return}return at(t,e,r)}else{let t=ne[O++],e=ne[O++],r=ne[O++],o=ne[O++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){O-=4;return}if(n<6){if(n===4)return at(t,e,r,o);{let i=ne[O++];if((i&128)>0){O-=5;return}return at(t,e,r,o,i)}}else if(n<8){let i=ne[O++],s=ne[O++];if((i&128)>0||(s&128)>0){O-=6;return}if(n<7)return at(t,e,r,o,i,s);let l=ne[O++];if((l&128)>0){O-=7;return}return at(t,e,r,o,i,s,l)}else{let i=ne[O++],s=ne[O++],l=ne[O++],c=ne[O++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){O-=8;return}if(n<10){if(n===8)return at(t,e,r,o,i,s,l,c);{let p=ne[O++];if((p&128)>0){O-=9;return}return at(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=ne[O++],a=ne[O++];if((p&128)>0||(a&128)>0){O-=10;return}if(n<11)return at(t,e,r,o,i,s,l,c,p,a);let u=ne[O++];if((u&128)>0){O-=11;return}return at(t,e,r,o,i,s,l,c,p,a,u)}else{let p=ne[O++],a=ne[O++],u=ne[O++],d=ne[O++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){O-=12;return}if(n<14){if(n===12)return at(t,e,r,o,i,s,l,c,p,a,u,d);{let f=ne[O++];if((f&128)>0){O-=13;return}return at(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=ne[O++],m=ne[O++];if((f&128)>0||(m&128)>0){O-=14;return}if(n<15)return at(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=ne[O++];if((h&128)>0){O-=15;return}return at(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function El(n){return It.copyBuffers?Uint8Array.prototype.slice.call(ne,O,O+=n):ne.subarray(O,O+=n)}function Co(n){let t=ne[O++];if(vt[t])return vt[t](ne.subarray(O,O+=n));throw new Error("Unknown extension type "+t)}var Cu=new Array(4096);function Du(){let n=ne[O++];if(n>=160&&n<192){if(n=n-160,mr>=O)return oo.slice(O-Wt,(O+=n)-Wt);if(!(mr==0&&no<180))return Rl(n)}else return O--,ke();let t=(n<<5^(n>1?Ce.getUint16(O):n>0?ne[O]:0))&4095,e=Cu[t],r=O,o=O+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Ce.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=ne[r++],i!=e[s++]){r=1879048192;break}if(r===o)return O=r,e.string;o-=3,r=O}for(e=[],Cu[t]=e,e.bytes=n;r<o;)i=Ce.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=ne[r++],e.push(i);let l=n<16?zl(n):Bu(n);return l!=null?e.string=l:e.string=Rl(n)}var Mu=(n,t)=>{var e=ke();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Ae[n];return o&&o.isShared&&((Ae.restoreStructures||(Ae.restoreStructures=[]))[n]=o),Ae[n]=e,e.read=Fl(e,r),e.read()},Gu=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=ke();return(Gu[n[0]]||Error)(n[1])};vt[105]=n=>{let t=Ce.getUint32(O-4);Ur||(Ur=new Map);let e=ne[O],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Ur.set(t,o);let i=ke();return o.used?Object.assign(r,i):(o.target=i,i)};vt[112]=n=>{let t=Ce.getUint32(O-4),e=Ur.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(ke());var jl=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=jl[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Gu[e](Uint8Array.prototype.slice.call(n,1).buffer)};vt[120]=()=>{let n=ke();return new RegExp(n[0],n[1])};vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=O;O+=t-4,Vt=[ke(),ke()],Vt.position0=0,Vt.position1=0;let r=O;O=e;try{return ke()}finally{O=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 Ru(n){let t=no,e=O,r=Gl,o=Wt,i=mr,s=oo,l=Dl,c=Ur,p=Vt,a=new Uint8Array(ne.slice(0,no)),u=Ae,d=Ae.slice(0,Ae.length),f=It,m=rn,h=n();return no=t,O=e,Gl=r,Wt=o,mr=i,oo=s,Dl=l,Ur=c,Vt=p,ne=a,rn=m,Ae=u,Ae.splice(0,Ae.length,...d),It=f,Ce=new DataView(ne.buffer,ne.byteOffset,ne.byteLength),h}function js(){ne=null,Ur=null,Ae=null}function Vu(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var ks=new Array(147);for(let n=0;n<256;n++)ks[n]=+("1e"+Math.floor(45.15-n*.30103));var Hs=new hr({useRecords:!1}),Rg=Hs.unpack,Vg=Hs.unpackMultiple,Fg=Hs.unpack,Ws={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},zg=new Float32Array(1),J_=new Uint8Array(zg.buffer,0,4);var qs;try{qs=new TextEncoder}catch{}var $s,kl,Ys=typeof Buffer<"u",Ul=Ys?Buffer.allocUnsafeSlow:Uint8Array,Uu=Ys?Buffer:Uint8Array,Fu=Ys?4294967296:2144337920,R,Ye,M=0,gr,yr=null,jg=/[\u0080-\uFFFF]/,_i=Symbol("record-id"),Mo=class extends hr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=Uu.prototype.utf8Write?function(y,I,A){return R.utf8Write(y,I,A)}:qs&&qs.encodeInto?function(y,I){return qs.encodeInto(y,R.subarray(I)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,b=f+m+64;if(b>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(y,I){if(R||(R=new Ul(8192),Ye=new DataView(R.buffer,0,8192),M=0),gr=R.length-10,gr-M<2048?(R=new Ul(R.length),Ye=new DataView(R.buffer,0,R.length),gr=R.length-10,M=0):M=M+7&2147483640,r=M,l=a.structuredClone?new Map:null,a.bundleStrings?(yr=["",""],R[M++]=214,R[M++]=98,yr.position=M-r,M+=4):yr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let A=o.sharedLength||0;if(A>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 P=0;P<A;P++){let T=o[P];if(!T)continue;let C,L=o.transitions;for(let j=0,Y=T.length;j<Y;j++){let te=T[j];C=L[te],C||(C=L[te]=Object.create(null)),L=C}L[_i]=P+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(v(y),yr){Ye.setUint32(yr.position+r,M-yr.position-r);let A=yr;yr=null,v(A[0]),v(A[1])}if(a.offset=M,l&&l.idsToInsert){M+=l.idsToInsert.length*6,M>gr&&_(M),a.offset=M;let A=kg(R.subarray(r,M),l.idsToInsert);return l=null,A}return I&Hu?(R.start=r,R.end=M,R):R.subarray(r,M)}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 A=0,P=x.length;A<P;A++)x[A][_i]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let P=R.subarray(r,M);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,P)}}I&Kg&&(M=r)}};let v=y=>{M>gr&&(R=_(M));var I=typeof y,A;if(I==="string"){let P=y.length;if(yr&&P>=8&&P<4096){let L=jg.test(y);yr[L?0:1]+=y,R[M++]=193,v(L?-P:P);return}let T;P<32?T=1:P<256?T=2:P<65536?T=3:T=5;let C=P*3;if(M+C>gr&&(R=_(M+C)),P<64||!p){let L,j,Y,te=M+T;for(L=0;L<P;L++)j=y.charCodeAt(L),j<128?R[te++]=j:j<2048?(R[te++]=j>>6|192,R[te++]=j&63|128):(j&64512)===55296&&((Y=y.charCodeAt(L+1))&64512)===56320?(j=65536+((j&1023)<<10)+(Y&1023),L++,R[te++]=j>>18|240,R[te++]=j>>12&63|128,R[te++]=j>>6&63|128,R[te++]=j&63|128):(R[te++]=j>>12|224,R[te++]=j>>6&63|128,R[te++]=j&63|128);A=te-M-T}else A=p(y,M+T,C);A<32?R[M++]=160|A:A<256?(T<2&&R.copyWithin(M+2,M+1,M+1+A),R[M++]=217,R[M++]=A):A<65536?(T<3&&R.copyWithin(M+3,M+2,M+2+A),R[M++]=218,R[M++]=A>>8,R[M++]=A&255):(T<5&&R.copyWithin(M+5,M+3,M+3+A),R[M++]=219,Ye.setUint32(M,A),M+=4),M+=A}else if(I==="number")if(y>>>0===y)y<64?R[M++]=y:y<256?(R[M++]=204,R[M++]=y):y<65536?(R[M++]=205,R[M++]=y>>8,R[M++]=y&255):(R[M++]=206,Ye.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?R[M++]=256+y:y>=-128?(R[M++]=208,R[M++]=y+256):y>=-32768?(R[M++]=209,Ye.setInt16(M,y),M+=2):(R[M++]=210,Ye.setInt32(M,y),M+=4);else{let P;if((P=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[M++]=202,Ye.setFloat32(M,y);let T;if(P<4||(T=y*ks[(R[M]&127)<<1|R[M+1]>>7])>>0===T){M+=4;return}else M--}R[M++]=203,Ye.setFloat64(M,y),M+=8}else if(I==="object")if(!y)R[M++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let C=l.idsToInsert||(l.idsToInsert=[]);T.id=C.push(T)}R[M++]=214,R[M++]=112,Ye.setUint32(M,T.id),M+=4;return}else l.set(y,{offset:M-r})}let P=y.constructor;if(P===Object)N(y,!0);else if(P===Array){A=y.length,A<16?R[M++]=144|A:A<65536?(R[M++]=220,R[M++]=A>>8,R[M++]=A&255):(R[M++]=221,Ye.setUint32(M,A),M+=4);for(let T=0;T<A;T++)v(y[T])}else if(P===Map){A=y.size,A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ye.setUint32(M,A),M+=4);for(let[T,C]of y)v(T),v(C)}else{for(let T=0,C=$s.length;T<C;T++){let L=kl[T];if(y instanceof L){let j=$s[T];if(j.write){j.type&&(R[M++]=212,R[M++]=j.type,R[M++]=0),v(j.write.call(this,y));return}let Y=R,te=Ye,ie=M;R=null;let U;try{U=j.pack.call(this,y,W=>(R=Y,Y=null,M+=W,M>gr&&_(M),{target:R,targetView:Ye,position:M-W}),v)}finally{Y&&(R=Y,Ye=te,M=ie,gr=R.length-10)}U&&(U.length+M>gr&&_(U.length+M),M=Ug(U,R,M,j.type));return}}N(y,!y.hasOwnProperty)}}else if(I==="boolean")R[M++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[M++]=211,Ye.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[M++]=207,Ye.setBigUint64(M,y);else if(this.largeBigIntToFloat)R[M++]=203,Ye.setFloat64(M,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[M++]=192:(R[M++]=212,R[M++]=0,R[M++]=0);else if(I==="function")v(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},N=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),A=I.length;A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ye.setUint32(M,A),M+=4);let P;for(let T=0;T<A;T++)v(P=I[T]),v(y[P])}:(y,I)=>{R[M++]=222;let A=M-r;M+=2;let P=0;for(let T in y)(I||y.hasOwnProperty(T))&&(v(T),v(y[T]),P++);R[A+++r]=P>>8,R[A+r]=P&255}:y=>{let I=Object.keys(y),A,P=s.transitions||(s.transitions=Object.create(null)),T=0;for(let L=0,j=I.length;L<j;L++){let Y=I[L];A=P[Y],A||(A=P[Y]=Object.create(null),T++),P=A}let C=P[_i];if(C)C>=96&&h?(R[M++]=((C-=96)&31)+96,R[M++]=C>>5):R[M++]=C;else{C=s.nextId,C||(C=64),C<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(C=s.nextOwnId,C<b||(C=g),s.nextOwnId=C+1):(C>=b&&(C=g),s.nextId=C+1);let L=I.highByte=C>=96&&h?C-96>>5:-1;P[_i]=C,s[C-64]=I,C<g?(I.isShared=!0,s.sharedLength=C-63,i=!0,L>=0?(R[M++]=(C&31)+96,R[M++]=L):R[M++]=C):(L>=0?(R[M++]=213,R[M++]=114,R[M++]=(C&31)+96,R[M++]=L):(R[M++]=212,R[M++]=114,R[M++]=C),T&&(S+=w*T),x.length>=m&&(x.shift()[_i]=0),x.push(P),v(I))}for(let L=0,j=I.length;L<j;L++)v(y[I[L]])},_=y=>{let I;if(y>16777216){if(y-r>Fu)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(Fu,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(y-r<<2,R.length-1)>>12)+1<<12;let A=new Ul(I);return Ye=new DataView(A.buffer,0,I),R.copy?R.copy(A,0,r,y):A.set(R.slice(r,y)),M-=r,r=0,gr=A.length-10,R=A}}useBuffer(t){R=t,Ye=new DataView(R.buffer,R.byteOffset,R.byteLength),M=0}};kl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,wi];$s=[{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:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+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?zu(n,16,t):ju(Ys?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==Uu&&this.structuredClone?zu(n,jl.indexOf(e.name),t):ju(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function zu(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function ju(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 Ug(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 kg(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function kr(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)");kl.unshift(n.Class),$s.unshift(n)}Vu(n)}var ku=new Mo({useRecords:!1}),Hg=ku.pack,Wg=ku.pack;var{NEVER:qg,ALWAYS:$g,DECIMAL_ROUND:Yg,DECIMAL_FIT:Xg}=Ws,Hu=512,Kg=1024;var Wu=new Mo({structuredClone:!0});kr({Class:Ge.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ge.prototype),n}});kr({Class:ge.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ge.prototype),n}});kr({Class:Fe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Fe.prototype),n}});kr({Class:vi.prototype.constructor,type:4,write(n){return n.id},read(n){return new vi(n)}});kr({Class:Si.prototype.constructor,type:5,write(n){return n.data},read(n){return new Si(n)}});kr({Class:Rt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Rt.prototype),n}});kr({Class:Qo.prototype.constructor,type:7,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Qo.prototype),n}});function Zg(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 Hl(n){if(yi(n))return n;if(Array.isArray(n))return n.map(Hl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=Hl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Xs;(r=>{function n(o){return Wu.pack(o)}r.serialize=n;function t(o){return Wu.unpack(o)}r.deserialize=t;function e(o){return Zg(n(Hl(o))).toString()}r.checksum=e})(Xs||(Xs={}));var qu;(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})(qu||(qu={}));var on;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(on||(on={}));var $u;(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})($u||($u={}));var io;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})(io||(io={}));var Pt;(p=>{function n(a){return typeof a=="object"&&typeof a.r=="number"&&typeof a.g=="number"&&typeof a.b=="number"}p.isRGB=n,p.white={r:1,g:1,b:1},p.red={r:1,g:0,b:0},p.black={r:0,g:0,b:0};function o(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:1}}p.toRgb255a1=o;function i(a){return{r:a.r,g:a.g,b:a.b}}p.clone=i;function s(a){return a=Math.floor(a),{r:(a>>16&255)/255,g:(a>>8&255)/255,b:(a&255)/255}}p.fromHex=s;function l(a,u){return a.r===u.r&&a.g===u.g&&a.b===u.b}p.equals=l;function c(a,u,d){return{r:a.r+(u.r-a.r)*d,g:a.g+(u.g-a.g)*d,b:a.b+(u.b-a.b)*d}}p.lerp=c})(Pt||(Pt={}));var tr;(l=>{l.white={...Pt.white,a:1},l.transparent={...Pt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Pt.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Pt.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(tr||(tr={}));var Ks;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Ks||(Ks={}));var Yu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Yu||(Yu={}));var Xu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(Xu||(Xu={}));var nn;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(nn||(nn={}));var Lo;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,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})(Lo||(Lo={}));var Eo;(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(Qg.forEach(s=>{Object.assign(i,{[s]:o[s]??r[s]})}),i.radial={...r.radial},o.radial){let s=r.radial,l=o.radial;Jg.forEach(c=>{Object.assign(i.radial,{[c]:l[c]??s[c]})})}if(i.linear={...r.linear},o.linear){let s=r.linear,l=o.linear;ey.forEach(c=>{Object.assign(i.linear,{[c]:l[c]??s[c]})})}if(i.grid={...r.grid},o.grid){let s=r.grid,l=o.grid;ty.forEach(c=>{Object.assign(i.grid,{[c]:l[c]??s[c]})})}if(i.toObject={...r.toObject},o.toObject){let s=r.toObject,l=o.toObject;ry.forEach(c=>{Object.assign(i.toObject,{[c]:l[c]??s[c]})})}if(i.randomnessObject={...r.randomnessObject},o.randomnessObject){let s=r.randomnessObject,l=o.randomnessObject;oy.forEach(c=>{Object.assign(i.randomnessObject,{[c]:l[c]??s[c]})})}return i}e.merge=t})(Eo||(Eo={}));var Ku;(t=>t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})(Ku||(Ku={}));var Qg=["count"],Jg=["radius","start","end","position","scale","rotation"],ey=["position","scale","rotation"],ty=["count","size"],ry=["count","position","scale","rotation"],oy=["strength","scale","rotation","position","movement","seed","freqScale"];var Zs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Zs||(Zs={}));var Qs;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:tr.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:tr.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:tr.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Qs||(Qs={}));var Wl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(Wl||(Wl={}));var ql;(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})(ql||(ql={}));var Js;(t=>t.defaultData={...ql.defaultData,...Wl.defaultData,cloner:null,booleanExclude:null})(Js||(Js={}));var ny=typeof global=="object"&&global&&global.Object===Object&&global,ea=ny;var iy=typeof self=="object"&&self&&self.Object===Object&&self,sy=ea||iy||Function("return this")(),Qe=sy;var ay=Qe.Symbol,St=ay;var Zu=Object.prototype,ly=Zu.hasOwnProperty,cy=Zu.toString,Ti=St?St.toStringTag:void 0;function uy(n){var t=ly.call(n,Ti),e=n[Ti];try{n[Ti]=void 0;var r=!0}catch{}var o=cy.call(n);return r&&(t?n[Ti]=e:delete n[Ti]),o}var Qu=uy;var py=Object.prototype,dy=py.toString;function fy(n){return dy.call(n)}var Ju=fy;var my="[object Null]",hy="[object Undefined]",ep=St?St.toStringTag:void 0;function gy(n){return n==null?n===void 0?hy:my:ep&&ep in Object(n)?Qu(n):Ju(n)}var Ft=gy;function yy(n){return n!=null&&typeof n=="object"}var gt=yy;var xy="[object Symbol]";function by(n){return typeof n=="symbol"||gt(n)&&Ft(n)==xy}var sn=by;function vy(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 ta=vy;var Sy=Array.isArray,He=Sy;var wy=1/0,tp=St?St.prototype:void 0,rp=tp?tp.toString:void 0;function op(n){if(typeof n=="string")return n;if(He(n))return ta(n,op)+"";if(sn(n))return rp?rp.call(n):"";var t=n+"";return t=="0"&&1/n==-wy?"-0":t}var np=op;function _y(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Je=_y;function Ty(n){return n}var ra=Ty;var Ay="[object AsyncFunction]",Ny="[object Function]",Iy="[object GeneratorFunction]",Py="[object Proxy]";function Oy(n){if(!Je(n))return!1;var t=Ft(n);return t==Ny||t==Iy||t==Ay||t==Py}var an=Oy;var Cy=Qe["__core-js_shared__"],oa=Cy;var ip=function(){var n=/[^.]+$/.exec(oa&&oa.keys&&oa.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function My(n){return!!ip&&ip in n}var sp=My;var Ly=Function.prototype,Ey=Ly.toString;function By(n){if(n!=null){try{return Ey.call(n)}catch{}try{return n+""}catch{}}return""}var Hr=By;var Dy=/[\\^$.*+?()[\]{}|]/g,Gy=/^\[object .+?Constructor\]$/,Ry=Function.prototype,Vy=Object.prototype,Fy=Ry.toString,zy=Vy.hasOwnProperty,jy=RegExp("^"+Fy.call(zy).replace(Dy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Uy(n){if(!Je(n)||sp(n))return!1;var t=an(n)?jy:Gy;return t.test(Hr(n))}var ap=Uy;function ky(n,t){return n?.[t]}var lp=ky;function Hy(n,t){var e=lp(n,t);return ap(e)?e:void 0}var Ot=Hy;var Wy=Ot(Qe,"WeakMap"),na=Wy;var cp=Object.create,qy=function(){function n(){}return function(t){if(!Je(t))return{};if(cp)return cp(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),up=qy;function $y(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 pp=$y;function Yy(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var ia=Yy;var Xy=800,Ky=16,Zy=Date.now;function Qy(n){var t=0,e=0;return function(){var r=Zy(),o=Ky-(r-e);if(e=r,o>0){if(++t>=Xy)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var dp=Qy;function Jy(n){return function(){return n}}var fp=Jy;var e0=function(){try{var n=Ot(Object,"defineProperty");return n({},"",{}),n}catch{}}(),ln=e0;var t0=ln?function(n,t){return ln(n,"toString",{configurable:!0,enumerable:!1,value:fp(t),writable:!0})}:ra,mp=t0;var r0=dp(mp),sa=r0;function o0(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var hp=o0;var n0=9007199254740991,i0=/^(?:0|[1-9]\d*)$/;function s0(n,t){var e=typeof n;return t=t??n0,!!t&&(e=="number"||e!="symbol"&&i0.test(n))&&n>-1&&n%1==0&&n<t}var so=s0;function a0(n,t,e){t=="__proto__"&&ln?ln(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var cn=a0;function l0(n,t){return n===t||n!==n&&t!==t}var ao=l0;var c0=Object.prototype,u0=c0.hasOwnProperty;function p0(n,t,e){var r=n[t];(!(u0.call(n,t)&&ao(r,e))||e===void 0&&!(t in n))&&cn(n,t,e)}var un=p0;function d0(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?cn(e,l,c):un(e,l,c)}return e}var qt=d0;var gp=Math.max;function f0(n,t,e){return t=gp(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=gp(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),pp(n,this,l)}}var aa=f0;function m0(n,t){return sa(aa(n,t,ra),n+"")}var yp=m0;var h0=9007199254740991;function g0(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=h0}var pn=g0;function y0(n){return n!=null&&pn(n.length)&&!an(n)}var lo=y0;function x0(n,t,e){if(!Je(e))return!1;var r=typeof t;return(r=="number"?lo(e)&&so(t,e.length):r=="string"&&t in e)?ao(e[t],n):!1}var xp=x0;function b0(n){return yp(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&xp(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var bp=b0;var v0=Object.prototype;function S0(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||v0;return n===e}var dn=S0;function w0(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var vp=w0;var _0="[object Arguments]";function T0(n){return gt(n)&&Ft(n)==_0}var $l=T0;var Sp=Object.prototype,A0=Sp.hasOwnProperty,N0=Sp.propertyIsEnumerable,I0=$l(function(){return arguments}())?$l:function(n){return gt(n)&&A0.call(n,"callee")&&!N0.call(n,"callee")},Wr=I0;function P0(){return!1}var wp=P0;var Ap=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_p=Ap&&typeof module=="object"&&module&&!module.nodeType&&module,O0=_p&&_p.exports===Ap,Tp=O0?Qe.Buffer:void 0,C0=Tp?Tp.isBuffer:void 0,M0=C0||wp,fn=M0;var L0="[object Arguments]",E0="[object Array]",B0="[object Boolean]",D0="[object Date]",G0="[object Error]",R0="[object Function]",V0="[object Map]",F0="[object Number]",z0="[object Object]",j0="[object RegExp]",U0="[object Set]",k0="[object String]",H0="[object WeakMap]",W0="[object ArrayBuffer]",q0="[object DataView]",$0="[object Float32Array]",Y0="[object Float64Array]",X0="[object Int8Array]",K0="[object Int16Array]",Z0="[object Int32Array]",Q0="[object Uint8Array]",J0="[object Uint8ClampedArray]",ex="[object Uint16Array]",tx="[object Uint32Array]",ze={};ze[$0]=ze[Y0]=ze[X0]=ze[K0]=ze[Z0]=ze[Q0]=ze[J0]=ze[ex]=ze[tx]=!0;ze[L0]=ze[E0]=ze[W0]=ze[B0]=ze[q0]=ze[D0]=ze[G0]=ze[R0]=ze[V0]=ze[F0]=ze[z0]=ze[j0]=ze[U0]=ze[k0]=ze[H0]=!1;function rx(n){return gt(n)&&pn(n.length)&&!!ze[Ft(n)]}var Np=rx;function ox(n){return function(t){return n(t)}}var mn=ox;var Ip=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ai=Ip&&typeof module=="object"&&module&&!module.nodeType&&module,nx=Ai&&Ai.exports===Ip,Yl=nx&&ea.process,ix=function(){try{var n=Ai&&Ai.require&&Ai.require("util").types;return n||Yl&&Yl.binding&&Yl.binding("util")}catch{}}(),qr=ix;var Pp=qr&&qr.isTypedArray,sx=Pp?mn(Pp):Np,la=sx;var ax=Object.prototype,lx=ax.hasOwnProperty;function cx(n,t){var e=He(n),r=!e&&Wr(n),o=!e&&!r&&fn(n),i=!e&&!r&&!o&&la(n),s=e||r||o||i,l=s?vp(n.length,String):[],c=l.length;for(var p in n)(t||lx.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||so(p,c)))&&l.push(p);return l}var ca=cx;function ux(n,t){return function(e){return n(t(e))}}var ua=ux;var px=ua(Object.keys,Object),Op=px;var dx=Object.prototype,fx=dx.hasOwnProperty;function mx(n){if(!dn(n))return Op(n);var t=[];for(var e in Object(n))fx.call(n,e)&&e!="constructor"&&t.push(e);return t}var Cp=mx;function hx(n){return lo(n)?ca(n):Cp(n)}var hn=hx;function gx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Mp=gx;var yx=Object.prototype,xx=yx.hasOwnProperty;function bx(n){if(!Je(n))return Mp(n);var t=dn(n),e=[];for(var r in n)r=="constructor"&&(t||!xx.call(n,r))||e.push(r);return e}var Lp=bx;function vx(n){return lo(n)?ca(n,!0):Lp(n)}var xr=vx;var Sx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wx=/^\w*$/;function _x(n,t){if(He(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||sn(n)?!0:wx.test(n)||!Sx.test(n)||t!=null&&n in Object(t)}var Ep=_x;var Tx=Ot(Object,"create"),$r=Tx;function Ax(){this.__data__=$r?$r(null):{},this.size=0}var Bp=Ax;function Nx(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var Dp=Nx;var Ix="__lodash_hash_undefined__",Px=Object.prototype,Ox=Px.hasOwnProperty;function Cx(n){var t=this.__data__;if($r){var e=t[n];return e===Ix?void 0:e}return Ox.call(t,n)?t[n]:void 0}var Gp=Cx;var Mx=Object.prototype,Lx=Mx.hasOwnProperty;function Ex(n){var t=this.__data__;return $r?t[n]!==void 0:Lx.call(t,n)}var Rp=Ex;var Bx="__lodash_hash_undefined__";function Dx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=$r&&t===void 0?Bx:t,this}var Vp=Dx;function gn(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])}}gn.prototype.clear=Bp;gn.prototype.delete=Dp;gn.prototype.get=Gp;gn.prototype.has=Rp;gn.prototype.set=Vp;var Xl=gn;function Gx(){this.__data__=[],this.size=0}var Fp=Gx;function Rx(n,t){for(var e=n.length;e--;)if(ao(n[e][0],t))return e;return-1}var co=Rx;var Vx=Array.prototype,Fx=Vx.splice;function zx(n){var t=this.__data__,e=co(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Fx.call(t,e,1),--this.size,!0}var zp=zx;function jx(n){var t=this.__data__,e=co(t,n);return e<0?void 0:t[e][1]}var jp=jx;function Ux(n){return co(this.__data__,n)>-1}var Up=Ux;function kx(n,t){var e=this.__data__,r=co(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var kp=kx;function yn(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])}}yn.prototype.clear=Fp;yn.prototype.delete=zp;yn.prototype.get=jp;yn.prototype.has=Up;yn.prototype.set=kp;var uo=yn;var Hx=Ot(Qe,"Map"),po=Hx;function Wx(){this.size=0,this.__data__={hash:new Xl,map:new(po||uo),string:new Xl}}var Hp=Wx;function qx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var Wp=qx;function $x(n,t){var e=n.__data__;return Wp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var fo=$x;function Yx(n){var t=fo(this,n).delete(n);return this.size-=t?1:0,t}var qp=Yx;function Xx(n){return fo(this,n).get(n)}var $p=Xx;function Kx(n){return fo(this,n).has(n)}var Yp=Kx;function Zx(n,t){var e=fo(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var Xp=Zx;function xn(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])}}xn.prototype.clear=Hp;xn.prototype.delete=qp;xn.prototype.get=$p;xn.prototype.has=Yp;xn.prototype.set=Xp;var Ni=xn;var Qx="Expected a function";function Kl(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(Qx);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 s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(Kl.Cache||Ni),e}Kl.Cache=Ni;var Kp=Kl;var Jx=500;function eb(n){var t=Kp(n,function(r){return e.size===Jx&&e.clear(),r}),e=t.cache;return t}var Zp=eb;var tb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rb=/\\(\\)?/g,ob=Zp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(tb,function(e,r,o,i){t.push(o?i.replace(rb,"$1"):r||e)}),t}),Qp=ob;function nb(n){return n==null?"":np(n)}var Jp=nb;function ib(n,t){return He(n)?n:Ep(n,t)?[n]:Qp(Jp(n))}var $t=ib;var sb=1/0;function ab(n){if(typeof n=="string"||sn(n))return n;var t=n+"";return t=="0"&&1/n==-sb?"-0":t}var mo=ab;function lb(n,t){t=$t(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[mo(t[e++])];return e&&e==r?n:void 0}var pa=lb;function cb(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var bn=cb;var ed=St?St.isConcatSpreadable:void 0;function ub(n){return He(n)||Wr(n)||!!(ed&&n&&n[ed])}var td=ub;function rd(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=td),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?rd(l,t-1,e,r,o):bn(o,l):r||(o[o.length]=l)}return o}var od=rd;function pb(n){var t=n==null?0:n.length;return t?od(n,1):[]}var nd=pb;function db(n){return sa(aa(n,void 0,nd),n+"")}var da=db;var fb=ua(Object.getPrototypeOf,Object),vn=fb;var mb="[object Object]",hb=Function.prototype,gb=Object.prototype,id=hb.toString,yb=gb.hasOwnProperty,xb=id.call(Object);function bb(n){if(!gt(n)||Ft(n)!=mb)return!1;var t=vn(n);if(t===null)return!0;var e=yb.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&id.call(e)==xb}var fa=bb;function vb(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 sd=vb;function Sb(){this.__data__=new uo,this.size=0}var ad=Sb;function wb(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var ld=wb;function _b(n){return this.__data__.get(n)}var cd=_b;function Tb(n){return this.__data__.has(n)}var ud=Tb;var Ab=200;function Nb(n,t){var e=this.__data__;if(e instanceof uo){var r=e.__data__;if(!po||r.length<Ab-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new Ni(r)}return e.set(n,t),this.size=e.size,this}var pd=Nb;function Sn(n){var t=this.__data__=new uo(n);this.size=t.size}Sn.prototype.clear=ad;Sn.prototype.delete=ld;Sn.prototype.get=cd;Sn.prototype.has=ud;Sn.prototype.set=pd;var ma=Sn;function Ib(n,t){return n&&qt(t,hn(t),n)}var dd=Ib;function Pb(n,t){return n&&qt(t,xr(t),n)}var fd=Pb;var yd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,md=yd&&typeof module=="object"&&module&&!module.nodeType&&module,Ob=md&&md.exports===yd,hd=Ob?Qe.Buffer:void 0,gd=hd?hd.allocUnsafe:void 0;function Cb(n,t){if(t)return n.slice();var e=n.length,r=gd?gd(e):new n.constructor(e);return n.copy(r),r}var ha=Cb;function Mb(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var xd=Mb;function Lb(){return[]}var ga=Lb;var Eb=Object.prototype,Bb=Eb.propertyIsEnumerable,bd=Object.getOwnPropertySymbols,Db=bd?function(n){return n==null?[]:(n=Object(n),xd(bd(n),function(t){return Bb.call(n,t)}))}:ga,wn=Db;function Gb(n,t){return qt(n,wn(n),t)}var vd=Gb;var Rb=Object.getOwnPropertySymbols,Vb=Rb?function(n){for(var t=[];n;)bn(t,wn(n)),n=vn(n);return t}:ga,ya=Vb;function Fb(n,t){return qt(n,ya(n),t)}var Sd=Fb;function zb(n,t,e){var r=t(n);return He(n)?r:bn(r,e(n))}var xa=zb;function jb(n){return xa(n,hn,wn)}var wd=jb;function Ub(n){return xa(n,xr,ya)}var ba=Ub;var kb=Ot(Qe,"DataView"),va=kb;var Hb=Ot(Qe,"Promise"),Sa=Hb;var Wb=Ot(Qe,"Set"),wa=Wb;var _d="[object Map]",qb="[object Object]",Td="[object Promise]",Ad="[object Set]",Nd="[object WeakMap]",Id="[object DataView]",$b=Hr(va),Yb=Hr(po),Xb=Hr(Sa),Kb=Hr(wa),Zb=Hr(na),Bo=Ft;(va&&Bo(new va(new ArrayBuffer(1)))!=Id||po&&Bo(new po)!=_d||Sa&&Bo(Sa.resolve())!=Td||wa&&Bo(new wa)!=Ad||na&&Bo(new na)!=Nd)&&(Bo=function(n){var t=Ft(n),e=t==qb?n.constructor:void 0,r=e?Hr(e):"";if(r)switch(r){case $b:return Id;case Yb:return _d;case Xb:return Td;case Kb:return Ad;case Zb:return Nd}return t});var _n=Bo;var Qb=Object.prototype,Jb=Qb.hasOwnProperty;function ev(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&Jb.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Pd=ev;var tv=Qe.Uint8Array,Zl=tv;function rv(n){var t=new n.constructor(n.byteLength);return new Zl(t).set(new Zl(n)),t}var Tn=rv;function ov(n,t){var e=t?Tn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Od=ov;var nv=/\w*$/;function iv(n){var t=new n.constructor(n.source,nv.exec(n));return t.lastIndex=n.lastIndex,t}var Cd=iv;var Md=St?St.prototype:void 0,Ld=Md?Md.valueOf:void 0;function sv(n){return Ld?Object(Ld.call(n)):{}}var Ed=sv;function av(n,t){var e=t?Tn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var _a=av;var lv="[object Boolean]",cv="[object Date]",uv="[object Map]",pv="[object Number]",dv="[object RegExp]",fv="[object Set]",mv="[object String]",hv="[object Symbol]",gv="[object ArrayBuffer]",yv="[object DataView]",xv="[object Float32Array]",bv="[object Float64Array]",vv="[object Int8Array]",Sv="[object Int16Array]",wv="[object Int32Array]",_v="[object Uint8Array]",Tv="[object Uint8ClampedArray]",Av="[object Uint16Array]",Nv="[object Uint32Array]";function Iv(n,t,e){var r=n.constructor;switch(t){case gv:return Tn(n);case lv:case cv:return new r(+n);case yv:return Od(n,e);case xv:case bv:case vv:case Sv:case wv:case _v:case Tv:case Av:case Nv:return _a(n,e);case uv:return new r;case pv:case mv:return new r(n);case dv:return Cd(n);case fv:return new r;case hv:return Ed(n)}}var Bd=Iv;function Pv(n){return typeof n.constructor=="function"&&!dn(n)?up(vn(n)):{}}var Ta=Pv;var Ov="[object Map]";function Cv(n){return gt(n)&&_n(n)==Ov}var Dd=Cv;var Gd=qr&&qr.isMap,Mv=Gd?mn(Gd):Dd,Rd=Mv;var Lv="[object Set]";function Ev(n){return gt(n)&&_n(n)==Lv}var Vd=Ev;var Fd=qr&&qr.isSet,Bv=Fd?mn(Fd):Vd,zd=Bv;var Dv=1,Gv=2,Rv=4,jd="[object Arguments]",Vv="[object Array]",Fv="[object Boolean]",zv="[object Date]",jv="[object Error]",Ud="[object Function]",Uv="[object GeneratorFunction]",kv="[object Map]",Hv="[object Number]",kd="[object Object]",Wv="[object RegExp]",qv="[object Set]",$v="[object String]",Yv="[object Symbol]",Xv="[object WeakMap]",Kv="[object ArrayBuffer]",Zv="[object DataView]",Qv="[object Float32Array]",Jv="[object Float64Array]",eS="[object Int8Array]",tS="[object Int16Array]",rS="[object Int32Array]",oS="[object Uint8Array]",nS="[object Uint8ClampedArray]",iS="[object Uint16Array]",sS="[object Uint32Array]",Re={};Re[jd]=Re[Vv]=Re[Kv]=Re[Zv]=Re[Fv]=Re[zv]=Re[Qv]=Re[Jv]=Re[eS]=Re[tS]=Re[rS]=Re[kv]=Re[Hv]=Re[kd]=Re[Wv]=Re[qv]=Re[$v]=Re[Yv]=Re[oS]=Re[nS]=Re[iS]=Re[sS]=!0;Re[jv]=Re[Ud]=Re[Xv]=!1;function Aa(n,t,e,r,o,i){var s,l=t&Dv,c=t&Gv,p=t&Rv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Je(n))return n;var a=He(n);if(a){if(s=Pd(n),!l)return ia(n,s)}else{var u=_n(n),d=u==Ud||u==Uv;if(fn(n))return ha(n,l);if(u==kd||u==jd||d&&!o){if(s=c||d?{}:Ta(n),!l)return c?Sd(n,fd(s,n)):vd(n,dd(s,n))}else{if(!Re[u])return o?n:{};s=Bd(n,u,l)}}i||(i=new ma);var f=i.get(n);if(f)return f;i.set(n,s),zd(n)?n.forEach(function(g){s.add(Aa(g,t,e,g,n,i))}):Rd(n)&&n.forEach(function(g,b){s.set(b,Aa(g,t,e,b,n,i))});var m=p?c?ba:wd:c?xr:hn,h=a?void 0:m(n);return hp(h||n,function(g,b){h&&(b=g,g=n[b]),un(s,b,Aa(g,t,e,b,n,i))}),s}var Na=Aa;var aS=1,lS=4;function cS(n){return Na(n,aS|lS)}var Ii=cS;function uS(n,t){return n!=null&&t in Object(n)}var Hd=uS;function pS(n,t,e){t=$t(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=mo(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&pn(o)&&so(s,o)&&(He(n)||Wr(n)))}var Wd=pS;function dS(n,t){return n!=null&&Wd(n,t,Hd)}var qd=dS;function fS(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var $d=fS;var mS=$d(),Yd=mS;function hS(n,t,e){(e!==void 0&&!ao(n[t],e)||e===void 0&&!(t in n))&&cn(n,t,e)}var Pi=hS;function gS(n){return gt(n)&&lo(n)}var Xd=gS;function yS(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var Oi=yS;function xS(n){return qt(n,xr(n))}var Kd=xS;function bS(n,t,e,r,o,i,s){var l=Oi(n,e),c=Oi(t,e),p=s.get(c);if(p){Pi(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=He(c),f=!d&&fn(c),m=!d&&!f&&la(c);a=c,d||f||m?He(l)?a=l:Xd(l)?a=ia(l):f?(u=!1,a=ha(c,!0)):m?(u=!1,a=_a(c,!0)):a=[]:fa(c)||Wr(c)?(a=l,Wr(l)?a=Kd(l):(!Je(l)||an(l))&&(a=Ta(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),Pi(n,e,a)}var Zd=bS;function Qd(n,t,e,r,o){n!==t&&Yd(t,function(i,s){if(o||(o=new ma),Je(i))Zd(n,t,s,e,Qd,r,o);else{var l=r?r(Oi(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),Pi(n,s,l)}},xr)}var Jd=Qd;function vS(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var ef=vS;function SS(n,t){return t.length<2?n:pa(n,sd(t,0,-1))}var tf=SS;var wS=bp(function(n,t,e){Jd(n,t,e)}),An=wS;function _S(n,t){return t=$t(t,n),n=tf(n,t),n==null||delete n[mo(ef(t))]}var rf=_S;function TS(n){return fa(n)?void 0:n}var of=TS;var AS=1,NS=2,IS=4,PS=da(function(n,t){var e={};if(n==null)return e;var r=!1;t=ta(t,function(i){return i=$t(i,n),r||(r=i.length>1),i}),qt(n,ba(n),e),r&&(e=Na(e,AS|NS|IS,of));for(var o=t.length;o--;)rf(e,t[o]);return e}),Nn=PS;function OS(n,t,e,r){if(!Je(n))return n;t=$t(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=mo(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Je(a)?a:so(t[o+1])?[]:{})}un(l,c,p),l=l[c]}return n}var nf=OS;function CS(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=pa(n,s);e(l,s)&&nf(i,$t(s,n),l)}return i}var sf=CS;function MS(n,t){return sf(n,t,function(e,r){return qd(n,r)})}var af=MS;var LS=da(function(n,t){return n==null?{}:af(n,t)}),In=LS;var lf=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],cf=["wrapping","image"],zt;(o=>{function n(i,s){An(i,s)}o.patch=n;function t(i,s){return i==="light"&&s?e(s):r(i)}o.defaultData=t;function e(i){switch(i){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function r(i){switch(i){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Pt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,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{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,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{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Pt.fromHex(6710886),a:1},colorB:{...Pt.fromHex(6710886),a:1},colorC:{...Pt.fromHex(16777215),a:1},colorD:{...Pt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:tr.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,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:tr.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:tr.fromHexAndA(0,1),contourColor:tr.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{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(zt||(zt={}));var jt;(l=>{function n(c){return!c.layers.some(a=>a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")&&!e(c)}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c){let p=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(p+=(1-p)*a.data.alpha);return p<1}l.isTransparent=e;function r(){return{layers:new ge}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new ge;return u.push({fi:0,data:zt.defaultData("light",c),id:p}),u.push({fi:1,data:zt.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="phong",a="layer1",u="layer2"){let d=zt.defaultData("texture");Object.assign(d.texture,{image:c});let f=new ge;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:zt.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(jt||(jt={}));var Pn;(t=>{function n(){return{points:new ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(Pn||(Pn={}));var On;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(On||(On={}));var ho;(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==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:Pn.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:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=n})(ho||(ho={}));var Ci;(o=>{o.identity={...Ks.identity,hiddenMatrix:io.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:on.isEqual(i.position,s.position)?null:s.position,rotation:on.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:on.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:io.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(Ci||(Ci={}));var Ql;(t=>t.defaultData={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]})(Ql||(Ql={}));var rr;(t=>t.defaultData={states:new ge,events:new ge,visible:!0,raycastLock:!1,physics:null,...Ci.identity})(rr||(rr={}));var uf;(t=>t.defaultData={type:"Empty",cloner:null,...rr.defaultData})(uf||(uf={}));var Do;(t=>t.defaultData={type:"Mesh",...rr.defaultData,...Js.defaultData})(Do||(Do={}));var Ia;(t=>t.defaultData={...rr.defaultData,...Ci.identity,...Lo.defaultData})(Ia||(Ia={}));var pf;(t=>{function n(e){return{...rr.defaultData,...Qs.defaultData(e)}}t.defaultData=n})(pf||(pf={}));var df;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:io.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Ql.defaultData,states:new ge,events:new ge,...Lo.defaultData},o.defaultMeshObject={name:"Rectangle",...rr.defaultData,...Do.defaultData,geometry:ho.defaultData("RectangleGeometry"),material:jt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...rr.defaultData,...Do.defaultData,geometry:ho.defaultData("BooleanGeometry"),material:jt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...rr.defaultData,...Do.defaultData,geometry:ho.defaultData("TextGeometry"),material:jt.defaultTwoLayerData("phong","layer1","layer2")}))(df||(df={}));var ff;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=Ll(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&zt.patch(p,c)}}).data),i.materials&&o.materials&&(i.materials=Ll(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&zt.patch(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,Ci.merge(i,o)),nn.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o),i.cloner&&"cloner"in o&&Object.assign(i,{cloner:Eo.merge(i.cloner,o.cloner)});else if(r.type==="Empty")i.cloner&&"cloner"in o&&Object.assign(i,{cloner:Eo.merge(i.cloner,o.cloner)});else if(Zs.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Pt.clone(s.color))}return i}e.patch=t})(ff||(ff={}));var Cn;(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,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(Cn||(Cn={}));var Pa;(t=>t.defaultData={orbitControls:Cn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,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"]}),gameControlObject:null})(Pa||(Pa={}));function Go(n,t){return Object.setPrototypeOf(n,t),n}function mf(n){return Array.isArray(n)?n:[n]}var Oa;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Go(r,Ge.prototype)}e.defaultColors=n;function t(){return{materials:new Ge,images:new Ge,colors:new Ge,audios:new Ge,fonts:new Ge,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(Oa||(Oa={}));var Mi=require("three");function hf(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 l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...In(Nt(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,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Nt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Ca(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function Ma(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function ES(n){Object.assign(n.scene.publish,{orbitControls:{...Cn.defaultData,...Nt(n.scene.publish.orbitControls)}})}function BS(n){Object.assign(n.scene.publish.settings,{video:{...Pa.defaultData.settings.video,...Nt(n.scene.publish.settings.video)}})}function DS(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((lf.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(cf.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function GS(n){n.scene.publish.withBackground=!0}function RS(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function VS(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 FS(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 zS(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function gf(n){n.layers===void 0&&Object.assign(n,jt.defaultTwoLayerData("lambert"))}function Jl(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={...Nt(t),colors:e,steps:r};Object.assign(t,o)}})}function jS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function yf(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Jl(r)}):"material"in e&&typeof e.material!="string"&&Jl(e.material)}),Object.values(n.shared.materials).forEach(t=>Jl(t))}function US(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 kS(n){n.shared.audios=Go({},Ge.prototype)}function HS(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 WS(n){Object.entries(Nt(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Nt(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function qS(n){n.scene.publish.settings.web.preload=!1}function xf(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 $S(n){n.shared.fonts=Go({},Ge.prototype)}function YS(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 XS(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=jt.defaultTwoLayerData("phong"),s=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=o.alpha;let l=YS(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...rr.defaultData,...Do.defaultData,flatShading:!1,wireframe:!1,geometry:{...ho.defaultData("TextGeometry"),width:o.width,height:o.height,font:l,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:Nt(o.states),events:Nt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=Nt(n.scene.objects).parent(e);n.scene.objects.insertAfter(p??null,e,[{id:e+"new",data:c,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function KS(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 ge,move:new ge,jump:new ge}});else{let i=new ge;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:Mi.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((s,l,c)=>{let p={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},a={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(a,In(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},d={state:s.state,...u,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ge({fi:0,id:Mi.MathUtils.generateUUID(),data:p},{fi:1,id:Mi.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function ZS(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new ge,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...In(c,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in c?c.after:void 0,toggle:"after"in c?c.toggle:void 0,type:"Audio"}:(c.interaction==="pause"||c.interaction==="stop")&&(u={...In(c,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:a,id:p,data:u})}}),l.forEach(c=>e.events.delete(c)),s.length){let c=e.events.find(p=>p.type===o)?.data;c?"actions"in c&&c.actions.insertBefore(null,s):e.events.insertBefore(null,[{id:Mi.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function bf(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 QS(n){Ca(n,bf),Ma(n,bf)}function JS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function e1(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"}})})}var vf=24;function Sf(n){let t=n.schema??0;t!==vf&&(console.warn("updating from ",t,"to ",vf),t<1&&(Ma(n,hf),Ca(n,hf),n.schema=1),t<2&&(ES(n),n.schema=2),t<3&&(DS(n),n.schema=3),t<4&&(GS(n),n.schema=4),t<5&&(RS(n),n.schema=5),t<6&&(VS(n),n.schema=6),t<7&&(FS(n),n.schema=7),t<8&&(zS(n),n.schema=8),t<9&&(yf(n),n.schema=9),t<10&&(jS(n),n.schema=10),t<11&&(US(n),n.schema=11),t<12&&(yf(n),n.schema=12),t<13&&(kS(n),n.schema=13),t<14&&(HS(n),n.schema=14),t<15&&(WS(n),n.schema=15),t<16&&(qS(n),n.schema=16),t<17&&(Ma(n,xf),Ca(n,xf),n.schema=17),t<18&&(Ma(n,gf),Ca(n,gf),n.schema=18),t<19&&(BS(n),n.schema=19),t<20&&($S(n),XS(n),n.schema=20),t<21&&(KS(n),ZS(n),n.schema=21),t<22&&(QS(n),n.schema=22),t<23&&(JS(n),n.schema=23),t<24&&(e1(n),n.schema=24))}var La;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(La||(La={}));var Me=require("three"),Dn=Ls(_f());var t1=.5*(Math.sqrt(3)-1),Ei=(3-Math.sqrt(3))/6,r1=1/3,br=1/6,w3=(Math.sqrt(5)-1)/4,_3=(5-Math.sqrt(5))/20,Bi=n=>Math.floor(n)|0,Tf=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]),tc=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 Ea(n=Math.random){let t=Nf(n),e=new Float64Array(t).map(o=>Tf[o%12*2]),r=new Float64Array(t).map(o=>Tf[o%12*2+1]);return function(i,s){let l=0,c=0,p=0,a=(i+s)*t1,u=Bi(i+a),d=Bi(s+a),f=(u+d)*Ei,m=u-f,h=d-f,g=i-m,b=s-h,x,S;g>b?(x=1,S=0):(x=0,S=1);let w=g-x+Ei,v=b-S+Ei,N=g-1+2*Ei,_=b-1+2*Ei,y=u&255,I=d&255,A=.5-g*g-b*b;if(A>=0){let C=y+t[I],L=e[C],j=r[C];A*=A,l=A*A*(L*g+j*b)}let P=.5-w*w-v*v;if(P>=0){let C=y+x+t[I+S],L=e[C],j=r[C];P*=P,c=P*P*(L*w+j*v)}let T=.5-N*N-_*_;if(T>=0){let C=y+1+t[I+1],L=e[C],j=r[C];T*=T,p=T*T*(L*N+j*_)}return 70*(l+c+p)}}function Af(n=Math.random){let t=Nf(n),e=new Float64Array(t).map(i=>tc[i%12*3]),r=new Float64Array(t).map(i=>tc[i%12*3+1]),o=new Float64Array(t).map(i=>tc[i%12*3+2]);return function(s,l,c){let p,a,u,d,f=(s+l+c)*r1,m=Bi(s+f),h=Bi(l+f),g=Bi(c+f),b=(m+h+g)*br,x=m-b,S=h-b,w=g-b,v=s-x,N=l-S,_=c-w,y,I,A,P,T,C;v>=N?N>=_?(y=1,I=0,A=0,P=1,T=1,C=0):v>=_?(y=1,I=0,A=0,P=1,T=0,C=1):(y=0,I=0,A=1,P=1,T=0,C=1):N<_?(y=0,I=0,A=1,P=0,T=1,C=1):v<_?(y=0,I=1,A=0,P=0,T=1,C=1):(y=0,I=1,A=0,P=1,T=1,C=0);let L=v-y+br,j=N-I+br,Y=_-A+br,te=v-P+2*br,ie=N-T+2*br,U=_-C+2*br,W=v-1+3*br,q=N-1+3*br,F=_-1+3*br,E=m&255,D=h&255,B=g&255,k=.6-v*v-N*N-_*_;if(k<0)p=0;else{let G=E+t[D+t[B]];k*=k,p=k*k*(e[G]*v+r[G]*N+o[G]*_)}let $=.6-L*L-j*j-Y*Y;if($<0)a=0;else{let G=E+y+t[D+I+t[B+A]];$*=$,a=$*$*(e[G]*L+r[G]*j+o[G]*Y)}let H=.6-te*te-ie*ie-U*U;if(H<0)u=0;else{let G=E+P+t[D+T+t[B+C]];H*=H,u=H*H*(e[G]*te+r[G]*ie+o[G]*U)}let V=.6-W*W-q*q-F*F;if(V<0)d=0;else{let G=E+1+t[D+1+t[B+1]];V*=V,d=V*V*(e[G]*W+r[G]*q+o[G]*F)}return 32*(p+a+u+d)}}function Nf(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}var If=require("three"),or=new If.Triangle,Ba=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;or.a.fromBufferAttribute(t,o),or.b.fromBufferAttribute(t,o+1),or.c.fromBufferAttribute(t,o+2),i*=or.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 s=Math.ceil((r+o)/2);if(s===0||e[s-1]<=t&&e[s]>t){i=s;break}else t<e[s]?o=s-1:r=s+1}return i}sampleFace(t,e,r){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),or.a.fromBufferAttribute(this.positionAttribute,t*3),or.b.fromBufferAttribute(this.positionAttribute,t*3+1),or.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(or.a,o).addScaledVector(or.b,i).addScaledVector(or.c,1-(o+i)),or.getNormal(r),this}};var Va=require("three");var nc=require("three");var Ga=require("three");var rc=require("three");function lt(n,t){return t.color(n)}var oc=n=>"isEntity"in n,vr=n=>"isAbstractMesh"in n,Sr=n=>n!==null&&n.objectType==="BooleanObject",Pf=n=>n.objectType==="CombinedCamera";var Da=n=>"objectHelper"in n;function o1(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??io.identity)),e&&(n.updateMatrix(),Sr(n.parent)&&vr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function n1(n,t){o1(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function Of(n,t,e){n1(n,t),t.color!==void 0&&(n.color=lt(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof rc.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof rc.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function Cf(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 Ra=n=>class extends n{hasEntityChild(){return this.children.some(e=>oc(e))}isDescendantOf(e){e instanceof Ga.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new Ga.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),oc(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var We=require("three");var Mn=new We.Box3,Yt=new We.Vector3,wr=new We.Vector3,Ln=new We.Matrix4,Lf=[new We.Vector3(-1,1,1),new We.Vector3(-1,-1,1),new We.Vector3(1,-1,1),new We.Vector3(1,1,1),new We.Vector3(-1,1,-1),new We.Vector3(-1,-1,-1),new We.Vector3(1,-1,-1),new We.Vector3(1,1,-1)],i1=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],s1=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function a1(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var Mf=(n,t,e)=>{if(vr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?Yt.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||On.is2DParametricMesh(i)?Yt.set(0,0,r.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?Yt.set(0,0,0):o!==void 0&&(a1(Mn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),Mn.getCenter(Yt)),n.forceComputeSize?Mn.getSize(wr).multiplyScalar(.5):wr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(Da(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");Mn.setFromArray(r.array),Mn.getCenter(Yt),Mn.getSize(wr).multiplyScalar(.5)}else Yt.setScalar(0),wr.setScalar(0);Ln.copy(t).multiply(n.matrixWorld),wr.x===0&&wr.y===0&&wr.z===0?e.push(new We.Vector3(Yt.x,Yt.y,Yt.z).applyMatrix4(Ln)):Lf.forEach(r=>{e.push(r.clone().multiply(wr).add(Yt).applyMatrix4(Ln))})},Di=class extends We.Box3{constructor(){super(...arguments);this.matrix=new We.Matrix4;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 We.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&Mf(s,r,i)}):Mf(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(Ln.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(wr).multiplyScalar(.5),this.getCenter(Yt),Ln.copy(this.matrix).setPosition(Yt),this.vertices=Lf.map(e=>e.clone().multiply(wr).applyMatrix4(Ln))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=i1.map(([e,r])=>new We.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new We.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=s1.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Xt=n=>"isEntity"in n,Ef=n=>"isAbstractMesh"in n,Kt=n=>class extends Ra(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new nc.Matrix4;this._singleBBox=new Di;this._recursiveBBox=new Di;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.currentState=null;this.currentTransitionAction=null}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}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(r=>{Xt(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let o of this.children)Xt(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Xt(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}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 s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)Xt(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new nc.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Xt(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return Nn(o,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return Nn(o,r)}fromState(r,o){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visible=r.visible),this.fromObjectTransformState(r),this}};var ic=class extends Va.Object3D{},l1=n=>n.type==="Mesh",_r=class extends ic{constructor(e){super();this.object=e;this.hiddenMatrix=new Va.Matrix4;this.uuidOrigin=e.uuid,this.matrixAutoUpdate=!0;for(let r of this.object.children)if(Xt(r)){let o=new _r(r);o.visible=!0,this.add(o),o.matrixAutoUpdate=!1,o.matrix=r.matrix.clone(),o.matrix.premultiply(r.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return l1(this.object)}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(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,e=!0);for(let r of this.children)r.updateMatrixWorld(e)}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}};var c1,En=new Promise(n=>{c1=n});var Tr=require("three"),Bf=-1,u1=1,Df={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Gf={polygon_center:0,edge:1,vertex:2},Gi=(n,t)=>(e,r)=>!t||e===0||n===0?0:n*r/100,he=(n,t)=>{let e=Math.abs(t),r=e*-1;return(n-Bf)*(e-r)/(u1-Bf)+r};function Rf(n){let t=[],e={};for(var r=0,o=n.length;r<o;r++){var i=JSON.stringify(n[r].pos.map(s=>Math.round(s*1e4)/1e4));e[i]||(t.push(n[r]),e[i]=!0)}return t}var p1=new Tr.Vector3,Fa=new Tr.Vector3,d1=new Tr.Vector3,f1=new Tr.Vector3;function Bn(n,t){let e=d1.fromArray(n),r=f1.fromArray(t);Fa.copy(r).sub(e);let o=Fa.length();return Fa.normalize().multiplyScalar(o*.5),p1.copy(e).add(Fa).toArray()}var Zt=new Tr.Triangle,za=new Tr.Vector3,ja=new Tr.Vector3,Ro=new Tr.Vector3;function Vf(n){let t=[];for(let e=0;e<=n.index.count;e++)if(za.fromArray(n.index.array,e*3),Zt.setFromAttributeAndIndices(n.attributes.position,za.x,za.y,za.z),Zt.getNormal(ja),Zt.getMidpoint(Ro),!(isNaN(Ro.x)||isNaN(Ro.y)||isNaN(Ro.z))){let{a:r,b:o,c:i}=Zt,s=r.toArray(),l=o.toArray(),c=i.toArray(),p=r.distanceTo(o),a=o.distanceTo(i),u=i.distanceTo(r),d=Bn(s,l),f=Bn(l,c),m=Bn(c,s),h=[p,a,u],g=Math.max(...h),b=h.filter(w=>Math.round(w)===Math.round(g)).length>1,x=[],S=Zt.getMidpoint(Ro).toArray();g===p&&!b&&(x=[f,m,m],S=d),g===a&&!b&&(x=[d,m,m],S=f),g===u&&!b&&(x=[d,f,f],S=m),b&&(x=[d,f,m]),t.push({vertices:[s,l,c],faceCenters:x,midpoint:S,norm:Zt.getNormal(ja).toArray()})}return t}function Ff(n){let t=[],{position:e}=n.attributes;for(let r=0;r<e.count;r++){Zt.setFromAttributeAndIndices(e,r*3,r*3+1,r*3+2),Zt.getNormal(ja),Zt.getMidpoint(Ro);let o=Zt.a.toArray(),i=Zt.b.toArray(),s=Zt.c.toArray();t.push({vertices:[o,i,s],faceCenters:[Bn(o,i),Bn(i,s),Bn(s,o)],midpoint:Ro.toArray(),norm:ja.toArray()})}return t}var m1=4,h1=.5,sc=n=>.5*(1-Math.cos(n*Math.PI)),ac=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 b=0;b<4095+1;b++)this.perlin[b]=Math.random()}t<0&&(t=-t),e<0&&(e=-e),r<0&&(r=-r);let o=Math.floor(t),i=Math.floor(e),s=Math.floor(r),l=t-o,c=e-i,p=r-s,a,u,d=0,f=.5,m,h,g;for(let b=0;b<m1;b++){let x=o+(i<<4)+(s<<8);a=sc(l),u=sc(c),m=this.perlin[x&4095],m+=a*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=a*(this.perlin[x+16+1&4095]-h),m+=u*(h-m),x+=256,h=this.perlin[x&4095],h+=a*(this.perlin[x+1&4095]-h),g=this.perlin[x+16&4095],g+=a*(this.perlin[x+16+1&4095]-g),h+=u*(g-h),m+=sc(p)*(h-m),d+=m*f,f*=h1,o<<=1,l*=2,i<<=1,c*=2,s<<=1,p*=2,l>=1&&(o++,l--),c>=1&&(i++,c--),p>=1&&(s++,p--)}return d}noiseSeed(t){let e=(()=>{let s,l;return{setSeed(c){l=s=(c??Math.random()*4294967296)>>>0},getSeed(){return s},rand(){return l=(1664525*l+1013904223)%4294967296,l/4294967296}}})();e.setSeed(t),this.perlin=new Array(4095+1);for(let r=0;r<4095+1;r++)this.perlin[r]=e.rand()}},zf=ac;var wt=1e-4,Ar,kf,Hf,Wf,jf=new Me.Vector3,Uf=new Me.Vector3;En.then(n=>{Ar=n,kf=[Ar.get_face_center,Ar.get_edge_midpoint,Ar.get_vertex_position],Hf=[Ar.get_face_normal,Ar.get_edge_normal,Ar.get_vertex_normal],Wf=[Ar.face_count,Ar.edge_count,Ar.vertex_count]});var g1=new Me.Matrix4,y1=new Me.Matrix4,go=new Me.Vector3,Vo=new Me.Vector3,Ri=new Me.Vector3,lc=new Me.Vector3,x1=new Me.Vector3,b1=new Me.Vector3;var Yr=new zf,Xr=class extends Me.Object3D{constructor(e,r={}){super();this.objectForSample=void 0;this.object=e;let o=e.recursiveBBox.getSize(new Me.Vector3),i=.1;this.parameters=Eo.defaultData(o.toArray(),i),An(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}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)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(e=>e.updateMatrix()):this.children.forEach(e=>e.updateMatrix())}_updateCount(e){let r;if(e!==void 0?r=e:r=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*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,s=this.children.length;i<s;++i)this.remove(this.children[0]);let o=[...this.objectForSample.children].filter(i=>i instanceof _r&&i.uuidOrigin===this.object.uuid);if(o.length===r)return;if(o.length<r)for(let i=0,s=r-o.length;i<s;++i){let l=new _r(this.object);l.visible=!0,this.objectForSample.add(l),this.parameters.hideBase&&this.setHideBase(!0)}else for(let i=0,s=o.length-r;i<s;++i)this.objectForSample.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 s=new _r(this.object);s.visible=!0,this.add(s),this.parameters.hideBase&&this.setHideBase(!0)}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*Me.MathUtils.DEG2RAD,i=r.end*Me.MathUtils.DEG2RAD,s=o-i,l=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),c;switch(r.axis){case"z":c=new Me.Vector3(0,0,1);break;case"y":c=new Me.Vector3(0,1,0);break;default:case"x":c=new Me.Vector3(1,0,0);break}let p=e.randomnessObject,a=p.noiseType==="perlin";Yr.noiseSeed(p.seed);let u=Ea((0,Dn.default)(p.seed)),d=Gi(p.strength,this.parameters.randomness);for(let[f,m]of this.children.entries()){let h=f*(p.freqScale/10)+p.movement,g=a?Yr.noise(h):u(h,h);m.scale.x=r.scale[0]+d(f,he(g,p.scale[0]))||wt,m.scale.y=r.scale[1]+d(f,he(g,p.scale[1]))||wt,m.scale.z=r.scale[2]+d(f,he(g,p.scale[2]))||wt,m.position.setScalar(0);let b=s/e.count*f-o;switch(r.axis){case"x":m.rotation.set(0,b,0);break;case"y":m.rotation.set(0,0,b);break;case"z":m.rotation.set(b,0,0);break}m.translateOnAxis(c,r.radius),m.position.x+=r.position[0]+d(f,he(g,p.position[0])),m.position.y+=r.position[1]+d(f,he(g,p.position[1])),m.position.z+=r.position[2]+d(f,he(g,p.position[2]));let x=d(f,he(g,p.rotation[0])),S=d(f,he(g,p.rotation[1])),w=d(f,he(g,p.rotation[2]));r.alignment===!0?(m.rotation.x+=l.x+x,m.rotation.y+=l.y+S,m.rotation.z+=l.z+w):m.rotation.set(l.x+x,l.y+S,l.z+w)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let l=Ea((0,Dn.default)(i.seed)),c=Gi(i.strength,this.parameters.randomness);for(let[p,a]of this.children.entries()){let u=p*(i.freqScale/10)+i.movement,d=s?Yr.noise(u):l(u,u),f=c(p,he(d,i.rotation[0])),m=c(p,he(d,i.rotation[1])),h=c(p,he(d,i.rotation[2]));a.scale.x=1+(r.scale[0]-1)*p+c(p,he(d,i.scale[0]))||wt,a.scale.y=1+(r.scale[1]-1)*p+c(p,he(d,i.scale[1]))||wt,a.scale.z=1+(r.scale[2]-1)*p+c(p,he(d,i.scale[2]))||wt,a.rotation.x=o.x*p+f,a.rotation.y=o.y*p+m,a.rotation.z=o.z*p+h,a.position.x=r.position[0]*p+c(p,he(d,i.position[0])),a.position.y=r.position[1]*p+c(p,he(d,i.position[1])),a.position.z=r.position[2]*p+c(p,he(d,i.position[2]))}}_updateGrid(e){let r=0,o=e.grid,i=e.randomnessObject,s=Gi(i.strength,this.parameters.randomness),l=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let c=Af((0,Dn.default)(i.seed));if(o.useCenter===!0){let p={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},a=new Me.Vector3(o.size[0]*(o.count[0]-p.x)*.5,o.size[1]*(o.count[1]-p.y)*.5,o.size[2]*(o.count[2]-p.z)*.5);for(let u=0;u<o.count[0];u++)for(let d=0;d<o.count[1];d++)for(let f=0;f<o.count[2];f++){let m=[(u+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],h=l?Yr.noise(...m):c(...m),g=this.children[r++];g.scale.x=1+s(r,he(h,i.scale[0]))||wt,g.scale.y=1+s(r,he(h,i.scale[1]))||wt,g.scale.z=1+s(r,he(h,i.scale[2]))||wt;let b=s(r,he(h,i.rotation[0])),x=s(r,he(h,i.rotation[1])),S=s(r,he(h,i.rotation[2]));g.rotation.set(b,x,S),g.position.x=o.size[0]*u-a.x+s(r,he(h,i.position[0])),g.position.y=o.size[1]*d-a.y+s(r,he(h,i.position[1])),g.position.z=o.size[2]*f-a.z+s(r,he(h,i.position[2]))}}else for(let p=0;p<o.count[0];p++)for(let a=0;a<o.count[1];a++)for(let u=0;u<o.count[2];u++){let d=[(p+1)*(i.freqScale/10)+i.movement,(a+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],f=l?Yr.noise(...d):c(...d),m=this.children[r++];m.scale.x=1+s(r,he(f,i.scale[0]))||wt,m.scale.y=1+s(r,he(f,i.scale[1]))||wt,m.scale.z=1+s(r,he(f,i.scale[2]))||wt;let h=s(r,he(f,i.rotation[0])),g=s(r,he(f,i.rotation[1])),b=s(r,he(f,i.rotation[2]));m.rotation.set(h,g,b),m.position.x=o.size[0]*p+s(r,he(f,i.position[0])),m.position.y=-o.size[1]*a+s(r,he(f,i.position[1])),m.position.z=-o.size[2]*u+s(r,he(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:r}=e,o=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let l=Ea((0,Dn.default)(i.seed)),c=Gi(i.strength,this.parameters.randomness);if(!r.object){for(let[,b]of this.children.entries())b.position.set(0,0,0),b.scale.setScalar(1),b.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let p=this.getSubdivData(),a=[],u=b=>{let x=b.length,S=b.map(N=>N[0]).reduce((N,_)=>N+_,0),w=b.map(N=>N[1]).reduce((N,_)=>N+_,0),v=b.map(N=>N[2]).reduce((N,_)=>N+_,0);return[S/x,w/x,v/x]},d=b=>Math.round(b*1e6)/1e6;p.forEach(b=>{let x=p.filter(S=>d(b.pos[0])===d(S.pos[0])&&d(b.pos[1])===d(S.pos[1])&&d(b.pos[2])===d(S.pos[2]));x.length>1?a.push({pos:b.pos,norm:u(x.map(S=>S.norm))}):a.push(b)});let f=Rf(a);if(p.length>0){let b=Math.round(f.length*r.count/100);this._updateCount(b)}this.objectForSample.updateMatrixWorld();let m=new Ba(this.objectForSample).build(),h=Df[r.axis],g=this.objectForSample.children.filter(b=>b instanceof _r&&b.uuidOrigin===this.object.uuid);m.setRandomGenerator((0,Dn.default)(this.object.uuid+r.seed));for(let[b,x]of g.entries()){let S=b*(i.freqScale/10)+i.movement,w=s?Yr.noise(S):l(S,S),v=c(b,he(w,i.rotation[0])),N=c(b,he(w,i.rotation[1])),_=c(b,he(w,i.rotation[2]));r.spreadType==="random"?m.sample(Ri,lc):(f.length&&(Ri.fromArray(f[b].pos),lc.fromArray(f[b].norm)),this.objectForSample.objectType==="SubdivObject"&&Ri.applyMatrix4(g1.copy(this.objectForSample.matrixWorld).invert())),Ri.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(Ri),go.fromArray(h);let y=r.align==="normal"?lc:this.object.getWorldDirection(b1),I=Vo.fromArray(r.position);Vo.x+=Vo.x+c(b,he(w,i.position[0])),Vo.y+=Vo.y+c(b,he(w,i.position[1])),Vo.z+=Vo.z+c(b,he(w,i.position[2]));let A=Math.acos(y.dot(go)),P=x1.crossVectors(go,y).normalize(),T=y1.makeRotationAxis(P,A),C=y.clone().cross(this.object.up).normalize(),L=C.clone().cross(y).normalize(),j=new Me.Matrix4().makeBasis(C,y,L),Y=new Me.Vector3(go.y,go.z,go.x).normalize(),te=Y.clone().cross(go).normalize(),ie=new Me.Matrix4().makeBasis(Y,go,te).invert(),U=new Me.Matrix4().multiplyMatrices(j,ie);x.rotation.setFromRotationMatrix(U),I.applyMatrix4(T),x.position.add(I),x.rotation.x=x.rotation.x+o.x+v,x.rotation.y=x.rotation.y+o.y+N,x.rotation.z=x.rotation.z+o.z+_,x.scale.setScalar(1),x.scale.x=x.scale.x+r.scale[0]+c(b,he(w,i.scale[0]))||wt,x.scale.y=x.scale.y+r.scale[1]+c(b,he(w,i.scale[1]))||wt,x.scale.z=x.scale.z+r.scale[2]+c(b,he(w,i.scale[2]))||wt,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(e){this.objectForSample=e}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let r=this.objectForSample,o=Gf[e],i=Wf[o],s=kf[o],l=Hf[o],c=[],p=i(r.subdivPointer);for(let a=0;a<=p-1;a++){let u=s(r.subdivPointer,a),d=l(r.subdivPointer,a);jf.fromArray(u).applyMatrix4(r.matrixWorld),Uf.fromArray(d),c.push({pos:jf.toArray(),norm:Uf.toArray()})}return c}else return(this.objectForSample.geometry.index?Vf(this.objectForSample.geometry):Ff(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()}removeSampleObjectClones(){if(this.objectForSample)for(var e=this.objectForSample.children.length-1;e>=0;e--){let r=this.objectForSample.children[e];r instanceof _r&&r.uuidOrigin===this.object.uuid&&this.objectForSample.remove(r)}}fromClonerState(e){if(!e)return this;e.hideBase!==void 0&&this.setHideBase(e.hideBase);let r=e.hasOwnProperty("type");return e.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!e.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(r?e.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),An(this.parameters,e),this.update(),this}};var Fr=require("three");var Ue=require("three");var qf=require("three"),Nr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new qf.BoxGeometry(30,30,30),t};var dt=require("three");var yt=require("three"),Ua=new yt.Ray,cc=new yt.Sphere,$f=new yt.Matrix4,Ir=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),cc.copy(i.boundingSphere),cc.applyMatrix4(s),e.ray.intersectsSphere(cc)===!1||($f.copy(s).invert(),Ua.copy(e.ray).applyMatrix4($f),i.boundingBox!==null&&Ua.intersectsBox(i.boundingBox)===!1))return;let l,c,p,a,u=i.index,d=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let b=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(m=b,h=x;m<h;m+=3)if(c=u.getX(m),p=u.getX(m+1),a=u.getX(m+2),l=g(n,e,Ua,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,S=new yt.Vector3,w=new yt.Vector3,v=new yt.Vector3,N=new yt.Vector3,_=2,I=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=I*I,P=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let C=P,L=T-1;C<L;C+=_){if(S.fromBufferAttribute(x,C),w.fromBufferAttribute(x,C+1),Ua.distanceSqToSegment(S,w,N,v)>A)continue;N.applyMatrix4(n.matrixWorld);let Y=e.ray.origin.distanceTo(N);Y<e.near||Y>e.far||r.push({distance:Y,point:v.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(b,x,S,w,v,N,_){let y=new yt.Vector3,I=new yt.Vector3,A=new yt.Vector3,P=new yt.Vector3,T=new yt.Vector3;if(y.fromBufferAttribute(w,v),I.fromBufferAttribute(w,N),A.fromBufferAttribute(w,_),S.intersectTriangle(y,I,A,!1,P)===null)return null;T.copy(P),T.applyMatrix4(b.matrixWorld);let L=x.ray.origin.distanceTo(T);return L<x.near||L>x.far?null:{faceIndex:1,distance:L,point:T.clone(),object:b}}};var ka=new dt.Vector3,Qt=new dt.Camera,uc=class extends dt.LineSegments{constructor(e){let r=new dt.BufferGeometry,o=new dt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new dt.Color(15711266),p=new dt.Color(15711266),a=new dt.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",a),u("u2","u3",a),u("u3","u1",a);function u(f,m,h){d(f,h),d(m,h)}function d(f,m){i.push(0,0,0),s.push(m.r,m.g,m.b),l[f]===void 0&&(l[f]=[]),l[f].push(i.length/3-1)}r.setAttribute("position",new dt.Float32BufferAttribute(i,3)),r.setAttribute("color",new dt.Float32BufferAttribute(s,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=l,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Qt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,l=o?.8:1e-4;nr("n1",r,e,Qt,-i,-s,l),nr("n2",r,e,Qt,i,-s,l),nr("n3",r,e,Qt,-i,s,l),nr("n4",r,e,Qt,i,s,l);let c=l;nr("f1",r,e,Qt,-i,-s,c),nr("f2",r,e,Qt,i,-s,c),nr("f3",r,e,Qt,-i,s,c),nr("f4",r,e,Qt,i,s,c);let p=c,a=.5;nr("u1",r,e,Qt,i*.7*a,s*1.1,p),nr("u2",r,e,Qt,-i*.7*a,s*1.1,p),nr("u3",r,e,Qt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function nr(n,t,e,r,o,i,s){ka.set(o,i,s).unproject(r);let l=t[n];if(l!==void 0){let c=e.getAttribute("position");for(let p=0,a=l.length;p<a;p++)c.setXYZ(l[p],ka.x,ka.y,ka.z)}}var Ha=class extends Nr(uc){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){Ir(this.object,this.geometry,e,r,!0)}};var Yf=require("three");var Gn=class extends Nr(Yf.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Gn.geometryHelper,e,r)}};var Xf=require("three");var Rn=class extends Nr(Xf.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){Ir(this.object,Rn.geometryHelper,e,r)}update(){}};var Kf=require("three");var Vn=class extends Nr(Kf.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Vn.geometryHelper,e,r)}};var qa=require("three");var Wa=class extends Nr(qa.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Wa.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=Wa._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 s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},Vi=Wa;Vi._vector=new qa.Vector3;var ye=require("three"),Fi=1e-12,Fn=class{constructor(t){this.position=new ye.Vector2;this.startPosition=new ye.Vector2;this.uuid=ye.MathUtils.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 Fn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},zn=class extends Fn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new zn(this.parent).copy(this)}},ir=class extends Fn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new zn(this),new zn(this))}static create(e,r){let o=new ir(e,new ye.Vector2(...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 s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.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 ir(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 ye.Vector2,r=new ye.Vector2){let[o,i]=this.computeTangents();return o&&i&&(Zf(o,e),Zf(i,r)),[e,r]}computeTangent(e=new ye.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new ye.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Zf(n,t=new ye.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var dc=n=>n,jn=new ye.Vector2,$a=new ye.Vector2,S1=new ye.Vector2,w1=new ye.Vector2,_1=new ye.Vector2,T1=new ye.Vector2,Jf=new ye.Vector3,em=new ye.Vector3;function tm(n){let t=new ye.Vector2;t.addVectors(n.v0,jn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new ye.Vector2;return e.addVectors(n.v2,$a.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new ye.CubicBezierCurve(n.v0,t,e,n.v2)}function zi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function A1(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function N1(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function fc(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 rm(n,t,e){return Qf(n,t)&&Qf(t,e)&&pc(n.position,t.position,e.position)}function pc(n,t,e){return jn.copy(t).sub(n).cross($a.copy(e).sub(n))===0}function om(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function nm(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function im(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return fc(t,n,e)>Math.PI&&(a*=-1),zi(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function mc(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Qf(n,t){return pc(n.position,n.controls[1].position,t.position)&&pc(n.position,t.controls[0].position,t.position)}function sm(n,t,e,r,o=.5){let i=jn.subVectors(t,n).multiplyScalar(o).add(n),s=$a.subVectors(e,t).multiplyScalar(o).add(t),l=S1.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=w1.subVectors(s,i).multiplyScalar(o).add(i),a=_1.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=T1.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function am(n,t,e=12,r=!0){let o=em.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=dc(t[c]),a=jn,u=yo(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof ye.CubicBezierCurve||p instanceof ye.QuadraticBezierCurve||p instanceof ye.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&N1(i,o))continue;i===void 0&&(i=Jf),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function lm(n,t,e,r=12,o=!0){let i=em.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=dc(t[c]),u=jn,d=yo(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof ye.CubicBezierCurve||a instanceof ye.QuadraticBezierCurve||a instanceof ye.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Jf:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function hc(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=yo(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=yo(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=yo(n[0].roundedCurveCorner,t)*.5),r}function yo(n,t=12){return n&&n instanceof ye.EllipseCurve?t*2:n&&(n instanceof ye.LineCurve||n instanceof ye.LineCurve3)?1:n&&n instanceof ye.SplineCurve?t*n.points.length:t}function cm(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=dc(t[s]),c=yo(l,e),p=jn;for(let a=0;a<=c;a++)if(l instanceof ye.CubicBezierCurve||l instanceof ye.QuadraticBezierCurve||l instanceof ye.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&A1(o,p,Fi))continue;o===void 0&&(o=$a),o.copy(p),n.push(p.x,p.y),i++}}return zi(n[0],n[n.length-2],Fi)&&zi(n[1],n[n.length-1],Fi)&&(n.pop(),n.pop()),r&&i>1&&!(zi(n[i-1],n[1],Fi)&&zi(n[i-2],n[0],Fi))&&(n.push(n[0],n[1]),i++),n}var Ao=require("three");var we=require("three");var gc=new we.Vector2,I1=new we.Vector2,P1=new we.Vector2,O1=new we.Vector2,C1=new we.Vector2,M1=new we.Vector2,Te=class extends we.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new we.EventDispatcher;this.plane=new we.Plane(new we.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=we.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new Te;return i.isClosed=e.isClosed,i.points=e.points.map(s=>ir.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>Te.createFromState(s)),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 s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+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 s=this.shapeHoles[o],l=e-r;if(l<=s.points.length-1)return s.points[l];r+=s.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 s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.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=gc.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=we.MathUtils.generateUUID()){let i;e instanceof we.Vector2?i=e:i=new we.Vector2(e,r);let s=new ir(o,i);return s.roundness=this.roundness,s}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 s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}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(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return am(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=hc(this.points,e,!1),this.roundedCurveDivisions=hc(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return lm(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),cm(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,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=yo(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(mc(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(gc.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){mc(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(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&rm(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),b=f.getLength(),x=Math.min(a,g*.499),S=Math.min(a,b*.499),w=Math.min(x,S),v=1-w/g,N=w/b,_=d.getPointAt(v,gc),y=f.getPointAt(N,I1);this._subSplitCurve(d,m,v,_,void 0),this._subSplitCurve(f,h,N,void 0,y);let I;if(this.useCubicForRoundedCorners){let A=fc(_,l.position,y)/2,P=Math.tan(A)*_.distanceTo(l.position),[T,C]=om(_,y,P,P1,O1),L=nm(T,C,l.position),[j,Y]=im(L,_,y,P,C1,M1);I=new we.CubicBezierCurve(_.clone(),j.clone(),Y.clone(),y.clone())}else I=new we.QuadraticBezierCurve(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof we.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=sm(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new Te(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,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new ir(we.MathUtils.generateUUID(),new we.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Te;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof we.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof we.QuadraticBezierCurve&&(i[l]=tm(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof we.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof we.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof we.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof we.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof we.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new Te;return s.fromShape(i),s})),this.update(),this}};var zo=require("three");var Be;(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"})(Be||(Be={}));var et;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(et||(et={}));function ue(n,t){if(!n)throw t||"Assertion Failed!"}var le=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){ue(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){ue(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){ue(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){ue(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 s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),ji=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}(),Ya=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}(),Un=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}(),um=function(){function n(){var t=new Un,e=new ji,r=new Ya(0),o=new Ya(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 Ya(0),r=new Ya(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;ue(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 s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;ue(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 s=e;do s.Lface=o,s=s.Lnext;while(s!==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,s=t.next;s.prev=i,i.next=s},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,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new Un,e=new Un,r=new ji,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 Un;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new ji;this.makeFace_(s,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 ji;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 Un;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 s=new ji;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;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);s=t.prev,l=t.next,l.prev=s,s.next=l},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,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&le.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&le.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,p;for(i=t,i=t;(o=i.next)!==t;i=o){ue(o.prev===i),c=o.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ue(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ue(s.prev===l),c=s.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ue(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ue(c.Sym.next===p.Sym),ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Org!==null),ue(c.Dst!==null),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c);ue(c.Sym.next===p.Sym&&c.Sym===this.eHeadSym&&c.Sym.Sym===c&&c.Org===null&&c.Dst===null&&c.Lface===null&&c.Rface===null)},n}(),pm=function(){function n(){this.handle=null}return n}(),dm=function(){function n(){this.key=null,this.node=0}return n}(),L1=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 pm,this.handles[r]=new dm;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,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,ue(s<=this.max),i=e[s].handle,s>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=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===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=s}},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 pm;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new dm}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;ue(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}(),yc=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}(),fm=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),E1=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new fm,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 fm;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}(),B1=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,s=r.eUp;if(i.Dst===o)return s.Dst===o?le.vertLeq(i.Org,s.Org)?le.edgeSign(s.Dst,i.Org,s.Org)<=0:le.edgeSign(i.Dst,s.Org,i.Org)>=0:le.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return le.edgeSign(i.Dst,o,i.Org)>=0;var l=le.edgeEval(i.Dst,o,i.Org),c=le.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ue(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ue(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 yc;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 Be.ODD:return(e&1)!==0;case Be.NONZERO:return e!==0;case Be.POSITIVE:return e>0;case Be.NEGATIVE:return e<0;case Be.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,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do ue(le.vertLeq(p.Org,p.Dst)),n.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),p=l.eUp.Sym,p.Org===a.Org;)p.Onext!==a&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(a.Oprev,p)),l.windingNumber=c.windingNumber-p.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!u&&n.checkForRightSplice(t,c)&&(n.addWinding(p,a),n.deleteRegion(t,c),t.mesh.delete(a)),u=!1,c=l,a=p;c.dirty=!0,ue(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=le.vertL1dist(e,t),i=le.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(le.vertLeq(o.Org,i.Org)){if(le.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;le.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(le.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,s;if(ue(!le.vertEq(o.Dst,i.Dst)),le.vertLeq(o.Dst,i.Dst)){if(le.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(le.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,p=i.Dst,a,u,d=new Un,f,m;if(ue(!le.vertEq(p,c)),ue(le.edgeSign(c,t.event,s)<=0),ue(le.edgeSign(p,t.event,l)>=0),ue(s!==t.event&&l!==t.event),ue(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(le.vertLeq(s,l)){if(le.edgeSign(p,s,l)>0)return!1}else if(le.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),le.intersect(c,s,p,l,d),ue(Math.min(s.t,c.t)<=d.t),ue(d.t<=Math.max(l.t,p.t)),ue(Math.min(p.s,c.s)<=d.s),ue(d.s<=Math.max(l.s,s.s)),le.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=le.vertLeq(s,l)?s:l,le.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),le.vertEq(d,s)||le.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!le.vertEq(c,t.event)&&le.edgeSign(c,t.event,d)>=0||!le.vertEq(p,t.event)&&le.edgeSign(p,t.event,d)<=0?p===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):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(le.edgeSign(c,t.event,d)>=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),le.edgeSign(p,t.event,d)<=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=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,p),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,s=n.regionBelow(e),l=e.eUp,c=s.eUp,p=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),le.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),p=!0),le.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),p=!0),p){n.addRightEdges(t,e,r.Onext,i,i,!0);return}le.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,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,s,l,c;if(o=e.eUp,le.vertEq(o.Org,r)){ue(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!le.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}ue(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ue(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),le.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,p=new yc;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,le.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=le.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),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);ue(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new yc,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,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 E1(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,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(ue(e.fixUpperEdge),ue(++r===1)),ue(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,le.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 L1(i,le.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,ue(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||!le.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}(),D1=function(){function n(){this.mesh=new um,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=Be.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,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var b=0;b<3;++b)i=e.coords[b],i<p[b]&&(p[b]=i,m[b]=e),i>c[b]&&(c[b]=i,f[b]=e);var x=0;if(c[1]-p[1]>c[0]-p[0]&&(x=1),c[2]-p[2]>c[x]-p[x]&&(x=2),p[x]>=c[x]){t[0]=0,t[1]=0,t[2]=1;return}for(l=0,r=m[x],o=f[x],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;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],d[0]=a[1]*u[2]-a[2]*u[1],d[1]=a[2]*u[0]-a[0]*u[2],d[2]=a[0]*u[1]-a[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.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 s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,p=t.next;p!==t;p=p.next)c?(this.bmin[0]=this.bmax[0]=p.s,this.bmin[1]=this.bmax[1]=p.t,c=!1):(p.s<this.bmin[0]&&(this.bmin[0]=p.s),p.s>this.bmax[0]&&(this.bmax[0]=p.s),p.t<this.bmin[1]&&(this.bmin[1]=p.t),p.t>this.bmax[1]&&(this.bmax[1]=p.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(;le.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;le.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(le.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(le.edgeGoesLeft(o.Lnext)||le.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&&(le.edgeGoesRight(r.Lprev)||le.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,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;p.n===-1&&(p.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===et.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===et.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.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 c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new um),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,s){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=et.POLYGONS),s===void 0&&(s=!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_(),B1.computeInterior(this,s);var l=this.mesh;return e===et.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===et.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function Fo(n){var t=n.windingRule,e=t===void 0?Be.ODD:t,r=n.elementType,o=r===void 0?et.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var b=new D1;n.edgeCreateCallback&&(b.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(b.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)b.addContour(c||2,d[x]);return b.tesselate(e,o,s,c,a,m),{vertices:b.vertices,vertexIndices:b.vertexIndices,vertexCount:b.vertexCount,elements:b.elements,elementCount:b.elementCount,mesh:g?b.mesh:void 0}}}var IB=Be.ODD,PB=Be.NONZERO,OB=Be.POSITIVE,CB=Be.NEGATIVE,MB=Be.ABS_GEQ_TWO,LB=et.POLYGONS,EB=et.CONNECTED_POLYGONS,BB=et.BOUNDARY_CONTOURS;var kn=class extends zo.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=et.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:et.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,b=i[g+0],x=i[g+1];if(a!==void 0&&b!==a&&(c=!1),u!==void 0&&x!==u&&(p=!1),a=b,u=x,!c&&!p)break}!c&&!p&&(l=Fo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new zo.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new zo.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new zo.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new zo.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,b=-1/0;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>b&&(b=y)}let x=h-m,S=b-g;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1],I=(_-m)/x,A=(y-g)/S;this._positionAttribute.setXYZ(w,_,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,I,A)}for(let w=0,v=f;w<v;w++){let N=w*3,_=l.elements[N+0],y=l.elements[N+1],I=l.elements[N+2];this._indexAttribute.setX(N+0,_),this._indexAttribute.setX(N+1,y),this._indexAttribute.setX(N+2,I)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(l?.elementCount??1)*3)}clone(){let e=new kn(this._shape,this._curveSegments);return e.userData=Ii(this.userData),e}};var jo=require("three");var Xa=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*Xa.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*Xa.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,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)}},Ui=Xa;Ui.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var xc=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Hn=class extends jo.BufferGeometry{constructor(e,r,o=0,i=12,s=3,l=Be.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),p=this._shape.shapeHoles.map(y=>{let I=y.extractShapePointsToFlatArray([],i),A=[];for(let P=I.length-1;P>=1;P-=2){let T=I[P-1],C=I[P-0];A.push(T,C)}return A}),a=Fo({windingRule:l,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=Fo({windingRule:Be.ODD,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...p]});if(!a)throw new Error("error generating geometry");let d=a.elementCount;if(u){a.elementCount+=u.elementCount;for(let y=0;y<u.elements.length;y++){let I=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(I+A)}for(let y=0;y<u.vertexIndices.length;y++){let I=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(I+A)}for(let y=0;y<u.vertices.length;y++){let I=u.vertices[y];a.vertices.push(I)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,I=a.vertexCount;y<I;y++){let A=y*2,P=a.vertices[A+0],T=a.vertices[A+1];P<f&&(f=P),P>m&&(m=P),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let b=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ui(b);let x=[],S=[];for(let y=a.elementCount-1;y>=0;y--){let I=y>=d,A=y*2,P=a.elements[A+0],T=a.elements[A+1],C=P+T,L={start:P,count:T,normals:[],continuous:[],concave:[]},j=P,Y=C-1,te=P+1,ie=this._shape.roundedCurves.length;do{let F=j-P,E=a.vertices[Y*2+0],D=a.vertices[Y*2+1],B=a.vertices[j*2+0],k=a.vertices[j*2+1],$=a.vertices[te*2+0],H=a.vertices[te*2+1],V=B-E,G=k-D,z=Math.sqrt(V*V+G*G);V/=z,G/=z;let J=B-$,oe=k-H,ae=Math.sqrt(J*J+oe*oe);J/=ae,oe/=ae,L.normals[F*2+0]=-oe,L.normals[F*2+1]=J,L.concave[F]=V*oe-G*J>0;let re=a.vertexIndices[j];if(Array.isArray(re))L.continuous[F]=!1;else{let[ee,Q]=this._shape.getCurveIndexFromVertexId(re-1,!0);if(Q>0&&Q<1)L.continuous[F]=!0;else{let K=Q===1?ee+1:ee-1;K=(K+ie)%ie;let me=Q===1?0:1,de=this._shape.roundedCurves[ee].getTangent(Q),be=this._shape.roundedCurves[K].getTangent(me);L.continuous[F]=de.dot(be)>.95}}I&&(L.normals[F*2+0]*=-1,L.normals[F*2+1]*=-1),[Y,j,te]=[j,te,te+1],te>=C&&(te-=T)}while(te!==P+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(P*2,C*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(P*2,C*2)});for(let F=1;F<=this._bevelSegments;F++){let E=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(E))*this._bevelSize,B=[],k=[],$=[],H=[],V=0;for(let z=0;z<T;z++){let J=z*2,oe=(z-1+T)%T*2,ae=a.vertices[L.start*2+J+0],re=a.vertices[L.start*2+J+1],ee=-L.normals[oe+0]*D,Q=-L.normals[oe+1]*D,K=-L.normals[J+0]*D,me=-L.normals[J+1]*D;if(L.concave[z]||!L.concave[z]&&I){let de=Math.atan2(Q,ee),be=Math.atan2(me,K);be>de&&(be-=Math.PI*2);let st=be-de;if(L.continuous[z]||I){let Ie=de+st/2,Oe=Math.cos(Ie)*D,Ee=Math.sin(Ie)*D;B[2*V+0]=ae+Oe*(I?-1:1),B[2*V+1]=re+Ee*(I?-1:1),H[V]=z,V++}else{let Ie=Math.max(1,Math.floor(i/4*Math.abs(st)/Math.PI));for(let Oe=0;Oe<=Ie;Oe++){let Ee=de+st*(Oe/Ie),Ht=Math.cos(Ee)*D,to=Math.sin(Ee)*D;B[2*V+0]=ae+Ht,B[2*V+1]=re+to,H[V]=z,V++}}}else B[2*V+0]=ae+ee,B[2*V+1]=re+Q,H[V]=z,k[z]=V,V++,B[2*V+0]=ae,B[2*V+1]=re,H[V]=z,V++,B[2*V+0]=ae+K,B[2*V+1]=re+me,H[V]=z,$[z]=V,V++}let G=Fo({windingRule:Be.POSITIVE,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:z=>{let oe=z.Org.idx,ae=H[oe],re=H[(oe+1)%H.length];z.idx=[ae,re],z.Sym.idx=[re,ae]},vertexIdCallback:z=>{let J=z.Lprev.idx;return[J?J[1]:0,z.idx[0]]}});if(!G)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!G.vertexCount)break;for(let z=0;z<G.vertexIndices.length;z++){let[J,oe]=G.vertexIndices[z];if(J===oe)continue;let ae=oe;oe<J&&(ae+=T);for(let re=J;re<ae;re++){let ee=re%T,Q=(re+1)%T;if(!L.continuous[ee]||!L.continuous[Q]){G.vertexIndices[z]=[J,ee],G.vertexIndices.splice(z+1,0,[Q,oe]),G.vertices.splice((z+1)*2,0,G.vertices[z*2],G.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:E,size:D,boundary:G,reverseMap:H,insetPoints:B})}let W=(F,E,D)=>{let B=0,k=F.boundary.vertexIndices.length;for(;B<k&&D(F.boundary.vertexIndices[E]);)E=(E+1)%k,B++;return B},q=x.length;for(let F=1;F<U.length;F++){let E=U[F-1],D=U[F],B=E.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!B||!k)break;let $=L.concave.length,H=0,V=xc(H,T);for(;!E.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=xc(H,T);let G=E.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do G=(G+1)%B;while(V(E.boundary.vertexIndices[G]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let J=H,oe=this.buildBevelVert(L,E,(G-1+B)%B),ae=this.buildBevelVert(L,D,(z-1+k)%k),re=oe,ee=ae,Q,K,me=!1;do{V=xc(H,T);let de=W(E,G,V),be=W(D,z,V),st=me;if(me=!1,de&&!be){for(let Ie=0;Ie<de;Ie++)Q=this.buildBevelVert(L,E,(G+Ie)%B,Ie/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q;me=!0}else if(!de&&be)for(let Ie=0;Ie<be;Ie++)K=this.buildBevelVert(L,D,(z+Ie)%k,Ie/(be-1)),x.push(ee.topN,re.topP,K.topP),x.push(re.bottomP,ee.bottomN,K.bottomP),ee=K;else if(de&&be)if(Q=this.buildBevelVert(L,E,G,0),K=this.buildBevelVert(L,D,z,0),st?(x.push(re.topN,K.topP,ee.topN),x.push(re.topN,Q.topP,K.topP),x.push(K.bottomP,re.bottomN,ee.bottomN),x.push(K.bottomP,Q.bottomP,re.bottomN)):(x.push(ee.topN,re.topN,Q.topP),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP)),re=Q,ee=K,de===be)for(let Ie=1;Ie<de;Ie++)Q=this.buildBevelVert(L,E,(G+Ie)%B,Ie/(de-1)),K=this.buildBevelVert(L,D,(z+Ie)%k,Ie/(be-1)),x.push(re.topN,Q.topP,ee.topN),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP),re=Q,ee=K;else if(de>be){let Ie=de/be,Oe=0;for(let Ee=1;Ee<de;Ee++)Q=this.buildBevelVert(L,E,(G+Ee)%B,Ee/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q,Ee>(Oe+1)*Ie&&(Oe++,K=this.buildBevelVert(L,D,(z+Oe)%k,Oe/(be-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K)}else{let Ie=be/de,Oe=0;for(let Ee=1;Ee<be;Ee++)K=this.buildBevelVert(L,D,(z+Ee)%k,Ee/(be-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K,Ee>(Oe+1)*Ie&&(Oe++,Q=this.buildBevelVert(L,E,(G+Oe)%B,Oe/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q)}G=(G+de)%B,z=(z+be)%k,H=(H+1)%$}while(H!==J)}{let F=U[0];for(let E=0,D=F.boundary.vertexCount;E<D;E++){let B=this.buildBevelVert(L,F,E),k=this.buildBevelVert(L,F,(E+1)%D);x.push(k.topP,B.topN,B.bottomN),x.push(k.topP,B.bottomN,k.bottomP)}}if(I){let F=[];for(let E=x.length-1;E>=q+2;E-=3){let D=x[E-2],B=x[E-1],k=x[E-0];F.push(k,B,D)}x.splice(q,x.length-q,...F)}if(I){let F=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let D=U[U.length-1].boundary.vertices[E-1],B=U[U.length-1].boundary.vertices[E-0];F.push(D,B)}S.push(F)}if(!I){let F=U[U.length-1],E=Fo({windingRule:U.length>1?Be.POSITIVE:Be.ODD,elementType:et.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...S]});if(!E)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<E.elementCount*3;D+=3){let B=this.buildSurfaceVert(E,E.elements[D+0]),k=this.buildSurfaceVert(E,E.elements[D+1]),$=this.buildSurfaceVert(E,E.elements[D+2]);x.push(B.top,k.top,$.top),x.push($.bottom,k.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new jo.BufferAttribute(Uint32Array.from(x),1),v=new jo.BufferAttribute(this._buffer.positions,3),N=new jo.BufferAttribute(this._buffer.normals,3),_=new jo.BufferAttribute(this._buffer.uvs,2);v.needsUpdate=!0,N.needsUpdate=!0,_.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",N),this.setAttribute("uv",_),this.setIndex(w)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,b=a*2,x=r.boundary.vertices[h+0],S=r.boundary.vertices[h+1],w=(1-m)*this._bevelSize,v=(x-this._minX)/this._width,N=(S-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],I=e.normals[b+0],A=e.normals[b+1];if(d){let j=I-_,Y=A-y;_=_+j*(1-i),y=y+Y*(1-i);let te=Math.sqrt(_*_+y*y);_/=te,y/=te}let P=this._buffer.get(u?2:4),T=P*3,C=P*2,L={i:o,fi:p,topP:P+0,topN:P+0,bottomP:P+1,bottomN:P+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v,u||(P+=2,T+=6,C+=4,L.topP=P+0,L.bottomP=P+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=I*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=I*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v),this.vertexCache[s]=L,L}clone(){let e=new Hn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Ii(this.userData),e}};var ft=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:Be.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof Te?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new Te(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new Te(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return t<=0?l=new kn(n.shape,o,{windingRule:s}):l=new Hn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var ml=require("three");var gm=require("three");var je=require("three"),hm=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:0,cornerSegments:8,hollow:0},n.parameters),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:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new ki(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new je.CylinderGeometry(p,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function xo(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function mm(n){return new je.Vector2(n.y,-n.x)}var ki=class extends je.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,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,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],b=[],x=0,S=r/2,w=new je.Vector3,v=new je.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let N=new je.Vector2(t,S),_=new je.Vector2(e,-S),y=null,I=null,A=null,P=null,T=N.clone().sub(_),C=0,L=0,j=0;d>0&&(C=Math.min(t,e)*(1-d),L=t-C,j=e-C);let Y=N.clone();Y.x-=C;let te=Math.PI-T.angle(),ie=T.angle(),U=Math.tan(ie/2),W=Math.tan(te/2),q=U+W,F=d?q:W,E=d?q:U;if(p=Math.min(p,(t-L)/F,T.length()/q),a=Math.min(a,(e-j)/E,T.length()/q),p>0){let V=p/U;y=N.clone().sub(new je.Vector2(V,p)),d&&(A=y.clone(),A.x-=C-q*p),N.sub(T.clone().setLength(V))}if(a>0){let V=a/W;I=_.clone().sub(new je.Vector2(V,-a)),_.add(T.clone().setLength(V)),d&&(P=I.clone(),P.x-=C-q*a,Y.sub(T.clone().setLength(V)))}T=N.clone().sub(_);let D=T.length()<.5,B=[];for(let V=0;V<=o;V++){let G=[],z=V/o,J=z*c+l,oe=new je.Vector2(Math.sin(J),Math.cos(J));P&&I?(k(G,z,oe,te,a,P,-1,!0),k(G,z,oe,ie,a,I,-1,!1)):I?($(G,oe,I.x,0,-1),k(G,z,oe,ie,a,I,-1,!1)):s||$(G,oe,e,j,-1);let ae=mm(T).normalize();if(xo(ae,oe,w),!D)for(let re=0;re<=i;re++){let ee=re/i,Q=T.clone().multiplyScalar(ee).add(_);xo(Q,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}if(A&&y?(k(G,z,oe,te,p,y,1,!1),k(G,z,oe,ie,p,A,1,!0)):y?(k(G,z,oe,te,p,y,1,!1),$(G,oe,y.x,0,1)):s||$(G,oe,t,L,1),d&&!D){let re=mm(T).multiplyScalar(-1).normalize();xo(re,oe,w);for(let ee=0;ee<=i;ee++){let Q=ee/i,K=T.clone().multiplyScalar(-Q).add(Y);xo(K,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}}d&&!s&&G.push(G[0]),B.push(G)}for(let V=0;V<B.length-1;V++)for(let G=0;G<B[0].length-1;G++){if(s&&d&&G==i)continue;let z=B[V][G],J=B[V+1][G],oe=B[V+1][G+1],ae=B[V][G+1],re=h[oe*3+0],ee=h[oe*3+2];m.push(z,J,ae),(re!=0||ee!=0)&&m.push(J,oe,ae)}c<Math.PI*2&&(H(-1,B[0],l),H(1,B[B.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new je.Float32BufferAttribute(h,3)),this.setAttribute("normal",new je.Float32BufferAttribute(g,3)),this.setAttribute("uv",new je.Float32BufferAttribute(b,2));function k(V,G,z,J,oe,ae,re,ee){for(let Q=0;Q<u+1;Q++){let K=Q/u,me=re<0?K:1-K;ee&&(me-=1),me*=J;let de=new je.Vector2(Math.sin(me),Math.cos(me)*re),be=de.clone().multiplyScalar(oe).add(ae);xo(be,z,v),h.push(v.x,v.y,v.z),xo(de,z,w),g.push(w.x,w.y,w.z),b.push(G,.5+v.y/r),V.push(x++)}}function $(V,G,z,J,oe){let ae=new je.Vector3,re=new je.Vector2,ee=[z,J];oe<0&&ee.reverse();for(let Q of ee)re.set(Q,S*oe),xo(re,G,ae),h.push(ae.x,ae.y,ae.z),g.push(0,oe,0),b.push(.5,.5),V.push(x++)}function H(V,G,z){let J=new je.Vector2(Math.sin(z),Math.cos(z)),oe=new je.Vector2(-Math.cos(z),Math.sin(z)),ae=new je.Vector3,re=V<0?(K,me,de)=>m.push(K,me,de):(K,me,de)=>m.push(K,de,me),ee=new je.Vector2((t+e+L+j)/4,0);xo(ee,J,ae),h.push(ae.x,ae.y,ae.z),g.push(oe.x,0,oe.y),b.push(.5,.5);let Q=x++;for(let K of G){let me=h.slice(K*3,K*3+3);h.push(...me),g.push(oe.x,0,oe.y);let de=b.slice(K*2,K*2+2);b.push(...de),x++}for(let K=Q+1;K<x-1;K++)re(Q,K,K+1);re(Q,x-1,Q+1)}}};var ym=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:0,cornerRadiusBottom:0,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,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new ki(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new gm.ConeGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Ct=require("three"),xm=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:0,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:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Ct.BoxGeometry(t,e,r,o,i,s):p=new vc(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},bc=Math.PI/2,vc=class extends Ct.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxGeometry";let p=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],u=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(b("z","y","x",-1,-1,1,r,e,t,s,0),b("z","y","x",1,-1,-1,r,e,t,s,1),b("z","y","x",-1,1,-1,r,e,t,s,1),b("z","y","x",1,1,1,r,e,t,s,0),b("x","y","z",-1,-1,-1,t,e,r,o,0),b("x","y","z",1,-1,1,t,e,r,o,1),b("x","y","z",-1,1,1,t,e,r,o,0),b("x","y","z",1,1,-1,t,e,r,o,1),b("y","x","z",-1,-1,1,e,t,r,i,0),b("y","x","z",1,-1,-1,e,t,r,i,1),b("y","x","z",1,1,1,e,t,r,i,1),b("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(a),this.setAttribute("position",new Ct.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Ct.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Ct.Float32BufferAttribute(f,2));function g(S,w,v,N,_,y,I,A,P,T,C){let L=(y-2*l)/P,j=(I-2*l)/T,Y=y/2-l,te=I/2-l,ie=A/2,U=P+1,W=T+1,q=0,F=0,E=new Ct.Vector3;for(let D=0;D<W;D++){let B=D*j-te;for(let k=0;k<U;k++){let $=k*L-Y;E[S]=$*N,E[w]=B*_,E[v]=ie,u.push(E.x,E.y,E.z),E[S]=0,E[w]=0,E[v]=A>0?1:-1,d.push(E.x,E.y,E.z),f.push(k/P),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let B=0;B<P;B++){let k=m+B+U*D,$=m+B+U*(D+1),H=m+(B+1)+U*(D+1),V=m+(B+1)+U*D;a.push(k,$,V),a.push($,H,V),F+=6}p.addGroup(h,F,C),h+=F,m+=q}function b(S,w,v,N,_,y,I,A,P,T,C){let L=(I-2*l)/T,j=I/2-l,Y=A/2-l,te=P/2,ie=T+1,U=0,W=0,q=new Ct.Vector3,F=new Ct.Vector3;for(let E=0;E<c+1;E++){let D=E/c*bc,B=Math.sin(D)*l,k=(1-Math.cos(D))*l,$=Math.sin(D),H=Math.cos(D);q[w]=(Y+B)*_,q[v]=(te-k)*y,F[S]=0,F[w]=$*Math.sign(q[w]),F[v]=H*Math.sign(q[v]);for(let V=0;V<ie;V++){let G=V*L-j;q[S]=G*N,u.push(q.x,q.y,q.z),d.push(F.x,F.y,F.z),f.push(V/T),f.push(0),U+=1}}for(let E=0;E<c;E++)for(let D=0;D<T;D++){let B=m+D+ie*E,k=m+D+ie*(E+1),$=m+(D+1)+ie*(E+1),H=m+(D+1)+ie*E;a.push(B,k,H),a.push(k,$,H),W+=6}p.addGroup(h,W,C),h+=W,m+=U}function x(S,w,v){let N=new Ct.Vector3,_=new Ct.Vector3(t/2,e/2,r/2);_.subScalar(l);let y=[],I=S*w*v>0?(P,T,C)=>a.push(P,T,C):(P,T,C)=>a.push(P,C,T);for(let P=0;P<=c;P++){let T=[],C=bc*(1-P/c),L=Math.cos(C),j=Math.sin(C),Y=0;for(let te=0;te<=P;te++){let ie=Math.cos(Y),U=Math.sin(Y);N.x=L*ie,N.y=j,N.z=L*U;let W=_.clone().addScaledVector(N,l);u.push(S*W.x,w*W.y,v*W.z),d.push(S*N.x,w*N.y,v*N.z),f.push(0,0),T.push(m++),Y+=bc/P}y.push(T)}let A=y.length-1;for(let P=0;P<A;P++){let T=y[P],C=y[P+1],L=T.length-1;I(T[0],C[1],C[0]);for(let j=1;j<=L;j++)I(T[j-1],T[j],C[j]),I(T[j],C[j+1],C[j])}}}};var qe=require("three"),bo=class extends qe.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new qe.Float32BufferAttribute(l,3)),this.setAttribute("normal",new qe.Float32BufferAttribute(p,3)),this.setAttribute("uv",new qe.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new qe.Vector3,h=m.clone(),g=new qe.Triangle,b=i*o,x=o-b,S=s+1,w=new qe.Vector3,v=(U,W)=>w.subVectors(U,W).normalize(),N=(U,W)=>Array(U).fill(void 0).map(W),_=N(t.length/3,(U,W)=>new qe.Vector3().fromArray(t,W*3).setLength(o)),y=[],I=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,E,D,B=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let G=k-k%3;F=e[G+(k+1)%3],E=e[G+(k+2)%3],D=W.distanceToSquared(_[F]),B=Math.min(B,D),q.push([F,E,D])}B+=1e-6;let $=[],H=0,V=q.length;for(let G=0;G<V;G++){[F,E,D]=q[H];let z=y[F]?.includes(U)==!0;D<=B&&$.push(F+ +z*I),H=q.findIndex(J=>J[0]==E)}y.push($)}let A=[];{let U=0,W=0,q,F,E=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let B=0;B<s-D;B++)[U,W]=[q+B+D+2,F+B+D+3],A.push(q,F,...E?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let P=m.clone(),T=m.clone(),C=m.clone(),L=m.clone(),j=m.clone(),Y=[],te=N(_.length,()=>N(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),P.copy(m).multiplyScalar(x);let W=y[U];for(let $=0;$<W.length;$++){let H=W[$],V=W[($+1)%f];g.setFromPointsAndIndices(_,U,H%I,V%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(P,te[U][$])}let q=[],F=[],E=[],D=new qe.Vector3;s==0&&[...te[U]].reduce(($,H)=>$.add(H),D).multiplyScalar(1/f);for(let $=0;$<f;$++){let H=[],V=($-1+f)%f,G=te[U][V],z=te[U][$];m.copy(G).sub(P),h.copy(z).sub(P);let J=P.angleTo(m),oe=m.angleTo(h),ae=Math.cos(J)*b;s==0?T.copy(D):T.copy(P).setLength(x+ae),F.push(ae);let re=[T,G,z];for(let ee=0;ee<2;ee++){let Q=re[ee],K=re[ee+1];L.subVectors(Q,P),j.subVectors(K,P),C.crossVectors(L,j).normalize();for(let me=0;me<S;me++){let de=[J,oe][ee]*me/S;m.copy(L).applyAxisAngle(C,de).add(P),q.push(m.clone()),ee&&(v(m,P),H.push([me==0?Q:m.clone(),w.clone()]))}ee&&(v(K,P),H.push([K,w.clone()]))}E.push(H)}Y.push(E);let B=2*S,k=2;for(let $=0;$<f;$++){let H=B*$,V=B*(($+1)%f),G=[q[H]];for(let J=1;J<S;J++){L=q[H+J],j=q[V+J],G.push(L);for(let oe=1,ae=J-k+1;oe<=ae;oe++)m.lerpVectors(L,j,oe/(ae+1)),m.sub(P).setLength(F[$]).add(P),G.push(m.clone());G.push(j)}for(let J=0;J<S;J++)G.push(q[J+S+H]);G.push(q[V+S]);let z=A.map(J=>G[J]);l.push(...z.map(J=>[J.x,J.y,J.z]).flat()),p.push(...z.map(J=>(v(J,P),[w.x,w.y,w.z])).flat())}}let ie=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<I){let F=y[q].findIndex(B=>B%I==U),E=Y[U][W],D=Y[q][F];for(let B=0;B<S;B++){let k=E[B],$=D[S-B],H=E[B+1],V=D[S-(B+1)];[k,$,H,H,$,V].forEach(G=>{l.push(G[0].x,G[0].y,G[0].z),p.push(G[1].x,G[1].y,G[1].z)})}ie.push(E[0][0],D[S][0],E[S][0],D[0][0])}}for(;ie.length;){let U,W,q,F;[U,W]=ie.splice(0,2);let E=[U];for(;U!=W;)E.push(W),q=ie.indexOf(W),F=q%2,W=ie.splice(q-F,2)[1-F];w.subVectors(E[0],E[1]).cross(m.subVectors(E[0],E[2])).normalize();let D=w.dot(E[0])<0;D&&w.negate();for(let B=1;B<=E.length-2;B++)[E[B+ +D],E[B+1-+D],E[0]].forEach(k=>{l.push(k.x,k.y,k.z),p.push(w.x,w.y,w.z)})}}function u(){let d=new qe.Vector3;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=v(d)/2/Math.PI+.5,I=N(d)/Math.PI+.5;c.push(y,1-I)}let f=new qe.Vector3,m=new qe.Vector3,h=new qe.Vector3,g=new qe.Vector3,b=new qe.Vector2,x=new qe.Vector2,S=new qe.Vector2,w=(_,y,I,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),I.x===0&&I.z===0&&(c[y]=A/2/Math.PI+.5)};for(let _=0,y=0;_<l.length;_+=9,y+=6){f.set(l[_+0],l[_+1],l[_+2]),m.set(l[_+3],l[_+4],l[_+5]),h.set(l[_+6],l[_+7],l[_+8]),b.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),S.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let I=v(g);w(b,y+0,f,I),w(x,y+2,m,I),w(S,y+4,h,I)}for(let _=0;_<c.length;_+=6){let y=c[_+0],I=c[_+2],A=c[_+4],P=Math.max(y,I,A),T=Math.min(y,I,A);P>.9&&T<.1&&(y<.2&&(c[_+0]+=1),I<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function v(_){return Math.atan2(_.z,-_.x)}function N(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new bo(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var bm=require("three"),vm=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:s}=n.parameters,l=o===0&&i!==0?new Hi(t*.5,i,s):new bm.DodecahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},Hi=class extends bo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-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],l=[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],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new Hi(t.radius,t.corner,t.cornerSides)}};var wc=Math.PI*2;function Sc({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function G1(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),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function Sm(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 R1(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,b=h+(n+e)/2,x=g+(t+r)/2,S=(s-h)/o,w=(l-g)/i,v=(-s-h)/o,N=(-l-g)/i,_=Sm(1,0,S,w),y=Sm(S,w,v,N);return!p&&y>0&&(y-=wc),p&&y<0&&(y+=wc),{centerx:b,centery:x,ang1:_,ang2:y}}function wm({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=R1(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,b=Math.abs(m)/(wc/4);Math.abs(1-b)<1e-7&&(b=1);let x=Math.max(Math.ceil(b),1);m/=x;for(let S=0;S<x;S++)c.push(G1(f,m)),f+=m;return c.map(S=>{let{x:w,y:v}=Sc(S[0],o,i,h,g),{x:N,y:_}=Sc(S[1],o,i,h,g),{x:y,y:I}=Sc(S[2],o,i,h,g);return{x1:w,y1:v,x2:N,y2:_,x:y,y:I}})}var qn=require("three"),Tm=Math.PI*2,Am=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{shape:n.shape&&n.shape instanceof Te?n.shape:new Te,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:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=V1(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=ft.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function V1(n,t,e,r,o,i){if(r>=Tm)return o>30||o%4===0?(z1(n,t,e,i),Math.round(o/4)):_m(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=wm({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%p.length===0?F1(n,s.x,s.y,p,o,t,e,i):_m(n,r,o,t,e,i)}function F1(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(Wn(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=Wn(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?Nm(n,i,s,l):n.addPoint(Wn(0,0)),c}function _m(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(Wn(p,a))}return t<Tm?i>0?Nm(n,r,o,i):n.addPoint(Wn(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Im(n,r,o,i)),1}function z1(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(Ka(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(Ka(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(Ka(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(Ka(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Im(n,t,e,r)}function Wn(n,t){return new ir(qn.MathUtils.generateUUID(),new qn.Vector2(n,t))}function Ka(n,t,e,r,o,i){let s=Wn(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function Nm(n,t,e,r){Pm(n,t,e,r).forEach(i=>n.addPoint(i))}function Im(n,t,e,r){let o=Pm(n,t,e,r),i=new Te;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Pm(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new qn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=qn.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Kr=require("three"),Om=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),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,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:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new Wi(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},Wi=class extends Kr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Kr.Vector3,h=new Kr.Vector3,g=m(),b=m(),x=m(),S,w,v,N,_,y,I,A,P=m(),T=m(),C=m(),L=m(),j=m(),Y=m(),te=m(),ie=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,E=U/q,D=-U/2,B=a+1,k=2*Math.PI/a,$=Math.PI/2/d,H=.01,V=Math.min((1-u/100)*c,c-H),G=c-V,z=0,J=2,oe=d*J+J,ae=B*oe/J,re=ae+B*F,ee=B*(F+oe),[Q,K,me]=[3,3,2].map($e=>Array(ee*$e).fill(0)),de=[],be=i-c;function st($e,Gt){let dr=Math.PI/2;y=Gt*E,A=2*Math.PI*(y%W)/W+dr,y+=D,I=Math.sin(A)*be,_=Math.cos(A)*be,t?$e.set(_,I,y):$e.set(_,y,I)}st(h,-1e-10),st(g,0),P.copy(h),st(h,1);let Ie=h.distanceTo(g),Oe=G+V,Ee=Ie*q+2*Oe,Ht=V,to=Ee-Oe;for(let $e=0;$e<=q;$e++){st(b,$e),ie.subVectors(b,P).normalize(),P.copy(b),Y.copy(b).setComponent(+t+1,0).normalize(),te.crossVectors(ie,Y).normalize();let Gt=$e===0,dr=$e===q,mg=Gt?3*Math.PI/2:$,hg=Gt?Ht:to,gg=Gt?B:re,yg=Gt?0:ee-B,xg=ie.clone().multiplyScalar(Gt?-G:G).add(b),bg=ie.clone().multiplyScalar(Gt?-1:1).normalize();for(let zr=0;zr<B;zr++){let cu=zr*k;if(T.addVectors(h.copy(Y).multiplyScalar(c*Math.cos(cu)),g.copy(te).multiplyScalar(c*Math.sin(cu))),C.copy(T).normalize(),Gt||dr){f||(z=yg+zr,[0,1,2].forEach(At=>{Q[z*3+At]=xg.getComponent(At),K[z*3+At]=bg.getComponent(At)}),me[z*2]=+dr,me[z*2+1]=zr/a),g.copy(C).multiplyScalar(V),x.addVectors(b,g);for(let At=0;At<d;At++){let Al=At*$+mg;L.addVectors(h.copy(ie).multiplyScalar(G*Math.sin(Al)),g.copy(C).multiplyScalar(G*Math.cos(Al))),j.copy(L).normalize(),g.addVectors(x,L),L.normalize(),z=gg+At*B+zr,[0,1,2].forEach(Cs=>{Q[z*3+Cs]=g.getComponent(Cs),K[z*3+Cs]=j.getComponent(Cs)});let vg=+Gt+Math.sin(Al);me[z*2]=(hg+G*vg)/Ee,me[z*2+1]=zr/a}}g.addVectors(b,T),z=ae+$e*B+zr,[0,1,2].forEach(At=>{Q[z*3+At]=g.getComponent(At),K[z*3+At]=C.getComponent(At)}),me[z*2]=(Oe+$e*Ie)/Ee,me[z*2+1]=zr/a}}let Dt=F+2*d+J,Xo=1,[Ps,Os]=f?[Xo,Xo+F-1]:[0,Dt-1];for(let $e=Ps;$e<=Os-1;$e++){let Gt=f&&$e===Os-1;for(let dr=0;dr<B-1;dr++)S=$e*B+dr,w=S+1,v=(Gt?dr:S)+B,N=(Gt?dr+1:w)+B,$e===0?de.push(w,N,v):$e===Dt-2?de.push(S,w,v):de.push(S,w,v,w,N,v)}this.setIndex(de),this.setAttribute("position",new Kr.Float32BufferAttribute(Q,3)),this.setAttribute("normal",new Kr.Float32BufferAttribute(K,3)),this.setAttribute("uv",new Kr.Float32BufferAttribute(me,2))}};var Cm=require("three");var Mm=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:s}=n.parameters,l=o===0&&i!==0?new qi(t*.5,i,s):new Cm.IcosahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},qi=class extends bo{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],s=[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],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new qi(t.radius,t.corner,t.cornerSides)}};var Za=require("three"),Lm=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 Za.Shape;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 Za.LatheGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Or=require("three");var Zr=require("three");var se=require("three"),Pr=new se.Matrix4,_c=new se.Object3D,Qa=new se.Vector3,vo=class extends se.EventDispatcher{constructor(){super(),this.uuid=se.MathUtils.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 se.Matrix3().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 s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Pr.makeRotationX(t),this.applyMatrix4(Pr),this}rotateY(t){return Pr.makeRotationY(t),this.applyMatrix4(Pr),this}rotateZ(t){return Pr.makeRotationZ(t),this.applyMatrix4(Pr),this}translate(t,e,r){return Pr.makeTranslation(t,e,r),this.applyMatrix4(Pr),this}scale(t,e,r){return Pr.makeScale(t,e,r),this.applyMatrix4(Pr),this}lookAt(t){return _c.lookAt(t),_c.updateMatrix(),this.applyMatrix4(_c.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,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new se.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new se.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],b=s===void 0?[]:[new se.Vector3().fromBufferAttribute(s,d),new se.Vector3().fromBufferAttribute(s,f),new se.Vector3().fromBufferAttribute(s,m)],x=new $n(d,f,m,b,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new se.Vector2().fromBufferAttribute(c,d),new se.Vector2().fromBufferAttribute(c,f),new se.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new se.Vector2().fromBufferAttribute(p,d),new se.Vector2().fromBufferAttribute(p,f),new se.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,b=m+h;g<b;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+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(Qa).negate(),this.translate(Qa.x,Qa.y,Qa.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new se.Matrix4;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 se.Vector3,e=new se.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),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 se.Vector3;if(t){let r=new se.Vector3,o=new se.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.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],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[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,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new vo;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,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new se.Vector3,a={a:new se.Vector3,b:new se.Vector3,c:new se.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.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 se.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new se.Sphere),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,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new se.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,b=m.vertexNormals,x=m.vertexColors,S=new $n(m.a+i,m.b+i,m.c+i);S.normal.copy(m.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,v=b.length;w<v;w++)h=b[w].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),S.vertexNormals.push(h);S.color.copy(m.color);for(let w=0,v=x.length;w<v;w++)g=x[w],S.vertexColors.push(g.clone());S.materialIndex=m.materialIndex+r,c.push(S)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let b=m[h],x=[];for(let S=0,w=b.length;S<w;S++)x.push(b[S].clone());this.faceVertexUvs[d].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 c=0,p=this.vertices.length;c<p;c++){let a=this.vertices[c],u=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[u]===void 0?(e[u]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[u]]}let s=[];for(let c=0,p=this.faces.length;c<p;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let u=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(u[d]===u[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let p=s[c];this.faces.splice(p,1);for(let a=0,u=this.faceVertexUvs.length;a<u;a++)this.faceVertexUvs[a].splice(p,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new se.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}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 m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,b=!1,x=this.faceVertexUvs[0][m]!==void 0,S=h.normal.length()>0,w=h.vertexNormals.length>0,v=h.color.r!==1||h.color.g!==1||h.color.b!==1,N=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,b),_=a(_,3,x),_=a(_,4,S),_=a(_,5,w),_=a(_,6,v),_=a(_,7,N),r.push(_),r.push(h.a,h.b,h.c),r.push(h.materialIndex),x){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(S&&r.push(u(h.normal)),w){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(v&&r.push(d(h.color)),N){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new vo().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 d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let b=m[h],x=[];for(let S=0,w=b.length;S<w;S++){let v=b[S];x.push(v.clone())}this.faceVertexUvs[d].push(x)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let b=s[d].vertexNormals[h],x={};x.a=b.a.clone(),x.b=b.b.clone(),x.c=b.c.clone(),m.vertexNormals.push(x)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,f=p.length;d<f;d++)this.lineDistances.push(p[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.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 Tc().fromGeometry(this),e=new se.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new se.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new se.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new se.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new se.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new se.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new se.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new se.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new se.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(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 se.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new se.Float32BufferAttribute(r.vertices.length*3,3),i=new se.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new se.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(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}};vo.prototype.isGeometry=!0;var Tc=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,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.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,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let b=0;b<c;b++)p[b]={name:l[b].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let b=0;b<u;b++)d[b]={name:a[b].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let b=0;b<e.length;b++){let x=e[b];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 v=x.normal;this.normals.push(v,v,v)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let v=x.color;this.colors.push(v,v,v)}if(i===!0){let v=o[0][b];v!==void 0?this.uvs.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",b),this.uvs.push(new se.Vector2,new se.Vector2,new se.Vector2))}if(s===!0){let v=o[1][b];v!==void 0?this.uvs2.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",b),this.uvs2.push(new se.Vector2,new se.Vector2,new se.Vector2))}for(let v=0;v<c;v++){let N=l[v].vertices;p[v].data.push(N[x.a],N[x.b],N[x.c])}for(let v=0;v<u;v++){let N=a[v].vertexNormals[b];d[v].data.push(N.a,N.b,N.c)}h&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),g&&this.skinWeights.push(m[x.a],m[x.b],m[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}},$n=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new se.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new se.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}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}};var j1=["a","b","c"];function U1(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Ac(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function Nc(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function k1(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],Nc(s.a,s.b,n,r,s,e),Nc(s.b,s.c,n,r,s,e),Nc(s.c,s.a,n,r,s,e)}function Ja(n,t,e,r,o){n.push(new $n(t,e,r,void 0,void 0,o))}function Yn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function el(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var tl=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Zr.BufferGeometry?t=new vo().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 Zr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;k1(c,p,d,f);let m=[],h,g,b,x,S,w,v;for(let H of Array.from(f.keys())){for(g=f.get(H),b=new Zr.Vector3,S=3/8,w=1/8,v=g.faces.length,v!=2&&(S=.5,w=0,v!=1),b.addVectors(g.a,g.b).multiplyScalar(S),e.set(0,0,0),s=0;s<v;s++){for(x=g.faces[s],l=0;l<3&&(h=c[U1(x,j1[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(w),b.add(e),g.newEdge=m.length,m.push(b)}let N,_,y,I,A,P,T,C=[];for(o=0,i=c.length;o<i;o++){for(P=c[o],A=d[o].edges,r=A.length,r==3?N=3/16:r>3&&(N=3/(8*r)),_=1-r*Number(N),y=N,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=P.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)I=A[s],h=I.a!==P?I.a:I.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),C.push(T)}let L=C.concat(m),j=C.length,Y,te,ie,U=[],W=[],q,F,E,D,B=new Zr.Vector2,k=new Zr.Vector2,$=new Zr.Vector2;for(o=0,i=p.length;o<i;o++)x=p[o],Y=Number(Ac(x.a,x.b,f).newEdge)+j,te=Number(Ac(x.b,x.c,f).newEdge)+j,ie=Number(Ac(x.c,x.a,f).newEdge)+j,Ja(U,Y,te,ie,x.materialIndex),Ja(U,x.a,Y,ie,x.materialIndex),Ja(U,x.b,te,Y,x.materialIndex),Ja(U,x.c,ie,te,x.materialIndex),u&&(q=a[o],F=q[0],E=q[1],D=q[2],B.set(Yn(F.x,E.x),Yn(F.y,E.y)),k.set(Yn(E.x,D.x),Yn(E.y,D.y)),$.set(Yn(F.x,D.x),Yn(F.y,D.y)),el(W,B,k,$),el(W,F,B,$),el(W,E,k,B),el(W,D,$,k));t.vertices=L,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var tt=new Or.Vector3,Em=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new Or.BufferGeometry().copy(new Or.BoxGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(tt),r={width:tt.x,height:tt.y,depth:tt.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 Or.BufferGeometry().copy(new Or.BoxGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(tt)):tt.set(s.width,s.height,s.depth),(t!==tt.x||e!==tt.y||r!==tt.z)&&i.scale(tt.x===0?1:t/tt.x,tt.y===0?1:e/tt.y,tt.z===0?1:r/tt.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new tl(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new Or.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(tt);let s=100/tt.x;Object.assign(i.parameters,{width:100,height:tt.y*s,depth:tt.z*s}),t(this.build(i))})}};var Bm=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 Te?n.shape:new Te,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:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,b=u+Math.sin(g)*p,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(b,x))}c.isClosed=!0;for(let h=0,g=c.points.length;h<g;h++)c.points[h].roundness=o;c.roundness=o,c.update();let m=ft.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var Se=require("three"),Dm=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:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new Pc(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function $i(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Ic(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function H1(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Pc=class extends Se.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,b=(r-2)*Math.PI/r,x=Math.PI-b,S=new Se.Vector3(0,-f,0),w=new Se.Vector3(0,f,0),v=new Se.Vector2(t,-f),N=new Se.Vector2(h,-f),_=new Se.Vector2(0,w.y).sub(N),y=new Se.Vector2(0,w.y).sub(v),I=new Se.Vector2(_.y,-_.x).normalize(),A=new Se.Vector2(y.y,-y.x).normalize(),T=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-_.angle())/2)-1e-8;s=Math.min(s,T);let C;{let W=new Se.Vector3(I.x,I.y,0),q=new Se.Vector3(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);C=W.angleTo(q)}let L=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-C)/2),Y=new Se.Vector3;if(!i){p.push(S.x,S.y,S.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=v.clone(),E=L/Math.cos(Math.PI/r);F.x-=E;for(let D=0;D<r;D++){let B=D/r*Math.PI*2+m,k=new Se.Vector2(Math.sin(B),Math.cos(B));$i(F,k,Y),p.push(Y.x,Y.y,Y.z),a.push(0,-1,0),u.push(0,0),q.push(d++)}for(let D=0;D<q.length;D++)c.push(q[D],W,q[(D+1)%q.length])}let te=[];{let W=new Se.Vector3,q=new Se.Vector3,F=new Se.Vector3,E=new Se.Vector3,D=new Se.Vector3,B=new Se.Vector3;for(let k=0;k<r;k++){let $=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,G=new Se.Vector2(Math.sin($),Math.cos($)),z=new Se.Vector2(Math.sin(H),Math.cos(H)),J=new Se.Vector2(Math.sin(V),Math.cos(V));$i(v,G,q),$i(v,J,F),$i(I,z,W),Ic(w,q,F,j,j,E),p.push(E.x,E.y,E.z),Ic(q,w,F,j,L,D),p.push(D.x,D.y,D.z),Ic(F,q,w,L,j,B),p.push(B.x,B.y,B.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),u.push(0,0),u.push(0,0),u.push(0,0);let oe=d++,ae=d++,re=d++;if(c.push(oe,ae,re),s>0){{let K=q.clone().add(F).multiplyScalar(.5),me=w.clone().sub(K).normalize(),be=S.clone().sub(K).normalize().add(me).normalize().multiplyScalar(-1),st=B.clone().sub(D);ie(K,st,be,_.angle())}let ee,Q;{let K=new Se.Vector3;$i(A,J,K);let me=B.clone().add(E).multiplyScalar(.5);me=H1(me,F,w);let de=B.clone().sub(E);[ee,Q]=ie(me,de,K,C,E.y)}{let K=ee,me=K.clone().setY(0).normalize(),de=new Se.Vector3(0,-1,0),be=me.clone().cross(de);U(K,me,de,be)}te.concat(Q);{let K=_.angle(),me=Math.PI-K,de=w.clone();de.y-=s/Math.sin(K-Math.PI/2);let be=new Se.Vector3,st=[];for(let Oe=0;Oe<l;Oe++){let Ee=[],Ht=Math.PI/2-me*Oe/l,to=Math.cos(Ht),Dt=Math.sin(Ht),Xo=H;for(let Ps=0;Ps<=Oe;Ps++){let Os=Math.cos(Xo),$e=Math.sin(Xo);W.x=to*$e,W.y=Dt,W.z=to*Os,be.copy(de).addScaledVector(W,s),p.push(be.x,be.y,be.z),a.push(W.x,W.y,W.z),u.push(0,0),Ee.push(d++),Xo+=Math.PI*2/Oe/r}st.push(Ee)}Q.reverse(),st.push(Q);let Ie=st.length-1;for(let Oe=0;Oe<Ie;Oe++){let Ee=st[Oe],Ht=st[Oe+1],to=Ee.length-1;c.push(Ht[1],Ee[0],Ht[0]);for(let Dt=1;Dt<=to;Dt++)c.push(Ee[Dt],Ee[Dt-1],Ht[Dt]),c.push(Ht[Dt+1],Ee[Dt],Ht[Dt])}}}}}this.setIndex(c),this.setAttribute("position",new Se.Float32BufferAttribute(p,3)),this.setAttribute("normal",new Se.Float32BufferAttribute(a,3)),this.setAttribute("uv",new Se.Float32BufferAttribute(u,2));function ie(W,q,F,E,D){let B=-E/2,k=(Math.PI-E)/2,$=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new Se.Vector3,V=new Se.Vector3,G=1,z=d,J=[];for(let oe=0;oe<=l;oe++){let ae=B+oe/l*E;V.set(0,0,0),V.addScaledVector($,Math.sin(ae)),V.addScaledVector(F,Math.cos(ae));for(let re=0;re<=G;re++){let ee=re/G-.5;if(H.copy(W),H.addScaledVector(q,ee),H.addScaledVector(V,s),D!=null){let Q=Math.max(0,H.y-D);H.addScaledVector(q,-Q/q.y)}p.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),u.push(0,0),re===0&&J.push(d),d++}}for(let oe=0;oe<l;oe++)for(let ae=0;ae<G;ae++){let re=z+ae+(G+1)*oe,ee=re+(G+1),Q=ee+1,K=re+1;c.push(re,ee,K),c.push(ee,Q,K)}return[W.clone().addScaledVector(q,.5),J]}function U(W,q,F,E){let D=Math.PI/2,B=y.angle()-D,k=[],$=new Se.Vector3,H=new Se.Vector3;for(let G=0;G<=l;G++){let z=[],J=G/l;for(let oe=0;oe<=G;oe++){let re=((G?oe/G:0)-.5)*x,ee=Math.cos(re),Q=Math.sin(re),K=Math.atan(Math.tan(B)*ee),me=(D+K)*J,de=Math.cos(me),be=Math.sin(me);$.set(0,0,0),$.addScaledVector(q,be*ee),$.addScaledVector(F,de),$.addScaledVector(E,be*Q),H.copy(W).addScaledVector($,s),p.push(H.x,H.y,H.z),a.push($.x,$.y,$.z),u.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let G=0;G<V;G++){let z=k[G],J=k[G+1],oe=z.length-1;c.push(z[0],J[1],J[0]);for(let ae=1;ae<=oe;ae++)c.push(z[ae-1],z[ae],J[ae]),c.push(z[ae],J[ae+1],J[ae])}}}};var Gm=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 Te?n.shape:new Te,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:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(w,v,N){return v>e&&N>r?Math.min(w*e/v,w*r/N):v>e?w*e/v:N>r?w*r/N:w}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=u.x,g=u.y,b=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,b)),t.addPoint(t.createPoint(m,b)),t.isClosed=!0;let x=!0;for(let w=0,v=t.points.length;w<v;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=ft.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(S,{userData:{...n,type:"RectangleGeometry"}})}};var Rm=require("three"),Vm=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:Math.PI},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=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new Rm.SphereGeometry(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var Fm=require("three"),zm=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 Fm.PlaneGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var So=require("three"),jm=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:s}=n.parameters,l=new Oc(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Oc=class extends So.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(H=0,V=0,G=0)=>new So.Vector3(H,V,G),m=f(),h=f(),[g,b,x]=[e/2,t/2,r/2],S=-b,w=+b,[v,N,_]=[f(S,-g,+x),f(S,-g,-x),f(S,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),I=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,P=v.z-a;o<=d?(_.z=Math.min(A,P),_.z==P&&(_.y-=(A-P)/Math.tan(d-o))):N.z=Math.min(N.z-A-x,v.z-a),m.subVectors(v,N),h.subVectors(_,N);let T=Math.min(m.length(),h.length())*i/100,C=T*Math.tan(o/2),L=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(L).add(N);m.set(0,y(o,!0),I(o,!0)),u.push([_,m.clone()]);let Y=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*Y;m.set(0,Math.sin(V)*C,Math.cos(V)*C),m.add(j),h.set(0,y(V),I(V)),u.push([m.clone(),h.clone()])}u.push([v,f(0,1,0)]);let te=Math.sin(Y/2)*C*2,ie=u.length-1,U=u[0][0].distanceTo(u[1][0]),W=u[ie-1][0].distanceTo(u[ie][0]),q=U+te*s+W;u[0].push(1);for(let H=0;H<=s;H++)u[H+1].push(1-(U+H*te)/q);u[ie].push(0);let[F,E,D]=u[0],B,k,$;for(let H=1;H<u.length;H++)[B,k,$]=u[H],l.push(S,F.y,F.z,S,B.y,B.z,w,F.y,F.z,w,F.y,F.z,S,B.y,B.z,w,B.y,B.z),c.push(0,E.y,E.z,0,k.y,k.z,0,E.y,E.z,0,E.y,E.z,0,k.y,k.z,0,k.y,k.z),p.push(0,D,0,$,1,D,1,D,0,$,1,$),[F,E,D]=[B,k,$];this.setAttribute("position",new So.Float32BufferAttribute(l,3)),this.setAttribute("normal",new So.Float32BufferAttribute(c,3)),this.setAttribute("uv",new So.Float32BufferAttribute(p,2))}};var Um=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 Te?n.shape:new Te,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:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,b=u*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let w=0;w<o;w++){let v=h*w,N=f+Math.sin(v)*u,_=m+Math.cos(v)*d;a.addPoint(a.createPoint(N,_))}}else for(let w=0;w<o;w++){let v=f+Math.cos(g)*u,N=m+Math.sin(g)*d;a.addPoint(a.createPoint(v,N)),g+=h,v=f+Math.cos(g)*b,N=m+Math.sin(g)*x,w<=o,a.addPoint(a.createPoint(v,N)),g+=h}a.isClosed=!0;for(let w=0,v=a.points.length;w<v;w++)a.points[w].roundness=i;a.roundness=i,a.update();let S=ft.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(S,{userData:{...n,type:"StarGeometry"}})}};var km=require("three"),Hm=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 km.PlaneGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var Wm=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:Math.PI*2,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:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=W1(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function W1(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new Wi(!0,n,t,e,r,o,i,s,l,c,p,a)}var qm=require("three"),$m=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:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new qm.TorusKnotGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Ym=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 Te?n.shape:new Te,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:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=ft.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var Uo=require("three"),Km=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Xm(){let n=new Uo.BufferGeometry;return n.setAttribute("position",new Uo.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Uo.BufferAttribute(new Uint16Array([]),1)),n}var q1=12;var Xn=class extends Uo.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=Xm();Object.entries(o.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(o.index),this.updateFont(e.font,r),this.update(e)}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r||!r.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:p,textTransform:a,subdivisions:u}=e;await r.loadingPromise;let d=a===2?p.toUpperCase():a===3?p.toLowerCase():p,f=$1(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),b=o*.5,x=i*.5,S=m.map(N=>new Te().fromShape(N));this.vectorShapes=S;let w=S.map(N=>ft.create({shape:N,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Be.NONZERO:Be.ODD,subdivisions:u??q1}})),v=w.length?(0,Km.mergeBufferGeometries)(w):Xm();v.translate(-b,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([N,_])=>{this.setAttribute(N,_)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let e=Go(new Uo.BufferGeometry,Xn.prototype);return e.copy(this),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 $1(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
|
|
1
|
+
"use strict";var Sg=Object.create;var Ms=Object.defineProperty;var wg=Object.getOwnPropertyDescriptor;var _g=Object.getOwnPropertyNames;var Tg=Object.getPrototypeOf,Ag=Object.prototype.hasOwnProperty;var Al=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),cu=(n,t)=>{for(var e in t)Ms(n,e,{get:t[e],enumerable:!0})},uu=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _g(t))!Ag.call(n,o)&&o!==e&&Ms(n,o,{get:()=>t[o],enumerable:!(r=wg(t,o))||r.enumerable});return n};var Ls=(n,t,e)=>(e=n!=null?Sg(Tg(n)):{},uu(t||!n||!n.__esModule?Ms(e,"default",{value:n,enumerable:!0}):e,n)),Ng=n=>uu(Ms({},"__esModule",{value:!0}),n);var wf=Al((Jl,Sf)=>{(function(n,t){typeof Jl=="object"?Sf.exports=t():typeof define=="function"&&define.amd?define(t):n.Alea=t()})(Jl,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,s=1;e.length==0&&(e=[+new Date]);var l=t();r=l(" "),o=l(" "),i=l(" ");for(var c=0;c<e.length;c++)r-=l(e[c]),r<0&&(r+=1),o-=l(e[c]),o<0&&(o+=1),i-=l(e[c]),i<0&&(i+=1);l=null;var p=function(){var a=2091639*r+s*23283064365386963e-26;return r=o,o=i,i=a-(s=a|0)};return p.next=p,p.uint32=function(){return p()*4294967296},p.fract53=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.version="Alea 0.9",p.args=e,p.exportState=function(){return[r,o,i,s]},p.importState=function(a){r=+a[0]||0,o=+a[1]||0,i=+a[2]||0,s=+a[3]||0},p}(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 s=.02519603282416938*e;e=s>>>0,s-=e,s*=e,e=s>>>0,s-=e,e+=s*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var Fh=Al((xl,Vh)=>{(function(n,t){typeof xl=="object"&&typeof Vh<"u"?t(xl):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(xl,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 s,l,c,p,a,u,d,f,m,h,g,b,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],v=[],N=[],_=e==="f"?S:x,y=h=d=0;y<S;y++)v[y]=new Array(_).fill(0);for(y=0;y<x;y++)N[y]=new Array(x).fill(0);var I,A=new Array(x).fill(0);for(y=0;y<S;y++)for(s=0;s<x;s++)v[y][s]=t[y][s];for(y=0;y<x;y++){for(w[y]=d,m=0,c=y+1,s=y;s<S;s++)m+=Math.pow(v[s][y],2);if(m<i)d=0;else for(f=(u=v[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y]=u-d,s=c;s<x;s++){for(m=0,l=y;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(v[y][s],2);if(m<i)d=0;else{for(f=(u=v[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y+1]=u-d,s=c;s<x;s++)w[s]=v[y][s]/f;for(s=c;s<S;s++){for(m=0,l=c;l<x;l++)m+=v[s][l]*v[y][l];for(l=c;l<x;l++)v[s][l]=v[s][l]+m*w[l]}}h<(g=Math.abs(A[y])+Math.abs(w[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=v[y][y+1]*d,s=c;s<x;s++)N[s][y]=v[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=v[y][l]*N[l][s];for(l=c;l<x;l++)N[l][s]=N[l][s]+m*N[l][y]}}for(s=c;s<x;s++)N[y][s]=0,N[s][y]=0;N[y][y]=1,d=w[y],c=y}if(e){if(e==="f")for(y=x;y<S;y++){for(s=x;s<S;s++)v[y][s]=0;v[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)v[y][s]=0;if(d!==0){for(f=v[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<S;l++)m+=v[l][y]*v[l][s];for(u=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+u*v[l][y]}for(s=y;s<S;s++)v[s][y]=v[s][y]/d}else for(s=y;s<S;s++)v[s][y]=0;v[y][y]=v[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var P=0;P<50;P++){for(I=!1,c=l;0<=c;c--){if(Math.abs(w[c])<=o){I=!0;break}if(Math.abs(A[c-1])<=o)break}if(!I){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*w[y],w[y]=a*w[y],!(Math.abs(u)<=o));y++)if(d=A[y],A[y]=Math.sqrt(u*u+d*d),a=d/(f=A[y]),m=-u/f,e)for(s=0;s<S;s++)g=v[s][p],b=v[s][y],v[s][p]=g*a+b*m,v[s][y]=-g*m+b*a}if(b=A[l],c===l){if(b<0&&(A[l]=-b,r))for(s=0;s<x;s++)N[s][l]=-N[s][l];break}for(h=A[c],u=(((g=A[l-1])-b)*(g+b)+((d=w[l-1])-(f=w[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-b)*(h+b)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=w[y],g=A[y],f=m*d,d*=a,b=Math.sqrt(u*u+f*f),u=h*(a=u/(w[y-1]=b))+d*(m=f/b),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=N[s][y-1],b=N[s][y],N[s][y-1]=h*a+b*m,N[s][y]=-h*m+b*a;if(b=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=b))*d+(m=f/b)*g,h=-m*d+a*g,e)for(s=0;s<S;s++)g=v[s][y-1],b=v[s][y],v[s][y-1]=g*a+b*m,v[s][y]=-g*m+b*a}w[c]=0,w[l]=u,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:v,q:A,v:N}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var Jh=Al(bl=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,b=f.match(/Version\/(.*?) /),x=g&&b&&parseInt(b[1],10)<15;return a._codecs={mp3:!!(!h&&(d||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,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$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var u=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var b=a._howls[m]._soundById(h[g]);b&&b._node&&!b._node._unlocked&&(b._node._unlocked=!0,b._node.load())}a._autoResume();var x=a.ctx.createBufferSource();x.buffer=a._scratchBuffer,x.connect(a.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),x.onended=function(){x.disconnect(0),a._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<a._howls.length;S++)a._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),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._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(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.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 a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.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=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var b=g._id;return d._queue.push({event:"play",action:function(){d.play(b)}}),b}if(f&&!g._paused)return u||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:d._sprite[a][0]/1e3),S=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),w=S*1e3/Math.abs(g._rate),v=d._sprite[a][0]/1e3,N=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var _=function(){g._paused=!1,g._seek=x,g._start=v,g._stop=N,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=N){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,_(),d._refreshBuffer(g);var C=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(C,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,S):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,S),w!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?I():(d._playLock=!0,d.once("resume",I),d._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var C=y.play();if(C&&typeof Promise<"u"&&(C instanceof Promise||typeof C.then=="function")?(d._playLock=!0,_(),C.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._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."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,_(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._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}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(L){d._emit("playerror",g._id,L)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var P=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||P)A();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",A(),y.removeEventListener(t._canPlayEvent,T,!1)};y.addEventListener(t._canPlayEvent,T,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(a)}}),u;for(var d=u._getSoundIds(a),f=0;f<d.length;f++){u._clearTimer(d[f]);var m=u._soundById(d[f]);if(m&&!m._paused&&(m._seek=u.seek(d[f]),m._rateSeek=0,m._paused=!0,u._stopFade(d[f]),m._node))if(u._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||u._emit("pause",m?m._id:null)}return u},stop:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),u||d._emit("stop",h._id))}return d},mute:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,u)}}),d;if(typeof u>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(u),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,u=arguments,d,f;if(u.length===0)return a._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,u)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var b=0;b<f.length;b++)g=a._soundById(f[b]),g&&(g._volume=d,u[2]||a._stopFade(f[b]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,u,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,u,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var b=m._soundById(h[g]);if(b){if(f||m._stopFade(h[g]),m._webAudio&&!b._muted){var x=t.ctx.currentTime,S=x+d/1e3;b._volume=a,b._node.gain.setValueAtTime(a,x),b._node.gain.linearRampToValueAtTime(u,S)}m._startFadeInterval(b,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,b=u,x=d-u,S=Math.abs(x/.01),w=Math.max(4,S>0?f/S:f),v=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var N=(Date.now()-v)/f;v=Date.now(),b+=x*N,b=Math.round(b*100)/100,x<0?b=Math.max(d,b):b=Math.min(d,b),g._webAudio?a._volume=b:g.volume(b,a._id,!0),h&&(g._volume=b),(d<u&&b<=d||d>u&&b>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},w)},_stopFade:function(a){var u=this,d=u._soundById(a);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,a),d._fadeTo=null,u._emit("fade",a)),u},loop:function(){var a=this,u=arguments,d,f,m;if(u.length===0)return a._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],a._loop=d;else return m=a._soundById(parseInt(u[0],10)),m?m._loop:!1;else u.length===2&&(d=u[0],f=parseInt(u[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,u=arguments,d,f;if(u.length===0)f=a._sounds[0]._id;else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,u)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var b=0;b<f.length;b++)if(g=a._soundById(f[b]),g){a.playing(f[b])&&(g._rateSeek=a.seek(f[b]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var x=a.seek(f[b]),S=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,w=S*1e3/Math.abs(g._rate);(a._endTimers[f[b]]||!g._paused)&&(a._clearTimer(f[b]),a._endTimers[f[b]]=setTimeout(a._ended.bind(a,g),w)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,u=arguments,d,f;if(u.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,u)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var b=a.playing(f);b&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var x=function(){b&&a.play(f,!0),a._emit("seek",f)};if(b&&!a._webAudio){var S=function(){a._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(a._webAudio){var w=a.playing(f)?t.ctx.currentTime-g._playStart:0,v=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(v+w*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var u=this;if(typeof a=="number"){var d=u._soundById(a);return d?!d._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(a){var u=this,d=u._duration,f=u._soundById(a);return f&&(d=u._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,u=a._sounds,d=0;d<u.length;d++)u[d]._paused||a.stop(u[d]._id),a._webAudio||(a._clearSound(u[d]._node),u[d]._node.removeEventListener("error",u[d]._errorFn,!1),u[d]._node.removeEventListener(t._canPlayEvent,u[d]._loadFn,!1),u[d]._node.removeEventListener("ended",u[d]._endFn,!1),t._releaseHtml5Audio(u[d]._node)),delete u[d]._node,a._clearTimer(u[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,u,d,f){var m=this,h=m["_on"+a];return typeof u=="function"&&h.push(f?{id:d,fn:u,once:f}:{id:d,fn:u}),m},off:function(a,u,d){var f=this,m=f["_on"+a],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(u===m[h].fn&&g||!u&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var b=Object.keys(f);for(h=0;h<b.length;h++)b[h].indexOf("_on")===0&&Array.isArray(f[b[h]])&&(f[b[h]]=[])}return f},once:function(a,u,d){var f=this;return f.on(a,u,d,1),f},_emit:function(a,u,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===u||a==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===a&&(u._queue.shift(),u._loadQueue()),a||d.action()}return u},_ended:function(a){var u=this,d=a._sprite;if(!u._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(u._ended.bind(u,a),100),u;var f=!!(a._loop||u._sprite[d][2]);if(u._emit("end",a._id),!u._webAudio&&f&&u.stop(a._id,!0).play(a._id),u._webAudio&&f){u._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);u._endTimers[a._id]=setTimeout(u._ended.bind(u,a),m)}return u._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,u._clearTimer(a._id),u._cleanBuffer(a._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(a._id,!0),u},_clearTimer:function(a){var u=this;if(u._endTimers[a]){if(typeof u._endTimers[a]!="function")clearTimeout(u._endTimers[a]);else{var d=u._soundById(a);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[a],!1)}delete u._endTimers[a]}return u},_soundById:function(a){for(var u=this,d=0;d<u._sounds.length;d++)if(a===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var u=0;u<a._sounds.length;u++)if(a._sounds[u]._ended)return a._sounds[u].reset();return new r(a)},_drain:function(){var a=this,u=a._pool,d=0,f=0;if(!(a._sounds.length<u)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=u)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var u=this;if(typeof a>"u"){for(var d=[],f=0;f<u._sounds.length;f++)d.push(u._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var u=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[u._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),u},_cleanBuffer:function(a){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,u},_clearSound:function(a){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,u._sounds.push(a),a.create(),a},create:function(){var a=this,u=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return u._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=u._src,a._node.preload=u._preload===!0?"auto":u._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,u=a._parent;u._duration=Math.ceil(a._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()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,u=a._parent;u._duration===1/0&&(u._duration=Math.ceil(a._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var u=a._src;if(o[u]){a._duration=o[u].duration,c(a);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,u,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[u],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&u._sounds.length>0?(o[u._src]=m,c(u,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,u){u&&!a._duration&&(a._duration=u.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},p=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 a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=u?parseInt(u[1],10):null;if(a&&d&&d<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 bl<"u"&&(bl.Howler=t,bl.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,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},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),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._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 s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._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 s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._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 s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.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 $w={};cu($w,{default:()=>wl});module.exports=Ng($w);var _l=require("three");var Ge=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,Ge.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:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ge.prototype),{data:l,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,Ge.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function gi(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"&&gi(r)}return Object.freeze(n)}function pu(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 Ko=class extends Error{};var ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)gi(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,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ge.prototype);let r=e;return du()||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,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,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 fr(0,r,r);{let i=o[0].fi;return fr(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return fr(l,l+r,r)}else return fr(i.fi,s.fi,r)}}};function fr(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 s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function yi(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 du(){return typeof process<"u"}function Nl(n){return typeof n!="object"||yi(n)||Ig(n)}function Es(n){return Nl(n)||n instanceof ge||n instanceof Fe||n instanceof Ge}function Ig(n){return Array.isArray(n)&&n.every(t=>typeof t!="object")}function fu(n,t){for(let e of n)t(e.id,e.data)!==!0&&fu(e.children,t)}function mu(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)mu(e,t)}var Fe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Fe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)gi(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}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&&mu(o,r)}}traverse(e){fu(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),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Fe.prototype);let s=i;return s.fillCaches(),s}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:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),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),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,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 Ko("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,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(s=>s.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(s=>s.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)=>pu(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),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,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 fr(0,o,o);{let s=i[0].fi;return fr(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return fr(c,c+o,o)}else return fr(s.fi,l.fi,o)}}};var Zo;(t=>{function n(e,r){if(r.type!==0)return null;if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(Zo||(Zo={}));var Qo=class{unusedFun(t){}},Vt=class{unusedFun(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 instanceof Fe||r instanceof ge)return null;o+=1}r={...r};for(let[c,p]of Object.entries(t.props)){let a=r[c];i[c]=a,p===void 0?delete r[c]:r[c]=p}for(;o>0;)Object.keys(r).length===0?(r={...e[o-1]},delete r[t.path[o-1]]):r={...e[o-1],[t.path[o-1]]:r},o-=1;let s=Object.setPrototypeOf(r,Vt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},hu;(r=>{function n(o,i){return Jo(o,i)??o}r.apply=n;function t(o,i){return yu(o,i)}r.merge=t;function e(o,i){let s=0,l=i.path,c=o;for(;s<l.length&&c!==void 0;){if(c=jr.zoomOnce(c,l[s]),c instanceof Fe||c instanceof ge)return;s+=1}if(c===void 0)return i;if(Es(c))return;if(i.type===0)if(c&&typeof c=="object"){let p={...i.props};for(let a of Object.keys(c))delete p[a];return{...i,props:p}}else return;else if(i.type===1||i.type===4||i.type===7)if(typeof c=="object"){let p={...i.data,...c};return{...i,data:p}}else return;else return i}r.filterOp=e})(hu||(hu={}));function gu(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Jo(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=gu(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Pg(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Jo(o.data,t[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function Jo(n,t){if(Es(t)||t instanceof Qo)return t;if(n instanceof Fe){let e=gu(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ge)return Pg(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=Jo(o,t[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let s=Jo(i,t[o]);r=r||s!==void 0,s===void 0&&(s=i),e[o]=s}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}}}function yu(n,t){if(n===void 0)return t;if(t===void 0)return n;if(Es(t)||Nl(n))return t;if(n instanceof Fe||n instanceof ge)return Jo(n,t);if(typeof n=="object"&&typeof t=="object"){let e=new Set;if(n)for(let o of Object.keys(n))e.add(o);if(t)for(let o of Object.keys(t))e.add(o);let r={};for(let o of e){let i=yu(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}else return n}function xu(n,t){let e={cur:[],result:[],len:0};return n=xi(n,t,e)??n,[n,e.result]}function Bs(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function Ds(n){n&&(n.len-=1)}function Og(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function bu(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=xi(i.data,t,Bs(e,s));Ds(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=bu(i.children,t,e);return p!==void 0?r=!0:p=i.children,{...i,id:s,data:c,children:p}});if(r)return o}function Cg(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=xi(i.data,t,Bs(e,s));return Ds(e),r=r||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function xi(n,t,e){if(n instanceof Fe){let r=bu(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ge)return Cg(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=xi(i,t,Bs(e,s));return Ds(e),r=r||l!==void 0,l===void 0&&(l=i),l});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"){let r={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=t[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=xi(s,t,Bs(e,i));Ds(e),o=o||c!==void 0,c===void 0&&(c=s),r[i]=c}else r[i]=s;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];if(r!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Og(e)}return r}else return}}var vu;(t=>{function n(e,r){let o=jr.zoom(r,e.path);if(typeof o=="object"){let i={};for(let s of Object.keys(e.props))i[s]=o[s];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(vu||(vu={}));var ro;(l=>{function n(c,p){return{...c,path:c.path.slice(p)}}l.drop=n;function t(c,p){return e(c,p)?.data??c}l.applySimple=t;function e(c,p){let a=p.path;for(var u=[];;){let d;if(c instanceof Vt&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Fe||c instanceof ge||c instanceof Ge?d=c.runOp(p):d=Zo.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let b=a[g],x=u[g];if(x instanceof Fe){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof ge){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Ge){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Vt){let S={...x,[b]:h};h=Object.setPrototypeOf(S,Vt.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof b=="string"&&(b=parseInt(b),isNaN(b)))throw new Error("Invalid path");let S=h;h=[...x],h[b]=S}else h={...x,[b]:h};else return null}return{data:h,actual:{...d.actual,path:a},reverse:{...d.reverse,path:a}}}else return null;let f=a[u.length],m;if(c instanceof Fe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof ge){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)u.push(c),c=m;else return null}}l.apply=e;function r(c,p){for(let a=0;a<c.length&&a<p.length;a++)if(c[a]!==p[a])return!0;return!1}l.pathDisjoint=r;function o(c,p){if(c.length!==p.length)return!1;for(let a=0;a<c.length;a++)if(c[a]!==p[a])return!1;return!0}l.pathEq=o;function i(c,p){return r(c.path,p.path)}l.commutative=i;function s(c,p){return c.type===0&&p.type===0&&o(c.path,p.path)?Object.keys(c.props).every(a=>p.props[a]!==void 0):!1}l.subsumed=s})(ro||(ro={}));var Su;(c=>{function n(){return[]}c.empty=n;function t(p,a){let u=[];for(let d of p){let[f,...m]=d.path;f===a&&u.push({...d,path:m})}return u}c.removePrefix=t;function e(p,a){return p.map(u=>({...u,path:[a,...u.path]}))}c.addPrefix=e;function r(p,a){return[...p,...a]}c.concat=r;function o(p,a){return[...p.filter(d=>!a.some(f=>ro.subsumed(d,f))),...a]}c.compress=o;function i(p,a){return p.every(u=>a.every(d=>ro.commutative(u,d)))}c.commutative=i;function s(p,a){for(let u of a){let d=l(p,u);d!==null&&(p=d.data)}return p}c.applyAll=s;function l(p,a){var u=p;let d=[],f=[];for(let m of a)try{if(m.type===3){let h=jr.zoom(u,[...m.path,m.id]),g=ro.apply(u,{...m,type:2});if(g!==null){u=g.data;let[b,x]=xu(u,{[m.id]:h});u=b;for(let S of x){let w=S[S.length-1];S.splice(S.length-1,1),d.push({type:0,path:S,props:{[w]:h}}),f.push({type:0,path:S,props:{[w]:m.id}})}f.push(g.reverse),d.push(g.actual)}}else{let h=ro.apply(u,m);h!==null&&(d.push(h.actual),u=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Ko)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(Su||(Su={}));var wu=Symbol(),bi=Symbol(),Oo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof Rs);){let s=o._path,l=o._current;if(s!==""&&i.splice(0,0,s),o=o._parent,o===null)return;o.update(s,l)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[bi];r&&r(),delete this._children[t]}}}},Pl=class extends Oo{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,Zo.runOp(this._current,t),t.path)}},Ol=class extends Oo{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,Ge.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},_u={get(n,t){if(t===bi)return()=>{n._parent=null};if(t===wu)return n._current;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],s=Vs(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):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]}}},Mg={..._u,set(n,t,e){let r={type:0,props:{[t]:It(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}},Lg={..._u,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}},en=class extends Oo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[bi]=()=>{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,s=Vs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):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 s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}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)}},Gs=class extends Oo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[bi]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,ro.apply(this._current,t),e)}},tn=class extends Oo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[bi]=()=>{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,s=Vs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):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 Il(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&jr.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var Rs=class{constructor(t){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){Il(this.ts,e,t),Il(this.actual,r,t),Il(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Vs(n,t,e){return e instanceof Fe?new en(n,t,e):e instanceof ge?new tn(n,t,e):e instanceof Vt?new Gs(n,t,e):e instanceof Ge?new Proxy(new Ol(n,t,e),Lg):e!==null&&typeof e=="object"?yi(e)?e:new Proxy(new Pl(n,t,e),Mg):e}function Cl(n){let t=new Rs(n);return[Vs(t,"",n),t]}function Ml(n,t){let[e,r]=Cl(n);return t(e),r.result()}function It(n){return n instanceof en||n instanceof tn||n instanceof Gs?n._current:n!==null&&typeof n=="object"?n[wu]:n}var jr;(o=>{function n(i,s){if(s.length===i.length)for(var l=0;l<i.length;){if(i[l]!==s[l])return!1;l+=1}else return!1;return!0}o.equal=n;function t(i,s,l){let c=r(l,i);if(c!==void 0&&typeof c=="object"&&c!==null){let p={...s};return Object.keys(c).forEach(a=>{delete p[a]}),p}else return s}o.removeOverridden=t;function e(i,s){if((i instanceof Fe||i instanceof en)&&typeof s=="string")return i.data(s);if((i instanceof ge||i instanceof tn)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object"&&i!==null)return i[s]}o.zoomOnce=e;function r(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=r})(jr||(jr={}));var Fs=class{},vi=class extends Fs{constructor(e){super();this.id=e}},Si=class extends Fs{constructor(e){super();this.data=e}};var El;try{El=new TextDecoder}catch{}var ne,no,O=0;var Mu=[],Bl=Mu,Dl=0,Pt={},Ae,oo,Wt=0,mr=0,Ft,Ur,vt=[],Ce,Tu={useRecords:!1,mapsAsObjects:!0},wi=class{},Rl=new wi;Rl.name="MessagePack 0xC1";var rn=!1,hr=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(ne)return Gu(()=>(js(),this?this.unpack(t,e):hr.prototype.unpack.call(Tu,t,e)));no=e>-1?e:t.length,O=0,Dl=0,mr=0,oo=null,Bl=Mu,Ft=null,ne=t;try{Ce=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw ne=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 hr){if(Pt=this,this.structures)return Ae=this.structures,zs();(!Ae||Ae.length>0)&&(Ae=[])}else Pt=Tu,(!Ae||Ae.length>0)&&(Ae=[]);return zs()}unpackMultiple(t,e){let r,o=0;try{rn=!0;let i=t.length,s=this?this.unpack(t,i):Hs.unpack(t,i);if(e){for(e(s);O<i;)if(o=O,e(zs())===!1)return}else{for(r=[s];O<i;)o=O,r.push(zs());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{rn=!1,js()}}_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 zs(){try{if(!Pt.trusted&&!rn){let t=Ae.sharedLength||0;t<Ae.length&&(Ae.length=t)}let n=ke();if(O==no)Ae.restoreStructures&&Au(),Ae=null,ne=null,Ur&&(Ur=null);else if(O>no){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!rn)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Ae.restoreStructures&&Au(),js(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Au(){for(let n in Ae.restoreStructures)Ae[n]=Ae.restoreStructures[n];Ae.restoreStructures=null}function ke(){let n=ne[O++];if(n<160)if(n<128){if(n<64)return n;{let t=Ae[n&63]||Pt.getStructures&&Lu()[n&63];return t?(t.read||(t.read=Vl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,Pt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Bu()]=ke();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(ke(),ke());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=ke();return t}else if(n<192){let t=n-160;if(mr>=O)return oo.slice(O-Wt,(O+=t)-Wt);if(mr==0&&no<140){let e=t<16?Fl(t):Eu(t);if(e!=null)return e}return Gl(t)}else{let t;switch(n){case 192:return null;case 193:return Ft?(t=ke(),t>0?Ft[1].slice(Ft.position1,Ft.position1+=t):Ft[0].slice(Ft.position0,Ft.position0-=t)):Rl;case 194:return!1;case 195:return!0;case 196:return Ll(ne[O++]);case 197:return t=Ce.getUint16(O),O+=2,Ll(t);case 198:return t=Ce.getUint32(O),O+=4,Ll(t);case 199:return Co(ne[O++]);case 200:return t=Ce.getUint16(O),O+=2,Co(t);case 201:return t=Ce.getUint32(O),O+=4,Co(t);case 202:if(t=Ce.getFloat32(O),Pt.useFloat32>2){let e=ks[(ne[O]&127)<<1|ne[O+1]>>7];return O+=4,(e*t+(t>0?.5:-.5)>>0)/e}return O+=4,t;case 203:return t=Ce.getFloat64(O),O+=8,t;case 204:return ne[O++];case 205:return t=Ce.getUint16(O),O+=2,t;case 206:return t=Ce.getUint32(O),O+=4,t;case 207:return Pt.int64AsNumber?(t=Ce.getUint32(O)*4294967296,t+=Ce.getUint32(O+4)):t=Ce.getBigUint64(O),O+=8,t;case 208:return Ce.getInt8(O++);case 209:return t=Ce.getInt16(O),O+=2,t;case 210:return t=Ce.getInt32(O),O+=4,t;case 211:return Pt.int64AsNumber?(t=Ce.getInt32(O)*4294967296,t+=Ce.getUint32(O+4)):t=Ce.getBigInt64(O),O+=8,t;case 212:if(t=ne[O++],t==114)return Cu(ne[O++]&63);{let e=vt[t];if(e)return e.read?(O++,e.read(ke())):e.noBuffer?(O++,e()):e(ne.subarray(O,++O));throw new Error("Unknown extension "+t)}case 213:return t=ne[O],t==114?(O++,Cu(ne[O++]&63,ne[O++])):Co(2);case 214:return Co(4);case 215:return Co(8);case 216:return Co(16);case 217:return t=ne[O++],mr>=O?oo.slice(O-Wt,(O+=t)-Wt):Bg(t);case 218:return t=Ce.getUint16(O),O+=2,mr>=O?oo.slice(O-Wt,(O+=t)-Wt):Dg(t);case 219:return t=Ce.getUint32(O),O+=4,mr>=O?oo.slice(O-Wt,(O+=t)-Wt):Gg(t);case 220:return t=Ce.getUint16(O),O+=2,Iu(t);case 221:return t=Ce.getUint32(O),O+=4,Iu(t);case 222:return t=Ce.getUint16(O),O+=2,Pu(t);case 223:return t=Ce.getUint32(O),O+=4,Pu(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 Eg=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function Vl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Eg.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(ke);return n.highByte===0&&(n.read=Nu(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=ke()}return r}return e.count=0,n.highByte===0?Nu(t,e):e}var Nu=(n,t)=>function(){let e=ne[O++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Ae[r]||Lu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=Vl(o,n)),o.read()};function Lu(){let n=Gu(()=>(ne=null,Pt.getStructures()));return Ae=Pt._mergeStructures(n,Ae)}var Gl=Us,Bg=Us,Dg=Us,Gg=Us;function Us(n){let t;if(n<16&&(t=Fl(n)))return t;if(n>64&&El)return El.decode(ne.subarray(O,O+=n));let e=O+n,r=[];for(t="";O<e;){let o=ne[O++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=ne[O++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=ne[O++]&63,s=ne[O++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=ne[O++]&63,s=ne[O++]&63,l=ne[O++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=at.apply(String,r),r.length=0)}return r.length>0&&(t+=at.apply(String,r)),t}function Iu(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=ke();return t}function Pu(n){if(Pt.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Bu()]=ke();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(ke(),ke());return t}}var at=String.fromCharCode;function Eu(n){let t=O,e=new Array(n);for(let r=0;r<n;r++){let o=ne[O++];if((o&128)>0){O=t;return}e[r]=o}return at.apply(String,e)}function Fl(n){if(n<4)if(n<2){if(n===0)return"";{let t=ne[O++];if((t&128)>1){O-=1;return}return at(t)}}else{let t=ne[O++],e=ne[O++];if((t&128)>0||(e&128)>0){O-=2;return}if(n<3)return at(t,e);let r=ne[O++];if((r&128)>0){O-=3;return}return at(t,e,r)}else{let t=ne[O++],e=ne[O++],r=ne[O++],o=ne[O++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){O-=4;return}if(n<6){if(n===4)return at(t,e,r,o);{let i=ne[O++];if((i&128)>0){O-=5;return}return at(t,e,r,o,i)}}else if(n<8){let i=ne[O++],s=ne[O++];if((i&128)>0||(s&128)>0){O-=6;return}if(n<7)return at(t,e,r,o,i,s);let l=ne[O++];if((l&128)>0){O-=7;return}return at(t,e,r,o,i,s,l)}else{let i=ne[O++],s=ne[O++],l=ne[O++],c=ne[O++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){O-=8;return}if(n<10){if(n===8)return at(t,e,r,o,i,s,l,c);{let p=ne[O++];if((p&128)>0){O-=9;return}return at(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=ne[O++],a=ne[O++];if((p&128)>0||(a&128)>0){O-=10;return}if(n<11)return at(t,e,r,o,i,s,l,c,p,a);let u=ne[O++];if((u&128)>0){O-=11;return}return at(t,e,r,o,i,s,l,c,p,a,u)}else{let p=ne[O++],a=ne[O++],u=ne[O++],d=ne[O++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){O-=12;return}if(n<14){if(n===12)return at(t,e,r,o,i,s,l,c,p,a,u,d);{let f=ne[O++];if((f&128)>0){O-=13;return}return at(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=ne[O++],m=ne[O++];if((f&128)>0||(m&128)>0){O-=14;return}if(n<15)return at(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=ne[O++];if((h&128)>0){O-=15;return}return at(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function Ll(n){return Pt.copyBuffers?Uint8Array.prototype.slice.call(ne,O,O+=n):ne.subarray(O,O+=n)}function Co(n){let t=ne[O++];if(vt[t])return vt[t](ne.subarray(O,O+=n));throw new Error("Unknown extension type "+t)}var Ou=new Array(4096);function Bu(){let n=ne[O++];if(n>=160&&n<192){if(n=n-160,mr>=O)return oo.slice(O-Wt,(O+=n)-Wt);if(!(mr==0&&no<180))return Gl(n)}else return O--,ke();let t=(n<<5^(n>1?Ce.getUint16(O):n>0?ne[O]:0))&4095,e=Ou[t],r=O,o=O+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Ce.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=ne[r++],i!=e[s++]){r=1879048192;break}if(r===o)return O=r,e.string;o-=3,r=O}for(e=[],Ou[t]=e,e.bytes=n;r<o;)i=Ce.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=ne[r++],e.push(i);let l=n<16?Fl(n):Eu(n);return l!=null?e.string=l:e.string=Gl(n)}var Cu=(n,t)=>{var e=ke();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Ae[n];return o&&o.isShared&&((Ae.restoreStructures||(Ae.restoreStructures=[]))[n]=o),Ae[n]=e,e.read=Vl(e,r),e.read()},Du=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=ke();return(Du[n[0]]||Error)(n[1])};vt[105]=n=>{let t=Ce.getUint32(O-4);Ur||(Ur=new Map);let e=ne[O],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Ur.set(t,o);let i=ke();return o.used?Object.assign(r,i):(o.target=i,i)};vt[112]=n=>{let t=Ce.getUint32(O-4),e=Ur.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(ke());var zl=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=zl[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Du[e](Uint8Array.prototype.slice.call(n,1).buffer)};vt[120]=()=>{let n=ke();return new RegExp(n[0],n[1])};vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=O;O+=t-4,Ft=[ke(),ke()],Ft.position0=0,Ft.position1=0;let r=O;O=e;try{return ke()}finally{O=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 Gu(n){let t=no,e=O,r=Dl,o=Wt,i=mr,s=oo,l=Bl,c=Ur,p=Ft,a=new Uint8Array(ne.slice(0,no)),u=Ae,d=Ae.slice(0,Ae.length),f=Pt,m=rn,h=n();return no=t,O=e,Dl=r,Wt=o,mr=i,oo=s,Bl=l,Ur=c,Ft=p,ne=a,rn=m,Ae=u,Ae.splice(0,Ae.length,...d),Pt=f,Ce=new DataView(ne.buffer,ne.byteOffset,ne.byteLength),h}function js(){ne=null,Ur=null,Ae=null}function Ru(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var ks=new Array(147);for(let n=0;n<256;n++)ks[n]=+("1e"+Math.floor(45.15-n*.30103));var Hs=new hr({useRecords:!1}),Rg=Hs.unpack,Vg=Hs.unpackMultiple,Fg=Hs.unpack,Ws={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},zg=new Float32Array(1),J_=new Uint8Array(zg.buffer,0,4);var qs;try{qs=new TextEncoder}catch{}var $s,Ul,Ys=typeof Buffer<"u",jl=Ys?Buffer.allocUnsafeSlow:Uint8Array,ju=Ys?Buffer:Uint8Array,Vu=Ys?4294967296:2144337920,R,Ye,M=0,gr,yr=null,jg=/[\u0080-\uFFFF]/,_i=Symbol("record-id"),Mo=class extends hr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=ju.prototype.utf8Write?function(y,I,A){return R.utf8Write(y,I,A)}:qs&&qs.encodeInto?function(y,I){return qs.encodeInto(y,R.subarray(I)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,b=f+m+64;if(b>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(y,I){if(R||(R=new jl(8192),Ye=new DataView(R.buffer,0,8192),M=0),gr=R.length-10,gr-M<2048?(R=new jl(R.length),Ye=new DataView(R.buffer,0,R.length),gr=R.length-10,M=0):M=M+7&2147483640,r=M,l=a.structuredClone?new Map:null,a.bundleStrings?(yr=["",""],R[M++]=214,R[M++]=98,yr.position=M-r,M+=4):yr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let A=o.sharedLength||0;if(A>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 P=0;P<A;P++){let T=o[P];if(!T)continue;let C,L=o.transitions;for(let j=0,Y=T.length;j<Y;j++){let te=T[j];C=L[te],C||(C=L[te]=Object.create(null)),L=C}L[_i]=P+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(v(y),yr){Ye.setUint32(yr.position+r,M-yr.position-r);let A=yr;yr=null,v(A[0]),v(A[1])}if(a.offset=M,l&&l.idsToInsert){M+=l.idsToInsert.length*6,M>gr&&_(M),a.offset=M;let A=kg(R.subarray(r,M),l.idsToInsert);return l=null,A}return I&ku?(R.start=r,R.end=M,R):R.subarray(r,M)}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 A=0,P=x.length;A<P;A++)x[A][_i]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let P=R.subarray(r,M);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,P)}}I&Kg&&(M=r)}};let v=y=>{M>gr&&(R=_(M));var I=typeof y,A;if(I==="string"){let P=y.length;if(yr&&P>=8&&P<4096){let L=jg.test(y);yr[L?0:1]+=y,R[M++]=193,v(L?-P:P);return}let T;P<32?T=1:P<256?T=2:P<65536?T=3:T=5;let C=P*3;if(M+C>gr&&(R=_(M+C)),P<64||!p){let L,j,Y,te=M+T;for(L=0;L<P;L++)j=y.charCodeAt(L),j<128?R[te++]=j:j<2048?(R[te++]=j>>6|192,R[te++]=j&63|128):(j&64512)===55296&&((Y=y.charCodeAt(L+1))&64512)===56320?(j=65536+((j&1023)<<10)+(Y&1023),L++,R[te++]=j>>18|240,R[te++]=j>>12&63|128,R[te++]=j>>6&63|128,R[te++]=j&63|128):(R[te++]=j>>12|224,R[te++]=j>>6&63|128,R[te++]=j&63|128);A=te-M-T}else A=p(y,M+T,C);A<32?R[M++]=160|A:A<256?(T<2&&R.copyWithin(M+2,M+1,M+1+A),R[M++]=217,R[M++]=A):A<65536?(T<3&&R.copyWithin(M+3,M+2,M+2+A),R[M++]=218,R[M++]=A>>8,R[M++]=A&255):(T<5&&R.copyWithin(M+5,M+3,M+3+A),R[M++]=219,Ye.setUint32(M,A),M+=4),M+=A}else if(I==="number")if(y>>>0===y)y<64?R[M++]=y:y<256?(R[M++]=204,R[M++]=y):y<65536?(R[M++]=205,R[M++]=y>>8,R[M++]=y&255):(R[M++]=206,Ye.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?R[M++]=256+y:y>=-128?(R[M++]=208,R[M++]=y+256):y>=-32768?(R[M++]=209,Ye.setInt16(M,y),M+=2):(R[M++]=210,Ye.setInt32(M,y),M+=4);else{let P;if((P=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[M++]=202,Ye.setFloat32(M,y);let T;if(P<4||(T=y*ks[(R[M]&127)<<1|R[M+1]>>7])>>0===T){M+=4;return}else M--}R[M++]=203,Ye.setFloat64(M,y),M+=8}else if(I==="object")if(!y)R[M++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let C=l.idsToInsert||(l.idsToInsert=[]);T.id=C.push(T)}R[M++]=214,R[M++]=112,Ye.setUint32(M,T.id),M+=4;return}else l.set(y,{offset:M-r})}let P=y.constructor;if(P===Object)N(y,!0);else if(P===Array){A=y.length,A<16?R[M++]=144|A:A<65536?(R[M++]=220,R[M++]=A>>8,R[M++]=A&255):(R[M++]=221,Ye.setUint32(M,A),M+=4);for(let T=0;T<A;T++)v(y[T])}else if(P===Map){A=y.size,A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ye.setUint32(M,A),M+=4);for(let[T,C]of y)v(T),v(C)}else{for(let T=0,C=$s.length;T<C;T++){let L=Ul[T];if(y instanceof L){let j=$s[T];if(j.write){j.type&&(R[M++]=212,R[M++]=j.type,R[M++]=0),v(j.write.call(this,y));return}let Y=R,te=Ye,ie=M;R=null;let U;try{U=j.pack.call(this,y,W=>(R=Y,Y=null,M+=W,M>gr&&_(M),{target:R,targetView:Ye,position:M-W}),v)}finally{Y&&(R=Y,Ye=te,M=ie,gr=R.length-10)}U&&(U.length+M>gr&&_(U.length+M),M=Ug(U,R,M,j.type));return}}N(y,!y.hasOwnProperty)}}else if(I==="boolean")R[M++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[M++]=211,Ye.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[M++]=207,Ye.setBigUint64(M,y);else if(this.largeBigIntToFloat)R[M++]=203,Ye.setFloat64(M,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[M++]=192:(R[M++]=212,R[M++]=0,R[M++]=0);else if(I==="function")v(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},N=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),A=I.length;A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ye.setUint32(M,A),M+=4);let P;for(let T=0;T<A;T++)v(P=I[T]),v(y[P])}:(y,I)=>{R[M++]=222;let A=M-r;M+=2;let P=0;for(let T in y)(I||y.hasOwnProperty(T))&&(v(T),v(y[T]),P++);R[A+++r]=P>>8,R[A+r]=P&255}:y=>{let I=Object.keys(y),A,P=s.transitions||(s.transitions=Object.create(null)),T=0;for(let L=0,j=I.length;L<j;L++){let Y=I[L];A=P[Y],A||(A=P[Y]=Object.create(null),T++),P=A}let C=P[_i];if(C)C>=96&&h?(R[M++]=((C-=96)&31)+96,R[M++]=C>>5):R[M++]=C;else{C=s.nextId,C||(C=64),C<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(C=s.nextOwnId,C<b||(C=g),s.nextOwnId=C+1):(C>=b&&(C=g),s.nextId=C+1);let L=I.highByte=C>=96&&h?C-96>>5:-1;P[_i]=C,s[C-64]=I,C<g?(I.isShared=!0,s.sharedLength=C-63,i=!0,L>=0?(R[M++]=(C&31)+96,R[M++]=L):R[M++]=C):(L>=0?(R[M++]=213,R[M++]=114,R[M++]=(C&31)+96,R[M++]=L):(R[M++]=212,R[M++]=114,R[M++]=C),T&&(S+=w*T),x.length>=m&&(x.shift()[_i]=0),x.push(P),v(I))}for(let L=0,j=I.length;L<j;L++)v(y[I[L]])},_=y=>{let I;if(y>16777216){if(y-r>Vu)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(Vu,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(y-r<<2,R.length-1)>>12)+1<<12;let A=new jl(I);return Ye=new DataView(A.buffer,0,I),R.copy?R.copy(A,0,r,y):A.set(R.slice(r,y)),M-=r,r=0,gr=A.length-10,R=A}}useBuffer(t){R=t,Ye=new DataView(R.buffer,R.byteOffset,R.byteLength),M=0}};Ul=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,wi];$s=[{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:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+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?Fu(n,16,t):zu(Ys?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==ju&&this.structuredClone?Fu(n,zl.indexOf(e.name),t):zu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function Fu(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function zu(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 Ug(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 kg(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function kr(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)");Ul.unshift(n.Class),$s.unshift(n)}Ru(n)}var Uu=new Mo({useRecords:!1}),Hg=Uu.pack,Wg=Uu.pack;var{NEVER:qg,ALWAYS:$g,DECIMAL_ROUND:Yg,DECIMAL_FIT:Xg}=Ws,ku=512,Kg=1024;var Hu=new Mo({structuredClone:!0});kr({Class:Ge.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ge.prototype),n}});kr({Class:ge.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ge.prototype),n}});kr({Class:Fe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Fe.prototype),n}});kr({Class:vi.prototype.constructor,type:4,write(n){return n.id},read(n){return new vi(n)}});kr({Class:Si.prototype.constructor,type:5,write(n){return n.data},read(n){return new Si(n)}});kr({Class:Vt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Vt.prototype),n}});kr({Class:Qo.prototype.constructor,type:7,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Qo.prototype),n}});function Zg(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 kl(n){if(yi(n))return n;if(Array.isArray(n))return n.map(kl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=kl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Xs;(r=>{function n(o){return Hu.pack(o)}r.serialize=n;function t(o){return Hu.unpack(o)}r.deserialize=t;function e(o){return Zg(n(kl(o))).toString()}r.checksum=e})(Xs||(Xs={}));var Wu;(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})(Wu||(Wu={}));var on;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(on||(on={}));var qu;(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})(qu||(qu={}));var io;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})(io||(io={}));var Ot;(p=>{function n(a){return typeof a=="object"&&typeof a.r=="number"&&typeof a.g=="number"&&typeof a.b=="number"}p.isRGB=n,p.white={r:1,g:1,b:1},p.red={r:1,g:0,b:0},p.black={r:0,g:0,b:0};function o(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:1}}p.toRgb255a1=o;function i(a){return{r:a.r,g:a.g,b:a.b}}p.clone=i;function s(a){return a=Math.floor(a),{r:(a>>16&255)/255,g:(a>>8&255)/255,b:(a&255)/255}}p.fromHex=s;function l(a,u){return a.r===u.r&&a.g===u.g&&a.b===u.b}p.equals=l;function c(a,u,d){return{r:a.r+(u.r-a.r)*d,g:a.g+(u.g-a.g)*d,b:a.b+(u.b-a.b)*d}}p.lerp=c})(Ot||(Ot={}));var tr;(l=>{l.white={...Ot.white,a:1},l.transparent={...Ot.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Ot.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Ot.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(tr||(tr={}));var Ks;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Ks||(Ks={}));var $u;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})($u||($u={}));var Yu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(Yu||(Yu={}));var nn;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(nn||(nn={}));var Lo;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,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})(Lo||(Lo={}));var Eo;(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(Qg.forEach(s=>{Object.assign(i,{[s]:o[s]??r[s]})}),i.radial={...r.radial},o.radial){let s=r.radial,l=o.radial;Jg.forEach(c=>{Object.assign(i.radial,{[c]:l[c]??s[c]})})}if(i.linear={...r.linear},o.linear){let s=r.linear,l=o.linear;ey.forEach(c=>{Object.assign(i.linear,{[c]:l[c]??s[c]})})}if(i.grid={...r.grid},o.grid){let s=r.grid,l=o.grid;ty.forEach(c=>{Object.assign(i.grid,{[c]:l[c]??s[c]})})}if(i.toObject={...r.toObject},o.toObject){let s=r.toObject,l=o.toObject;ry.forEach(c=>{Object.assign(i.toObject,{[c]:l[c]??s[c]})})}if(i.randomnessObject={...r.randomnessObject},o.randomnessObject){let s=r.randomnessObject,l=o.randomnessObject;oy.forEach(c=>{Object.assign(i.randomnessObject,{[c]:l[c]??s[c]})})}return i}e.merge=t})(Eo||(Eo={}));var Xu;(t=>t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})(Xu||(Xu={}));var Qg=["count"],Jg=["radius","start","end","position","scale","rotation"],ey=["position","scale","rotation"],ty=["count","size"],ry=["count","position","scale","rotation"],oy=["strength","scale","rotation","position","movement","seed","freqScale"];var Zs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Zs||(Zs={}));var Qs;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:tr.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:tr.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:tr.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Qs||(Qs={}));var Hl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(Hl||(Hl={}));var Wl;(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})(Wl||(Wl={}));var Js;(t=>t.defaultData={...Wl.defaultData,...Hl.defaultData,cloner:null,booleanExclude:null})(Js||(Js={}));var ny=typeof global=="object"&&global&&global.Object===Object&&global,ea=ny;var iy=typeof self=="object"&&self&&self.Object===Object&&self,sy=ea||iy||Function("return this")(),Qe=sy;var ay=Qe.Symbol,St=ay;var Ku=Object.prototype,ly=Ku.hasOwnProperty,cy=Ku.toString,Ti=St?St.toStringTag:void 0;function uy(n){var t=ly.call(n,Ti),e=n[Ti];try{n[Ti]=void 0;var r=!0}catch{}var o=cy.call(n);return r&&(t?n[Ti]=e:delete n[Ti]),o}var Zu=uy;var py=Object.prototype,dy=py.toString;function fy(n){return dy.call(n)}var Qu=fy;var my="[object Null]",hy="[object Undefined]",Ju=St?St.toStringTag:void 0;function gy(n){return n==null?n===void 0?hy:my:Ju&&Ju in Object(n)?Zu(n):Qu(n)}var zt=gy;function yy(n){return n!=null&&typeof n=="object"}var gt=yy;var xy="[object Symbol]";function by(n){return typeof n=="symbol"||gt(n)&&zt(n)==xy}var sn=by;function vy(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 ta=vy;var Sy=Array.isArray,He=Sy;var wy=1/0,ep=St?St.prototype:void 0,tp=ep?ep.toString:void 0;function rp(n){if(typeof n=="string")return n;if(He(n))return ta(n,rp)+"";if(sn(n))return tp?tp.call(n):"";var t=n+"";return t=="0"&&1/n==-wy?"-0":t}var op=rp;function _y(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Je=_y;function Ty(n){return n}var ra=Ty;var Ay="[object AsyncFunction]",Ny="[object Function]",Iy="[object GeneratorFunction]",Py="[object Proxy]";function Oy(n){if(!Je(n))return!1;var t=zt(n);return t==Ny||t==Iy||t==Ay||t==Py}var an=Oy;var Cy=Qe["__core-js_shared__"],oa=Cy;var np=function(){var n=/[^.]+$/.exec(oa&&oa.keys&&oa.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function My(n){return!!np&&np in n}var ip=My;var Ly=Function.prototype,Ey=Ly.toString;function By(n){if(n!=null){try{return Ey.call(n)}catch{}try{return n+""}catch{}}return""}var Hr=By;var Dy=/[\\^$.*+?()[\]{}|]/g,Gy=/^\[object .+?Constructor\]$/,Ry=Function.prototype,Vy=Object.prototype,Fy=Ry.toString,zy=Vy.hasOwnProperty,jy=RegExp("^"+Fy.call(zy).replace(Dy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Uy(n){if(!Je(n)||ip(n))return!1;var t=an(n)?jy:Gy;return t.test(Hr(n))}var sp=Uy;function ky(n,t){return n?.[t]}var ap=ky;function Hy(n,t){var e=ap(n,t);return sp(e)?e:void 0}var Ct=Hy;var Wy=Ct(Qe,"WeakMap"),na=Wy;var lp=Object.create,qy=function(){function n(){}return function(t){if(!Je(t))return{};if(lp)return lp(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),cp=qy;function $y(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 up=$y;function Yy(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var ia=Yy;var Xy=800,Ky=16,Zy=Date.now;function Qy(n){var t=0,e=0;return function(){var r=Zy(),o=Ky-(r-e);if(e=r,o>0){if(++t>=Xy)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var pp=Qy;function Jy(n){return function(){return n}}var dp=Jy;var e0=function(){try{var n=Ct(Object,"defineProperty");return n({},"",{}),n}catch{}}(),ln=e0;var t0=ln?function(n,t){return ln(n,"toString",{configurable:!0,enumerable:!1,value:dp(t),writable:!0})}:ra,fp=t0;var r0=pp(fp),sa=r0;function o0(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var mp=o0;var n0=9007199254740991,i0=/^(?:0|[1-9]\d*)$/;function s0(n,t){var e=typeof n;return t=t??n0,!!t&&(e=="number"||e!="symbol"&&i0.test(n))&&n>-1&&n%1==0&&n<t}var so=s0;function a0(n,t,e){t=="__proto__"&&ln?ln(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var cn=a0;function l0(n,t){return n===t||n!==n&&t!==t}var ao=l0;var c0=Object.prototype,u0=c0.hasOwnProperty;function p0(n,t,e){var r=n[t];(!(u0.call(n,t)&&ao(r,e))||e===void 0&&!(t in n))&&cn(n,t,e)}var un=p0;function d0(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?cn(e,l,c):un(e,l,c)}return e}var qt=d0;var hp=Math.max;function f0(n,t,e){return t=hp(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=hp(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),up(n,this,l)}}var aa=f0;function m0(n,t){return sa(aa(n,t,ra),n+"")}var gp=m0;var h0=9007199254740991;function g0(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=h0}var pn=g0;function y0(n){return n!=null&&pn(n.length)&&!an(n)}var lo=y0;function x0(n,t,e){if(!Je(e))return!1;var r=typeof t;return(r=="number"?lo(e)&&so(t,e.length):r=="string"&&t in e)?ao(e[t],n):!1}var yp=x0;function b0(n){return gp(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&yp(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var xp=b0;var v0=Object.prototype;function S0(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||v0;return n===e}var dn=S0;function w0(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var bp=w0;var _0="[object Arguments]";function T0(n){return gt(n)&&zt(n)==_0}var ql=T0;var vp=Object.prototype,A0=vp.hasOwnProperty,N0=vp.propertyIsEnumerable,I0=ql(function(){return arguments}())?ql:function(n){return gt(n)&&A0.call(n,"callee")&&!N0.call(n,"callee")},Wr=I0;function P0(){return!1}var Sp=P0;var Tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,wp=Tp&&typeof module=="object"&&module&&!module.nodeType&&module,O0=wp&&wp.exports===Tp,_p=O0?Qe.Buffer:void 0,C0=_p?_p.isBuffer:void 0,M0=C0||Sp,fn=M0;var L0="[object Arguments]",E0="[object Array]",B0="[object Boolean]",D0="[object Date]",G0="[object Error]",R0="[object Function]",V0="[object Map]",F0="[object Number]",z0="[object Object]",j0="[object RegExp]",U0="[object Set]",k0="[object String]",H0="[object WeakMap]",W0="[object ArrayBuffer]",q0="[object DataView]",$0="[object Float32Array]",Y0="[object Float64Array]",X0="[object Int8Array]",K0="[object Int16Array]",Z0="[object Int32Array]",Q0="[object Uint8Array]",J0="[object Uint8ClampedArray]",ex="[object Uint16Array]",tx="[object Uint32Array]",ze={};ze[$0]=ze[Y0]=ze[X0]=ze[K0]=ze[Z0]=ze[Q0]=ze[J0]=ze[ex]=ze[tx]=!0;ze[L0]=ze[E0]=ze[W0]=ze[B0]=ze[q0]=ze[D0]=ze[G0]=ze[R0]=ze[V0]=ze[F0]=ze[z0]=ze[j0]=ze[U0]=ze[k0]=ze[H0]=!1;function rx(n){return gt(n)&&pn(n.length)&&!!ze[zt(n)]}var Ap=rx;function ox(n){return function(t){return n(t)}}var mn=ox;var Np=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ai=Np&&typeof module=="object"&&module&&!module.nodeType&&module,nx=Ai&&Ai.exports===Np,$l=nx&&ea.process,ix=function(){try{var n=Ai&&Ai.require&&Ai.require("util").types;return n||$l&&$l.binding&&$l.binding("util")}catch{}}(),qr=ix;var Ip=qr&&qr.isTypedArray,sx=Ip?mn(Ip):Ap,la=sx;var ax=Object.prototype,lx=ax.hasOwnProperty;function cx(n,t){var e=He(n),r=!e&&Wr(n),o=!e&&!r&&fn(n),i=!e&&!r&&!o&&la(n),s=e||r||o||i,l=s?bp(n.length,String):[],c=l.length;for(var p in n)(t||lx.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||so(p,c)))&&l.push(p);return l}var ca=cx;function ux(n,t){return function(e){return n(t(e))}}var ua=ux;var px=ua(Object.keys,Object),Pp=px;var dx=Object.prototype,fx=dx.hasOwnProperty;function mx(n){if(!dn(n))return Pp(n);var t=[];for(var e in Object(n))fx.call(n,e)&&e!="constructor"&&t.push(e);return t}var Op=mx;function hx(n){return lo(n)?ca(n):Op(n)}var hn=hx;function gx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Cp=gx;var yx=Object.prototype,xx=yx.hasOwnProperty;function bx(n){if(!Je(n))return Cp(n);var t=dn(n),e=[];for(var r in n)r=="constructor"&&(t||!xx.call(n,r))||e.push(r);return e}var Mp=bx;function vx(n){return lo(n)?ca(n,!0):Mp(n)}var xr=vx;var Sx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wx=/^\w*$/;function _x(n,t){if(He(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||sn(n)?!0:wx.test(n)||!Sx.test(n)||t!=null&&n in Object(t)}var Lp=_x;var Tx=Ct(Object,"create"),$r=Tx;function Ax(){this.__data__=$r?$r(null):{},this.size=0}var Ep=Ax;function Nx(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var Bp=Nx;var Ix="__lodash_hash_undefined__",Px=Object.prototype,Ox=Px.hasOwnProperty;function Cx(n){var t=this.__data__;if($r){var e=t[n];return e===Ix?void 0:e}return Ox.call(t,n)?t[n]:void 0}var Dp=Cx;var Mx=Object.prototype,Lx=Mx.hasOwnProperty;function Ex(n){var t=this.__data__;return $r?t[n]!==void 0:Lx.call(t,n)}var Gp=Ex;var Bx="__lodash_hash_undefined__";function Dx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=$r&&t===void 0?Bx:t,this}var Rp=Dx;function gn(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])}}gn.prototype.clear=Ep;gn.prototype.delete=Bp;gn.prototype.get=Dp;gn.prototype.has=Gp;gn.prototype.set=Rp;var Yl=gn;function Gx(){this.__data__=[],this.size=0}var Vp=Gx;function Rx(n,t){for(var e=n.length;e--;)if(ao(n[e][0],t))return e;return-1}var co=Rx;var Vx=Array.prototype,Fx=Vx.splice;function zx(n){var t=this.__data__,e=co(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Fx.call(t,e,1),--this.size,!0}var Fp=zx;function jx(n){var t=this.__data__,e=co(t,n);return e<0?void 0:t[e][1]}var zp=jx;function Ux(n){return co(this.__data__,n)>-1}var jp=Ux;function kx(n,t){var e=this.__data__,r=co(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var Up=kx;function yn(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])}}yn.prototype.clear=Vp;yn.prototype.delete=Fp;yn.prototype.get=zp;yn.prototype.has=jp;yn.prototype.set=Up;var uo=yn;var Hx=Ct(Qe,"Map"),po=Hx;function Wx(){this.size=0,this.__data__={hash:new Yl,map:new(po||uo),string:new Yl}}var kp=Wx;function qx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var Hp=qx;function $x(n,t){var e=n.__data__;return Hp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var fo=$x;function Yx(n){var t=fo(this,n).delete(n);return this.size-=t?1:0,t}var Wp=Yx;function Xx(n){return fo(this,n).get(n)}var qp=Xx;function Kx(n){return fo(this,n).has(n)}var $p=Kx;function Zx(n,t){var e=fo(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var Yp=Zx;function xn(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])}}xn.prototype.clear=kp;xn.prototype.delete=Wp;xn.prototype.get=qp;xn.prototype.has=$p;xn.prototype.set=Yp;var Ni=xn;var Qx="Expected a function";function Xl(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(Qx);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 s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(Xl.Cache||Ni),e}Xl.Cache=Ni;var Xp=Xl;var Jx=500;function eb(n){var t=Xp(n,function(r){return e.size===Jx&&e.clear(),r}),e=t.cache;return t}var Kp=eb;var tb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rb=/\\(\\)?/g,ob=Kp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(tb,function(e,r,o,i){t.push(o?i.replace(rb,"$1"):r||e)}),t}),Zp=ob;function nb(n){return n==null?"":op(n)}var Qp=nb;function ib(n,t){return He(n)?n:Lp(n,t)?[n]:Zp(Qp(n))}var $t=ib;var sb=1/0;function ab(n){if(typeof n=="string"||sn(n))return n;var t=n+"";return t=="0"&&1/n==-sb?"-0":t}var mo=ab;function lb(n,t){t=$t(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[mo(t[e++])];return e&&e==r?n:void 0}var pa=lb;function cb(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var bn=cb;var Jp=St?St.isConcatSpreadable:void 0;function ub(n){return He(n)||Wr(n)||!!(Jp&&n&&n[Jp])}var ed=ub;function td(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=ed),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?td(l,t-1,e,r,o):bn(o,l):r||(o[o.length]=l)}return o}var rd=td;function pb(n){var t=n==null?0:n.length;return t?rd(n,1):[]}var od=pb;function db(n){return sa(aa(n,void 0,od),n+"")}var da=db;var fb=ua(Object.getPrototypeOf,Object),vn=fb;var mb="[object Object]",hb=Function.prototype,gb=Object.prototype,nd=hb.toString,yb=gb.hasOwnProperty,xb=nd.call(Object);function bb(n){if(!gt(n)||zt(n)!=mb)return!1;var t=vn(n);if(t===null)return!0;var e=yb.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&nd.call(e)==xb}var fa=bb;function vb(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 id=vb;function Sb(){this.__data__=new uo,this.size=0}var sd=Sb;function wb(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var ad=wb;function _b(n){return this.__data__.get(n)}var ld=_b;function Tb(n){return this.__data__.has(n)}var cd=Tb;var Ab=200;function Nb(n,t){var e=this.__data__;if(e instanceof uo){var r=e.__data__;if(!po||r.length<Ab-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new Ni(r)}return e.set(n,t),this.size=e.size,this}var ud=Nb;function Sn(n){var t=this.__data__=new uo(n);this.size=t.size}Sn.prototype.clear=sd;Sn.prototype.delete=ad;Sn.prototype.get=ld;Sn.prototype.has=cd;Sn.prototype.set=ud;var ma=Sn;function Ib(n,t){return n&&qt(t,hn(t),n)}var pd=Ib;function Pb(n,t){return n&&qt(t,xr(t),n)}var dd=Pb;var gd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,fd=gd&&typeof module=="object"&&module&&!module.nodeType&&module,Ob=fd&&fd.exports===gd,md=Ob?Qe.Buffer:void 0,hd=md?md.allocUnsafe:void 0;function Cb(n,t){if(t)return n.slice();var e=n.length,r=hd?hd(e):new n.constructor(e);return n.copy(r),r}var ha=Cb;function Mb(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var yd=Mb;function Lb(){return[]}var ga=Lb;var Eb=Object.prototype,Bb=Eb.propertyIsEnumerable,xd=Object.getOwnPropertySymbols,Db=xd?function(n){return n==null?[]:(n=Object(n),yd(xd(n),function(t){return Bb.call(n,t)}))}:ga,wn=Db;function Gb(n,t){return qt(n,wn(n),t)}var bd=Gb;var Rb=Object.getOwnPropertySymbols,Vb=Rb?function(n){for(var t=[];n;)bn(t,wn(n)),n=vn(n);return t}:ga,ya=Vb;function Fb(n,t){return qt(n,ya(n),t)}var vd=Fb;function zb(n,t,e){var r=t(n);return He(n)?r:bn(r,e(n))}var xa=zb;function jb(n){return xa(n,hn,wn)}var Sd=jb;function Ub(n){return xa(n,xr,ya)}var ba=Ub;var kb=Ct(Qe,"DataView"),va=kb;var Hb=Ct(Qe,"Promise"),Sa=Hb;var Wb=Ct(Qe,"Set"),wa=Wb;var wd="[object Map]",qb="[object Object]",_d="[object Promise]",Td="[object Set]",Ad="[object WeakMap]",Nd="[object DataView]",$b=Hr(va),Yb=Hr(po),Xb=Hr(Sa),Kb=Hr(wa),Zb=Hr(na),Bo=zt;(va&&Bo(new va(new ArrayBuffer(1)))!=Nd||po&&Bo(new po)!=wd||Sa&&Bo(Sa.resolve())!=_d||wa&&Bo(new wa)!=Td||na&&Bo(new na)!=Ad)&&(Bo=function(n){var t=zt(n),e=t==qb?n.constructor:void 0,r=e?Hr(e):"";if(r)switch(r){case $b:return Nd;case Yb:return wd;case Xb:return _d;case Kb:return Td;case Zb:return Ad}return t});var _n=Bo;var Qb=Object.prototype,Jb=Qb.hasOwnProperty;function ev(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&Jb.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Id=ev;var tv=Qe.Uint8Array,Kl=tv;function rv(n){var t=new n.constructor(n.byteLength);return new Kl(t).set(new Kl(n)),t}var Tn=rv;function ov(n,t){var e=t?Tn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Pd=ov;var nv=/\w*$/;function iv(n){var t=new n.constructor(n.source,nv.exec(n));return t.lastIndex=n.lastIndex,t}var Od=iv;var Cd=St?St.prototype:void 0,Md=Cd?Cd.valueOf:void 0;function sv(n){return Md?Object(Md.call(n)):{}}var Ld=sv;function av(n,t){var e=t?Tn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var _a=av;var lv="[object Boolean]",cv="[object Date]",uv="[object Map]",pv="[object Number]",dv="[object RegExp]",fv="[object Set]",mv="[object String]",hv="[object Symbol]",gv="[object ArrayBuffer]",yv="[object DataView]",xv="[object Float32Array]",bv="[object Float64Array]",vv="[object Int8Array]",Sv="[object Int16Array]",wv="[object Int32Array]",_v="[object Uint8Array]",Tv="[object Uint8ClampedArray]",Av="[object Uint16Array]",Nv="[object Uint32Array]";function Iv(n,t,e){var r=n.constructor;switch(t){case gv:return Tn(n);case lv:case cv:return new r(+n);case yv:return Pd(n,e);case xv:case bv:case vv:case Sv:case wv:case _v:case Tv:case Av:case Nv:return _a(n,e);case uv:return new r;case pv:case mv:return new r(n);case dv:return Od(n);case fv:return new r;case hv:return Ld(n)}}var Ed=Iv;function Pv(n){return typeof n.constructor=="function"&&!dn(n)?cp(vn(n)):{}}var Ta=Pv;var Ov="[object Map]";function Cv(n){return gt(n)&&_n(n)==Ov}var Bd=Cv;var Dd=qr&&qr.isMap,Mv=Dd?mn(Dd):Bd,Gd=Mv;var Lv="[object Set]";function Ev(n){return gt(n)&&_n(n)==Lv}var Rd=Ev;var Vd=qr&&qr.isSet,Bv=Vd?mn(Vd):Rd,Fd=Bv;var Dv=1,Gv=2,Rv=4,zd="[object Arguments]",Vv="[object Array]",Fv="[object Boolean]",zv="[object Date]",jv="[object Error]",jd="[object Function]",Uv="[object GeneratorFunction]",kv="[object Map]",Hv="[object Number]",Ud="[object Object]",Wv="[object RegExp]",qv="[object Set]",$v="[object String]",Yv="[object Symbol]",Xv="[object WeakMap]",Kv="[object ArrayBuffer]",Zv="[object DataView]",Qv="[object Float32Array]",Jv="[object Float64Array]",eS="[object Int8Array]",tS="[object Int16Array]",rS="[object Int32Array]",oS="[object Uint8Array]",nS="[object Uint8ClampedArray]",iS="[object Uint16Array]",sS="[object Uint32Array]",Re={};Re[zd]=Re[Vv]=Re[Kv]=Re[Zv]=Re[Fv]=Re[zv]=Re[Qv]=Re[Jv]=Re[eS]=Re[tS]=Re[rS]=Re[kv]=Re[Hv]=Re[Ud]=Re[Wv]=Re[qv]=Re[$v]=Re[Yv]=Re[oS]=Re[nS]=Re[iS]=Re[sS]=!0;Re[jv]=Re[jd]=Re[Xv]=!1;function Aa(n,t,e,r,o,i){var s,l=t&Dv,c=t&Gv,p=t&Rv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Je(n))return n;var a=He(n);if(a){if(s=Id(n),!l)return ia(n,s)}else{var u=_n(n),d=u==jd||u==Uv;if(fn(n))return ha(n,l);if(u==Ud||u==zd||d&&!o){if(s=c||d?{}:Ta(n),!l)return c?vd(n,dd(s,n)):bd(n,pd(s,n))}else{if(!Re[u])return o?n:{};s=Ed(n,u,l)}}i||(i=new ma);var f=i.get(n);if(f)return f;i.set(n,s),Fd(n)?n.forEach(function(g){s.add(Aa(g,t,e,g,n,i))}):Gd(n)&&n.forEach(function(g,b){s.set(b,Aa(g,t,e,b,n,i))});var m=p?c?ba:Sd:c?xr:hn,h=a?void 0:m(n);return mp(h||n,function(g,b){h&&(b=g,g=n[b]),un(s,b,Aa(g,t,e,b,n,i))}),s}var Na=Aa;var aS=1,lS=4;function cS(n){return Na(n,aS|lS)}var Ii=cS;function uS(n,t){return n!=null&&t in Object(n)}var kd=uS;function pS(n,t,e){t=$t(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=mo(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&pn(o)&&so(s,o)&&(He(n)||Wr(n)))}var Hd=pS;function dS(n,t){return n!=null&&Hd(n,t,kd)}var Wd=dS;function fS(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var qd=fS;var mS=qd(),$d=mS;function hS(n,t,e){(e!==void 0&&!ao(n[t],e)||e===void 0&&!(t in n))&&cn(n,t,e)}var Pi=hS;function gS(n){return gt(n)&&lo(n)}var Yd=gS;function yS(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var Oi=yS;function xS(n){return qt(n,xr(n))}var Xd=xS;function bS(n,t,e,r,o,i,s){var l=Oi(n,e),c=Oi(t,e),p=s.get(c);if(p){Pi(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=He(c),f=!d&&fn(c),m=!d&&!f&&la(c);a=c,d||f||m?He(l)?a=l:Yd(l)?a=ia(l):f?(u=!1,a=ha(c,!0)):m?(u=!1,a=_a(c,!0)):a=[]:fa(c)||Wr(c)?(a=l,Wr(l)?a=Xd(l):(!Je(l)||an(l))&&(a=Ta(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),Pi(n,e,a)}var Kd=bS;function Zd(n,t,e,r,o){n!==t&&$d(t,function(i,s){if(o||(o=new ma),Je(i))Kd(n,t,s,e,Zd,r,o);else{var l=r?r(Oi(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),Pi(n,s,l)}},xr)}var Qd=Zd;function vS(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var Jd=vS;function SS(n,t){return t.length<2?n:pa(n,id(t,0,-1))}var ef=SS;var wS=xp(function(n,t,e){Qd(n,t,e)}),An=wS;function _S(n,t){return t=$t(t,n),n=ef(n,t),n==null||delete n[mo(Jd(t))]}var tf=_S;function TS(n){return fa(n)?void 0:n}var rf=TS;var AS=1,NS=2,IS=4,PS=da(function(n,t){var e={};if(n==null)return e;var r=!1;t=ta(t,function(i){return i=$t(i,n),r||(r=i.length>1),i}),qt(n,ba(n),e),r&&(e=Na(e,AS|NS|IS,rf));for(var o=t.length;o--;)tf(e,t[o]);return e}),Nn=PS;function OS(n,t,e,r){if(!Je(n))return n;t=$t(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=mo(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Je(a)?a:so(t[o+1])?[]:{})}un(l,c,p),l=l[c]}return n}var of=OS;function CS(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=pa(n,s);e(l,s)&&of(i,$t(s,n),l)}return i}var nf=CS;function MS(n,t){return nf(n,t,function(e,r){return Wd(n,r)})}var sf=MS;var LS=da(function(n,t){return n==null?{}:sf(n,t)}),In=LS;var af=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],lf=["wrapping","image"],jt;(o=>{function n(i,s){An(i,s)}o.patch=n;function t(i,s){return i==="light"&&s?e(s):r(i)}o.defaultData=t;function e(i){switch(i){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function r(i){switch(i){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Ot.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,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{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,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{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Ot.fromHex(6710886),a:1},colorB:{...Ot.fromHex(6710886),a:1},colorC:{...Ot.fromHex(16777215),a:1},colorD:{...Ot.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:tr.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,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:tr.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:tr.fromHexAndA(0,1),contourColor:tr.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{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(jt||(jt={}));var wt;(l=>{function n(c){return!c.layers.some(a=>a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c,p){let a=0;for(let u of c.layers)if(u.data.type!=="displace"&&"alpha"in u.data&&u.data.type!=="light"&&u.data.type!=="fresnel"&&u.data.type!=="texture"&&u.data.type!=="matcap"&&u.data.type!=="rainbow"&&u.data.type!=="outline"){let d=u.data.visible?u.data.alpha:0;if(d==1&&u.data.type=="depth"||u.data.type=="gradient"){for(let f of u.data.colors)if(f[3]<1){d=f[3];break}}else if(d==1&&u.data.type=="noise"){let f=p.color(u.data.colorA).a,m=p.color(u.data.colorB).a,h=p.color(u.data.colorC).a,g=p.color(u.data.colorD).a,b=Math.min(f,Math.min(m,Math.min(h,g)));b<1&&(d=b)}a+=(1-a)*d}return a<1}l.isTransparent=e;function r(){return{layers:new ge}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new ge;return u.push({fi:0,data:jt.defaultData("light",c),id:p}),u.push({fi:1,data:jt.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="phong",a="layer1",u="layer2"){let d=jt.defaultData("texture");Object.assign(d.texture,{image:c});let f=new ge;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:jt.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(wt||(wt={}));var Pn;(t=>{function n(){return{points:new ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(Pn||(Pn={}));var On;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(On||(On={}));var ho;(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==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:Pn.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:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=n})(ho||(ho={}));var Ci;(o=>{o.identity={...Ks.identity,hiddenMatrix:io.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:on.isEqual(i.position,s.position)?null:s.position,rotation:on.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:on.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:io.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(Ci||(Ci={}));var Zl;(t=>t.defaultData={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]})(Zl||(Zl={}));var rr;(t=>t.defaultData={states:new ge,events:new ge,visible:!0,raycastLock:!1,physics:null,...Ci.identity})(rr||(rr={}));var cf;(t=>t.defaultData={type:"Empty",cloner:null,...rr.defaultData})(cf||(cf={}));var Do;(t=>t.defaultData={type:"Mesh",...rr.defaultData,...Js.defaultData})(Do||(Do={}));var Ia;(t=>t.defaultData={...rr.defaultData,...Ci.identity,...Lo.defaultData})(Ia||(Ia={}));var uf;(t=>{function n(e){return{...rr.defaultData,...Qs.defaultData(e)}}t.defaultData=n})(uf||(uf={}));var pf;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:io.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Zl.defaultData,states:new ge,events:new ge,...Lo.defaultData},o.defaultMeshObject={name:"Rectangle",...rr.defaultData,...Do.defaultData,geometry:ho.defaultData("RectangleGeometry"),material:wt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...rr.defaultData,...Do.defaultData,geometry:ho.defaultData("BooleanGeometry"),material:wt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...rr.defaultData,...Do.defaultData,geometry:ho.defaultData("TextGeometry"),material:wt.defaultTwoLayerData("phong","layer1","layer2")}))(pf||(pf={}));var df;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=Ml(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&jt.patch(p,c)}}).data),i.materials&&o.materials&&(i.materials=Ml(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&jt.patch(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,Ci.merge(i,o)),nn.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o),i.cloner&&"cloner"in o&&Object.assign(i,{cloner:Eo.merge(i.cloner,o.cloner)});else if(r.type==="Empty")i.cloner&&"cloner"in o&&Object.assign(i,{cloner:Eo.merge(i.cloner,o.cloner)});else if(Zs.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Ot.clone(s.color))}return i}e.patch=t})(df||(df={}));var Cn;(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,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(Cn||(Cn={}));var Pa;(t=>t.defaultData={orbitControls:Cn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,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"]}),gameControlObject:null})(Pa||(Pa={}));function Go(n,t){return Object.setPrototypeOf(n,t),n}function ff(n){return Array.isArray(n)?n:[n]}var Oa;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Go(r,Ge.prototype)}e.defaultColors=n;function t(){return{materials:new Ge,images:new Ge,colors:new Ge,audios:new Ge,fonts:new Ge,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(Oa||(Oa={}));var Mi=require("three");function mf(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 l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...In(It(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,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...It(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Ca(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function Ma(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function ES(n){Object.assign(n.scene.publish,{orbitControls:{...Cn.defaultData,...It(n.scene.publish.orbitControls)}})}function BS(n){Object.assign(n.scene.publish.settings,{video:{...Pa.defaultData.settings.video,...It(n.scene.publish.settings.video)}})}function DS(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((af.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(lf.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function GS(n){n.scene.publish.withBackground=!0}function RS(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function VS(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 FS(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 zS(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function hf(n){n.layers===void 0&&Object.assign(n,wt.defaultTwoLayerData("lambert"))}function Ql(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={...It(t),colors:e,steps:r};Object.assign(t,o)}})}function jS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function gf(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Ql(r)}):"material"in e&&typeof e.material!="string"&&Ql(e.material)}),Object.values(n.shared.materials).forEach(t=>Ql(t))}function US(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 kS(n){n.shared.audios=Go({},Ge.prototype)}function HS(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 WS(n){Object.entries(It(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(It(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function qS(n){n.scene.publish.settings.web.preload=!1}function yf(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 $S(n){n.shared.fonts=Go({},Ge.prototype)}function YS(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 XS(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=wt.defaultTwoLayerData("phong"),s=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=o.alpha;let l=YS(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...rr.defaultData,...Do.defaultData,flatShading:!1,wireframe:!1,geometry:{...ho.defaultData("TextGeometry"),width:o.width,height:o.height,font:l,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:It(o.states),events:It(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=It(n.scene.objects).parent(e);n.scene.objects.insertAfter(p??null,e,[{id:e+"new",data:c,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function KS(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 ge,move:new ge,jump:new ge}});else{let i=new ge;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:Mi.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((s,l,c)=>{let p={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},a={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(a,In(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},d={state:s.state,...u,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ge({fi:0,id:Mi.MathUtils.generateUUID(),data:p},{fi:1,id:Mi.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function ZS(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new ge,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...In(c,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in c?c.after:void 0,toggle:"after"in c?c.toggle:void 0,type:"Audio"}:(c.interaction==="pause"||c.interaction==="stop")&&(u={...In(c,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:a,id:p,data:u})}}),l.forEach(c=>e.events.delete(c)),s.length){let c=e.events.find(p=>p.type===o)?.data;c?"actions"in c&&c.actions.insertBefore(null,s):e.events.insertBefore(null,[{id:Mi.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function xf(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=jt.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function QS(n){Ca(n,xf),Ma(n,xf)}function JS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function e1(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"}})})}var bf=24;function vf(n){let t=n.schema??0;t!==bf&&(console.warn("updating from ",t,"to ",bf),t<1&&(Ma(n,mf),Ca(n,mf),n.schema=1),t<2&&(ES(n),n.schema=2),t<3&&(DS(n),n.schema=3),t<4&&(GS(n),n.schema=4),t<5&&(RS(n),n.schema=5),t<6&&(VS(n),n.schema=6),t<7&&(FS(n),n.schema=7),t<8&&(zS(n),n.schema=8),t<9&&(gf(n),n.schema=9),t<10&&(jS(n),n.schema=10),t<11&&(US(n),n.schema=11),t<12&&(gf(n),n.schema=12),t<13&&(kS(n),n.schema=13),t<14&&(HS(n),n.schema=14),t<15&&(WS(n),n.schema=15),t<16&&(qS(n),n.schema=16),t<17&&(Ma(n,yf),Ca(n,yf),n.schema=17),t<18&&(Ma(n,hf),Ca(n,hf),n.schema=18),t<19&&(BS(n),n.schema=19),t<20&&($S(n),XS(n),n.schema=20),t<21&&(KS(n),ZS(n),n.schema=21),t<22&&(QS(n),n.schema=22),t<23&&(JS(n),n.schema=23),t<24&&(e1(n),n.schema=24))}var La;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(La||(La={}));var Me=require("three"),Dn=Ls(wf());var t1=.5*(Math.sqrt(3)-1),Ei=(3-Math.sqrt(3))/6,r1=1/3,br=1/6,w3=(Math.sqrt(5)-1)/4,_3=(5-Math.sqrt(5))/20,Bi=n=>Math.floor(n)|0,_f=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]),ec=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 Ea(n=Math.random){let t=Af(n),e=new Float64Array(t).map(o=>_f[o%12*2]),r=new Float64Array(t).map(o=>_f[o%12*2+1]);return function(i,s){let l=0,c=0,p=0,a=(i+s)*t1,u=Bi(i+a),d=Bi(s+a),f=(u+d)*Ei,m=u-f,h=d-f,g=i-m,b=s-h,x,S;g>b?(x=1,S=0):(x=0,S=1);let w=g-x+Ei,v=b-S+Ei,N=g-1+2*Ei,_=b-1+2*Ei,y=u&255,I=d&255,A=.5-g*g-b*b;if(A>=0){let C=y+t[I],L=e[C],j=r[C];A*=A,l=A*A*(L*g+j*b)}let P=.5-w*w-v*v;if(P>=0){let C=y+x+t[I+S],L=e[C],j=r[C];P*=P,c=P*P*(L*w+j*v)}let T=.5-N*N-_*_;if(T>=0){let C=y+1+t[I+1],L=e[C],j=r[C];T*=T,p=T*T*(L*N+j*_)}return 70*(l+c+p)}}function Tf(n=Math.random){let t=Af(n),e=new Float64Array(t).map(i=>ec[i%12*3]),r=new Float64Array(t).map(i=>ec[i%12*3+1]),o=new Float64Array(t).map(i=>ec[i%12*3+2]);return function(s,l,c){let p,a,u,d,f=(s+l+c)*r1,m=Bi(s+f),h=Bi(l+f),g=Bi(c+f),b=(m+h+g)*br,x=m-b,S=h-b,w=g-b,v=s-x,N=l-S,_=c-w,y,I,A,P,T,C;v>=N?N>=_?(y=1,I=0,A=0,P=1,T=1,C=0):v>=_?(y=1,I=0,A=0,P=1,T=0,C=1):(y=0,I=0,A=1,P=1,T=0,C=1):N<_?(y=0,I=0,A=1,P=0,T=1,C=1):v<_?(y=0,I=1,A=0,P=0,T=1,C=1):(y=0,I=1,A=0,P=1,T=1,C=0);let L=v-y+br,j=N-I+br,Y=_-A+br,te=v-P+2*br,ie=N-T+2*br,U=_-C+2*br,W=v-1+3*br,q=N-1+3*br,F=_-1+3*br,E=m&255,D=h&255,B=g&255,k=.6-v*v-N*N-_*_;if(k<0)p=0;else{let G=E+t[D+t[B]];k*=k,p=k*k*(e[G]*v+r[G]*N+o[G]*_)}let $=.6-L*L-j*j-Y*Y;if($<0)a=0;else{let G=E+y+t[D+I+t[B+A]];$*=$,a=$*$*(e[G]*L+r[G]*j+o[G]*Y)}let H=.6-te*te-ie*ie-U*U;if(H<0)u=0;else{let G=E+P+t[D+T+t[B+C]];H*=H,u=H*H*(e[G]*te+r[G]*ie+o[G]*U)}let V=.6-W*W-q*q-F*F;if(V<0)d=0;else{let G=E+1+t[D+1+t[B+1]];V*=V,d=V*V*(e[G]*W+r[G]*q+o[G]*F)}return 32*(p+a+u+d)}}function Af(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}var Nf=require("three"),or=new Nf.Triangle,Ba=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;or.a.fromBufferAttribute(t,o),or.b.fromBufferAttribute(t,o+1),or.c.fromBufferAttribute(t,o+2),i*=or.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 s=Math.ceil((r+o)/2);if(s===0||e[s-1]<=t&&e[s]>t){i=s;break}else t<e[s]?o=s-1:r=s+1}return i}sampleFace(t,e,r){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),or.a.fromBufferAttribute(this.positionAttribute,t*3),or.b.fromBufferAttribute(this.positionAttribute,t*3+1),or.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(or.a,o).addScaledVector(or.b,i).addScaledVector(or.c,1-(o+i)),or.getNormal(r),this}};var Va=require("three");var oc=require("three");var Ga=require("three");var tc=require("three");function lt(n,t){return t.color(n)}var rc=n=>"isEntity"in n,vr=n=>"isAbstractMesh"in n,Sr=n=>n!==null&&n.objectType==="BooleanObject",If=n=>n.objectType==="CombinedCamera";var Da=n=>"objectHelper"in n;function o1(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??io.identity)),e&&(n.updateMatrix(),Sr(n.parent)&&vr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function n1(n,t){o1(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function Pf(n,t,e){n1(n,t),t.color!==void 0&&(n.color=lt(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof tc.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof tc.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function Of(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 Ra=n=>class extends n{hasEntityChild(){return this.children.some(e=>rc(e))}isDescendantOf(e){e instanceof Ga.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new Ga.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),rc(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var We=require("three");var Mn=new We.Box3,Yt=new We.Vector3,wr=new We.Vector3,Ln=new We.Matrix4,Mf=[new We.Vector3(-1,1,1),new We.Vector3(-1,-1,1),new We.Vector3(1,-1,1),new We.Vector3(1,1,1),new We.Vector3(-1,1,-1),new We.Vector3(-1,-1,-1),new We.Vector3(1,-1,-1),new We.Vector3(1,1,-1)],i1=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],s1=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function a1(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var Cf=(n,t,e)=>{if(vr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?Yt.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||On.is2DParametricMesh(i)?Yt.set(0,0,r.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?Yt.set(0,0,0):o!==void 0&&(a1(Mn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),Mn.getCenter(Yt)),n.forceComputeSize?Mn.getSize(wr).multiplyScalar(.5):wr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(Da(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");Mn.setFromArray(r.array),Mn.getCenter(Yt),Mn.getSize(wr).multiplyScalar(.5)}else Yt.setScalar(0),wr.setScalar(0);Ln.copy(t).multiply(n.matrixWorld),wr.x===0&&wr.y===0&&wr.z===0?e.push(new We.Vector3(Yt.x,Yt.y,Yt.z).applyMatrix4(Ln)):Mf.forEach(r=>{e.push(r.clone().multiply(wr).add(Yt).applyMatrix4(Ln))})},Di=class extends We.Box3{constructor(){super(...arguments);this.matrix=new We.Matrix4;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 We.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&Cf(s,r,i)}):Cf(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(Ln.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(wr).multiplyScalar(.5),this.getCenter(Yt),Ln.copy(this.matrix).setPosition(Yt),this.vertices=Mf.map(e=>e.clone().multiply(wr).applyMatrix4(Ln))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=i1.map(([e,r])=>new We.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new We.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=s1.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Xt=n=>"isEntity"in n,Lf=n=>"isAbstractMesh"in n,Kt=n=>class extends Ra(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new oc.Matrix4;this._singleBBox=new Di;this._recursiveBBox=new Di;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.currentState=null;this.currentTransitionAction=null}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}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(r=>{Xt(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let o of this.children)Xt(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Xt(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}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 s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)Xt(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new oc.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Xt(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return Nn(o,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return Nn(o,r)}fromState(r,o){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visible=r.visible),this.fromObjectTransformState(r),this}};var nc=class extends Va.Object3D{},l1=n=>n.type==="Mesh",_r=class extends nc{constructor(e){super();this.object=e;this.hiddenMatrix=new Va.Matrix4;this.uuidOrigin=e.uuid,this.matrixAutoUpdate=!0;for(let r of this.object.children)if(Xt(r)){let o=new _r(r);o.visible=!0,this.add(o),o.matrixAutoUpdate=!1,o.matrix=r.matrix.clone(),o.matrix.premultiply(r.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return l1(this.object)}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(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,e=!0);for(let r of this.children)r.updateMatrixWorld(e)}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}};var c1,En=new Promise(n=>{c1=n});var Tr=require("three"),Ef=-1,u1=1,Bf={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Df={polygon_center:0,edge:1,vertex:2},Gi=(n,t)=>(e,r)=>!t||e===0||n===0?0:n*r/100,he=(n,t)=>{let e=Math.abs(t),r=e*-1;return(n-Ef)*(e-r)/(u1-Ef)+r};function Gf(n){let t=[],e={};for(var r=0,o=n.length;r<o;r++){var i=JSON.stringify(n[r].pos.map(s=>Math.round(s*1e4)/1e4));e[i]||(t.push(n[r]),e[i]=!0)}return t}var p1=new Tr.Vector3,Fa=new Tr.Vector3,d1=new Tr.Vector3,f1=new Tr.Vector3;function Bn(n,t){let e=d1.fromArray(n),r=f1.fromArray(t);Fa.copy(r).sub(e);let o=Fa.length();return Fa.normalize().multiplyScalar(o*.5),p1.copy(e).add(Fa).toArray()}var Zt=new Tr.Triangle,za=new Tr.Vector3,ja=new Tr.Vector3,Ro=new Tr.Vector3;function Rf(n){let t=[];for(let e=0;e<=n.index.count;e++)if(za.fromArray(n.index.array,e*3),Zt.setFromAttributeAndIndices(n.attributes.position,za.x,za.y,za.z),Zt.getNormal(ja),Zt.getMidpoint(Ro),!(isNaN(Ro.x)||isNaN(Ro.y)||isNaN(Ro.z))){let{a:r,b:o,c:i}=Zt,s=r.toArray(),l=o.toArray(),c=i.toArray(),p=r.distanceTo(o),a=o.distanceTo(i),u=i.distanceTo(r),d=Bn(s,l),f=Bn(l,c),m=Bn(c,s),h=[p,a,u],g=Math.max(...h),b=h.filter(w=>Math.round(w)===Math.round(g)).length>1,x=[],S=Zt.getMidpoint(Ro).toArray();g===p&&!b&&(x=[f,m,m],S=d),g===a&&!b&&(x=[d,m,m],S=f),g===u&&!b&&(x=[d,f,f],S=m),b&&(x=[d,f,m]),t.push({vertices:[s,l,c],faceCenters:x,midpoint:S,norm:Zt.getNormal(ja).toArray()})}return t}function Vf(n){let t=[],{position:e}=n.attributes;for(let r=0;r<e.count;r++){Zt.setFromAttributeAndIndices(e,r*3,r*3+1,r*3+2),Zt.getNormal(ja),Zt.getMidpoint(Ro);let o=Zt.a.toArray(),i=Zt.b.toArray(),s=Zt.c.toArray();t.push({vertices:[o,i,s],faceCenters:[Bn(o,i),Bn(i,s),Bn(s,o)],midpoint:Ro.toArray(),norm:ja.toArray()})}return t}var m1=4,h1=.5,ic=n=>.5*(1-Math.cos(n*Math.PI)),sc=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 b=0;b<4095+1;b++)this.perlin[b]=Math.random()}t<0&&(t=-t),e<0&&(e=-e),r<0&&(r=-r);let o=Math.floor(t),i=Math.floor(e),s=Math.floor(r),l=t-o,c=e-i,p=r-s,a,u,d=0,f=.5,m,h,g;for(let b=0;b<m1;b++){let x=o+(i<<4)+(s<<8);a=ic(l),u=ic(c),m=this.perlin[x&4095],m+=a*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=a*(this.perlin[x+16+1&4095]-h),m+=u*(h-m),x+=256,h=this.perlin[x&4095],h+=a*(this.perlin[x+1&4095]-h),g=this.perlin[x+16&4095],g+=a*(this.perlin[x+16+1&4095]-g),h+=u*(g-h),m+=ic(p)*(h-m),d+=m*f,f*=h1,o<<=1,l*=2,i<<=1,c*=2,s<<=1,p*=2,l>=1&&(o++,l--),c>=1&&(i++,c--),p>=1&&(s++,p--)}return d}noiseSeed(t){let e=(()=>{let s,l;return{setSeed(c){l=s=(c??Math.random()*4294967296)>>>0},getSeed(){return s},rand(){return l=(1664525*l+1013904223)%4294967296,l/4294967296}}})();e.setSeed(t),this.perlin=new Array(4095+1);for(let r=0;r<4095+1;r++)this.perlin[r]=e.rand()}},Ff=sc;var _t=1e-4,Ar,Uf,kf,Hf,zf=new Me.Vector3,jf=new Me.Vector3;En.then(n=>{Ar=n,Uf=[Ar.get_face_center,Ar.get_edge_midpoint,Ar.get_vertex_position],kf=[Ar.get_face_normal,Ar.get_edge_normal,Ar.get_vertex_normal],Hf=[Ar.face_count,Ar.edge_count,Ar.vertex_count]});var g1=new Me.Matrix4,y1=new Me.Matrix4,go=new Me.Vector3,Vo=new Me.Vector3,Ri=new Me.Vector3,ac=new Me.Vector3,x1=new Me.Vector3,b1=new Me.Vector3;var Yr=new Ff,Xr=class extends Me.Object3D{constructor(e,r={}){super();this.objectForSample=void 0;this.object=e;let o=e.recursiveBBox.getSize(new Me.Vector3),i=.1;this.parameters=Eo.defaultData(o.toArray(),i),An(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}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)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(e=>e.updateMatrix()):this.children.forEach(e=>e.updateMatrix())}_updateCount(e){let r;if(e!==void 0?r=e:r=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*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,s=this.children.length;i<s;++i)this.remove(this.children[0]);let o=[...this.objectForSample.children].filter(i=>i instanceof _r&&i.uuidOrigin===this.object.uuid);if(o.length===r)return;if(o.length<r)for(let i=0,s=r-o.length;i<s;++i){let l=new _r(this.object);l.visible=!0,this.objectForSample.add(l),this.parameters.hideBase&&this.setHideBase(!0)}else for(let i=0,s=o.length-r;i<s;++i)this.objectForSample.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 s=new _r(this.object);s.visible=!0,this.add(s),this.parameters.hideBase&&this.setHideBase(!0)}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*Me.MathUtils.DEG2RAD,i=r.end*Me.MathUtils.DEG2RAD,s=o-i,l=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),c;switch(r.axis){case"z":c=new Me.Vector3(0,0,1);break;case"y":c=new Me.Vector3(0,1,0);break;default:case"x":c=new Me.Vector3(1,0,0);break}let p=e.randomnessObject,a=p.noiseType==="perlin";Yr.noiseSeed(p.seed);let u=Ea((0,Dn.default)(p.seed)),d=Gi(p.strength,this.parameters.randomness);for(let[f,m]of this.children.entries()){let h=f*(p.freqScale/10)+p.movement,g=a?Yr.noise(h):u(h,h);m.scale.x=r.scale[0]+d(f,he(g,p.scale[0]))||_t,m.scale.y=r.scale[1]+d(f,he(g,p.scale[1]))||_t,m.scale.z=r.scale[2]+d(f,he(g,p.scale[2]))||_t,m.position.setScalar(0);let b=s/e.count*f-o;switch(r.axis){case"x":m.rotation.set(0,b,0);break;case"y":m.rotation.set(0,0,b);break;case"z":m.rotation.set(b,0,0);break}m.translateOnAxis(c,r.radius),m.position.x+=r.position[0]+d(f,he(g,p.position[0])),m.position.y+=r.position[1]+d(f,he(g,p.position[1])),m.position.z+=r.position[2]+d(f,he(g,p.position[2]));let x=d(f,he(g,p.rotation[0])),S=d(f,he(g,p.rotation[1])),w=d(f,he(g,p.rotation[2]));r.alignment===!0?(m.rotation.x+=l.x+x,m.rotation.y+=l.y+S,m.rotation.z+=l.z+w):m.rotation.set(l.x+x,l.y+S,l.z+w)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let l=Ea((0,Dn.default)(i.seed)),c=Gi(i.strength,this.parameters.randomness);for(let[p,a]of this.children.entries()){let u=p*(i.freqScale/10)+i.movement,d=s?Yr.noise(u):l(u,u),f=c(p,he(d,i.rotation[0])),m=c(p,he(d,i.rotation[1])),h=c(p,he(d,i.rotation[2]));a.scale.x=1+(r.scale[0]-1)*p+c(p,he(d,i.scale[0]))||_t,a.scale.y=1+(r.scale[1]-1)*p+c(p,he(d,i.scale[1]))||_t,a.scale.z=1+(r.scale[2]-1)*p+c(p,he(d,i.scale[2]))||_t,a.rotation.x=o.x*p+f,a.rotation.y=o.y*p+m,a.rotation.z=o.z*p+h,a.position.x=r.position[0]*p+c(p,he(d,i.position[0])),a.position.y=r.position[1]*p+c(p,he(d,i.position[1])),a.position.z=r.position[2]*p+c(p,he(d,i.position[2]))}}_updateGrid(e){let r=0,o=e.grid,i=e.randomnessObject,s=Gi(i.strength,this.parameters.randomness),l=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let c=Tf((0,Dn.default)(i.seed));if(o.useCenter===!0){let p={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},a=new Me.Vector3(o.size[0]*(o.count[0]-p.x)*.5,o.size[1]*(o.count[1]-p.y)*.5,o.size[2]*(o.count[2]-p.z)*.5);for(let u=0;u<o.count[0];u++)for(let d=0;d<o.count[1];d++)for(let f=0;f<o.count[2];f++){let m=[(u+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],h=l?Yr.noise(...m):c(...m),g=this.children[r++];g.scale.x=1+s(r,he(h,i.scale[0]))||_t,g.scale.y=1+s(r,he(h,i.scale[1]))||_t,g.scale.z=1+s(r,he(h,i.scale[2]))||_t;let b=s(r,he(h,i.rotation[0])),x=s(r,he(h,i.rotation[1])),S=s(r,he(h,i.rotation[2]));g.rotation.set(b,x,S),g.position.x=o.size[0]*u-a.x+s(r,he(h,i.position[0])),g.position.y=o.size[1]*d-a.y+s(r,he(h,i.position[1])),g.position.z=o.size[2]*f-a.z+s(r,he(h,i.position[2]))}}else for(let p=0;p<o.count[0];p++)for(let a=0;a<o.count[1];a++)for(let u=0;u<o.count[2];u++){let d=[(p+1)*(i.freqScale/10)+i.movement,(a+1)*(i.freqScale/10)+i.movement,(u+1)*(i.freqScale/10)+i.movement],f=l?Yr.noise(...d):c(...d),m=this.children[r++];m.scale.x=1+s(r,he(f,i.scale[0]))||_t,m.scale.y=1+s(r,he(f,i.scale[1]))||_t,m.scale.z=1+s(r,he(f,i.scale[2]))||_t;let h=s(r,he(f,i.rotation[0])),g=s(r,he(f,i.rotation[1])),b=s(r,he(f,i.rotation[2]));m.rotation.set(h,g,b),m.position.x=o.size[0]*p+s(r,he(f,i.position[0])),m.position.y=-o.size[1]*a+s(r,he(f,i.position[1])),m.position.z=-o.size[2]*u+s(r,he(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:r}=e,o=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let l=Ea((0,Dn.default)(i.seed)),c=Gi(i.strength,this.parameters.randomness);if(!r.object){for(let[,b]of this.children.entries())b.position.set(0,0,0),b.scale.setScalar(1),b.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let p=this.getSubdivData(),a=[],u=b=>{let x=b.length,S=b.map(N=>N[0]).reduce((N,_)=>N+_,0),w=b.map(N=>N[1]).reduce((N,_)=>N+_,0),v=b.map(N=>N[2]).reduce((N,_)=>N+_,0);return[S/x,w/x,v/x]},d=b=>Math.round(b*1e6)/1e6;p.forEach(b=>{let x=p.filter(S=>d(b.pos[0])===d(S.pos[0])&&d(b.pos[1])===d(S.pos[1])&&d(b.pos[2])===d(S.pos[2]));x.length>1?a.push({pos:b.pos,norm:u(x.map(S=>S.norm))}):a.push(b)});let f=Gf(a);if(p.length>0){let b=Math.round(f.length*r.count/100);this._updateCount(b)}this.objectForSample.updateMatrixWorld();let m=new Ba(this.objectForSample).build(),h=Bf[r.axis],g=this.objectForSample.children.filter(b=>b instanceof _r&&b.uuidOrigin===this.object.uuid);m.setRandomGenerator((0,Dn.default)(this.object.uuid+r.seed));for(let[b,x]of g.entries()){let S=b*(i.freqScale/10)+i.movement,w=s?Yr.noise(S):l(S,S),v=c(b,he(w,i.rotation[0])),N=c(b,he(w,i.rotation[1])),_=c(b,he(w,i.rotation[2]));r.spreadType==="random"?m.sample(Ri,ac):(f.length&&(Ri.fromArray(f[b].pos),ac.fromArray(f[b].norm)),this.objectForSample.objectType==="SubdivObject"&&Ri.applyMatrix4(g1.copy(this.objectForSample.matrixWorld).invert())),Ri.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(Ri),go.fromArray(h);let y=r.align==="normal"?ac:this.object.getWorldDirection(b1),I=Vo.fromArray(r.position);Vo.x+=Vo.x+c(b,he(w,i.position[0])),Vo.y+=Vo.y+c(b,he(w,i.position[1])),Vo.z+=Vo.z+c(b,he(w,i.position[2]));let A=Math.acos(y.dot(go)),P=x1.crossVectors(go,y).normalize(),T=y1.makeRotationAxis(P,A),C=y.clone().cross(this.object.up).normalize(),L=C.clone().cross(y).normalize(),j=new Me.Matrix4().makeBasis(C,y,L),Y=new Me.Vector3(go.y,go.z,go.x).normalize(),te=Y.clone().cross(go).normalize(),ie=new Me.Matrix4().makeBasis(Y,go,te).invert(),U=new Me.Matrix4().multiplyMatrices(j,ie);x.rotation.setFromRotationMatrix(U),I.applyMatrix4(T),x.position.add(I),x.rotation.x=x.rotation.x+o.x+v,x.rotation.y=x.rotation.y+o.y+N,x.rotation.z=x.rotation.z+o.z+_,x.scale.setScalar(1),x.scale.x=x.scale.x+r.scale[0]+c(b,he(w,i.scale[0]))||_t,x.scale.y=x.scale.y+r.scale[1]+c(b,he(w,i.scale[1]))||_t,x.scale.z=x.scale.z+r.scale[2]+c(b,he(w,i.scale[2]))||_t,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(e){this.objectForSample=e}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let r=this.objectForSample,o=Df[e],i=Hf[o],s=Uf[o],l=kf[o],c=[],p=i(r.subdivPointer);for(let a=0;a<=p-1;a++){let u=s(r.subdivPointer,a),d=l(r.subdivPointer,a);zf.fromArray(u).applyMatrix4(r.matrixWorld),jf.fromArray(d),c.push({pos:zf.toArray(),norm:jf.toArray()})}return c}else return(this.objectForSample.geometry.index?Rf(this.objectForSample.geometry):Vf(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()}removeSampleObjectClones(){if(this.objectForSample)for(var e=this.objectForSample.children.length-1;e>=0;e--){let r=this.objectForSample.children[e];r instanceof _r&&r.uuidOrigin===this.object.uuid&&this.objectForSample.remove(r)}}fromClonerState(e){if(!e)return this;e.hideBase!==void 0&&this.setHideBase(e.hideBase);let r=e.hasOwnProperty("type");return e.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!e.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(r?e.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),An(this.parameters,e),this.update(),this}};var Fr=require("three");var Ue=require("three");var Wf=require("three"),Nr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new Wf.BoxGeometry(30,30,30),t};var dt=require("three");var yt=require("three"),Ua=new yt.Ray,lc=new yt.Sphere,qf=new yt.Matrix4,Ir=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),lc.copy(i.boundingSphere),lc.applyMatrix4(s),e.ray.intersectsSphere(lc)===!1||(qf.copy(s).invert(),Ua.copy(e.ray).applyMatrix4(qf),i.boundingBox!==null&&Ua.intersectsBox(i.boundingBox)===!1))return;let l,c,p,a,u=i.index,d=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let b=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(m=b,h=x;m<h;m+=3)if(c=u.getX(m),p=u.getX(m+1),a=u.getX(m+2),l=g(n,e,Ua,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,S=new yt.Vector3,w=new yt.Vector3,v=new yt.Vector3,N=new yt.Vector3,_=2,I=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=I*I,P=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let C=P,L=T-1;C<L;C+=_){if(S.fromBufferAttribute(x,C),w.fromBufferAttribute(x,C+1),Ua.distanceSqToSegment(S,w,N,v)>A)continue;N.applyMatrix4(n.matrixWorld);let Y=e.ray.origin.distanceTo(N);Y<e.near||Y>e.far||r.push({distance:Y,point:v.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(b,x,S,w,v,N,_){let y=new yt.Vector3,I=new yt.Vector3,A=new yt.Vector3,P=new yt.Vector3,T=new yt.Vector3;if(y.fromBufferAttribute(w,v),I.fromBufferAttribute(w,N),A.fromBufferAttribute(w,_),S.intersectTriangle(y,I,A,!1,P)===null)return null;T.copy(P),T.applyMatrix4(b.matrixWorld);let L=x.ray.origin.distanceTo(T);return L<x.near||L>x.far?null:{faceIndex:1,distance:L,point:T.clone(),object:b}}};var ka=new dt.Vector3,Qt=new dt.Camera,cc=class extends dt.LineSegments{constructor(e){let r=new dt.BufferGeometry,o=new dt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new dt.Color(15711266),p=new dt.Color(15711266),a=new dt.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",a),u("u2","u3",a),u("u3","u1",a);function u(f,m,h){d(f,h),d(m,h)}function d(f,m){i.push(0,0,0),s.push(m.r,m.g,m.b),l[f]===void 0&&(l[f]=[]),l[f].push(i.length/3-1)}r.setAttribute("position",new dt.Float32BufferAttribute(i,3)),r.setAttribute("color",new dt.Float32BufferAttribute(s,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=l,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Qt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,l=o?.8:1e-4;nr("n1",r,e,Qt,-i,-s,l),nr("n2",r,e,Qt,i,-s,l),nr("n3",r,e,Qt,-i,s,l),nr("n4",r,e,Qt,i,s,l);let c=l;nr("f1",r,e,Qt,-i,-s,c),nr("f2",r,e,Qt,i,-s,c),nr("f3",r,e,Qt,-i,s,c),nr("f4",r,e,Qt,i,s,c);let p=c,a=.5;nr("u1",r,e,Qt,i*.7*a,s*1.1,p),nr("u2",r,e,Qt,-i*.7*a,s*1.1,p),nr("u3",r,e,Qt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function nr(n,t,e,r,o,i,s){ka.set(o,i,s).unproject(r);let l=t[n];if(l!==void 0){let c=e.getAttribute("position");for(let p=0,a=l.length;p<a;p++)c.setXYZ(l[p],ka.x,ka.y,ka.z)}}var Ha=class extends Nr(cc){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){Ir(this.object,this.geometry,e,r,!0)}};var $f=require("three");var Gn=class extends Nr($f.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Gn.geometryHelper,e,r)}};var Yf=require("three");var Rn=class extends Nr(Yf.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){Ir(this.object,Rn.geometryHelper,e,r)}update(){}};var Xf=require("three");var Vn=class extends Nr(Xf.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Vn.geometryHelper,e,r)}};var qa=require("three");var Wa=class extends Nr(qa.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Wa.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=Wa._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 s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},Vi=Wa;Vi._vector=new qa.Vector3;var ye=require("three"),Fi=1e-12,Fn=class{constructor(t){this.position=new ye.Vector2;this.startPosition=new ye.Vector2;this.uuid=ye.MathUtils.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 Fn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},zn=class extends Fn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new zn(this.parent).copy(this)}},ir=class extends Fn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new zn(this),new zn(this))}static create(e,r){let o=new ir(e,new ye.Vector2(...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 s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.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 ir(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 ye.Vector2,r=new ye.Vector2){let[o,i]=this.computeTangents();return o&&i&&(Kf(o,e),Kf(i,r)),[e,r]}computeTangent(e=new ye.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new ye.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Kf(n,t=new ye.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var pc=n=>n,jn=new ye.Vector2,$a=new ye.Vector2,S1=new ye.Vector2,w1=new ye.Vector2,_1=new ye.Vector2,T1=new ye.Vector2,Qf=new ye.Vector3,Jf=new ye.Vector3;function em(n){let t=new ye.Vector2;t.addVectors(n.v0,jn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new ye.Vector2;return e.addVectors(n.v2,$a.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new ye.CubicBezierCurve(n.v0,t,e,n.v2)}function zi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function A1(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function N1(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function dc(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 tm(n,t,e){return Zf(n,t)&&Zf(t,e)&&uc(n.position,t.position,e.position)}function uc(n,t,e){return jn.copy(t).sub(n).cross($a.copy(e).sub(n))===0}function rm(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function om(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function nm(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return dc(t,n,e)>Math.PI&&(a*=-1),zi(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function fc(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Zf(n,t){return uc(n.position,n.controls[1].position,t.position)&&uc(n.position,t.controls[0].position,t.position)}function im(n,t,e,r,o=.5){let i=jn.subVectors(t,n).multiplyScalar(o).add(n),s=$a.subVectors(e,t).multiplyScalar(o).add(t),l=S1.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=w1.subVectors(s,i).multiplyScalar(o).add(i),a=_1.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=T1.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function sm(n,t,e=12,r=!0){let o=Jf.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=pc(t[c]),a=jn,u=yo(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof ye.CubicBezierCurve||p instanceof ye.QuadraticBezierCurve||p instanceof ye.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&N1(i,o))continue;i===void 0&&(i=Qf),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function am(n,t,e,r=12,o=!0){let i=Jf.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=pc(t[c]),u=jn,d=yo(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof ye.CubicBezierCurve||a instanceof ye.QuadraticBezierCurve||a instanceof ye.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Qf:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function mc(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=yo(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=yo(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=yo(n[0].roundedCurveCorner,t)*.5),r}function yo(n,t=12){return n&&n instanceof ye.EllipseCurve?t*2:n&&(n instanceof ye.LineCurve||n instanceof ye.LineCurve3)?1:n&&n instanceof ye.SplineCurve?t*n.points.length:t}function lm(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=pc(t[s]),c=yo(l,e),p=jn;for(let a=0;a<=c;a++)if(l instanceof ye.CubicBezierCurve||l instanceof ye.QuadraticBezierCurve||l instanceof ye.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&A1(o,p,Fi))continue;o===void 0&&(o=$a),o.copy(p),n.push(p.x,p.y),i++}}return zi(n[0],n[n.length-2],Fi)&&zi(n[1],n[n.length-1],Fi)&&(n.pop(),n.pop()),r&&i>1&&!(zi(n[i-1],n[1],Fi)&&zi(n[i-2],n[0],Fi))&&(n.push(n[0],n[1]),i++),n}var Ao=require("three");var we=require("three");var hc=new we.Vector2,I1=new we.Vector2,P1=new we.Vector2,O1=new we.Vector2,C1=new we.Vector2,M1=new we.Vector2,Te=class extends we.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new we.EventDispatcher;this.plane=new we.Plane(new we.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=we.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new Te;return i.isClosed=e.isClosed,i.points=e.points.map(s=>ir.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>Te.createFromState(s)),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 s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+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 s=this.shapeHoles[o],l=e-r;if(l<=s.points.length-1)return s.points[l];r+=s.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 s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.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=hc.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=we.MathUtils.generateUUID()){let i;e instanceof we.Vector2?i=e:i=new we.Vector2(e,r);let s=new ir(o,i);return s.roundness=this.roundness,s}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 s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}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(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return sm(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=mc(this.points,e,!1),this.roundedCurveDivisions=mc(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return am(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),lm(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,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=yo(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(fc(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(hc.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){fc(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(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&tm(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),b=f.getLength(),x=Math.min(a,g*.499),S=Math.min(a,b*.499),w=Math.min(x,S),v=1-w/g,N=w/b,_=d.getPointAt(v,hc),y=f.getPointAt(N,I1);this._subSplitCurve(d,m,v,_,void 0),this._subSplitCurve(f,h,N,void 0,y);let I;if(this.useCubicForRoundedCorners){let A=dc(_,l.position,y)/2,P=Math.tan(A)*_.distanceTo(l.position),[T,C]=rm(_,y,P,P1,O1),L=om(T,C,l.position),[j,Y]=nm(L,_,y,P,C1,M1);I=new we.CubicBezierCurve(_.clone(),j.clone(),Y.clone(),y.clone())}else I=new we.QuadraticBezierCurve(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof we.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=im(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new Te(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,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new ir(we.MathUtils.generateUUID(),new we.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Te;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof we.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof we.QuadraticBezierCurve&&(i[l]=em(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof we.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof we.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof we.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof we.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof we.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new Te;return s.fromShape(i),s})),this.update(),this}};var zo=require("three");var Be;(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"})(Be||(Be={}));var et;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(et||(et={}));function ue(n,t){if(!n)throw t||"Assertion Failed!"}var le=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){ue(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){ue(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){ue(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){ue(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 s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),ji=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}(),Ya=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}(),Un=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}(),cm=function(){function n(){var t=new Un,e=new ji,r=new Ya(0),o=new Ya(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 Ya(0),r=new Ya(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;ue(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 s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;ue(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 s=e;do s.Lface=o,s=s.Lnext;while(s!==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,s=t.next;s.prev=i,i.next=s},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,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new Un,e=new Un,r=new ji,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 Un;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new ji;this.makeFace_(s,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 ji;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 Un;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 s=new ji;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;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);s=t.prev,l=t.next,l.prev=s,s.next=l},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,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&le.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&le.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,p;for(i=t,i=t;(o=i.next)!==t;i=o){ue(o.prev===i),c=o.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ue(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ue(s.prev===l),c=s.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ue(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ue(c.Sym.next===p.Sym),ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Org!==null),ue(c.Dst!==null),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c);ue(c.Sym.next===p.Sym&&c.Sym===this.eHeadSym&&c.Sym.Sym===c&&c.Org===null&&c.Dst===null&&c.Lface===null&&c.Rface===null)},n}(),um=function(){function n(){this.handle=null}return n}(),pm=function(){function n(){this.key=null,this.node=0}return n}(),L1=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 um,this.handles[r]=new pm;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,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,ue(s<=this.max),i=e[s].handle,s>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=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===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=s}},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 um;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new pm}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;ue(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}(),gc=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}(),dm=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),E1=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new dm,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 dm;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}(),B1=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,s=r.eUp;if(i.Dst===o)return s.Dst===o?le.vertLeq(i.Org,s.Org)?le.edgeSign(s.Dst,i.Org,s.Org)<=0:le.edgeSign(i.Dst,s.Org,i.Org)>=0:le.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return le.edgeSign(i.Dst,o,i.Org)>=0;var l=le.edgeEval(i.Dst,o,i.Org),c=le.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ue(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ue(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 gc;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 Be.ODD:return(e&1)!==0;case Be.NONZERO:return e!==0;case Be.POSITIVE:return e>0;case Be.NEGATIVE:return e<0;case Be.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,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do ue(le.vertLeq(p.Org,p.Dst)),n.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),p=l.eUp.Sym,p.Org===a.Org;)p.Onext!==a&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(a.Oprev,p)),l.windingNumber=c.windingNumber-p.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!u&&n.checkForRightSplice(t,c)&&(n.addWinding(p,a),n.deleteRegion(t,c),t.mesh.delete(a)),u=!1,c=l,a=p;c.dirty=!0,ue(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=le.vertL1dist(e,t),i=le.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(le.vertLeq(o.Org,i.Org)){if(le.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;le.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(le.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,s;if(ue(!le.vertEq(o.Dst,i.Dst)),le.vertLeq(o.Dst,i.Dst)){if(le.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(le.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,p=i.Dst,a,u,d=new Un,f,m;if(ue(!le.vertEq(p,c)),ue(le.edgeSign(c,t.event,s)<=0),ue(le.edgeSign(p,t.event,l)>=0),ue(s!==t.event&&l!==t.event),ue(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(le.vertLeq(s,l)){if(le.edgeSign(p,s,l)>0)return!1}else if(le.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),le.intersect(c,s,p,l,d),ue(Math.min(s.t,c.t)<=d.t),ue(d.t<=Math.max(l.t,p.t)),ue(Math.min(p.s,c.s)<=d.s),ue(d.s<=Math.max(l.s,s.s)),le.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=le.vertLeq(s,l)?s:l,le.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),le.vertEq(d,s)||le.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!le.vertEq(c,t.event)&&le.edgeSign(c,t.event,d)>=0||!le.vertEq(p,t.event)&&le.edgeSign(p,t.event,d)<=0?p===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):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(le.edgeSign(c,t.event,d)>=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),le.edgeSign(p,t.event,d)<=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=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,p),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,s=n.regionBelow(e),l=e.eUp,c=s.eUp,p=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),le.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),p=!0),le.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),p=!0),p){n.addRightEdges(t,e,r.Onext,i,i,!0);return}le.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,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,s,l,c;if(o=e.eUp,le.vertEq(o.Org,r)){ue(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!le.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}ue(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ue(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),le.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,p=new gc;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,le.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=le.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),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);ue(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new gc,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,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 E1(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,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(ue(e.fixUpperEdge),ue(++r===1)),ue(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,le.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 L1(i,le.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,ue(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||!le.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}(),D1=function(){function n(){this.mesh=new cm,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=Be.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,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var b=0;b<3;++b)i=e.coords[b],i<p[b]&&(p[b]=i,m[b]=e),i>c[b]&&(c[b]=i,f[b]=e);var x=0;if(c[1]-p[1]>c[0]-p[0]&&(x=1),c[2]-p[2]>c[x]-p[x]&&(x=2),p[x]>=c[x]){t[0]=0,t[1]=0,t[2]=1;return}for(l=0,r=m[x],o=f[x],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;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],d[0]=a[1]*u[2]-a[2]*u[1],d[1]=a[2]*u[0]-a[0]*u[2],d[2]=a[0]*u[1]-a[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.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 s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,p=t.next;p!==t;p=p.next)c?(this.bmin[0]=this.bmax[0]=p.s,this.bmin[1]=this.bmax[1]=p.t,c=!1):(p.s<this.bmin[0]&&(this.bmin[0]=p.s),p.s>this.bmax[0]&&(this.bmax[0]=p.s),p.t<this.bmin[1]&&(this.bmin[1]=p.t),p.t>this.bmax[1]&&(this.bmax[1]=p.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(;le.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;le.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(le.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(le.edgeGoesLeft(o.Lnext)||le.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&&(le.edgeGoesRight(r.Lprev)||le.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,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;p.n===-1&&(p.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===et.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===et.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.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 c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new cm),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,s){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=et.POLYGONS),s===void 0&&(s=!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_(),B1.computeInterior(this,s);var l=this.mesh;return e===et.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===et.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function Fo(n){var t=n.windingRule,e=t===void 0?Be.ODD:t,r=n.elementType,o=r===void 0?et.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var b=new D1;n.edgeCreateCallback&&(b.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(b.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)b.addContour(c||2,d[x]);return b.tesselate(e,o,s,c,a,m),{vertices:b.vertices,vertexIndices:b.vertexIndices,vertexCount:b.vertexCount,elements:b.elements,elementCount:b.elementCount,mesh:g?b.mesh:void 0}}}var IB=Be.ODD,PB=Be.NONZERO,OB=Be.POSITIVE,CB=Be.NEGATIVE,MB=Be.ABS_GEQ_TWO,LB=et.POLYGONS,EB=et.CONNECTED_POLYGONS,BB=et.BOUNDARY_CONTOURS;var kn=class extends zo.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=et.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:et.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,b=i[g+0],x=i[g+1];if(a!==void 0&&b!==a&&(c=!1),u!==void 0&&x!==u&&(p=!1),a=b,u=x,!c&&!p)break}!c&&!p&&(l=Fo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new zo.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new zo.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new zo.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new zo.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,b=-1/0;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>b&&(b=y)}let x=h-m,S=b-g;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1],I=(_-m)/x,A=(y-g)/S;this._positionAttribute.setXYZ(w,_,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,I,A)}for(let w=0,v=f;w<v;w++){let N=w*3,_=l.elements[N+0],y=l.elements[N+1],I=l.elements[N+2];this._indexAttribute.setX(N+0,_),this._indexAttribute.setX(N+1,y),this._indexAttribute.setX(N+2,I)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(l?.elementCount??1)*3)}clone(){let e=new kn(this._shape,this._curveSegments);return e.userData=Ii(this.userData),e}};var jo=require("three");var Xa=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*Xa.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*Xa.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,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)}},Ui=Xa;Ui.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var yc=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Hn=class extends jo.BufferGeometry{constructor(e,r,o=0,i=12,s=3,l=Be.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),p=this._shape.shapeHoles.map(y=>{let I=y.extractShapePointsToFlatArray([],i),A=[];for(let P=I.length-1;P>=1;P-=2){let T=I[P-1],C=I[P-0];A.push(T,C)}return A}),a=Fo({windingRule:l,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=Fo({windingRule:Be.ODD,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...p]});if(!a)throw new Error("error generating geometry");let d=a.elementCount;if(u){a.elementCount+=u.elementCount;for(let y=0;y<u.elements.length;y++){let I=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(I+A)}for(let y=0;y<u.vertexIndices.length;y++){let I=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(I+A)}for(let y=0;y<u.vertices.length;y++){let I=u.vertices[y];a.vertices.push(I)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,I=a.vertexCount;y<I;y++){let A=y*2,P=a.vertices[A+0],T=a.vertices[A+1];P<f&&(f=P),P>m&&(m=P),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let b=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ui(b);let x=[],S=[];for(let y=a.elementCount-1;y>=0;y--){let I=y>=d,A=y*2,P=a.elements[A+0],T=a.elements[A+1],C=P+T,L={start:P,count:T,normals:[],continuous:[],concave:[]},j=P,Y=C-1,te=P+1,ie=this._shape.roundedCurves.length;do{let F=j-P,E=a.vertices[Y*2+0],D=a.vertices[Y*2+1],B=a.vertices[j*2+0],k=a.vertices[j*2+1],$=a.vertices[te*2+0],H=a.vertices[te*2+1],V=B-E,G=k-D,z=Math.sqrt(V*V+G*G);V/=z,G/=z;let J=B-$,oe=k-H,ae=Math.sqrt(J*J+oe*oe);J/=ae,oe/=ae,L.normals[F*2+0]=-oe,L.normals[F*2+1]=J,L.concave[F]=V*oe-G*J>0;let re=a.vertexIndices[j];if(Array.isArray(re))L.continuous[F]=!1;else{let[ee,Q]=this._shape.getCurveIndexFromVertexId(re-1,!0);if(Q>0&&Q<1)L.continuous[F]=!0;else{let K=Q===1?ee+1:ee-1;K=(K+ie)%ie;let me=Q===1?0:1,de=this._shape.roundedCurves[ee].getTangent(Q),be=this._shape.roundedCurves[K].getTangent(me);L.continuous[F]=de.dot(be)>.95}}I&&(L.normals[F*2+0]*=-1,L.normals[F*2+1]*=-1),[Y,j,te]=[j,te,te+1],te>=C&&(te-=T)}while(te!==P+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(P*2,C*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(P*2,C*2)});for(let F=1;F<=this._bevelSegments;F++){let E=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(E))*this._bevelSize,B=[],k=[],$=[],H=[],V=0;for(let z=0;z<T;z++){let J=z*2,oe=(z-1+T)%T*2,ae=a.vertices[L.start*2+J+0],re=a.vertices[L.start*2+J+1],ee=-L.normals[oe+0]*D,Q=-L.normals[oe+1]*D,K=-L.normals[J+0]*D,me=-L.normals[J+1]*D;if(L.concave[z]||!L.concave[z]&&I){let de=Math.atan2(Q,ee),be=Math.atan2(me,K);be>de&&(be-=Math.PI*2);let st=be-de;if(L.continuous[z]||I){let Ie=de+st/2,Oe=Math.cos(Ie)*D,Ee=Math.sin(Ie)*D;B[2*V+0]=ae+Oe*(I?-1:1),B[2*V+1]=re+Ee*(I?-1:1),H[V]=z,V++}else{let Ie=Math.max(1,Math.floor(i/4*Math.abs(st)/Math.PI));for(let Oe=0;Oe<=Ie;Oe++){let Ee=de+st*(Oe/Ie),Ht=Math.cos(Ee)*D,to=Math.sin(Ee)*D;B[2*V+0]=ae+Ht,B[2*V+1]=re+to,H[V]=z,V++}}}else B[2*V+0]=ae+ee,B[2*V+1]=re+Q,H[V]=z,k[z]=V,V++,B[2*V+0]=ae,B[2*V+1]=re,H[V]=z,V++,B[2*V+0]=ae+K,B[2*V+1]=re+me,H[V]=z,$[z]=V,V++}let G=Fo({windingRule:Be.POSITIVE,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:z=>{let oe=z.Org.idx,ae=H[oe],re=H[(oe+1)%H.length];z.idx=[ae,re],z.Sym.idx=[re,ae]},vertexIdCallback:z=>{let J=z.Lprev.idx;return[J?J[1]:0,z.idx[0]]}});if(!G)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!G.vertexCount)break;for(let z=0;z<G.vertexIndices.length;z++){let[J,oe]=G.vertexIndices[z];if(J===oe)continue;let ae=oe;oe<J&&(ae+=T);for(let re=J;re<ae;re++){let ee=re%T,Q=(re+1)%T;if(!L.continuous[ee]||!L.continuous[Q]){G.vertexIndices[z]=[J,ee],G.vertexIndices.splice(z+1,0,[Q,oe]),G.vertices.splice((z+1)*2,0,G.vertices[z*2],G.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:E,size:D,boundary:G,reverseMap:H,insetPoints:B})}let W=(F,E,D)=>{let B=0,k=F.boundary.vertexIndices.length;for(;B<k&&D(F.boundary.vertexIndices[E]);)E=(E+1)%k,B++;return B},q=x.length;for(let F=1;F<U.length;F++){let E=U[F-1],D=U[F],B=E.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!B||!k)break;let $=L.concave.length,H=0,V=yc(H,T);for(;!E.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=yc(H,T);let G=E.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do G=(G+1)%B;while(V(E.boundary.vertexIndices[G]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let J=H,oe=this.buildBevelVert(L,E,(G-1+B)%B),ae=this.buildBevelVert(L,D,(z-1+k)%k),re=oe,ee=ae,Q,K,me=!1;do{V=yc(H,T);let de=W(E,G,V),be=W(D,z,V),st=me;if(me=!1,de&&!be){for(let Ie=0;Ie<de;Ie++)Q=this.buildBevelVert(L,E,(G+Ie)%B,Ie/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q;me=!0}else if(!de&&be)for(let Ie=0;Ie<be;Ie++)K=this.buildBevelVert(L,D,(z+Ie)%k,Ie/(be-1)),x.push(ee.topN,re.topP,K.topP),x.push(re.bottomP,ee.bottomN,K.bottomP),ee=K;else if(de&&be)if(Q=this.buildBevelVert(L,E,G,0),K=this.buildBevelVert(L,D,z,0),st?(x.push(re.topN,K.topP,ee.topN),x.push(re.topN,Q.topP,K.topP),x.push(K.bottomP,re.bottomN,ee.bottomN),x.push(K.bottomP,Q.bottomP,re.bottomN)):(x.push(ee.topN,re.topN,Q.topP),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP)),re=Q,ee=K,de===be)for(let Ie=1;Ie<de;Ie++)Q=this.buildBevelVert(L,E,(G+Ie)%B,Ie/(de-1)),K=this.buildBevelVert(L,D,(z+Ie)%k,Ie/(be-1)),x.push(re.topN,Q.topP,ee.topN),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP),re=Q,ee=K;else if(de>be){let Ie=de/be,Oe=0;for(let Ee=1;Ee<de;Ee++)Q=this.buildBevelVert(L,E,(G+Ee)%B,Ee/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q,Ee>(Oe+1)*Ie&&(Oe++,K=this.buildBevelVert(L,D,(z+Oe)%k,Oe/(be-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K)}else{let Ie=be/de,Oe=0;for(let Ee=1;Ee<be;Ee++)K=this.buildBevelVert(L,D,(z+Ee)%k,Ee/(be-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K,Ee>(Oe+1)*Ie&&(Oe++,Q=this.buildBevelVert(L,E,(G+Oe)%B,Oe/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q)}G=(G+de)%B,z=(z+be)%k,H=(H+1)%$}while(H!==J)}{let F=U[0];for(let E=0,D=F.boundary.vertexCount;E<D;E++){let B=this.buildBevelVert(L,F,E),k=this.buildBevelVert(L,F,(E+1)%D);x.push(k.topP,B.topN,B.bottomN),x.push(k.topP,B.bottomN,k.bottomP)}}if(I){let F=[];for(let E=x.length-1;E>=q+2;E-=3){let D=x[E-2],B=x[E-1],k=x[E-0];F.push(k,B,D)}x.splice(q,x.length-q,...F)}if(I){let F=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let D=U[U.length-1].boundary.vertices[E-1],B=U[U.length-1].boundary.vertices[E-0];F.push(D,B)}S.push(F)}if(!I){let F=U[U.length-1],E=Fo({windingRule:U.length>1?Be.POSITIVE:Be.ODD,elementType:et.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...S]});if(!E)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<E.elementCount*3;D+=3){let B=this.buildSurfaceVert(E,E.elements[D+0]),k=this.buildSurfaceVert(E,E.elements[D+1]),$=this.buildSurfaceVert(E,E.elements[D+2]);x.push(B.top,k.top,$.top),x.push($.bottom,k.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new jo.BufferAttribute(Uint32Array.from(x),1),v=new jo.BufferAttribute(this._buffer.positions,3),N=new jo.BufferAttribute(this._buffer.normals,3),_=new jo.BufferAttribute(this._buffer.uvs,2);v.needsUpdate=!0,N.needsUpdate=!0,_.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",N),this.setAttribute("uv",_),this.setIndex(w)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,b=a*2,x=r.boundary.vertices[h+0],S=r.boundary.vertices[h+1],w=(1-m)*this._bevelSize,v=(x-this._minX)/this._width,N=(S-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],I=e.normals[b+0],A=e.normals[b+1];if(d){let j=I-_,Y=A-y;_=_+j*(1-i),y=y+Y*(1-i);let te=Math.sqrt(_*_+y*y);_/=te,y/=te}let P=this._buffer.get(u?2:4),T=P*3,C=P*2,L={i:o,fi:p,topP:P+0,topN:P+0,bottomP:P+1,bottomN:P+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v,u||(P+=2,T+=6,C+=4,L.topP=P+0,L.bottomP=P+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=I*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=I*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v),this.vertexCache[s]=L,L}clone(){let e=new Hn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Ii(this.userData),e}};var ft=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:Be.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof Te?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new Te(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new Te(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return t<=0?l=new kn(n.shape,o,{windingRule:s}):l=new Hn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var fl=require("three");var hm=require("three");var je=require("three"),mm=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:0,cornerSegments:8,hollow:0},n.parameters),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:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new ki(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new je.CylinderGeometry(p,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function xo(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function fm(n){return new je.Vector2(n.y,-n.x)}var ki=class extends je.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,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,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],b=[],x=0,S=r/2,w=new je.Vector3,v=new je.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let N=new je.Vector2(t,S),_=new je.Vector2(e,-S),y=null,I=null,A=null,P=null,T=N.clone().sub(_),C=0,L=0,j=0;d>0&&(C=Math.min(t,e)*(1-d),L=t-C,j=e-C);let Y=N.clone();Y.x-=C;let te=Math.PI-T.angle(),ie=T.angle(),U=Math.tan(ie/2),W=Math.tan(te/2),q=U+W,F=d?q:W,E=d?q:U;if(p=Math.min(p,(t-L)/F,T.length()/q),a=Math.min(a,(e-j)/E,T.length()/q),p>0){let V=p/U;y=N.clone().sub(new je.Vector2(V,p)),d&&(A=y.clone(),A.x-=C-q*p),N.sub(T.clone().setLength(V))}if(a>0){let V=a/W;I=_.clone().sub(new je.Vector2(V,-a)),_.add(T.clone().setLength(V)),d&&(P=I.clone(),P.x-=C-q*a,Y.sub(T.clone().setLength(V)))}T=N.clone().sub(_);let D=T.length()<.5,B=[];for(let V=0;V<=o;V++){let G=[],z=V/o,J=z*c+l,oe=new je.Vector2(Math.sin(J),Math.cos(J));P&&I?(k(G,z,oe,te,a,P,-1,!0),k(G,z,oe,ie,a,I,-1,!1)):I?($(G,oe,I.x,0,-1),k(G,z,oe,ie,a,I,-1,!1)):s||$(G,oe,e,j,-1);let ae=fm(T).normalize();if(xo(ae,oe,w),!D)for(let re=0;re<=i;re++){let ee=re/i,Q=T.clone().multiplyScalar(ee).add(_);xo(Q,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}if(A&&y?(k(G,z,oe,te,p,y,1,!1),k(G,z,oe,ie,p,A,1,!0)):y?(k(G,z,oe,te,p,y,1,!1),$(G,oe,y.x,0,1)):s||$(G,oe,t,L,1),d&&!D){let re=fm(T).multiplyScalar(-1).normalize();xo(re,oe,w);for(let ee=0;ee<=i;ee++){let Q=ee/i,K=T.clone().multiplyScalar(-Q).add(Y);xo(K,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}}d&&!s&&G.push(G[0]),B.push(G)}for(let V=0;V<B.length-1;V++)for(let G=0;G<B[0].length-1;G++){if(s&&d&&G==i)continue;let z=B[V][G],J=B[V+1][G],oe=B[V+1][G+1],ae=B[V][G+1],re=h[oe*3+0],ee=h[oe*3+2];m.push(z,J,ae),(re!=0||ee!=0)&&m.push(J,oe,ae)}c<Math.PI*2&&(H(-1,B[0],l),H(1,B[B.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new je.Float32BufferAttribute(h,3)),this.setAttribute("normal",new je.Float32BufferAttribute(g,3)),this.setAttribute("uv",new je.Float32BufferAttribute(b,2));function k(V,G,z,J,oe,ae,re,ee){for(let Q=0;Q<u+1;Q++){let K=Q/u,me=re<0?K:1-K;ee&&(me-=1),me*=J;let de=new je.Vector2(Math.sin(me),Math.cos(me)*re),be=de.clone().multiplyScalar(oe).add(ae);xo(be,z,v),h.push(v.x,v.y,v.z),xo(de,z,w),g.push(w.x,w.y,w.z),b.push(G,.5+v.y/r),V.push(x++)}}function $(V,G,z,J,oe){let ae=new je.Vector3,re=new je.Vector2,ee=[z,J];oe<0&&ee.reverse();for(let Q of ee)re.set(Q,S*oe),xo(re,G,ae),h.push(ae.x,ae.y,ae.z),g.push(0,oe,0),b.push(.5,.5),V.push(x++)}function H(V,G,z){let J=new je.Vector2(Math.sin(z),Math.cos(z)),oe=new je.Vector2(-Math.cos(z),Math.sin(z)),ae=new je.Vector3,re=V<0?(K,me,de)=>m.push(K,me,de):(K,me,de)=>m.push(K,de,me),ee=new je.Vector2((t+e+L+j)/4,0);xo(ee,J,ae),h.push(ae.x,ae.y,ae.z),g.push(oe.x,0,oe.y),b.push(.5,.5);let Q=x++;for(let K of G){let me=h.slice(K*3,K*3+3);h.push(...me),g.push(oe.x,0,oe.y);let de=b.slice(K*2,K*2+2);b.push(...de),x++}for(let K=Q+1;K<x-1;K++)re(Q,K,K+1);re(Q,x-1,Q+1)}}};var gm=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:0,cornerRadiusBottom:0,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,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new ki(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new hm.ConeGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Mt=require("three"),ym=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:0,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:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Mt.BoxGeometry(t,e,r,o,i,s):p=new bc(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},xc=Math.PI/2,bc=class extends Mt.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxGeometry";let p=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],u=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(b("z","y","x",-1,-1,1,r,e,t,s,0),b("z","y","x",1,-1,-1,r,e,t,s,1),b("z","y","x",-1,1,-1,r,e,t,s,1),b("z","y","x",1,1,1,r,e,t,s,0),b("x","y","z",-1,-1,-1,t,e,r,o,0),b("x","y","z",1,-1,1,t,e,r,o,1),b("x","y","z",-1,1,1,t,e,r,o,0),b("x","y","z",1,1,-1,t,e,r,o,1),b("y","x","z",-1,-1,1,e,t,r,i,0),b("y","x","z",1,-1,-1,e,t,r,i,1),b("y","x","z",1,1,1,e,t,r,i,1),b("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(a),this.setAttribute("position",new Mt.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Mt.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Mt.Float32BufferAttribute(f,2));function g(S,w,v,N,_,y,I,A,P,T,C){let L=(y-2*l)/P,j=(I-2*l)/T,Y=y/2-l,te=I/2-l,ie=A/2,U=P+1,W=T+1,q=0,F=0,E=new Mt.Vector3;for(let D=0;D<W;D++){let B=D*j-te;for(let k=0;k<U;k++){let $=k*L-Y;E[S]=$*N,E[w]=B*_,E[v]=ie,u.push(E.x,E.y,E.z),E[S]=0,E[w]=0,E[v]=A>0?1:-1,d.push(E.x,E.y,E.z),f.push(k/P),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let B=0;B<P;B++){let k=m+B+U*D,$=m+B+U*(D+1),H=m+(B+1)+U*(D+1),V=m+(B+1)+U*D;a.push(k,$,V),a.push($,H,V),F+=6}p.addGroup(h,F,C),h+=F,m+=q}function b(S,w,v,N,_,y,I,A,P,T,C){let L=(I-2*l)/T,j=I/2-l,Y=A/2-l,te=P/2,ie=T+1,U=0,W=0,q=new Mt.Vector3,F=new Mt.Vector3;for(let E=0;E<c+1;E++){let D=E/c*xc,B=Math.sin(D)*l,k=(1-Math.cos(D))*l,$=Math.sin(D),H=Math.cos(D);q[w]=(Y+B)*_,q[v]=(te-k)*y,F[S]=0,F[w]=$*Math.sign(q[w]),F[v]=H*Math.sign(q[v]);for(let V=0;V<ie;V++){let G=V*L-j;q[S]=G*N,u.push(q.x,q.y,q.z),d.push(F.x,F.y,F.z),f.push(V/T),f.push(0),U+=1}}for(let E=0;E<c;E++)for(let D=0;D<T;D++){let B=m+D+ie*E,k=m+D+ie*(E+1),$=m+(D+1)+ie*(E+1),H=m+(D+1)+ie*E;a.push(B,k,H),a.push(k,$,H),W+=6}p.addGroup(h,W,C),h+=W,m+=U}function x(S,w,v){let N=new Mt.Vector3,_=new Mt.Vector3(t/2,e/2,r/2);_.subScalar(l);let y=[],I=S*w*v>0?(P,T,C)=>a.push(P,T,C):(P,T,C)=>a.push(P,C,T);for(let P=0;P<=c;P++){let T=[],C=xc*(1-P/c),L=Math.cos(C),j=Math.sin(C),Y=0;for(let te=0;te<=P;te++){let ie=Math.cos(Y),U=Math.sin(Y);N.x=L*ie,N.y=j,N.z=L*U;let W=_.clone().addScaledVector(N,l);u.push(S*W.x,w*W.y,v*W.z),d.push(S*N.x,w*N.y,v*N.z),f.push(0,0),T.push(m++),Y+=xc/P}y.push(T)}let A=y.length-1;for(let P=0;P<A;P++){let T=y[P],C=y[P+1],L=T.length-1;I(T[0],C[1],C[0]);for(let j=1;j<=L;j++)I(T[j-1],T[j],C[j]),I(T[j],C[j+1],C[j])}}}};var qe=require("three"),bo=class extends qe.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new qe.Float32BufferAttribute(l,3)),this.setAttribute("normal",new qe.Float32BufferAttribute(p,3)),this.setAttribute("uv",new qe.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new qe.Vector3,h=m.clone(),g=new qe.Triangle,b=i*o,x=o-b,S=s+1,w=new qe.Vector3,v=(U,W)=>w.subVectors(U,W).normalize(),N=(U,W)=>Array(U).fill(void 0).map(W),_=N(t.length/3,(U,W)=>new qe.Vector3().fromArray(t,W*3).setLength(o)),y=[],I=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,E,D,B=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let G=k-k%3;F=e[G+(k+1)%3],E=e[G+(k+2)%3],D=W.distanceToSquared(_[F]),B=Math.min(B,D),q.push([F,E,D])}B+=1e-6;let $=[],H=0,V=q.length;for(let G=0;G<V;G++){[F,E,D]=q[H];let z=y[F]?.includes(U)==!0;D<=B&&$.push(F+ +z*I),H=q.findIndex(J=>J[0]==E)}y.push($)}let A=[];{let U=0,W=0,q,F,E=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let B=0;B<s-D;B++)[U,W]=[q+B+D+2,F+B+D+3],A.push(q,F,...E?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let P=m.clone(),T=m.clone(),C=m.clone(),L=m.clone(),j=m.clone(),Y=[],te=N(_.length,()=>N(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),P.copy(m).multiplyScalar(x);let W=y[U];for(let $=0;$<W.length;$++){let H=W[$],V=W[($+1)%f];g.setFromPointsAndIndices(_,U,H%I,V%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(P,te[U][$])}let q=[],F=[],E=[],D=new qe.Vector3;s==0&&[...te[U]].reduce(($,H)=>$.add(H),D).multiplyScalar(1/f);for(let $=0;$<f;$++){let H=[],V=($-1+f)%f,G=te[U][V],z=te[U][$];m.copy(G).sub(P),h.copy(z).sub(P);let J=P.angleTo(m),oe=m.angleTo(h),ae=Math.cos(J)*b;s==0?T.copy(D):T.copy(P).setLength(x+ae),F.push(ae);let re=[T,G,z];for(let ee=0;ee<2;ee++){let Q=re[ee],K=re[ee+1];L.subVectors(Q,P),j.subVectors(K,P),C.crossVectors(L,j).normalize();for(let me=0;me<S;me++){let de=[J,oe][ee]*me/S;m.copy(L).applyAxisAngle(C,de).add(P),q.push(m.clone()),ee&&(v(m,P),H.push([me==0?Q:m.clone(),w.clone()]))}ee&&(v(K,P),H.push([K,w.clone()]))}E.push(H)}Y.push(E);let B=2*S,k=2;for(let $=0;$<f;$++){let H=B*$,V=B*(($+1)%f),G=[q[H]];for(let J=1;J<S;J++){L=q[H+J],j=q[V+J],G.push(L);for(let oe=1,ae=J-k+1;oe<=ae;oe++)m.lerpVectors(L,j,oe/(ae+1)),m.sub(P).setLength(F[$]).add(P),G.push(m.clone());G.push(j)}for(let J=0;J<S;J++)G.push(q[J+S+H]);G.push(q[V+S]);let z=A.map(J=>G[J]);l.push(...z.map(J=>[J.x,J.y,J.z]).flat()),p.push(...z.map(J=>(v(J,P),[w.x,w.y,w.z])).flat())}}let ie=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<I){let F=y[q].findIndex(B=>B%I==U),E=Y[U][W],D=Y[q][F];for(let B=0;B<S;B++){let k=E[B],$=D[S-B],H=E[B+1],V=D[S-(B+1)];[k,$,H,H,$,V].forEach(G=>{l.push(G[0].x,G[0].y,G[0].z),p.push(G[1].x,G[1].y,G[1].z)})}ie.push(E[0][0],D[S][0],E[S][0],D[0][0])}}for(;ie.length;){let U,W,q,F;[U,W]=ie.splice(0,2);let E=[U];for(;U!=W;)E.push(W),q=ie.indexOf(W),F=q%2,W=ie.splice(q-F,2)[1-F];w.subVectors(E[0],E[1]).cross(m.subVectors(E[0],E[2])).normalize();let D=w.dot(E[0])<0;D&&w.negate();for(let B=1;B<=E.length-2;B++)[E[B+ +D],E[B+1-+D],E[0]].forEach(k=>{l.push(k.x,k.y,k.z),p.push(w.x,w.y,w.z)})}}function u(){let d=new qe.Vector3;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=v(d)/2/Math.PI+.5,I=N(d)/Math.PI+.5;c.push(y,1-I)}let f=new qe.Vector3,m=new qe.Vector3,h=new qe.Vector3,g=new qe.Vector3,b=new qe.Vector2,x=new qe.Vector2,S=new qe.Vector2,w=(_,y,I,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),I.x===0&&I.z===0&&(c[y]=A/2/Math.PI+.5)};for(let _=0,y=0;_<l.length;_+=9,y+=6){f.set(l[_+0],l[_+1],l[_+2]),m.set(l[_+3],l[_+4],l[_+5]),h.set(l[_+6],l[_+7],l[_+8]),b.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),S.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let I=v(g);w(b,y+0,f,I),w(x,y+2,m,I),w(S,y+4,h,I)}for(let _=0;_<c.length;_+=6){let y=c[_+0],I=c[_+2],A=c[_+4],P=Math.max(y,I,A),T=Math.min(y,I,A);P>.9&&T<.1&&(y<.2&&(c[_+0]+=1),I<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function v(_){return Math.atan2(_.z,-_.x)}function N(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new bo(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var xm=require("three"),bm=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:s}=n.parameters,l=o===0&&i!==0?new Hi(t*.5,i,s):new xm.DodecahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},Hi=class extends bo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-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],l=[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],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new Hi(t.radius,t.corner,t.cornerSides)}};var Sc=Math.PI*2;function vc({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function G1(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),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function vm(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 R1(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,b=h+(n+e)/2,x=g+(t+r)/2,S=(s-h)/o,w=(l-g)/i,v=(-s-h)/o,N=(-l-g)/i,_=vm(1,0,S,w),y=vm(S,w,v,N);return!p&&y>0&&(y-=Sc),p&&y<0&&(y+=Sc),{centerx:b,centery:x,ang1:_,ang2:y}}function Sm({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=R1(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,b=Math.abs(m)/(Sc/4);Math.abs(1-b)<1e-7&&(b=1);let x=Math.max(Math.ceil(b),1);m/=x;for(let S=0;S<x;S++)c.push(G1(f,m)),f+=m;return c.map(S=>{let{x:w,y:v}=vc(S[0],o,i,h,g),{x:N,y:_}=vc(S[1],o,i,h,g),{x:y,y:I}=vc(S[2],o,i,h,g);return{x1:w,y1:v,x2:N,y2:_,x:y,y:I}})}var qn=require("three"),_m=Math.PI*2,Tm=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{shape:n.shape&&n.shape instanceof Te?n.shape:new Te,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:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=V1(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=ft.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function V1(n,t,e,r,o,i){if(r>=_m)return o>30||o%4===0?(z1(n,t,e,i),Math.round(o/4)):wm(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=Sm({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%p.length===0?F1(n,s.x,s.y,p,o,t,e,i):wm(n,r,o,t,e,i)}function F1(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(Wn(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=Wn(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?Am(n,i,s,l):n.addPoint(Wn(0,0)),c}function wm(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(Wn(p,a))}return t<_m?i>0?Am(n,r,o,i):n.addPoint(Wn(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Nm(n,r,o,i)),1}function z1(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(Ka(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(Ka(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(Ka(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(Ka(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Nm(n,t,e,r)}function Wn(n,t){return new ir(qn.MathUtils.generateUUID(),new qn.Vector2(n,t))}function Ka(n,t,e,r,o,i){let s=Wn(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function Am(n,t,e,r){Im(n,t,e,r).forEach(i=>n.addPoint(i))}function Nm(n,t,e,r){let o=Im(n,t,e,r),i=new Te;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Im(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new qn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=qn.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Kr=require("three"),Pm=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),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,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:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new Wi(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},Wi=class extends Kr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Kr.Vector3,h=new Kr.Vector3,g=m(),b=m(),x=m(),S,w,v,N,_,y,I,A,P=m(),T=m(),C=m(),L=m(),j=m(),Y=m(),te=m(),ie=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,E=U/q,D=-U/2,B=a+1,k=2*Math.PI/a,$=Math.PI/2/d,H=.01,V=Math.min((1-u/100)*c,c-H),G=c-V,z=0,J=2,oe=d*J+J,ae=B*oe/J,re=ae+B*F,ee=B*(F+oe),[Q,K,me]=[3,3,2].map($e=>Array(ee*$e).fill(0)),de=[],be=i-c;function st($e,Rt){let dr=Math.PI/2;y=Rt*E,A=2*Math.PI*(y%W)/W+dr,y+=D,I=Math.sin(A)*be,_=Math.cos(A)*be,t?$e.set(_,I,y):$e.set(_,y,I)}st(h,-1e-10),st(g,0),P.copy(h),st(h,1);let Ie=h.distanceTo(g),Oe=G+V,Ee=Ie*q+2*Oe,Ht=V,to=Ee-Oe;for(let $e=0;$e<=q;$e++){st(b,$e),ie.subVectors(b,P).normalize(),P.copy(b),Y.copy(b).setComponent(+t+1,0).normalize(),te.crossVectors(ie,Y).normalize();let Rt=$e===0,dr=$e===q,mg=Rt?3*Math.PI/2:$,hg=Rt?Ht:to,gg=Rt?B:re,yg=Rt?0:ee-B,xg=ie.clone().multiplyScalar(Rt?-G:G).add(b),bg=ie.clone().multiplyScalar(Rt?-1:1).normalize();for(let zr=0;zr<B;zr++){let lu=zr*k;if(T.addVectors(h.copy(Y).multiplyScalar(c*Math.cos(lu)),g.copy(te).multiplyScalar(c*Math.sin(lu))),C.copy(T).normalize(),Rt||dr){f||(z=yg+zr,[0,1,2].forEach(Nt=>{Q[z*3+Nt]=xg.getComponent(Nt),K[z*3+Nt]=bg.getComponent(Nt)}),me[z*2]=+dr,me[z*2+1]=zr/a),g.copy(C).multiplyScalar(V),x.addVectors(b,g);for(let Nt=0;Nt<d;Nt++){let Tl=Nt*$+mg;L.addVectors(h.copy(ie).multiplyScalar(G*Math.sin(Tl)),g.copy(C).multiplyScalar(G*Math.cos(Tl))),j.copy(L).normalize(),g.addVectors(x,L),L.normalize(),z=gg+Nt*B+zr,[0,1,2].forEach(Cs=>{Q[z*3+Cs]=g.getComponent(Cs),K[z*3+Cs]=j.getComponent(Cs)});let vg=+Rt+Math.sin(Tl);me[z*2]=(hg+G*vg)/Ee,me[z*2+1]=zr/a}}g.addVectors(b,T),z=ae+$e*B+zr,[0,1,2].forEach(Nt=>{Q[z*3+Nt]=g.getComponent(Nt),K[z*3+Nt]=C.getComponent(Nt)}),me[z*2]=(Oe+$e*Ie)/Ee,me[z*2+1]=zr/a}}let Gt=F+2*d+J,Xo=1,[Ps,Os]=f?[Xo,Xo+F-1]:[0,Gt-1];for(let $e=Ps;$e<=Os-1;$e++){let Rt=f&&$e===Os-1;for(let dr=0;dr<B-1;dr++)S=$e*B+dr,w=S+1,v=(Rt?dr:S)+B,N=(Rt?dr+1:w)+B,$e===0?de.push(w,N,v):$e===Gt-2?de.push(S,w,v):de.push(S,w,v,w,N,v)}this.setIndex(de),this.setAttribute("position",new Kr.Float32BufferAttribute(Q,3)),this.setAttribute("normal",new Kr.Float32BufferAttribute(K,3)),this.setAttribute("uv",new Kr.Float32BufferAttribute(me,2))}};var Om=require("three");var Cm=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:s}=n.parameters,l=o===0&&i!==0?new qi(t*.5,i,s):new Om.IcosahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},qi=class extends bo{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],s=[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],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new qi(t.radius,t.corner,t.cornerSides)}};var Za=require("three"),Mm=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 Za.Shape;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 Za.LatheGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Or=require("three");var Zr=require("three");var se=require("three"),Pr=new se.Matrix4,wc=new se.Object3D,Qa=new se.Vector3,vo=class extends se.EventDispatcher{constructor(){super(),this.uuid=se.MathUtils.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 se.Matrix3().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 s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Pr.makeRotationX(t),this.applyMatrix4(Pr),this}rotateY(t){return Pr.makeRotationY(t),this.applyMatrix4(Pr),this}rotateZ(t){return Pr.makeRotationZ(t),this.applyMatrix4(Pr),this}translate(t,e,r){return Pr.makeTranslation(t,e,r),this.applyMatrix4(Pr),this}scale(t,e,r){return Pr.makeScale(t,e,r),this.applyMatrix4(Pr),this}lookAt(t){return wc.lookAt(t),wc.updateMatrix(),this.applyMatrix4(wc.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,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new se.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new se.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],b=s===void 0?[]:[new se.Vector3().fromBufferAttribute(s,d),new se.Vector3().fromBufferAttribute(s,f),new se.Vector3().fromBufferAttribute(s,m)],x=new $n(d,f,m,b,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new se.Vector2().fromBufferAttribute(c,d),new se.Vector2().fromBufferAttribute(c,f),new se.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new se.Vector2().fromBufferAttribute(p,d),new se.Vector2().fromBufferAttribute(p,f),new se.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,b=m+h;g<b;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+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(Qa).negate(),this.translate(Qa.x,Qa.y,Qa.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new se.Matrix4;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 se.Vector3,e=new se.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),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 se.Vector3;if(t){let r=new se.Vector3,o=new se.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.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],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[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,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new vo;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,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new se.Vector3,a={a:new se.Vector3,b:new se.Vector3,c:new se.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.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 se.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new se.Sphere),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,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new se.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,b=m.vertexNormals,x=m.vertexColors,S=new $n(m.a+i,m.b+i,m.c+i);S.normal.copy(m.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,v=b.length;w<v;w++)h=b[w].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),S.vertexNormals.push(h);S.color.copy(m.color);for(let w=0,v=x.length;w<v;w++)g=x[w],S.vertexColors.push(g.clone());S.materialIndex=m.materialIndex+r,c.push(S)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let b=m[h],x=[];for(let S=0,w=b.length;S<w;S++)x.push(b[S].clone());this.faceVertexUvs[d].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 c=0,p=this.vertices.length;c<p;c++){let a=this.vertices[c],u=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[u]===void 0?(e[u]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[u]]}let s=[];for(let c=0,p=this.faces.length;c<p;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let u=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(u[d]===u[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let p=s[c];this.faces.splice(p,1);for(let a=0,u=this.faceVertexUvs.length;a<u;a++)this.faceVertexUvs[a].splice(p,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new se.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}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 m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,b=!1,x=this.faceVertexUvs[0][m]!==void 0,S=h.normal.length()>0,w=h.vertexNormals.length>0,v=h.color.r!==1||h.color.g!==1||h.color.b!==1,N=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,b),_=a(_,3,x),_=a(_,4,S),_=a(_,5,w),_=a(_,6,v),_=a(_,7,N),r.push(_),r.push(h.a,h.b,h.c),r.push(h.materialIndex),x){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(S&&r.push(u(h.normal)),w){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(v&&r.push(d(h.color)),N){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new vo().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 d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let b=m[h],x=[];for(let S=0,w=b.length;S<w;S++){let v=b[S];x.push(v.clone())}this.faceVertexUvs[d].push(x)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let b=s[d].vertexNormals[h],x={};x.a=b.a.clone(),x.b=b.b.clone(),x.c=b.c.clone(),m.vertexNormals.push(x)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,f=p.length;d<f;d++)this.lineDistances.push(p[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.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 _c().fromGeometry(this),e=new se.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new se.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new se.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new se.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new se.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new se.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new se.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new se.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new se.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(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 se.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new se.Float32BufferAttribute(r.vertices.length*3,3),i=new se.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new se.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(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}};vo.prototype.isGeometry=!0;var _c=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,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.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,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let b=0;b<c;b++)p[b]={name:l[b].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let b=0;b<u;b++)d[b]={name:a[b].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let b=0;b<e.length;b++){let x=e[b];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 v=x.normal;this.normals.push(v,v,v)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let v=x.color;this.colors.push(v,v,v)}if(i===!0){let v=o[0][b];v!==void 0?this.uvs.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",b),this.uvs.push(new se.Vector2,new se.Vector2,new se.Vector2))}if(s===!0){let v=o[1][b];v!==void 0?this.uvs2.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",b),this.uvs2.push(new se.Vector2,new se.Vector2,new se.Vector2))}for(let v=0;v<c;v++){let N=l[v].vertices;p[v].data.push(N[x.a],N[x.b],N[x.c])}for(let v=0;v<u;v++){let N=a[v].vertexNormals[b];d[v].data.push(N.a,N.b,N.c)}h&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),g&&this.skinWeights.push(m[x.a],m[x.b],m[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}},$n=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new se.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new se.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}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}};var j1=["a","b","c"];function U1(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Tc(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function Ac(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function k1(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],Ac(s.a,s.b,n,r,s,e),Ac(s.b,s.c,n,r,s,e),Ac(s.c,s.a,n,r,s,e)}function Ja(n,t,e,r,o){n.push(new $n(t,e,r,void 0,void 0,o))}function Yn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function el(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var tl=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Zr.BufferGeometry?t=new vo().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 Zr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;k1(c,p,d,f);let m=[],h,g,b,x,S,w,v;for(let H of Array.from(f.keys())){for(g=f.get(H),b=new Zr.Vector3,S=3/8,w=1/8,v=g.faces.length,v!=2&&(S=.5,w=0,v!=1),b.addVectors(g.a,g.b).multiplyScalar(S),e.set(0,0,0),s=0;s<v;s++){for(x=g.faces[s],l=0;l<3&&(h=c[U1(x,j1[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(w),b.add(e),g.newEdge=m.length,m.push(b)}let N,_,y,I,A,P,T,C=[];for(o=0,i=c.length;o<i;o++){for(P=c[o],A=d[o].edges,r=A.length,r==3?N=3/16:r>3&&(N=3/(8*r)),_=1-r*Number(N),y=N,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=P.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)I=A[s],h=I.a!==P?I.a:I.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),C.push(T)}let L=C.concat(m),j=C.length,Y,te,ie,U=[],W=[],q,F,E,D,B=new Zr.Vector2,k=new Zr.Vector2,$=new Zr.Vector2;for(o=0,i=p.length;o<i;o++)x=p[o],Y=Number(Tc(x.a,x.b,f).newEdge)+j,te=Number(Tc(x.b,x.c,f).newEdge)+j,ie=Number(Tc(x.c,x.a,f).newEdge)+j,Ja(U,Y,te,ie,x.materialIndex),Ja(U,x.a,Y,ie,x.materialIndex),Ja(U,x.b,te,Y,x.materialIndex),Ja(U,x.c,ie,te,x.materialIndex),u&&(q=a[o],F=q[0],E=q[1],D=q[2],B.set(Yn(F.x,E.x),Yn(F.y,E.y)),k.set(Yn(E.x,D.x),Yn(E.y,D.y)),$.set(Yn(F.x,D.x),Yn(F.y,D.y)),el(W,B,k,$),el(W,F,B,$),el(W,E,k,B),el(W,D,$,k));t.vertices=L,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var tt=new Or.Vector3,Lm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new Or.BufferGeometry().copy(new Or.BoxGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(tt),r={width:tt.x,height:tt.y,depth:tt.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 Or.BufferGeometry().copy(new Or.BoxGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(tt)):tt.set(s.width,s.height,s.depth),(t!==tt.x||e!==tt.y||r!==tt.z)&&i.scale(tt.x===0?1:t/tt.x,tt.y===0?1:e/tt.y,tt.z===0?1:r/tt.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new tl(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new Or.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(tt);let s=100/tt.x;Object.assign(i.parameters,{width:100,height:tt.y*s,depth:tt.z*s}),t(this.build(i))})}};var Em=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 Te?n.shape:new Te,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:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,b=u+Math.sin(g)*p,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(b,x))}c.isClosed=!0;for(let h=0,g=c.points.length;h<g;h++)c.points[h].roundness=o;c.roundness=o,c.update();let m=ft.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var Se=require("three"),Bm=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:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new Ic(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function $i(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Nc(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function H1(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Ic=class extends Se.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,b=(r-2)*Math.PI/r,x=Math.PI-b,S=new Se.Vector3(0,-f,0),w=new Se.Vector3(0,f,0),v=new Se.Vector2(t,-f),N=new Se.Vector2(h,-f),_=new Se.Vector2(0,w.y).sub(N),y=new Se.Vector2(0,w.y).sub(v),I=new Se.Vector2(_.y,-_.x).normalize(),A=new Se.Vector2(y.y,-y.x).normalize(),T=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-_.angle())/2)-1e-8;s=Math.min(s,T);let C;{let W=new Se.Vector3(I.x,I.y,0),q=new Se.Vector3(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);C=W.angleTo(q)}let L=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-C)/2),Y=new Se.Vector3;if(!i){p.push(S.x,S.y,S.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=v.clone(),E=L/Math.cos(Math.PI/r);F.x-=E;for(let D=0;D<r;D++){let B=D/r*Math.PI*2+m,k=new Se.Vector2(Math.sin(B),Math.cos(B));$i(F,k,Y),p.push(Y.x,Y.y,Y.z),a.push(0,-1,0),u.push(0,0),q.push(d++)}for(let D=0;D<q.length;D++)c.push(q[D],W,q[(D+1)%q.length])}let te=[];{let W=new Se.Vector3,q=new Se.Vector3,F=new Se.Vector3,E=new Se.Vector3,D=new Se.Vector3,B=new Se.Vector3;for(let k=0;k<r;k++){let $=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,G=new Se.Vector2(Math.sin($),Math.cos($)),z=new Se.Vector2(Math.sin(H),Math.cos(H)),J=new Se.Vector2(Math.sin(V),Math.cos(V));$i(v,G,q),$i(v,J,F),$i(I,z,W),Nc(w,q,F,j,j,E),p.push(E.x,E.y,E.z),Nc(q,w,F,j,L,D),p.push(D.x,D.y,D.z),Nc(F,q,w,L,j,B),p.push(B.x,B.y,B.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),u.push(0,0),u.push(0,0),u.push(0,0);let oe=d++,ae=d++,re=d++;if(c.push(oe,ae,re),s>0){{let K=q.clone().add(F).multiplyScalar(.5),me=w.clone().sub(K).normalize(),be=S.clone().sub(K).normalize().add(me).normalize().multiplyScalar(-1),st=B.clone().sub(D);ie(K,st,be,_.angle())}let ee,Q;{let K=new Se.Vector3;$i(A,J,K);let me=B.clone().add(E).multiplyScalar(.5);me=H1(me,F,w);let de=B.clone().sub(E);[ee,Q]=ie(me,de,K,C,E.y)}{let K=ee,me=K.clone().setY(0).normalize(),de=new Se.Vector3(0,-1,0),be=me.clone().cross(de);U(K,me,de,be)}te.concat(Q);{let K=_.angle(),me=Math.PI-K,de=w.clone();de.y-=s/Math.sin(K-Math.PI/2);let be=new Se.Vector3,st=[];for(let Oe=0;Oe<l;Oe++){let Ee=[],Ht=Math.PI/2-me*Oe/l,to=Math.cos(Ht),Gt=Math.sin(Ht),Xo=H;for(let Ps=0;Ps<=Oe;Ps++){let Os=Math.cos(Xo),$e=Math.sin(Xo);W.x=to*$e,W.y=Gt,W.z=to*Os,be.copy(de).addScaledVector(W,s),p.push(be.x,be.y,be.z),a.push(W.x,W.y,W.z),u.push(0,0),Ee.push(d++),Xo+=Math.PI*2/Oe/r}st.push(Ee)}Q.reverse(),st.push(Q);let Ie=st.length-1;for(let Oe=0;Oe<Ie;Oe++){let Ee=st[Oe],Ht=st[Oe+1],to=Ee.length-1;c.push(Ht[1],Ee[0],Ht[0]);for(let Gt=1;Gt<=to;Gt++)c.push(Ee[Gt],Ee[Gt-1],Ht[Gt]),c.push(Ht[Gt+1],Ee[Gt],Ht[Gt])}}}}}this.setIndex(c),this.setAttribute("position",new Se.Float32BufferAttribute(p,3)),this.setAttribute("normal",new Se.Float32BufferAttribute(a,3)),this.setAttribute("uv",new Se.Float32BufferAttribute(u,2));function ie(W,q,F,E,D){let B=-E/2,k=(Math.PI-E)/2,$=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new Se.Vector3,V=new Se.Vector3,G=1,z=d,J=[];for(let oe=0;oe<=l;oe++){let ae=B+oe/l*E;V.set(0,0,0),V.addScaledVector($,Math.sin(ae)),V.addScaledVector(F,Math.cos(ae));for(let re=0;re<=G;re++){let ee=re/G-.5;if(H.copy(W),H.addScaledVector(q,ee),H.addScaledVector(V,s),D!=null){let Q=Math.max(0,H.y-D);H.addScaledVector(q,-Q/q.y)}p.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),u.push(0,0),re===0&&J.push(d),d++}}for(let oe=0;oe<l;oe++)for(let ae=0;ae<G;ae++){let re=z+ae+(G+1)*oe,ee=re+(G+1),Q=ee+1,K=re+1;c.push(re,ee,K),c.push(ee,Q,K)}return[W.clone().addScaledVector(q,.5),J]}function U(W,q,F,E){let D=Math.PI/2,B=y.angle()-D,k=[],$=new Se.Vector3,H=new Se.Vector3;for(let G=0;G<=l;G++){let z=[],J=G/l;for(let oe=0;oe<=G;oe++){let re=((G?oe/G:0)-.5)*x,ee=Math.cos(re),Q=Math.sin(re),K=Math.atan(Math.tan(B)*ee),me=(D+K)*J,de=Math.cos(me),be=Math.sin(me);$.set(0,0,0),$.addScaledVector(q,be*ee),$.addScaledVector(F,de),$.addScaledVector(E,be*Q),H.copy(W).addScaledVector($,s),p.push(H.x,H.y,H.z),a.push($.x,$.y,$.z),u.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let G=0;G<V;G++){let z=k[G],J=k[G+1],oe=z.length-1;c.push(z[0],J[1],J[0]);for(let ae=1;ae<=oe;ae++)c.push(z[ae-1],z[ae],J[ae]),c.push(z[ae],J[ae+1],J[ae])}}}};var Dm=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 Te?n.shape:new Te,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:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(w,v,N){return v>e&&N>r?Math.min(w*e/v,w*r/N):v>e?w*e/v:N>r?w*r/N:w}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=u.x,g=u.y,b=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,b)),t.addPoint(t.createPoint(m,b)),t.isClosed=!0;let x=!0;for(let w=0,v=t.points.length;w<v;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=ft.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(S,{userData:{...n,type:"RectangleGeometry"}})}};var Gm=require("three"),Rm=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:Math.PI},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=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new Gm.SphereGeometry(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var Vm=require("three"),Fm=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 Vm.PlaneGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var So=require("three"),zm=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:s}=n.parameters,l=new Pc(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Pc=class extends So.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(H=0,V=0,G=0)=>new So.Vector3(H,V,G),m=f(),h=f(),[g,b,x]=[e/2,t/2,r/2],S=-b,w=+b,[v,N,_]=[f(S,-g,+x),f(S,-g,-x),f(S,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),I=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,P=v.z-a;o<=d?(_.z=Math.min(A,P),_.z==P&&(_.y-=(A-P)/Math.tan(d-o))):N.z=Math.min(N.z-A-x,v.z-a),m.subVectors(v,N),h.subVectors(_,N);let T=Math.min(m.length(),h.length())*i/100,C=T*Math.tan(o/2),L=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(L).add(N);m.set(0,y(o,!0),I(o,!0)),u.push([_,m.clone()]);let Y=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*Y;m.set(0,Math.sin(V)*C,Math.cos(V)*C),m.add(j),h.set(0,y(V),I(V)),u.push([m.clone(),h.clone()])}u.push([v,f(0,1,0)]);let te=Math.sin(Y/2)*C*2,ie=u.length-1,U=u[0][0].distanceTo(u[1][0]),W=u[ie-1][0].distanceTo(u[ie][0]),q=U+te*s+W;u[0].push(1);for(let H=0;H<=s;H++)u[H+1].push(1-(U+H*te)/q);u[ie].push(0);let[F,E,D]=u[0],B,k,$;for(let H=1;H<u.length;H++)[B,k,$]=u[H],l.push(S,F.y,F.z,S,B.y,B.z,w,F.y,F.z,w,F.y,F.z,S,B.y,B.z,w,B.y,B.z),c.push(0,E.y,E.z,0,k.y,k.z,0,E.y,E.z,0,E.y,E.z,0,k.y,k.z,0,k.y,k.z),p.push(0,D,0,$,1,D,1,D,0,$,1,$),[F,E,D]=[B,k,$];this.setAttribute("position",new So.Float32BufferAttribute(l,3)),this.setAttribute("normal",new So.Float32BufferAttribute(c,3)),this.setAttribute("uv",new So.Float32BufferAttribute(p,2))}};var jm=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 Te?n.shape:new Te,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:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,b=u*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let w=0;w<o;w++){let v=h*w,N=f+Math.sin(v)*u,_=m+Math.cos(v)*d;a.addPoint(a.createPoint(N,_))}}else for(let w=0;w<o;w++){let v=f+Math.cos(g)*u,N=m+Math.sin(g)*d;a.addPoint(a.createPoint(v,N)),g+=h,v=f+Math.cos(g)*b,N=m+Math.sin(g)*x,w<=o,a.addPoint(a.createPoint(v,N)),g+=h}a.isClosed=!0;for(let w=0,v=a.points.length;w<v;w++)a.points[w].roundness=i;a.roundness=i,a.update();let S=ft.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(S,{userData:{...n,type:"StarGeometry"}})}};var Um=require("three"),km=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 Um.PlaneGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var Hm=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:Math.PI*2,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:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=W1(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function W1(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new Wi(!0,n,t,e,r,o,i,s,l,c,p,a)}var Wm=require("three"),qm=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:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new Wm.TorusKnotGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var $m=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 Te?n.shape:new Te,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:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=ft.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var Uo=require("three"),Xm=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Ym(){let n=new Uo.BufferGeometry;return n.setAttribute("position",new Uo.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Uo.BufferAttribute(new Uint16Array([]),1)),n}var q1=12;var Xn=class extends Uo.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=Ym();Object.entries(o.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(o.index),this.updateFont(e.font,r),this.update(e)}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r||!r.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:p,textTransform:a,subdivisions:u}=e;await r.loadingPromise;let d=a===2?p.toUpperCase():a===3?p.toLowerCase():p,f=$1(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),b=o*.5,x=i*.5,S=m.map(N=>new Te().fromShape(N));this.vectorShapes=S;let w=S.map(N=>ft.create({shape:N,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Be.NONZERO:Be.ODD,subdivisions:u??q1}})),v=w.length?(0,Xm.mergeBufferGeometries)(w):Ym();v.translate(-b,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([N,_])=>{this.setAttribute(N,_)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let e=Go(new Uo.BufferGeometry,Xn.prototype);return e.copy(this),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 $1(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
|
|
2
2
|
`?(r[r.length-1]+=o,o="",i===`
|
|
3
|
-
`&&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}var Xe=require("three");var Zm=require("three");function rl(n,t){return Y1(n)}function Y1(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=Te.createFromState(n.shape,n.width,n.height);t.shape=r}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new Zm.BufferGeometryLoader().parse(n));let e;try{e=Yi(t)}catch(r){console.error(r)}if(!e){let r=Te.createFromState(Pn.defaultData(),100,100);t.shape=r,e=Yi(t)}return e}var pe;En.then(n=>{pe=n});var Qm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Jm=new Uint32Array([0,1,2,3]),eh=new Uint8Array([4]),Jt=class{static build(n,t,e,r,o){let i,s,l,c=n?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),n.positionWASM!==void 0){e&&e!==0&&(pe.free_bvh(e),pe.free_subdivision_surface(e));try{i=Jt.allocate(n,o)}catch(p){console.error(p,n),i=Jt.allocate({positionWASM:Qm,indexWASM:Jm,verticesPerFaceWASM:eh},o)}pe.set_destination_refinement_level(i,0),s=Jt.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=Jt.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(pe.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=Jt.buildLevel(i,!1,c):l=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(n,t){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let e=n.shape!==void 0?t.geometry:rl(n),r,o,i,s;({positions:r,triIndices:s}=Ec(e.getAttribute("position"),e.getIndex()));let l;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let c=n.radialSegments*n.heightSegments*3*2,p=c+n.radialSegments*3;l=[c,p]}return{indices:o,verticesPerFace:i}=Bc(r,s,e,l),{positions:r,indices:o,verticesPerFace:i}}static allocate(n,t){let e,r,o,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(e=n.positionWASM,r=n.indexWASM,o=n.verticesPerFaceWASM):(e=Qm,r=Jm,o=eh);let l=e.length,c=r.length,p=o.length,a=e.length+i.length+s.length,u=r.length+o.length,d=a*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,f=a*Float32Array.BYTES_PER_ELEMENT,m=u*Uint32Array.BYTES_PER_ELEMENT,h=pe._malloc(d),g=new Float32Array(pe.HEAPF32.buffer,h,a),b=new Uint32Array(pe.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),b.set(r,0),b.set(o,r.length);let x;n?.scaleBaked?.some(w=>w!==1)&&(x=new Xe.Matrix4().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let S=x?pe.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,x.elements):pe.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return pe._free(h),S}static buildLevel(n,t,e,r,o){let i=o?pe.get_mesh_data2(n,t?pe.Level.CONTROL:pe.Level.REFINED,e,o.elements):pe.get_mesh_data(n,t?pe.Level.CONTROL:pe.Level.REFINED,e),s=8,l=pe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=pe.HEAPU32[l[p]>>2],u=pe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=pe.HEAPU32[l[p]>>2],f=pe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=pe.HEAPU32[l[p]>>2],h=pe.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=pe.HEAPU32[l[p]>>2],b=pe.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let x=new Xe.BufferGeometry;if(x.setIndex(new Xe.Uint32BufferAttribute(b,1)),x.setAttribute("position",new Xe.Float32BufferAttribute(u,3)),x.setAttribute("normal",new Xe.Float32BufferAttribute(f,3)),t){x.setAttribute("faceMap",new Xe.Uint32BufferAttribute(h,1));let S=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new Xe.BufferAttribute(S,4))}return pe.free_mesh_data(i),x.userData.type="SubdivGeometry",x}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(f),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,pe.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=pe.get_wireframe_data_for_base_level(n),o=4,i=pe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=pe.HEAPU32[i[l]>>2],p=pe.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=pe.HEAPU32[i[l]>>2],u=pe.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new Xe.BufferGeometry;d.setAttribute("position",new Xe.Float32BufferAttribute(p,3));let f=new Float32Array(p.length);for(let m=0,h=p.length;m<h;)f[m++]=e.r,f[m++]=e.g,f[m++]=e.b;return d.setAttribute("color",new Xe.BufferAttribute(f,3)),d.setIndex(new Xe.Uint32BufferAttribute(u,1)),pe.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,pe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||pe.set_destination_refinement_level(n,t);let o=e?pe.get_topological_data2(n,r?pe.Level.CONTROL:pe.Level.REFINED,e.elements):pe.get_topological_data(n,r?pe.Level.CONTROL:pe.Level.REFINED),i=6,s=pe.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=pe.HEAPU32[s[c]>>2],a=new Float32Array(pe.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=pe.HEAPU32[s[c]>>2],d=new Uint32Array(pe.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=pe.HEAPU32[s[c]>>2],m=new Uint8Array(pe.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return pe.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var th=["getX","getY","getZ"];function Ec(n,t){let e={},r=t?t.count:n.count,o=0,i=[],s=[],l=1e4;for(let p=0;p<r;p++){let a=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(n[th[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[th[d]](a));e[u]=o,i.push(o),o++}}let c=[];for(let p=0;p<i.length;p+=3)i[p]===i[p+1]||i[p]===i[p+2]||i[p+1]===i[p+2]||c.push(i[p],i[p+1],i[p+2]);return{positions:s,triIndices:c}}var ol=new Xe.Vector3,Cc=new Xe.Vector3,Mc=new Xe.Vector3,Lc=new Xe.Vector3;function Bc(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 s=e.userData.shape.extractShapePointsToFlatArray([]),l=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&l<=24&&l%4===0&&e.userData.parameters.angle>=360){let a=s.length/2/l;s=s.filter((u,d)=>Math.floor(d/2)%a===0)}let c=0;for(let a=0;a<s.length;a+=2)c+=(s[a]-s[(a===0?s.length:a)-2])*(s[a+1]+s[(a===0?s.length:a)-1]);n.length=0;let p=0;if(c<0)for(let a=0;a<s.length;a+=2)n.push(s[a],s[a+1],0),o.push(p++);else for(let a=s.length-2;a>=0;a-=2)n.push(s[a],s[a+1],0),o.push(p++);return i.push(p),{indices:o,verticesPerFace:i}}for(let s=0,l=e.capStartIndex??t.length;s<l;)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]){ol.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Cc.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Mc.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Lc.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Cc.sub(ol).normalize(),Mc.sub(ol).normalize(),Lc.sub(ol).normalize();let c=Cc.cross(Mc).dot(Lc);Math.abs(c)>.005||r&&r.some((p,a)=>a%2===1?!1:s>=r[a]&&s<r[a+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.capStartIndex!==void 0){let s=[],l=[],c=0,p=new Float32Array([e.userData.parameters.depth])[0];for(let a=0,u=0;a<n.length;a+=3,u++)n[a+2]===0&&(s.push(u),c++),n[a+2]===p&&l.push(u);if(e.userData.parameters.extrudeBevelSize===0){let a=l[0];l[0]=l[1],l[1]=a}s.reverse(),o.push(...s,...l),i.push(c,c)}return{indices:o,verticesPerFace:i}}var sr={};uu(sr,{calcBoolean:()=>Q1,calcBooleanTopological:()=>Z1,freeMeshSet:()=>tw,getMeshSet:()=>J1,transformMeshSet:()=>ew});var X1,rh=new Promise(n=>{X1=n});var Xi=require("three");var xe,Kn;rh.then(n=>xe=n);function K1(n,t,e){let r,{positions:o,triIndices:i}=Ec(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=Bc(o,i,n);s=c.length,r=[];for(let p=0,a=0;p<s;p++){r.push(c[p]);for(let u=0;u<c[p];u++)r.push(l[a++])}}else{let l=i.length;r=Array(l+l/3),s=0;for(let c=0,p=0;p<r.length;)r[p++]=3,s++,r[p++]=i[c++],r[p++]=i[c++],r[p++]=i[c++]}return{positions:o,faceIndices:r,nFaces:s}}function oh(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=xe._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(xe.HEAPU32.buffer,i,t):new Float32Array(xe.HEAPF32.buffer,i,t)).set(n,0),i}function nh(n){switch(n){case 0:return xe.OP.UNION;case 1:return xe.OP.INTERSECTION;case 2:return xe.OP.A_MINUS_B;case 3:return xe.OP.B_MINUS_A;case 4:return xe.OP.SYMMETRIC_DIFFERENCE;case 5:return xe.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function Z1(n,t){Kn===void 0&&(Kn=xe.init_csg());let e=oh(n),r=xe.csg_calc_topological(Kn,e,n.length,nh(t));xe._free(e);let o=6,i=xe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=xe.HEAPU32[i[l]>>2],p=new Float32Array(xe.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=xe.HEAPU32[i[l]>>2],u=new Uint32Array(xe.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=xe.HEAPU32[i[l]>>2],f=new Uint8Array(xe.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return xe.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function Q1(n,t,e,r){Kn===void 0&&(Kn=xe.init_csg());let o=oh(n),i=xe.csg_calc(Kn,o,n.length,r,nh(t));xe._free(o);let s=5,l=xe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=xe.HEAPU32[l[p]>>2],u=xe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=xe.HEAPU32[l[p]>>2],f=xe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new Xi.Float32BufferAttribute(u,3)),e.setAttribute("normal",new Xi.Float32BufferAttribute(f,3));let h=xe.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Xi.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},xe.free_mesh_data(i),m}function J1(n,t,e){if(xe===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((b,x)=>b+x,0)+i);for(let b=0,x=0,S=0;b<g.verticesPerFace.length;b++){o[S++]=g.verticesPerFace[b];for(let w=0;w<g.verticesPerFace[b];w++)o[S++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=K1(n,t,e));let s=r.length,l=o.length,c=r.length,p=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,u=c*Float32Array.BYTES_PER_ELEMENT,d=p*Uint32Array.BYTES_PER_ELEMENT,f=xe._malloc(a),m=new Float32Array(xe.HEAPF32.buffer,f,c),h=new Uint32Array(xe.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),xe.get_csg_mesh(f,s,f+u,l,i)}function ew(n,t){xe.transform_csg_mesh(n,t.elements)}function tw(n){xe.free_csg_mesh(n)}var Dc={ConeGeometry:ym,CubeGeometry:xm,CylinderGeometry:hm,DodecahedronGeometry:vm,EllipseGeometry:Am,HelixGeometry:Om,IcosahedronGeometry:Mm,LatheGeometry:Lm,NonParametricGeometry:Em,PolygonGeometry:Bm,PyramidGeometry:Dm,RectangleGeometry:Gm,SphereGeometry:Vm,PlaneGeometry:zm,BackdropGeometry:jm,StarGeometry:Um,TextFrameGeometry:Hm,TorusGeometry:Wm,TorusKnotGeometry:$m,TriangleGeometry:Ym,VectorGeometry:ft},Yi=n=>Dc[n.type].create(n);var fl=require("three");var lr=require("three");var Ki=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}};var ih=require("three"),ct=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=ih.MathUtils.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,s){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 ct&&(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 Gc=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}},rt=new Gc;var Rc=require("three");var sh=require("three"),ce=class extends ct{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 s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=sh.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,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,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var De=class extends ce{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,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var ut=class extends De{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof Rc.Vector2?e:new Rc.Vector2(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,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var Vc=require("three");var mt=class extends De{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Vc.Vector3?e:new Vc.Vector3(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,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var ah=require("three"),ot=class extends ah.Color{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)}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 er=class extends De{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ot?e:new ot(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var rw=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,lh=/[a-z_0-9]+/gi,X=class extends ce{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===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,s){let l,c=0,p=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 a=[];for(;l=lh.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&rt.containsKeyword(f)){let g=this.keywords[f];if(!g){let b=rt.getKeywordData(f);b.cache&&(g=e.keywords[f]),g=g||rt.getKeyword(f,e),b.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&rt.contains(h)&&e.include(rt.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",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 s=rw.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(lh);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var ow=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Fc=class extends ce{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Fc.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,s){this.src=e||"";let l,c,p="",a=ow.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}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,s){return e.format(this.name,this.getType(e),r)}},_e=Fc;_e.PI="PI",_e.PI2="PI2",_e.RECIPROCAL_PI="RECIPROCAL_PI",_e.RECIPROCAL_PI2="RECIPROCAL_PI2",_e.LOG2="LOG2",_e.EPSILON="EPSILON";var nw=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
-
)*?)}`,"gim"),iw=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Zn=class extends ce{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,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=nw.exec(e);if(r){let o=r[2],i;for(;i=iw.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Qn=class extends ce{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)}};rt.addKeyword("uv",function(){return new Qn});rt.addKeyword("uv2",function(){return new Qn(1)});var nl=require("three");var ko=class extends ce{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??ko.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case nl.LinearEncoding:return["Linear"];case nl.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=ko.Nodes[this.method],l=e.include(s);if(l===ko.LINEAR_TO_LINEAR)return e.format(o,i,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,r)}else return e.format(l+"( "+o+" )",i,r)}fromEncoding(e){let r=ko.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=ko.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},
|
|
3
|
+
`&&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}var Xe=require("three");var Km=require("three");function rl(n,t){return Y1(n)}function Y1(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=Te.createFromState(n.shape,n.width,n.height);t.shape=r}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new Km.BufferGeometryLoader().parse(n));let e;try{e=Yi(t)}catch(r){console.error(r)}if(!e){let r=Te.createFromState(Pn.defaultData(),100,100);t.shape=r,e=Yi(t)}return e}var pe;En.then(n=>{pe=n});var Zm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Qm=new Uint32Array([0,1,2,3]),Jm=new Uint8Array([4]),Jt=class{static build(n,t,e,r,o){let i,s,l,c=n?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),n.positionWASM!==void 0){e&&e!==0&&(pe.free_bvh(e),pe.free_subdivision_surface(e));try{i=Jt.allocate(n,o)}catch(p){console.error(p,n),i=Jt.allocate({positionWASM:Zm,indexWASM:Qm,verticesPerFaceWASM:Jm},o)}pe.set_destination_refinement_level(i,0),s=Jt.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=Jt.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(pe.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=Jt.buildLevel(i,!1,c):l=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(n,t){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let e=n.shape!==void 0?t.geometry:rl(n),r,o,i,s;({positions:r,triIndices:s}=Lc(e.getAttribute("position"),e.getIndex()));let l;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let c=n.radialSegments*n.heightSegments*3*2,p=c+n.radialSegments*3;l=[c,p]}return{indices:o,verticesPerFace:i}=Ec(r,s,e,l),{positions:r,indices:o,verticesPerFace:i}}static allocate(n,t){let e,r,o,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(e=n.positionWASM,r=n.indexWASM,o=n.verticesPerFaceWASM):(e=Zm,r=Qm,o=Jm);let l=e.length,c=r.length,p=o.length,a=e.length+i.length+s.length,u=r.length+o.length,d=a*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,f=a*Float32Array.BYTES_PER_ELEMENT,m=u*Uint32Array.BYTES_PER_ELEMENT,h=pe._malloc(d),g=new Float32Array(pe.HEAPF32.buffer,h,a),b=new Uint32Array(pe.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),b.set(r,0),b.set(o,r.length);let x;n?.scaleBaked?.some(w=>w!==1)&&(x=new Xe.Matrix4().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let S=x?pe.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,x.elements):pe.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return pe._free(h),S}static buildLevel(n,t,e,r,o){let i=o?pe.get_mesh_data2(n,t?pe.Level.CONTROL:pe.Level.REFINED,e,o.elements):pe.get_mesh_data(n,t?pe.Level.CONTROL:pe.Level.REFINED,e),s=8,l=pe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=pe.HEAPU32[l[p]>>2],u=pe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=pe.HEAPU32[l[p]>>2],f=pe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=pe.HEAPU32[l[p]>>2],h=pe.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=pe.HEAPU32[l[p]>>2],b=pe.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let x=new Xe.BufferGeometry;if(x.setIndex(new Xe.Uint32BufferAttribute(b,1)),x.setAttribute("position",new Xe.Float32BufferAttribute(u,3)),x.setAttribute("normal",new Xe.Float32BufferAttribute(f,3)),t){x.setAttribute("faceMap",new Xe.Uint32BufferAttribute(h,1));let S=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new Xe.BufferAttribute(S,4))}return pe.free_mesh_data(i),x.userData.type="SubdivGeometry",x}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(f),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,pe.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=pe.get_wireframe_data_for_base_level(n),o=4,i=pe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=pe.HEAPU32[i[l]>>2],p=pe.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=pe.HEAPU32[i[l]>>2],u=pe.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new Xe.BufferGeometry;d.setAttribute("position",new Xe.Float32BufferAttribute(p,3));let f=new Float32Array(p.length);for(let m=0,h=p.length;m<h;)f[m++]=e.r,f[m++]=e.g,f[m++]=e.b;return d.setAttribute("color",new Xe.BufferAttribute(f,3)),d.setIndex(new Xe.Uint32BufferAttribute(u,1)),pe.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,pe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||pe.set_destination_refinement_level(n,t);let o=e?pe.get_topological_data2(n,r?pe.Level.CONTROL:pe.Level.REFINED,e.elements):pe.get_topological_data(n,r?pe.Level.CONTROL:pe.Level.REFINED),i=6,s=pe.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=pe.HEAPU32[s[c]>>2],a=new Float32Array(pe.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=pe.HEAPU32[s[c]>>2],d=new Uint32Array(pe.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=pe.HEAPU32[s[c]>>2],m=new Uint8Array(pe.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return pe.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var eh=["getX","getY","getZ"];function Lc(n,t){let e={},r=t?t.count:n.count,o=0,i=[],s=[],l=1e4;for(let p=0;p<r;p++){let a=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(n[eh[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[eh[d]](a));e[u]=o,i.push(o),o++}}let c=[];for(let p=0;p<i.length;p+=3)i[p]===i[p+1]||i[p]===i[p+2]||i[p+1]===i[p+2]||c.push(i[p],i[p+1],i[p+2]);return{positions:s,triIndices:c}}var ol=new Xe.Vector3,Oc=new Xe.Vector3,Cc=new Xe.Vector3,Mc=new Xe.Vector3;function Ec(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 s=e.userData.shape.extractShapePointsToFlatArray([]),l=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&l<=24&&l%4===0&&e.userData.parameters.angle>=360){let a=s.length/2/l;s=s.filter((u,d)=>Math.floor(d/2)%a===0)}let c=0;for(let a=0;a<s.length;a+=2)c+=(s[a]-s[(a===0?s.length:a)-2])*(s[a+1]+s[(a===0?s.length:a)-1]);n.length=0;let p=0;if(c<0)for(let a=0;a<s.length;a+=2)n.push(s[a],s[a+1],0),o.push(p++);else for(let a=s.length-2;a>=0;a-=2)n.push(s[a],s[a+1],0),o.push(p++);return i.push(p),{indices:o,verticesPerFace:i}}for(let s=0,l=e.capStartIndex??t.length;s<l;)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]){ol.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Oc.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Cc.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Mc.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Oc.sub(ol).normalize(),Cc.sub(ol).normalize(),Mc.sub(ol).normalize();let c=Oc.cross(Cc).dot(Mc);Math.abs(c)>.005||r&&r.some((p,a)=>a%2===1?!1:s>=r[a]&&s<r[a+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.capStartIndex!==void 0){let s=[],l=[],c=0,p=new Float32Array([e.userData.parameters.depth])[0];for(let a=0,u=0;a<n.length;a+=3,u++)n[a+2]===0&&(s.push(u),c++),n[a+2]===p&&l.push(u);if(e.userData.parameters.extrudeBevelSize===0){let a=l[0];l[0]=l[1],l[1]=a}s.reverse(),o.push(...s,...l),i.push(c,c)}return{indices:o,verticesPerFace:i}}var sr={};cu(sr,{calcBoolean:()=>Q1,calcBooleanTopological:()=>Z1,freeMeshSet:()=>tw,getMeshSet:()=>J1,transformMeshSet:()=>ew});var X1,th=new Promise(n=>{X1=n});var Xi=require("three");var xe,Kn;th.then(n=>xe=n);function K1(n,t,e){let r,{positions:o,triIndices:i}=Lc(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=Ec(o,i,n);s=c.length,r=[];for(let p=0,a=0;p<s;p++){r.push(c[p]);for(let u=0;u<c[p];u++)r.push(l[a++])}}else{let l=i.length;r=Array(l+l/3),s=0;for(let c=0,p=0;p<r.length;)r[p++]=3,s++,r[p++]=i[c++],r[p++]=i[c++],r[p++]=i[c++]}return{positions:o,faceIndices:r,nFaces:s}}function rh(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=xe._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(xe.HEAPU32.buffer,i,t):new Float32Array(xe.HEAPF32.buffer,i,t)).set(n,0),i}function oh(n){switch(n){case 0:return xe.OP.UNION;case 1:return xe.OP.INTERSECTION;case 2:return xe.OP.A_MINUS_B;case 3:return xe.OP.B_MINUS_A;case 4:return xe.OP.SYMMETRIC_DIFFERENCE;case 5:return xe.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function Z1(n,t){Kn===void 0&&(Kn=xe.init_csg());let e=rh(n),r=xe.csg_calc_topological(Kn,e,n.length,oh(t));xe._free(e);let o=6,i=xe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=xe.HEAPU32[i[l]>>2],p=new Float32Array(xe.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=xe.HEAPU32[i[l]>>2],u=new Uint32Array(xe.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=xe.HEAPU32[i[l]>>2],f=new Uint8Array(xe.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return xe.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function Q1(n,t,e,r){Kn===void 0&&(Kn=xe.init_csg());let o=rh(n),i=xe.csg_calc(Kn,o,n.length,r,oh(t));xe._free(o);let s=5,l=xe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=xe.HEAPU32[l[p]>>2],u=xe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=xe.HEAPU32[l[p]>>2],f=xe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new Xi.Float32BufferAttribute(u,3)),e.setAttribute("normal",new Xi.Float32BufferAttribute(f,3));let h=xe.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Xi.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},xe.free_mesh_data(i),m}function J1(n,t,e){if(xe===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((b,x)=>b+x,0)+i);for(let b=0,x=0,S=0;b<g.verticesPerFace.length;b++){o[S++]=g.verticesPerFace[b];for(let w=0;w<g.verticesPerFace[b];w++)o[S++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=K1(n,t,e));let s=r.length,l=o.length,c=r.length,p=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,u=c*Float32Array.BYTES_PER_ELEMENT,d=p*Uint32Array.BYTES_PER_ELEMENT,f=xe._malloc(a),m=new Float32Array(xe.HEAPF32.buffer,f,c),h=new Uint32Array(xe.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),xe.get_csg_mesh(f,s,f+u,l,i)}function ew(n,t){xe.transform_csg_mesh(n,t.elements)}function tw(n){xe.free_csg_mesh(n)}var Bc={ConeGeometry:gm,CubeGeometry:ym,CylinderGeometry:mm,DodecahedronGeometry:bm,EllipseGeometry:Tm,HelixGeometry:Pm,IcosahedronGeometry:Cm,LatheGeometry:Mm,NonParametricGeometry:Lm,PolygonGeometry:Em,PyramidGeometry:Bm,RectangleGeometry:Dm,SphereGeometry:Rm,PlaneGeometry:Fm,BackdropGeometry:zm,StarGeometry:jm,TextFrameGeometry:km,TorusGeometry:Hm,TorusKnotGeometry:qm,TriangleGeometry:$m,VectorGeometry:ft},Yi=n=>Bc[n.type].create(n);var Sh=require("three");var lr=require("three");var Ki=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}};var nh=require("three"),ct=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=nh.MathUtils.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,s){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 ct&&(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 Dc=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}},rt=new Dc;var Gc=require("three");var ih=require("three"),ce=class extends ct{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 s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=ih.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,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,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var De=class extends ce{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,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var ut=class extends De{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof Gc.Vector2?e:new Gc.Vector2(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,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var Rc=require("three");var mt=class extends De{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Rc.Vector3?e:new Rc.Vector3(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,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var sh=require("three"),ot=class extends sh.Color{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)}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 er=class extends De{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ot?e:new ot(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var rw=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,ah=/[a-z_0-9]+/gi,X=class extends ce{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===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,s){let l,c=0,p=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 a=[];for(;l=ah.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&rt.containsKeyword(f)){let g=this.keywords[f];if(!g){let b=rt.getKeywordData(f);b.cache&&(g=e.keywords[f]),g=g||rt.getKeyword(f,e),b.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&rt.contains(h)&&e.include(rt.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",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 s=rw.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(ah);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var ow=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Vc=class extends ce{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Vc.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,s){this.src=e||"";let l,c,p="",a=ow.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}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,s){return e.format(this.name,this.getType(e),r)}},_e=Vc;_e.PI="PI",_e.PI2="PI2",_e.RECIPROCAL_PI="RECIPROCAL_PI",_e.RECIPROCAL_PI2="RECIPROCAL_PI2",_e.LOG2="LOG2",_e.EPSILON="EPSILON";var nw=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
+
)*?)}`,"gim"),iw=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Zn=class extends ce{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,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=nw.exec(e);if(r){let o=r[2],i;for(;i=iw.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Qn=class extends ce{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)}};rt.addKeyword("uv",function(){return new Qn});rt.addKeyword("uv2",function(){return new Qn(1)});var nl=require("three");var ko=class extends ce{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??ko.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case nl.LinearEncoding:return["Linear"];case nl.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=ko.Nodes[this.method],l=e.include(s);if(l===ko.LINEAR_TO_LINEAR)return e.format(o,i,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,r)}else return e.format(l+"( "+o+" )",i,r)}fromEncoding(e){let r=ko.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=ko.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},Tt=ko;Tt.Nodes={LinearToLinear:new X(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
|
|
5
5
|
`)),sRGBToLinear:new X(["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(`
|
|
6
6
|
`)),LinearTosRGB:new X(["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(`
|
|
7
|
-
`))},
|
|
7
|
+
`))},Tt.LINEAR_TO_LINEAR="LinearToLinear",Tt.SRGB_TO_LINEAR="sRGBToLinear",Tt.LINEAR_TO_SRGB="LinearTosRGB";var Ne=class extends X{constructor(e="",r,o,i,s){super(e,s,i,o,r);this.nodeType="Expression"}};var lh=require("three"),Lt=class extends De{constructor(e=new lh.Texture,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new Qn,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"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l,c;this.project?l="texture2DProj":l=s?"tex2DBias":"tex2D",s?c=l+"( "+o+", "+i+", "+s+" )":c=l+"( "+o+", "+i+" )";let p={include:e.isShader("vertex"),ignoreCache:!0},a=this.getType(e);return e.addContext(p),this.colorSpace=this.colorSpace??new Tt(new Ne("",a)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,a),e.removeContext(),e.format(c,a,r)}};var Z=class extends De{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,i,s,l){return e.format(this.value+(this.value%1?"":".0"),i,r)}};var Zi=class extends ce{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,s){i=this.getType(e);let l=this.value,c=l.build(e,r)+"( ",p=[];if(l.inputs){for(let a=0;a<l.inputs.length;a++){let u=l.inputs[a],d=this.inputs[a]||this.inputs[u.name];p.push(d.build(e,e.getTypeByFormat(u.type)))}c+=p.join(", ")+" )"}return e.format(c,i,r)}};var Fc=class extends ce{constructor(e,r,o=Fc.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),s=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+s+" )",o,r)}},Et=Fc;Et.ADD="+",Et.SUB="-",Et.MUL="*",Et.DIV="/";var Le=class extends ce{constructor(e,r=Le.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 Le.MIX:case Le.CLAMP:case Le.REFRACT:case Le.SMOOTHSTEP:case Le.FACEFORWARD:return 3;case Le.MIN:case Le.MAX:case Le.MOD:case Le.STEP:case Le.REFLECT:case Le.DISTANCE:case Le.DOT:case Le.CROSS:case Le.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 Le.LENGTH:case Le.DISTANCE:case Le.DOT:return"f";case Le.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,i,s,l=this.a?e.getTypeLength(this.a.getType(e)):0,c=this.b?e.getTypeLength(this.b.getType(e)):0,p=this.c?e.getTypeLength(this.c.getType(e)):0,a=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Le.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,r);case Le.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,r);case Le.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Le.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Le.MIN:case Le.MAX:case Le.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Le.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Le.MIX:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,p===1?"f":a);break;default:o=this.a.build(e,a),this.b&&(i=this.b.build(e,a)),this.c&&(s=this.c.build(e,a));break}let d=[];d.push(o),i&&d.push(i),s&&d.push(s);let f=this.getNumInputs(e);if(d.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${d.length}.`);return e.format(this.method+"( "+d.join(", ")+" )",u,r)}},fe=Le;fe.RAD="radians",fe.DEG="degrees",fe.EXP="exp",fe.EXP2="exp2",fe.LOG="log",fe.LOG2="log2",fe.SQRT="sqrt",fe.INV_SQRT="inversesqrt",fe.FLOOR="floor",fe.CEIL="ceil",fe.NORMALIZE="normalize",fe.FRACT="fract",fe.SATURATE="saturate",fe.SIN="sin",fe.COS="cos",fe.TAN="tan",fe.ASIN="asin",fe.ACOS="acos",fe.ARCTAN="atan",fe.ABS="abs",fe.SIGN="sign",fe.LENGTH="length",fe.NEGATE="negate",fe.INVERT="invert",fe.MIN="min",fe.MAX="max",fe.MOD="mod",fe.STEP="step",fe.REFLECT="reflect",fe.DISTANCE="distance",fe.DOT="dot",fe.CROSS="cross",fe.POW="pow",fe.MIX="mix",fe.CLAMP="clamp",fe.REFRACT="refract",fe.SMOOTHSTEP="smoothstep",fe.FACEFORWARD="faceforward";var Jn=class extends ce{constructor(e,r,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=o}bilinearCubeUV(e,r,o,i){let s=new Zi(Jn.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new Tt(new Ne("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new Tt(new Ne("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new Tt(new Ne("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new Tt(new Ne("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let l={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(l),this.colorSpaceTLExp=new Ne(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ne(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ne(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ne(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Ne("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return c.keywords.cubeUV_TL=this.colorSpaceTLExp,c.keywords.cubeUV_TR=this.colorSpaceTRExp,c.keywords.cubeUV_BL=this.colorSpaceBLExp,c.keywords.cubeUV_BR=this.colorSpaceBRExp,c.keywords.cubeUV=s,c}generate(e,r){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,s=new Zi(Jn.Nodes.roughnessToMip,[i]),l=new fe(s,Jn.Nodes.m0,Jn.Nodes.cubeUV_maxMipLevel,fe.CLAMP),c=new fe(l,fe.FLOOR),p=new fe(l,fe.FRACT),a=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new Et(c,new Z(1).setReadonly(!0),Et.ADD)),d=new fe(a,u,p,fe.MIX);return e.format(d.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)}},ei=Jn;ei.Nodes=function(){let e=new Zn(`struct TextureCubeUVData {
|
|
8
8
|
vec4 tl;
|
|
9
9
|
vec4 tr;
|
|
10
10
|
vec4 br;
|
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
|
|
84
84
|
}
|
|
85
85
|
return mip;
|
|
86
|
-
}`,I);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var Ho=class extends ce{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Ho.VIEW}getShared(){return this.scope===Ho.WORLD}build(e,r,o,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,s){let l;switch(this.scope){case Ho.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Ho.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Ho.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},pt=Ho;pt.LOCAL="local",pt.WORLD="world",pt.VIEW="view",pt.NORMAL="normal";rt.addKeyword("viewNormal",function(){return new pt(pt.VIEW)});rt.addKeyword("localNormal",function(){return new pt(pt.NORMAL)});rt.addKeyword("worldNormal",function(){return new pt(pt.WORLD)});var Cr=class extends ce{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Cr.LOCAL}getType(){switch(this.scope){case Cr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Cr.LOCAL:case Cr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case Cr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case Cr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case Cr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Cr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},
|
|
86
|
+
}`,I);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var Ho=class extends ce{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Ho.VIEW}getShared(){return this.scope===Ho.WORLD}build(e,r,o,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,s){let l;switch(this.scope){case Ho.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Ho.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Ho.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},pt=Ho;pt.LOCAL="local",pt.WORLD="world",pt.VIEW="view",pt.NORMAL="normal";rt.addKeyword("viewNormal",function(){return new pt(pt.VIEW)});rt.addKeyword("localNormal",function(){return new pt(pt.NORMAL)});rt.addKeyword("worldNormal",function(){return new pt(pt.WORLD)});var Cr=class extends ce{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Cr.LOCAL}getType(){switch(this.scope){case Cr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Cr.LOCAL:case Cr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case Cr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case Cr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case Cr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Cr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},Bt=Cr;Bt.LOCAL="local",Bt.WORLD="world",Bt.VIEW="view",Bt.PROJECTION="projection";rt.addKeyword("position",function(){return new Bt});rt.addKeyword("worldPosition",function(){return new Bt(Bt.WORLD)});rt.addKeyword("viewPosition",function(){return new Bt(Bt.VIEW)});var ar=class extends ce{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??ar.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case ar.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case ar.VECTOR:{let s=new pt(pt.VIEW),l=e.context.roughness,c=s.build(e,"v3"),p=new Bt(Bt.VIEW).build(e,"v3"),a=l?l.build(e,"f"):void 0,u=`reflect( -normalize( ${p} ), ${c} )`;a&&(u=`normalize( mix( ${u}, ${c}, ${a} * ${a} ) )`);let d=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),i="reflectVec"):i=d;break}case ar.CUBE:{let s=new ar(ar.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case ar.SPHERE:{let l="normalize( ( viewMatrix * vec4( "+new ar(ar.VECTOR).build(e,"v3")+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${l};`),i="reflectSphereVec"):i=l;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)}},Mr=ar;Mr.CUBE="cube",Mr.SPHERE="sphere",Mr.VECTOR="vector";var il=class extends ce{constructor(e=new Lt,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new ei(this.value,r??new Mr(Mr.VECTOR),o),this.irradianceNode=new ei(this.value,new pt(pt.WORLD),new Z(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))}};var ch=require("three");var sl=class extends De{constructor(e=new ch.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new Mr,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"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l;s?l="texCubeBias( "+o+", "+i+", "+s+" )":l="texCube( "+o+", "+i+" )";let c={include:e.isShader("vertex"),ignoreCache:!0},p=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new Tt(new Ne("",p)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,p),e.removeContext(),e.format(l,p,r)}};var uh=["x","y","z","w"],sw=["float","vec2","vec3","vec4"],aw={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},lw={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[]"},al=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};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 s="";i=i.sort(t);for(let l=0;l<i.length;l++)i[l].src&&(s+=i[l].src+`
|
|
87
87
|
`);return s}}();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",`
|
|
88
88
|
// NOTE: Include Spline's blending modes. This could be part of BlendNode
|
|
89
89
|
#define SPE_BLENDING_NORMAL 0
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
`}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",s=""){let l=this.getVars(o),c=l[t];if(!c){let p=l.length;c={name:r||"node"+i+p+(s?"_"+s:""),type:e},l.push(c),l[t]=c}return c}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(`
|
|
129
129
|
`)}getVarListCode(t,e){e=e??"";let r="";for(let o=0,i=t.length;o<i;++o){let s=t[o],l=s.type,c=s.name,p=s.size,a=this.getFormatByType(l);if(a===void 0)throw new Error("Node pars "+a+" not found.");a.includes("[]")?r+=e+" "+a.substring(0,a.length-2)+" "+c+`[${p}];
|
|
130
130
|
`:r+=e+" "+a+" "+c+`;
|
|
131
|
-
`}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof ct?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,s){if(e.includes("[]")){let l=this.inputs.arrayUniforms,c=l.list.length,p=new Ki({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}else{let l=this.inputs.uniforms,c=l.list.length,p=new Ki({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}}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"?rt.get(t):t,this.context.include===!1)return t.name;t instanceof X?o=this.includes.functions:t instanceof _e?o=this.includes.consts:t instanceof Zn&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let s=i[t.name];if(s||(s=i[t.name]={node:t,deps:[]},i.push(s),s.src=t.build(this,"source")),t instanceof X&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let l=0;do this.include(t.includes[l++],e);while(l<t.includes.length)}return r&&(s.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 sw[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 lr.CubeReflectionMapping:case lr.CubeRefractionMapping:return new sl(r);case lr.CubeUVReflectionMapping:return new il(new
|
|
131
|
+
`}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof ct?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,s){if(e.includes("[]")){let l=this.inputs.arrayUniforms,c=l.list.length,p=new Ki({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}else{let l=this.inputs.uniforms,c=l.list.length,p=new Ki({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}}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"?rt.get(t):t,this.context.include===!1)return t.name;t instanceof X?o=this.includes.functions:t instanceof _e?o=this.includes.consts:t instanceof Zn&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let s=i[t.name];if(s||(s=i[t.name]={node:t,deps:[]},i.push(s),s.src=t.build(this,"source")),t instanceof X&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let l=0;do this.include(t.includes[l++],e);while(l<t.includes.length)}return r&&(s.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 sw[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 lr.CubeReflectionMapping:case lr.CubeRefractionMapping:return new sl(r);case lr.CubeUVReflectionMapping:return new il(new Lt(r));default:return new Lt(r)}else{if(r.isVector2)return new ut(r);if(r.isVector3)return new mt(r);if(r.isVector4)return new er(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 aw[t]||t}getFormatByType(t){return lw[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return uh[t]}getIndexByElement(t){return uh.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=lr.LinearEncoding,e===lr.LinearEncoding&&this.context.gamma&&(e=lr.sRGBEncoding),e}};var Ve=require("three");var Pe=class extends De{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof ot?e:new ot(e||0,r,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o),p=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let a=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${a};`)}return p?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,r)}};var ve=class extends De{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,i,s,l){return e.format(this.value.toString(),i,r)}};var ll=require("three");var Wo=class extends ct{constructor(){super("basic");this.nodeType="Basic";this.color=new Pe(5855577),this.shadingAlpha=new Z(1),this.shadingBlend=new ve(0)}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ll.UniformsUtils.merge([ll.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
|
|
132
132
|
`));let i=["#include <beginnormal_vertex>",`
|
|
133
133
|
#if !defined( USE_LAYER_DISPLACE )
|
|
134
134
|
#include <defaultnormal_vertex>
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
`];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(`
|
|
149
149
|
`)}else{this.color===void 0&&(this.color=new Pe(5855577)),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,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(`
|
|
150
150
|
`));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};`),i?l.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} );`):l.push("gl_FragColor = vec4("+o.result+", 1.0 );"),l.push("#include <fog_fragment>","#include <dithering_fragment>"),r=l.join(`
|
|
151
|
-
`)}return r}};var ds=require("three");var wo=class extends De{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
|
|
151
|
+
`)}return r}};var ds=require("three");var wo=class extends De{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 ph=require("three");var ti=class extends De{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new ph.Matrix3}generateReadonly(e,r,o,i,s,l){return e.format("mat3("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var cr=class extends De{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)}};var zc=require("three");var ur=class extends De{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof zc.Vector4?new Array(e).fill(r):new Array(e).fill(new zc.Vector4(0))}};var Qi=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(Qi||{}),xt=function(){let t=new X(`vec3 random3(vec3 c) {
|
|
152
152
|
float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
|
|
153
153
|
vec3 r;
|
|
154
154
|
r.z = fract(512.0*j);
|
|
@@ -380,14 +380,14 @@
|
|
|
380
380
|
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
|
|
381
381
|
}
|
|
382
382
|
`),p&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
|
|
383
|
-
`)}return r}};var
|
|
383
|
+
`)}return r}};var jc=class extends ce{constructor(e,r,o,i,s,l,c){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=o,this.intensity=i,this.factor=s,this.alpha=l,this.mode=c,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=e.include(jc.Nodes.fresnel),i=[];return i.push(this.color.build(e,"c")),i.push(this.bias.build(e,"f")),i.push(this.scale.build(e,"f")),i.push(this.intensity.build(e,"f")),i.push(this.factor.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ts=jc;ts.Nodes=function(){return{fresnel:new X(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
|
|
384
384
|
float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
|
|
385
385
|
|
|
386
386
|
float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
|
|
387
387
|
calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
|
|
388
388
|
accumAlpha += (1.0 - accumAlpha) * lalpha;
|
|
389
389
|
return color;
|
|
390
|
-
}`)}}();var
|
|
390
|
+
}`)}}();var Uc=class extends ce{constructor(e,r,o,i,s,l,c){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=r,this.wavelengths=o,this.noiseStrength=i,this.noiseScale=s,this.offset=l,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Uc.Nodes.rainbow),i=[];return i.push(this.filmThickness.build(e,"f")),i.push(this.movement.build(e,"f")),i.push(this.wavelengths.build(e,"v3")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},rs=Uc;rs.Nodes=function(){let e=new X(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
|
|
391
391
|
vec3 st = position / noiseScale;
|
|
392
392
|
vec3 q = vec3(simplex3d(st),
|
|
393
393
|
simplex3d(st + vec3(1.0)),
|
|
@@ -409,7 +409,7 @@
|
|
|
409
409
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
410
410
|
|
|
411
411
|
return res;
|
|
412
|
-
}`,[e])}}();var
|
|
412
|
+
}`,[e])}}();var kc=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u,d,f,m,h,g,b){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=e,this.contourColor=r,this.outlineWidth=o,this.contourWidth=i,this.contourThreshold=s,this.outlineThreshold=l,this.contourFrequency=c,this.outlineSmoothing=p,this.contourDirection=a,this.positionalLines=u,this.compensation=d,this.resolution=f,this.normalMap=m,this.depthMap=h,this.pixelRatio=g,this.alpha=b,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.extensions.derivatives=!0,this.firstTime){let o=this.outlineWidth.build(e,"f"),i=this.resolution.build(e,"v2"),s=this.compensation.build(e,"b"),l=this.pixelRatio.build(e,"f");e.addVertexParsVariable("randomColor","attribute vec3"),e.addVertexParsVariable("extrudeNormal","attribute vec3"),e.addVertexParsVariable(o,"uniform float"),e.addVertexParsVariable(i,"uniform vec2"),e.addVertexParsVariable(s,"uniform bool"),e.addVertexParsVariable(l,"uniform float"),e.addVertexParsVariable("vID","flat out float"),e.addFragmentParsVariable("vID","flat in float");let c=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexFinalCode(`
|
|
413
413
|
vID = randomColor.r;
|
|
414
414
|
if (${s}) {
|
|
415
415
|
vec4 ${c}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
|
|
@@ -423,7 +423,7 @@
|
|
|
423
423
|
// if this offset is the biggest of all the potential offsets
|
|
424
424
|
gl_Position = ${c}_clipPosition;
|
|
425
425
|
}
|
|
426
|
-
`)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(
|
|
426
|
+
`)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(kc.Nodes.outline),i=[];return i.push(this.outlineColor.build(e,"c")),i.push(this.contourColor.build(e,"c")),i.push(this.outlineWidth.build(e,"f")),i.push(this.contourWidth.build(e,"f")),i.push(this.contourThreshold.build(e,"f")),i.push(this.outlineThreshold.build(e,"f")),i.push(this.contourFrequency.build(e,"f")),i.push(this.outlineSmoothing.build(e,"f")),i.push(this.contourDirection.build(e,"v3")),i.push(this.positionalLines.build(e,"b")),i.push(this.resolution.build(e,"v2")),i.push(this.normalMap.getTexture(e,"t")),i.push(this.depthMap.getTexture(e,"t")),i.push(this.pixelRatio.build(e,"f")),i.push(this.compensation.build(e,"b")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},os=kc;os.Nodes=function(){let e=new X(`
|
|
427
427
|
float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
|
|
428
428
|
{
|
|
429
429
|
vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
|
|
@@ -563,7 +563,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
563
563
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
564
564
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
565
565
|
return result;
|
|
566
|
-
}`,[e])}}();var
|
|
566
|
+
}`,[e])}}();var Hc=class extends ce{constructor(e,r,o,i,s,l,c,p){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=r,this.roughness=o,this.transmissionSamplerSize=i,this.transmissionSamplerMap=s,this.transmissionDepthMap=l,this.aspectRatio=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(Hc.Nodes.transmission),i=[];return i.push(this.thickness.build(e,"f")),i.push(this.ior.build(e,"f")),i.push(this.roughness.build(e,"f")),i.push(this.transmissionSamplerSize.build(e,"v2")),i.push(this.transmissionSamplerMap.getTexture(e,"t")),i.push(this.transmissionDepthMap.getTexture(e,"t")),i.push(this.aspectRatio.build(e,"v2")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ns=Hc;ns.Nodes=function(){let e=new X(`
|
|
567
567
|
float gaussian(vec2 i) {
|
|
568
568
|
const float sigma = float(NUM_SAMPLES) * .25;
|
|
569
569
|
return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
|
|
@@ -705,7 +705,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
705
705
|
}`),i=new X(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
|
|
706
706
|
float dist = length(position - origin);
|
|
707
707
|
return ( dist - near ) / ( far - near );
|
|
708
|
-
}`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var ss=class extends ce{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
|
|
708
|
+
}`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var ss=class extends ce{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 Wc=(e=>(e.NOISE="noise",e.MAP="map",e))(Wc||{}),qc=class extends ce{constructor(e,r,o,i,s){super("v3");this.displacementTypeIndex=new ve(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=r,Object.values(Wc)[this.displacementTypeIndex.value]==="map"&&(this.mat=new ti(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=i,this.noiseFunctionIndex=s}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(Wc)[this.displacementTypeIndex.value]){case"map":{o=e.include(qc.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 l=Object.values(Qi)[this.noiseFunctionIndex.value],c=new X(`vec3 orthogonal(vec3 v) {
|
|
709
709
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
710
710
|
}`),p=new X(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
|
|
711
711
|
return p + n * ${l}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
|
|
@@ -725,7 +725,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
725
725
|
vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
726
726
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
727
727
|
return displaced_position;
|
|
728
|
-
}`,[p,c]);o=e.include(a),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},as
|
|
728
|
+
}`,[p,c]);o=e.include(a),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},as=qc;as.Nodes=function(){let e=new X(`vec3 orthogonal(vec3 v) {
|
|
729
729
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
730
730
|
}`),r=new X(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
|
|
731
731
|
vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
|
|
@@ -747,7 +747,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
747
747
|
vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
|
|
748
748
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
749
749
|
return displaced_position;
|
|
750
|
-
}`,[e,r])}}();var
|
|
750
|
+
}`,[e,r])}}();var $c=class extends ce{constructor(e,r,o,i,s,l,c,p){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=r,this.colors=o,this.steps=i,this.offset=s,this.morph=l,this.angle=c,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include($c.Nodes.gradient),i=[];return i.push(this.gradientType.build(e,"i")),i.push(this.smooth.build(e,"b")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.offset.build(e,"v2")),i.push(this.morph.build(e,"v2")),i.push(this.angle.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ls=$c;ls.Nodes=function(){return{gradient:new X(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
|
|
751
751
|
vec4 color = colors[0];
|
|
752
752
|
vec2 m = morph / vUv.xy;
|
|
753
753
|
vec2 rot = vec2( 0.5 + m.x, m.y );
|
|
@@ -882,14 +882,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
882
882
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
883
883
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
884
884
|
return col;
|
|
885
|
-
}`);return{cylindrical:e,spherical:r,uv:o}}();var
|
|
885
|
+
}`);return{cylindrical:e,spherical:r,uv:o}}();var Yc=class extends ce{constructor(e,r){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=r}generate(e,r){if(e.isShader("fragment")){let o=e.include(Yc.Nodes.customNormal),i=[];return i.push(this.cnormal.build(e,"v3")),i.push("normal"),i.push(this.alpha.build(e,"f")),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ps=Yc;ps.Nodes=function(){return{customNormal:new X(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
|
|
886
886
|
vec3 normal = packNormalToRGB( norm ).rgb;
|
|
887
887
|
normal *= step( vec3(0.5), cnormal );
|
|
888
888
|
|
|
889
889
|
accumAlpha += ( 1.0 - accumAlpha ) * alpha;
|
|
890
890
|
|
|
891
891
|
return normal;
|
|
892
|
-
}`)}}();var ht={normalRenderTarget:new
|
|
892
|
+
}`)}}();var ht={normalRenderTarget:new Lt,normalRenderTargetDepth:new Lt,transmissionRenderTarget:new Lt,transmissionSize:new ut(2048,2048),transmissionRenderTargetDepth:new Lt,pixelRatioNode:new Z(1),resolution:new ut,penumbraSize:new cr(5,.5)};for(let n of Object.values(ht))n.isRenderGlobal=!0;var fs=class extends ct{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Pe(5855577),this.emissive=new Pe(0),this.emissiveIntensity=new Z(1),this.shadingAlpha=new Z(1),this.shadingBlend=new ve(0)}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(ds.UniformsUtils.merge([ds.UniformsLib.fog,ds.UniformsLib.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(`
|
|
893
893
|
`));let i=["#include <beginnormal_vertex>",`
|
|
894
894
|
#ifndef USE_LAYER_DISPLACE
|
|
895
895
|
#include <defaultnormal_vertex>
|
|
@@ -1083,7 +1083,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1083
1083
|
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
|
|
1084
1084
|
}
|
|
1085
1085
|
`),p&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
|
|
1086
|
-
`)}return r}};var Ke=require("three");function
|
|
1086
|
+
`)}return r}};var Ke=require("three");function dh(n,t){switch(n.type){case"fresnel":return pw(n,t);case"gradient":return dw(n);case"depth":return fw(n);case"normal":return mw(n);case"noise":return hw(n,t);case"rainbow":return gw(n);case"toon":return yw(n,t);case"outline":return xw(n,t);case"transmission":return bw(n,t);case"color":return uw(n,t)}}function cw(n){return{type:n.type}}function Er(n){let{alpha:t,mode:e}=n;return{...cw(n),alpha:t,mode:e}}function uw(n,t){return{...Er(n),color:lt(n.color,t)}}function pw(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...Er(n),color:lt(s,t),bias:e,scale:r,intensity:o,factor:i}}function dw(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...Er(n),gradientType:t,smooth:e,colors:r.map(c=>new Ke.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Ke.Vector2(...s),morph:new Ke.Vector2(...l),angle:i}}function fw(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:p,smooth:a}=n;return{...Er(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Ke.Vector3(...s),direction:l?new Ke.Vector3(...l):new Ke.Vector3(1,0,0),colors:c.map(u=>u!==void 0?new Ke.Vector4(u[0],u[1],u[2],u[3]):new Ke.Vector4(0,0,0,0)),steps:p.slice(0,c.length),smooth:a}}function mw(n){let{cnormal:t}=n;return{...Er(n),cnormal:new Ke.Vector3(t[0],t[1],t[2])}}function hw(n,t){return{...Er(n),scale:n.scale,move:n.move,fA:new Ke.Vector2(...n.fA),fB:new Ke.Vector2(...n.fB),size:new Ke.Vector3(...n.size),distortion:new Ke.Vector2(...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}}function gw(n){return{...Er(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Ke.Vector3(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Ke.Vector3(...n.offset)}}function yw(n,t){return{...Er(n),positioning:n.positioning,colors:n.colors.map(e=>new Ke.Vector4(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Ke.Vector3(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:lt(n.shadowColor,t),offset:new Ke.Vector3(...n.offset)}}function xw(n,t){return{...Er(n),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:n.contourDirection,positionalLines:n.positionalLines,compensation:n.compensation}}function bw(n,t){return{...Er(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var _o=class extends ot{};var hh=require("three");var mh=require("three");var ul=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){}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))}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 Kc=class extends ul{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,e){URL.revokeObjectURL(e)}},Xc;function fh(n){return typeof n=="string"?n:(Xc||(Xc=new Kc),Xc.load(n))}var ni=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=fh(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let r of e){let o=this[r];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let r=new mh.Texture(this.img,void 0,t,t);return this.loaded&&(r.needsUpdate=!0),this[t]=r,r}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var qo=class extends ni{};var To=class extends De{};var Zc={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Qc={depth:["colors"]};function vw(n,t,e){let r=Zc[n.type],o=Qc[n.type];if(o!==void 0){let i=n.color;if(o.includes(t)){let s=i[t]?.value?.length;if(s!==void 0&&s!==e.length)return!0}}return r!==void 0?r.includes(t):!1}function Jc(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 s=i.image,l=t.image(s),c=r;c instanceof qo||c.image.dispose(),c.image=l}if("wrapping"in i){let s=r;s.wrap=i.wrapping}if("repeat"in i||"offset"in i){let s="mat",l=e.uniforms[`f${e.id}_${s}`];"repeat"in i&&(l.repeat=i.repeat),"offset"in i&&(l.offset=i.offset),l.updateMatrix()}return o}function gh(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(eu(i,e,r)){i==="visible"&&e.type==="light"&&(o=!0);continue}e.visible=r.visible;let l=e.uniforms[`f${e.id}_${i}`];if(!!l&&!(l instanceof To))switch(o=o||vw(e,i,s),l.constructor){case Pe:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof _o?l.value=new ot(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case er:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof _o?l.value=new ot(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case ut:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case mt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case Lt:{Jc(s,t,e);break}case ur:{l.value=s.map(c=>new hh.Vector4(...c));break}default:{l.value=s;break}}}return o}var tu=class extends ce{constructor(e,r,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=r,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(tu.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ys=tu;ys.Nodes=function(){return{matcap:new X(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
|
|
1087
1087
|
vec3 viewDir = normalize( vViewPosition );
|
|
1088
1088
|
vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
|
|
1089
1089
|
vec3 y = cross( viewDir, x );
|
|
@@ -1095,7 +1095,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1095
1095
|
|
|
1096
1096
|
return matcapColor.rgb;
|
|
1097
1097
|
}
|
|
1098
|
-
`)}}();var xs=class extends To{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var
|
|
1098
|
+
`)}}();var xs=class extends To{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var yh=require("three");var pl=class extends To{constructor(e){super("v3");this.image=e;this._value=new yh.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var ru=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=r,this.steps=o,this.source=i,this.isWorldSpace=s,this.noiseStrength=l,this.noiseScale=c,this.shadowColor=p,this.offset=a,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(ru.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},bs=ru;bs.Nodes=function(){let e=new X(`float rand(float n) {
|
|
1099
1099
|
return fract(sin(n) * 43758.5453123);
|
|
1100
1100
|
}`),r=new X(`float hash1(float p) {
|
|
1101
1101
|
p = fract(p * 0.011);
|
|
@@ -1331,8 +1331,8 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1331
1331
|
|
|
1332
1332
|
return color.xyz;
|
|
1333
1333
|
|
|
1334
|
-
}`,[xt.simplex,e,o,s])}}();var vh=require("three");function bh(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var dl=class extends ti{constructor(e,r){super(new vh.Matrix3);this.repeat=e;this.offset=r;bh(this.value,e,r)}updateMatrix(){bh(this.value,this.repeat,this.offset)}};var Br=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in r)tu(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Dr.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new xs(i,r.texture.wrapping),l=new pl(i),c=new dl(r.texture.repeat,r.texture.offset),p=new Z(r.crop?1:0),a=new ve(r.projection??0),u=new ve(["x","y","z"].indexOf(r.axis)??0),d=new ve(r.side??0),f=new ut(r.size?new Ve.Vector2(r.size[0],r.size[1]):new Ve.Vector2(100,100)),m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new cs(s,l,p,a,u,d,f,c,m,h),b=new Ne(g.calpha,"f");return new nt(t,e,r,{texture:s,textureSize:l,crop:p,projection:a,axis:u,side:d,size:f,mat:c,alpha:m,mode:h},g,h,b)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new xs(i,r.texture.wrapping),l=new Z(r.alpha??1),c=new ve(r.mode??0),p=new ys(s,l,c),a=new Ne(p.calpha,"f");return new nt(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new mt(new Ve.Vector3(...r.offset)),s=new Z(r.scale??10),l=new Z(r.intensity??8),c=new Z(r.movement??1),p=new ve(r.noiseType??0),a=new as(l,c,i,s,p);return new vs(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return ww(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?!0:yh(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?eu(o.props,r,this):!0;return!1}dispose(){}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}},nt=class extends Br{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},vs=class extends Br{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Dr=class extends Br{constructor(e,r,o,i,s){super(e,r,o,s);this.data=o;this.node=i}static createLigherLayer(e,r,o,i){let s,l=new Z(o.alpha),c=new ve(o.mode),p;if(!o.visible)s=new Wo,p={};else if(o.category==="lambert"){s=new fs;let a=new Pe(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new gs;let a=new Z(o.shininess??30),u=new Pe(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new ms;let a=new Z(o.roughness??.3),u=new Z(o.metalness??0),d=new Z(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else{s=new cl;let a=new Z(o.shininess??30),u=new Pe(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}return s.alpha=new Z(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Dr(e,r,o,s,p)}};function Sh(n){let t=n instanceof Br?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function Sw(n,t,e,r){switch(n.type){case"color":{let o=new Pe(r.color??5855577),i=new Z(r.alpha??1),s=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(r.mode??0);return o.alpha=i,new nt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Pe(r.color??16777215),i=new Z(r.bias??.1),s=new Z(r.scale??1),l=new Z(r.intensity??2),c=new Z(r.factor??1),p=new Z(r.alpha??1),a=new ve(r.mode??0),u=new ts(o,i,s,l,c,p,a),d=new Ne(u.calpha,"f");return new nt(t,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:p,mode:a},u,a,d)}case"rainbow":{let o=new Z(r.filmThickness??30),i=new Z(r.movement??0),s=new mt(r.wavelengths??new Ve.Vector3(0,0,0)),l=new Z(r.noiseStrength??0),c=new Z(r.noiseScale??1),p=new mt(r.offset??new Ve.Vector3(0,0,0)),a=new Z(r.alpha??1),u=new rs(o,i,s,l,c,p,a),d=new Ne(u.calpha,"f"),f=new ve(r.mode??0);return new nt(t,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:p,alpha:a,mode:f},u,f,d)}case"transmission":{let o=new Z(r.thickness??10),i=new Z(r.ior??1.5),s=new Z(r.roughness??.5),l=ht.transmissionSize,c=ht.transmissionRenderTarget,p=ht.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new ut(u/a,1):new ut(1,a/u),f=new Z(r.alpha??1),m=new ns(o,i,s,l,c,p,d,f),h=new Ne(m.calpha,"f"),g=new ve(r.mode??0);return new nt(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new ve(r.positioning??0),i;r.colors?i=new ur(r.colors.length,r.colors):(i=new ur(10,new Ve.Vector4(0,0,0,1)),i.value[1]=new Ve.Vector4(1,1,1,1));let s;r.steps?s=new cr(r.steps.length,r.steps):(s=new cr(10,1),s.value[0]=0);let l=new mt(r.source??new Ve.Vector3(0,0,0)),c=new wo(r.isWorldSpace??!0),p=new Z(r.noiseStrength??0),a=new Z(r.noiseScale??1),u=new er(r.shadowColor),d=new mt(r.offset??new Ve.Vector3(0,0,0)),f=new Z(r.alpha??1),m=new bs(o,i,s,l,c,p,a,u,d,f),h=new Ne(m.calpha,"f"),g=new ve(r.mode??0);return new nt(t,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:p,noiseScale:a,shadowColor:u,offset:d,alpha:f,mode:g},m,g,h)}case"outline":{let o=new Pe(r.outlineColor??16777215),i=new Pe(r.contourColor??16777215),s=new Z(r.outlineWidth??.1),l=new Z(r.contourWidth??.1),c=new Z(r.outlineThreshold??.1),p=new Z(r.contourThreshold??.1),a=new Z(r.outlineSmoothing??.1),u=new Z(r.contourFrequency??.1),d=new mt(r.contourDirections??new Ve.Vector3(0,1,0)),f=new wo(r.positionalLines??!1),m=new wo(r.compensation??!0),h=ht.normalRenderTarget,g=ht.normalRenderTargetDepth,b=ht.pixelRatioNode,x=ht.resolution,S=new Z(r.alpha??1),w=new os(o,i,s,l,c,p,a,u,d,f,m,x,h,g,b,S),v=new Ne(w.calpha,"f"),N=new ve(r.mode??0);return new nt(t,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:p,outlineSmoothing:a,contourFrequency:u,contourDirection:d,positionalLines:f,compensation:m,alpha:S,mode:N},w,N,v)}case"depth":{let o=new ve(r.gradientType??0),i=new wo(r.smooth??!1),s=new Z(r.near??50),l=new Z(r.far??200),c=new Z(r.isVector??1),p=new Z(r.isWorldSpace??0),a=new mt(r.origin??new Ve.Vector3),u=new mt(r.direction??new Ve.Vector3),d;r.colors?d=new ur(r.colors.length,r.colors):(d=new ur(2,new Ve.Vector4(0,0,0,1)),d.value[1]=new Ve.Vector4(1,1,1,1));let f;r.steps?f=new cr(r.steps.length,r.steps):(f=new cr(2,1),f.value[0]=0);let m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new is(o,i,s,l,c,p,a,u,d,f,m),b=new Ne(g.calpha,"f");return new nt(t,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:p,origin:a,direction:u,colors:d,steps:f,alpha:m,mode:h},g,h,b)}case"noise":{let o=new Z(r.scale??1),i=new mt(r.size??new Ve.Vector3(100,100,100)),s=new Z(r.move??1),l=new ut(r.fA??new Ve.Vector2(1.7,9.2)),c=new ut(r.fB??new Ve.Vector2(8.3,2.8)),p=new ut(r.distortion??new Ve.Vector2(1,1)),a=new er(r.colorA),u=new er(r.colorB),d=new er(r.colorC),f=new er(r.colorD),m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new ve(r.noiseType??0),b=new Ji(o,i,s,l,c,p,a,u,d,f,m,g),x=new Ne(b.calpha,"f");return new nt(t,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:p,colorA:a,colorB:u,colorC:d,colorD:f,alpha:m,mode:h,noiseType:g},b,h,x)}case"normal":{let o=new mt(r.cnormal??new Ve.Vector3(1,1,1)),i=new Z(r.alpha??1),s=new ve(r.mode??0),l=new ps(o,i),c=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new nt(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new ve(r.gradientType??0),i=new wo(r.smooth??!1),s;r.colors?s=new ur(r.colors.length,r.colors):(s=new ur(10,new Ve.Vector4(0,0,0,1)),s.value[1]=new Ve.Vector4(1,1,1,1));let l;r.steps?l=new cr(r.steps.length,r.steps):(l=new cr(10,1),l.value[0]=0);let c=new ut(r.offset??new Ve.Vector2(0,0)),p=new ut(r.morph??new Ve.Vector2(0,0)),a=new Z(r.angle??0),u=new Z(r.alpha??1),d=new ve(r.mode??0),f=new ls(o,i,s,l,c,p,a,u),m=new Ne(f.calpha,"f");return new nt(t,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:p,angle:a,alpha:u,mode:d},f,d,m)}default:{let o=new Pe(1,0,0,1),i=new Z(1),s=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(0);return o.alpha=i,new nt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function ww(n,t,e,r){let o=fh(e,r);return Sw(e,n,t,o)}function tu(n,t,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n==="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Ut=class extends fl.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??jt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Br.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r)}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(r=>r instanceof Dr),this.lightLayer===void 0&&(this.lightLayer=new Dr(0,"",{...zt.defaultData("light","phong"),visible:!1},new Wo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Br.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,s)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let s=this.layers.findIndex(c=>c.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(l=>l.uuid===i);if(s){let l=r.layers.data(i);if(s.updateByOp({...e,path:e.path.slice(2)},l,o)){let p=Br.create(this.layerIdGen++,i,l,o);this.layers.splice(this.layers.findIndex(a=>a.uuid===i),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof nt),r=this.layers.findIndex(o=>o instanceof Dr);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let s=this.layers[i];s instanceof nt&&(o=new ss(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ne("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Dr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof nt&&(e=new ss(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 vs);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Lt(r,e[o].position,Lt.ADD),r=new Lt(r,new Z(.5).setReadonly(!0),Lt.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,r){this.build({renderer:r}),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,s,l)=>Math.min(Math.max(i,s),l);for(let i of this.layers)if(i.type==="displace"){let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}customProgramCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.visible?r.category.toUpperCase():"Basic"}"`;else{let o=(Qc[r.type]??[]).map(l=>r[l]),i=(Jc[r.type]??[]).map(l=>r[l]?.length??0),s=[...o,...i];s.length?e+=`["${r.type}", "${s.join('","')}"],`:e+=`"${r.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){e=e??{};let r=e.builder??new al;return this.lights=this.lightLayer.data.visible,r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>fl.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ut.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});var kt=require("three");function _w(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes.position.array,r=n.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=new kt.Vector3(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new kt.Vector3})}t.forEach((i,s)=>{for(let l of i.normals)i.result.add(l);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=t.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new kt.Float32BufferAttribute(o,3))}function Tw(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=new kt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;n.geometry.setAttribute("extrudeNormal",new kt.Float32BufferAttribute(e,3))}function Gr(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Ut)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?Tw(n):_w(n)}function Rr(n){if(!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(n.uuid.replace(/\D/g,"")),o=[kt.MathUtils.seededRandom(r),kt.MathUtils.seededRandom(r+1e4),kt.MathUtils.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new kt.BufferAttribute(e,3))}var wh=require("three");var Vr=(n,t)=>class extends n{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=lt(o.color,i)),o.intensity!==void 0&&(s.intensity=o.intensity),o.depth!==void 0&&(s.shadow.camera.far=o.depth,s.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var Qr=class extends Vr(Kt(wh.Group),Rn){constructor(){super(...arguments);this.objectType="EmptyObject"}createFromState(e,r){let o=new Qr().fromState(r);return o.uuid=e,o.objectHelper.update(),o.setFromClonerState(r.cloner||null),o}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Xr(this,e)),this.cloner.fromClonerState(e))}};function Aw(n){let t=n.parent;for(;t;){if(t instanceof Qr&&t.cloner?.parameters.hideBase)return!0;t=t.parent}return!1}var Ze=class extends Kt(ml.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new ml.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0||Aw(this)}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=Dc[o.userData.type],s=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,l=i.build(i.normalizeInputs(e,s)),c=o.uuid;this.geometry.dispose(),this.geometry=l,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),Gr(this),o.getAttribute("randomColor")&&Rr(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Yi(r),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new Xr(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Xr(this,e)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(sr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),Sr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)vr(e)&&(e.freeBooleanPointer(),Sr(e)&&e.invalidateUpstreamBooleanData())}};var Nw=new Ao.Vector3(0,0,1),_h=new Ao.Vector3,Th=new Ao.Vector3,Ah=new Ao.Matrix3,ii=class extends Ze{constructor(e=ft.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new Ao.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,r){if(super.updateGeometry(e,r),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Ah.getNormalMatrix(this.matrixWorld),_h.copy(Nw).applyMatrix3(Ah).normalize(),Th.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(_h,Th)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=ft.create(Object.assign({},i,{shape:r})),l=new ii(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){Ze.prototype.raycast.call(this,e,r)}};var si=new Ue.Vector3,nu=new Ue.Vector3,Jr=class extends Vr(Kt(Ue.Camera),Ha){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=Lo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new Ue.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new Ue.PerspectiveCamera(o,e/r,i??50,s),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.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,r){let o=new Jr().fromState(r);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}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){super.lookAt(e),this.getWorldPosition(si),this.targetOffset=si.distanceTo(e)}getTarget(e=new Ue.Vector3){return this.getWorldDirection(nu),this.getWorldPosition(si),nu.multiplyScalar(this.targetOffset),e.copy(si).add(nu),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(si),si.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new Ue.Quaternion),r=new Ue.Vector3(0,0,1).applyQuaternion(e),o=new Ue.Vector3().copy(Ue.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new Ue.Vector3().copy(Ue.Object3D.DefaultUp).projectOnPlane(r),s=new Ue.Vector3().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new Ue.Vector3),i=e.getWorldDirection(new Ue.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Ue.Vector3),i=this.getWorldDirection(new Ue.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(i),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,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,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,s,l):this.orthoCamera.setViewOffset(e,r,o,i,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}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.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 Nn(r,e)}fromCameraState(e){let{orthographic:r,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),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(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var Ss=require("three");var Nh=new Ss.Matrix4;var hl=class extends Ze{constructor(e=new Ss.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];Sr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(Ef(s)&&s.booleanExclude===!1&&s.geometry.attributes.position?.count>0&&s.geometry.drawRange.count>0){if(s.booleanMeshSetAddress===-1){if((s.geometry.index??s.geometry.getAttribute("position")).count/3<15e5&&(s.booleanMeshSetAddress=sr.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;sr.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else Sr(s)&&s.needsTransformForDownstream===!0?(sr.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Nh.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),sr.transformMeshSet(s.booleanMeshSetAddress,Nh),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return sr.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Ss.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=sr.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Gr(this),Rr(this)}updateGeometry(e,r){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var $o=require("three");var ai=class extends Vr(Kt($o.DirectionalLight),Gn){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new $o.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new ai().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof $o.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof $o.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof $o.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&Cf(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var bt=require("three");var li=class extends Vr(Kt(bt.PointLight),Vn){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new bt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new bt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new bt.Box3(i,s),c=new bt.Box3Helper(l,new bt.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let i=new li().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof bt.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof bt.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof bt.Box3Helper){let o=this.shadow.camera,i=new bt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new bt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(i,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Bt=require("three");var Ih=new Bt.Vector3,Ph=new Bt.Vector3,Oh=new Bt.Quaternion,ci=class extends Vr(Kt(Bt.SpotLight),Vi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=Bt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Bt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new ci().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Bt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Bt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Bt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Ph.setFromMatrixPosition(this.matrixWorld),Oh.setFromRotationMatrix(this.matrixWorld),Ih.copy(this.up).applyQuaternion(Oh).negate().multiplyScalar(this.distance),this.target.position.copy(Ph).add(Ih),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Ch=n=>n.tagName==="VIDEO",ui=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Ch(s)?i=s.videoWidth/s.videoHeight:i=s.width/s.height,o>i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*i/o):r.repeat.set(1,1*i/o)),o<i&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/i*-1,1):r.repeat.set(1*o/i,1)),o==i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,i=r.image!==void 0?r.image.width/r.image.height:1,s;o>i?s={x:1,y:i/o}:o<i?s={x:o/i,y:1}:s={x:1,y:1},r.repeat.set(s.x,s.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let o=r.layers;for(let i=0;i<o.length;i++){let s=o[i];Sh(s)&&ui.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Ch(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,o.geometry.type.includes("Shape")?(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/i):r.repeat.set(1/t,1/e*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*i/s*-1,1/e):r.repeat.set(1/t*i/s,1/e)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/i):r.repeat.set(1,1*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*i/s*-1,1):r.repeat.set(1*i/s,1)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var gl=class extends Ze{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,r){super.updateGeometry(e,r),this.material.layers&&ui.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var pi=class extends Ze{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var yl=class extends pi{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Lh,_s=new Promise(n=>{Lh=n}),Mh=!1;async function Eh(){if(Mh)return;let n=await import("./opentype.js");Lh(n),Mh=!0}var Ts=class{async load(t,e,r=()=>{}){let{load:o}=await _s;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await _s;try{return e(t)}catch(r){console.error(r)}}};async function Iw(n){return await(await fetch(n)).arrayBuffer()}var Pw=new Ts;async function iu(n){let t,e,r=!1;if(n.url?(t=await Iw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await Pw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var di=require("three");var Bh=new di.Vector3,Dh=new di.Matrix4,Gh=new di.Ray;function Rh(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var xl=class extends Ze{constructor(e,r,o){super(new Xn(r.geometry,o),o.material(r.material));this.data=r;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.name=r.name,this.uuid=e,this.updateState(r,o)}async updateGeometry(e,r){let o=e.parameters,i={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:i,type:"TextGeometry"},r&&(o.font||!this.geometry.font&&r.getFont(i.font))&&await this.geometry.updateFont(o.font??i.font,r),await this.geometry.update(i),Gr(this),Rr(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateState(e,r){this.data=e,this.material=r.material(e.material),this.fromState(e,r),this.updateGeometry({parameters:e.geometry},r)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.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(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(Dh.copy(o).invert(),Gh.copy(e.ray).applyMatrix4(Dh),Gh.intersectBox(this.singleBBox,Bh)){let i=Bh.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var Tt=require("three");var jh=Ls(Fh());var su;En.then(n=>{su=n});var Uh=new Tt.Matrix4,Ow=new Tt.Matrix4,Cw=new Tt.Matrix4,pr=new Tt.Box3,No=new Tt.Vector3,Mw=new Tt.Matrix4,Lw=new Tt.Matrix4;var fi=class extends Ze{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new Tt.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new Tt.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=Jt.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new fi(i,s,l||void 0,c);return r.geometry.phongAngle!==void 0&&(p.phongAngle=r.geometry.phongAngle),p.calcBoundingBox(),p.freeSubdivPointer(),p.uuid=e,p.fromState(r),p}buildFromStore(e,r){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=Jt.build(e,r,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Gr(this),Rr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Jt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Jt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Jt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Jt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,Ze.prototype.raycast.call(this,e,r),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:s}=(0,jh.SVD)(r),l=Uh.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),c=Ow.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),p=Cw.copy(c).transpose();this.shearScale=Mw.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=Lw.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,p),s.every(a=>Math.abs(s[0]-a)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new Tt.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;pr.setFromBufferAttribute(r),pr.getCenter(o),e.boundingSphere.radius=o.distanceTo(pr.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),pr.getSize(No);let i={width:No.x,height:No.y,depth:No.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;pr.min.set(e[0],e[2],e[4]),pr.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(pr.min.applyMatrix4(this.shearScaleInv),pr.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new Tt.Sphere);let o=r.boundingSphere.center;pr.getCenter(o),r.boundingSphere.radius=o.distanceTo(pr.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),pr.getSize(No);let i={width:No.x,height:No.y,depth:No.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(su.free_bvh(this.subdivPointer),su.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,r){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,zh(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(zh(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function zh(n,t,e,r){let o=n.position.array,i=n.normal.array,s=Uh.makeScale(t,e,r).invert().elements,l,c,p;for(var a=0,u=o.length;a<u;a+=3)o[a]*=t,o[a+1]*=e,o[a+2]*=r,l=i[a],c=i[a+1],p=i[a+2],i[a]=s[0]*l+s[4]*c+s[8]*p,i[a+1]=s[1]*l+s[5]*c+s[9]*p,i[a+2]=s[2]*l+s[6]*c+s[10]*p}var Io=require("three");function kh(n,t){t.flatShading!==void 0&&(n.flatShading=t.flatShading,n.needsUpdate=!0),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?n.side=Io.FrontSide:t.side===1?n.side=Io.BackSide:n.side=Io.DoubleSide)}function Ew(n,t){if(Array.isArray(n.material))for(let e of n.material)kh(e,t);else{let e=n.material;kh(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Hh(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=fi.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new Io.BufferGeometry:rl(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);On.is2DParametricMesh(o.userData.type)?r=new gl(o,i):o?.userData.type==="VectorGeometry"?r=new ii(o,i):t.geometry.type==="NonParametricGeometry"?r=new yl(o,i):t.geometry.type==="BooleanGeometry"?(r=new hl(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new pi(o,i),r.uuid=n,r.fromState(t,e)}return Ew(r,t),r}function Wh(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new xl(n,t,e):Hh(n,t,e):t.type==="Empty"?new Qr().createFromState(n,t):t.type==="PointLight"?li.createFromState(n,t,e):t.type==="SpotLight"?ci.createFromState(n,t,e):t.type==="DirectionalLight"?ai.createFromState(n,t,e):nn.is(t.type)?Jr.createFromState(n,t):(console.error(t),new Qr)}var Yo=class extends Ut{};var eo=require("three");function qh(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,Rr(n),Gr(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function $h(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");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),e}function Yh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eo.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)qh(e,e.material[r])&&(t=!0);else qh(e,e.material)&&(t=!0)}),t}function Xh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eo.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)$h(e,e.material[r])&&(t=!0);else $h(e,e.material)&&(t=!0)}),t}function Kh(n){"material"in n&&Dw(n.material),"geometry"in n&&n.geometry.dispose()}function Dw(n){mf(n).forEach(t=>{t instanceof Yo||t.dispose()})}var Gw=new eo.Raycaster,Rw=new eo.Matrix4,Vw=new eo.Ray;function Zh(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=Rw.copy(o.matrixWorld).invert(),s=Vw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=Gw;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var Qh=new Fr.Vector3,au=class extends Ra(Fr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Fr.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new ot(1,1,1,1);this.entityByUuid={};this.ambientLight=new Fr.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.objectsData=e.objects.map(({data:o,id:i})=>({data:o,id:i})),this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Xh(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Yh(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(lt(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof Jr&&this.switchActiveCamera(o)}this.traverse(o=>{Sr(o)&&o.recomputeBoolean()}),setTimeout(()=>this.updateCloner())}clearScene(){this.traverseEntity(e=>{Kh(e)});for(let e of this.children)Xt(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=Jr.createFromState(au.PERSONAL_CAMERA_ID,{...Ia.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=i=>{for(let s of i.children)Xt(s)&&!s.raycastLock&&s.visible&&((vr(s)||Da(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),Zh(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Xt(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Xt(r)&&r.visible&&r.traverseVisibleEntity(e)}updateFog(e,r){this.enableFog=e.enabled,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}dispose(){this.clearScene()}updateAmbientLight(e,r){Of(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=lt(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,r,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,r,o)}updateObjectCloner(e){if(e.parameters.type==="toObject"){let r=e.parameters.toObject.object;if(!r)return;let o=this.find(r);if(o){let i,s=this.objectsData.find(l=>l.id===o.uuid);if(s&&(i=s.data),o.objectType==="SubdivObject"){let l=o;i&&!l.subdivPointer&&l.buildFromStore(i.geometry)}e.setObjectForSample(o),e.update()}}}updateCloner(){this.traverse(e=>{let r=e;r.cloner&&(r.cloner._updateCount(0),r.cloner.update(),this.updateObjectCloner(r.cloner))})}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,i,s){let l=Wh(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),Sr(i)&&vr(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),"cloner"in l&&(l.cloner?._updateCount(0),l.cloner?.update()),l}getCenter(e){let r=[];for(let i=0,s=e.length;i<s;++i){let{id:l,recursive:c}=e[i],p=this.find(l),a=c?p.recursiveBBox:p.singleBBox;r.push(...a.vertices)}let o=new Fr.Box3;return o.setFromPoints(r),o.getCenter(Qh),Qh}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 Ze)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Ut&&e(r.material[o]);else r.material instanceof Ut&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,i;e>=r?(o=r/e,i=1):(o=1,i=e/r),this.traverseMaterial(s=>{s.getLayersOfType("transmission").forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=o,c.uniforms[`f${c.id}_aspectRatio`].value.y=i})})}},As=au;As.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var rg=Ls(Jh());var eg=new Map;function tg(n){if(typeof n=="string")return n;let t=eg.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},eg.set(n,t)),t.url}var mi=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:tg(t),format:"wav"},this.sound=new rg.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()}};var it=require("three"),Sl=class{constructor(){this.type="ShapePath";this.color=new it.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new it.Path,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,s){return this.currentPath?.bezierCurveTo(t,e,r,o,i,s),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(h,g,b,x){let S=h.x,w=g.x,v=b.x,N=x.x,_=h.y,y=g.y,I=b.y,A=x.y,P=(N-v)*(_-I)-(A-I)*(S-v),T=(w-S)*(_-I)-(y-_)*(S-v),C=(A-I)*(w-S)-(N-v)*(y-_),L=P/C,j=T/C;if(C===0&&P!==0||L<=0||L>=1||j<0||j>1)return null;if(P===0&&C===0){for(let Y=0;Y<2;Y++)if(i(Y===0?b:x,h,g),r.loc===e.ORIGIN){let te=Y===0?b:x;return{x:te.x,y:te.y,t:r.t}}else if(r.loc===e.BETWEEN){let te=+(S+r.t*(w-S)).toPrecision(10),ie=+(_+r.t*(y-_)).toPrecision(10);return{x:te,y:ie,t:r.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?b:x,h,g),r.loc===e.ORIGIN){let U=ie===0?b:x;return{x:U.x,y:U.y,t:r.t}}let Y=+(S+L*(w-S)).toPrecision(10),te=+(_+L*(y-_)).toPrecision(10);return{x:Y,y:te,t:L}}}function i(h,g,b){let x=b.x-g.x,S=b.y-g.y,w=h.x-g.x,v=h.y-g.y,N=x*v-w*S;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===b.x&&h.y===b.y){r.loc=e.DESTINATION,r.t=1;return}if(N<-Number.EPSILON){r.loc=e.LEFT;return}if(N>Number.EPSILON){r.loc=e.RIGHT;return}if(x*w<0||S*v<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+v*v)){r.loc=e.BEYOND;return}let _;x!==0?_=w/x:_=v/S,r.loc=e.BETWEEN,r.t=_}function s(h,g){let b=[],x=[];for(let S=1;S<h.length;S++){let w=h[S-1],v=h[S];for(let N=1;N<g.length;N++){let _=g[N-1],y=g[N],I=o(w,v,_,y);I!==null&&b.find(A=>A.t<=I.t+Number.EPSILON&&A.t>=I.t-Number.EPSILON)===void 0&&(b.push(I),x.push(new it.Vector2(I.x,I.y)))}}return x}function l(h,g,b){let x=new it.Vector2;g.getCenter(x);let S=[];return b.forEach(w=>{w.boundingBox.containsPoint(x)&&s(h,w.points).forEach(N=>{S.push({identifier:w.identifier,isCW:w.isCW,point:N})})}),S.sort((w,v)=>w.point.x-v.point.x),S}function c(h,g,b,x,S){(S==null||S==="")&&(S="nonzero");let w=new it.Vector2;h.boundingBox.getCenter(w);let v=[new it.Vector2(b,w.y),new it.Vector2(x,w.y)],N=l(v,h.boundingBox,g);N.sort((T,C)=>T.point.x-C.point.x);let _=[],y=[];N.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let I=_[0].point.x,A=[],P=0;for(;P<y.length&&y[P].point.x<I;)A.length>0&&A[A.length-1]===y[P].identifier?A.pop():A.push(y[P].identifier),P++;if(A.push(h.identifier),S==="evenodd"){let T=A.length%2===0,C=A[A.length-2];return{identifier:h.identifier,isHole:T,for:C}}else if(S==="nonzero"){let T=!0,C=null,L=null;for(let j=0;j<A.length;j++){let Y=A[j];g[Y]&&(T?(L=g[Y].isCW,T=!1,C=Y):L!==g[Y].isCW&&(L=g[Y].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:C}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),b=-999999999,x=999999999,S=-999999999,w=999999999;for(let v=0;v<g.length;v++){let N=g[v];N.y>b&&(b=N.y),N.y<x&&(x=N.y),N.x>S&&(S=N.x),N.x<w&&(w=N.x)}u<=S&&(u=S+1),a>=w&&(a=w-1),g.length&&d.push({curves:h.curves,points:g,isCW:it.ShapeUtils.isClockWise(g),identifier:p++,boundingBox:new it.Box2(new it.Vector2(w,x),new it.Vector2(S,b))})});let f=d.map(h=>c(h,d,a,u,this.userData?.style.fillRule)),m=[];return d.forEach(h=>{let g=f[h.identifier];if(g&&!g.isHole){let b=new it.Shape;b.curves=h.curves,f.filter(S=>S?.isHole&&S.for===h.identifier).forEach(S=>{if(S){let w=d[S.identifier],v=new it.Path;v.curves=w.curves,b.holes.push(v)}}),m.push(b)}}),m}};var hi=require("three");var og=require("three/examples/jsm/loaders/DRACOLoader.js");var Po;function Fw(){return Po||(Po=new og.DRACOLoader,Po.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Po.decoderPending}async function zw(n){if(Po){let t={attributeIDs:Po.defaultAttributeIDs,attributeTypes:Po.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await Po.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 ng(n,t){let[e,r]=Ml(Xs.deserialize(new Uint8Array(n)));Sf(e);let o=[];e.scene.objects.traverse((i,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await Fw();for(let i of o){let s=await zw(Nt(i.geometry.data.draco));if(s){s.index&&(i.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:p,itemSize:a})=>{l[c]={array:p,itemSize:a,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=l,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}function jw(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var wl=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=iu(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=iu(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(t,e,r){let{Bidi:o}=await _s,i=new o,s=u=>t.charToGlyphIndex(u.char);i.registerModifier("glyphIndex",null,s),i.applyFeatures(t,t.defaultRenderOptions.features),i.getTextGlyphs(e);let l=i.tokenizer.tokens,c=[],p=0,a=r.length===l.length;for(let u=0;u<r.length;u++){let d=r[u].index,f=String.fromCharCode(r[u].unicode),m=l[p];if(jw(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",b=[m.state.glyphIndex],x=[],S=!1;for(;!S;)p++,g=e.charAt(p),h+=g,b.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(S=!0),p>e.length&&(S=!0);c.push({char:f,index:d,replacements:b,replacementChars:Array.from(h)}),p++}}return c}async generateShapes(t,e){await this._loadingPromise;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=t.map(x=>this.getTextWidth(x,e)),l=e.width,c=this.getCharWidth(`
|
|
1334
|
+
}`,[xt.simplex,e,o,s])}}();var bh=require("three");function xh(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var dl=class extends ti{constructor(e,r){super(new bh.Matrix3);this.repeat=e;this.offset=r;xh(this.value,e,r)}updateMatrix(){xh(this.value,this.repeat,this.offset)}};var Br=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in r)eu(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Dr.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new xs(i,r.texture.wrapping),l=new pl(i),c=new dl(r.texture.repeat,r.texture.offset),p=new Z(r.crop?1:0),a=new ve(r.projection??0),u=new ve(["x","y","z"].indexOf(r.axis)??0),d=new ve(r.side??0),f=new ut(r.size?new Ve.Vector2(r.size[0],r.size[1]):new Ve.Vector2(100,100)),m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new cs(s,l,p,a,u,d,f,c,m,h),b=new Ne(g.calpha,"f");return new nt(t,e,r,{texture:s,textureSize:l,crop:p,projection:a,axis:u,side:d,size:f,mat:c,alpha:m,mode:h},g,h,b)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new xs(i,r.texture.wrapping),l=new Z(r.alpha??1),c=new ve(r.mode??0),p=new ys(s,l,c),a=new Ne(p.calpha,"f");return new nt(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new mt(new Ve.Vector3(...r.offset)),s=new Z(r.scale??10),l=new Z(r.intensity??8),c=new Z(r.movement??1),p=new ve(r.noiseType??0),a=new as(l,c,i,s,p);return new vs(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return ww(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?!0:gh(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?Jc(o.props,r,this):!0;return!1}dispose(){}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}},nt=class extends Br{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},vs=class extends Br{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Dr=class extends Br{constructor(e,r,o,i,s){super(e,r,o,s);this.data=o;this.node=i}static createLigherLayer(e,r,o,i){let s,l=new Z(o.alpha),c=new ve(o.mode),p;if(!o.visible)s=new Wo,p={};else if(o.category==="lambert"){s=new fs;let a=new Pe(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new gs;let a=new Z(o.shininess??30),u=new Pe(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new ms;let a=new Z(o.roughness??.3),u=new Z(o.metalness??0),d=new Z(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else{s=new cl;let a=new Z(o.shininess??30),u=new Pe(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}return s.alpha=new Z(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Dr(e,r,o,s,p)}};function vh(n){let t=n instanceof Br?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function Sw(n,t,e,r){switch(n.type){case"color":{let o=new Pe(r.color??5855577),i=new Z(r.alpha??1),s=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(r.mode??0);return o.alpha=i,new nt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Pe(r.color??16777215),i=new Z(r.bias??.1),s=new Z(r.scale??1),l=new Z(r.intensity??2),c=new Z(r.factor??1),p=new Z(r.alpha??1),a=new ve(r.mode??0),u=new ts(o,i,s,l,c,p,a),d=new Ne(u.calpha,"f");return new nt(t,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:p,mode:a},u,a,d)}case"rainbow":{let o=new Z(r.filmThickness??30),i=new Z(r.movement??0),s=new mt(r.wavelengths??new Ve.Vector3(0,0,0)),l=new Z(r.noiseStrength??0),c=new Z(r.noiseScale??1),p=new mt(r.offset??new Ve.Vector3(0,0,0)),a=new Z(r.alpha??1),u=new rs(o,i,s,l,c,p,a),d=new Ne(u.calpha,"f"),f=new ve(r.mode??0);return new nt(t,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:p,alpha:a,mode:f},u,f,d)}case"transmission":{let o=new Z(r.thickness??10),i=new Z(r.ior??1.5),s=new Z(r.roughness??.5),l=ht.transmissionSize,c=ht.transmissionRenderTarget,p=ht.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new ut(u/a,1):new ut(1,a/u),f=new Z(r.alpha??1),m=new ns(o,i,s,l,c,p,d,f),h=new Ne(m.calpha,"f"),g=new ve(r.mode??0);return new nt(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new ve(r.positioning??0),i;r.colors?i=new ur(r.colors.length,r.colors):(i=new ur(10,new Ve.Vector4(0,0,0,1)),i.value[1]=new Ve.Vector4(1,1,1,1));let s;r.steps?s=new cr(r.steps.length,r.steps):(s=new cr(10,1),s.value[0]=0);let l=new mt(r.source??new Ve.Vector3(0,0,0)),c=new wo(r.isWorldSpace??!0),p=new Z(r.noiseStrength??0),a=new Z(r.noiseScale??1),u=new er(r.shadowColor),d=new mt(r.offset??new Ve.Vector3(0,0,0)),f=new Z(r.alpha??1),m=new bs(o,i,s,l,c,p,a,u,d,f),h=new Ne(m.calpha,"f"),g=new ve(r.mode??0);return new nt(t,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:p,noiseScale:a,shadowColor:u,offset:d,alpha:f,mode:g},m,g,h)}case"outline":{let o=new Pe(r.outlineColor??16777215),i=new Pe(r.contourColor??16777215),s=new Z(r.outlineWidth??.1),l=new Z(r.contourWidth??.1),c=new Z(r.outlineThreshold??.1),p=new Z(r.contourThreshold??.1),a=new Z(r.outlineSmoothing??.1),u=new Z(r.contourFrequency??.1),d=new mt(r.contourDirections??new Ve.Vector3(0,1,0)),f=new wo(r.positionalLines??!1),m=new wo(r.compensation??!0),h=ht.normalRenderTarget,g=ht.normalRenderTargetDepth,b=ht.pixelRatioNode,x=ht.resolution,S=new Z(r.alpha??1),w=new os(o,i,s,l,c,p,a,u,d,f,m,x,h,g,b,S),v=new Ne(w.calpha,"f"),N=new ve(r.mode??0);return new nt(t,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:p,outlineSmoothing:a,contourFrequency:u,contourDirection:d,positionalLines:f,compensation:m,alpha:S,mode:N},w,N,v)}case"depth":{let o=new ve(r.gradientType??0),i=new wo(r.smooth??!1),s=new Z(r.near??50),l=new Z(r.far??200),c=new Z(r.isVector??1),p=new Z(r.isWorldSpace??0),a=new mt(r.origin??new Ve.Vector3),u=new mt(r.direction??new Ve.Vector3),d;r.colors?d=new ur(r.colors.length,r.colors):(d=new ur(2,new Ve.Vector4(0,0,0,1)),d.value[1]=new Ve.Vector4(1,1,1,1));let f;r.steps?f=new cr(r.steps.length,r.steps):(f=new cr(2,1),f.value[0]=0);let m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new is(o,i,s,l,c,p,a,u,d,f,m),b=new Ne(g.calpha,"f");return new nt(t,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:p,origin:a,direction:u,colors:d,steps:f,alpha:m,mode:h},g,h,b)}case"noise":{let o=new Z(r.scale??1),i=new mt(r.size??new Ve.Vector3(100,100,100)),s=new Z(r.move??1),l=new ut(r.fA??new Ve.Vector2(1.7,9.2)),c=new ut(r.fB??new Ve.Vector2(8.3,2.8)),p=new ut(r.distortion??new Ve.Vector2(1,1)),a=new er(r.colorA),u=new er(r.colorB),d=new er(r.colorC),f=new er(r.colorD),m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new ve(r.noiseType??0),b=new Ji(o,i,s,l,c,p,a,u,d,f,m,g),x=new Ne(b.calpha,"f");return new nt(t,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:p,colorA:a,colorB:u,colorC:d,colorD:f,alpha:m,mode:h,noiseType:g},b,h,x)}case"normal":{let o=new mt(r.cnormal??new Ve.Vector3(1,1,1)),i=new Z(r.alpha??1),s=new ve(r.mode??0),l=new ps(o,i),c=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new nt(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new ve(r.gradientType??0),i=new wo(r.smooth??!1),s;r.colors?s=new ur(r.colors.length,r.colors):(s=new ur(10,new Ve.Vector4(0,0,0,1)),s.value[1]=new Ve.Vector4(1,1,1,1));let l;r.steps?l=new cr(r.steps.length,r.steps):(l=new cr(10,1),l.value[0]=0);let c=new ut(r.offset??new Ve.Vector2(0,0)),p=new ut(r.morph??new Ve.Vector2(0,0)),a=new Z(r.angle??0),u=new Z(r.alpha??1),d=new ve(r.mode??0),f=new ls(o,i,s,l,c,p,a,u),m=new Ne(f.calpha,"f");return new nt(t,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:p,angle:a,alpha:u,mode:d},f,d,m)}default:{let o=new Pe(1,0,0,1),i=new Z(1),s=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(0);return o.alpha=i,new nt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function ww(n,t,e,r){let o=dh(e,r);return Sw(e,n,t,o)}function eu(n,t,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n==="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Ut=class extends Sh.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??wt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Br.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r),this.transparent=wt.isTransparent(e,r)}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(r=>r instanceof Dr),this.lightLayer===void 0&&(this.lightLayer=new Dr(0,"",{...jt.defaultData("light","phong"),visible:!1},new Wo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,this.transparent=wt.isTransparent(r,o),e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Br.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,s)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let s=this.layers.findIndex(c=>c.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(l=>l.uuid===i);if(s){let l=r.layers.data(i);if(s.updateByOp({...e,path:e.path.slice(2)},l,o)){let p=Br.create(this.layerIdGen++,i,l,o);this.layers.splice(this.layers.findIndex(a=>a.uuid===i),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof nt),r=this.layers.findIndex(o=>o instanceof Dr);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let s=this.layers[i];s instanceof nt&&(o=new ss(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ne("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Dr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof nt&&(e=new ss(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 vs);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Et(r,e[o].position,Et.ADD),r=new Et(r,new Z(.5).setReadonly(!0),Et.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,r){this.build({renderer:r}),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,s,l)=>Math.min(Math.max(i,s),l);for(let i of this.layers)if(i.type==="displace"){let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}customProgramCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.visible?r.category.toUpperCase():"Basic"}"`;else{let o=(Zc[r.type]??[]).map(l=>r[l]),i=(Qc[r.type]??[]).map(l=>r[l]?.length??0),s=[...o,...i];s.length?e+=`["${r.type}", "${s.join('","')}"],`:e+=`"${r.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){e=e??{};let r=e.builder??new al;return this.lights=this.lightLayer.data.visible,r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ut.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});var kt=require("three");function _w(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes.position.array,r=n.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=new kt.Vector3(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new kt.Vector3})}t.forEach((i,s)=>{for(let l of i.normals)i.result.add(l);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=t.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new kt.Float32BufferAttribute(o,3))}function Tw(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=new kt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;n.geometry.setAttribute("extrudeNormal",new kt.Float32BufferAttribute(e,3))}function Gr(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Ut)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?Tw(n):_w(n)}function Rr(n){if(!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(n.uuid.replace(/\D/g,"")),o=[kt.MathUtils.seededRandom(r),kt.MathUtils.seededRandom(r+1e4),kt.MathUtils.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new kt.BufferAttribute(e,3))}var wh=require("three");var Vr=(n,t)=>class extends n{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=lt(o.color,i)),o.intensity!==void 0&&(s.intensity=o.intensity),o.depth!==void 0&&(s.shadow.camera.far=o.depth,s.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var Qr=class extends Vr(Kt(wh.Group),Rn){constructor(){super(...arguments);this.objectType="EmptyObject"}createFromState(e,r){let o=new Qr().fromState(r);return o.uuid=e,o.objectHelper.update(),o.setFromClonerState(r.cloner||null),o}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Xr(this,e)),this.cloner.fromClonerState(e))}};function Aw(n){let t=n.parent;for(;t;){if(t instanceof Qr&&t.cloner?.parameters.hideBase)return!0;t=t.parent}return!1}var Ze=class extends Kt(fl.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new fl.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0||Aw(this)}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=Bc[o.userData.type],s=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,l=i.build(i.normalizeInputs(e,s)),c=o.uuid;this.geometry.dispose(),this.geometry=l,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),Gr(this),o.getAttribute("randomColor")&&Rr(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Yi(r),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new Xr(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null||e.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Xr(this,e)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(sr.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),Sr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)vr(e)&&(e.freeBooleanPointer(),Sr(e)&&e.invalidateUpstreamBooleanData())}};var Nw=new Ao.Vector3(0,0,1),_h=new Ao.Vector3,Th=new Ao.Vector3,Ah=new Ao.Matrix3,ii=class extends Ze{constructor(e=ft.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new Ao.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,r){if(super.updateGeometry(e,r),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Ah.getNormalMatrix(this.matrixWorld),_h.copy(Nw).applyMatrix3(Ah).normalize(),Th.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(_h,Th)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=ft.create(Object.assign({},i,{shape:r})),l=new ii(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){Ze.prototype.raycast.call(this,e,r)}};var si=new Ue.Vector3,ou=new Ue.Vector3,Jr=class extends Vr(Kt(Ue.Camera),Ha){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=Lo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new Ue.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new Ue.PerspectiveCamera(o,e/r,i??50,s),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.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,r){let o=new Jr().fromState(r);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}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){super.lookAt(e),this.getWorldPosition(si),this.targetOffset=si.distanceTo(e)}getTarget(e=new Ue.Vector3){return this.getWorldDirection(ou),this.getWorldPosition(si),ou.multiplyScalar(this.targetOffset),e.copy(si).add(ou),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(si),si.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new Ue.Quaternion),r=new Ue.Vector3(0,0,1).applyQuaternion(e),o=new Ue.Vector3().copy(Ue.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new Ue.Vector3().copy(Ue.Object3D.DefaultUp).projectOnPlane(r),s=new Ue.Vector3().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new Ue.Vector3),i=e.getWorldDirection(new Ue.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Ue.Vector3),i=this.getWorldDirection(new Ue.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(i),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,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,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,s,l):this.orthoCamera.setViewOffset(e,r,o,i,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}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.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 Nn(r,e)}fromCameraState(e){let{orthographic:r,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),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(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var Ss=require("three");var Nh=new Ss.Matrix4;var ml=class extends Ze{constructor(e=new Ss.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];Sr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(Lf(s)&&s.booleanExclude===!1&&s.geometry.attributes.position?.count>0&&s.geometry.drawRange.count>0){if(s.booleanMeshSetAddress===-1){if((s.geometry.index??s.geometry.getAttribute("position")).count/3<15e5&&(s.booleanMeshSetAddress=sr.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;sr.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else Sr(s)&&s.needsTransformForDownstream===!0?(sr.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Nh.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),sr.transformMeshSet(s.booleanMeshSetAddress,Nh),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return sr.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new Ss.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=sr.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Gr(this),Rr(this)}updateGeometry(e,r){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var $o=require("three");var ai=class extends Vr(Kt($o.DirectionalLight),Gn){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new $o.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new ai().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof $o.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof $o.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof $o.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&Of(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var bt=require("three");var li=class extends Vr(Kt(bt.PointLight),Vn){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new bt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new bt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new bt.Box3(i,s),c=new bt.Box3Helper(l,new bt.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let i=new li().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof bt.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof bt.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof bt.Box3Helper){let o=this.shadow.camera,i=new bt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new bt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(i,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Dt=require("three");var Ih=new Dt.Vector3,Ph=new Dt.Vector3,Oh=new Dt.Quaternion,ci=class extends Vr(Kt(Dt.SpotLight),Vi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=Dt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Dt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new ci().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Dt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Dt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Dt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Ph.setFromMatrixPosition(this.matrixWorld),Oh.setFromRotationMatrix(this.matrixWorld),Ih.copy(this.up).applyQuaternion(Oh).negate().multiplyScalar(this.distance),this.target.position.copy(Ph).add(Ih),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Ch=n=>n.tagName==="VIDEO",ui=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Ch(s)?i=s.videoWidth/s.videoHeight:i=s.width/s.height,o>i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*i/o):r.repeat.set(1,1*i/o)),o<i&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/i*-1,1):r.repeat.set(1*o/i,1)),o==i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,i=r.image!==void 0?r.image.width/r.image.height:1,s;o>i?s={x:1,y:i/o}:o<i?s={x:o/i,y:1}:s={x:1,y:1},r.repeat.set(s.x,s.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let o=r.layers;for(let i=0;i<o.length;i++){let s=o[i];vh(s)&&ui.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Ch(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,o.geometry.type.includes("Shape")?(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/i):r.repeat.set(1/t,1/e*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*i/s*-1,1/e):r.repeat.set(1/t*i/s,1/e)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/i):r.repeat.set(1,1*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*i/s*-1,1):r.repeat.set(1*i/s,1)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var hl=class extends Ze{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,r){super.updateGeometry(e,r),this.material.layers&&ui.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var pi=class extends Ze{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var gl=class extends pi{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Lh,_s=new Promise(n=>{Lh=n}),Mh=!1;async function Eh(){if(Mh)return;let n=await import("./opentype.js");Lh(n),Mh=!0}var Ts=class{async load(t,e,r=()=>{}){let{load:o}=await _s;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await _s;try{return e(t)}catch(r){console.error(r)}}};async function Iw(n){return await(await fetch(n)).arrayBuffer()}var Pw=new Ts;async function nu(n){let t,e,r=!1;if(n.url?(t=await Iw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await Pw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var di=require("three");var Bh=new di.Vector3,Dh=new di.Matrix4,Gh=new di.Ray;function Rh(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var yl=class extends Ze{constructor(e,r,o){super(new Xn(r.geometry,o),o.material(r.material));this.data=r;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.name=r.name,this.uuid=e,this.updateState(r,o)}async updateGeometry(e,r){let o=e.parameters,i={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:i,type:"TextGeometry"},r&&(o.font||!this.geometry.font&&r.getFont(i.font))&&await this.geometry.updateFont(o.font??i.font,r),await this.geometry.update(i),Gr(this),Rr(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateState(e,r){this.data=e,this.material=r.material(e.material),this.fromState(e,r),this.updateGeometry({parameters:e.geometry},r)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.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(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(Dh.copy(o).invert(),Gh.copy(e.ray).applyMatrix4(Dh),Gh.intersectBox(this.singleBBox,Bh)){let i=Bh.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var At=require("three");var jh=Ls(Fh());var iu;En.then(n=>{iu=n});var Uh=new At.Matrix4,Ow=new At.Matrix4,Cw=new At.Matrix4,pr=new At.Box3,No=new At.Vector3,Mw=new At.Matrix4,Lw=new At.Matrix4;var fi=class extends Ze{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new At.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new At.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=Jt.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new fi(i,s,l||void 0,c);return r.geometry.phongAngle!==void 0&&(p.phongAngle=r.geometry.phongAngle),p.calcBoundingBox(),p.freeSubdivPointer(),p.uuid=e,p.fromState(r),p}buildFromStore(e,r){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=Jt.build(e,r,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Gr(this),Rr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Jt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Jt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Jt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Jt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,Ze.prototype.raycast.call(this,e,r),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:s}=(0,jh.SVD)(r),l=Uh.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),c=Ow.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),p=Cw.copy(c).transpose();this.shearScale=Mw.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=Lw.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,p),s.every(a=>Math.abs(s[0]-a)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new At.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;pr.setFromBufferAttribute(r),pr.getCenter(o),e.boundingSphere.radius=o.distanceTo(pr.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),pr.getSize(No);let i={width:No.x,height:No.y,depth:No.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;pr.min.set(e[0],e[2],e[4]),pr.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(pr.min.applyMatrix4(this.shearScaleInv),pr.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new At.Sphere);let o=r.boundingSphere.center;pr.getCenter(o),r.boundingSphere.radius=o.distanceTo(pr.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),pr.getSize(No);let i={width:No.x,height:No.y,depth:No.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(iu.free_bvh(this.subdivPointer),iu.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,r){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,zh(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(zh(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function zh(n,t,e,r){let o=n.position.array,i=n.normal.array,s=Uh.makeScale(t,e,r).invert().elements,l,c,p;for(var a=0,u=o.length;a<u;a+=3)o[a]*=t,o[a+1]*=e,o[a+2]*=r,l=i[a],c=i[a+1],p=i[a+2],i[a]=s[0]*l+s[4]*c+s[8]*p,i[a+1]=s[1]*l+s[5]*c+s[9]*p,i[a+2]=s[2]*l+s[6]*c+s[10]*p}var Io=require("three");function kh(n,t){t.flatShading!==void 0&&(n.flatShading=t.flatShading,n.needsUpdate=!0),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?n.side=Io.FrontSide:t.side===1?n.side=Io.BackSide:n.side=Io.DoubleSide)}function Ew(n,t){if(Array.isArray(n.material))for(let e of n.material)kh(e,t);else{let e=n.material;kh(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Hh(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=fi.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new Io.BufferGeometry:rl(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);On.is2DParametricMesh(o.userData.type)?r=new hl(o,i):o?.userData.type==="VectorGeometry"?r=new ii(o,i):t.geometry.type==="NonParametricGeometry"?r=new gl(o,i):t.geometry.type==="BooleanGeometry"?(r=new ml(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new pi(o,i),r.uuid=n,r.fromState(t,e)}return Ew(r,t),r}function Wh(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new yl(n,t,e):Hh(n,t,e):t.type==="Empty"?new Qr().createFromState(n,t):t.type==="PointLight"?li.createFromState(n,t,e):t.type==="SpotLight"?ci.createFromState(n,t,e):t.type==="DirectionalLight"?ai.createFromState(n,t,e):nn.is(t.type)?Jr.createFromState(n,t):(console.error(t),new Qr)}var Yo=class extends Ut{};var eo=require("three");function qh(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,Rr(n),Gr(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function $h(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");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),e}function Yh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eo.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)qh(e,e.material[r])&&(t=!0);else qh(e,e.material)&&(t=!0)}),t}function Xh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eo.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)$h(e,e.material[r])&&(t=!0);else $h(e,e.material)&&(t=!0)}),t}function Kh(n){"material"in n&&Dw(n.material),"geometry"in n&&n.geometry.dispose()}function Dw(n){ff(n).forEach(t=>{t instanceof Yo||t.dispose()})}var Gw=new eo.Raycaster,Rw=new eo.Matrix4,Vw=new eo.Ray;function Zh(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=Rw.copy(o.matrixWorld).invert(),s=Vw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=Gw;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var Qh=new Fr.Vector3,su=class extends Ra(Fr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Fr.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new ot(1,1,1,1);this.entityByUuid={};this.ambientLight=new Fr.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.objectsData=e.objects.map(({data:o,id:i})=>({data:o,id:i})),this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Xh(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Yh(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(lt(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof Jr&&this.switchActiveCamera(o)}this.traverse(o=>{Sr(o)&&o.recomputeBoolean()}),setTimeout(()=>this.updateCloner())}clearScene(){this.traverseEntity(e=>{Kh(e)});for(let e of this.children)Xt(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=Jr.createFromState(su.PERSONAL_CAMERA_ID,{...Ia.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=i=>{for(let s of i.children)Xt(s)&&!s.raycastLock&&s.visible&&((vr(s)||Da(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),Zh(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Xt(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Xt(r)&&r.visible&&r.traverseVisibleEntity(e)}updateFog(e,r){this.enableFog=e.enabled,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}dispose(){this.clearScene()}updateAmbientLight(e,r){Pf(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=lt(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,r,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,r,o)}updateObjectCloner(e){if(e.parameters.type==="toObject"){let r=e.parameters.toObject.object;if(!r)return;let o=this.find(r);if(o){let i,s=this.objectsData.find(l=>l.id===o.uuid);if(s&&(i=s.data),o.objectType==="SubdivObject"){let l=o;i&&!l.subdivPointer&&l.buildFromStore(i.geometry)}e.setObjectForSample(o),e.update()}}}updateCloner(){this.traverse(e=>{let r=e;r.cloner&&(r.cloner._updateCount(0),r.cloner.update(),this.updateObjectCloner(r.cloner))})}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,i,s){let l=Wh(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),Sr(i)&&vr(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),"cloner"in l&&(l.cloner?._updateCount(0),l.cloner?.update()),l}getCenter(e){let r=[];for(let i=0,s=e.length;i<s;++i){let{id:l,recursive:c}=e[i],p=this.find(l),a=c?p.recursiveBBox:p.singleBBox;r.push(...a.vertices)}let o=new Fr.Box3;return o.setFromPoints(r),o.getCenter(Qh),Qh}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 Ze)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Ut&&e(r.material[o]);else r.material instanceof Ut&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,i;e>=r?(o=r/e,i=1):(o=1,i=e/r),this.traverseMaterial(s=>{s.getLayersOfType("transmission").forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=o,c.uniforms[`f${c.id}_aspectRatio`].value.y=i})})}},As=su;As.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var rg=Ls(Jh());var eg=new Map;function tg(n){if(typeof n=="string")return n;let t=eg.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},eg.set(n,t)),t.url}var mi=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:tg(t),format:"wav"},this.sound=new rg.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()}};var it=require("three"),vl=class{constructor(){this.type="ShapePath";this.color=new it.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new it.Path,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,s){return this.currentPath?.bezierCurveTo(t,e,r,o,i,s),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(h,g,b,x){let S=h.x,w=g.x,v=b.x,N=x.x,_=h.y,y=g.y,I=b.y,A=x.y,P=(N-v)*(_-I)-(A-I)*(S-v),T=(w-S)*(_-I)-(y-_)*(S-v),C=(A-I)*(w-S)-(N-v)*(y-_),L=P/C,j=T/C;if(C===0&&P!==0||L<=0||L>=1||j<0||j>1)return null;if(P===0&&C===0){for(let Y=0;Y<2;Y++)if(i(Y===0?b:x,h,g),r.loc===e.ORIGIN){let te=Y===0?b:x;return{x:te.x,y:te.y,t:r.t}}else if(r.loc===e.BETWEEN){let te=+(S+r.t*(w-S)).toPrecision(10),ie=+(_+r.t*(y-_)).toPrecision(10);return{x:te,y:ie,t:r.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?b:x,h,g),r.loc===e.ORIGIN){let U=ie===0?b:x;return{x:U.x,y:U.y,t:r.t}}let Y=+(S+L*(w-S)).toPrecision(10),te=+(_+L*(y-_)).toPrecision(10);return{x:Y,y:te,t:L}}}function i(h,g,b){let x=b.x-g.x,S=b.y-g.y,w=h.x-g.x,v=h.y-g.y,N=x*v-w*S;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===b.x&&h.y===b.y){r.loc=e.DESTINATION,r.t=1;return}if(N<-Number.EPSILON){r.loc=e.LEFT;return}if(N>Number.EPSILON){r.loc=e.RIGHT;return}if(x*w<0||S*v<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+v*v)){r.loc=e.BEYOND;return}let _;x!==0?_=w/x:_=v/S,r.loc=e.BETWEEN,r.t=_}function s(h,g){let b=[],x=[];for(let S=1;S<h.length;S++){let w=h[S-1],v=h[S];for(let N=1;N<g.length;N++){let _=g[N-1],y=g[N],I=o(w,v,_,y);I!==null&&b.find(A=>A.t<=I.t+Number.EPSILON&&A.t>=I.t-Number.EPSILON)===void 0&&(b.push(I),x.push(new it.Vector2(I.x,I.y)))}}return x}function l(h,g,b){let x=new it.Vector2;g.getCenter(x);let S=[];return b.forEach(w=>{w.boundingBox.containsPoint(x)&&s(h,w.points).forEach(N=>{S.push({identifier:w.identifier,isCW:w.isCW,point:N})})}),S.sort((w,v)=>w.point.x-v.point.x),S}function c(h,g,b,x,S){(S==null||S==="")&&(S="nonzero");let w=new it.Vector2;h.boundingBox.getCenter(w);let v=[new it.Vector2(b,w.y),new it.Vector2(x,w.y)],N=l(v,h.boundingBox,g);N.sort((T,C)=>T.point.x-C.point.x);let _=[],y=[];N.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let I=_[0].point.x,A=[],P=0;for(;P<y.length&&y[P].point.x<I;)A.length>0&&A[A.length-1]===y[P].identifier?A.pop():A.push(y[P].identifier),P++;if(A.push(h.identifier),S==="evenodd"){let T=A.length%2===0,C=A[A.length-2];return{identifier:h.identifier,isHole:T,for:C}}else if(S==="nonzero"){let T=!0,C=null,L=null;for(let j=0;j<A.length;j++){let Y=A[j];g[Y]&&(T?(L=g[Y].isCW,T=!1,C=Y):L!==g[Y].isCW&&(L=g[Y].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:C}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),b=-999999999,x=999999999,S=-999999999,w=999999999;for(let v=0;v<g.length;v++){let N=g[v];N.y>b&&(b=N.y),N.y<x&&(x=N.y),N.x>S&&(S=N.x),N.x<w&&(w=N.x)}u<=S&&(u=S+1),a>=w&&(a=w-1),g.length&&d.push({curves:h.curves,points:g,isCW:it.ShapeUtils.isClockWise(g),identifier:p++,boundingBox:new it.Box2(new it.Vector2(w,x),new it.Vector2(S,b))})});let f=d.map(h=>c(h,d,a,u,this.userData?.style.fillRule)),m=[];return d.forEach(h=>{let g=f[h.identifier];if(g&&!g.isHole){let b=new it.Shape;b.curves=h.curves,f.filter(S=>S?.isHole&&S.for===h.identifier).forEach(S=>{if(S){let w=d[S.identifier],v=new it.Path;v.curves=w.curves,b.holes.push(v)}}),m.push(b)}}),m}};var hi=require("three");var og=require("three/examples/jsm/loaders/DRACOLoader.js");var Po;function Fw(){return Po||(Po=new og.DRACOLoader,Po.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Po.decoderPending}async function zw(n){if(Po){let t={attributeIDs:Po.defaultAttributeIDs,attributeTypes:Po.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await Po.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 ng(n,t){let[e,r]=Cl(Xs.deserialize(new Uint8Array(n)));vf(e);let o=[];e.scene.objects.traverse((i,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await Fw();for(let i of o){let s=await zw(It(i.geometry.data.draco));if(s){s.index&&(i.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:p,itemSize:a})=>{l[c]={array:p,itemSize:a,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=l,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}function jw(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var Sl=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=nu(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=nu(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(t,e,r){let{Bidi:o}=await _s,i=new o,s=u=>t.charToGlyphIndex(u.char);i.registerModifier("glyphIndex",null,s),i.applyFeatures(t,t.defaultRenderOptions.features),i.getTextGlyphs(e);let l=i.tokenizer.tokens,c=[],p=0,a=r.length===l.length;for(let u=0;u<r.length;u++){let d=r[u].index,f=String.fromCharCode(r[u].unicode),m=l[p];if(jw(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",b=[m.state.glyphIndex],x=[],S=!1;for(;!S;)p++,g=e.charAt(p),h+=g,b.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(S=!0),p>e.length&&(S=!0);c.push({char:f,index:d,replacements:b,replacementChars:Array.from(h)}),p++}}return c}async generateShapes(t,e){await this._loadingPromise;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=t.map(x=>this.getTextWidth(x,e)),l=e.width,c=this.getCharWidth(`
|
|
1335
1335
|
`,e),p=e.horizontalAlign===1?c:0,a=this.computeSpaceWidthForLine(t,0,e),u=this.getLineInitialOffsetX(s[0],l,e.horizontalAlign,t[0],c),d=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),f=[],m=t.map(x=>[]),h=t.map(x=>[]),g;for(let x=0;x<t.length;x++){let S=t[x],w={features:{liga:!0}},v=[];try{v=r.stringToGlyphs(S,w)}catch(_){console.warn(_)}u=this.getLineInitialOffsetX(s[x],l,e.horizontalAlign,S,c);let N=[];try{N=await this.reverseLigaturesTable(r,S,v)}catch(_){console.warn(_)}a=this.computeSpaceWidthForLine(t,x,e);for(let _=0;_<v.length;_++){let y=v[_],I=y.index===0?`
|
|
1336
1336
|
`:y.unicode?String.fromCharCode(y.unicode):void 0,A=N[_],P=0,T=0;_===0&&e.horizontalAlign===2&&y.leftSideBearing!==void 0&&(T=-y.leftSideBearing*o),g&&(P=r.getKerningValue(y,g)*o),u+=T+P;let C=0;if(I===`
|
|
1337
1337
|
`)C=p;else if(I===" ")C=a;else{let L=this.createPath(y,o,u,d,e);L&&(C=L.offsetX-(P+T),f.push(L.path))}if(A.replacements.length===1)h[x].push([u,d]),m[x].push(C);else{let L=A.replacements.map(ie=>(r.glyphs.get(ie).advanceWidth??0)*o),j=L.reduce((ie,U)=>ie+=U,0),Y=L.map(ie=>ie/j),te=u;for(let ie=0;ie<Y.length;ie++){let U=C*Y[ie];h[x].push([te,d]),m[x].push(U),te+=U}}u+=C,g=y}d-=i}let b=[];for(let x=0,S=f.length;x<S;x++)b.push(...f[x].toShapes());return{shapes:b,charWidths:m,lineWidths:s,charCoords:h}}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(`
|
|
1338
|
-
`)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let s=e*t,l=Math.abs(this.ascender-this.descender)*o,c=t-l,p=-this.ascender*o-c/2;return i===3?-(r-s-p):i===2?-(r*.5-s*.5-p):p}createPath(t,e,r,o,i){let s=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let l=new
|
|
1338
|
+
`)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let s=e*t,l=Math.abs(this.ascender-this.descender)*o,c=t-l,p=-this.ascender*o-c/2;return i===3?-(r-s-p):i===2?-(r*.5-s*.5-p):p}createPath(t,e,r,o,i){let s=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let l=new vl,c=(t.advanceWidth??1)*e;if(t)for(let p of s.commands){let a=l.currentPath?.currentPoint;if(!(a&&p.type!=="Z"&&a.x===p.x&&-a.y===p.y))switch(p.type){case"M":l.moveTo(p.x,-p.y);break;case"L":l.lineTo(p.x,-p.y);break;case"Q":l.quadraticCurveTo(p.x1,-p.y1,p.x,-p.y);break;case"C":l.bezierCurveTo(p.x1,-p.y1,p.x2,-p.y2,p.x,-p.y);break}}return l.subPaths.forEach(p=>{let a=Uw(p.curves);a!==void 0&&p.currentPoint.distanceTo(a)>0&&p.lineTo(a.x,a.y)}),{offsetX:c+i.fontSize*i.letterSpacing,path:l}}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 s=this.countSpaces(i.trimEnd());if(r.horizontalAlign===4&&e<t.length-1&&s){let l=r.width,c=this.getTextWidth(i,r);return(l-(c-s*o))/s}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function Uw(n){if(n.length){let t=n[0];if(t instanceof hi.LineCurve)return t.v1;if(t instanceof hi.CubicBezierCurve||t instanceof hi.QuadraticBezierCurve)return t.v0}}var Ns=class{constructor(t,e={}){this.deletedMaterial=new Yo(wt.defaultTwoLayerData("phong"),this);this.deletedImage=new qo(La.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[r,o]of Object.entries(e.images))this.addImage(r,o);if(e.audios)for(let[r,o]of Object.entries(e.audios))this.addAudio(r,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,new Yo(r,this));for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.data);for(let[e,r]of Object.entries(t.fonts))this.addFont(e,r);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),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):new Ut(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new qo(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&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):new ni(t,this.onImageLoad)}addColor(t,e){return this.colors[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(t),"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 _o(e.r,e.g,e.b,e.a):this.colors[t]=new _o(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(t);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 ot(0,0,0,0))}else return"a"in t?new ot(t.r,t.g,t.b,t.a):new ot(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 mi)return e;{let r=new mi({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new Sl(e,this.onFontLoad)}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._onImageLoad=void 0,this._onFontLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof mi&&e.dispose()}),this.audios={}}},uW=new Ns(Oa.emptyData());var kw=require("three"),Hw=require("three/examples/jsm/utils/BufferGeometryUtils.js");function ig(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}var Is=require("three");function sg(n){let t=new Set;return n.traverse(e=>{if(vr(e))if(He(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(Ww(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Is.Color,specularColor:new Is.Color});let o=0;e.onBeforeCompile=(i,s)=>{r&&r(i,s),i.uniforms=Object.assign({},Is.ShaderLib.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(l=>{if(i.uniforms.transmissionSamplerMap.value){let c=l.color;c&&(c.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,c.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else qw(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function Ww(n){return n.getLayersOfType("transmission").length>0}function qw(n){let t=0;return n.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let r=e.uniforms["f"+e.id+"_alpha"];r&&(t+=(1-t)*r.value)}}),t<1}function ag(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function lg(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 s=r;s.material instanceof Array?s.material.forEach(l=>{l.name=l.name.replace(o,i)}):s.material.isAsset||(s.material.name=s.material.name.replace(o,i))}}t.push(r.name)}),n}var cg=require("three/examples/jsm/utils/BufferGeometryUtils.js");function ug(n){let t=[];return n.traverse(e=>{e instanceof Xr&&t.push(e)}),t.forEach(e=>{let r=e.object,i=e.children.map(l=>{l.updateMatrix();let c=l.geometry.clone().applyMatrix4(l.matrix);return l.matrix.determinant()<0&&ig(c),c}),s=(0,cg.mergeBufferGeometries)(e.parameters.hideBase?i:[r instanceof Ze?r.geometry:[],...i]);r instanceof Ze&&(r.geometry=s),r.remove(e),r.cloner=void 0}),n}function pg(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function dg(n){Object.values(n.shared.materials).forEach(t=>{au(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?au(e.material):"materials"in e&&e.materials.forEach(r=>{au(r)})})}function au(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 fg="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",wl=class extends _l.Loader{load(t,e,r,o=console.error){let i=new _l.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(fg+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(fg),i.load(t,async s=>{try{if(typeof s=="string")throw new Error("The .spline file is not binary!");let l=await this.parse(s);e(l)}catch(l){o(l)}},r,o)}async parse(t){let e=await ng(t,dg);Rh(e)&&await Eh();let r=new Ns(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new As(e.scene,r);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let s=o.find(i);s&&If(s)&&Object.assign(s,{makeDefault:!0})}return o=ug(o),o=sg(o),o=ag(o),o=lg(o),o=pg(o),o}};
|