@splinetool/loader 0.9.150 → 0.9.151
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 +136 -136
- package/build/SplineLoader.js +136 -136
- package/package.json +3 -3
package/build/SplineLoader.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
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
|
-
`?(
|
|
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"),
|
|
5
|
-
`)),sRGBToLinear:new
|
|
6
|
-
`)),LinearTosRGB:new
|
|
7
|
-
`))},
|
|
1
|
+
"use strict";var wh=Object.create;var Bi=Object.defineProperty;var Sh=Object.getOwnPropertyDescriptor;var Th=Object.getOwnPropertyNames;var Nh=Object.getPrototypeOf,Ih=Object.prototype.hasOwnProperty;var Pa=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),dc=(o,e)=>{for(var A in e)Bi(o,A,{get:e[A],enumerable:!0})},pc=(o,e,A,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Th(e))!Ih.call(o,r)&&r!==A&&Bi(o,r,{get:()=>e[r],enumerable:!(t=Sh(e,r))||t.enumerable});return o};var Ei=(o,e,A)=>(A=o!=null?wh(Nh(o)):{},pc(e||!o||!o.__esModule?Bi(A,"default",{value:o,enumerable:!0}):A,o)),Ph=o=>pc(Bi({},"__esModule",{value:!0}),o);var Sp=Pa((tl,wp)=>{(function(o,e){typeof tl=="object"?wp.exports=e():typeof define=="function"&&define.amd?define(e):o.Alea=e()})(tl,function(){"use strict";return o.importState=function(A){var t=new o;return t.importState(A),t},o;function o(){return function(A){var t=0,r=0,n=0,i=1;A.length==0&&(A=[+new Date]);var a=e();t=a(" "),r=a(" "),n=a(" ");for(var l=0;l<A.length;l++)t-=a(A[l]),t<0&&(t+=1),r-=a(A[l]),r<0&&(r+=1),n-=a(A[l]),n<0&&(n+=1);a=null;var u=function(){var s=2091639*t+i*23283064365386963e-26;return t=r,r=n,n=s-(i=s|0)};return u.next=u,u.uint32=function(){return u()*4294967296},u.fract53=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.version="Alea 0.9",u.args=A,u.exportState=function(){return[t,r,n,i]},u.importState=function(s){t=+s[0]||0,r=+s[1]||0,n=+s[2]||0,i=+s[3]||0},u}(Array.prototype.slice.call(arguments))}function e(){var A=4022871197,t=function(r){r=r.toString();for(var n=0;n<r.length;n++){A+=r.charCodeAt(n);var i=.02519603282416938*A;A=i>>>0,i-=A,i*=A,A=i>>>0,i-=A,A+=i*4294967296}return(A>>>0)*23283064365386963e-26};return t.version="Mash 0.9",t}})});var zm=Pa((va,jm)=>{(function(o,e){typeof va=="object"&&typeof jm<"u"?e(va):typeof define=="function"&&define.amd?define(["exports"],e):e((o=typeof globalThis<"u"?globalThis:o||self).SVDJS={})})(va,function(o){"use strict";o.SVD=function(e,A,t,r,n){if(A=A===void 0||A,t=t===void 0||t,n=1e-64/(r=r||Math.pow(2,-52)),!e)throw new TypeError("Matrix a is not defined");var i,a,l,u,s,c,d,p,f,m,h,x,y=e[0].length,b=e.length;if(b<y)throw new TypeError("Invalid matrix: m < n");for(var w=[],v=[],I=[],S=A==="f"?b:y,g=m=d=0;g<b;g++)v[g]=new Array(S).fill(0);for(g=0;g<y;g++)I[g]=new Array(y).fill(0);var P,N=new Array(y).fill(0);for(g=0;g<b;g++)for(i=0;i<y;i++)v[g][i]=e[g][i];for(g=0;g<y;g++){for(w[g]=d,f=0,l=g+1,i=g;i<b;i++)f+=Math.pow(v[i][g],2);if(f<n)d=0;else for(p=(c=v[g][g])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,v[g][g]=c-d,i=l;i<y;i++){for(f=0,a=g;a<b;a++)f+=v[a][g]*v[a][i];for(c=f/p,a=g;a<b;a++)v[a][i]=v[a][i]+c*v[a][g]}for(N[g]=d,f=0,i=l;i<y;i++)f+=Math.pow(v[g][i],2);if(f<n)d=0;else{for(p=(c=v[g][g+1])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,v[g][g+1]=c-d,i=l;i<y;i++)w[i]=v[g][i]/p;for(i=l;i<b;i++){for(f=0,a=l;a<y;a++)f+=v[i][a]*v[g][a];for(a=l;a<y;a++)v[i][a]=v[i][a]+f*w[a]}}m<(h=Math.abs(N[g])+Math.abs(w[g]))&&(m=h)}if(t)for(g=y-1;0<=g;g--){if(d!==0){for(p=v[g][g+1]*d,i=l;i<y;i++)I[i][g]=v[g][i]/p;for(i=l;i<y;i++){for(f=0,a=l;a<y;a++)f+=v[g][a]*I[a][i];for(a=l;a<y;a++)I[a][i]=I[a][i]+f*I[a][g]}}for(i=l;i<y;i++)I[g][i]=0,I[i][g]=0;I[g][g]=1,d=w[g],l=g}if(A){if(A==="f")for(g=y;g<b;g++){for(i=y;i<b;i++)v[g][i]=0;v[g][g]=1}for(g=y-1;0<=g;g--){for(l=g+1,d=N[g],i=l;i<S;i++)v[g][i]=0;if(d!==0){for(p=v[g][g]*d,i=l;i<S;i++){for(f=0,a=l;a<b;a++)f+=v[a][g]*v[a][i];for(c=f/p,a=g;a<b;a++)v[a][i]=v[a][i]+c*v[a][g]}for(i=g;i<b;i++)v[i][g]=v[i][g]/d}else for(i=g;i<b;i++)v[i][g]=0;v[g][g]=v[g][g]+1}}for(r*=m,a=y-1;0<=a;a--)for(var O=0;O<50;O++){for(P=!1,l=a;0<=l;l--){if(Math.abs(w[l])<=r){P=!0;break}if(Math.abs(N[l-1])<=r)break}if(!P){for(s=0,u=l-(f=1),g=l;g<a+1&&(c=f*w[g],w[g]=s*w[g],!(Math.abs(c)<=r));g++)if(d=N[g],N[g]=Math.sqrt(c*c+d*d),s=d/(p=N[g]),f=-c/p,A)for(i=0;i<b;i++)h=v[i][u],x=v[i][g],v[i][u]=h*s+x*f,v[i][g]=-h*f+x*s}if(x=N[a],l===a){if(x<0&&(N[a]=-x,t))for(i=0;i<y;i++)I[i][a]=-I[i][a];break}for(m=N[l],c=(((h=N[a-1])-x)*(h+x)+((d=w[a-1])-(p=w[a]))*(d+p))/(2*p*h),d=Math.sqrt(c*c+1),c=((m-x)*(m+x)+p*(h/(c<0?c-d:c+d)-p))/m,g=l+(f=s=1);g<a+1;g++){if(d=w[g],h=N[g],p=f*d,d*=s,x=Math.sqrt(c*c+p*p),c=m*(s=c/(w[g-1]=x))+d*(f=p/x),d=-m*f+d*s,p=h*f,h*=s,t)for(i=0;i<y;i++)m=I[i][g-1],x=I[i][g],I[i][g-1]=m*s+x*f,I[i][g]=-m*f+x*s;if(x=Math.sqrt(c*c+p*p),c=(s=c/(N[g-1]=x))*d+(f=p/x)*h,m=-f*d+s*h,A)for(i=0;i<b;i++)h=v[i][g-1],x=v[i][g],v[i][g-1]=h*s+x*f,v[i][g]=-h*f+x*s}w[l]=0,w[a]=c,N[a]=m}for(g=0;g<y;g++)N[g]<r&&(N[g]=0);return{u:v,q:N,v:I}},o.VERSION="1.1.1",Object.defineProperty(o,"__esModule",{value:!0})})});var Ah=Pa(ba=>{(function(){"use strict";var o=function(){this.init()};o.prototype={init:function(){var s=this||e;return s._counter=1e3,s._html5AudioPool=[],s.html5PoolSize=10,s._codecs={},s._howls=[],s._muted=!1,s._volume=1,s._canPlayEvent="canplaythrough",s._navigator=typeof window<"u"&&window.navigator?window.navigator:null,s.masterGain=null,s.noAudio=!1,s.usingWebAudio=!0,s.autoSuspend=!0,s.ctx=null,s.autoUnlock=!0,s._setup(),s},volume:function(s){var c=this||e;if(s=parseFloat(s),c.ctx||u(),typeof s<"u"&&s>=0&&s<=1){if(c._volume=s,c._muted)return c;c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s,e.ctx.currentTime);for(var d=0;d<c._howls.length;d++)if(!c._howls[d]._webAudio)for(var p=c._howls[d]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[d]._soundById(p[f]);m&&m._node&&(m._node.volume=m._volume*s)}return c}return c._volume},mute:function(s){var c=this||e;c.ctx||u(),c._muted=s,c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s?0:c._volume,e.ctx.currentTime);for(var d=0;d<c._howls.length;d++)if(!c._howls[d]._webAudio)for(var p=c._howls[d]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[d]._soundById(p[f]);m&&m._node&&(m._node.muted=s?!0:m._muted)}return c},stop:function(){for(var s=this||e,c=0;c<s._howls.length;c++)s._howls[c].stop();return s},unload:function(){for(var s=this||e,c=s._howls.length-1;c>=0;c--)s._howls[c].unload();return s.usingWebAudio&&s.ctx&&typeof s.ctx.close<"u"&&(s.ctx.close(),s.ctx=null,u()),s},codecs:function(s){return(this||e)._codecs[s.replace(/^x-/,"")]},_setup:function(){var s=this||e;if(s.state=s.ctx&&s.ctx.state||"suspended",s._autoSuspend(),!s.usingWebAudio)if(typeof Audio<"u")try{var c=new Audio;typeof c.oncanplaythrough>"u"&&(s._canPlayEvent="canplay")}catch{s.noAudio=!0}else s.noAudio=!0;try{var c=new Audio;c.muted&&(s.noAudio=!0)}catch{}return s.noAudio||s._setupCodecs(),s},_setupCodecs:function(){var s=this||e,c=null;try{c=typeof Audio<"u"?new Audio:null}catch{return s}if(!c||typeof c.canPlayType!="function")return s;var d=c.canPlayType("audio/mpeg;").replace(/^no$/,""),p=s._navigator?s._navigator.userAgent:"",f=p.match(/OPR\/([0-6].)/g),m=f&&parseInt(f[0].split("/")[1],10)<33,h=p.indexOf("Safari")!==-1&&p.indexOf("Chrome")===-1,x=p.match(/Version\/(.*?) /),y=h&&x&&parseInt(x[1],10)<15;return s._codecs={mp3:!!(!m&&(d||c.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!c.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(c.canPlayType('audio/wav; codecs="1"')||c.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!c.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!c.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(c.canPlayType("audio/x-m4a;")||c.canPlayType("audio/m4a;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(c.canPlayType("audio/x-m4b;")||c.canPlayType("audio/m4b;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(c.canPlayType("audio/x-mp4;")||c.canPlayType("audio/mp4;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!y&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!c.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(c.canPlayType("audio/x-flac;")||c.canPlayType("audio/flac;")).replace(/^no$/,"")},s},_unlockAudio:function(){var s=this||e;if(!(s._audioUnlocked||!s.ctx)){s._audioUnlocked=!1,s.autoUnlock=!1,!s._mobileUnloaded&&s.ctx.sampleRate!==44100&&(s._mobileUnloaded=!0,s.unload()),s._scratchBuffer=s.ctx.createBuffer(1,1,22050);var c=function(d){for(;s._html5AudioPool.length<s.html5PoolSize;)try{var p=new Audio;p._unlocked=!0,s._releaseHtml5Audio(p)}catch{s.noAudio=!0;break}for(var f=0;f<s._howls.length;f++)if(!s._howls[f]._webAudio)for(var m=s._howls[f]._getSoundIds(),h=0;h<m.length;h++){var x=s._howls[f]._soundById(m[h]);x&&x._node&&!x._node._unlocked&&(x._node._unlocked=!0,x._node.load())}s._autoResume();var y=s.ctx.createBufferSource();y.buffer=s._scratchBuffer,y.connect(s.ctx.destination),typeof y.start>"u"?y.noteOn(0):y.start(0),typeof s.ctx.resume=="function"&&s.ctx.resume(),y.onended=function(){y.disconnect(0),s._audioUnlocked=!0,document.removeEventListener("touchstart",c,!0),document.removeEventListener("touchend",c,!0),document.removeEventListener("click",c,!0),document.removeEventListener("keydown",c,!0);for(var b=0;b<s._howls.length;b++)s._howls[b]._emit("unlock")}};return document.addEventListener("touchstart",c,!0),document.addEventListener("touchend",c,!0),document.addEventListener("click",c,!0),document.addEventListener("keydown",c,!0),s}},_obtainHtml5Audio:function(){var s=this||e;if(s._html5AudioPool.length)return s._html5AudioPool.pop();var c=new Audio().play();return c&&typeof Promise<"u"&&(c instanceof Promise||typeof c.then=="function")&&c.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(s){var c=this||e;return s._unlocked&&c._html5AudioPool.push(s),c},_autoSuspend:function(){var s=this;if(!(!s.autoSuspend||!s.ctx||typeof s.ctx.suspend>"u"||!e.usingWebAudio)){for(var c=0;c<s._howls.length;c++)if(s._howls[c]._webAudio){for(var d=0;d<s._howls[c]._sounds.length;d++)if(!s._howls[c]._sounds[d]._paused)return s}return s._suspendTimer&&clearTimeout(s._suspendTimer),s._suspendTimer=setTimeout(function(){if(!!s.autoSuspend){s._suspendTimer=null,s.state="suspending";var p=function(){s.state="suspended",s._resumeAfterSuspend&&(delete s._resumeAfterSuspend,s._autoResume())};s.ctx.suspend().then(p,p)}},3e4),s}},_autoResume:function(){var s=this;if(!(!s.ctx||typeof s.ctx.resume>"u"||!e.usingWebAudio))return s.state==="running"&&s.ctx.state!=="interrupted"&&s._suspendTimer?(clearTimeout(s._suspendTimer),s._suspendTimer=null):s.state==="suspended"||s.state==="running"&&s.ctx.state==="interrupted"?(s.ctx.resume().then(function(){s.state="running";for(var c=0;c<s._howls.length;c++)s._howls[c]._emit("resume")}),s._suspendTimer&&(clearTimeout(s._suspendTimer),s._suspendTimer=null)):s.state==="suspending"&&(s._resumeAfterSuspend=!0),s}};var e=new o,A=function(s){var c=this;if(!s.src||s.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}c.init(s)};A.prototype={init:function(s){var c=this;return e.ctx||u(),c._autoplay=s.autoplay||!1,c._format=typeof s.format!="string"?s.format:[s.format],c._html5=s.html5||!1,c._muted=s.mute||!1,c._loop=s.loop||!1,c._pool=s.pool||5,c._preload=typeof s.preload=="boolean"||s.preload==="metadata"?s.preload:!0,c._rate=s.rate||1,c._sprite=s.sprite||{},c._src=typeof s.src!="string"?s.src:[s.src],c._volume=s.volume!==void 0?s.volume:1,c._xhr={method:s.xhr&&s.xhr.method?s.xhr.method:"GET",headers:s.xhr&&s.xhr.headers?s.xhr.headers:null,withCredentials:s.xhr&&s.xhr.withCredentials?s.xhr.withCredentials:!1},c._duration=0,c._state="unloaded",c._sounds=[],c._endTimers={},c._queue=[],c._playLock=!1,c._onend=s.onend?[{fn:s.onend}]:[],c._onfade=s.onfade?[{fn:s.onfade}]:[],c._onload=s.onload?[{fn:s.onload}]:[],c._onloaderror=s.onloaderror?[{fn:s.onloaderror}]:[],c._onplayerror=s.onplayerror?[{fn:s.onplayerror}]:[],c._onpause=s.onpause?[{fn:s.onpause}]:[],c._onplay=s.onplay?[{fn:s.onplay}]:[],c._onstop=s.onstop?[{fn:s.onstop}]:[],c._onmute=s.onmute?[{fn:s.onmute}]:[],c._onvolume=s.onvolume?[{fn:s.onvolume}]:[],c._onrate=s.onrate?[{fn:s.onrate}]:[],c._onseek=s.onseek?[{fn:s.onseek}]:[],c._onunlock=s.onunlock?[{fn:s.onunlock}]:[],c._onresume=[],c._webAudio=e.usingWebAudio&&!c._html5,typeof e.ctx<"u"&&e.ctx&&e.autoUnlock&&e._unlockAudio(),e._howls.push(c),c._autoplay&&c._queue.push({event:"play",action:function(){c.play()}}),c._preload&&c._preload!=="none"&&c.load(),c},load:function(){var s=this,c=null;if(e.noAudio){s._emit("loaderror",null,"No audio support.");return}typeof s._src=="string"&&(s._src=[s._src]);for(var d=0;d<s._src.length;d++){var p,f;if(s._format&&s._format[d])p=s._format[d];else{if(f=s._src[d],typeof f!="string"){s._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}p=/^data:audio\/([^;,]+);/i.exec(f),p||(p=/\.([^.]+)$/.exec(f.split("?",1)[0])),p&&(p=p[1].toLowerCase())}if(p||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),p&&e.codecs(p)){c=s._src[d];break}}if(!c){s._emit("loaderror",null,"No codec support for selected audio sources.");return}return s._src=c,s._state="loading",window.location.protocol==="https:"&&c.slice(0,5)==="http:"&&(s._html5=!0,s._webAudio=!1),new t(s),s._webAudio&&n(s),s},play:function(s,c){var d=this,p=null;if(typeof s=="number")p=s,s=null;else{if(typeof s=="string"&&d._state==="loaded"&&!d._sprite[s])return null;if(typeof s>"u"&&(s="__default",!d._playLock)){for(var f=0,m=0;m<d._sounds.length;m++)d._sounds[m]._paused&&!d._sounds[m]._ended&&(f++,p=d._sounds[m]._id);f===1?s=null:p=null}}var h=p?d._soundById(p):d._inactiveSound();if(!h)return null;if(p&&!s&&(s=h._sprite||"__default"),d._state!=="loaded"){h._sprite=s,h._ended=!1;var x=h._id;return d._queue.push({event:"play",action:function(){d.play(x)}}),x}if(p&&!h._paused)return c||d._loadQueue("play"),h._id;d._webAudio&&e._autoResume();var y=Math.max(0,h._seek>0?h._seek:d._sprite[s][0]/1e3),b=Math.max(0,(d._sprite[s][0]+d._sprite[s][1])/1e3-y),w=b*1e3/Math.abs(h._rate),v=d._sprite[s][0]/1e3,I=(d._sprite[s][0]+d._sprite[s][1])/1e3;h._sprite=s,h._ended=!1;var S=function(){h._paused=!1,h._seek=y,h._start=v,h._stop=I,h._loop=!!(h._loop||d._sprite[s][2])};if(y>=I){d._ended(h);return}var g=h._node;if(d._webAudio){var P=function(){d._playLock=!1,S(),d._refreshBuffer(h);var L=h._muted||d._muted?0:h._volume;g.gain.setValueAtTime(L,e.ctx.currentTime),h._playStart=e.ctx.currentTime,typeof g.bufferSource.start>"u"?h._loop?g.bufferSource.noteGrainOn(0,y,86400):g.bufferSource.noteGrainOn(0,y,b):h._loop?g.bufferSource.start(0,y,86400):g.bufferSource.start(0,y,b),w!==1/0&&(d._endTimers[h._id]=setTimeout(d._ended.bind(d,h),w)),c||setTimeout(function(){d._emit("play",h._id),d._loadQueue()},0)};e.state==="running"&&e.ctx.state!=="interrupted"?P():(d._playLock=!0,d.once("resume",P),d._clearTimer(h._id))}else{var N=function(){g.currentTime=y,g.muted=h._muted||d._muted||e._muted||g.muted,g.volume=h._volume*e.volume(),g.playbackRate=h._rate;try{var L=g.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,S(),L.then(function(){d._playLock=!1,g._unlocked=!0,c?d._loadQueue():d._emit("play",h._id)}).catch(function(){d._playLock=!1,d._emit("playerror",h._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."),h._ended=!0,h._paused=!0})):c||(d._playLock=!1,S(),d._emit("play",h._id)),g.playbackRate=h._rate,g.paused){d._emit("playerror",h._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}s!=="__default"||h._loop?d._endTimers[h._id]=setTimeout(d._ended.bind(d,h),w):(d._endTimers[h._id]=function(){d._ended(h),g.removeEventListener("ended",d._endTimers[h._id],!1)},g.addEventListener("ended",d._endTimers[h._id],!1))}catch(B){d._emit("playerror",h._id,B)}};g.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(g.src=d._src,g.load());var O=window&&window.ejecta||!g.readyState&&e._navigator.isCocoonJS;if(g.readyState>=3||O)N();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",N(),g.removeEventListener(e._canPlayEvent,T,!1)};g.addEventListener(e._canPlayEvent,T,!1),d._clearTimer(h._id)}}return h._id},pause:function(s){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"pause",action:function(){c.pause(s)}}),c;for(var d=c._getSoundIds(s),p=0;p<d.length;p++){c._clearTimer(d[p]);var f=c._soundById(d[p]);if(f&&!f._paused&&(f._seek=c.seek(d[p]),f._rateSeek=0,f._paused=!0,c._stopFade(d[p]),f._node))if(c._webAudio){if(!f._node.bufferSource)continue;typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),c._cleanBuffer(f._node)}else(!isNaN(f._node.duration)||f._node.duration===1/0)&&f._node.pause();arguments[1]||c._emit("pause",f?f._id:null)}return c},stop:function(s,c){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(s)}}),d;for(var p=d._getSoundIds(s),f=0;f<p.length;f++){d._clearTimer(p[f]);var m=d._soundById(p[f]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,d._stopFade(p[f]),m._node&&(d._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),d._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&d._clearSound(m._node))),c||d._emit("stop",m._id))}return d},mute:function(s,c){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(s,c)}}),d;if(typeof c>"u")if(typeof s=="boolean")d._muted=s;else return d._muted;for(var p=d._getSoundIds(c),f=0;f<p.length;f++){var m=d._soundById(p[f]);m&&(m._muted=s,m._interval&&d._stopFade(m._id),d._webAudio&&m._node?m._node.gain.setValueAtTime(s?0:m._volume,e.ctx.currentTime):m._node&&(m._node.muted=e._muted?!0:s),d._emit("mute",m._id))}return d},volume:function(){var s=this,c=arguments,d,p;if(c.length===0)return s._volume;if(c.length===1||c.length===2&&typeof c[1]>"u"){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):d=parseFloat(c[0])}else c.length>=2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof d<"u"&&d>=0&&d<=1){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"volume",action:function(){s.volume.apply(s,c)}}),s;typeof p>"u"&&(s._volume=d),p=s._getSoundIds(p);for(var x=0;x<p.length;x++)h=s._soundById(p[x]),h&&(h._volume=d,c[2]||s._stopFade(p[x]),s._webAudio&&h._node&&!h._muted?h._node.gain.setValueAtTime(d,e.ctx.currentTime):h._node&&!h._muted&&(h._node.volume=d*e.volume()),s._emit("volume",h._id))}else return h=p?s._soundById(p):s._sounds[0],h?h._volume:0;return s},fade:function(s,c,d,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"fade",action:function(){f.fade(s,c,d,p)}}),f;s=Math.min(Math.max(0,parseFloat(s)),1),c=Math.min(Math.max(0,parseFloat(c)),1),d=parseFloat(d),f.volume(s,p);for(var m=f._getSoundIds(p),h=0;h<m.length;h++){var x=f._soundById(m[h]);if(x){if(p||f._stopFade(m[h]),f._webAudio&&!x._muted){var y=e.ctx.currentTime,b=y+d/1e3;x._volume=s,x._node.gain.setValueAtTime(s,y),x._node.gain.linearRampToValueAtTime(c,b)}f._startFadeInterval(x,s,c,d,m[h],typeof p>"u")}}return f},_startFadeInterval:function(s,c,d,p,f,m){var h=this,x=c,y=d-c,b=Math.abs(y/.01),w=Math.max(4,b>0?p/b:p),v=Date.now();s._fadeTo=d,s._interval=setInterval(function(){var I=(Date.now()-v)/p;v=Date.now(),x+=y*I,x=Math.round(x*100)/100,y<0?x=Math.max(d,x):x=Math.min(d,x),h._webAudio?s._volume=x:h.volume(x,s._id,!0),m&&(h._volume=x),(d<c&&x<=d||d>c&&x>=d)&&(clearInterval(s._interval),s._interval=null,s._fadeTo=null,h.volume(d,s._id),h._emit("fade",s._id))},w)},_stopFade:function(s){var c=this,d=c._soundById(s);return d&&d._interval&&(c._webAudio&&d._node.gain.cancelScheduledValues(e.ctx.currentTime),clearInterval(d._interval),d._interval=null,c.volume(d._fadeTo,s),d._fadeTo=null,c._emit("fade",s)),c},loop:function(){var s=this,c=arguments,d,p,f;if(c.length===0)return s._loop;if(c.length===1)if(typeof c[0]=="boolean")d=c[0],s._loop=d;else return f=s._soundById(parseInt(c[0],10)),f?f._loop:!1;else c.length===2&&(d=c[0],p=parseInt(c[1],10));for(var m=s._getSoundIds(p),h=0;h<m.length;h++)f=s._soundById(m[h]),f&&(f._loop=d,s._webAudio&&f._node&&f._node.bufferSource&&(f._node.bufferSource.loop=d,d&&(f._node.bufferSource.loopStart=f._start||0,f._node.bufferSource.loopEnd=f._stop,s.playing(m[h])&&(s.pause(m[h],!0),s.play(m[h],!0)))));return s},rate:function(){var s=this,c=arguments,d,p;if(c.length===0)p=s._sounds[0]._id;else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):d=parseFloat(c[0])}else c.length===2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof d=="number"){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"rate",action:function(){s.rate.apply(s,c)}}),s;typeof p>"u"&&(s._rate=d),p=s._getSoundIds(p);for(var x=0;x<p.length;x++)if(h=s._soundById(p[x]),h){s.playing(p[x])&&(h._rateSeek=s.seek(p[x]),h._playStart=s._webAudio?e.ctx.currentTime:h._playStart),h._rate=d,s._webAudio&&h._node&&h._node.bufferSource?h._node.bufferSource.playbackRate.setValueAtTime(d,e.ctx.currentTime):h._node&&(h._node.playbackRate=d);var y=s.seek(p[x]),b=(s._sprite[h._sprite][0]+s._sprite[h._sprite][1])/1e3-y,w=b*1e3/Math.abs(h._rate);(s._endTimers[p[x]]||!h._paused)&&(s._clearTimer(p[x]),s._endTimers[p[x]]=setTimeout(s._ended.bind(s,h),w)),s._emit("rate",h._id)}}else return h=s._soundById(p),h?h._rate:s._rate;return s},seek:function(){var s=this,c=arguments,d,p;if(c.length===0)s._sounds.length&&(p=s._sounds[0]._id);else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):s._sounds.length&&(p=s._sounds[0]._id,d=parseFloat(c[0]))}else c.length===2&&(d=parseFloat(c[0]),p=parseInt(c[1],10));if(typeof p>"u")return 0;if(typeof d=="number"&&(s._state!=="loaded"||s._playLock))return s._queue.push({event:"seek",action:function(){s.seek.apply(s,c)}}),s;var h=s._soundById(p);if(h)if(typeof d=="number"&&d>=0){var x=s.playing(p);x&&s.pause(p,!0),h._seek=d,h._ended=!1,s._clearTimer(p),!s._webAudio&&h._node&&!isNaN(h._node.duration)&&(h._node.currentTime=d);var y=function(){x&&s.play(p,!0),s._emit("seek",p)};if(x&&!s._webAudio){var b=function(){s._playLock?setTimeout(b,0):y()};setTimeout(b,0)}else y()}else if(s._webAudio){var w=s.playing(p)?e.ctx.currentTime-h._playStart:0,v=h._rateSeek?h._rateSeek-h._seek:0;return h._seek+(v+w*Math.abs(h._rate))}else return h._node.currentTime;return s},playing:function(s){var c=this;if(typeof s=="number"){var d=c._soundById(s);return d?!d._paused:!1}for(var p=0;p<c._sounds.length;p++)if(!c._sounds[p]._paused)return!0;return!1},duration:function(s){var c=this,d=c._duration,p=c._soundById(s);return p&&(d=c._sprite[p._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var s=this,c=s._sounds,d=0;d<c.length;d++)c[d]._paused||s.stop(c[d]._id),s._webAudio||(s._clearSound(c[d]._node),c[d]._node.removeEventListener("error",c[d]._errorFn,!1),c[d]._node.removeEventListener(e._canPlayEvent,c[d]._loadFn,!1),c[d]._node.removeEventListener("ended",c[d]._endFn,!1),e._releaseHtml5Audio(c[d]._node)),delete c[d]._node,s._clearTimer(c[d]._id);var p=e._howls.indexOf(s);p>=0&&e._howls.splice(p,1);var f=!0;for(d=0;d<e._howls.length;d++)if(e._howls[d]._src===s._src||s._src.indexOf(e._howls[d]._src)>=0){f=!1;break}return r&&f&&delete r[s._src],e.noAudio=!1,s._state="unloaded",s._sounds=[],s=null,null},on:function(s,c,d,p){var f=this,m=f["_on"+s];return typeof c=="function"&&m.push(p?{id:d,fn:c,once:p}:{id:d,fn:c}),f},off:function(s,c,d){var p=this,f=p["_on"+s],m=0;if(typeof c=="number"&&(d=c,c=null),c||d)for(m=0;m<f.length;m++){var h=d===f[m].id;if(c===f[m].fn&&h||!c&&h){f.splice(m,1);break}}else if(s)p["_on"+s]=[];else{var x=Object.keys(p);for(m=0;m<x.length;m++)x[m].indexOf("_on")===0&&Array.isArray(p[x[m]])&&(p[x[m]]=[])}return p},once:function(s,c,d){var p=this;return p.on(s,c,d,1),p},_emit:function(s,c,d){for(var p=this,f=p["_on"+s],m=f.length-1;m>=0;m--)(!f[m].id||f[m].id===c||s==="load")&&(setTimeout(function(h){h.call(this,c,d)}.bind(p,f[m].fn),0),f[m].once&&p.off(s,f[m].fn,f[m].id));return p._loadQueue(s),p},_loadQueue:function(s){var c=this;if(c._queue.length>0){var d=c._queue[0];d.event===s&&(c._queue.shift(),c._loadQueue()),s||d.action()}return c},_ended:function(s){var c=this,d=s._sprite;if(!c._webAudio&&s._node&&!s._node.paused&&!s._node.ended&&s._node.currentTime<s._stop)return setTimeout(c._ended.bind(c,s),100),c;var p=!!(s._loop||c._sprite[d][2]);if(c._emit("end",s._id),!c._webAudio&&p&&c.stop(s._id,!0).play(s._id),c._webAudio&&p){c._emit("play",s._id),s._seek=s._start||0,s._rateSeek=0,s._playStart=e.ctx.currentTime;var f=(s._stop-s._start)*1e3/Math.abs(s._rate);c._endTimers[s._id]=setTimeout(c._ended.bind(c,s),f)}return c._webAudio&&!p&&(s._paused=!0,s._ended=!0,s._seek=s._start||0,s._rateSeek=0,c._clearTimer(s._id),c._cleanBuffer(s._node),e._autoSuspend()),!c._webAudio&&!p&&c.stop(s._id,!0),c},_clearTimer:function(s){var c=this;if(c._endTimers[s]){if(typeof c._endTimers[s]!="function")clearTimeout(c._endTimers[s]);else{var d=c._soundById(s);d&&d._node&&d._node.removeEventListener("ended",c._endTimers[s],!1)}delete c._endTimers[s]}return c},_soundById:function(s){for(var c=this,d=0;d<c._sounds.length;d++)if(s===c._sounds[d]._id)return c._sounds[d];return null},_inactiveSound:function(){var s=this;s._drain();for(var c=0;c<s._sounds.length;c++)if(s._sounds[c]._ended)return s._sounds[c].reset();return new t(s)},_drain:function(){var s=this,c=s._pool,d=0,p=0;if(!(s._sounds.length<c)){for(p=0;p<s._sounds.length;p++)s._sounds[p]._ended&&d++;for(p=s._sounds.length-1;p>=0;p--){if(d<=c)return;s._sounds[p]._ended&&(s._webAudio&&s._sounds[p]._node&&s._sounds[p]._node.disconnect(0),s._sounds.splice(p,1),d--)}}},_getSoundIds:function(s){var c=this;if(typeof s>"u"){for(var d=[],p=0;p<c._sounds.length;p++)d.push(c._sounds[p]._id);return d}else return[s]},_refreshBuffer:function(s){var c=this;return s._node.bufferSource=e.ctx.createBufferSource(),s._node.bufferSource.buffer=r[c._src],s._panner?s._node.bufferSource.connect(s._panner):s._node.bufferSource.connect(s._node),s._node.bufferSource.loop=s._loop,s._loop&&(s._node.bufferSource.loopStart=s._start||0,s._node.bufferSource.loopEnd=s._stop||0),s._node.bufferSource.playbackRate.setValueAtTime(s._rate,e.ctx.currentTime),c},_cleanBuffer:function(s){var c=this,d=e._navigator&&e._navigator.vendor.indexOf("Apple")>=0;if(e._scratchBuffer&&s.bufferSource&&(s.bufferSource.onended=null,s.bufferSource.disconnect(0),d))try{s.bufferSource.buffer=e._scratchBuffer}catch{}return s.bufferSource=null,c},_clearSound:function(s){var c=/MSIE |Trident\//.test(e._navigator&&e._navigator.userAgent);c||(s.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(s){this._parent=s,this.init()};t.prototype={init:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++e._counter,c._sounds.push(s),s.create(),s},create:function(){var s=this,c=s._parent,d=e._muted||s._muted||s._parent._muted?0:s._volume;return c._webAudio?(s._node=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),s._node.gain.setValueAtTime(d,e.ctx.currentTime),s._node.paused=!0,s._node.connect(e.masterGain)):e.noAudio||(s._node=e._obtainHtml5Audio(),s._errorFn=s._errorListener.bind(s),s._node.addEventListener("error",s._errorFn,!1),s._loadFn=s._loadListener.bind(s),s._node.addEventListener(e._canPlayEvent,s._loadFn,!1),s._endFn=s._endListener.bind(s),s._node.addEventListener("ended",s._endFn,!1),s._node.src=c._src,s._node.preload=c._preload===!0?"auto":c._preload,s._node.volume=d*e.volume(),s._node.load()),s},reset:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._rateSeek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++e._counter,s},_errorListener:function(){var s=this;s._parent._emit("loaderror",s._id,s._node.error?s._node.error.code:0),s._node.removeEventListener("error",s._errorFn,!1)},_loadListener:function(){var s=this,c=s._parent;c._duration=Math.ceil(s._node.duration*10)/10,Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue()),s._node.removeEventListener(e._canPlayEvent,s._loadFn,!1)},_endListener:function(){var s=this,c=s._parent;c._duration===1/0&&(c._duration=Math.ceil(s._node.duration*10)/10,c._sprite.__default[1]===1/0&&(c._sprite.__default[1]=c._duration*1e3),c._ended(s)),s._node.removeEventListener("ended",s._endFn,!1)}};var r={},n=function(s){var c=s._src;if(r[c]){s._duration=r[c].duration,l(s);return}if(/^data:[^;]+;base64,/.test(c)){for(var d=atob(c.split(",")[1]),p=new Uint8Array(d.length),f=0;f<d.length;++f)p[f]=d.charCodeAt(f);a(p.buffer,s)}else{var m=new XMLHttpRequest;m.open(s._xhr.method,c,!0),m.withCredentials=s._xhr.withCredentials,m.responseType="arraybuffer",s._xhr.headers&&Object.keys(s._xhr.headers).forEach(function(h){m.setRequestHeader(h,s._xhr.headers[h])}),m.onload=function(){var h=(m.status+"")[0];if(h!=="0"&&h!=="2"&&h!=="3"){s._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}a(m.response,s)},m.onerror=function(){s._webAudio&&(s._html5=!0,s._webAudio=!1,s._sounds=[],delete r[c],s.load())},i(m)}},i=function(s){try{s.send()}catch{s.onerror()}},a=function(s,c){var d=function(){c._emit("loaderror",null,"Decoding audio data failed.")},p=function(f){f&&c._sounds.length>0?(r[c._src]=f,l(c,f)):d()};typeof Promise<"u"&&e.ctx.decodeAudioData.length===1?e.ctx.decodeAudioData(s).then(p).catch(d):e.ctx.decodeAudioData(s,p,d)},l=function(s,c){c&&!s._duration&&(s._duration=c.duration),Object.keys(s._sprite).length===0&&(s._sprite={__default:[0,s._duration*1e3]}),s._state!=="loaded"&&(s._state="loaded",s._emit("load"),s._loadQueue())},u=function(){if(!!e.usingWebAudio){try{typeof AudioContext<"u"?e.ctx=new AudioContext:typeof webkitAudioContext<"u"?e.ctx=new webkitAudioContext:e.usingWebAudio=!1}catch{e.usingWebAudio=!1}e.ctx||(e.usingWebAudio=!1);var s=/iP(hone|od|ad)/.test(e._navigator&&e._navigator.platform),c=e._navigator&&e._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=c?parseInt(c[1],10):null;if(s&&d&&d<9){var p=/safari/.test(e._navigator&&e._navigator.userAgent.toLowerCase());e._navigator&&!p&&(e.usingWebAudio=!1)}e.usingWebAudio&&(e.masterGain=typeof e.ctx.createGain>"u"?e.ctx.createGainNode():e.ctx.createGain(),e.masterGain.gain.setValueAtTime(e._muted?0:e._volume,e.ctx.currentTime),e.masterGain.connect(e.ctx.destination)),e._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:e,Howl:A}}),typeof ba<"u"&&(ba.Howler=e,ba.Howl=A),typeof global<"u"?(global.HowlerGlobal=o,global.Howler=e,global.Howl=A,global.Sound=t):typeof window<"u"&&(window.HowlerGlobal=o,window.Howler=e,window.Howl=A,window.Sound=t)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(e){var A=this;if(!A.ctx||!A.ctx.listener)return A;for(var t=A._howls.length-1;t>=0;t--)A._howls[t].stereo(e);return A},HowlerGlobal.prototype.pos=function(e,A,t){var r=this;if(!r.ctx||!r.ctx.listener)return r;if(A=typeof A!="number"?r._pos[1]:A,t=typeof t!="number"?r._pos[2]:t,typeof e=="number")r._pos=[e,A,t],typeof r.ctx.listener.positionX<"u"?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]);else return r._pos;return r},HowlerGlobal.prototype.orientation=function(e,A,t,r,n,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var l=a._orientation;if(A=typeof A!="number"?l[1]:A,t=typeof t!="number"?l[2]:t,r=typeof r!="number"?l[3]:r,n=typeof n!="number"?l[4]:n,i=typeof i!="number"?l[5]:i,typeof e=="number")a._orientation=[e,A,t,r,n,i],typeof a.ctx.listener.forwardX<"u"?(a.ctx.listener.forwardX.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(A,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(e,A,t,r,n,i);else return l;return a},Howl.prototype.init=function(e){return function(A){var t=this;return t._orientation=A.orientation||[1,0,0],t._stereo=A.stereo||null,t._pos=A.pos||null,t._pannerAttr={coneInnerAngle:typeof A.coneInnerAngle<"u"?A.coneInnerAngle:360,coneOuterAngle:typeof A.coneOuterAngle<"u"?A.coneOuterAngle:360,coneOuterGain:typeof A.coneOuterGain<"u"?A.coneOuterGain:0,distanceModel:typeof A.distanceModel<"u"?A.distanceModel:"inverse",maxDistance:typeof A.maxDistance<"u"?A.maxDistance:1e4,panningModel:typeof A.panningModel<"u"?A.panningModel:"HRTF",refDistance:typeof A.refDistance<"u"?A.refDistance:1,rolloffFactor:typeof A.rolloffFactor<"u"?A.rolloffFactor:1},t._onstereo=A.onstereo?[{fn:A.onstereo}]:[],t._onpos=A.onpos?[{fn:A.onpos}]:[],t._onorientation=A.onorientation?[{fn:A.onorientation}]:[],e.call(this,A)}}(Howl.prototype.init),Howl.prototype.stereo=function(e,A){var t=this;if(!t._webAudio)return t;if(t._state!=="loaded")return t._queue.push({event:"stereo",action:function(){t.stereo(e,A)}}),t;var r=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof A>"u")if(typeof e=="number")t._stereo=e,t._pos=[e,0,0];else return t._stereo;for(var n=t._getSoundIds(A),i=0;i<n.length;i++){var a=t._soundById(n[i]);if(a)if(typeof e=="number")a._stereo=e,a._pos=[e,0,0],a._node&&(a._pannerAttr.panningModel="equalpower",(!a._panner||!a._panner.pan)&&o(a,r),r==="spatial"?typeof a._panner.positionX<"u"?(a._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),a._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),a._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):a._panner.setPosition(e,0,0):a._panner.pan.setValueAtTime(e,Howler.ctx.currentTime)),t._emit("stereo",a._id);else return a._stereo}return t},Howl.prototype.pos=function(e,A,t,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"pos",action:function(){n.pos(e,A,t,r)}}),n;if(A=typeof A!="number"?0:A,t=typeof t!="number"?-.5:t,typeof r>"u")if(typeof e=="number")n._pos=[e,A,t];else return n._pos;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof e=="number")l._pos=[e,A,t],l._node&&((!l._panner||l._panner.pan)&&o(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(e,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(t,Howler.ctx.currentTime)):l._panner.setPosition(e,A,t)),n._emit("pos",l._id);else return l._pos}return n},Howl.prototype.orientation=function(e,A,t,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"orientation",action:function(){n.orientation(e,A,t,r)}}),n;if(A=typeof A!="number"?n._orientation[1]:A,t=typeof t!="number"?n._orientation[2]:t,typeof r>"u")if(typeof e=="number")n._orientation=[e,A,t];else return n._orientation;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof e=="number")l._orientation=[e,A,t],l._node&&(l._panner||(l._pos||(l._pos=n._pos||[0,0,-.5]),o(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(e,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(t,Howler.ctx.currentTime)):l._panner.setOrientation(e,A,t)),n._emit("orientation",l._id);else return l._orientation}return n},Howl.prototype.pannerAttr=function(){var e=this,A=arguments,t,r,n;if(!e._webAudio)return e;if(A.length===0)return e._pannerAttr;if(A.length===1)if(typeof A[0]=="object")t=A[0],typeof r>"u"&&(t.pannerAttr||(t.pannerAttr={coneInnerAngle:t.coneInnerAngle,coneOuterAngle:t.coneOuterAngle,coneOuterGain:t.coneOuterGain,distanceModel:t.distanceModel,maxDistance:t.maxDistance,refDistance:t.refDistance,rolloffFactor:t.rolloffFactor,panningModel:t.panningModel}),e._pannerAttr={coneInnerAngle:typeof t.pannerAttr.coneInnerAngle<"u"?t.pannerAttr.coneInnerAngle:e._coneInnerAngle,coneOuterAngle:typeof t.pannerAttr.coneOuterAngle<"u"?t.pannerAttr.coneOuterAngle:e._coneOuterAngle,coneOuterGain:typeof t.pannerAttr.coneOuterGain<"u"?t.pannerAttr.coneOuterGain:e._coneOuterGain,distanceModel:typeof t.pannerAttr.distanceModel<"u"?t.pannerAttr.distanceModel:e._distanceModel,maxDistance:typeof t.pannerAttr.maxDistance<"u"?t.pannerAttr.maxDistance:e._maxDistance,refDistance:typeof t.pannerAttr.refDistance<"u"?t.pannerAttr.refDistance:e._refDistance,rolloffFactor:typeof t.pannerAttr.rolloffFactor<"u"?t.pannerAttr.rolloffFactor:e._rolloffFactor,panningModel:typeof t.pannerAttr.panningModel<"u"?t.pannerAttr.panningModel:e._panningModel});else return n=e._soundById(parseInt(A[0],10)),n?n._pannerAttr:e._pannerAttr;else A.length===2&&(t=A[0],r=parseInt(A[1],10));for(var i=e._getSoundIds(r),a=0;a<i.length;a++)if(n=e._soundById(i[a]),n){var l=n._pannerAttr;l={coneInnerAngle:typeof t.coneInnerAngle<"u"?t.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof t.coneOuterAngle<"u"?t.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof t.coneOuterGain<"u"?t.coneOuterGain:l.coneOuterGain,distanceModel:typeof t.distanceModel<"u"?t.distanceModel:l.distanceModel,maxDistance:typeof t.maxDistance<"u"?t.maxDistance:l.maxDistance,refDistance:typeof t.refDistance<"u"?t.refDistance:l.refDistance,rolloffFactor:typeof t.rolloffFactor<"u"?t.rolloffFactor:l.rolloffFactor,panningModel:typeof t.panningModel<"u"?t.panningModel:l.panningModel};var u=n._panner;u?(u.coneInnerAngle=l.coneInnerAngle,u.coneOuterAngle=l.coneOuterAngle,u.coneOuterGain=l.coneOuterGain,u.distanceModel=l.distanceModel,u.maxDistance=l.maxDistance,u.refDistance=l.refDistance,u.rolloffFactor=l.rolloffFactor,u.panningModel=l.panningModel):(n._pos||(n._pos=e._pos||[0,0,-.5]),o(n,"spatial"))}return e},Sound.prototype.init=function(e){return function(){var A=this,t=A._parent;A._orientation=t._orientation,A._stereo=t._stereo,A._pos=t._pos,A._pannerAttr=t._pannerAttr,e.call(this),A._stereo?t.stereo(A._stereo):A._pos&&t.pos(A._pos[0],A._pos[1],A._pos[2],A._id)}}(Sound.prototype.init),Sound.prototype.reset=function(e){return function(){var A=this,t=A._parent;return A._orientation=t._orientation,A._stereo=t._stereo,A._pos=t._pos,A._pannerAttr=t._pannerAttr,A._stereo?t.stereo(A._stereo):A._pos?t.pos(A._pos[0],A._pos[1],A._pos[2],A._id):A._panner&&(A._panner.disconnect(0),A._panner=void 0,t._refreshBuffer(A)),e.call(this)}}(Sound.prototype.reset);var o=function(e,A){A=A||"spatial",A==="spatial"?(e._panner=Howler.ctx.createPanner(),e._panner.coneInnerAngle=e._pannerAttr.coneInnerAngle,e._panner.coneOuterAngle=e._pannerAttr.coneOuterAngle,e._panner.coneOuterGain=e._pannerAttr.coneOuterGain,e._panner.distanceModel=e._pannerAttr.distanceModel,e._panner.maxDistance=e._pannerAttr.maxDistance,e._panner.refDistance=e._pannerAttr.refDistance,e._panner.rolloffFactor=e._pannerAttr.rolloffFactor,e._panner.panningModel=e._pannerAttr.panningModel,typeof e._panner.positionX<"u"?(e._panner.positionX.setValueAtTime(e._pos[0],Howler.ctx.currentTime),e._panner.positionY.setValueAtTime(e._pos[1],Howler.ctx.currentTime),e._panner.positionZ.setValueAtTime(e._pos[2],Howler.ctx.currentTime)):e._panner.setPosition(e._pos[0],e._pos[1],e._pos[2]),typeof e._panner.orientationX<"u"?(e._panner.orientationX.setValueAtTime(e._orientation[0],Howler.ctx.currentTime),e._panner.orientationY.setValueAtTime(e._orientation[1],Howler.ctx.currentTime),e._panner.orientationZ.setValueAtTime(e._orientation[2],Howler.ctx.currentTime)):e._panner.setOrientation(e._orientation[0],e._orientation[1],e._orientation[2])):(e._panner=Howler.ctx.createStereoPanner(),e._panner.pan.setValueAtTime(e._stereo,Howler.ctx.currentTime)),e._panner.connect(e._node),e._paused||e._parent.pause(e._id,!0).play(e._id,!0)}})()});var Xw={};dc(Xw,{default:()=>Ta});module.exports=Ph(Xw);var Na=require("three");var RA=class{modifyById(e,A){let t=this;if(t[e]===void 0)throw new Error("not expected");{let n={...t,[e]:A};return Object.setPrototypeOf(n,RA.prototype),n}}add(e,A){return this.runOp({type:1,id:e,data:A})?.data??this}runOp(e){let A=this;if(e.type===1){let t=A[e.id],r;t===void 0?r={type:2,id:e.id}:r={type:1,id:e.id,data:t};let{id:n,data:i}=e,a={...A,[n]:i};return Object.setPrototypeOf(a,RA.prototype),{data:a,actual:e,reverse:r}}else if(e.type===2){let{id:t}=e,r=A[t];if(r===void 0)return null;{let n={...A};return Object.setPrototypeOf(n,RA.prototype),delete n[t],{data:n,actual:e,reverse:{type:1,id:t,data:r}}}}return null}};function hn(o){if(o.deepFreeze!==void 0){o.deepFreeze(o);return}let e=Object.getOwnPropertyNames(o);for(let A of e){let t=o[A];t&&typeof t=="object"&&hn(t)}return Object.freeze(o)}function fc(o,e){let A=0;for(;A<o.length&&A<e.length;){if(o[A]<e[A])return-1;if(o[A]>e[A])return 1;A+=1}return A!==e.length?-1:A!==o.length?1:0}var Kr=class extends Error{};var gA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,gA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)hn(this[A]),A++}fillCaches0(A){this.objCaches.set(A.id,A)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let A of this)this.fillCaches0(A)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}data(A){return this.get(A)?.data}get(A){return this.fillCaches(),this.objCaches.get(A)}modifyById(A,t){if(this.get(A)===void 0)throw new Error("not expected");{let n=this,i=n.findIndex(u=>u.id===A);if(i<0)throw new Error("not expected");let a=n[i];return n=[...n],n[i]={...a,data:t},this.modifyArrayBy(n)}}modifyArrayBy(A){Object.setPrototypeOf(A,gA.prototype);let t=A;return mc()||t.fillCaches(),t}runOp(A){switch(A.type){case 4:return this.addOp(A);case 5:return this.deleteOp(A);case 6:return this.moveOp(A)}return null}addOp(A){let{fi:t,id:r,data:n}=A,i=this,a={fi:t,id:r,data:n};return i=[...i,a],i.sort((u,s)=>u.fi-s.fi),A.localIndex=i.indexOf(a),{data:this.modifyArrayBy(i),actual:A,reverse:{type:5,id:r}}}deleteOp(A){let{id:t}=A,r=this,n=r.findIndex(l=>l.id===t);if(n===-1)return null;A.localIndex=n,r=[...r];let i=r.splice(n,1)[0];return{data:this.modifyArrayBy(r),actual:A,reverse:{type:4,...i}}}moveOp(A){let{fi:t,id:r}=A,n=this;n=[...n];let i=n.findIndex(s=>s.id===r);if(i===-1)return null;let a=n[i].fi,l={...n[i],fi:t};return n[i]=l,n.sort((s,c)=>s.fi-c.fi),A.localIndex=n.indexOf(l),{data:this.modifyArrayBy(n),actual:A,reverse:{type:6,fi:a,id:r}}}previous(A){if(A===null)return this.length===0?null:this[this.length-1].id;let t=null;for(let r of this){if(r.id===A)return t;t=r.id}return null}insertBeforeHelper(A,t){return this.insertAfterHelper(this.previous(A),t)}insertAfterHelper(A,t){let r=this;if(A===null){if(r.length===0)return pt(0,t,t);{let n=r[0].fi;return pt(n-t,n,t)}}else{let n=this.get(A);if(n===void 0)throw new Error("illegal args");let i=r.find(a=>a.fi>n.fi);if(i===void 0){let a=r[r.length-1].fi;return pt(a,a+t,t)}else return pt(n.fi,i.fi,t)}}};function Di(o){let e={...o};return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}function pt(o,e,A){if(o===void 0?e===void 0?(o=0,e=10):o=e-10:e===void 0&&(e=o+10),o>e){let n=o;o=e,e=n}let t=[],r=1/(A+1);for(let n=0;n<A;n++){let i=o+(e-o)*(n+.75+Math.random()*.5)*r;t.push(i)}return t}function Zr(o){return o instanceof Uint8Array||o instanceof Uint16Array||o instanceof Uint32Array||o instanceof Int8Array||o instanceof Int16Array||o instanceof Int32Array||o instanceof Float32Array||o instanceof Float64Array}function mc(){return typeof process<"u"}function hc(o,e){for(let A of o)e(A.id,A.data)!==!0&&hc(A.children,e)}function gc(o,e){if(e(o.id,o.data)!==!0)for(let A of o.children)gc(A,e)}var JA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,JA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)hn(this[A]),A++}fillCaches0(A,t){this.objCaches.set(A.id,A),this.parentCaches.set(A.id,t);for(let r of A.children)this.fillCaches0(r,A.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let A of this)this.fillCaches0(A,null)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}nonExistOrDescendantOf(A,t){if(!this.has(A))return!0;for(;A;){let r=this.parent(A);if(r===t)return!0;A=r}return!1}isDescendantOf(A,t){for(;A;){let r=this.parent(A);if(r===t)return!0;A=r}return!1}data(A){return this.get(A)?.data}has(A){return this.childrenOf(A)!==void 0}get(A){return this.fillCaches(),this.objCaches.get(A)}childrenOf(A){return A===null?this:this.get(A)?.children}traverseFrom(A,t){if(A===null)this.traverse(t);else{let r=this.get(A);r&&gc(r,t)}}traverse(A){hc(this,A)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(A){return this.fillCaches(),this.parentCaches.get(A)}childrenArray(A){return A===null?this:this.get(A).children}modifyById(A,t){if(this.get(A)===void 0)throw new Error("not expected");{let n=this.parent(A),i=this.childrenArray(n),a=i.findIndex(s=>s.id===A);if(a<0)throw new Error("not expected");let l=i[a];return i=[...i],i[a]={...l,data:t},this.modifyArrayBy(n,i)}}modifyArrayBy(A,t){let r=A,n=t;for(;r!==null;){let a=n,l=r;if(r=this.parent(r),r===void 0)throw new Error;n=this.childrenArray(r);let u=n.findIndex(s=>s.id===l);if(u<0)throw new Error;n=[...n],n[u]={...n[u],children:a}}Object.setPrototypeOf(n,JA.prototype);let i=n;return i.fillCaches(),i}runOp(A){switch(A.type){case 7:return this.addOp(A);case 8:return this.deleteOp(A);case 9:return this.moveOp(A)}return null}checkDuplicatedIdRec({id:A,children:t}){if(this.get(A)!==void 0)return!0;for(let r of t)if(this.checkDuplicatedIdRec(r))return!0;return!1}addOp(A){let{parent:t,fi:r,id:n,data:i,children:a}=A;if(t!==null&&this.get(t)===void 0)return null;if(this.checkDuplicatedIdRec(A))return null;{let l=t,u=this.childrenArray(l),s={fi:r,id:n,data:i,children:a};return u=[...u,s],u.sort((d,p)=>d.fi-p.fi),A.localIndex=u.indexOf(s),{data:this.modifyArrayBy(l,u),actual:A,reverse:{type:8,id:n}}}}deleteOp(A){let{id:t}=A;if(this.get(t)===null)return null;{let r=this.parent(t);if(r===void 0)return null;let n=this.childrenArray(r),i=n.findIndex(u=>u.id===t);A.localIndex=i,n=[...n];let a=n.splice(i,1)[0];return{data:this.modifyArrayBy(r,n),actual:A,reverse:{type:7,...a,parent:r}}}}moveOp(A){let{parent:t,fi:r,id:n}=A;if(t!==null&&this.get(t)===void 0)return this.deleteOp({type:8,id:n});if(t!==null){let p=t;for(;p!==null;){if(p===void 0)throw new Error;if(p===n)throw new Kr("cyclic tree");p=this.parent(p)}}let i=this.parent(n);if(i===void 0)return null;let a=i,l=this.childrenArray(i),u=l.findIndex(p=>p.id===n);l=[...l];let s=l.splice(u,1)[0],c=this.modifyArrayBy(i,l);i=t,l=c.childrenArray(i);let d=s.fi;return s={...s,fi:r},l=[...l,s],l.sort((p,f)=>p.fi-f.fi),A.localIndex=l.indexOf(s),c=c.modifyArrayBy(i,l),{data:c,actual:A,reverse:{type:9,parent:a,fi:d,id:n}}}previous(A,t){if(t===null){let n=this.childrenArray(A);return n.length===0?null:n[n.length-1].id}let r=null;for(let n of this.childrenArray(A)){if(n.id===t)return r;r=n.id}return null}traverseSortNext(A){let t=this.parent(A);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(i=>i.id===A)+1;if(n<r.length)return r[n].id;if(t)return this.traverseSortNext(t)}}sortNext(A){let t=this.childrenArray(A);return t.length>0?t[0].id:this.traverseSortNext(A)}traverseSortPrevious(A){let t=this.childrenArray(A);return t.length>0?this.traverseSortPrevious(t[t.length-1].id):A}sortPrevious(A){let t=this.parent(A);if(t!==void 0){let r=this.childrenArray(t),n=r.findIndex(i=>i.id===A)-1;return n>=0?this.traverseSortPrevious(r[n].id):t}}getAllSorted(A){let t=[];for(let r of A){let n=this.getWithSortKey(r.id);n!==void 0&&t.push({...r,...n})}t.sort((r,n)=>fc(r.sortKey,n.sortKey));for(let r of t)delete r.sortKey;return t}getWithSortKey(A){var t=A;let r=[],n=this.get(t),i=n;if(n!==void 0){for(;t;)r.splice(0,0,n.fi),t=this.parent(t),t!==null&&(n=this.get(t));return{...i,sortKey:r}}}insertBeforeHelper(A,t,r){return this.insertAfterHelper(A,this.previous(A,t),r)}insertAfterHelper(A,t,r){let n=this.childrenArray(A);if(t===null){if(n.length===0)return pt(0,r,r);{let i=n[0].fi;return pt(i-r,i,r)}}else{let i=this.get(t);if(i===void 0||this.parent(t)!==A)throw new Error("illegal args");let a=n.find(l=>l.fi>i.fi);if(a===void 0){let l=n[n.length-1].fi;return pt(l,l+r,r)}else return pt(i.fi,a.fi,r)}}};var Jr;(e=>{function o(A,t){if(t.type!==0)return null;if(Array.isArray(A)){let r=t.props,n={},i=[...A],a=!1;if(r)for(let l of Object.keys(r)){let u=parseInt(l);if(isNaN(u))throw new Error("wrong index");n[l]=i[u],i[u]=r[l],a=!0}return a?{data:i,actual:t,reverse:{type:0,props:n}}:null}else{let r=t.props,n={},i={...A},a=!1;if(r)for(let l of Object.keys(r)){n[l]=i[l];let u=r[l];u===void 0?delete i[l]:i[l]=u,a=!0}return a?{data:i,actual:t,reverse:{type:0,props:n}}:null}}e.runOp=o})(Jr||(Jr={}));function _r(o){return o&&typeof o=="object"&&o instanceof de}var de=class{unusedFunOverridesTable(e){}runOp(e){let A=[],t=this,r=0,n={};for(;r<e.path.length;){if(A.push(t),t=t===void 0?void 0:t[e.path[r]],t!==void 0&&!_r(t))return null;r+=1}t=t?Di(t):new de;for(let[l,u]of Object.entries(e.props)){let s=t[l];n[l]=s,u===void 0?delete t[l]:t[l]=u}for(;r>0;){if(Object.keys(t).length===0){let l=A[r-1];l&&(t=Di(l),delete t[e.path[r-1]])}else{let l=A[r-1];if(l){let u=Di(l);u[e.path[r-1]]=t,t=u}else{let u=new de;u[e.path[r-1]]=t,t=u}}r-=1}let i=Object.setPrototypeOf(t,de.prototype),a={...e,props:n};return{data:i,actual:e,reverse:a}}},Oa;(t=>{function o(r,n){return gn(r,n)??r}t.apply=o;function e(r,n){return yc(r,n)}t.merge=e;function A(r,n){let i=0,a=n.path,l=r;for(;i<a.length&&l!==void 0;){if(l=Ut.zoomOnce(l,a[i]),l===void 0)return n;if(!_r(l))return;i+=1}if(l===void 0)return n;if(!!_r(l))if(n.type===0){let u={...n.props};for(let s of Object.keys(l))delete u[s];return{...n,props:u}}else if(n.type===1||n.type===4||n.type===7){let u=Ca([n],l);return u?(console.log(u),u):n}else return n}t.filterOp=A})(Oa||(Oa={}));function Ca(o,e){if(e===void 0)return;let A=!1,t=o.map(r=>{let n=r.id,i=gn(r.data,e[n]);if(A=A||i!==void 0,i===void 0&&(i=r.data),r.children){let a=Ca(r.children,e);return a!==void 0?A=!0:a=r.children,{...r,id:n,data:i,children:a}}else return{...r,id:n,data:i}});if(A)return t}function Oh(o,e){if(e===void 0)return;let A=!1,t=o.map(r=>{let n=r.id,i=gn(r.data,e[n]);return A=A||i!==void 0,i===void 0&&(i=r.data),{...r,id:n,data:i}});if(A)return Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}function gn(o,e){if(!_r(e))return e;if(o instanceof JA){let A=Ca(o,e);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A}else{if(o instanceof gA)return Oh(o,e);if(Array.isArray(o)){let A=!1,t=o.map((r,n)=>{let i=gn(r,e[n]);return A=A||i!==void 0,i===void 0&&(i=r),i});return A?(Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t):void 0}else if(o&&typeof o=="object"){let A={},t=!1;for(let[r,n]of Object.entries(o)){let i=gn(n,e[r]);t=t||i!==void 0,i===void 0&&(i=n),A[r]=i}return t?(Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A):void 0}}}function yc(o,e){if(o===void 0)return e;if(e===void 0)return o;if(!_r(e))return e;if(!_r(o))return Oa.apply(o,e);let A=new Set;for(let r of Object.keys(o))A.add(r);for(let r of Object.keys(e))A.add(r);let t=new de;for(let r of A){let n=yc(o===void 0?void 0:o[r],e===void 0?void 0:e[r]);t[r]=n}return t}function xc(o,e){let A={cur:[],result:[],len:0};return o=yn(o,e,A)??o,[o,A.result]}function Gi(o,e){return o===null?null:(o.cur[o.len]=e,o.len+=1,o)}function Ri(o){o&&(o.len-=1)}function Ch(o){if(o===null)return null;o.result.push(o.cur.slice(0,o.len))}function vc(o,e,A){let t=!1,r=o.map(n=>{let i=n.id,a=e[i];if(a!==void 0&&typeof a=="string"&&(t=!0,i=a,A!==null))throw new Error("not supported");let l=yn(n.data,e,Gi(A,i));Ri(A),t=t||l!==void 0,l===void 0&&(l=n.data);let u=vc(n.children,e,A);return u!==void 0?t=!0:u=n.children,{...n,id:i,data:l,children:u}});if(t)return r}function Lh(o,e,A){let t=!1,r=o.map(n=>{let i=n.id,a=e[i];if(a!==void 0&&typeof a=="string"&&(t=!0,i=a,A!==null))throw new Error("not supported");let l=yn(n.data,e,Gi(A,i));return Ri(A),t=t||l!==void 0,l===void 0&&(l=n.data),{...n,id:i,data:l}});if(t)return Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r}function yn(o,e,A){if(o instanceof JA){let t=vc(o,e,A);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}else{if(o instanceof gA)return Lh(o,e,A);if(Array.isArray(o)){let t=!1,r=o.map((n,i)=>{let a=yn(n,e,Gi(A,i));return Ri(A),t=t||a!==void 0,a===void 0&&(a=n),a});return t?(Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r):void 0}else if(o&&typeof o=="object"&&!Zr(o)){let t={},r=!1;for(let[n,i]of Object.entries(o))if(n!=="name"&&n!=="text"){let a=e[n];if(typeof a=="string"){if(A!==null)throw new Error("not supported");r=!0,n=a}let l=yn(i,e,Gi(A,n));Ri(A),r=r||l!==void 0,l===void 0&&(l=i),t[n]=l}else t[n]=i;return r?(Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t):void 0}else if(typeof o=="string"){let t=e[o];if(t!==void 0){if(o.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Ch(A)}return t}else return}}var bc;(e=>{function o(A,t){let r=Ut.zoom(t,A.path);if(typeof r=="object"){let n={};for(let i of Object.keys(A.props))n[i]=r[i];return{...A,props:n}}else return{...A,props:{}}}e.replaceProps=o})(bc||(bc={}));var tr;(a=>{function o(l,u){return{...l,path:l.path.slice(u)}}a.drop=o;function e(l,u){return A(l,u)?.data??l}a.applySimple=e;function A(l,u){let s=u.path;for(var c=[];;){let d;if(l instanceof de&&u.type===0&&(d=l.runOp({...u,path:s.slice(c.length)}),d===null&&(d=void 0)),c.length===s.length&&(l instanceof JA||l instanceof gA||l instanceof RA?d=l.runOp(u):d=Jr.runOp(l,u)),d!==void 0)if(d!==null){let m=d.data;for(let h=c.length-1;h>=0;h--){let x=s[h],y=c[h];if(y instanceof JA){if(typeof x=="number")throw new Error("illegal arg");m=y.modifyById(x,m)}else if(y instanceof gA){if(typeof x=="number")throw new Error("illegal arg");m=y.modifyById(x,m)}else if(y instanceof RA){if(typeof x=="number")throw new Error("illegal arg");m=y.modifyById(x,m)}else if(y instanceof de){let b={...y,[x]:m};m=Object.setPrototypeOf(b,de.prototype)}else if(typeof y=="object")if(Array.isArray(y)){if(typeof x=="string"&&(x=parseInt(x),isNaN(x)))throw new Error("Invalid path");let b=m;m=[...y],m[x]=b}else m={...y,[x]:m};else return null}return{data:m,actual:{...d.actual,path:s},reverse:{...d.reverse,path:s}}}else return null;let p=s[c.length],f;if(l instanceof JA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else if(l instanceof gA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else l!==null&&(f=l[p]);if(f!==void 0)c.push(l),l=f;else return null}}a.apply=A;function t(l,u){for(let s=0;s<l.length&&s<u.length;s++)if(l[s]!==u[s])return!0;return!1}a.pathDisjoint=t;function r(l,u){if(l.length!==u.length)return!1;for(let s=0;s<l.length;s++)if(l[s]!==u[s])return!1;return!0}a.pathEq=r;function n(l,u){return t(l.path,u.path)}a.commutative=n;function i(l,u){return l.type===0&&u.type===0&&r(l.path,u.path)?Object.keys(l.props).every(s=>u.props[s]!==void 0):!1}a.subsumed=i})(tr||(tr={}));var wc;(l=>{function o(){return[]}l.empty=o;function e(u,s){let c=[];for(let d of u){let[p,...f]=d.path;p===s&&c.push({...d,path:f})}return c}l.removePrefix=e;function A(u,s){return u.map(c=>({...c,path:[s,...c.path]}))}l.addPrefix=A;function t(u,s){return[...u,...s]}l.concat=t;function r(u,s){return[...u.filter(d=>!s.some(p=>tr.subsumed(d,p))),...s]}l.compress=r;function n(u,s){return u.every(c=>s.every(d=>tr.commutative(c,d)))}l.commutative=n;function i(u,s){for(let c of s){let d=a(u,c);d!==null&&(u=d.data)}return u}l.applyAll=i;function a(u,s){var c=u;let d=[],p=[];for(let f of s)try{if(f.type===3){let m=Ut.zoom(c,[...f.path,f.id]),h=tr.apply(c,{...f,type:2});if(h!==null){c=h.data;let[x,y]=xc(c,{[f.id]:m});c=x;for(let b of y){let w=b[b.length-1];b.splice(b.length-1,1),d.push({type:0,path:b,props:{[w]:m}}),p.push({type:0,path:b,props:{[w]:f.id}})}p.push(h.reverse),d.push(h.actual)}}else{let m=tr.apply(c,f);m!==null&&(d.push(m.actual),c=m.data,p.push(m.reverse))}}catch(m){if(m instanceof Kr)return null;throw m}return{data:c,actual:d,reverse:p.reverse()}}l.apply=a})(wc||(wc={}));var Sc=Symbol(),xn=Symbol(),Lr=class{reportOp(e,A,t=[]){let r=this;if(A===null)return;r._current=A.data;let n=t;for(;!(r instanceof Fi);){let i=r._path,a=r._current;if(i!==""&&n.splice(0,0,i),r=r._parent,r===null)return;r.update(i,a)}r.push(n,e,A.actual,A.reverse)}deleteChildren(e){if(this._children){let A=this._children[e];if(A){let t=A[xn];t&&t(),delete this._children[e]}}}},Ma=class extends Lr{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t}update(e,A){if(Array.isArray(this._current)){if(typeof e=="string"&&(e=parseInt(e),isNaN(e)))throw new Error("Invalid path");this._current=[...this._current],this._current[e]=A}else this._current={...this._current,[e]:A}}runOp(e){this.reportOp(e,Jr.runOp(this._current,e),e.path)}},Ba=class extends Lr{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t}update(e,A){this._current={...this._current,[e]:A},Object.setPrototypeOf(this._current,RA.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},Tc={get(o,e){if(e===xn)return()=>{o._parent=null};if(e===Sc)return o._current;let{_current:A,_children:t}=o;if(e==="push"&&Array.isArray(A))throw new Error("not supported to expand array");let r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A[e],i=ji(o,e,n);return i!==n?(t===void 0&&(t={},o._children=t),t[e]=i,i):n},has(o,e){return e in o._current},ownKeys(o){return Reflect.ownKeys(o._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(o){return Object.getPrototypeOf(o._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(o,e){let A=o._current,t=Reflect.getOwnPropertyDescriptor(A,e);return t&&{writable:!0,configurable:!0,enumerable:t.enumerable,value:A[e]}}},Mh={...Tc,set(o,e,A){let t={type:0,props:{[e]:Ce(A)??A}};return o.deleteChildren(e),o.runOp(t),!0},deleteProperty(o,e){let A={type:0,props:{[e]:void 0}};return o.deleteChildren(e),o.runOp(A),!0}},Bh={...Tc,set(o,e,A){return A===void 0?this.deleteProperty(o,e):(o.deleteChildren(e),o.runOp({type:1,id:e,data:A})),!0},deleteProperty(o,e){return o.runOp({type:2,id:e}),!0}},$r=class extends Lr{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[xn]=()=>{this._parent=null}}unproxy(){return this._current}update(e,A){this._current=this._current.modifyById(e,A)}runOp(e){this.reportOp(e,this._current.runOp(e))}randomId(){return this._current.randomId()}isDescendantOf(e,A){return this._current.isDescendantOf(e,A)}childrenOf(e){return this._current.childrenOf(e)}traverse(e){return this._current.traverse(e)}get(e){return this._current.get(e)}parent(e){return this._current.parent(e)}traverse(e){this._current.traverse((A,t)=>{e(A,this.data(A))})}data(e){let{_current:A,_children:t}=this,r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A.get(e)?.data,i=ji(this,e,n);return i!==n?(t===void 0&&(t={},this._children=t),t[e]=i,i):n}add(e,A,t,r,n){this.runOp({type:7,parent:e,fi:A,id:t,data:r,children:n})}move(e,A,t){this.runOp({type:9,parent:e,fi:A,id:t})}insertAfter(e,A,t){let r=this._current.insertAfterHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.add(e,r[n],i.id,i.data,i.children)}}insertBefore(e,A,t){let r=this._current.insertBeforeHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.add(e,r[n],i.id,i.data,i.children)}}moveAfter(e,A,t){let r=this._current.insertAfterHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.move(e,r[n],i)}}moveBefore(e,A,t){let r=this._current.insertBeforeHelper(e,A,t.length);for(let n=0;n<t.length;n++){let i=t[n];this.move(e,r[n],i)}}delete(e){this.deleteChildren(e),this.runOp({type:8,id:e})}sortNext(e){return this._current.sortNext(e)}sortPrevious(e){return this._current.sortPrevious(e)}getAllSorted(e){return this._current.getAllSorted(e)}},Vi=class extends Lr{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t,this[xn]=()=>{this._parent=null}}feedOp(e){let{path:A,...t}=e;this.reportOp(t,tr.apply(this._current,e),A)}},Ao=class extends Lr{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[xn]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(e){let A=this.length;for(let t=0;t<A;t++){let r=this._current[t].id,n=this._current[t].fi;e(this.data(this._current[t].id),r,n)}}find(e){let A=this.length;for(let t=0;t<A;t++){let r=this._current[t].id;if(e(this.data(r),r))return this.get(r)}}update(e,A){this._current=this._current.modifyById(e,A)}randomId(){return this._current.randomId()}get(e){return{...this._current.get(e),data:this.data(e)}}data(e){let{_current:A,_children:t}=this,r=t===void 0?void 0:t[e];if(r!==void 0)return r;let n=A.get(e)?.data,i=ji(this,e,n);return i!==n?(t===void 0&&(t={},this._children=t),t[e]=i,i):n}runOp(e){this.reportOp(e,this._current.runOp(e))}add(e,A,t){this.runOp({type:4,fi:e,id:A,data:t})}move(e,A){this.runOp({type:6,fi:e,id:A})}insertAfter(e,A){let t=this._current.insertAfterHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(t[r],n.id,n.data)}}insertBefore(e,A){let t=this._current.insertBeforeHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(t[r],n.id,n.data)}}moveAfter(e,A){let t=this._current.insertAfterHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(t[r],n)}}moveBefore(e,A){let t=this._current.insertBeforeHelper(e,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(t[r],n)}}delete(e){this.deleteChildren(e),this.runOp({type:5,id:e})}};function La(o,e,A){if(o.length>0){let t=o[o.length-1];if(t.type===0&&e.type===0&&Ut.equal(t.path,A)){Object.assign(t.props,e.props);return}}o.push({...e,path:A})}var Fi=class{constructor(e){this.ts=[],this.actual=[],this.reverse=[],this._current=e}update(e,A){if(e!=="")throw new Error("");this._current=A}push(e,A,t,r){La(this.ts,A,e),La(this.actual,t,e),La(this.reverse,r,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function ji(o,e,A){return A instanceof JA?new $r(o,e,A):A instanceof gA?new Ao(o,e,A):A instanceof de?new Vi(o,e,A):A instanceof RA?new Proxy(new Ba(o,e,A),Bh):A!==null&&typeof A=="object"?Zr(A)?A:new Proxy(new Ma(o,e,A),Mh):A}function Ea(o){let e=new Fi(o);return[ji(e,"",o),e]}function Da(o,e){let[A,t]=Ea(o);return e(A),t.result()}function Ce(o){return o instanceof $r||o instanceof Ao||o instanceof Vi?o._current:o!==null&&typeof o=="object"?o[Sc]:o}var Ut;(r=>{function o(n,i){if(i.length===n.length)for(var a=0;a<n.length;){if(n[a]!==i[a])return!1;a+=1}else return!1;return!0}r.equal=o;function e(n,i,a){let l=t(a,n);if(l!==void 0&&typeof l=="object"&&l!==null){let u={...i};return Object.keys(l).forEach(s=>{delete u[s]}),u}else return i}r.removeOverridden=e;function A(n,i){if((n instanceof JA||n instanceof $r)&&typeof i=="string")return n.data(i);if((n instanceof gA||n instanceof Ao)&&typeof i=="string")return n.data(i);if(typeof i=="number"&&Array.isArray(n))return n[i];if(typeof i=="string"&&typeof n=="object"&&n!==null)return n[i]}r.zoomOnce=A;function t(n,i,a=0){for(;a<i.length&&n!==void 0;)n=A(n,i[a]),a+=1;return n}r.zoom=t})(Ut||(Ut={}));var zi=class{},vn=class extends zi{constructor(A){super();this.id=A}},bn=class extends zi{constructor(A){super();this.data=A}};var Ra;try{Ra=new TextDecoder}catch{}var oA,or,C=0;var Bc=[],Va=Bc,Fa=0,Le={},NA,rr,qe=0,ft=0,ze,Ht,be=[],LA,Nc={useRecords:!1,mapsAsObjects:!0},wn=class{},za=new wn;za.name="MessagePack 0xC1";var eo=!1,mt=class{constructor(e){e&&(e.useRecords===!1&&e.mapsAsObjects===void 0&&(e.mapsAsObjects=!0),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0)),Object.assign(this,e)}unpack(e,A){if(oA)return Vc(()=>(Ui(),this?this.unpack(e,A):mt.prototype.unpack.call(Nc,e,A)));or=A>-1?A:e.length,C=0,Fa=0,ft=0,rr=null,Va=Bc,ze=null,oA=e;try{LA=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(t){throw oA=null,e instanceof Uint8Array?t:new Error("Source must be a Uint8Array or Buffer but was a "+(e&&typeof e=="object"?e.constructor.name:typeof e))}if(this instanceof mt){if(Le=this,this.structures)return NA=this.structures,ki();(!NA||NA.length>0)&&(NA=[])}else Le=Nc,(!NA||NA.length>0)&&(NA=[]);return ki()}unpackMultiple(e,A){let t,r=0;try{eo=!0;let n=e.length,i=this?this.unpack(e,n):qi.unpack(e,n);if(A){for(A(i);C<n;)if(r=C,A(ki())===!1)return}else{for(t=[i];C<n;)r=C,t.push(ki());return t}}catch(n){throw n.lastPosition=r,n.values=t,n}finally{eo=!1,Ui()}}_mergeStructures(e,A){e=e||[];for(let t=0,r=e.length;t<r;t++){let n=e[t];n&&(n.isShared=!0,t>=32&&(n.highByte=t-32>>5))}e.sharedLength=e.length;for(let t in A||[])if(t>=0){let r=e[t],n=A[t];n&&(r&&((e.restoreStructures||(e.restoreStructures=[]))[t]=r),e[t]=n)}return this.structures=e}decode(e,A){return this.unpack(e,A)}};function ki(){try{if(!Le.trusted&&!eo){let e=NA.sharedLength||0;e<NA.length&&(NA.length=e)}let o=UA();if(C==or)NA.restoreStructures&&Ic(),NA=null,oA=null,Ht&&(Ht=null);else if(C>or){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}else if(!eo)throw new Error("Data read, but end of buffer not reached");return o}catch(o){throw NA.restoreStructures&&Ic(),Ui(),(o instanceof RangeError||o.message.startsWith("Unexpected end of buffer"))&&(o.incomplete=!0),o}}function Ic(){for(let o in NA.restoreStructures)NA[o]=NA.restoreStructures[o];NA.restoreStructures=null}function UA(){let o=oA[C++];if(o<160)if(o<128){if(o<64)return o;{let e=NA[o&63]||Le.getStructures&&Ec()[o&63];return e?(e.read||(e.read=ka(e,o&63)),e.read()):o}}else if(o<144)if(o-=128,Le.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Gc()]=UA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(UA(),UA());return e}else{o-=144;let e=new Array(o);for(let A=0;A<o;A++)e[A]=UA();return e}else if(o<192){let e=o-160;if(ft>=C)return rr.slice(C-qe,(C+=e)-qe);if(ft==0&&or<140){let A=e<16?Ua(e):Dc(e);if(A!=null)return A}return ja(e)}else{let e;switch(o){case 192:return null;case 193:return ze?(e=UA(),e>0?ze[1].slice(ze.position1,ze.position1+=e):ze[0].slice(ze.position0,ze.position0-=e)):za;case 194:return!1;case 195:return!0;case 196:return Ga(oA[C++]);case 197:return e=LA.getUint16(C),C+=2,Ga(e);case 198:return e=LA.getUint32(C),C+=4,Ga(e);case 199:return Mr(oA[C++]);case 200:return e=LA.getUint16(C),C+=2,Mr(e);case 201:return e=LA.getUint32(C),C+=4,Mr(e);case 202:if(e=LA.getFloat32(C),Le.useFloat32>2){let A=Wi[(oA[C]&127)<<1|oA[C+1]>>7];return C+=4,(A*e+(e>0?.5:-.5)>>0)/A}return C+=4,e;case 203:return e=LA.getFloat64(C),C+=8,e;case 204:return oA[C++];case 205:return e=LA.getUint16(C),C+=2,e;case 206:return e=LA.getUint32(C),C+=4,e;case 207:return Le.int64AsNumber?(e=LA.getUint32(C)*4294967296,e+=LA.getUint32(C+4)):e=LA.getBigUint64(C),C+=8,e;case 208:return LA.getInt8(C++);case 209:return e=LA.getInt16(C),C+=2,e;case 210:return e=LA.getInt32(C),C+=4,e;case 211:return Le.int64AsNumber?(e=LA.getInt32(C)*4294967296,e+=LA.getUint32(C+4)):e=LA.getBigInt64(C),C+=8,e;case 212:if(e=oA[C++],e==114)return Mc(oA[C++]&63);{let A=be[e];if(A)return A.read?(C++,A.read(UA())):A.noBuffer?(C++,A()):A(oA.subarray(C,++C));throw new Error("Unknown extension "+e)}case 213:return e=oA[C],e==114?(C++,Mc(oA[C++]&63,oA[C++])):Mr(2);case 214:return Mr(4);case 215:return Mr(8);case 216:return Mr(16);case 217:return e=oA[C++],ft>=C?rr.slice(C-qe,(C+=e)-qe):Dh(e);case 218:return e=LA.getUint16(C),C+=2,ft>=C?rr.slice(C-qe,(C+=e)-qe):Gh(e);case 219:return e=LA.getUint32(C),C+=4,ft>=C?rr.slice(C-qe,(C+=e)-qe):Rh(e);case 220:return e=LA.getUint16(C),C+=2,Oc(e);case 221:return e=LA.getUint32(C),C+=4,Oc(e);case 222:return e=LA.getUint16(C),C+=2,Cc(e);case 223:return e=LA.getUint32(C),C+=4,Cc(e);default:if(o>=224)return o-256;if(o===void 0){let A=new Error("Unexpected end of MessagePack data");throw A.incomplete=!0,A}throw new Error("Unknown MessagePack token "+o)}}}var Eh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function ka(o,e){function A(){if(A.count++>2){let r=o.read=new Function("r","return function(){return {"+o.map(n=>Eh.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(UA);return o.highByte===0&&(o.read=Pc(e,o.read)),r()}let t={};for(let r=0,n=o.length;r<n;r++){let i=o[r];t[i]=UA()}return t}return A.count=0,o.highByte===0?Pc(e,A):A}var Pc=(o,e)=>function(){let A=oA[C++];if(A===0)return e();let t=o<32?-(o+(A<<5)):o+(A<<5),r=NA[t]||Ec()[t];if(!r)throw new Error("Record id is not defined for "+t);return r.read||(r.read=ka(r,o)),r.read()};function Ec(){let o=Vc(()=>(oA=null,Le.getStructures()));return NA=Le._mergeStructures(o,NA)}var ja=Hi,Dh=Hi,Gh=Hi,Rh=Hi;function Hi(o){let e;if(o<16&&(e=Ua(o)))return e;if(o>64&&Ra)return Ra.decode(oA.subarray(C,C+=o));let A=C+o,t=[];for(e="";C<A;){let r=oA[C++];if((r&128)===0)t.push(r);else if((r&224)===192){let n=oA[C++]&63;t.push((r&31)<<6|n)}else if((r&240)===224){let n=oA[C++]&63,i=oA[C++]&63;t.push((r&31)<<12|n<<6|i)}else if((r&248)===240){let n=oA[C++]&63,i=oA[C++]&63,a=oA[C++]&63,l=(r&7)<<18|n<<12|i<<6|a;l>65535&&(l-=65536,t.push(l>>>10&1023|55296),l=56320|l&1023),t.push(l)}else t.push(r);t.length>=4096&&(e+=se.apply(String,t),t.length=0)}return t.length>0&&(e+=se.apply(String,t)),e}function Oc(o){let e=new Array(o);for(let A=0;A<o;A++)e[A]=UA();return e}function Cc(o){if(Le.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Gc()]=UA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(UA(),UA());return e}}var se=String.fromCharCode;function Dc(o){let e=C,A=new Array(o);for(let t=0;t<o;t++){let r=oA[C++];if((r&128)>0){C=e;return}A[t]=r}return se.apply(String,A)}function Ua(o){if(o<4)if(o<2){if(o===0)return"";{let e=oA[C++];if((e&128)>1){C-=1;return}return se(e)}}else{let e=oA[C++],A=oA[C++];if((e&128)>0||(A&128)>0){C-=2;return}if(o<3)return se(e,A);let t=oA[C++];if((t&128)>0){C-=3;return}return se(e,A,t)}else{let e=oA[C++],A=oA[C++],t=oA[C++],r=oA[C++];if((e&128)>0||(A&128)>0||(t&128)>0||(r&128)>0){C-=4;return}if(o<6){if(o===4)return se(e,A,t,r);{let n=oA[C++];if((n&128)>0){C-=5;return}return se(e,A,t,r,n)}}else if(o<8){let n=oA[C++],i=oA[C++];if((n&128)>0||(i&128)>0){C-=6;return}if(o<7)return se(e,A,t,r,n,i);let a=oA[C++];if((a&128)>0){C-=7;return}return se(e,A,t,r,n,i,a)}else{let n=oA[C++],i=oA[C++],a=oA[C++],l=oA[C++];if((n&128)>0||(i&128)>0||(a&128)>0||(l&128)>0){C-=8;return}if(o<10){if(o===8)return se(e,A,t,r,n,i,a,l);{let u=oA[C++];if((u&128)>0){C-=9;return}return se(e,A,t,r,n,i,a,l,u)}}else if(o<12){let u=oA[C++],s=oA[C++];if((u&128)>0||(s&128)>0){C-=10;return}if(o<11)return se(e,A,t,r,n,i,a,l,u,s);let c=oA[C++];if((c&128)>0){C-=11;return}return se(e,A,t,r,n,i,a,l,u,s,c)}else{let u=oA[C++],s=oA[C++],c=oA[C++],d=oA[C++];if((u&128)>0||(s&128)>0||(c&128)>0||(d&128)>0){C-=12;return}if(o<14){if(o===12)return se(e,A,t,r,n,i,a,l,u,s,c,d);{let p=oA[C++];if((p&128)>0){C-=13;return}return se(e,A,t,r,n,i,a,l,u,s,c,d,p)}}else{let p=oA[C++],f=oA[C++];if((p&128)>0||(f&128)>0){C-=14;return}if(o<15)return se(e,A,t,r,n,i,a,l,u,s,c,d,p,f);let m=oA[C++];if((m&128)>0){C-=15;return}return se(e,A,t,r,n,i,a,l,u,s,c,d,p,f,m)}}}}}function Ga(o){return Le.copyBuffers?Uint8Array.prototype.slice.call(oA,C,C+=o):oA.subarray(C,C+=o)}function Mr(o){let e=oA[C++];if(be[e])return be[e](oA.subarray(C,C+=o));throw new Error("Unknown extension type "+e)}var Lc=new Array(4096);function Gc(){let o=oA[C++];if(o>=160&&o<192){if(o=o-160,ft>=C)return rr.slice(C-qe,(C+=o)-qe);if(!(ft==0&&or<180))return ja(o)}else return C--,UA();let e=(o<<5^(o>1?LA.getUint16(C):o>0?oA[C]:0))&4095,A=Lc[e],t=C,r=C+o-3,n,i=0;if(A&&A.bytes==o){for(;t<r;){if(n=LA.getUint32(t),n!=A[i++]){t=1879048192;break}t+=4}for(r+=3;t<r;)if(n=oA[t++],n!=A[i++]){t=1879048192;break}if(t===r)return C=t,A.string;r-=3,t=C}for(A=[],Lc[e]=A,A.bytes=o;t<r;)n=LA.getUint32(t),A.push(n),t+=4;for(r+=3;t<r;)n=oA[t++],A.push(n);let a=o<16?Ua(o):Dc(o);return a!=null?A.string=a:A.string=ja(o)}var Mc=(o,e)=>{var A=UA();let t=o;e!==void 0&&(o=o<32?-((e<<5)+o):(e<<5)+o,A.highByte=e);let r=NA[o];return r&&r.isShared&&((NA.restoreStructures||(NA.restoreStructures=[]))[o]=r),NA[o]=A,A.read=ka(A,t),A.read()},Rc=typeof self=="object"?self:global;be[0]=()=>{};be[0].noBuffer=!0;be[101]=()=>{let o=UA();return(Rc[o[0]]||Error)(o[1])};be[105]=o=>{let e=LA.getUint32(C-4);Ht||(Ht=new Map);let A=oA[C],t;A>=144&&A<160||A==220||A==221?t=[]:t={};let r={target:t};Ht.set(e,r);let n=UA();return r.used?Object.assign(t,n):(r.target=n,n)};be[112]=o=>{let e=LA.getUint32(C-4),A=Ht.get(e);return A.used=!0,A.target};be[115]=()=>new Set(UA());var Ha=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(o=>o+"Array");be[116]=o=>{let e=o[0],A=Ha[e];if(!A)throw new Error("Could not find typed array for code "+e);return new Rc[A](Uint8Array.prototype.slice.call(o,1).buffer)};be[120]=()=>{let o=UA();return new RegExp(o[0],o[1])};be[98]=o=>{let e=(o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3],A=C;C+=e-4,ze=[UA(),UA()],ze.position0=0,ze.position1=0;let t=C;C=A;try{return UA()}finally{C=t}};be[255]=o=>o.length==4?new Date((o[0]*16777216+(o[1]<<16)+(o[2]<<8)+o[3])*1e3):o.length==8?new Date(((o[0]<<22)+(o[1]<<14)+(o[2]<<6)+(o[3]>>2))/1e6+((o[3]&3)*4294967296+o[4]*16777216+(o[5]<<16)+(o[6]<<8)+o[7])*1e3):o.length==12?new Date(((o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3])/1e6+((o[4]&128?-281474976710656:0)+o[6]*1099511627776+o[7]*4294967296+o[8]*16777216+(o[9]<<16)+(o[10]<<8)+o[11])*1e3):new Date("invalid");function Vc(o){let e=or,A=C,t=Fa,r=qe,n=ft,i=rr,a=Va,l=Ht,u=ze,s=new Uint8Array(oA.slice(0,or)),c=NA,d=NA.slice(0,NA.length),p=Le,f=eo,m=o();return or=e,C=A,Fa=t,qe=r,ft=n,rr=i,Va=a,Ht=l,ze=u,oA=s,eo=f,NA=c,NA.splice(0,NA.length,...d),Le=p,LA=new DataView(oA.buffer,oA.byteOffset,oA.byteLength),m}function Ui(){oA=null,Ht=null,NA=null}function Fc(o){o.unpack?be[o.type]=o.unpack:be[o.type]=o}var Wi=new Array(147);for(let o=0;o<256;o++)Wi[o]=+("1e"+Math.floor(45.15-o*.30103));var qi=new mt({useRecords:!1}),Vh=qi.unpack,Fh=qi.unpackMultiple,jh=qi.unpack,Qi={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},zh=new Float32Array(1),$S=new Uint8Array(zh.buffer,0,4);var Yi;try{Yi=new TextEncoder}catch{}var Xi,qa,Ki=typeof Buffer<"u",Wa=Ki?Buffer.allocUnsafeSlow:Uint8Array,Uc=Ki?Buffer:Uint8Array,jc=Ki?4294967296:2144337920,V,YA,M=0,ht,gt=null,kh=/[\u0080-\uFFFF]/,Sn=Symbol("record-id"),Br=class extends mt{constructor(e){super(e),this.offset=0;let A,t,r,n,i,a,l=0,u=Uc.prototype.utf8Write?function(g,P,N){return V.utf8Write(g,P,N)}:Yi&&Yi.encodeInto?function(g,P){return Yi.encodeInto(g,V.subarray(P)).written}:!1,s=this;e||(e={});let c=e&&e.sequential,d=e.structures||e.saveStructures,p=e.maxSharedStructures;if(p==null&&(p=d?32:0),p>8160)throw new Error("Maximum maxSharedStructure is 8160");let f=e.maxOwnStructures;f==null&&(f=d?32:64),c&&!e.saveStructures&&(this.structures=[]);let m=p>32||f+p>64,h=p+64,x=p+f+64;if(x>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let y=[],b=0,w=0;this.pack=this.encode=function(g,P){if(V||(V=new Wa(8192),YA=new DataView(V.buffer,0,8192),M=0),ht=V.length-10,ht-M<2048?(V=new Wa(V.length),YA=new DataView(V.buffer,0,V.length),ht=V.length-10,M=0):M=M+7&2147483640,t=M,a=s.structuredClone?new Map:null,s.bundleStrings?(gt=["",""],V[M++]=214,V[M++]=98,gt.position=M-t,M+=4):gt=null,r=s.structures,r){r.uninitialized&&(r=s._mergeStructures(s.getStructures()));let N=r.sharedLength||0;if(N>p)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+r.sharedLength);if(!r.transitions){r.transitions=Object.create(null);for(let O=0;O<N;O++){let T=r[O];if(!T)continue;let L,B=r.transitions;for(let k=0,X=T.length;k<X;k++){let eA=T[k];L=B[eA],L||(L=B[eA]=Object.create(null)),B=L}B[Sn]=O+64}l=N}c||(r.nextId=N+64)}n&&(n=!1),i=r||[];try{if(v(g),gt){YA.setUint32(gt.position+t,M-gt.position-t);let N=gt;gt=null,v(N[0]),v(N[1])}if(s.offset=M,a&&a.idsToInsert){M+=a.idsToInsert.length*6,M>ht&&S(M),s.offset=M;let N=Hh(V.subarray(t,M),a.idsToInsert);return a=null,N}return P&Wc?(V.start=t,V.end=M,V):V.subarray(t,M)}finally{if(r){if(w<10&&w++,b>1e4)r.transitions=null,w=0,b=0,y.length>0&&(y=[]);else if(y.length>0&&!c){for(let N=0,O=y.length;N<O;N++)y[N][Sn]=0;y=[]}if(n&&s.saveStructures){let N=r.sharedLength||p;r.length>N&&(r=r.slice(0,N));let O=V.subarray(t,M);return s.saveStructures(r,l)===!1?(s._mergeStructures(s.getStructures()),s.pack(g)):(l=N,O)}}P&Zh&&(M=t)}};let v=g=>{M>ht&&(V=S(M));var P=typeof g,N;if(P==="string"){let O=g.length;if(gt&&O>=8&&O<4096){let B=kh.test(g);gt[B?0:1]+=g,V[M++]=193,v(B?-O:O);return}let T;O<32?T=1:O<256?T=2:O<65536?T=3:T=5;let L=O*3;if(M+L>ht&&(V=S(M+L)),O<64||!u){let B,k,X,eA=M+T;for(B=0;B<O;B++)k=g.charCodeAt(B),k<128?V[eA++]=k:k<2048?(V[eA++]=k>>6|192,V[eA++]=k&63|128):(k&64512)===55296&&((X=g.charCodeAt(B+1))&64512)===56320?(k=65536+((k&1023)<<10)+(X&1023),B++,V[eA++]=k>>18|240,V[eA++]=k>>12&63|128,V[eA++]=k>>6&63|128,V[eA++]=k&63|128):(V[eA++]=k>>12|224,V[eA++]=k>>6&63|128,V[eA++]=k&63|128);N=eA-M-T}else N=u(g,M+T,L);N<32?V[M++]=160|N:N<256?(T<2&&V.copyWithin(M+2,M+1,M+1+N),V[M++]=217,V[M++]=N):N<65536?(T<3&&V.copyWithin(M+3,M+2,M+2+N),V[M++]=218,V[M++]=N>>8,V[M++]=N&255):(T<5&&V.copyWithin(M+5,M+3,M+3+N),V[M++]=219,YA.setUint32(M,N),M+=4),M+=N}else if(P==="number")if(g>>>0===g)g<64?V[M++]=g:g<256?(V[M++]=204,V[M++]=g):g<65536?(V[M++]=205,V[M++]=g>>8,V[M++]=g&255):(V[M++]=206,YA.setUint32(M,g),M+=4);else if(g>>0===g)g>=-32?V[M++]=256+g:g>=-128?(V[M++]=208,V[M++]=g+256):g>=-32768?(V[M++]=209,YA.setInt16(M,g),M+=2):(V[M++]=210,YA.setInt32(M,g),M+=4);else{let O;if((O=this.useFloat32)>0&&g<4294967296&&g>=-2147483648){V[M++]=202,YA.setFloat32(M,g);let T;if(O<4||(T=g*Wi[(V[M]&127)<<1|V[M+1]>>7])>>0===T){M+=4;return}else M--}V[M++]=203,YA.setFloat64(M,g),M+=8}else if(P==="object")if(!g)V[M++]=192;else{if(a){let T=a.get(g);if(T){if(!T.id){let L=a.idsToInsert||(a.idsToInsert=[]);T.id=L.push(T)}V[M++]=214,V[M++]=112,YA.setUint32(M,T.id),M+=4;return}else a.set(g,{offset:M-t})}let O=g.constructor;if(O===Object)I(g,!0);else if(O===Array){N=g.length,N<16?V[M++]=144|N:N<65536?(V[M++]=220,V[M++]=N>>8,V[M++]=N&255):(V[M++]=221,YA.setUint32(M,N),M+=4);for(let T=0;T<N;T++)v(g[T])}else if(O===Map){N=g.size,N<16?V[M++]=128|N:N<65536?(V[M++]=222,V[M++]=N>>8,V[M++]=N&255):(V[M++]=223,YA.setUint32(M,N),M+=4);for(let[T,L]of g)v(T),v(L)}else{for(let T=0,L=Xi.length;T<L;T++){let B=qa[T];if(g instanceof B){let k=Xi[T];if(k.write){k.type&&(V[M++]=212,V[M++]=k.type,V[M++]=0),v(k.write.call(this,g));return}let X=V,eA=YA,nA=M;V=null;let U;try{U=k.pack.call(this,g,q=>(V=X,X=null,M+=q,M>ht&&S(M),{target:V,targetView:YA,position:M-q}),v)}finally{X&&(V=X,YA=eA,M=nA,ht=V.length-10)}U&&(U.length+M>ht&&S(U.length+M),M=Uh(U,V,M,k.type));return}}I(g,!g.hasOwnProperty)}}else if(P==="boolean")V[M++]=g?195:194;else if(P==="bigint"){if(g<BigInt(1)<<BigInt(63)&&g>=-(BigInt(1)<<BigInt(63)))V[M++]=211,YA.setBigInt64(M,g);else if(g<BigInt(1)<<BigInt(64)&&g>0)V[M++]=207,YA.setBigUint64(M,g);else if(this.largeBigIntToFloat)V[M++]=203,YA.setFloat64(M,Number(g));else throw new RangeError(g+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(P==="undefined")this.encodeUndefinedAsNil?V[M++]=192:(V[M++]=212,V[M++]=0,V[M++]=0);else if(P==="function")v(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},I=this.useRecords===!1?this.variableMapSize?g=>{let P=Object.keys(g),N=P.length;N<16?V[M++]=128|N:N<65536?(V[M++]=222,V[M++]=N>>8,V[M++]=N&255):(V[M++]=223,YA.setUint32(M,N),M+=4);let O;for(let T=0;T<N;T++)v(O=P[T]),v(g[O])}:(g,P)=>{V[M++]=222;let N=M-t;M+=2;let O=0;for(let T in g)(P||g.hasOwnProperty(T))&&(v(T),v(g[T]),O++);V[N+++t]=O>>8,V[N+t]=O&255}:g=>{let P=Object.keys(g),N,O=i.transitions||(i.transitions=Object.create(null)),T=0;for(let B=0,k=P.length;B<k;B++){let X=P[B];N=O[X],N||(N=O[X]=Object.create(null),T++),O=N}let L=O[Sn];if(L)L>=96&&m?(V[M++]=((L-=96)&31)+96,V[M++]=L>>5):V[M++]=L;else{L=i.nextId,L||(L=64),L<h&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(L=i.nextOwnId,L<x||(L=h),i.nextOwnId=L+1):(L>=x&&(L=h),i.nextId=L+1);let B=P.highByte=L>=96&&m?L-96>>5:-1;O[Sn]=L,i[L-64]=P,L<h?(P.isShared=!0,i.sharedLength=L-63,n=!0,B>=0?(V[M++]=(L&31)+96,V[M++]=B):V[M++]=L):(B>=0?(V[M++]=213,V[M++]=114,V[M++]=(L&31)+96,V[M++]=B):(V[M++]=212,V[M++]=114,V[M++]=L),T&&(b+=w*T),y.length>=f&&(y.shift()[Sn]=0),y.push(O),v(P))}for(let B=0,k=P.length;B<k;B++)v(g[P[B]])},S=g=>{let P;if(g>16777216){if(g-t>jc)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(jc,Math.round(Math.max((g-t)*(g>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(g-t<<2,V.length-1)>>12)+1<<12;let N=new Wa(P);return YA=new DataView(N.buffer,0,P),V.copy?V.copy(N,0,t,g):N.set(V.slice(t,g)),M-=t,t=0,ht=N.length-10,V=N}}useBuffer(e){V=e,YA=new DataView(V.buffer,V.byteOffset,V.byteLength),M=0}};qa=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,wn];Xi=[{pack(o,e,A){let t=o.getTime()/1e3;if((this.useTimestamp32||o.getMilliseconds()===0)&&t>=0&&t<4294967296){let{target:r,targetView:n,position:i}=e(6);r[i++]=214,r[i++]=255,n.setUint32(i,t)}else if(t>0&&t<17179869184){let{target:r,targetView:n,position:i}=e(10);r[i++]=215,r[i++]=255,n.setUint32(i,o.getMilliseconds()*4e6+(t/1e3/4294967296>>0)),n.setUint32(i+4,t)}else if(isNaN(t)){if(this.onInvalidDate)return e(0),A(this.onInvalidDate());let{target:r,targetView:n,position:i}=e(3);r[i++]=212,r[i++]=255,r[i++]=255}else{let{target:r,targetView:n,position:i}=e(15);r[i++]=199,r[i++]=12,r[i++]=255,n.setUint32(i,o.getMilliseconds()*1e6),n.setBigInt64(i+4,BigInt(Math.floor(t)))}}},{pack(o,e,A){let t=Array.from(o),{target:r,position:n}=e(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=115,r[n++]=0),A(t)}},{pack(o,e,A){let{target:t,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(t[r++]=212,t[r++]=101,t[r++]=0),A([o.name,o.message])}},{pack(o,e,A){let{target:t,position:r}=e(this.structuredClone?3:0);this.structuredClone&&(t[r++]=212,t[r++]=120,t[r++]=0),A([o.source,o.flags])}},{pack(o,e){this.structuredClone?zc(o,16,e):kc(Ki?Buffer.from(o):new Uint8Array(o),e)}},{pack(o,e){let A=o.constructor;A!==Uc&&this.structuredClone?zc(o,Ha.indexOf(A.name),e):kc(o,e)}},{pack(o,e){let{target:A,position:t}=e(1);A[t]=193}}];function zc(o,e,A,t){let r=o.byteLength;if(r+1<256){var{target:n,position:i}=A(4+r);n[i++]=199,n[i++]=r+1}else if(r+1<65536){var{target:n,position:i}=A(5+r);n[i++]=200,n[i++]=r+1>>8,n[i++]=r+1&255}else{var{target:n,position:i,targetView:a}=A(7+r);n[i++]=201,a.setUint32(i,r+1),i+=4}n[i++]=116,n[i++]=e,n.set(new Uint8Array(o.buffer,o.byteOffset,o.byteLength),i)}function kc(o,e){let A=o.byteLength;var t,r;if(A<256){var{target:t,position:r}=e(A+2);t[r++]=196,t[r++]=A}else if(A<65536){var{target:t,position:r}=e(A+3);t[r++]=197,t[r++]=A>>8,t[r++]=A&255}else{var{target:t,position:r,targetView:n}=e(A+5);t[r++]=198,n.setUint32(r,A),r+=4}t.set(o,r)}function Uh(o,e,A,t){let r=o.length;switch(r){case 1:e[A++]=212;break;case 2:e[A++]=213;break;case 4:e[A++]=214;break;case 8:e[A++]=215;break;case 16:e[A++]=216;break;default:r<256?(e[A++]=199,e[A++]=r):r<65536?(e[A++]=200,e[A++]=r>>8,e[A++]=r&255):(e[A++]=201,e[A++]=r>>24,e[A++]=r>>16&255,e[A++]=r>>8&255,e[A++]=r&255)}return e[A++]=t,e.set(o,A),A+=r,A}function Hh(o,e){let A,t=e.length*6,r=o.length-t;for(e.sort((n,i)=>n.offset>i.offset?1:-1);A=e.pop();){let n=A.offset,i=A.id;o.copyWithin(n+t,n,r),t-=6;let a=n+t;o[a++]=214,o[a++]=105,o[a++]=i>>24,o[a++]=i>>16&255,o[a++]=i>>8&255,o[a++]=i&255,r=n}return o}function nr(o){if(o.Class){if(!o.pack&&!o.write)throw new Error("Extension has no pack or write function");if(o.pack&&!o.type)throw new Error("Extension has no type (numeric code to identify the extension)");qa.unshift(o.Class),Xi.unshift(o)}Fc(o)}var Hc=new Br({useRecords:!1}),Wh=Hc.pack,qh=Hc.pack;var{NEVER:Qh,ALWAYS:Yh,DECIMAL_ROUND:Xh,DECIMAL_FIT:Kh}=Qi,Wc=512,Zh=1024;var qc=new Br({structuredClone:!0});nr({Class:RA.prototype.constructor,type:1,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,RA.prototype),o}});nr({Class:gA.prototype.constructor,type:2,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,gA.prototype),o}});nr({Class:JA.prototype.constructor,type:3,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,JA.prototype),o}});nr({Class:vn.prototype.constructor,type:4,write(o){return o.id},read(o){return new vn(o)}});nr({Class:bn.prototype.constructor,type:5,write(o){return o.data},read(o){return new bn(o)}});nr({Class:de.prototype.constructor,type:6,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,de.prototype),o}});function Jh(o){var e=0;if(o.length===0)return e;for(let A=0;A<o.length;A++){let t=o[A];e=(e<<5)-e+t,e=e&e}return e}function Qa(o){if(Zr(o))return o;if(Array.isArray(o))return o.map(Qa);if(typeof o=="object"&&o!==null){let e={};for(let A of Object.keys(o).sort())e[A]=Qa(o[A]);return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}else return o}var Zi;(t=>{function o(r){return qc.pack(r)}t.serialize=o;function e(r){return qc.unpack(r)}t.deserialize=e;function A(r){return Jh(o(Qa(r))).toString()}t.checksum=A})(Zi||(Zi={}));var Qc;(A=>{function o(t,r){return t[0]===r[0]&&t[1]===r[1]}A.isEqual=o;function e(t,r,n){return[t[0]+(r[0]-t[0])*n,t[1]+(r[1]-t[1])*n]}A.lerp=e})(Qc||(Qc={}));var to;(r=>{function o(n,i){return n[0]===i[0]&&n[1]===i[1]&&n[2]===i[2]}r.isEqual=o;function e(n,i){return[n[0]+i[0],n[1]+i[1],n[2]+i[2]]}r.add=e;function A(n,i){return[n[0]-i[0],n[1]-i[1],n[2]-i[2]]}r.sub=A;function t(n,i,a){return[n[0]+(i[0]-n[0])*a,n[1]+(i[1]-n[1])*a,n[2]+(i[2]-n[2])*a]}r.lerp=t})(to||(to={}));var Yc;(A=>{function o(t,r){return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]}A.isEqual=o;function e(t,r,n){return[t[0]+(r[0]-t[0])*n,t[1]+(r[1]-t[1])*n,t[2]+(r[2]-t[2])*n,t[3]+(r[3]-t[3])*n]}A.lerp=e})(Yc||(Yc={}));var ir;(r=>{r.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function e(n,i){for(let a=0;a<16;a++)if(n[a]!==i[a])return!1;return!0}r.isEqual=e;function A(n){return n??r.identity}r.simplify=A;function t(n,i){let a=i.slice(0);for(var l=0,u=i.length;l<u;l+=3){let s=n[3]*i[l]+n[7]*i[l+1]+n[11]*i[l+2]+n[15];a[l]=(n[0]*i[l]+n[4]*i[l+1]+n[8]*i[l+2]+n[12])/s,a[l+1]=(n[1]*i[l]+n[5]*i[l+1]+n[9]*i[l+2]+n[13])/s,a[l+2]=(n[2]*i[l]+n[6]*i[l+1]+n[10]*i[l+2]+n[14])/s}return a}r.applyMatrix4=t})(ir||(ir={}));var Me;(u=>{function o(s){return typeof s=="object"&&typeof s.r=="number"&&typeof s.g=="number"&&typeof s.b=="number"}u.isRGB=o,u.white={r:1,g:1,b:1},u.red={r:1,g:0,b:0},u.black={r:0,g:0,b:0};function r(s){return{r:Math.round(s.r*255),g:Math.round(s.g*255),b:Math.round(s.b*255),a:1}}u.toRgb255a1=r;function n(s){return{r:s.r,g:s.g,b:s.b}}u.clone=n;function i(s){return s=Math.floor(s),{r:(s>>16&255)/255,g:(s>>8&255)/255,b:(s&255)/255}}u.fromHex=i;function a(s,c){return s.r===c.r&&s.g===c.g&&s.b===c.b}u.equals=a;function l(s,c,d){return{r:s.r+(c.r-s.r)*d,g:s.g+(c.g-s.g)*d,b:s.b+(c.b-s.b)*d}}u.lerp=l})(Me||(Me={}));var et;(a=>{a.white={...Me.white,a:1},a.transparent={...Me.white,a:0};function A(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}a.from0to1=A;function t(l,u){return{...Me.fromHex(l),a:u}}a.fromHexAndA=t;function r(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}a.toRgb255a1=r;function n(l,u){return Me.equals(l,u)&&l.a===u.a}a.equals=n;function i(l,u,s){return{r:l.r+(u.r-l.r)*s,g:l.g+(u.g-l.g)*s,b:l.b+(u.b-l.b)*s,a:l.a+(u.a-l.a)*s}}a.lerp=i})(et||(et={}));var Ji;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Ji||(Ji={}));var Xc;(e=>e.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Xc||(Xc={}));var Kc;(e=>e.defaultData={control1:[.5,.05],control2:[.1,.3]})(Kc||(Kc={}));var ro;(A=>{A.all=["PerspectiveCamera","OrthographicCamera"];function e(t){return A.all.includes(t)}A.is=e})(ro||(ro={}));var Er;(r=>{r.DefaultUp=[0,1,0],r.DefaultTargetOffset=1e3,r.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:r.DefaultUp,isUpVectorFlipped:!1,targetOffset:r.DefaultTargetOffset};function t(n){return n.type==="PerspectiveCamera"?n.perspective.zoom:n.orthographic.zoom}r.getZoom=t})(Er||(Er={}));var Dr;(A=>{function o(t,r=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(t[0],t[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:[t[0]+t[0]*r,0,0]},grid:{count:[2,2,2],size:t.map(n=>n*(1+r)),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"}}}A.defaultData=o;function e(t,r){let n={...t};if(_h.forEach(i=>{Object.assign(n,{[i]:r[i]??t[i]})}),n.radial={...t.radial},r.radial){let i=t.radial,a=r.radial;$h.forEach(l=>{Object.assign(n.radial,{[l]:a[l]??i[l]})})}if(n.linear={...t.linear},r.linear){let i=t.linear,a=r.linear;Ag.forEach(l=>{Object.assign(n.linear,{[l]:a[l]??i[l]})})}if(n.grid={...t.grid},r.grid){let i=t.grid,a=r.grid;eg.forEach(l=>{Object.assign(n.grid,{[l]:a[l]??i[l]})})}if(n.toObject={...t.toObject},r.toObject){let i=t.toObject,a=r.toObject;tg.forEach(l=>{Object.assign(n.toObject,{[l]:a[l]??i[l]})})}if(n.randomnessObject={...t.randomnessObject},r.randomnessObject){let i=t.randomnessObject,a=r.randomnessObject;rg.forEach(l=>{Object.assign(n.randomnessObject,{[l]:a[l]??i[l]})})}return n}A.merge=e})(Dr||(Dr={}));var Zc;(e=>e.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})(Zc||(Zc={}));var _h=["count"],$h=["radius","start","end","position","scale","rotation"],Ag=["position","scale","rotation"],eg=["count","size"],tg=["count","position","scale","rotation"],rg=["strength","scale","rotation","position","movement","seed","freqScale"];var _i;(A=>{A.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(t){return A.all.includes(t)}A.is=e})(_i||(_i={}));var $i;(A=>{function o(t){return e(t)}A.defaultData=o;function e(t){if(t==="PointLight")return{type:t,color:et.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(t==="SpotLight")return{type:t,color:et.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(t==="DirectionalLight")return{type:t,color:et.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})($i||($i={}));var Ya;(A=>{A.defaultData={castShadow:!0,receiveShadow:!0};function e(t,r){return t.castShadow===r.castShadow&&t.receiveShadow===r.receiveShadow}A.equals=e})(Ya||(Ya={}));var Xa;(A=>{A.defaultData={flatShading:!1,wireframe:!1,side:0};function e(t,r){return t.flatShading===r.flatShading&&t.side===r.side&&t.wireframe===r.wireframe}A.equals=e})(Xa||(Xa={}));var As;(e=>e.defaultData={...Xa.defaultData,...Ya.defaultData,cloner:null,booleanExclude:null})(As||(As={}));var Jc="data:video/mp4;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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Lb/mqRv1RGizssN0zl5LaFhWN+cgTuNPIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";var oo;(A=>(A.defaultVideo={data:Jc,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},A.maxSize=3e7))(oo||(oo={}));var og=typeof global=="object"&&global&&global.Object===Object&&global,es=og;var ng=typeof self=="object"&&self&&self.Object===Object&&self,ig=es||ng||Function("return this")(),_A=ig;var sg=_A.Symbol,we=sg;var _c=Object.prototype,ag=_c.hasOwnProperty,lg=_c.toString,Tn=we?we.toStringTag:void 0;function cg(o){var e=ag.call(o,Tn),A=o[Tn];try{o[Tn]=void 0;var t=!0}catch{}var r=lg.call(o);return t&&(e?o[Tn]=A:delete o[Tn]),r}var $c=cg;var ug=Object.prototype,dg=ug.toString;function pg(o){return dg.call(o)}var Au=pg;var fg="[object Null]",mg="[object Undefined]",eu=we?we.toStringTag:void 0;function hg(o){return o==null?o===void 0?mg:fg:eu&&eu in Object(o)?$c(o):Au(o)}var ke=hg;function gg(o){return o!=null&&typeof o=="object"}var ge=gg;var yg="[object Symbol]";function xg(o){return typeof o=="symbol"||ge(o)&&ke(o)==yg}var no=xg;function vg(o,e){for(var A=-1,t=o==null?0:o.length,r=Array(t);++A<t;)r[A]=e(o[A],A,o);return r}var ts=vg;var bg=Array.isArray,HA=bg;var wg=1/0,tu=we?we.prototype:void 0,ru=tu?tu.toString:void 0;function ou(o){if(typeof o=="string")return o;if(HA(o))return ts(o,ou)+"";if(no(o))return ru?ru.call(o):"";var e=o+"";return e=="0"&&1/o==-wg?"-0":e}var nu=ou;function Sg(o){var e=typeof o;return o!=null&&(e=="object"||e=="function")}var $A=Sg;function Tg(o){return o}var rs=Tg;var Ng="[object AsyncFunction]",Ig="[object Function]",Pg="[object GeneratorFunction]",Og="[object Proxy]";function Cg(o){if(!$A(o))return!1;var e=ke(o);return e==Ig||e==Pg||e==Ng||e==Og}var io=Cg;var Lg=_A["__core-js_shared__"],os=Lg;var iu=function(){var o=/[^.]+$/.exec(os&&os.keys&&os.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}();function Mg(o){return!!iu&&iu in o}var su=Mg;var Bg=Function.prototype,Eg=Bg.toString;function Dg(o){if(o!=null){try{return Eg.call(o)}catch{}try{return o+""}catch{}}return""}var Wt=Dg;var Gg=/[\\^$.*+?()[\]{}|]/g,Rg=/^\[object .+?Constructor\]$/,Vg=Function.prototype,Fg=Object.prototype,jg=Vg.toString,zg=Fg.hasOwnProperty,kg=RegExp("^"+jg.call(zg).replace(Gg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ug(o){if(!$A(o)||su(o))return!1;var e=io(o)?kg:Rg;return e.test(Wt(o))}var au=Ug;function Hg(o,e){return o?.[e]}var lu=Hg;function Wg(o,e){var A=lu(o,e);return au(A)?A:void 0}var Be=Wg;var qg=Be(_A,"WeakMap"),ns=qg;var cu=Object.create,Qg=function(){function o(){}return function(e){if(!$A(e))return{};if(cu)return cu(e);o.prototype=e;var A=new o;return o.prototype=void 0,A}}(),uu=Qg;function Yg(o,e,A){switch(A.length){case 0:return o.call(e);case 1:return o.call(e,A[0]);case 2:return o.call(e,A[0],A[1]);case 3:return o.call(e,A[0],A[1],A[2])}return o.apply(e,A)}var du=Yg;function Xg(o,e){var A=-1,t=o.length;for(e||(e=Array(t));++A<t;)e[A]=o[A];return e}var is=Xg;var Kg=800,Zg=16,Jg=Date.now;function _g(o){var e=0,A=0;return function(){var t=Jg(),r=Zg-(t-A);if(A=t,r>0){if(++e>=Kg)return arguments[0]}else e=0;return o.apply(void 0,arguments)}}var pu=_g;function $g(o){return function(){return o}}var fu=$g;var Ay=function(){try{var o=Be(Object,"defineProperty");return o({},"",{}),o}catch{}}(),so=Ay;var ey=so?function(o,e){return so(o,"toString",{configurable:!0,enumerable:!1,value:fu(e),writable:!0})}:rs,mu=ey;var ty=pu(mu),ss=ty;function ry(o,e){for(var A=-1,t=o==null?0:o.length;++A<t&&e(o[A],A,o)!==!1;);return o}var hu=ry;var oy=9007199254740991,ny=/^(?:0|[1-9]\d*)$/;function iy(o,e){var A=typeof o;return e=e??oy,!!e&&(A=="number"||A!="symbol"&&ny.test(o))&&o>-1&&o%1==0&&o<e}var sr=iy;function sy(o,e,A){e=="__proto__"&&so?so(o,e,{configurable:!0,enumerable:!0,value:A,writable:!0}):o[e]=A}var ao=sy;function ay(o,e){return o===e||o!==o&&e!==e}var ar=ay;var ly=Object.prototype,cy=ly.hasOwnProperty;function uy(o,e,A){var t=o[e];(!(cy.call(o,e)&&ar(t,A))||A===void 0&&!(e in o))&&ao(o,e,A)}var lo=uy;function dy(o,e,A,t){var r=!A;A||(A={});for(var n=-1,i=e.length;++n<i;){var a=e[n],l=t?t(A[a],o[a],a,A,o):void 0;l===void 0&&(l=o[a]),r?ao(A,a,l):lo(A,a,l)}return A}var Qe=dy;var gu=Math.max;function py(o,e,A){return e=gu(e===void 0?o.length-1:e,0),function(){for(var t=arguments,r=-1,n=gu(t.length-e,0),i=Array(n);++r<n;)i[r]=t[e+r];r=-1;for(var a=Array(e+1);++r<e;)a[r]=t[r];return a[e]=A(i),du(o,this,a)}}var as=py;function fy(o,e){return ss(as(o,e,rs),o+"")}var yu=fy;var my=9007199254740991;function hy(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=my}var co=hy;function gy(o){return o!=null&&co(o.length)&&!io(o)}var lr=gy;function yy(o,e,A){if(!$A(A))return!1;var t=typeof e;return(t=="number"?lr(A)&&sr(e,A.length):t=="string"&&e in A)?ar(A[e],o):!1}var xu=yy;function xy(o){return yu(function(e,A){var t=-1,r=A.length,n=r>1?A[r-1]:void 0,i=r>2?A[2]:void 0;for(n=o.length>3&&typeof n=="function"?(r--,n):void 0,i&&xu(A[0],A[1],i)&&(n=r<3?void 0:n,r=1),e=Object(e);++t<r;){var a=A[t];a&&o(e,a,t,n)}return e})}var vu=xy;var vy=Object.prototype;function by(o){var e=o&&o.constructor,A=typeof e=="function"&&e.prototype||vy;return o===A}var uo=by;function wy(o,e){for(var A=-1,t=Array(o);++A<o;)t[A]=e(A);return t}var bu=wy;var Sy="[object Arguments]";function Ty(o){return ge(o)&&ke(o)==Sy}var Ka=Ty;var wu=Object.prototype,Ny=wu.hasOwnProperty,Iy=wu.propertyIsEnumerable,Py=Ka(function(){return arguments}())?Ka:function(o){return ge(o)&&Ny.call(o,"callee")&&!Iy.call(o,"callee")},qt=Py;function Oy(){return!1}var Su=Oy;var Iu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Tu=Iu&&typeof module=="object"&&module&&!module.nodeType&&module,Cy=Tu&&Tu.exports===Iu,Nu=Cy?_A.Buffer:void 0,Ly=Nu?Nu.isBuffer:void 0,My=Ly||Su,po=My;var By="[object Arguments]",Ey="[object Array]",Dy="[object Boolean]",Gy="[object Date]",Ry="[object Error]",Vy="[object Function]",Fy="[object Map]",jy="[object Number]",zy="[object Object]",ky="[object RegExp]",Uy="[object Set]",Hy="[object String]",Wy="[object WeakMap]",qy="[object ArrayBuffer]",Qy="[object DataView]",Yy="[object Float32Array]",Xy="[object Float64Array]",Ky="[object Int8Array]",Zy="[object Int16Array]",Jy="[object Int32Array]",_y="[object Uint8Array]",$y="[object Uint8ClampedArray]",A0="[object Uint16Array]",e0="[object Uint32Array]",jA={};jA[Yy]=jA[Xy]=jA[Ky]=jA[Zy]=jA[Jy]=jA[_y]=jA[$y]=jA[A0]=jA[e0]=!0;jA[By]=jA[Ey]=jA[qy]=jA[Dy]=jA[Qy]=jA[Gy]=jA[Ry]=jA[Vy]=jA[Fy]=jA[jy]=jA[zy]=jA[ky]=jA[Uy]=jA[Hy]=jA[Wy]=!1;function t0(o){return ge(o)&&co(o.length)&&!!jA[ke(o)]}var Pu=t0;function r0(o){return function(e){return o(e)}}var fo=r0;var Ou=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nn=Ou&&typeof module=="object"&&module&&!module.nodeType&&module,o0=Nn&&Nn.exports===Ou,Za=o0&&es.process,n0=function(){try{var o=Nn&&Nn.require&&Nn.require("util").types;return o||Za&&Za.binding&&Za.binding("util")}catch{}}(),Qt=n0;var Cu=Qt&&Qt.isTypedArray,i0=Cu?fo(Cu):Pu,ls=i0;var s0=Object.prototype,a0=s0.hasOwnProperty;function l0(o,e){var A=HA(o),t=!A&&qt(o),r=!A&&!t&&po(o),n=!A&&!t&&!r&&ls(o),i=A||t||r||n,a=i?bu(o.length,String):[],l=a.length;for(var u in o)(e||a0.call(o,u))&&!(i&&(u=="length"||r&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||sr(u,l)))&&a.push(u);return a}var cs=l0;function c0(o,e){return function(A){return o(e(A))}}var us=c0;var u0=us(Object.keys,Object),Lu=u0;var d0=Object.prototype,p0=d0.hasOwnProperty;function f0(o){if(!uo(o))return Lu(o);var e=[];for(var A in Object(o))p0.call(o,A)&&A!="constructor"&&e.push(A);return e}var Mu=f0;function m0(o){return lr(o)?cs(o):Mu(o)}var mo=m0;function h0(o){var e=[];if(o!=null)for(var A in Object(o))e.push(A);return e}var Bu=h0;var g0=Object.prototype,y0=g0.hasOwnProperty;function x0(o){if(!$A(o))return Bu(o);var e=uo(o),A=[];for(var t in o)t=="constructor"&&(e||!y0.call(o,t))||A.push(t);return A}var Eu=x0;function v0(o){return lr(o)?cs(o,!0):Eu(o)}var yt=v0;var b0=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,w0=/^\w*$/;function S0(o,e){if(HA(o))return!1;var A=typeof o;return A=="number"||A=="symbol"||A=="boolean"||o==null||no(o)?!0:w0.test(o)||!b0.test(o)||e!=null&&o in Object(e)}var Du=S0;var T0=Be(Object,"create"),Yt=T0;function N0(){this.__data__=Yt?Yt(null):{},this.size=0}var Gu=N0;function I0(o){var e=this.has(o)&&delete this.__data__[o];return this.size-=e?1:0,e}var Ru=I0;var P0="__lodash_hash_undefined__",O0=Object.prototype,C0=O0.hasOwnProperty;function L0(o){var e=this.__data__;if(Yt){var A=e[o];return A===P0?void 0:A}return C0.call(e,o)?e[o]:void 0}var Vu=L0;var M0=Object.prototype,B0=M0.hasOwnProperty;function E0(o){var e=this.__data__;return Yt?e[o]!==void 0:B0.call(e,o)}var Fu=E0;var D0="__lodash_hash_undefined__";function G0(o,e){var A=this.__data__;return this.size+=this.has(o)?0:1,A[o]=Yt&&e===void 0?D0:e,this}var ju=G0;function ho(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}ho.prototype.clear=Gu;ho.prototype.delete=Ru;ho.prototype.get=Vu;ho.prototype.has=Fu;ho.prototype.set=ju;var Ja=ho;function R0(){this.__data__=[],this.size=0}var zu=R0;function V0(o,e){for(var A=o.length;A--;)if(ar(o[A][0],e))return A;return-1}var cr=V0;var F0=Array.prototype,j0=F0.splice;function z0(o){var e=this.__data__,A=cr(e,o);if(A<0)return!1;var t=e.length-1;return A==t?e.pop():j0.call(e,A,1),--this.size,!0}var ku=z0;function k0(o){var e=this.__data__,A=cr(e,o);return A<0?void 0:e[A][1]}var Uu=k0;function U0(o){return cr(this.__data__,o)>-1}var Hu=U0;function H0(o,e){var A=this.__data__,t=cr(A,o);return t<0?(++this.size,A.push([o,e])):A[t][1]=e,this}var Wu=H0;function go(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}go.prototype.clear=zu;go.prototype.delete=ku;go.prototype.get=Uu;go.prototype.has=Hu;go.prototype.set=Wu;var ur=go;var W0=Be(_A,"Map"),dr=W0;function q0(){this.size=0,this.__data__={hash:new Ja,map:new(dr||ur),string:new Ja}}var qu=q0;function Q0(o){var e=typeof o;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?o!=="__proto__":o===null}var Qu=Q0;function Y0(o,e){var A=o.__data__;return Qu(e)?A[typeof e=="string"?"string":"hash"]:A.map}var pr=Y0;function X0(o){var e=pr(this,o).delete(o);return this.size-=e?1:0,e}var Yu=X0;function K0(o){return pr(this,o).get(o)}var Xu=K0;function Z0(o){return pr(this,o).has(o)}var Ku=Z0;function J0(o,e){var A=pr(this,o),t=A.size;return A.set(o,e),this.size+=A.size==t?0:1,this}var Zu=J0;function yo(o){var e=-1,A=o==null?0:o.length;for(this.clear();++e<A;){var t=o[e];this.set(t[0],t[1])}}yo.prototype.clear=qu;yo.prototype.delete=Yu;yo.prototype.get=Xu;yo.prototype.has=Ku;yo.prototype.set=Zu;var In=yo;var _0="Expected a function";function _a(o,e){if(typeof o!="function"||e!=null&&typeof e!="function")throw new TypeError(_0);var A=function(){var t=arguments,r=e?e.apply(this,t):t[0],n=A.cache;if(n.has(r))return n.get(r);var i=o.apply(this,t);return A.cache=n.set(r,i)||n,i};return A.cache=new(_a.Cache||In),A}_a.Cache=In;var Ju=_a;var $0=500;function Ax(o){var e=Ju(o,function(t){return A.size===$0&&A.clear(),t}),A=e.cache;return e}var _u=Ax;var ex=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,tx=/\\(\\)?/g,rx=_u(function(o){var e=[];return o.charCodeAt(0)===46&&e.push(""),o.replace(ex,function(A,t,r,n){e.push(r?n.replace(tx,"$1"):t||A)}),e}),$u=rx;function ox(o){return o==null?"":nu(o)}var Ad=ox;function nx(o,e){return HA(o)?o:Du(o,e)?[o]:$u(Ad(o))}var Ye=nx;var ix=1/0;function sx(o){if(typeof o=="string"||no(o))return o;var e=o+"";return e=="0"&&1/o==-ix?"-0":e}var fr=sx;function ax(o,e){e=Ye(e,o);for(var A=0,t=e.length;o!=null&&A<t;)o=o[fr(e[A++])];return A&&A==t?o:void 0}var ds=ax;function lx(o,e){for(var A=-1,t=e.length,r=o.length;++A<t;)o[r+A]=e[A];return o}var xo=lx;var ed=we?we.isConcatSpreadable:void 0;function cx(o){return HA(o)||qt(o)||!!(ed&&o&&o[ed])}var td=cx;function rd(o,e,A,t,r){var n=-1,i=o.length;for(A||(A=td),r||(r=[]);++n<i;){var a=o[n];e>0&&A(a)?e>1?rd(a,e-1,A,t,r):xo(r,a):t||(r[r.length]=a)}return r}var od=rd;function ux(o){var e=o==null?0:o.length;return e?od(o,1):[]}var nd=ux;function dx(o){return ss(as(o,void 0,nd),o+"")}var ps=dx;var px=us(Object.getPrototypeOf,Object),vo=px;var fx="[object Object]",mx=Function.prototype,hx=Object.prototype,id=mx.toString,gx=hx.hasOwnProperty,yx=id.call(Object);function xx(o){if(!ge(o)||ke(o)!=fx)return!1;var e=vo(o);if(e===null)return!0;var A=gx.call(e,"constructor")&&e.constructor;return typeof A=="function"&&A instanceof A&&id.call(A)==yx}var fs=xx;function vx(o,e,A){var t=-1,r=o.length;e<0&&(e=-e>r?0:r+e),A=A>r?r:A,A<0&&(A+=r),r=e>A?0:A-e>>>0,e>>>=0;for(var n=Array(r);++t<r;)n[t]=o[t+e];return n}var sd=vx;function bx(){this.__data__=new ur,this.size=0}var ad=bx;function wx(o){var e=this.__data__,A=e.delete(o);return this.size=e.size,A}var ld=wx;function Sx(o){return this.__data__.get(o)}var cd=Sx;function Tx(o){return this.__data__.has(o)}var ud=Tx;var Nx=200;function Ix(o,e){var A=this.__data__;if(A instanceof ur){var t=A.__data__;if(!dr||t.length<Nx-1)return t.push([o,e]),this.size=++A.size,this;A=this.__data__=new In(t)}return A.set(o,e),this.size=A.size,this}var dd=Ix;function bo(o){var e=this.__data__=new ur(o);this.size=e.size}bo.prototype.clear=ad;bo.prototype.delete=ld;bo.prototype.get=cd;bo.prototype.has=ud;bo.prototype.set=dd;var ms=bo;function Px(o,e){return o&&Qe(e,mo(e),o)}var pd=Px;function Ox(o,e){return o&&Qe(e,yt(e),o)}var fd=Ox;var yd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,md=yd&&typeof module=="object"&&module&&!module.nodeType&&module,Cx=md&&md.exports===yd,hd=Cx?_A.Buffer:void 0,gd=hd?hd.allocUnsafe:void 0;function Lx(o,e){if(e)return o.slice();var A=o.length,t=gd?gd(A):new o.constructor(A);return o.copy(t),t}var hs=Lx;function Mx(o,e){for(var A=-1,t=o==null?0:o.length,r=0,n=[];++A<t;){var i=o[A];e(i,A,o)&&(n[r++]=i)}return n}var xd=Mx;function Bx(){return[]}var gs=Bx;var Ex=Object.prototype,Dx=Ex.propertyIsEnumerable,vd=Object.getOwnPropertySymbols,Gx=vd?function(o){return o==null?[]:(o=Object(o),xd(vd(o),function(e){return Dx.call(o,e)}))}:gs,wo=Gx;function Rx(o,e){return Qe(o,wo(o),e)}var bd=Rx;var Vx=Object.getOwnPropertySymbols,Fx=Vx?function(o){for(var e=[];o;)xo(e,wo(o)),o=vo(o);return e}:gs,ys=Fx;function jx(o,e){return Qe(o,ys(o),e)}var wd=jx;function zx(o,e,A){var t=e(o);return HA(o)?t:xo(t,A(o))}var xs=zx;function kx(o){return xs(o,mo,wo)}var Sd=kx;function Ux(o){return xs(o,yt,ys)}var vs=Ux;var Hx=Be(_A,"DataView"),bs=Hx;var Wx=Be(_A,"Promise"),ws=Wx;var qx=Be(_A,"Set"),Ss=qx;var Td="[object Map]",Qx="[object Object]",Nd="[object Promise]",Id="[object Set]",Pd="[object WeakMap]",Od="[object DataView]",Yx=Wt(bs),Xx=Wt(dr),Kx=Wt(ws),Zx=Wt(Ss),Jx=Wt(ns),Gr=ke;(bs&&Gr(new bs(new ArrayBuffer(1)))!=Od||dr&&Gr(new dr)!=Td||ws&&Gr(ws.resolve())!=Nd||Ss&&Gr(new Ss)!=Id||ns&&Gr(new ns)!=Pd)&&(Gr=function(o){var e=ke(o),A=e==Qx?o.constructor:void 0,t=A?Wt(A):"";if(t)switch(t){case Yx:return Od;case Xx:return Td;case Kx:return Nd;case Zx:return Id;case Jx:return Pd}return e});var So=Gr;var _x=Object.prototype,$x=_x.hasOwnProperty;function Av(o){var e=o.length,A=new o.constructor(e);return e&&typeof o[0]=="string"&&$x.call(o,"index")&&(A.index=o.index,A.input=o.input),A}var Cd=Av;var ev=_A.Uint8Array,$a=ev;function tv(o){var e=new o.constructor(o.byteLength);return new $a(e).set(new $a(o)),e}var To=tv;function rv(o,e){var A=e?To(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.byteLength)}var Ld=rv;var ov=/\w*$/;function nv(o){var e=new o.constructor(o.source,ov.exec(o));return e.lastIndex=o.lastIndex,e}var Md=nv;var Bd=we?we.prototype:void 0,Ed=Bd?Bd.valueOf:void 0;function iv(o){return Ed?Object(Ed.call(o)):{}}var Dd=iv;function sv(o,e){var A=e?To(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.length)}var Ts=sv;var av="[object Boolean]",lv="[object Date]",cv="[object Map]",uv="[object Number]",dv="[object RegExp]",pv="[object Set]",fv="[object String]",mv="[object Symbol]",hv="[object ArrayBuffer]",gv="[object DataView]",yv="[object Float32Array]",xv="[object Float64Array]",vv="[object Int8Array]",bv="[object Int16Array]",wv="[object Int32Array]",Sv="[object Uint8Array]",Tv="[object Uint8ClampedArray]",Nv="[object Uint16Array]",Iv="[object Uint32Array]";function Pv(o,e,A){var t=o.constructor;switch(e){case hv:return To(o);case av:case lv:return new t(+o);case gv:return Ld(o,A);case yv:case xv:case vv:case bv:case wv:case Sv:case Tv:case Nv:case Iv:return Ts(o,A);case cv:return new t;case uv:case fv:return new t(o);case dv:return Md(o);case pv:return new t;case mv:return Dd(o)}}var Gd=Pv;function Ov(o){return typeof o.constructor=="function"&&!uo(o)?uu(vo(o)):{}}var Ns=Ov;var Cv="[object Map]";function Lv(o){return ge(o)&&So(o)==Cv}var Rd=Lv;var Vd=Qt&&Qt.isMap,Mv=Vd?fo(Vd):Rd,Fd=Mv;var Bv="[object Set]";function Ev(o){return ge(o)&&So(o)==Bv}var jd=Ev;var zd=Qt&&Qt.isSet,Dv=zd?fo(zd):jd,kd=Dv;var Gv=1,Rv=2,Vv=4,Ud="[object Arguments]",Fv="[object Array]",jv="[object Boolean]",zv="[object Date]",kv="[object Error]",Hd="[object Function]",Uv="[object GeneratorFunction]",Hv="[object Map]",Wv="[object Number]",Wd="[object Object]",qv="[object RegExp]",Qv="[object Set]",Yv="[object String]",Xv="[object Symbol]",Kv="[object WeakMap]",Zv="[object ArrayBuffer]",Jv="[object DataView]",_v="[object Float32Array]",$v="[object Float64Array]",Ab="[object Int8Array]",eb="[object Int16Array]",tb="[object Int32Array]",rb="[object Uint8Array]",ob="[object Uint8ClampedArray]",nb="[object Uint16Array]",ib="[object Uint32Array]",VA={};VA[Ud]=VA[Fv]=VA[Zv]=VA[Jv]=VA[jv]=VA[zv]=VA[_v]=VA[$v]=VA[Ab]=VA[eb]=VA[tb]=VA[Hv]=VA[Wv]=VA[Wd]=VA[qv]=VA[Qv]=VA[Yv]=VA[Xv]=VA[rb]=VA[ob]=VA[nb]=VA[ib]=!0;VA[kv]=VA[Hd]=VA[Kv]=!1;function Is(o,e,A,t,r,n){var i,a=e&Gv,l=e&Rv,u=e&Vv;if(A&&(i=r?A(o,t,r,n):A(o)),i!==void 0)return i;if(!$A(o))return o;var s=HA(o);if(s){if(i=Cd(o),!a)return is(o,i)}else{var c=So(o),d=c==Hd||c==Uv;if(po(o))return hs(o,a);if(c==Wd||c==Ud||d&&!r){if(i=l||d?{}:Ns(o),!a)return l?wd(o,fd(i,o)):bd(o,pd(i,o))}else{if(!VA[c])return r?o:{};i=Gd(o,c,a)}}n||(n=new ms);var p=n.get(o);if(p)return p;n.set(o,i),kd(o)?o.forEach(function(h){i.add(Is(h,e,A,h,o,n))}):Fd(o)&&o.forEach(function(h,x){i.set(x,Is(h,e,A,x,o,n))});var f=u?l?vs:Sd:l?yt:mo,m=s?void 0:f(o);return hu(m||o,function(h,x){m&&(x=h,h=o[x]),lo(i,x,Is(h,e,A,x,o,n))}),i}var Ps=Is;var sb=1,ab=4;function lb(o){return Ps(o,sb|ab)}var Pn=lb;function cb(o,e){return o!=null&&e in Object(o)}var qd=cb;function ub(o,e,A){e=Ye(e,o);for(var t=-1,r=e.length,n=!1;++t<r;){var i=fr(e[t]);if(!(n=o!=null&&A(o,i)))break;o=o[i]}return n||++t!=r?n:(r=o==null?0:o.length,!!r&&co(r)&&sr(i,r)&&(HA(o)||qt(o)))}var Qd=ub;function db(o,e){return o!=null&&Qd(o,e,qd)}var Yd=db;function pb(o){return function(e,A,t){for(var r=-1,n=Object(e),i=t(e),a=i.length;a--;){var l=i[o?a:++r];if(A(n[l],l,n)===!1)break}return e}}var Xd=pb;var fb=Xd(),Kd=fb;function mb(o,e,A){(A!==void 0&&!ar(o[e],A)||A===void 0&&!(e in o))&&ao(o,e,A)}var On=mb;function hb(o){return ge(o)&&lr(o)}var Zd=hb;function gb(o,e){if(!(e==="constructor"&&typeof o[e]=="function")&&e!="__proto__")return o[e]}var Cn=gb;function yb(o){return Qe(o,yt(o))}var Jd=yb;function xb(o,e,A,t,r,n,i){var a=Cn(o,A),l=Cn(e,A),u=i.get(l);if(u){On(o,A,u);return}var s=n?n(a,l,A+"",o,e,i):void 0,c=s===void 0;if(c){var d=HA(l),p=!d&&po(l),f=!d&&!p&&ls(l);s=l,d||p||f?HA(a)?s=a:Zd(a)?s=is(a):p?(c=!1,s=hs(l,!0)):f?(c=!1,s=Ts(l,!0)):s=[]:fs(l)||qt(l)?(s=a,qt(a)?s=Jd(a):(!$A(a)||io(a))&&(s=Ns(l))):c=!1}c&&(i.set(l,s),r(s,l,t,n,i),i.delete(l)),On(o,A,s)}var _d=xb;function $d(o,e,A,t,r){o!==e&&Kd(e,function(n,i){if(r||(r=new ms),$A(n))_d(o,e,i,A,$d,t,r);else{var a=t?t(Cn(o,i),n,i+"",o,e,r):void 0;a===void 0&&(a=n),On(o,i,a)}},yt)}var Ap=$d;function vb(o){var e=o==null?0:o.length;return e?o[e-1]:void 0}var ep=vb;function bb(o,e){return e.length<2?o:ds(o,sd(e,0,-1))}var tp=bb;var wb=vu(function(o,e,A){Ap(o,e,A)}),No=wb;function Sb(o,e){return e=Ye(e,o),o=tp(o,e),o==null||delete o[fr(ep(e))]}var rp=Sb;function Tb(o){return fs(o)?void 0:o}var op=Tb;var Nb=1,Ib=2,Pb=4,Ob=ps(function(o,e){var A={};if(o==null)return A;var t=!1;e=ts(e,function(n){return n=Ye(n,o),t||(t=n.length>1),n}),Qe(o,vs(o),A),t&&(A=Ps(A,Nb|Ib|Pb,op));for(var r=e.length;r--;)rp(A,e[r]);return A}),Io=Ob;function Cb(o,e,A,t){if(!$A(o))return o;e=Ye(e,o);for(var r=-1,n=e.length,i=n-1,a=o;a!=null&&++r<n;){var l=fr(e[r]),u=A;if(l==="__proto__"||l==="constructor"||l==="prototype")return o;if(r!=i){var s=a[l];u=t?t(s,l,a):void 0,u===void 0&&(u=$A(s)?s:sr(e[r+1])?[]:{})}lo(a,l,u),a=a[l]}return o}var np=Cb;function Lb(o,e,A){for(var t=-1,r=e.length,n={};++t<r;){var i=e[t],a=ds(o,i);A(a,i)&&np(n,Ye(i,o),a)}return n}var ip=Lb;function Mb(o,e){return ip(o,e,function(A,t){return Yd(o,t)})}var sp=Mb;var Bb=ps(function(o,e){return o==null?{}:sp(o,e)}),Po=Bb;var ap=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],lp=["wrapping","image","video"],Se;(r=>{function o(n,i){No(n,i)}r.patch=o;function e(n,i){return n==="light"&&i?A(i):t(n)}r.defaultData=e;function A(n){switch(n){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 t(n){switch(n){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:!1};case"video":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"video",projection:0,texture:{video:oo.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Me.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:{...Me.fromHex(6710886),a:1},colorB:{...Me.fromHex(6710886),a:1},colorC:{...Me.fromHex(16777215),a:1},colorD:{...Me.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:et.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:et.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:et.fromHexAndA(0,1),contourColor:et.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}}}})(Se||(Se={}));var Te;(l=>{function o(u){return!u.layers.some(c=>c.data.type==="texture"&&c.data.projection!==0||c.data.type==="depth"&&!c.data.isWorldSpace||c.data.type==="noise"||c.data.type==="displace")}l.isMergable=o;function e(u){let s="";return u.layers.forEach(c=>{Object.entries(c.data).forEach(([d,p])=>{s+=`${d}${p}`,Array.isArray(p)?p.forEach(f=>s+=`${f}`):typeof p=="object"?Object.values(p).forEach(f=>{typeof f=="number"?s+=`${f.toFixed(4)}`:s+=`${f}`}):s+=`${p}`})}),s}l.getHash=e;function A(u,s){let c=0;for(let d of u.layers)if(d.data.type!=="displace"&&"alpha"in d.data&&d.data.type!=="light"&&d.data.type!=="fresnel"&&d.data.type!=="texture"&&d.data.type!=="matcap"&&d.data.type!=="rainbow"&&d.data.type!=="outline"){let p=d.data.visible?d.data.alpha:0;if(p==1&&d.data.type=="depth"||d.data.type=="gradient"){for(let f of d.data.colors)if(f[3]<1){p=f[3];break}}else if(p==1&&d.data.type=="noise"){let f=s.color(d.data.colorA).a,m=s.color(d.data.colorB).a,h=s.color(d.data.colorC).a,x=s.color(d.data.colorD).a,y=Math.min(f,Math.min(m,Math.min(h,x)));y<1&&(p=y)}c+=(1-c)*p}return c<1}l.isTransparent=A;function t(){return{layers:new gA}}l.defaultEmptyData=t;function r(u="layer1",s="layer2"){return n("phong",u,s)}l.defaultData=r;function n(u,s="layer1",c="layer2"){let d=new gA;return d.push({fi:0,data:Se.defaultData("light",u),id:s}),d.push({fi:1,data:Se.defaultData("color"),id:c}),{layers:d}}l.defaultTwoLayerData=n;function i(u,s="phong",c="layer1",d="layer2"){let p=Se.defaultData("texture");Object.assign(p.texture,{image:u});let f=new gA;return f.push({fi:0,data:p,id:c}),f.push({fi:1,data:Se.defaultData("light",s),id:d}),{layers:f}}l.defaultTwoLayerTextureData=i;function a(u,s="phong",c="layer1",d="layer2"){let p=Se.defaultData("video");Object.assign(p.texture,{video:u});let f=new gA;return f.push({fi:0,data:p,id:c}),f.push({fi:1,data:Se.defaultData("light",s),id:d}),{layers:f}}l.defaultTwoLayerVideoTextureData=a})(Te||(Te={}));var Oo;(e=>{function o(){return{points:new gA,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=o})(Oo||(Oo={}));var Co;(e=>{function o(A){return A==="PolygonGeometry"||A==="RectangleGeometry"||A==="StarGeometry"||A==="TriangleGeometry"||A==="EllipseGeometry"}e.is2DParametricMesh=o})(Co||(Co={}));var mr;(e=>{function o(A){if(A==="RectangleGeometry")return{width:320,height:320,type:A,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="VectorGeometry")return{width:1,height:1,type:A,subdivisions:12,shape:Oo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="BooleanGeometry")return{type:A,operation:2,width:0,height:0,depth:0,phongAngle:35};if(A==="TextGeometry")return{type:A,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")}e.defaultData=o})(mr||(mr={}));var Ln;(r=>{r.identity={...Ji.identity,hiddenMatrix:ir.identity};function e(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}r.fromObject=e;function A(n,i){return{position:i?.position||n.position,rotation:i?.rotation||n.rotation,scale:i?.scale||n.scale,hiddenMatrix:i?.hiddenMatrix||n.hiddenMatrix}}r.merge=A;function t(n,i){return{position:to.isEqual(n.position,i.position)?null:i.position,rotation:to.isEqual(n.rotation,i.rotation)?null:i.rotation,scale:to.isEqual(n.scale,i.scale)?null:i.scale,hiddenMatrix:ir.isEqual(n.hiddenMatrix,i.hiddenMatrix)?null:i.hiddenMatrix}}r.diff=t})(Ln||(Ln={}));var Al;(e=>e.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]})(Al||(Al={}));var tt;(e=>e.defaultData={states:new gA,events:new gA,visible:!0,raycastLock:!1,physics:null,...Ln.identity})(tt||(tt={}));var cp;(e=>e.defaultData={type:"Empty",cloner:null,...tt.defaultData})(cp||(cp={}));var Rr;(e=>e.defaultData={type:"Mesh",...tt.defaultData,...As.defaultData})(Rr||(Rr={}));var Os;(e=>e.defaultData={...tt.defaultData,...Ln.identity,...Er.defaultData})(Os||(Os={}));var up;(e=>{function o(A){return{...tt.defaultData,...$i.defaultData(A)}}e.defaultData=o})(up||(up={}));var dp;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:ir.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Al.defaultData,states:new gA,events:new gA,...Er.defaultData},r.defaultMeshObject={name:"Rectangle",...tt.defaultData,...Rr.defaultData,geometry:mr.defaultData("RectangleGeometry"),material:Te.defaultTwoLayerData("phong","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...tt.defaultData,...Rr.defaultData,geometry:mr.defaultData("BooleanGeometry"),material:Te.defaultTwoLayerData("phong","layer1","layer2")},r.defaultTextObject={name:"Text",...tt.defaultData,...Rr.defaultData,geometry:mr.defaultData("TextGeometry"),material:Te.defaultTwoLayerData("phong","layer1","layer2")}))(dp||(dp={}));var pp;(A=>{function o(t,r){if(r===void 0)return t;let n={...t};return"material"in n&&"material"in r&&r.material&&(n.material=Da(n.material,i=>{if(typeof i!="string")for(let[a,l]of Object.entries(r.material.layers)){let u=i.layers.data(a);u&&Se.patch(u,l)}}).data),n.materials&&r.materials&&(n.materials=Da(n.materials,i=>{for(let a=0;a<n.materials.length;a++){let l=r.materials[a];if(typeof l!="string")for(let[u,s]of Object.entries(l.layers)){let c=i[a]?.layers?.data(u);c&&Se.patch(c,s)}}}).data),n}A.patchMaterialState=o;function e(t,r){if(r===void 0)return t;let n={...t};if(Object.assign(n,Ln.merge(n,r)),ro.is(t.type)){n.orthographic={...n.orthographic},n.perspective={...n.perspective};let i=r;i.orthographic?.zoom!==void 0&&(n.orthographic.zoom=i.orthographic.zoom),i.perspective?.zoom!==void 0&&(n.perspective.zoom=i.perspective.zoom),i.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=i.isUpVectorFlipped),i.targetOffset!==void 0&&(n.targetOffset=i.targetOffset)}else if(t.type==="Mesh")n.geometry={...n.geometry},Object.assign(n.geometry,r.geometry),n=o(n,r),n.cloner&&"cloner"in r&&Object.assign(n,{cloner:Dr.merge(n.cloner,r.cloner)});else if(t.type==="Empty")n.cloner&&"cloner"in r&&Object.assign(n,{cloner:Dr.merge(n.cloner,r.cloner)});else if(_i.is(t.type)){let i=r;i.intensity!==void 0&&(n.intensity=i.intensity),i.color!==void 0&&(typeof i.color=="string"?n.color=i.color:n.color=Me.clone(i.color))}return n}A.patch=e})(pp||(pp={}));var Lo;(e=>e.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})(Lo||(Lo={}));var Cs;(e=>e.defaultData={orbitControls:Lo.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((A,t)=>{let r=0,n=0;return t<5?n=-30:t<10&&(n=30),t===0||t===10||t===5?r=30:(t===4||t===11||t===9)&&(r=-30),[120,[r,n],"show"]}),gameControlObject:null})(Cs||(Cs={}));function hr(o,e){return Object.setPrototypeOf(o,e),o}function fp(o){return Array.isArray(o)?o:[o]}var Ls;(A=>{function o(){let t={};return t["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},hr(t,RA.prototype)}A.defaultColors=o;function e(){return{materials:new RA,images:new RA,videos:new RA,colors:new RA,audios:new RA,fonts:new RA,penumbraSize:[.5,.5,.5]}}A.emptyData=e})(Ls||(Ls={}));var Mn=require("three");function mp(o){o.layers.forEach(e=>{if(e.type==="depth"&&e.colorA!==void 0){let A=e.colorA,t=e.colorB,r=[[A.r,A.g,A.b,A.a],[t.r,t.g,t.b,t.a]],n=[0,1];for(let a=2;a<10;a++)r.push(r[1]),n.push(1);let i={...Po(Ce(e),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,e.near),far:Math.max(0,e.far),colors:r,steps:n,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(e,i)}else if(e.type==="depth"&&e.gradientType===1&&(e.near<0||e.far<0)){let A={...Ce(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,A)}})}function Ms(o,e){Object.values(o.shared.materials).forEach(A=>e(A))}function Bs(o,e){o.scene.objects.traverse((A,t)=>{"materials"in t?t.materials.forEach(r=>{typeof r!="string"&&e(r)}):"material"in t&&typeof t.material!="string"&&e(t.material)})}function Eb(o){Object.assign(o.scene.publish,{orbitControls:{...Lo.defaultData,...Ce(o.scene.publish.orbitControls)}})}function Db(o){Object.assign(o.scene.publish.settings,{video:{...Cs.defaultData.settings.video,...Ce(o.scene.publish.settings.video)}})}function Gb(o){function e(A){if(A.layers){for(let t of Object.values(A.layers))if(t){for(let[r,n]of Object.entries(t))if((ap.includes(r)||typeof n=="boolean")&&delete t[r],r==="texture")for(let[i,a]of Object.entries(n))(lp.includes(i)||typeof a=="boolean")&&delete n[i]}}}o.scene.objects.traverse((A,t)=>{t.states.forEach(r=>{let n=r;n.material?e(n.material):n.materials&&n.materials.forEach(i=>{e(i)})})})}function Rb(o){o.scene.publish.withBackground=!0}function Vb(o){o.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Fb(o){o.scene.objects.traverse((e,A)=>{let t=A.cloner;t&&(t.radial.scale=t.radial.scale.map(r=>r+1),t.linear.scale=t.linear.scale.map(r=>r+1))})}function jb(o){o.scene.objects.traverse((e,A)=>{let t=A.geometry;t&&(t.type==="DodecahedronGeometry"||t.type==="IcosahedronGeometry")&&(t.detail=Math.round(t.detail))})}function zb(o){o.scene.objects.traverse((e,A)=>{let t=o.scene.objects.parent(e);A.type==="Mesh"&&(!t||o.scene.objects.data(t).geometry?.type!=="BooleanGeometry")&&(A.booleanExclude=null)})}function hp(o){o.layers===void 0&&Object.assign(o,Te.defaultTwoLayerData("lambert"))}function el(o){!o.layers||o.layers.forEach(e=>{if(e.type==="depth"&&e.colors.length===10){let A=[...e.colors];A.push(e.colors[9]);let t=[...e.steps];t.push(e.steps[9]);let r={...Ce(e),colors:A,steps:t};Object.assign(e,r)}})}function kb(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&(A.geometry.type==="BooleanGeometry"||A.geometry.type==="SubdivGeometry")&&(A.geometry.phongAngle=35)})}function gp(o){o.scene.objects.traverse((e,A)=>{"materials"in A?A.materials.forEach(t=>{typeof t!="string"&&el(t)}):"material"in A&&typeof A.material!="string"&&el(A.material)}),Object.values(o.shared.materials).forEach(e=>el(e))}function Ub(o){o.scene.environment.ambientLight.softShadows=!1,o.scene.environment.ambientLight.softShadowQuality="low",o.scene.objects.traverse((e,A)=>{(A.type==="DirectionalLight"||A.type==="SpotLight")&&(A.shadowResolution=1024,A.shadowRadius=1,A.depth=1e5)}),o.shared.penumbraSize=new Array(5).fill(.5)}function Hb(o){o.shared.audios=hr({},RA.prototype)}function Wb(o){o.shared.videos=hr({},RA.prototype)}function qb(o){let e=o.shared.materials;Object.entries(e).forEach(([A,t])=>{if(!t.layers){let r={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(e,{[A]:r})}})}function Qb(o){Object.entries(Ce(o.shared.images)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.images[t]}),Object.entries(Ce(o.shared.audios)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.audios[t]})}function Yb(o){o.scene.publish.settings.web.preload=!1}function yp(o){o.layers&&o.layers.forEach(e=>{e.type==="depth"&&e.num!==void 0&&(e.colors=e.colors.slice(0,e.num),e.steps=e.steps.slice(0,e.num),delete e.num)})}function Xb(o){o.shared.fonts=hr({},RA.prototype)}function Kb(o){return o.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(A=>A.charAt(0).toUpperCase()+A.slice(1)).join(" ")}function Zb(o){let e=[];o.scene.objects.traverse((A,t)=>{let r=t;if(r.type==="TextFrame"){let n=Te.defaultTwoLayerData("phong"),i=typeof r.color=="string"?o.shared.colors[r.color]:r.color;n.layers[1].data.color={r:i.r,g:i.g,b:i.b},n.layers[1].data.alpha=r.alpha;let a=Kb(r.font);o.shared.fonts[a]===void 0&&(o.shared.fonts[a]={name:a});let l={name:r.name,...tt.defaultData,...Rr.defaultData,flatShading:!1,wireframe:!1,geometry:{...mr.defaultData("TextGeometry"),width:r.width,height:r.height,font:a,depth:0,horizontalAlign:r.horizontalAlign,verticalAlign:r.verticalAlign,fontSize:r.fontSize*1.40625,lineHeight:r.lineHeight/1.40625,letterSpacing:r.letterSpacing-1,text:r.text,textTransform:r.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:n,states:Ce(r.states),events:Ce(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},u=Ce(o.scene.objects).parent(A);o.scene.objects.insertAfter(u??null,A,[{id:A+"new",data:l,children:[]}]),e.push(A)}}),e.forEach(A=>{o.scene.objects.delete(A)})}function Jb(o){let e={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};o.scene.objects.traverse((A,t)=>{t.events.forEach(r=>{if(!!e[Number(r.type)])if(Object.assign(r,{type:e[Number(r.type)]}),r.type==="Audio"&&"audioEvent"in r&&(Object.assign(r,{playAudio:r.audioEvent}),delete r.audioEvent),r.type==="GameControl")Object.assign(r,{gameActions:{idle:new gA,move:new gA,jump:new gA}});else{let n=new gA;Object.assign(r,{actions:n}),(r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp")&&"url"in r&&n.push({fi:0,id:Mn.MathUtils.generateUUID(),data:{type:"Link",url:r.url,delay:0}}),"targets"in r&&(r.targets.forEach((i,a,l)=>{let u={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},s={easing:i.easing,duration:i.duration};i.easing===6?Object.assign(s,Po(i,"mass","stiffness","damping","velocity")):i.easing===5&&Object.assign(s,{control1:{...i.control1},control2:{...i.control2}});let c={repeat:i.repeat?-1:0,delay:i.delay,delayDirection:i.delayDirection,direction:i.cycle&&i.rewind?"pingpong-rewind":i.cycle?"pingpong":"normal"},d={state:i.state,...c,...s},p={allowSlerp:!0,type:"Transition",object:i.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new gA({fi:0,id:Mn.MathUtils.generateUUID(),data:u},{fi:1,id:Mn.MathUtils.generateUUID(),data:d})};n.push({fi:l,id:a,data:p})}),delete r.targets)}})})}function _b(o){o.scene.objects.traverse((e,A)=>{function t(r,n){let i=new gA,a=[];if(A.events.forEach((l,u,s)=>{if(l.type==="Audio"&&l.trigger===n){let c;a.push(u),l.interaction==="play"?c={...Po(l,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in l?l.after:void 0,toggle:"after"in l?l.toggle:void 0,type:"Audio"}:(l.interaction==="pause"||l.interaction==="stop")&&(c={...Po(l,"interaction","delay","object","playAudio"),type:"Audio"}),c&&i.push({fi:s,id:u,data:c})}}),a.forEach(l=>A.events.delete(l)),i.length){let l=A.events.find(u=>u.type===r)?.data;l?"actions"in l&&l.actions.insertBefore(null,i):A.events.insertBefore(null,[{id:Mn.MathUtils.generateUUID(),data:{type:r,actions:i}}])}}t("Start","start"),t("MouseDown","mouseDown"),t("MouseUp","mouseUp"),t("KeyDown","keyDown"),t("KeyUp","keyUp")})}function xp(o){let e=o.layers.find(A=>A.type==="light")?.data;if(e?.category==="basic"){let A=Se.defaultData("light","phong"),t=e;Object.assign(t,A),t.visible=!1}}function $b(o){Ms(o,xp),Bs(o,xp)}function A1(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&A.geometry.type==="SubdivGeometry"&&(A.geometry.scaleBaked||(A.geometry.scaleBaked=[1,1,1]))})}function e1(o){o.scene.objects.traverse((e,A)=>{(A.type==="Empty"||A.type==="Mesh")&&A.cloner&&!A.cloner.randomnessObject&&!A.cloner.toObject&&!A.cloner.randomness&&(A.cloner={...A.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 vp=25;function bp(o){let e=o.schema??0;e!==vp&&(console.warn("updating from ",e,"to ",vp),e<1&&(Bs(o,mp),Ms(o,mp),o.schema=1),e<2&&(Eb(o),o.schema=2),e<3&&(Gb(o),o.schema=3),e<4&&(Rb(o),o.schema=4),e<5&&(Vb(o),o.schema=5),e<6&&(Fb(o),o.schema=6),e<7&&(jb(o),o.schema=7),e<8&&(zb(o),o.schema=8),e<9&&(gp(o),o.schema=9),e<10&&(kb(o),o.schema=10),e<11&&(Ub(o),o.schema=11),e<12&&(gp(o),o.schema=12),e<13&&(Hb(o),o.schema=13),e<14&&(qb(o),o.schema=14),e<15&&(Qb(o),o.schema=15),e<16&&(Yb(o),o.schema=16),e<17&&(Bs(o,yp),Ms(o,yp),o.schema=17),e<18&&(Bs(o,hp),Ms(o,hp),o.schema=18),e<19&&(Db(o),o.schema=19),e<20&&(Xb(o),Zb(o),o.schema=20),e<21&&(Jb(o),_b(o),o.schema=21),e<22&&($b(o),o.schema=22),e<23&&(A1(o),o.schema=23),e<24&&(e1(o),o.schema=24),e<25&&(Wb(o),o.schema=25))}var Es;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(Es||(Es={}));var MA=require("three"),Go=Ei(Sp());var t1=.5*(Math.sqrt(3)-1),En=(3-Math.sqrt(3))/6,r1=1/3,xt=1/6,IB=(Math.sqrt(5)-1)/4,PB=(5-Math.sqrt(5))/20,Dn=o=>Math.floor(o)|0,Tp=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]),rl=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 Ds(o=Math.random){let e=Ip(o),A=new Float64Array(e).map(r=>Tp[r%12*2]),t=new Float64Array(e).map(r=>Tp[r%12*2+1]);return function(n,i){let a=0,l=0,u=0,s=(n+i)*t1,c=Dn(n+s),d=Dn(i+s),p=(c+d)*En,f=c-p,m=d-p,h=n-f,x=i-m,y,b;h>x?(y=1,b=0):(y=0,b=1);let w=h-y+En,v=x-b+En,I=h-1+2*En,S=x-1+2*En,g=c&255,P=d&255,N=.5-h*h-x*x;if(N>=0){let L=g+e[P],B=A[L],k=t[L];N*=N,a=N*N*(B*h+k*x)}let O=.5-w*w-v*v;if(O>=0){let L=g+y+e[P+b],B=A[L],k=t[L];O*=O,l=O*O*(B*w+k*v)}let T=.5-I*I-S*S;if(T>=0){let L=g+1+e[P+1],B=A[L],k=t[L];T*=T,u=T*T*(B*I+k*S)}return 70*(a+l+u)}}function Np(o=Math.random){let e=Ip(o),A=new Float64Array(e).map(n=>rl[n%12*3]),t=new Float64Array(e).map(n=>rl[n%12*3+1]),r=new Float64Array(e).map(n=>rl[n%12*3+2]);return function(i,a,l){let u,s,c,d,p=(i+a+l)*r1,f=Dn(i+p),m=Dn(a+p),h=Dn(l+p),x=(f+m+h)*xt,y=f-x,b=m-x,w=h-x,v=i-y,I=a-b,S=l-w,g,P,N,O,T,L;v>=I?I>=S?(g=1,P=0,N=0,O=1,T=1,L=0):v>=S?(g=1,P=0,N=0,O=1,T=0,L=1):(g=0,P=0,N=1,O=1,T=0,L=1):I<S?(g=0,P=0,N=1,O=0,T=1,L=1):v<S?(g=0,P=1,N=0,O=0,T=1,L=1):(g=0,P=1,N=0,O=1,T=1,L=0);let B=v-g+xt,k=I-P+xt,X=S-N+xt,eA=v-O+2*xt,nA=I-T+2*xt,U=S-L+2*xt,q=v-1+3*xt,Q=I-1+3*xt,j=S-1+3*xt,E=f&255,G=m&255,D=h&255,H=.6-v*v-I*I-S*S;if(H<0)u=0;else{let R=E+e[G+e[D]];H*=H,u=H*H*(A[R]*v+t[R]*I+r[R]*S)}let Y=.6-B*B-k*k-X*X;if(Y<0)s=0;else{let R=E+g+e[G+P+e[D+N]];Y*=Y,s=Y*Y*(A[R]*B+t[R]*k+r[R]*X)}let W=.6-eA*eA-nA*nA-U*U;if(W<0)c=0;else{let R=E+O+e[G+T+e[D+L]];W*=W,c=W*W*(A[R]*eA+t[R]*nA+r[R]*U)}let F=.6-q*q-Q*Q-j*j;if(F<0)d=0;else{let R=E+1+e[G+1+e[D+1]];F*=F,d=F*F*(A[R]*q+t[R]*Q+r[R]*j)}return 32*(u+s+c+d)}}function Ip(o){let A=new Uint8Array(512);for(let t=0;t<512/2;t++)A[t]=t;for(let t=0;t<512/2-1;t++){let r=t+~~(o()*(256-t)),n=A[t];A[t]=A[r],A[r]=n}for(let t=256;t<512;t++)A[t]=A[t-256];return A}var Pp=require("three"),rt=new Pp.Triangle,Gs=class{constructor(e){this.weightAttribute=null;let A=e.geometry;if(!A.isBufferGeometry||A.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");A.index&&(A=A.toNonIndexed()),this.geometry=A,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let e=this.positionAttribute,A=new Float32Array(e.count/3);for(let r=0;r<e.count;r+=3){let n=1;rt.a.fromBufferAttribute(e,r),rt.b.fromBufferAttribute(e,r+1),rt.c.fromBufferAttribute(e,r+2),n*=rt.getArea(),A[r/3]=n}this.distribution=new Float32Array(e.count/3);let t=0;for(let r=0;r<A.length;r++)t+=A[r],this.distribution[r]=t;return this}setRandomGenerator(e){return this.randomFunction=e,this}sample(e,A){if(this.distribution){let t=this.distribution[this.distribution.length-1],r=this.binarySearch(this.randomFunction()*t);return this.sampleFace(r,e,A)}}binarySearch(e){if(!this.distribution)return 0;let A=this.distribution,t=0,r=A.length-1,n=-1;for(;t<=r;){let i=Math.ceil((t+r)/2);if(i===0||A[i-1]<=e&&A[i]>e){n=i;break}else e<A[i]?r=i-1:t=i+1}return n}sampleFace(e,A,t){let r=this.randomFunction(),n=this.randomFunction();return r+n>1&&(r=1-r,n=1-n),rt.a.fromBufferAttribute(this.positionAttribute,e*3),rt.b.fromBufferAttribute(this.positionAttribute,e*3+1),rt.c.fromBufferAttribute(this.positionAttribute,e*3+2),A.set(0,0,0).addScaledVector(rt.a,r).addScaledVector(rt.b,n).addScaledVector(rt.c,1-(r+n)),rt.getNormal(t),this}};var js=require("three");var il=require("three");var Vs=require("three");var ol=require("three");function ae(o,e){return e.color(o)}var nl=o=>"isEntity"in o,vt=o=>"isAbstractMesh"in o,bt=o=>o!==null&&o.objectType==="BooleanObject",Op=o=>o.objectType==="CombinedCamera";var Rs=o=>"objectHelper"in o;function o1(o,e){let A=!1;e.position&&(o.position.fromArray(e.position),A=!0),e.rotation&&(o.rotation.fromArray(e.rotation),A=!0),e.scale&&(A=!0,o.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&"hiddenMatrix"in o&&(A=!0,o.hiddenMatrix.fromArray(e.hiddenMatrix??ir.identity)),A&&(o.updateMatrix(),bt(o.parent)&&vt(o)&&o.invalidateDownstreamBooleanData(!0).recomputeBoolean()),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&o.updateWorldMatrix(!1,!0),o.objectType==="CombinedCamera"&&(e.isUpVectorFlipped!==void 0&&(o.isUpVectorFlipped=e.isUpVectorFlipped),o.updateUp())}function n1(o,e){o1(o,e),e.name!==void 0&&(o.name=e.name),e.visible!==void 0&&(o.visible=e.visible)}function Cp(o,e,A){n1(o,e),e.color!==void 0&&(o.color=ae(e.color,A)),e.intensity!==void 0&&(o.intensity=e.intensity),e.shadows!==void 0&&!(o instanceof ol.HemisphereLight)&&(o.castShadow=e.shadows),o.shadow&&!(o instanceof ol.HemisphereLight)&&e.depth!==void 0&&(o.shadow.camera.far=e.depth,o.shadow.needsUpdate=!0)}function Lp(o,e){o.shadow.camera.right=e/2,o.shadow.camera.left=-e/2,o.shadow.camera.top=e/2,o.shadow.camera.bottom=-e/2,o.shadow.needsUpdate=!0}var Fs=o=>class extends o{hasEntityChild(){return this.children.some(A=>nl(A))}isDescendantOf(A){A instanceof Vs.Object3D&&(A=A.uuid);let t=this;for(;t.parent;){if(t.parent.uuid===A)return!0;t=t.parent}return!1}attach(A,t){this.updateWorldMatrix(!0,!1);let r=new Vs.Matrix4().copy(this.matrixWorld).invert();return A.parent!==null&&(A.parent.updateWorldMatrix(!0,!1),r.multiply(A.parent.matrixWorld)),nl(A)?A.hiddenMatrix.premultiply(r):A.applyMatrix4(r),A.updateWorldMatrix(!1,!1),this.add(A),t!==void 0&&(this.children.pop(),this.children.splice(t,0,A)),this}copy(A,t=!0){if(this.name=A.name,this.up.copy(A.up),this.position.copy(A.position),this.rotation.order=A.rotation.order,this.quaternion.copy(A.quaternion),this.scale.copy(A.scale),this.matrix.copy(A.matrix),this.matrixWorld.copy(A.matrixWorld),this.matrixAutoUpdate=A.matrixAutoUpdate,this.matrixWorldNeedsUpdate=A.matrixWorldNeedsUpdate,this.layers.mask=A.layers.mask,this.visible=A.visible,this.castShadow=A.castShadow,this.receiveShadow=A.receiveShadow,this.frustumCulled=A.frustumCulled,this.renderOrder=A.renderOrder,this.userData=JSON.parse(JSON.stringify(A.userData)),t===!0)for(let r=0;r<A.children.length;r++){let n=A.children[r];this.add(n.clone())}return this}};var WA=require("three");var Mo=new WA.Box3,Xe=new WA.Vector3,wt=new WA.Vector3,Bo=new WA.Matrix4,Bp=[new WA.Vector3(-1,1,1),new WA.Vector3(-1,-1,1),new WA.Vector3(1,-1,1),new WA.Vector3(1,1,1),new WA.Vector3(-1,1,-1),new WA.Vector3(-1,-1,-1),new WA.Vector3(1,-1,-1),new WA.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(o,e,A=0,t=e.count){let r=1/0,n=1/0,i=1/0,a=-1/0,l=-1/0,u=-1/0;for(let s=A;s<t;s++){let c=e.getX(s),d=e.getY(s),p=e.getZ(s);c<r&&(r=c),d<n&&(n=d),p<i&&(i=p),c>a&&(a=c),d>l&&(l=d),p>u&&(u=p)}return o.min.set(r,n,i),o.max.set(a,l,u),o}var Mp=(o,e,A)=>{if(vt(o)){let t=o.geometry.userData.parameters,r=o.geometry.getAttribute("position"),n=o.geometry.userData.type;n==="SubdivGeometry"?Xe.copy(o.originalGeometry.boundingSphere.center):n==="TextGeometry"||Co.is2DParametricMesh(n)?Xe.set(0,0,t.depth*.5):n==="ConeGeometry"||n==="CubeGeometry"||n==="CylinderGeometry"||n==="DodecahedronGeometry"||n==="HelixGeometry"||n==="IcosahedronGeometry"||n==="PyramidGeometry"||n==="SphereGeometry"||n==="PlaneGeometry"||n==="BackdropGeometry"||n==="TorusGeometry"||n==="TorusKnotGeometry"?Xe.set(0,0,0):r!==void 0&&(a1(Mo,r,o.geometry.drawRange.start,o.geometry.drawRange.count<1/0?o.geometry.drawRange.count:r.count),Mo.getCenter(Xe)),o.forceComputeSize?Mo.getSize(wt).multiplyScalar(.5):wt.set(t.width,t.height,t.depth??0).multiplyScalar(.5)}else if(Rs(o)&&o.objectHelper.visible){let t=o.geometryHelper.getAttribute("position");Mo.setFromArray(t.array),Mo.getCenter(Xe),Mo.getSize(wt).multiplyScalar(.5)}else Xe.setScalar(0),wt.setScalar(0);Bo.copy(e).multiply(o.matrixWorld),wt.x===0&&wt.y===0&&wt.z===0?A.push(new WA.Vector3(Xe.x,Xe.y,Xe.z).applyMatrix4(Bo)):Bp.forEach(t=>{A.push(t.clone().multiply(wt).add(Xe).applyMatrix4(Bo))})},Gn=class extends WA.Box3{constructor(){super(...arguments);this.matrix=new WA.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(A){return super.copy(A),this.matrix.copy(A.matrix),this.vertices=A.vertices.map(t=>t.clone()),this.faces=A.faces.map(t=>t.clone()),this.edges=A.edges.map(t=>t.clone()),this.centerEdges=A.centerEdges.map(t=>t.clone()),this}setFromObjectSize(A,t=!1){A.updateWorldMatrix(!1,t),this.makeEmpty(),this.matrix.copy(A.matrixWorld);let r=new WA.Matrix4().copy(A.matrixWorld).invert();return this.expandByObjectSize(A,r,t)}expandByObjectSize(A,t,r=!1){let n=[];return r===!0?A.traverseEntity(i=>{i.visible&&Mp(i,t,n)}):Mp(A,t,n),this.setFromPoints(n)}getCenter(A){return A=super.getCenter(A),A.applyMatrix4(this.matrix),A}getPositionToCenter(A){return A=super.getCenter(A),A.applyMatrix4(Bo.copy(this.matrix).setPosition(0,0,0)),A}computeVertices(){this.getSize(wt).multiplyScalar(.5),this.getCenter(Xe),Bo.copy(this.matrix).setPosition(Xe),this.vertices=Bp.map(A=>A.clone().multiply(wt).applyMatrix4(Bo))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=i1.map(([A,t])=>new WA.Line3(this.vertices[A],this.vertices[t])),this.centerEdges=this.edges.map(A=>A.getCenter(new WA.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=s1.map(([A,t])=>this.vertices[A].clone().add(this.vertices[t]).multiplyScalar(.5))}};var Ke=o=>"isEntity"in o,Ep=o=>"isAbstractMesh"in o,Ze=o=>class extends Fs(o){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new il.Matrix4;this._singleBBox=new Gn;this._recursiveBBox=new Gn;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(t=>{Ke(t)&&(t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(t=>{t.singleBBoxNeedsUpdate=!0,t.recursiveBBoxNeedsUpdate=!0})}traverseEntity(t){t(this);for(let r of this.children)Ke(r)&&r.traverseEntity(t)}traverseVisibleEntity(t){t(this);for(let r of this.children)Ke(r)&&r.visible&&r.traverseVisibleEntity(t)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(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,t=!0);for(let r of this.children)r.updateMatrixWorld(t)}updateWorldMatrix(t,r){let n=this.parent;if(t&&n!==null&&n.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)),r)for(let i of this.children)i.updateWorldMatrix(!1,!0)}clone(t){return new this.constructor().copy(this,t)}copy(t,r=!0){if(super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),r===!0)for(let n of t.children)Ke(n)&&this.add(n.clone());return this}keepChildrenMatrixWorld(){let t=new il.Matrix4,r=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),t.copy(this.matrixWorld).invert(),t.multiply(r);for(let n of this.children)Ke(n)&&n.hiddenMatrix.premultiply(t)}toObjectTransformState(t=[]){this.updateWorldMatrix(!0,!1);let r={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return Io(r,t)}fromObjectTransformState(t){return t.position&&this.position.fromArray(t.position),t.rotation&&this.rotation.fromArray(t.rotation),t.scale&&this.scale.fromArray(t.scale),t.hiddenMatrix&&this.hiddenMatrix.fromArray(t.hiddenMatrix),this.updateMatrix(),this}toState(t=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(t)};return Io(r,t)}fromState(t,r){return t.name&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.type!=="OrthographicCamera"&&t.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),t.visible!==void 0&&(this.visible=t.visible),this.fromObjectTransformState(t),this}};var sl=class extends js.Object3D{},l1=o=>o.type==="Mesh",St=class extends sl{constructor(A){super();this.object=A;this.hiddenMatrix=new js.Matrix4;this.uuidOrigin=A.uuid,this.matrixAutoUpdate=!0;for(let t of this.object.children)if(Ke(t)){let r=new St(t);r.visible=!0,this.add(r),r.matrixAutoUpdate=!1,r.matrix=t.matrix.clone(),r.matrix.premultiply(t.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(A){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(A){}get isMesh(){return l1(this.object)}updateMatrixWorld(A){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||A)&&(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,A=!0);for(let t of this.children)t.updateMatrixWorld(A)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(A){}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,Eo=new Promise(o=>{c1=o});var Tt=require("three"),Dp=-1,u1=1,Gp={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Rp={polygon_center:0,edge:1,vertex:2},Rn=(o,e)=>(A,t)=>!e||A===0||o===0?0:o*t/100,mA=(o,e)=>{let A=Math.abs(e),t=A*-1;return(o-Dp)*(A-t)/(u1-Dp)+t};function Vp(o){let e=[],A={};for(var t=0,r=o.length;t<r;t++){var n=JSON.stringify(o[t].pos.map(i=>Math.round(i*1e4)/1e4));A[n]||(e.push(o[t]),A[n]=!0)}return e}var d1=new Tt.Vector3,zs=new Tt.Vector3,p1=new Tt.Vector3,f1=new Tt.Vector3;function Do(o,e){let A=p1.fromArray(o),t=f1.fromArray(e);zs.copy(t).sub(A);let r=zs.length();return zs.normalize().multiplyScalar(r*.5),d1.copy(A).add(zs).toArray()}var Je=new Tt.Triangle,ks=new Tt.Vector3,Us=new Tt.Vector3,Vr=new Tt.Vector3;function Fp(o){let e=[];for(let A=0;A<=o.index.count;A++)if(ks.fromArray(o.index.array,A*3),Je.setFromAttributeAndIndices(o.attributes.position,ks.x,ks.y,ks.z),Je.getNormal(Us),Je.getMidpoint(Vr),!(isNaN(Vr.x)||isNaN(Vr.y)||isNaN(Vr.z))){let{a:t,b:r,c:n}=Je,i=t.toArray(),a=r.toArray(),l=n.toArray(),u=t.distanceTo(r),s=r.distanceTo(n),c=n.distanceTo(t),d=Do(i,a),p=Do(a,l),f=Do(l,i),m=[u,s,c],h=Math.max(...m),x=m.filter(w=>Math.round(w)===Math.round(h)).length>1,y=[],b=Je.getMidpoint(Vr).toArray();h===u&&!x&&(y=[p,f,f],b=d),h===s&&!x&&(y=[d,f,f],b=p),h===c&&!x&&(y=[d,p,p],b=f),x&&(y=[d,p,f]),e.push({vertices:[i,a,l],faceCenters:y,midpoint:b,norm:Je.getNormal(Us).toArray()})}return e}function jp(o){let e=[],{position:A}=o.attributes;for(let t=0;t<A.count;t++){Je.setFromAttributeAndIndices(A,t*3,t*3+1,t*3+2),Je.getNormal(Us),Je.getMidpoint(Vr);let r=Je.a.toArray(),n=Je.b.toArray(),i=Je.c.toArray();e.push({vertices:[r,n,i],faceCenters:[Do(r,n),Do(n,i),Do(i,r)],midpoint:Vr.toArray(),norm:Us.toArray()})}return e}var m1=4,h1=.5,al=o=>.5*(1-Math.cos(o*Math.PI)),ll=class{constructor(){this.perlin=new Array(4095+1)}noise(e,A=0,t=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let x=0;x<4095+1;x++)this.perlin[x]=Math.random()}e<0&&(e=-e),A<0&&(A=-A),t<0&&(t=-t);let r=Math.floor(e),n=Math.floor(A),i=Math.floor(t),a=e-r,l=A-n,u=t-i,s,c,d=0,p=.5,f,m,h;for(let x=0;x<m1;x++){let y=r+(n<<4)+(i<<8);s=al(a),c=al(l),f=this.perlin[y&4095],f+=s*(this.perlin[y+1&4095]-f),m=this.perlin[y+16&4095],m+=s*(this.perlin[y+16+1&4095]-m),f+=c*(m-f),y+=256,m=this.perlin[y&4095],m+=s*(this.perlin[y+1&4095]-m),h=this.perlin[y+16&4095],h+=s*(this.perlin[y+16+1&4095]-h),m+=c*(h-m),f+=al(u)*(m-f),d+=f*p,p*=h1,r<<=1,a*=2,n<<=1,l*=2,i<<=1,u*=2,a>=1&&(r++,a--),l>=1&&(n++,l--),u>=1&&(i++,u--)}return d}noiseSeed(e){let A=(()=>{let i,a;return{setSeed(l){a=i=(l??Math.random()*4294967296)>>>0},getSeed(){return i},rand(){return a=(1664525*a+1013904223)%4294967296,a/4294967296}}})();A.setSeed(e),this.perlin=new Array(4095+1);for(let t=0;t<4095+1;t++)this.perlin[t]=A.rand()}},zp=ll;var Ne=1e-4,Nt,Hp,Wp,qp,kp=new MA.Vector3,Up=new MA.Vector3;Eo.then(o=>{Nt=o,Hp=[Nt.get_face_center,Nt.get_edge_midpoint,Nt.get_vertex_position],Wp=[Nt.get_face_normal,Nt.get_edge_normal,Nt.get_vertex_normal],qp=[Nt.face_count,Nt.edge_count,Nt.vertex_count]});var g1=new MA.Matrix4,y1=new MA.Matrix4,gr=new MA.Vector3,Fr=new MA.Vector3,Vn=new MA.Vector3,cl=new MA.Vector3,x1=new MA.Vector3,v1=new MA.Vector3;var Xt=new zp,Kt=class extends MA.Object3D{constructor(A,t={}){super();this.objectForSample=void 0;this.object=A;let r=A.recursiveBBox.getSize(new MA.Vector3),n=.1;this.parameters=Dr.defaultData(r.toArray(),n),No(this.parameters,t),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(A){this.parameters.hideBase=A}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(A=>A.updateMatrix()):this.children.forEach(A=>A.updateMatrix())}_updateCount(A){let t;if(A!==void 0?t=A:t=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&&(t=0),this.parameters.type==="toObject"&&this.objectForSample){for(let n=0,i=this.children.length;n<i;++n)this.remove(this.children[0]);let r=[...this.objectForSample.children].filter(n=>n instanceof St&&n.uuidOrigin===this.object.uuid);if(r.length===t)return;if(r.length<t)for(let n=0,i=t-r.length;n<i;++n){let a=new St(this.object);a.visible=!0,this.objectForSample.add(a),this.parameters.hideBase&&this.setHideBase(!0)}else for(let n=0,i=r.length-t;n<i;++n)this.objectForSample.remove(r[n])}else{if(this.children.length===t)return;if(this.children.length<t)for(let r=0,n=t-this.children.length;r<n;++r){let i=new St(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,n=this.children.length-t;r<n;++r)this.remove(this.children[0])}}_updateRadial(A){let t=A.radial,r=t.start*MA.MathUtils.DEG2RAD,n=t.end*MA.MathUtils.DEG2RAD,i=r-n,a=new MA.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),l;switch(t.axis){case"z":l=new MA.Vector3(0,0,1);break;case"y":l=new MA.Vector3(0,1,0);break;default:case"x":l=new MA.Vector3(1,0,0);break}let u=A.randomnessObject,s=u.noiseType==="perlin";Xt.noiseSeed(u.seed);let c=Ds((0,Go.default)(u.seed)),d=Rn(u.strength,this.parameters.randomness);for(let[p,f]of this.children.entries()){let m=p*(u.freqScale/10)+u.movement,h=s?Xt.noise(m):c(m,m);f.scale.x=t.scale[0]+d(p,mA(h,u.scale[0]))||Ne,f.scale.y=t.scale[1]+d(p,mA(h,u.scale[1]))||Ne,f.scale.z=t.scale[2]+d(p,mA(h,u.scale[2]))||Ne,f.position.setScalar(0);let x=i/A.count*p-r;switch(t.axis){case"x":f.rotation.set(0,x,0);break;case"y":f.rotation.set(0,0,x);break;case"z":f.rotation.set(x,0,0);break}f.translateOnAxis(l,t.radius),f.position.x+=t.position[0]+d(p,mA(h,u.position[0])),f.position.y+=t.position[1]+d(p,mA(h,u.position[1])),f.position.z+=t.position[2]+d(p,mA(h,u.position[2]));let y=d(p,mA(h,u.rotation[0])),b=d(p,mA(h,u.rotation[1])),w=d(p,mA(h,u.rotation[2]));t.alignment===!0?(f.rotation.x+=a.x+y,f.rotation.y+=a.y+b,f.rotation.z+=a.z+w):f.rotation.set(a.x+y,a.y+b,a.z+w)}}_updateLinear(A){if(A.type!=="linear")throw new Error;let t=A.linear,r=new MA.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Xt.noiseSeed(n.seed);let a=Ds((0,Go.default)(n.seed)),l=Rn(n.strength,this.parameters.randomness);for(let[u,s]of this.children.entries()){let c=u*(n.freqScale/10)+n.movement,d=i?Xt.noise(c):a(c,c),p=l(u,mA(d,n.rotation[0])),f=l(u,mA(d,n.rotation[1])),m=l(u,mA(d,n.rotation[2]));s.scale.x=1+(t.scale[0]-1)*u+l(u,mA(d,n.scale[0]))||Ne,s.scale.y=1+(t.scale[1]-1)*u+l(u,mA(d,n.scale[1]))||Ne,s.scale.z=1+(t.scale[2]-1)*u+l(u,mA(d,n.scale[2]))||Ne,s.rotation.x=r.x*u+p,s.rotation.y=r.y*u+f,s.rotation.z=r.z*u+m,s.position.x=t.position[0]*u+l(u,mA(d,n.position[0])),s.position.y=t.position[1]*u+l(u,mA(d,n.position[1])),s.position.z=t.position[2]*u+l(u,mA(d,n.position[2]))}}_updateGrid(A){let t=0,r=A.grid,n=A.randomnessObject,i=Rn(n.strength,this.parameters.randomness),a=n.noiseType==="perlin";Xt.noiseSeed(n.seed);let l=Np((0,Go.default)(n.seed));if(r.useCenter===!0){let u={x:r.count[0]%2===0?2:1,y:r.count[1]%2===0?2:1,z:r.count[2]%2===0?2:1},s=new MA.Vector3(r.size[0]*(r.count[0]-u.x)*.5,r.size[1]*(r.count[1]-u.y)*.5,r.size[2]*(r.count[2]-u.z)*.5);for(let c=0;c<r.count[0];c++)for(let d=0;d<r.count[1];d++)for(let p=0;p<r.count[2];p++){let f=[(c+1)*(n.freqScale/10)+n.movement,(d+1)*(n.freqScale/10)+n.movement,(p+1)*(n.freqScale/10)+n.movement],m=a?Xt.noise(...f):l(...f),h=this.children[t++];h.scale.x=1+i(t,mA(m,n.scale[0]))||Ne,h.scale.y=1+i(t,mA(m,n.scale[1]))||Ne,h.scale.z=1+i(t,mA(m,n.scale[2]))||Ne;let x=i(t,mA(m,n.rotation[0])),y=i(t,mA(m,n.rotation[1])),b=i(t,mA(m,n.rotation[2]));h.rotation.set(x,y,b),h.position.x=r.size[0]*c-s.x+i(t,mA(m,n.position[0])),h.position.y=r.size[1]*d-s.y+i(t,mA(m,n.position[1])),h.position.z=r.size[2]*p-s.z+i(t,mA(m,n.position[2]))}}else for(let u=0;u<r.count[0];u++)for(let s=0;s<r.count[1];s++)for(let c=0;c<r.count[2];c++){let d=[(u+1)*(n.freqScale/10)+n.movement,(s+1)*(n.freqScale/10)+n.movement,(c+1)*(n.freqScale/10)+n.movement],p=a?Xt.noise(...d):l(...d),f=this.children[t++];f.scale.x=1+i(t,mA(p,n.scale[0]))||Ne,f.scale.y=1+i(t,mA(p,n.scale[1]))||Ne,f.scale.z=1+i(t,mA(p,n.scale[2]))||Ne;let m=i(t,mA(p,n.rotation[0])),h=i(t,mA(p,n.rotation[1])),x=i(t,mA(p,n.rotation[2]));f.rotation.set(m,h,x),f.position.x=r.size[0]*u+i(t,mA(p,n.position[0])),f.position.y=-r.size[1]*s+i(t,mA(p,n.position[1])),f.position.z=-r.size[2]*c+i(t,mA(p,n.position[2]))}}_updateToObject(A){if(A.type!=="toObject")throw new Error;let{toObject:t}=A,r=new MA.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Xt.noiseSeed(n.seed);let a=Ds((0,Go.default)(n.seed)),l=Rn(n.strength,this.parameters.randomness);if(!t.object){for(let[,x]of this.children.entries())x.position.set(0,0,0),x.scale.setScalar(1),x.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let u=this.getSubdivData(),s=[],c=x=>{let y=x.length,b=x.map(I=>I[0]).reduce((I,S)=>I+S,0),w=x.map(I=>I[1]).reduce((I,S)=>I+S,0),v=x.map(I=>I[2]).reduce((I,S)=>I+S,0);return[b/y,w/y,v/y]},d=x=>Math.round(x*1e6)/1e6;u.forEach(x=>{let y=u.filter(b=>d(x.pos[0])===d(b.pos[0])&&d(x.pos[1])===d(b.pos[1])&&d(x.pos[2])===d(b.pos[2]));y.length>1?s.push({pos:x.pos,norm:c(y.map(b=>b.norm))}):s.push(x)});let p=Vp(s);if(u.length>0){let x=Math.round(p.length*t.count/100);this._updateCount(x)}this.objectForSample.updateMatrixWorld();let f=new Gs(this.objectForSample).build(),m=Gp[t.axis],h=this.objectForSample.children.filter(x=>x instanceof St&&x.uuidOrigin===this.object.uuid);f.setRandomGenerator((0,Go.default)(this.object.uuid+t.seed));for(let[x,y]of h.entries()){let b=x*(n.freqScale/10)+n.movement,w=i?Xt.noise(b):a(b,b),v=l(x,mA(w,n.rotation[0])),I=l(x,mA(w,n.rotation[1])),S=l(x,mA(w,n.rotation[2]));t.spreadType==="random"?f.sample(Vn,cl):(p.length&&(Vn.fromArray(p[x].pos),cl.fromArray(p[x].norm)),this.objectForSample.objectType==="SubdivObject"&&Vn.applyMatrix4(g1.copy(this.objectForSample.matrixWorld).invert())),Vn.applyMatrix4(this.object.hiddenMatrix.clone().invert()),y.position.copy(Vn),gr.fromArray(m);let g=t.align==="normal"?cl:this.object.getWorldDirection(v1),P=Fr.fromArray(t.position);Fr.x+=Fr.x+l(x,mA(w,n.position[0])),Fr.y+=Fr.y+l(x,mA(w,n.position[1])),Fr.z+=Fr.z+l(x,mA(w,n.position[2]));let N=Math.acos(g.dot(gr)),O=x1.crossVectors(gr,g).normalize(),T=y1.makeRotationAxis(O,N),L=g.clone().cross(this.object.up).normalize(),B=L.clone().cross(g).normalize(),k=new MA.Matrix4().makeBasis(L,g,B),X=new MA.Vector3(gr.y,gr.z,gr.x).normalize(),eA=X.clone().cross(gr).normalize(),nA=new MA.Matrix4().makeBasis(X,gr,eA).invert(),U=new MA.Matrix4().multiplyMatrices(k,nA);y.rotation.setFromRotationMatrix(U),P.applyMatrix4(T),y.position.add(P),y.rotation.x=y.rotation.x+r.x+v,y.rotation.y=y.rotation.y+r.y+I,y.rotation.z=y.rotation.z+r.z+S,y.scale.setScalar(1),y.scale.x=y.scale.x+t.scale[0]+l(x,mA(w,n.scale[0]))||Ne,y.scale.y=y.scale.y+t.scale[1]+l(x,mA(w,n.scale[1]))||Ne,y.scale.z=y.scale.z+t.scale[2]+l(x,mA(w,n.scale[2]))||Ne,y.scale.multiply(this.object.scale),y.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(A){this.objectForSample=A}getSubdivData(){if(!this.objectForSample)return[];let A=this.parameters.toObject.spreadType;if(A==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let t=this.objectForSample,r=Rp[A],n=qp[r],i=Hp[r],a=Wp[r],l=[],u=n(t.subdivPointer);for(let s=0;s<=u-1;s++){let c=i(t.subdivPointer,s),d=a(t.subdivPointer,s);kp.fromArray(c).applyMatrix4(t.matrixWorld),Up.fromArray(d),l.push({pos:kp.toArray(),norm:Up.toArray()})}return l}else return(this.objectForSample.geometry.index?Fp(this.objectForSample.geometry):jp(this.objectForSample.geometry)).map((r,n)=>A==="polygon_center"?{pos:r.midpoint,norm:r.norm}:A==="vertex"?[{pos:r.vertices[0],norm:r.norm},{pos:r.vertices[1],norm:r.norm},{pos:r.vertices[2],norm:r.norm}]:A==="edge"?[{pos:r.faceCenters[0],norm:r.norm},{pos:r.faceCenters[1],norm:r.norm},{pos:r.faceCenters[2],norm:r.norm}]:[]).flat()}removeSampleObjectClones(){if(this.objectForSample)for(var A=this.objectForSample.children.length-1;A>=0;A--){let t=this.objectForSample.children[A];t instanceof St&&t.uuidOrigin===this.object.uuid&&this.objectForSample.remove(t)}}fromClonerState(A){if(!A)return this;A.hideBase!==void 0&&this.setHideBase(A.hideBase);let t=A.hasOwnProperty("type");return A.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!A.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(t?A.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),No(this.parameters,A),this.update(),this}};var zt=require("three");var kA=require("three");var Qp=require("three"),It=o=>{var e;return e=class extends o{constructor(){super(...arguments);this.isObjectHelper=!0}},e.geometryHelper=new Qp.BoxGeometry(30,30,30),e};var pe=require("three");var ye=require("three"),Hs=new ye.Ray,ul=new ye.Sphere,Yp=new ye.Matrix4,Pt=(o,e,A,t,r=!1)=>{let n=e,i=o.matrixWorld;if(n.boundingSphere===null&&n.computeBoundingSphere(),ul.copy(n.boundingSphere),ul.applyMatrix4(i),A.ray.intersectsSphere(ul)===!1||(Yp.copy(i).invert(),Hs.copy(A.ray).applyMatrix4(Yp),n.boundingBox!==null&&Hs.intersectsBox(n.boundingBox)===!1))return;let a,l,u,s,c=n.index,d=n.attributes.position,p=n.drawRange,f,m;if(r===!1){let x=Math.max(0,p.start),y=Math.min(c.count,p.start+p.count);for(f=x,m=y;f<m;f+=3)if(l=c.getX(f),u=c.getX(f+1),s=c.getX(f+2),a=h(o,A,Hs,d,l,u,s),a){a.faceIndex=Math.floor(f/3),t.push(a);return}}else{let y=n.attributes.position,b=new ye.Vector3,w=new ye.Vector3,v=new ye.Vector3,I=new ye.Vector3,S=2,P=1/((o.scale.x+o.scale.y+o.scale.z)/3),N=P*P,O=Math.max(0,p.start),T=Math.min(y.count,p.start+p.count);for(let L=O,B=T-1;L<B;L+=S){if(b.fromBufferAttribute(y,L),w.fromBufferAttribute(y,L+1),Hs.distanceSqToSegment(b,w,I,v)>N)continue;I.applyMatrix4(o.matrixWorld);let X=A.ray.origin.distanceTo(I);X<A.near||X>A.far||t.push({distance:X,point:v.clone().applyMatrix4(o.matrixWorld),object:o})}}function h(x,y,b,w,v,I,S){let g=new ye.Vector3,P=new ye.Vector3,N=new ye.Vector3,O=new ye.Vector3,T=new ye.Vector3;if(g.fromBufferAttribute(w,v),P.fromBufferAttribute(w,I),N.fromBufferAttribute(w,S),b.intersectTriangle(g,P,N,!1,O)===null)return null;T.copy(O),T.applyMatrix4(x.matrixWorld);let B=y.ray.origin.distanceTo(T);return B<y.near||B>y.far?null:{faceIndex:1,distance:B,point:T.clone(),object:x}}};var Ws=new pe.Vector3,_e=new pe.Camera,dl=class extends pe.LineSegments{constructor(A){let t=new pe.BufferGeometry,r=new pe.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],i=[],a={},l=new pe.Color(15711266),u=new pe.Color(15711266),s=new pe.Color(2857471);c("n1","n2",l),c("n2","n4",l),c("n4","n3",l),c("n3","n1",l),c("f1","f2",l),c("f2","f4",l),c("f4","f3",l),c("f3","f1",l),c("n1","f1",l),c("n2","f2",l),c("n3","f3",l),c("n4","f4",l),c("p","n1",u),c("p","n2",u),c("p","n3",u),c("p","n4",u),c("u1","u2",s),c("u2","u3",s),c("u3","u1",s);function c(p,f,m){d(p,m),d(f,m)}function d(p,f){n.push(0,0,0),i.push(f.r,f.g,f.b),a[p]===void 0&&(a[p]=[]),a[p].push(n.length/3-1)}t.setAttribute("position",new pe.Float32BufferAttribute(n,3)),t.setAttribute("color",new pe.Float32BufferAttribute(i,3));super(t,r);this.type="CameraHelper",this.camera=A,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=a,this.update()}update(){let A=this.geometry,t=this.pointMap,r=!0;_e.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,i=1,a=r?.8:1e-4;ot("n1",t,A,_e,-n,-i,a),ot("n2",t,A,_e,n,-i,a),ot("n3",t,A,_e,-n,i,a),ot("n4",t,A,_e,n,i,a);let l=a;ot("f1",t,A,_e,-n,-i,l),ot("f2",t,A,_e,n,-i,l),ot("f3",t,A,_e,-n,i,l),ot("f4",t,A,_e,n,i,l);let u=l,s=.5;ot("u1",t,A,_e,n*.7*s,i*1.1,u),ot("u2",t,A,_e,-n*.7*s,i*1.1,u),ot("u3",t,A,_e,0,i*(1.1+.9*s),u),A.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function ot(o,e,A,t,r,n,i){Ws.set(r,n,i).unproject(t);let a=e[o];if(a!==void 0){let l=A.getAttribute("position");for(let u=0,s=a.length;u<s;u++)l.setXYZ(a[u],Ws.x,Ws.y,Ws.z)}}var qs=class extends It(dl){constructor(A){super(A);this.object=A;this.object=A,this.name=`CombinedCameraHelper: ${A.uuid}`}updateMatrixWorld(A){super.updateMatrixWorld(A),this.updateTarget()}updateTarget(){let A=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(A)}raycast(A,t){Pt(this.object,this.geometry,A,t,!0)}};var Xp=require("three");var Ro=class extends It(Xp.DirectionalLightHelper){constructor(A,t=15,r=10066329){super(A,t,r);this.object=A;this.added=!1;this.name=`DirectionalLightHelper: ${A.uuid}`}raycast(A,t){Pt(this.object,Ro.geometryHelper,A,t)}};var Kp=require("three");var Vo=class extends It(Kp.AxesHelper){constructor(A,t=15){super(t);this.object=A;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${A.uuid}`,this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1}raycast(A,t){Pt(this.object,Vo.geometryHelper,A,t)}update(){}};var Zp=require("three");var Fo=class extends It(Zp.PointLightHelper){constructor(A,t=15,r=6710886){super(A,t,r);this.object=A;this.name=`PointLightHelper: ${A.uuid}`}raycast(A,t){Pt(this.object,Fo.geometryHelper,A,t)}};var Ys=require("three");var Qs=class extends It(Ys.SpotLightHelper){constructor(A,t=6710886){super(A,t);this.object=A;this.name=`SpotLightHelper: ${A.uuid}`}raycast(A,t){Pt(this.object,Qs.geometryHelper,A,t)}update(){if(this.object!==void 0){let A=Qs._vector,t=this.object.distance?this.object.distance:1e3,r=t*Math.tan(this.object.angle);this.cone.scale.set(r,r,t),A.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(A);let n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let i=0,a=this.cone.material.length;i<a;i++)this.cone.material[i].color.set(n);else this.cone.material.color.set(n)}}},Fn=Qs;Fn._vector=new Ys.Vector3;var hA=require("three"),jn=1e-12,jo=class{constructor(e){this.position=new hA.Vector2;this.startPosition=new hA.Vector2;this.uuid=hA.MathUtils.generateUUID();this.position=e.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(e){this.position.copy(this.startPosition).add(e)}copy(e){return this.position.copy(e.position),this.startPosition.copy(e.startPosition),this}clone(){return new jo(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},zo=class extends jo{constructor(A){super(A.position);this.parent=A}copy(A){return super.copy(A),this}clone(){return new zo(this.parent).copy(this)}},nt=class extends jo{constructor(A,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=A,this.controls.push(new zo(this),new zo(this))}static create(A,t){let r=new nt(A,new hA.Vector2(...t.position));return r.controls[0].position.set(...t.controlPrevious.position),r.controls[1].position.set(...t.controlNext.position),r.roundness=t.roundness,r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored,r}getOppositeControl(A){let t=this.controls.indexOf(A);return t===0?this.controls[1]:t===1?this.controls[0]:null}applyOffsetToControls(A,t=1){for(let r=0,n=this.controls.length;r<n;r++){let i=this.controls[r];this.position.distanceTo(i.position)<=t?i.position.copy(this.position):i.applyOffset(A)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(A){return super.copy(A),this.controls[0].copy(A.controls[0]),this.controls[1].copy(A.controls[1]),this.roundness=A.roundness,this.uuid=A.uuid,this}clone(){return new nt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let A=this.curveBefore?.getTangentAt(1),t=this.curveAfter?.getTangentAt(0);return[A,t]}computeNormals(A=new hA.Vector2,t=new hA.Vector2){let[r,n]=this.computeTangents();return r&&n&&(Jp(r,A),Jp(n,t)),[A,t]}computeTangent(A=new hA.Vector2){let[t,r]=this.computeTangents();return t&&r&&A.copy(t).add(r).normalize(),A}computeNormal(A=new hA.Vector2){let[t,r]=this.computeNormals();return A.copy(t).add(r).normalize(),A}};function Jp(o,e=new hA.Vector2){let A=o.length();return e.set(-o.y/A,o.x/A)}var fl=o=>o,ko=new hA.Vector2,Xs=new hA.Vector2,w1=new hA.Vector2,S1=new hA.Vector2,T1=new hA.Vector2,N1=new hA.Vector2,$p=new hA.Vector3,Af=new hA.Vector3;function ef(o){let e=new hA.Vector2;e.addVectors(o.v0,ko.subVectors(o.v1,o.v0).multiplyScalar(2/3));let A=new hA.Vector2;return A.addVectors(o.v2,Xs.subVectors(o.v1,o.v2).multiplyScalar(2/3)),new hA.CubicBezierCurve(o.v0,e,A,o.v2)}function zn(o,e,A=Number.EPSILON){return Math.abs(o-e)<A}function I1(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function P1(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function ml(o,e,A){let t=Math.sqrt(Math.pow(e.x-o.x,2)+Math.pow(e.y-o.y,2)),r=Math.sqrt(Math.pow(e.x-A.x,2)+Math.pow(e.y-A.y,2)),n=Math.sqrt(Math.pow(A.x-o.x,2)+Math.pow(A.y-o.y,2));return Math.acos((r*r+t*t-n*n)/(2*r*t))}function tf(o,e,A){return _p(o,e)&&_p(e,A)&&pl(o.position,e.position,A.position)}function pl(o,e,A){return ko.copy(e).sub(o).cross(Xs.copy(A).sub(o))===0}function rf(o,e,A,t,r){let n=Math.sqrt(Math.pow(e.x-o.x,2)+Math.pow(e.y-o.y,2)),i=(o.y+e.y)/2,a=(o.x+e.x)/2,l=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(o.y-e.y)/n,u=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(e.x-o.x)/n;return t.set(a+l,i+u),r.set(a-l,i-u),[t,r]}function of(o,e,A){let t=o.distanceTo(A),r=e.distanceTo(A);return t<r?e:o}function nf(o,e,A,t,r,n){let i=e.x-o.x,a=e.y-o.y,l=A.x-o.x,u=A.y-o.y,s=Math.sqrt((i+l)*(i+l)+(a+u)*(a+u)),c;return ml(e,o,A)>Math.PI&&(s*=-1),zn(u,a)?c=(a+u)*(t/s-.5)*8/3/(i-l):c=(i+l)*(t/s-.5)*8/3/(u-a),r.set(e.x-c*a,e.y+c*i),n.set(A.x+c*u,A.y-c*l),[r,n]}function hl(o,e){return o.position.equals(o.controls[1].position)&&e.position.equals(e.controls[0].position)}function _p(o,e){return pl(o.position,o.controls[1].position,e.position)&&pl(o.position,e.controls[0].position,e.position)}function sf(o,e,A,t,r=.5){let n=ko.subVectors(e,o).multiplyScalar(r).add(o),i=Xs.subVectors(A,e).multiplyScalar(r).add(e),a=w1.subVectors(t,A).multiplyScalar(r).add(A),l=n,u=S1.subVectors(i,n).multiplyScalar(r).add(n),s=T1.subVectors(a,i).multiplyScalar(r).add(i),c=a,d=N1.subVectors(s,u).multiplyScalar(r).add(u);return[o.x,o.y,l.x,l.y,u.x,u.y,d.x,d.y,s.x,s.y,c.x,c.y,t.x,t.y]}function af(o,e,A=12,t=!0){let r=Af.set(0,0,0),n,i=0,a=[];for(let l=0;l<e.length;l++){let u=fl(e[l]),s=ko,c=yr(u,A);a.push(c);for(let d=0;d<=c;d++)if(u instanceof hA.CubicBezierCurve||u instanceof hA.QuadraticBezierCurve||u instanceof hA.LineCurve){if(u.getPoint(d/c,s),r.set(s.x,s.y,0),n!==void 0&&P1(n,r))continue;n===void 0&&(n=$p),n.copy(r),o.setXYZ(i,r.x,r.y,r.z),i++}}return t&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),o}function lf(o,e,A,t=12,r=!0){let n=Af.set(0,0,0),i=0,a=[];for(let l=0;l<e.length;l++){if(A[l]===!1)continue;let u,s=fl(e[l]),c=ko,d=yr(s,t);a.push(d);for(let p=0;p<=d;p++)if(s instanceof hA.CubicBezierCurve||s instanceof hA.QuadraticBezierCurve||s instanceof hA.LineCurve){if(s.getPoint(p/d,c),n.set(c.x,c.y,0),u?.equals(n))continue;u===void 0?u=$p:(o.setXYZ(i,u.x,u.y,u.z),i++,o.setXYZ(i,n.x,n.y,n.z),i++),u.copy(n)}}return r&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),a}function gl(o,e=12,A=!1){let t=[];for(let r=0,n=o.length;r<n;r++){let i=o[r],a=0;if(A&&i.roundedCurveCorner!==void 0){let l=yr(i.roundedCurveCorner,e)*.5;r>0&&(t[r-1]+=l),a+=l}i.curveAfter!==void 0&&(a+=yr(i.curveAfter,e)),t.push(a)}return o.length>0&&A&&o[0].roundedCurveCorner!==void 0&&(t[o.length-1]+=yr(o[0].roundedCurveCorner,e)*.5),t}function yr(o,e=12){return o&&o instanceof hA.EllipseCurve?e*2:o&&(o instanceof hA.LineCurve||o instanceof hA.LineCurve3)?1:o&&o instanceof hA.SplineCurve?e*o.points.length:e}function cf(o,e,A=12,t=!0){let r,n=0;for(let i=0;i<e.length;i++){let a=fl(e[i]),l=yr(a,A),u=ko;for(let s=0;s<=l;s++)if(a instanceof hA.CubicBezierCurve||a instanceof hA.QuadraticBezierCurve||a instanceof hA.LineCurve){if(a.getPoint(s/l,u),r!==void 0&&I1(r,u,jn))continue;r===void 0&&(r=Xs),r.copy(u),o.push(u.x,u.y),n++}}return zn(o[0],o[o.length-2],jn)&&zn(o[1],o[o.length-1],jn)&&(o.pop(),o.pop()),t&&n>1&&!(zn(o[n-1],o[1],jn)&&zn(o[n-2],o[0],jn))&&(o.push(o[0],o[1]),n++),o}var Ir=require("three");var wA=require("three");var yl=new wA.Vector2,O1=new wA.Vector2,C1=new wA.Vector2,L1=new wA.Vector2,M1=new wA.Vector2,B1=new wA.Vector2,TA=class extends wA.Shape{constructor(A=100,t=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new wA.EventDispatcher;this.plane=new wA.Plane(new wA.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=wA.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=A,this._height=t}static createFromState(A,t,r){let n=new TA;return n.isClosed=A.isClosed,n.points=A.points.map(i=>nt.create(i.id,i.data)),typeof A.roundness=="number"&&(n.roundness=A.roundness),n.shapeHoles=A.shapeHoles.map(i=>TA.createFromState(i)),t!==void 0&&r!==void 0&&n.applySize(t,r),n.update(),n}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(A){if(this._roundness!==A){this._roundness=A;for(let t=0,r=this.points.length;t<r;t++)this.points[t].roundness=A;this.needsUpdate=!0}}getPointsIndexesByIds(A){return A.map(t=>this.getPointIndexById(t)).filter(t=>t>=0)}getPointIndexById(A){let t=this.points.length,r=this.points.findIndex(n=>n.uuid===A);if(r<0){let n=t;for(let i=0,a=this.shapeHoles.length;i<a;i++){let l=this.shapeHoles[i],u=l.points.length,s=l.getPointIndexById(A);if(s<0)n+=u;else return s+n}}return r}getLineIndexById(A){return this.getPointIndexById(A)}getBezierPoint(A){if(A<=this.points.length-1)return this.points[A];if(this.shapeHoles.length>0){let t=this.points.length;for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=A-t;if(a<=i.points.length-1)return i.points[a];t+=i.points.length}}throw new Error("This shape does not have a point for this index: "+A)}getBezierPointIndex(A){let t=this.points.indexOf(A);if(t>=0)return t;if(t=this.points.length,this.shapeHoles.length>0)for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=i.points.indexOf(A);if(a>=0)return t+a;t+=i.points.length}return-1}getAllPoints(){let A=[].concat(...this.shapeHoles.map(t=>t.points));return[...this.points,...A]}applySize(A,t){A===0&&(A=.001),t===0&&(t=.001),this._width=A,this._height=t}applyScale(A,t){let r=yl.set(A,t);for(let n=0,i=this.points.length;n<i;n++){let a=this.points[n];a.position.multiply(r),a.controls[0].position.multiply(r),a.controls[1].position.multiply(r)}for(let n=0,i=this.shapeHoles.length;n<i;n++)this.shapeHoles[n].applyScale(A,t);this._update(!1)}createPoint(A,t=0,r=wA.MathUtils.generateUUID()){let n;A instanceof wA.Vector2?n=A:n=new wA.Vector2(A,t);let i=new nt(r,n);return i.roundness=this.roundness,i}addPoint(A){this.points.push(A),this.needsUpdate=!0}addPointAt(A,t){this.points.splice(t,0,A),this.needsUpdate=!0}getPointByUuid(A){for(let t=0,r=this.points.length;t<r;t++){let n=this.points[t];if(n.uuid===A)return n}for(let t=0,r=this.shapeHoles.length;t<r;t++){let i=this.shapeHoles[t].getPointByUuid(A);if(i)return i}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(A){let t=this.points.indexOf(A);t>=0&&this.points.splice(t,1),this.needsUpdate=!0}removePointById(A){let t=this.points.find(r=>r.uuid===A);t&&this.removePoint(t)}update(A=!0){for(let t=0,r=this.shapeHoles.length;t<r;t++)this.shapeHoles[t].update(!1);this._update(A)}extractShapePointsToBuffer(A,t=12,r=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let n=r?this.roundedCurveDivisions:this.curveDivisions;return af(A,r?this.roundedCurves:this.curves,t,this.autoClose),n.reduce((i,a)=>i+a,0)+1}computeCurveDivisions(A=12){return this.curveDivisions=gl(this.points,A,!1),this.roundedCurveDivisions=gl(this.points,A,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(A,t,r=12){return lf(A,this.curves,t,r,this.autoClose).reduce((i,a)=>i+a,0)*2}extractShapePointsToFlatArray(A,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),cf(A,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(A,t=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=t?this.roundedCurveDivisions:this.curveDivisions,i=0;t&&this.points[0].roundedCurveCorner!==void 0&&(i=yr(this.points[0].roundedCurveCorner,this.subdivision)*.5);let a=A-i;a<0&&(a+=n.reduce((l,u)=>l+u,0));for(let l=0,u=n.length;l<u;l++){let s=n[l];if(a<r+s)return[l,(a-r+1)/s];r+=s}return[0,1]}getCurveT(A,t,r){let n=this.points[A],i=this.points[A>=this.points.length-1?0:A+1],a=this.curveDivisions,l=a[A];if(hl(n,i)){let c=n.position.distanceTo(i.position);return n.position.distanceTo(yl.set(r.x,r.y))/c}let u=0;for(let c=0;c<A;c++)u+=a[c];return(t-u)/l}dispose(){this.eventDispatcher=null}_applyCurveForPoint(A,t){hl(t,A)?this.lineTo(A.position.x,A.position.y):this.bezierCurveTo(t.controls[1].position.x,t.controls[1].position.y,A.controls[0].position.x,A.controls[0].position.y,A.position.x,A.position.y);let r=this.curves[this.curves.length-1];A.curveBefore=r,t.curveAfter=r;let n=r.clone();A.roundedCurveBefore=n,t.roundedCurveAfter=n,A.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(A=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let r=0,n=this.points.length;r<n;r++){let i=this.points[r];if(r===0)this.moveTo(i.position.x,i.position.y);else{let a=this.points[r-1];this._applyCurveForPoint(i,a)}}let t=this.getLastPoint();if(t?.curveAfter&&(t.curveAfter=void 0),this.isClosed){let r=this.points[0],n=this.points[this.points.length-1];this._applyCurveForPoint(r,n)}if(this.points.length>2){let r=0;for(let n=0,i=this.points.length;n<i;n++){let a=this.points[n],l=this.points[n-1]??this.points[this.points.length-1],u=this.points[n+1]??this.points[0],s=a.roundness,c=l&&u&&tf(l,a,u);if(!a.controlsMoved()&&s>0&&!c){let d=a.curveBefore,p=a.curveAfter;if(d===void 0||p===void 0)continue;let f=a.roundedCurveBefore,m=a.roundedCurveAfter,h=d.getLength(),x=p.getLength(),y=Math.min(s,h*.499),b=Math.min(s,x*.499),w=Math.min(y,b),v=1-w/h,I=w/x,S=d.getPointAt(v,yl),g=p.getPointAt(I,O1);this._subSplitCurve(d,f,v,S,void 0),this._subSplitCurve(p,m,I,void 0,g);let P;if(this.useCubicForRoundedCorners){let N=ml(S,a.position,g)/2,O=Math.tan(N)*S.distanceTo(a.position),[T,L]=rf(S,g,O,C1,L1),B=of(T,L,a.position),[k,X]=nf(B,S,g,O,M1,B1);P=new wA.CubicBezierCurve(S.clone(),k.clone(),X.clone(),g.clone())}else P=new wA.QuadraticBezierCurve(S.clone(),a.position.clone(),g.clone());a.roundedCurveCorner=P,this.roundedCurves.splice(n+r,0,P),r++}}}A&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(A,t,r,n,i){if(A instanceof wA.LineCurve)n!==void 0&&t.v2.copy(n),i!==void 0&&t.v1.copy(i);else{let a=A,l=t,u=a.getUtoTmapping(r,0),s=sf(a.v0,a.v1,a.v2,a.v3,u);return n!==void 0&&(l.v0.set(s[0],s[1]),l.v1.set(s[2],s[3]),l.v2.set(s[4],s[5]),l.v3.set(s[6],s[7])),i!==void 0&&(l.v0.set(s[6],s[7]),l.v1.set(s[8],s[9]),l.v2.set(s[10],s[11]),l.v3.set(s[12],s[13])),l}return t}clone(){let A=new TA(this._width,this._height);return A.points=this.points.map(t=>t.clone()),A.isClosed=this.isClosed,A.roundness=this.roundness,A.isMesh2D=this.isMesh2D,A.shapeHoles=this.shapeHoles.map(t=>t.clone()),A}toJSON(){return{points:this.points.reduce((A,t)=>A.concat(t.toJSON()),[]),shapeHoles:this.shapeHoles.map(A=>A.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(A){this.points=[],this.pointIDs=0;let t=A.points.length/7;for(let r=0;r<t;r++){let n=r*7,i=A.points[n+0],a=A.points[n+1],l=A.points[n+2],u=A.points[n+3],s=A.points[n+4],c=A.points[n+5],d=A.points[n+6],p=new nt(wA.MathUtils.generateUUID(),new wA.Vector2(i,a));p.controls[0].position.set(l,u),p.controls[1].position.set(s,c),p.roundness=d,this.points.push(p)}return this.shapeHoles=A.shapeHoles?.length?A.shapeHoles.map(r=>{let n=new TA;return n.fromJSON(r),n}):[],this.isClosed=A.isClosed,this._roundness=A.roundness,this._update(),this}fromShape(A){let t=(n,i)=>{i instanceof wA.CubicBezierCurve&&i.v3.equals(n.position)&&n.controls[0].position.copy(i.v2)},r=n=>{let i=[],a,l;for(a=0,l=n.length;a<l;a++)n[a]instanceof wA.QuadraticBezierCurve&&(n[a]=ef(n[a]));for(a=0,l=n.length;a<l;a++){let c=n[a],d=a>0?n[a-1]:null,p;c instanceof wA.CubicBezierCurve?(p=this.createPoint(c.v0),p.controls[1].position.copy(c.v1)):c instanceof wA.LineCurve&&(p=this.createPoint(c.v1)),p!==void 0&&(d!==null&&t(p,d),i.push(p))}let u=n[n.length-1],s=!1;return u instanceof wA.CubicBezierCurve?u.v3.equals(i[0].position)&&(i[0].controls[0].position.copy(u.v2),s=!0):u instanceof wA.LineCurve&&u.v2.equals(i[0].position)&&(s=!0),this.isClosed=s,i};return this.points=r(A.curves),A instanceof wA.Shape&&(this.shapeHoles=A.holes.map(n=>{let i=new TA;return i.fromShape(n),i})),this.update(),this}};var zr=require("three");var DA;(function(o){o[o.ODD=0]="ODD",o[o.NONZERO=1]="NONZERO",o[o.POSITIVE=2]="POSITIVE",o[o.NEGATIVE=3]="NEGATIVE",o[o.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(DA||(DA={}));var Ae;(function(o){o[o.POLYGONS=0]="POLYGONS",o[o.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",o[o.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ae||(Ae={}));function cA(o,e){if(!o)throw e||"Assertion Failed!"}var aA=function(){function o(){}return o.vertEq=function(e,A){return e.s===A.s&&e.t===A.t},o.vertLeq=function(e,A){return e.s<A.s||e.s===A.s&&e.t<=A.t},o.transLeq=function(e,A){return e.t<A.t||e.t===A.t&&e.s<=A.s},o.edgeGoesLeft=function(e){return o.vertLeq(e.Dst,e.Org)},o.edgeGoesRight=function(e){return o.vertLeq(e.Org,e.Dst)},o.vertL1dist=function(e,A){return Math.abs(e.s-A.s)+Math.abs(e.t-A.t)},o.edgeEval=function(e,A,t){cA(o.vertLeq(e,A)&&o.vertLeq(A,t));var r=A.s-e.s,n=t.s-A.s;return r+n>0?r<n?A.t-e.t+(e.t-t.t)*(r/(r+n)):A.t-t.t+(t.t-e.t)*(n/(r+n)):0},o.edgeSign=function(e,A,t){cA(o.vertLeq(e,A)&&o.vertLeq(A,t));var r=A.s-e.s,n=t.s-A.s;return r+n>0?(A.t-t.t)*r+(A.t-e.t)*n:0},o.transEval=function(e,A,t){cA(o.transLeq(e,A)&&o.transLeq(A,t));var r=A.t-e.t,n=t.t-A.t;return r+n>0?r<n?A.s-e.s+(e.s-t.s)*(r/(r+n)):A.s-t.s+(t.s-e.s)*(n/(r+n)):0},o.transSign=function(e,A,t){cA(o.transLeq(e,A)&&o.transLeq(A,t));var r=A.t-e.t,n=t.t-A.t;return r+n>0?(A.s-t.s)*r+(A.s-e.s)*n:0},o.vertCCW=function(e,A,t){return e.s*(A.t-t.t)+A.s*(t.t-e.t)+t.s*(e.t-A.t)>=0},o.interpolate=function(e,A,t,r){return e=e<0?0:e,t=t<0?0:t,e<=t?t===0?(A+r)/2:A+(r-A)*(e/(e+t)):r+(A-r)*(t/(e+t))},o.intersect=function(e,A,t,r,n){var i,a,l;o.vertLeq(e,A)||(l=e,e=A,A=l),o.vertLeq(t,r)||(l=t,t=r,r=l),o.vertLeq(e,t)||(l=e,e=t,t=l,l=A,A=r,r=l),o.vertLeq(t,A)?o.vertLeq(A,r)?(i=o.edgeEval(e,t,A),a=o.edgeEval(t,A,r),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,t.s,a,A.s)):(i=o.edgeSign(e,t,A),a=-o.edgeSign(e,r,A),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,t.s,a,r.s)):n.s=(t.s+A.s)/2,o.transLeq(e,A)||(l=e,e=A,A=l),o.transLeq(t,r)||(l=t,t=r,r=l),o.transLeq(e,t)||(l=e,e=t,t=l,l=A,A=r,r=l),o.transLeq(t,A)?o.transLeq(A,r)?(i=o.transEval(e,t,A),a=o.transEval(t,A,r),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,t.t,a,A.t)):(i=o.transSign(e,t,A),a=-o.transSign(e,r,A),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,t.t,a,r.t)):n.t=(t.t+A.t)/2},o}(),kn=function(){function o(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return o}(),Ks=function(){function o(e){this.side=e,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(o.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(e){this.Sym.Lface=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(e){this.Sym.Org=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(e){this.Sym.Lnext=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(e){this.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(e){this.Lnext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(e){this.Sym.Onext=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(e){this.Sym.Onext.Sym=e},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(e){this.Sym.Lnext.Sym=e},enumerable:!0,configurable:!0}),o}(),Uo=function(){function o(){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 o}(),uf=function(){function o(){var e=new Uo,A=new kn,t=new Ks(0),r=new Ks(1);e.next=e.prev=e,e.anEdge=null,A.next=A.prev=A,t.next=t,t.Sym=r,r.next=r,r.Sym=t,this.vHead=e,this.fHead=A,this.eHead=t,this.eHeadSym=r}return o.prototype.makeEdge_=function(e){var A=new Ks(0),t=new Ks(1);e.Sym.side<e.side&&(e=e.Sym);var r=e.Sym.next;return t.next=r,r.Sym.next=A,A.next=e,e.Sym.next=t,A.Sym=t,A.Onext=A,A.Lnext=t,A.Org=null,A.Lface=null,A.winding=0,A.activeRegion=null,t.Sym=A,t.Onext=t,t.Lnext=A,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,A},o.prototype.splice_=function(e,A){var t=e.Onext,r=A.Onext;t.Sym.Lnext=A,r.Sym.Lnext=e,e.Onext=r,A.Onext=t},o.prototype.makeVertex_=function(e,A,t){var r=e;cA(r,"Vertex can't be null!");var n=t.prev;r.prev=n,n.next=r,r.next=t,t.prev=r,r.anEdge=A;var i=A;do i.Org=r,i=i.Onext;while(i!==A)},o.prototype.makeFace_=function(e,A,t){var r=e;cA(r,"Face can't be null");var n=t.prev;r.prev=n,n.next=r,r.next=t,t.prev=r,r.anEdge=A,r.trail=null,r.marked=!1,r.inside=t.inside;var i=A;do i.Lface=r,i=i.Lnext;while(i!==A)},o.prototype.killEdge_=function(e){e.Sym.side<e.side&&(e=e.Sym);var A=e.next,t=e.Sym.next;A.Sym.next=t,t.Sym.next=A},o.prototype.killVertex_=function(e,A){var t=e.anEdge,r=t;do r.Org=A,r=r.Onext;while(r!==t);var n=e.prev,i=e.next;i.prev=n,n.next=i},o.prototype.killFace_=function(e,A){var t=e.anEdge,r=t;do r.Lface=A,r=r.Lnext;while(r!==t);var n=e.prev,i=e.next;i.prev=n,n.next=i},o.prototype.makeEdge=function(){var e=new Uo,A=new Uo,t=new kn,r=this.makeEdge_(this.eHead);return this.makeVertex_(e,r,this.vHead),this.makeVertex_(A,r.Sym,this.vHead),this.makeFace_(t,r,this.fHead),r},o.prototype.splice=function(e,A){var t=!1,r=!1;if(e!==A){if(A.Org!==e.Org&&(r=!0,this.killVertex_(A.Org,e.Org)),A.Lface!==e.Lface&&(t=!0,this.killFace_(A.Lface,e.Lface)),this.splice_(A,e),!r){var n=new Uo;this.makeVertex_(n,A,e.Org),e.Org.anEdge=e}if(!t){var i=new kn;this.makeFace_(i,A,e.Lface),e.Lface.anEdge=e}}},o.prototype.delete=function(e){var A=e.Sym,t=!1;if(e.Lface!==e.Rface&&(t=!0,this.killFace_(e.Lface,e.Rface)),e.Onext===e)this.killVertex_(e.Org,null);else if(e.Rface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev),!t){var r=new kn;this.makeFace_(r,e,e.Lface)}A.Onext===A?(this.killVertex_(A.Org,null),this.killFace_(A.Lface,null)):(e.Lface.anEdge=A.Oprev,A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),this.killEdge_(e)},o.prototype.addEdgeVertex=function(e){var A=this.makeEdge_(e),t=A.Sym;this.splice_(A,e.Lnext),A.Org=e.Dst;var r=new Uo;return this.makeVertex_(r,t,A.Org),A.Lface=t.Lface=e.Lface,A},o.prototype.splitEdge=function(e){var A=this.addEdgeVertex(e),t=A.Sym;return this.splice_(e.Sym,e.Sym.Oprev),this.splice_(e.Sym,t),e.Dst=t.Org,t.Dst.anEdge=t.Sym,t.Rface=e.Rface,t.winding=e.winding,t.Sym.winding=e.Sym.winding,t.idx=e.idx,t.Sym.idx=e.Sym.idx,t},o.prototype.connect=function(e,A){var t=!1,r=this.makeEdge_(e),n=r.Sym;if(A.Lface!==e.Lface&&(t=!0,this.killFace_(A.Lface,e.Lface)),this.splice_(r,e.Lnext),this.splice_(n,A),r.Org=e.Dst,n.Org=A.Org,r.Lface=n.Lface=e.Lface,e.Lface.anEdge=n,!t){var i=new kn;this.makeFace_(i,r,e.Lface)}return r},o.prototype.zapFace=function(e){var A=e.anEdge,t,r,n,i,a;r=A.Lnext;do t=r,r=t.Lnext,t.Lface=null,t.Rface===null&&(t.Onext===t?this.killVertex_(t.Org,null):(t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),n=t.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(t));while(t!=A);i=e.prev,a=e.next,a.prev=i,i.next=a},o.prototype.countFaceVerts_=function(e){var A=e.anEdge,t=0;do t++,A=A.Lnext;while(A!==e.anEdge);return t},o.prototype.mergeConvexFaces=function(e){var A,t,r,n,i,a,l;for(A=this.fHead.next;A!==this.fHead;A=A.next)if(!!A.inside)for(t=A.anEdge,i=t.Org;r=t.Lnext,n=t.Sym,n&&n.Lface&&n.Lface.inside&&(a=this.countFaceVerts_(A),l=this.countFaceVerts_(n.Lface),a+l-2<=e&&aA.vertCCW(t.Lprev.Org,t.Org,n.Lnext.Lnext.Org)&&aA.vertCCW(n.Lprev.Org,n.Org,t.Lnext.Lnext.Org)&&(r=n.Lnext,this.delete(n),t=null,n=null)),!(t&&t.Lnext.Org===i);)t=r;return!0},o.prototype.check=function(){var e=this.fHead,A=this.vHead,t=this.eHead,r,n,i,a,l,u;for(n=e,n=e;(r=n.next)!==e;n=r){cA(r.prev===n),l=r.anEdge;do cA(l.Sym!==l),cA(l.Sym.Sym===l),cA(l.Lnext.Onext.Sym===l),cA(l.Onext.Sym.Lnext===l),cA(l.Lface===r),l=l.Lnext;while(l!==r.anEdge)}for(cA(r.prev===n&&r.anEdge===null),a=A,a=A;(i=a.next)!==A;a=i){cA(i.prev===a),l=i.anEdge;do cA(l.Sym!==l),cA(l.Sym.Sym===l),cA(l.Lnext.Onext.Sym===l),cA(l.Onext.Sym.Lnext===l),cA(l.Org===i),l=l.Onext;while(l!==i.anEdge)}for(cA(i.prev===a&&i.anEdge===null),u=t,u=t;(l=u.next)!==t;u=l)cA(l.Sym.next===u.Sym),cA(l.Sym!==l),cA(l.Sym.Sym===l),cA(l.Org!==null),cA(l.Dst!==null),cA(l.Lnext.Onext.Sym===l),cA(l.Onext.Sym.Lnext===l);cA(l.Sym.next===u.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},o}(),df=function(){function o(){this.handle=null}return o}(),pf=function(){function o(){this.key=null,this.node=0}return o}(),E1=function(){function o(e,A){this.leq=A,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=e,this.nodes=[],this.handles=[];for(var t=0;t<e+1;t++)this.nodes[t]=new df,this.handles[t]=new pf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return o.prototype.floatDown_=function(e){var A=this.nodes,t=this.handles,r,n,i;for(r=A[e].handle;;){if(i=e<<1,i<this.size&&this.leq(t[A[i+1].handle].key,t[A[i].handle].key)&&++i,cA(i<=this.max),n=A[i].handle,i>this.size||this.leq(t[r].key,t[n].key)){A[e].handle=r,t[r].node=e;break}A[e].handle=n,t[n].node=e,e=i}},o.prototype.floatUp_=function(e){var A=this.nodes,t=this.handles,r,n,i;for(r=A[e].handle;;){if(i=e>>1,n=A[i].handle,i===0||this.leq(t[n].key,t[r].key)){A[e].handle=r,t[r].node=e;break}A[e].handle=n,t[n].node=e,e=i}},o.prototype.init=function(){for(var e=this.size;e>=1;--e)this.floatDown_(e);this.initialized=!0},o.prototype.min=function(){return this.handles[this.nodes[1].handle].key},o.prototype.insert=function(e){var A,t;if(A=++this.size,A*2>this.max){this.max*=2;var r,n;for(n=this.nodes.length,this.nodes.length=this.max+1,r=n;r<this.nodes.length;r++)this.nodes[r]=new df;for(n=this.handles.length,this.handles.length=this.max+1,r=n;r<this.handles.length;r++)this.handles[r]=new pf}return this.freeList===0?t=A:(t=this.freeList,this.freeList=this.handles[t].node),this.nodes[A].handle=t,this.handles[t].node=A,this.handles[t].key=e,this.initialized&&this.floatUp_(A),t},o.prototype.extractMin=function(){var e=this.nodes,A=this.handles,t=e[1].handle,r=A[t].key;return this.size>0&&(e[1].handle=e[this.size].handle,A[e[1].handle].node=1,A[t].key=null,A[t].node=this.freeList,this.freeList=t,--this.size,this.size>0&&this.floatDown_(1)),r},o.prototype.delete=function(e){var A=this.nodes,t=this.handles,r;cA(e>=1&&e<=this.max&&t[e].key!==null),r=t[e].node,A[r].handle=A[this.size].handle,t[A[r].handle].node=r,--this.size,r<=this.size&&(r<=1||this.leq(t[A[r>>1].handle].key,t[A[r].handle].key)?this.floatDown_(r):this.floatUp_(r)),t[e].key=null,t[e].node=this.freeList,this.freeList=e},o}(),xl=function(){function o(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return o}(),ff=function(){function o(){this.key=null,this.next=null,this.prev=null}return o}(),D1=function(){function o(e,A){this.frame=e,this.leq=A,this.head=new ff,this.head.next=this.head,this.head.prev=this.head}return o.prototype.min=function(){return this.head.next},o.prototype.max=function(){return this.head.prev},o.prototype.insert=function(e){return this.insertBefore(this.head,e)},o.prototype.search=function(e){var A=this.head;do A=A.next;while(A.key!==null&&!this.leq(this.frame,e,A.key));return A},o.prototype.insertBefore=function(e,A){do e=e.prev;while(e.key!==null&&!this.leq(this.frame,e.key,A));var t=new ff;return t.key=A,t.next=e.next,e.next.prev=t,t.prev=e,e.next=t,t},o.prototype.delete=function(e){e.next.prev=e.prev,e.prev.next=e.next},o}(),G1=function(){function o(){}return o.regionBelow=function(e){return e.nodeUp.prev.key},o.regionAbove=function(e){return e.nodeUp.next.key},o.debugEvent=function(e){},o.addWinding=function(e,A){e.winding+=A.winding,e.Sym.winding+=A.Sym.winding},o.edgeLeq=function(e,A,t){var r=e.event,n=A.eUp,i=t.eUp;if(n.Dst===r)return i.Dst===r?aA.vertLeq(n.Org,i.Org)?aA.edgeSign(i.Dst,n.Org,i.Org)<=0:aA.edgeSign(n.Dst,i.Org,n.Org)>=0:aA.edgeSign(i.Dst,r,i.Org)<=0;if(i.Dst===r)return aA.edgeSign(n.Dst,r,n.Org)>=0;var a=aA.edgeEval(n.Dst,r,n.Org),l=aA.edgeEval(i.Dst,r,i.Org);return a>=l},o.deleteRegion=function(e,A){A.fixUpperEdge&&cA(A.eUp.winding===0),A.eUp.activeRegion=null,e.dict.delete(A.nodeUp)},o.fixUpperEdge=function(e,A,t){cA(A.fixUpperEdge),e.mesh.delete(A.eUp),A.fixUpperEdge=!1,A.eUp=t,t.activeRegion=A},o.topLeftRegion=function(e,A){var t=A.eUp.Org,r;do A=o.regionAbove(A);while(A.eUp.Org===t);if(A.fixUpperEdge){if(r=e.mesh.connect(o.regionBelow(A).eUp.Sym,A.eUp.Lnext),r===null)return null;o.fixUpperEdge(e,A,r),A=o.regionAbove(A)}return A},o.topRightRegion=function(e){var A=e.eUp.Dst;do e=o.regionAbove(e);while(e.eUp.Dst===A);return e},o.addRegionBelow=function(e,A,t){var r=new xl;return r.eUp=t,r.nodeUp=e.dict.insertBefore(A.nodeUp,r),r.fixUpperEdge=!1,r.sentinel=!1,r.dirty=!1,t.activeRegion=r,r},o.isWindingInside=function(e,A){switch(e.windingRule){case DA.ODD:return(A&1)!==0;case DA.NONZERO:return A!==0;case DA.POSITIVE:return A>0;case DA.NEGATIVE:return A<0;case DA.ABS_GEQ_TWO:return A>=2||A<=-2}throw new Error("Invalid winding rulle")},o.computeWinding=function(e,A){A.windingNumber=o.regionAbove(A).windingNumber+A.eUp.winding,A.inside=o.isWindingInside(e,A.windingNumber)},o.finishRegion=function(e,A){var t=A.eUp,r=t.Lface;r.inside=A.inside,r.anEdge=t,o.deleteRegion(e,A)},o.finishLeftRegions=function(e,A,t){for(var r,n=null,i=A,a=A.eUp;i!==t;){if(i.fixUpperEdge=!1,n=o.regionBelow(i),r=n.eUp,r.Org!=a.Org){if(!n.fixUpperEdge){o.finishRegion(e,i);break}r=e.mesh.connect(a.Lprev,r.Sym),o.fixUpperEdge(e,n,r)}a.Onext!==r&&(e.mesh.splice(r.Oprev,r),e.mesh.splice(a,r)),o.finishRegion(e,i),a=n.eUp,i=n}return a},o.addRightEdges=function(e,A,t,r,n,i){var a,l,u,s,c=!0;u=t;do cA(aA.vertLeq(u.Org,u.Dst)),o.addRegionBelow(e,A,u.Sym),u=u.Onext;while(u!==r);for(n===null&&(n=o.regionBelow(A).eUp.Rprev),l=A,s=n;a=o.regionBelow(l),u=a.eUp.Sym,u.Org===s.Org;)u.Onext!==s&&(e.mesh.splice(u.Oprev,u),e.mesh.splice(s.Oprev,u)),a.windingNumber=l.windingNumber-u.winding,a.inside=o.isWindingInside(e,a.windingNumber),l.dirty=!0,!c&&o.checkForRightSplice(e,l)&&(o.addWinding(u,s),o.deleteRegion(e,l),e.mesh.delete(s)),c=!1,l=a,s=u;l.dirty=!0,cA(l.windingNumber-u.winding===a.windingNumber),i&&o.walkDirtyRegions(e,l)},o.spliceMergeVertices=function(e,A,t){e.mesh.splice(A,t)},o.vertexWeights=function(e,A,t){var r=aA.vertL1dist(A,e),n=aA.vertL1dist(t,e),i=.5*n/(r+n),a=.5*r/(r+n);e.coords[0]+=i*A.coords[0]+a*t.coords[0],e.coords[1]+=i*A.coords[1]+a*t.coords[1],e.coords[2]+=i*A.coords[2]+a*t.coords[2]},o.getIntersectData=function(e,A,t,r,n,i){A.coords[0]=A.coords[1]=A.coords[2]=0,A.idx=-1,o.vertexWeights(A,t,r),o.vertexWeights(A,n,i)},o.checkForRightSplice=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp;if(aA.vertLeq(r.Org,n.Org)){if(aA.edgeSign(n.Dst,r.Org,n.Org)>0)return!1;aA.vertEq(r.Org,n.Org)?r.Org!==n.Org&&(e.pq.delete(r.Org.pqHandle),o.spliceMergeVertices(e,n.Oprev,r)):(e.mesh.splitEdge(n.Sym),e.mesh.splice(r,n.Oprev),A.dirty=t.dirty=!0)}else{if(aA.edgeSign(r.Dst,n.Org,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,e.mesh.splitEdge(r.Sym),e.mesh.splice(n.Oprev,r)}return!0},o.checkForLeftSplice=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp,i;if(cA(!aA.vertEq(r.Dst,n.Dst)),aA.vertLeq(r.Dst,n.Dst)){if(aA.edgeSign(r.Dst,n.Dst,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,i=e.mesh.splitEdge(r),e.mesh.splice(n.Sym,i),i.Lface.inside=A.inside}else{if(aA.edgeSign(n.Dst,r.Dst,n.Org)>0)return!1;A.dirty=t.dirty=!0,i=e.mesh.splitEdge(n),e.mesh.splice(r.Lnext,n.Sym),i.Rface.inside=A.inside}return!0},o.checkForIntersect=function(e,A){var t=o.regionBelow(A),r=A.eUp,n=t.eUp,i=r.Org,a=n.Org,l=r.Dst,u=n.Dst,s,c,d=new Uo,p,f;if(cA(!aA.vertEq(u,l)),cA(aA.edgeSign(l,e.event,i)<=0),cA(aA.edgeSign(u,e.event,a)>=0),cA(i!==e.event&&a!==e.event),cA(!A.fixUpperEdge&&!t.fixUpperEdge),i===a||(s=Math.min(i.t,l.t),c=Math.max(a.t,u.t),s>c))return!1;if(aA.vertLeq(i,a)){if(aA.edgeSign(u,i,a)>0)return!1}else if(aA.edgeSign(l,a,i)<0)return!1;return o.debugEvent(e),aA.intersect(l,i,u,a,d),cA(Math.min(i.t,l.t)<=d.t),cA(d.t<=Math.max(a.t,u.t)),cA(Math.min(u.s,l.s)<=d.s),cA(d.s<=Math.max(a.s,i.s)),aA.vertLeq(d,e.event)&&(d.s=e.event.s,d.t=e.event.t),p=aA.vertLeq(i,a)?i:a,aA.vertLeq(p,d)&&(d.s=p.s,d.t=p.t),aA.vertEq(d,i)||aA.vertEq(d,a)?(o.checkForRightSplice(e,A),!1):!aA.vertEq(l,e.event)&&aA.edgeSign(l,e.event,d)>=0||!aA.vertEq(u,e.event)&&aA.edgeSign(u,e.event,d)<=0?u===e.event?(e.mesh.splitEdge(r.Sym),e.mesh.splice(n.Sym,r),A=o.topLeftRegion(e,A),r=o.regionBelow(A).eUp,o.finishLeftRegions(e,o.regionBelow(A),t),o.addRightEdges(e,A,r.Oprev,r,r,!0),!0):l===e.event?(e.mesh.splitEdge(n.Sym),e.mesh.splice(r.Lnext,n.Oprev),t=A,A=o.topRightRegion(A),f=o.regionBelow(A).eUp.Rprev,t.eUp=n.Oprev,n=o.finishLeftRegions(e,t,null),o.addRightEdges(e,A,n.Onext,r.Rprev,f,!0),!0):(aA.edgeSign(l,e.event,d)>=0&&(o.regionAbove(A).dirty=A.dirty=!0,e.mesh.splitEdge(r.Sym),r.Org.s=e.event.s,r.Org.t=e.event.t),aA.edgeSign(u,e.event,d)<=0&&(A.dirty=t.dirty=!0,e.mesh.splitEdge(n.Sym),n.Org.s=e.event.s,n.Org.t=e.event.t),!1):(e.mesh.splitEdge(r.Sym),e.mesh.splitEdge(n.Sym),e.mesh.splice(n.Oprev,r),r.Org.s=d.s,r.Org.t=d.t,r.Org.pqHandle=e.pq.insert(r.Org),o.getIntersectData(e,r.Org,i,l,a,u),o.regionAbove(A).dirty=A.dirty=t.dirty=!0,!1)},o.walkDirtyRegions=function(e,A){for(var t=o.regionBelow(A),r,n;;){for(;t.dirty;)A=t,t=o.regionBelow(t);if(!A.dirty&&(t=A,A=o.regionAbove(A),A===null||!A.dirty))return;if(A.dirty=!1,r=A.eUp,n=t.eUp,r.Dst!==n.Dst&&o.checkForLeftSplice(e,A)&&(t.fixUpperEdge?(o.deleteRegion(e,t),e.mesh.delete(n),t=o.regionBelow(A),n=t.eUp):A.fixUpperEdge&&(o.deleteRegion(e,A),e.mesh.delete(r),A=o.regionAbove(t),r=A.eUp)),r.Org!==n.Org)if(r.Dst!==n.Dst&&!A.fixUpperEdge&&!t.fixUpperEdge&&(r.Dst===e.event||n.Dst===e.event)){if(o.checkForIntersect(e,A))return}else o.checkForRightSplice(e,A);r.Org===n.Org&&r.Dst===n.Dst&&(o.addWinding(n,r),o.deleteRegion(e,A),e.mesh.delete(r),A=o.regionAbove(t))}},o.connectRightVertex=function(e,A,t){var r,n=t.Onext,i=o.regionBelow(A),a=A.eUp,l=i.eUp,u=!1;if(a.Dst!==l.Dst&&o.checkForIntersect(e,A),aA.vertEq(a.Org,e.event)&&(e.mesh.splice(n.Oprev,a),A=o.topLeftRegion(e,A),n=o.regionBelow(A).eUp,o.finishLeftRegions(e,o.regionBelow(A),i),u=!0),aA.vertEq(l.Org,e.event)&&(e.mesh.splice(t,l.Oprev),t=o.finishLeftRegions(e,i,null),u=!0),u){o.addRightEdges(e,A,t.Onext,n,n,!0);return}aA.vertLeq(l.Org,a.Org)?r=l.Oprev:r=a,r=e.mesh.connect(t.Lprev,r),o.addRightEdges(e,A,r,r.Onext,r.Onext,!1),r.Sym.activeRegion.fixUpperEdge=!0,o.walkDirtyRegions(e,A)},o.connectLeftDegenerate=function(e,A,t){var r,n,i,a,l;if(r=A.eUp,aA.vertEq(r.Org,t)){cA(!1),o.spliceMergeVertices(e,r,t.anEdge);return}if(!aA.vertEq(r.Dst,t)){e.mesh.splitEdge(r.Sym),A.fixUpperEdge&&(e.mesh.delete(r.Onext),A.fixUpperEdge=!1),e.mesh.splice(t.anEdge,r),o.sweepEvent(e,t);return}cA(!1),A=o.topRightRegion(A),l=o.regionBelow(A),i=l.eUp.Sym,n=a=i.Onext,l.fixUpperEdge&&(cA(n!==i),o.deleteRegion(e,l),e.mesh.delete(i),i=n.Oprev),e.mesh.splice(t.anEdge,i),aA.edgeGoesLeft(n)||(n=null),o.addRightEdges(e,A,i.Onext,a,n,!0)},o.connectLeftVertex=function(e,A){var t,r,n,i,a,l,u=new xl;if(u.eUp=A.anEdge.Sym,t=e.dict.search(u).key,r=o.regionBelow(t),!!r){if(i=t.eUp,a=r.eUp,aA.edgeSign(i.Dst,A,i.Org)===0){o.connectLeftDegenerate(e,t,A);return}if(n=aA.vertLeq(a.Dst,i.Dst)?t:r,t.inside||n.fixUpperEdge){if(n===t)l=e.mesh.connect(A.anEdge.Sym,i.Lnext);else{var s=e.mesh.connect(a.Dnext,A.anEdge);l=s.Sym}n.fixUpperEdge?o.fixUpperEdge(e,n,l):o.computeWinding(e,o.addRegionBelow(e,t,l)),o.sweepEvent(e,A)}else o.addRightEdges(e,t,A.anEdge,A.anEdge,null,!0)}},o.sweepEvent=function(e,A){e.event=A,o.debugEvent(e);for(var t=A.anEdge;t.activeRegion===null;)if(t=t.Onext,t===A.anEdge){o.connectLeftVertex(e,A);return}var r=o.topLeftRegion(e,t.activeRegion);cA(r!==null);var n=o.regionBelow(r),i=n.eUp,a=o.finishLeftRegions(e,n,null);a.Onext===i?o.connectRightVertex(e,r,a):o.addRightEdges(e,r,a.Onext,i,i,!0)},o.addSentinel=function(e,A,t,r){var n=new xl,i=e.mesh.makeEdge();i.Org.s=t,i.Org.t=r,i.Dst.s=A,i.Dst.t=r,e.event=i.Dst,n.eUp=i,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=e.dict.insert(n)},o.initEdgeDict=function(e){e.dict=new D1(e,o.edgeLeq);var A=e.bmax[0]-e.bmin[0],t=e.bmax[1]-e.bmin[1],r=e.bmin[0]-A,n=e.bmax[0]+A,i=e.bmin[1]-t,a=e.bmax[1]+t;o.addSentinel(e,r,n,i),o.addSentinel(e,r,n,a)},o.doneEdgeDict=function(e){for(var A,t=0;(A=e.dict.min().key)!==null;)A.sentinel||(cA(A.fixUpperEdge),cA(++t===1)),cA(A.windingNumber===0),o.deleteRegion(e,A)},o.removeDegenerateEdges=function(e){var A,t,r,n=e.mesh.eHead;for(A=n.next;A!==n;A=t)t=A.next,r=A.Lnext,aA.vertEq(A.Org,A.Dst)&&A.Lnext.Lnext!==A&&(o.spliceMergeVertices(e,r,A),e.mesh.delete(A),A=r,r=A.Lnext),r.Lnext===A&&(r!==A&&((r===t||r===t.Sym)&&(t=t.next),e.mesh.delete(r)),(A===t||A===t.Sym)&&(t=t.next),e.mesh.delete(A))},o.initPriorityQ=function(e){var A,t,r,n=0;for(r=e.mesh.vHead,t=r.next;t!==r;t=t.next)n++;for(n+=8,A=e.pq=new E1(n,aA.vertLeq),r=e.mesh.vHead,t=r.next;t!==r;t=t.next)t.pqHandle=A.insert(t);return t!==r?!1:(A.init(),!0)},o.donePriorityQ=function(e){e.pq=null},o.removeDegenerateFaces=function(e,A){var t,r,n;for(t=A.fHead.next;t!==A.fHead;t=r)r=t.next,n=t.anEdge,cA(n.Lnext!==n),n.Lnext.Lnext===n&&(o.addWinding(n.Onext,n),e.mesh.delete(n));return!0},o.computeInterior=function(e,A){A===void 0&&(A=!0);var t,r;if(o.removeDegenerateEdges(e),!o.initPriorityQ(e))return!1;for(o.initEdgeDict(e);(t=e.pq.extractMin())!==null;){for(;r=e.pq.min(),!(r===null||!aA.vertEq(r,t));)r=e.pq.extractMin(),o.spliceMergeVertices(e,t.anEdge,r.anEdge);o.sweepEvent(e,t)}return e.event=e.dict.min().key.eUp.Org,o.debugEvent(e),o.doneEdgeDict(e),o.donePriorityQ(e),o.removeDegenerateFaces(e,e.mesh)?(A&&e.mesh.check(),!0):!1},o}(),R1=function(){function o(){this.mesh=new uf,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=DA.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 o.prototype.dot_=function(e,A){return e[0]*A[0]+e[1]*A[1]+e[2]*A[2]},o.prototype.normalize_=function(e){var A=e[0]*e[0]+e[1]*e[1]+e[2]*e[2];if(!A)throw"Zero-size vector!";A=Math.sqrt(A),e[0]/=A,e[1]/=A,e[2]/=A},o.prototype.longAxis_=function(e){var A=0;return Math.abs(e[1])>Math.abs(e[0])&&(A=1),Math.abs(e[2])>Math.abs(e[A])&&(A=2),A},o.prototype.computeNormal_=function(e){var A,t,r,n,i,a,l=[0,0,0],u=[0,0,0],s=[0,0,0],c=[0,0,0],d=[0,0,0],p=[null,null,null],f=[null,null,null],m=this.mesh.vHead;A=m.next;for(var h=0;h<3;++h)n=A.coords[h],u[h]=n,f[h]=A,l[h]=n,p[h]=A;for(A=m.next;A!==m;A=A.next)for(var x=0;x<3;++x)n=A.coords[x],n<u[x]&&(u[x]=n,f[x]=A),n>l[x]&&(l[x]=n,p[x]=A);var y=0;if(l[1]-u[1]>l[0]-u[0]&&(y=1),l[2]-u[2]>l[y]-u[y]&&(y=2),u[y]>=l[y]){e[0]=0,e[1]=0,e[2]=1;return}for(a=0,t=f[y],r=p[y],s[0]=t.coords[0]-r.coords[0],s[1]=t.coords[1]-r.coords[1],s[2]=t.coords[2]-r.coords[2],A=m.next;A!==m;A=A.next)c[0]=A.coords[0]-r.coords[0],c[1]=A.coords[1]-r.coords[1],c[2]=A.coords[2]-r.coords[2],d[0]=s[1]*c[2]-s[2]*c[1],d[1]=s[2]*c[0]-s[0]*c[2],d[2]=s[0]*c[1]-s[1]*c[0],i=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],i>a&&(a=i,e[0]=d[0],e[1]=d[1],e[2]=d[2]);a<=0&&(e[0]=e[1]=e[2]=0,e[this.longAxis_(s)]=1)},o.prototype.checkOrientation_=function(){for(var e=this.mesh.fHead,A,t=this.mesh.vHead,r,n=0,i=e.next;i!==e;i=i.next)if(r=i.anEdge,!(r.winding<=0))do n+=(r.Org.s-r.Dst.s)*(r.Org.t+r.Dst.t),r=r.Lnext;while(r!==i.anEdge);if(n<0){for(A=t.next;A!==t;A=A.next)A.t=-A.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},o.prototype.projectPolygon_=function(){var e=this.mesh.vHead,A=[0,0,0],t,r,n=!1;A[0]=this.normal[0],A[1]=this.normal[1],A[2]=this.normal[2],!A[0]&&!A[1]&&!A[2]&&(this.computeNormal_(A),n=!0),t=this.sUnit,r=this.tUnit;var i=this.longAxis_(A);t[i]=0,t[(i+1)%3]=1,t[(i+2)%3]=0,r[i]=0,r[(i+1)%3]=0,r[(i+2)%3]=A[i]>0?1:-1;for(var a=e.next;a!==e;a=a.next)a.s=this.dot_(a.coords,t),a.t=this.dot_(a.coords,r);n&&this.checkOrientation_();for(var l=!0,u=e.next;u!==e;u=u.next)l?(this.bmin[0]=this.bmax[0]=u.s,this.bmin[1]=this.bmax[1]=u.t,l=!1):(u.s<this.bmin[0]&&(this.bmin[0]=u.s),u.s>this.bmax[0]&&(this.bmax[0]=u.s),u.t<this.bmin[1]&&(this.bmin[1]=u.t),u.t>this.bmax[1]&&(this.bmax[1]=u.t))},o.prototype.addWinding_=function(e,A){e.winding+=A.winding,e.Sym.winding+=A.Sym.winding},o.prototype.tessellateMonoRegion_=function(e,A){var t,r;if(t=A.anEdge,!(t.Lnext!==t&&t.Lnext.Lnext!==t))throw"Mono region invalid";for(;aA.vertLeq(t.Dst,t.Org);t=t.Lprev);for(;aA.vertLeq(t.Org,t.Dst);t=t.Lnext);r=t.Lprev;for(var n=void 0;t.Lnext!==r;)if(aA.vertLeq(t.Dst,r.Org)){for(;r.Lnext!==t&&(aA.edgeGoesLeft(r.Lnext)||aA.edgeSign(r.Org,r.Dst,r.Lnext.Dst)<=0);)n=e.connect(r.Lnext,r),r=n.Sym;r=r.Lprev}else{for(;r.Lnext!==t&&(aA.edgeGoesRight(t.Lprev)||aA.edgeSign(t.Dst,t.Org,t.Lprev.Org)>=0);)n=e.connect(t,t.Lprev),t=n.Sym;t=t.Lnext}if(r.Lnext===t)throw"Mono region invalid";for(;r.Lnext.Lnext!==t;)n=e.connect(r.Lnext,r),r=n.Sym;return!0},o.prototype.tessellateInterior_=function(e){for(var A,t=e.fHead.next;t!==e.fHead;t=A)if(A=t.next,t.inside&&!this.tessellateMonoRegion_(e,t))return!1;return!0},o.prototype.discardExterior_=function(e){for(var A,t=e.fHead.next;t!==e.fHead;t=A)A=t.next,t.inside||e.zapFace(t)},o.prototype.setWindingNumber_=function(e,A,t){for(var r,n=e.eHead.next;n!==e.eHead;n=r)r=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?A:-A:t?e.delete(n):n.winding=0},o.prototype.getNeighbourFace_=function(e){return!e.Rface||!e.Rface.inside?-1:e.Rface.n},o.prototype.outputPolymesh_=function(e,A,t,r){var n,i=0,a=0,l;t>3&&e.mergeConvexFaces(t);for(var u=e.vHead.next;u!==e.vHead;u=u.next)u.n=-1;for(var s=e.fHead.next;s!==e.fHead;s=s.next)if(s.n=-1,!!s.inside){n=s.anEdge,l=0;do{var u=n.Org;u.n===-1&&(u.n=a,a++),l++,n=n.Lnext}while(n!==s.anEdge);if(l>t)throw"Face vertex greater that support polygon";s.n=i,++i}this.elementCount=i,A===Ae.CONNECTED_POLYGONS&&(i*=2),this.elements=[],this.elements.length=i*t,this.vertexCount=a,this.vertices=[],this.vertices.length=a*r,this.vertexIndices=[],this.vertexIndices.length=a;for(var u=e.vHead.next;u!==e.vHead;u=u.next)if(u.n!==-1){var c=u.n*r;this.vertices[c+0]=u.coords[0],this.vertices[c+1]=u.coords[1],r>2&&(this.vertices[c+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var d=0,s=e.fHead.next;s!==e.fHead;s=s.next)if(!!s.inside){n=s.anEdge,l=0;do{var u=n.Org;this.elements[d++]=u.n,l++,n=n.Lnext}while(n!==s.anEdge);for(var p=l;p<t;++p)this.elements[d++]=-1;if(A===Ae.CONNECTED_POLYGONS){n=s.anEdge;do this.elements[d++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==s.anEdge);for(var f=l;f<t;++f)this.elements[d++]=-1}}},o.prototype.outputContours_=function(e,A){var t,r,n=0,i=0;this.vertexCount=0,this.elementCount=0;for(var a=e.fHead.next;a!==e.fHead;a=a.next)if(!!a.inside){r=t=a.anEdge;do this.vertexCount++,t=t.Lnext;while(t!==r);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*A,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,u=0,s=0;n=0;for(var a=e.fHead.next;a!==e.fHead;a=a.next)if(!!a.inside){i=0,r=t=a.anEdge;do this.vertices[l++]=t.Org.coords[0],this.vertices[l++]=t.Org.coords[1],A>2&&(this.vertices[l++]=t.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(t):t.Org.idx,i++,t=t.Lnext;while(t!==r);this.elements[s++]=n,this.elements[s++]=i,n+=i}},o.prototype.addContour=function(e,A){this.mesh===null&&(this.mesh=new uf),e<2&&(e=2),e>3&&(e=3);for(var t=null,r=0;r<A.length;r+=e)t===null?(t=this.mesh.makeEdge(),this.mesh.splice(t,t.Sym)):(this.mesh.splitEdge(t),t=t.Lnext),t.Org.coords[0]=A[r+0],t.Org.coords[1]=A[r+1],e>2?t.Org.coords[2]=A[r+2]:t.Org.coords[2]=0,t.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(t),t.winding=1,t.Sym.winding=-1},o.prototype.tesselate=function(e,A,t,r,n,i){if(e===void 0&&(e=DA.ODD),A===void 0&&(A=Ae.POLYGONS),i===void 0&&(i=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,n&&(this.normal[0]=n[0],this.normal[1]=n[1],this.normal[2]=n[2]),this.windingRule=e,r<2&&(r=2),r>3&&(r=3),!this.mesh)return!1;this.projectPolygon_(),G1.computeInterior(this,i);var a=this.mesh;return A===Ae.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),i&&a.check(),A===Ae.BOUNDARY_CONTOURS?this.outputContours_(a,r):this.outputPolymesh_(a,A,t,r),!0},o}();function jr(o){var e=o.windingRule,A=e===void 0?DA.ODD:e,t=o.elementType,r=t===void 0?Ae.POLYGONS:t,n=o.polySize,i=n===void 0?3:n,a=o.vertexSize,l=a===void 0?2:a,u=o.normal,s=u===void 0?[0,0,1]:u,c=o.contours,d=c===void 0?[]:c,p=o.strict,f=p===void 0?!0:p,m=o.debug,h=m===void 0?!1:m;if(!d&&f)throw new Error("Contours can't be empty");if(!!d){var x=new R1;o.edgeCreateCallback&&(x.edgeCreateCallback=o.edgeCreateCallback),o.vertexIdCallback&&(x.vertexIdCallback=o.vertexIdCallback);for(var y=0;y<d.length;y++)x.addContour(l||2,d[y]);return x.tesselate(A,r,i,l,s,f),{vertices:x.vertices,vertexIndices:x.vertexIndices,vertexCount:x.vertexCount,elements:x.elements,elementCount:x.elementCount,mesh:h?x.mesh:void 0}}}var MD=DA.ODD,BD=DA.NONZERO,ED=DA.POSITIVE,DD=DA.NEGATIVE,GD=DA.ABS_GEQ_TWO,RD=Ae.POLYGONS,VD=Ae.CONNECTED_POLYGONS,FD=Ae.BOUNDARY_CONTOURS;var Ho=class extends zr.BufferGeometry{constructor(A,t=12,r={}){super();this.type="ShapeGeometry";this.windingRule=DA.ODD;this.elementType=Ae.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=A,this._curveSegments=t,this._triangulationOptions=Object.assign({windingRule:DA.ODD,elementType:Ae.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let n=this._shape.extractShapePointsToFlatArray([],this._curveSegments),i=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),a,l=!0,u=!0,s,c;for(let f=0,m=n.length/2;f<m;f++){let h=f*2,x=n[h+0],y=n[h+1];if(s!==void 0&&x!==s&&(l=!1),c!==void 0&&y!==c&&(u=!1),s=x,c=y,!l&&!u)break}!l&&!u&&(a=jr({contours:[n,...i],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=a?.vertexCount??1,p=a?.elementCount??1;if(this._positionAttribute=new zr.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new zr.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new zr.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new zr.BufferAttribute(new Uint32Array(p*3),1),a){let f=1/0,m=-1/0,h=1/0,x=-1/0;for(let w=0,v=d;w<v;w++){let I=w*2,S=a.vertices[I+0],g=a.vertices[I+1];S<f&&(f=S),S>m&&(m=S),g<h&&(h=g),g>x&&(x=g)}let y=m-f,b=x-h;for(let w=0,v=d;w<v;w++){let I=w*2,S=a.vertices[I+0],g=a.vertices[I+1],P=(S-f)/y,N=(g-h)/b;this._positionAttribute.setXYZ(w,S,g,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,P,N)}for(let w=0,v=p;w<v;w++){let I=w*3,S=a.elements[I+0],g=a.elements[I+1],P=a.elements[I+2];this._indexAttribute.setX(I+0,S),this._indexAttribute.setX(I+1,g),this._indexAttribute.setX(I+2,P)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(a?.elementCount??1)*3)}clone(){let A=new Ho(this._shape,this._curveSegments);return A.userData=Pn(this.userData),A}};var kr=require("three");var Zs=class{constructor(e=256,A=!1){this.capacity=e,this.size=0,this.debug=A,this.debug&&console.log(`allocating with cap ${e}`);let t=e*Zs.eSize;this.buffer=new ArrayBuffer(t);let r=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*r,3*e),n+=3*e,this.normals=new Float32Array(this.buffer,n*r,3*e),n+=3*e,this.uvs=new Float32Array(this.buffer,n*r,2*e)}realloc(e,A=!1){if(e<this.size)throw Error("cannot shrink buffer");if(e<=this.capacity&&!A)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${e}`);let t=e*Zs.eSize,r=new ArrayBuffer(t),n=Float32Array.BYTES_PER_ELEMENT,i=0,a=new Float32Array(r,i*n,3*e);i+=3*e;let l=new Float32Array(r,i*n,3*e);i+=3*e;let u=new Float32Array(r,i*n,2*e);a.set(this.positions.slice(0,this.size*3)),l.set(this.normals.slice(0,this.size*3)),u.set(this.uvs.slice(0,this.size*2)),this.buffer=r,this.positions=a,this.normals=l,this.uvs=u,this.capacity=e}get(e=1){let A=this.size+e;if(A>this.capacity){let r=this.capacity;for(;A>r;)r*=2;this.realloc(r)}let t=this.size;return this.size=A,t}reserve(e){let A=this.size+e;A>this.capacity&&this.realloc(A)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Un=Zs;Un.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var vl=(o,e)=>([A,t])=>(t<A&&(t+=e),(o>=A?o:o+e)<=t),Wo=class extends kr.BufferGeometry{constructor(A,t,r=0,n=12,i=3,a=DA.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=A,this._depth=t,this._bevel=r,this._curveSegments=n,this._bevelSegmentsInput=i,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,t/2-1e-12),this._bevelSegments=Math.floor(i));let l=this._shape.extractShapePointsToFlatArray([],n),u=this._shape.shapeHoles.map(g=>{let P=g.extractShapePointsToFlatArray([],n),N=[];for(let O=P.length-1;O>=1;O-=2){let T=P[O-1],L=P[O-0];N.push(T,L)}return N}),s=jr({windingRule:a,elementType:Ae.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),c=jr({windingRule:DA.ODD,elementType:Ae.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!s)throw new Error("error generating geometry");let d=s.elementCount;if(c){s.elementCount+=c.elementCount;for(let g=0;g<c.elements.length;g++){let P=c.elements[g],N=g%2===0?s.vertexCount:0;s.elements.push(P+N)}for(let g=0;g<c.vertexIndices.length;g++){let P=c.vertexIndices[g],N=s.vertexCount;s.vertexIndices.push(P+N)}for(let g=0;g<c.vertices.length;g++){let P=c.vertices[g];s.vertices.push(P)}}let p=1/0,f=-1/0,m=1/0,h=-1/0;for(let g=0,P=s.vertexCount;g<P;g++){let N=g*2,O=s.vertices[N+0],T=s.vertices[N+1];O<p&&(p=O),O>f&&(f=O),T<m&&(m=T),T>h&&(h=T)}this._minX=p,this._minY=m,this._width=f-p,this._height=h-m;let x=s.vertexCount*2*(2+this._bevelSegments);this._buffer=new Un(x);let y=[],b=[];for(let g=s.elementCount-1;g>=0;g--){let P=g>=d,N=g*2,O=s.elements[N+0],T=s.elements[N+1],L=O+T,B={start:O,count:T,normals:[],continuous:[],concave:[]},k=O,X=L-1,eA=O+1,nA=this._shape.roundedCurves.length;do{let j=k-O,E=s.vertices[X*2+0],G=s.vertices[X*2+1],D=s.vertices[k*2+0],H=s.vertices[k*2+1],Y=s.vertices[eA*2+0],W=s.vertices[eA*2+1],F=D-E,R=H-G,z=Math.sqrt(F*F+R*R);F/=z,R/=z;let $=D-Y,rA=H-W,sA=Math.sqrt($*$+rA*rA);$/=sA,rA/=sA,B.normals[j*2+0]=-rA,B.normals[j*2+1]=$,B.concave[j]=F*rA-R*$>0;let tA=s.vertexIndices[k];if(Array.isArray(tA))B.continuous[j]=!1;else{let[AA,_]=this._shape.getCurveIndexFromVertexId(tA-1,!0);if(_>0&&_<1)B.continuous[j]=!0;else{let Z=_===1?AA+1:AA-1;Z=(Z+nA)%nA;let fA=_===1?0:1,dA=this._shape.roundedCurves[AA].getTangent(_),xA=this._shape.roundedCurves[Z].getTangent(fA);B.continuous[j]=dA.dot(xA)>.95}}P&&(B.normals[j*2+0]*=-1,B.normals[j*2+1]*=-1),[X,k,eA]=[k,eA,eA+1],eA>=L&&(eA-=T)}while(eA!==O+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:s.vertices.slice(O*2,L*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((j,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:s.vertices.slice(O*2,L*2)});for(let j=1;j<=this._bevelSegments;j++){let E=j/this._bevelSegments*Math.PI/2,G=(1-Math.cos(E))*this._bevelSize,D=[],H=[],Y=[],W=[],F=0;for(let z=0;z<T;z++){let $=z*2,rA=(z-1+T)%T*2,sA=s.vertices[B.start*2+$+0],tA=s.vertices[B.start*2+$+1],AA=-B.normals[rA+0]*G,_=-B.normals[rA+1]*G,Z=-B.normals[$+0]*G,fA=-B.normals[$+1]*G;if(B.concave[z]||!B.concave[z]&&P){let dA=Math.atan2(_,AA),xA=Math.atan2(fA,Z);xA>dA&&(xA-=Math.PI*2);let ie=xA-dA;if(B.continuous[z]||P){let PA=dA+ie/2,CA=Math.cos(PA)*G,EA=Math.sin(PA)*G;D[2*F+0]=sA+CA*(P?-1:1),D[2*F+1]=tA+EA*(P?-1:1),W[F]=z,F++}else{let PA=Math.max(1,Math.floor(n/4*Math.abs(ie)/Math.PI));for(let CA=0;CA<=PA;CA++){let EA=dA+ie*(CA/PA),We=Math.cos(EA)*G,er=Math.sin(EA)*G;D[2*F+0]=sA+We,D[2*F+1]=tA+er,W[F]=z,F++}}}else D[2*F+0]=sA+AA,D[2*F+1]=tA+_,W[F]=z,H[z]=F,F++,D[2*F+0]=sA,D[2*F+1]=tA,W[F]=z,F++,D[2*F+0]=sA+Z,D[2*F+1]=tA+fA,W[F]=z,Y[z]=F,F++}let R=jr({windingRule:DA.POSITIVE,elementType:Ae.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[D],edgeCreateCallback:z=>{let rA=z.Org.idx,sA=W[rA],tA=W[(rA+1)%W.length];z.idx=[sA,tA],z.Sym.idx=[tA,sA]},vertexIdCallback:z=>{let $=z.Lprev.idx;return[$?$[1]:0,z.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${j}'th loop`);if(!R.vertexCount)break;for(let z=0;z<R.vertexIndices.length;z++){let[$,rA]=R.vertexIndices[z];if($===rA)continue;let sA=rA;rA<$&&(sA+=T);for(let tA=$;tA<sA;tA++){let AA=tA%T,_=(tA+1)%T;if(!B.continuous[AA]||!B.continuous[_]){R.vertexIndices[z]=[$,AA],R.vertexIndices.splice(z+1,0,[_,rA]),R.vertices.splice((z+1)*2,0,R.vertices[z*2],R.vertices[z*2+1]);break}}}U.push({bevelI:j,angle:E,size:G,boundary:R,reverseMap:W,insetPoints:D})}let q=(j,E,G)=>{let D=0,H=j.boundary.vertexIndices.length;for(;D<H&&G(j.boundary.vertexIndices[E]);)E=(E+1)%H,D++;return D},Q=y.length;for(let j=1;j<U.length;j++){let E=U[j-1],G=U[j],D=E.boundary.vertexIndices.length,H=G.boundary.vertexIndices.length;if(!D||!H)break;let Y=B.concave.length,W=0,F=vl(W,T);for(;!E.boundary.vertexIndices.filter(F).length||!G.boundary.vertexIndices.filter(F).length;)W++,F=vl(W,T);let R=E.boundary.vertexIndices.findIndex(F),z=G.boundary.vertexIndices.findIndex(F);do R=(R+1)%D;while(F(E.boundary.vertexIndices[R]));do z=(z+1)%H;while(F(G.boundary.vertexIndices[z]));W=(W+1)%T;let $=W,rA=this.buildBevelVert(B,E,(R-1+D)%D),sA=this.buildBevelVert(B,G,(z-1+H)%H),tA=rA,AA=sA,_,Z,fA=!1;do{F=vl(W,T);let dA=q(E,R,F),xA=q(G,z,F),ie=fA;if(fA=!1,dA&&!xA){for(let PA=0;PA<dA;PA++)_=this.buildBevelVert(B,E,(R+PA)%D,PA/(dA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_;fA=!0}else if(!dA&&xA)for(let PA=0;PA<xA;PA++)Z=this.buildBevelVert(B,G,(z+PA)%H,PA/(xA-1)),y.push(AA.topN,tA.topP,Z.topP),y.push(tA.bottomP,AA.bottomN,Z.bottomP),AA=Z;else if(dA&&xA)if(_=this.buildBevelVert(B,E,R,0),Z=this.buildBevelVert(B,G,z,0),ie?(y.push(tA.topN,Z.topP,AA.topN),y.push(tA.topN,_.topP,Z.topP),y.push(Z.bottomP,tA.bottomN,AA.bottomN),y.push(Z.bottomP,_.bottomP,tA.bottomN)):(y.push(AA.topN,tA.topN,_.topP),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,tA.bottomN,AA.bottomN),y.push(_.bottomP,AA.bottomN,Z.bottomP)),tA=_,AA=Z,dA===xA)for(let PA=1;PA<dA;PA++)_=this.buildBevelVert(B,E,(R+PA)%D,PA/(dA-1)),Z=this.buildBevelVert(B,G,(z+PA)%H,PA/(xA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,tA.bottomN,AA.bottomN),y.push(_.bottomP,AA.bottomN,Z.bottomP),tA=_,AA=Z;else if(dA>xA){let PA=dA/xA,CA=0;for(let EA=1;EA<dA;EA++)_=this.buildBevelVert(B,E,(R+EA)%D,EA/(dA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_,EA>(CA+1)*PA&&(CA++,Z=this.buildBevelVert(B,G,(z+CA)%H,CA/(xA-1)),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z)}else{let PA=xA/dA,CA=0;for(let EA=1;EA<xA;EA++)Z=this.buildBevelVert(B,G,(z+EA)%H,EA/(xA-1)),y.push(AA.topN,_.topP,Z.topP),y.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z,EA>(CA+1)*PA&&(CA++,_=this.buildBevelVert(B,E,(R+CA)%D,CA/(dA-1)),y.push(tA.topN,_.topP,AA.topN),y.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_)}R=(R+dA)%D,z=(z+xA)%H,W=(W+1)%Y}while(W!==$)}{let j=U[0];for(let E=0,G=j.boundary.vertexCount;E<G;E++){let D=this.buildBevelVert(B,j,E),H=this.buildBevelVert(B,j,(E+1)%G);y.push(H.topP,D.topN,D.bottomN),y.push(H.topP,D.bottomN,H.bottomP)}}if(P){let j=[];for(let E=y.length-1;E>=Q+2;E-=3){let G=y[E-2],D=y[E-1],H=y[E-0];j.push(H,D,G)}y.splice(Q,y.length-Q,...j)}if(P){let j=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let G=U[U.length-1].boundary.vertices[E-1],D=U[U.length-1].boundary.vertices[E-0];j.push(G,D)}b.push(j)}if(!P){let j=U[U.length-1],E=jr({windingRule:U.length>1?DA.POSITIVE:DA.ODD,elementType:Ae.POLYGONS,vertexSize:2,strict:!0,contours:[j.insetPoints,...b]});if(!E)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:y.length});for(let G=0;G<E.elementCount*3;G+=3){let D=this.buildSurfaceVert(E,E.elements[G+0]),H=this.buildSurfaceVert(E,E.elements[G+1]),Y=this.buildSurfaceVert(E,E.elements[G+2]);y.push(D.top,H.top,Y.top),y.push(Y.bottom,H.bottom,D.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new kr.BufferAttribute(Uint32Array.from(y),1),v=new kr.BufferAttribute(this._buffer.positions,3),I=new kr.BufferAttribute(this._buffer.normals,3),S=new kr.BufferAttribute(this._buffer.uvs,2);v.needsUpdate=!0,I.needsUpdate=!0,S.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",I),this.setAttribute("uv",S),this.setIndex(w)}buildSurfaceVert(A,t){let r=t.toString();if(r in this.vertexCache)return this.vertexCache[r];let n=A.vertices[t*2+0],i=A.vertices[t*2+1],a=(n-this._minX)/this._width,l=(i-this._minY)/this._height,u=this._buffer.get(2),s=u*3,c=u*2,d={top:u+0,bottom:u+1};return this._buffer.positions[s+0]=n,this._buffer.positions[s+1]=i,this._buffer.positions[s+2]=this._depth,this._buffer.normals[s+0]=0,this._buffer.normals[s+1]=0,this._buffer.normals[s+2]=1,this._buffer.uvs[c+0]=a,this._buffer.uvs[c+1]=l,this._buffer.positions[s+3]=n,this._buffer.positions[s+4]=i,this._buffer.positions[s+5]=0,this._buffer.normals[s+3]=0,this._buffer.normals[s+4]=0,this._buffer.normals[s+5]=-1,this._buffer.uvs[c+2]=a,this._buffer.uvs[c+3]=l,this.vertexCache[r]=d,d}buildBevelVert(A,t,r,n=1){let i=`${t.bevelI}:${r}`;if(i in this.vertexCache)return this.vertexCache[i];let[a,l]=t.boundary.vertexIndices[r],u,s,c,d;a!==l?(s=a,u=l,d=!1,c=A.continuous[s]&&A.continuous[u]):(u=a,s=(u-1+A.count)%A.count,d=A.concave[u]&&t.bevelI>0,c=A.continuous[u]||d);let p=Math.cos(t.angle),f=Math.sin(t.angle),m=r*2,h=u*2,x=s*2,y=t.boundary.vertices[m+0],b=t.boundary.vertices[m+1],w=(1-f)*this._bevelSize,v=(y-this._minX)/this._width,I=(b-this._minY)/this._height,S=A.normals[h+0],g=A.normals[h+1],P=A.normals[x+0],N=A.normals[x+1];if(d){let k=P-S,X=N-g;S=S+k*(1-n),g=g+X*(1-n);let eA=Math.sqrt(S*S+g*g);S/=eA,g/=eA}let O=this._buffer.get(c?2:4),T=O*3,L=O*2,B={i:r,fi:u,topP:O+0,topN:O+0,bottomP:O+1,bottomN:O+1};return this._buffer.positions[T+0]=y,this._buffer.positions[T+1]=b,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=S*p,this._buffer.normals[T+1]=g*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=v,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=y,this._buffer.positions[T+4]=b,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=S*p,this._buffer.normals[T+4]=g*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=v,c||(O+=2,T+=6,L+=4,B.topP=O+0,B.bottomP=O+1,this._buffer.positions[T+0]=y,this._buffer.positions[T+1]=b,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=P*p,this._buffer.normals[T+1]=N*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=v,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=y,this._buffer.positions[T+4]=b,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=P*p,this._buffer.normals[T+4]=N*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=v),this.vertexCache[i]=B,B}clone(){let A=new Wo(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return A.userData=Pn(this.userData),A}};var fe=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:DA.ODD},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.abs(A.depth??0),i=o.shape??e?.shape,a=i?.roundness??A.roundness;i!==void 0&&(i instanceof TA?(i.width!==t||i.height!==r)&&i.applySize(t,r):i=new TA(t,r).fromJSON(i),o.parameters?.roundness!==void 0&&o.parameters?.roundness>0&&i.update(!1));let l=i??new TA(t,r);return{parameters:Object.assign(A,{width:t,height:r,depth:n,roundness:a}),shape:l}}static build(o){let{depth:e,extrudeBevelSize:A,extrudeBevelSegments:t,subdivisions:r,roundness:n,windingRule:i}=o.parameters;o.shape.roundness=n;let a;return e<=0?a=new Ho(o.shape,r,{windingRule:i}):a=new Wo(o.shape,e,A,r,t,i),Object.assign(a,{userData:{...o,type:"VectorGeometry"}})}};var ma=require("three");var gf=require("three");var zA=require("three"),hf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},o.parameters),t=A.width/2,r=A.radiusTop??t,n=A.radiusBottom??t;return r===n?(r=t,n=t):r>n?(r=t,n=n*t/r):(r=r*t/n,n=t),{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),radiusTop:r,radiusBottom:n})}}static build(o){let{width:e,depth:A,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,radiusTop:u,radiusBottom:s,cornerRadius:c,cornerSegments:d,hollow:p}=o.parameters,f;return c||p?f=new Hn(u,s,t,r,n,i,a,l*Math.PI/180,c,c,d,p):f=new zA.CylinderGeometry(u,s,t,r,n,i,a,l*Math.PI/180),f.scale(1,1,A/e),Object.assign(f,{userData:{...o,type:"CylinderGeometry"}})}};function xr(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function mf(o){return new zA.Vector2(o.y,-o.x)}var Hn=class extends zA.BufferGeometry{constructor(e,A,t,r,n,i,a,l,u,s,c,d,p=!1){super(),this.type="RoundedCylinderBufferGeometry",e=e!==void 0?e:1,A=A!==void 0?A:1,t=t||1,r=Math.floor(r)||8,n=Math.floor(n)||1,i=i!==void 0?i:!1,a=a!==void 0?a:0,l=l!==void 0?l:Math.PI*2,i&&(u=0,s=0);let f=[],m=[],h=[],x=[],y=0,b=t/2,w=new zA.Vector3,v=new zA.Vector3;p&&e==0&&(e=u),p&&A==0&&(A=s);let I=new zA.Vector2(e,b),S=new zA.Vector2(A,-b),g=null,P=null,N=null,O=null,T=I.clone().sub(S),L=0,B=0,k=0;d>0&&(L=Math.min(e,A)*(1-d),B=e-L,k=A-L);let X=I.clone();X.x-=L;let eA=Math.PI-T.angle(),nA=T.angle(),U=Math.tan(nA/2),q=Math.tan(eA/2),Q=U+q,j=d?Q:q,E=d?Q:U;if(u=Math.min(u,(e-B)/j,T.length()/Q),s=Math.min(s,(A-k)/E,T.length()/Q),u>0){let F=u/U;g=I.clone().sub(new zA.Vector2(F,u)),d&&(N=g.clone(),N.x-=L-Q*u),I.sub(T.clone().setLength(F))}if(s>0){let F=s/q;P=S.clone().sub(new zA.Vector2(F,-s)),S.add(T.clone().setLength(F)),d&&(O=P.clone(),O.x-=L-Q*s,X.sub(T.clone().setLength(F)))}T=I.clone().sub(S);let G=T.length()<.5,D=[];for(let F=0;F<=r;F++){let R=[],z=F/r,$=z*l+a,rA=new zA.Vector2(Math.sin($),Math.cos($));O&&P?(H(R,z,rA,eA,s,O,-1,!0),H(R,z,rA,nA,s,P,-1,!1)):P?(Y(R,rA,P.x,0,-1),H(R,z,rA,nA,s,P,-1,!1)):i||Y(R,rA,A,k,-1);let sA=mf(T).normalize();if(xr(sA,rA,w),!G)for(let tA=0;tA<=n;tA++){let AA=tA/n,_=T.clone().multiplyScalar(AA).add(S);xr(_,rA,v),m.push(v.x,v.y,v.z),h.push(w.x,w.y,w.z),x.push(z,.5+v.y/t),R.push(y++)}if(N&&g?(H(R,z,rA,eA,u,g,1,!1),H(R,z,rA,nA,u,N,1,!0)):g?(H(R,z,rA,eA,u,g,1,!1),Y(R,rA,g.x,0,1)):i||Y(R,rA,e,B,1),d&&!G){let tA=mf(T).multiplyScalar(-1).normalize();xr(tA,rA,w);for(let AA=0;AA<=n;AA++){let _=AA/n,Z=T.clone().multiplyScalar(-_).add(X);xr(Z,rA,v),m.push(v.x,v.y,v.z),h.push(w.x,w.y,w.z),x.push(z,.5+v.y/t),R.push(y++)}}d&&!i&&R.push(R[0]),D.push(R)}for(let F=0;F<D.length-1;F++)for(let R=0;R<D[0].length-1;R++){if(i&&d&&R==n)continue;let z=D[F][R],$=D[F+1][R],rA=D[F+1][R+1],sA=D[F][R+1],tA=m[rA*3+0],AA=m[rA*3+2];f.push(z,$,sA),(tA!=0||AA!=0)&&f.push($,rA,sA)}l<Math.PI*2&&(W(-1,D[0],a),W(1,D[D.length-1],a+l)),this.setIndex(f),this.setAttribute("position",new zA.Float32BufferAttribute(m,3)),this.setAttribute("normal",new zA.Float32BufferAttribute(h,3)),this.setAttribute("uv",new zA.Float32BufferAttribute(x,2));function H(F,R,z,$,rA,sA,tA,AA){for(let _=0;_<c+1;_++){let Z=_/c,fA=tA<0?Z:1-Z;AA&&(fA-=1),fA*=$;let dA=new zA.Vector2(Math.sin(fA),Math.cos(fA)*tA),xA=dA.clone().multiplyScalar(rA).add(sA);xr(xA,z,v),m.push(v.x,v.y,v.z),xr(dA,z,w),h.push(w.x,w.y,w.z),x.push(R,.5+v.y/t),F.push(y++)}}function Y(F,R,z,$,rA){let sA=new zA.Vector3,tA=new zA.Vector2,AA=[z,$];rA<0&&AA.reverse();for(let _ of AA)tA.set(_,b*rA),xr(tA,R,sA),m.push(sA.x,sA.y,sA.z),h.push(0,rA,0),x.push(.5,.5),F.push(y++)}function W(F,R,z){let $=new zA.Vector2(Math.sin(z),Math.cos(z)),rA=new zA.Vector2(-Math.cos(z),Math.sin(z)),sA=new zA.Vector3,tA=F<0?(Z,fA,dA)=>f.push(Z,fA,dA):(Z,fA,dA)=>f.push(Z,dA,fA),AA=new zA.Vector2((e+A+B+k)/4,0);xr(AA,$,sA),m.push(sA.x,sA.y,sA.z),h.push(rA.x,0,rA.y),x.push(.5,.5);let _=y++;for(let Z of R){let fA=m.slice(Z*3,Z*3+3);m.push(...fA),h.push(rA.x,0,rA.y);let dA=x.slice(Z*2,Z*2+2);x.push(...dA),y++}for(let Z=_+1;Z<y-1;Z++)tA(_,Z,Z+1);tA(_,y-1,_+1)}}};var yf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,depth:A,height:t,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,cornerRadiusTop:u,cornerRadiusBottom:s,cornerSegments:c}=o.parameters,d;return u>0||s>0||l<360?d=new Hn(0,e/2,t,r,n,i,a,l*Math.PI/180,u,s,c,0,!0):d=new gf.ConeGeometry(e/2,t,r,n,i),d.scale(1,1,A/e),Object.assign(d,{userData:{...o,type:"ConeGeometry"}})}};var Ee=require("three"),xf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,widthSegments:r,heightSegments:n,depthSegments:i,cornerRadius:a,cornerSegments:l}=o.parameters,u;return a==0?u=new Ee.BoxGeometry(e,A,t,r,n,i):u=new wl(e,A,t,r,n,i,a,l),Object.assign(u,{userData:{...o,type:"CubeGeometry"}})}},bl=Math.PI/2,wl=class extends Ee.BufferGeometry{constructor(e=1,A=1,t=1,r=1,n=1,i=1,a=0,l=4){super(),this.type="BoxGeometry";let u=this;r=Math.floor(r),n=Math.floor(n),i=Math.floor(i),l=Math.floor(l),a=Math.min(a,e/2,A/2,t/2);let s=[],c=[],d=[],p=[],f=0,m=0;h("z","y","x",-1,-1,t,A,e,i,n,0),h("z","y","x",1,-1,t,A,-e,i,n,1),h("x","z","y",1,1,e,t,A,r,i,2),h("x","z","y",1,-1,e,t,-A,r,i,3),h("x","y","z",1,-1,e,A,t,r,n,4),h("x","y","z",-1,-1,e,A,-t,r,n,5),a>0&&(x("z","y","x",-1,-1,1,t,A,e,i,0),x("z","y","x",1,-1,-1,t,A,e,i,1),x("z","y","x",-1,1,-1,t,A,e,i,1),x("z","y","x",1,1,1,t,A,e,i,0),x("x","y","z",-1,-1,-1,e,A,t,r,0),x("x","y","z",1,-1,1,e,A,t,r,1),x("x","y","z",-1,1,1,e,A,t,r,0),x("x","y","z",1,1,-1,e,A,t,r,1),x("y","x","z",-1,-1,1,A,e,t,n,0),x("y","x","z",1,-1,-1,A,e,t,n,1),x("y","x","z",1,1,1,A,e,t,n,1),x("y","x","z",-1,1,-1,A,e,t,n,0),y(1,1,1),y(-1,1,1),y(1,-1,1),y(-1,-1,1),y(1,1,-1),y(-1,1,-1),y(1,-1,-1),y(-1,-1,-1)),this.setIndex(s),this.setAttribute("position",new Ee.Float32BufferAttribute(c,3)),this.setAttribute("normal",new Ee.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Ee.Float32BufferAttribute(p,2));function h(b,w,v,I,S,g,P,N,O,T,L){let B=(g-2*a)/O,k=(P-2*a)/T,X=g/2-a,eA=P/2-a,nA=N/2,U=O+1,q=T+1,Q=0,j=0,E=new Ee.Vector3;for(let G=0;G<q;G++){let D=G*k-eA;for(let H=0;H<U;H++){let Y=H*B-X;E[b]=Y*I,E[w]=D*S,E[v]=nA,c.push(E.x,E.y,E.z),E[b]=0,E[w]=0,E[v]=N>0?1:-1,d.push(E.x,E.y,E.z),p.push(H/O),p.push(1-G/T),Q+=1}}for(let G=0;G<T;G++)for(let D=0;D<O;D++){let H=f+D+U*G,Y=f+D+U*(G+1),W=f+(D+1)+U*(G+1),F=f+(D+1)+U*G;s.push(H,Y,F),s.push(Y,W,F),j+=6}u.addGroup(m,j,L),m+=j,f+=Q}function x(b,w,v,I,S,g,P,N,O,T,L){let B=(P-2*a)/T,k=P/2-a,X=N/2-a,eA=O/2,nA=T+1,U=0,q=0,Q=new Ee.Vector3,j=new Ee.Vector3;for(let E=0;E<l+1;E++){let G=E/l*bl,D=Math.sin(G)*a,H=(1-Math.cos(G))*a,Y=Math.sin(G),W=Math.cos(G);Q[w]=(X+D)*S,Q[v]=(eA-H)*g,j[b]=0,j[w]=Y*Math.sign(Q[w]),j[v]=W*Math.sign(Q[v]);for(let F=0;F<nA;F++){let R=F*B-k;Q[b]=R*I,c.push(Q.x,Q.y,Q.z),d.push(j.x,j.y,j.z),p.push(F/T),p.push(0),U+=1}}for(let E=0;E<l;E++)for(let G=0;G<T;G++){let D=f+G+nA*E,H=f+G+nA*(E+1),Y=f+(G+1)+nA*(E+1),W=f+(G+1)+nA*E;s.push(D,H,W),s.push(H,Y,W),q+=6}u.addGroup(m,q,L),m+=q,f+=U}function y(b,w,v){let I=new Ee.Vector3,S=new Ee.Vector3(e/2,A/2,t/2);S.subScalar(a);let g=[],P=b*w*v>0?(O,T,L)=>s.push(O,T,L):(O,T,L)=>s.push(O,L,T);for(let O=0;O<=l;O++){let T=[],L=bl*(1-O/l),B=Math.cos(L),k=Math.sin(L),X=0;for(let eA=0;eA<=O;eA++){let nA=Math.cos(X),U=Math.sin(X);I.x=B*nA,I.y=k,I.z=B*U;let q=S.clone().addScaledVector(I,a);c.push(b*q.x,w*q.y,v*q.z),d.push(b*I.x,w*I.y,v*I.z),p.push(0,0),T.push(f++),X+=bl/O}g.push(T)}let N=g.length-1;for(let O=0;O<N;O++){let T=g[O],L=g[O+1],B=T.length-1;P(T[0],L[1],L[0]);for(let k=1;k<=B;k++)P(T[k-1],T[k],L[k]),P(T[k],L[k+1],L[k])}}}};var qA=require("three"),vr=class extends qA.BufferGeometry{constructor(e=[],A=[],t="",r=1,n=.2,i=4){super(),this.type="PolyhedronGeometryRound";let a=[],l=[],u=[];s(),c(),this.setAttribute("position",new qA.Float32BufferAttribute(a,3)),this.setAttribute("normal",new qA.Float32BufferAttribute(u,3)),this.setAttribute("uv",new qA.Float32BufferAttribute(l,2));return;function s(){n=Math.min(1-1e-5,n),n==0&&(i=0);let p={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[t],f=new qA.Vector3,m=f.clone(),h=new qA.Triangle,x=n*r,y=r-x,b=i+1,w=new qA.Vector3,v=(U,q)=>w.subVectors(U,q).normalize(),I=(U,q)=>Array(U).fill(void 0).map(q),S=I(e.length/3,(U,q)=>new qA.Vector3().fromArray(e,q*3).setLength(r)),g=[],P=1e6;for(let U=0;U<S.length;U++){let q=S[U],Q=[],j,E,G,D=1e10,H=-1;for(;(H=A.indexOf(U,H+1))!=-1;){let R=H-H%3;j=A[R+(H+1)%3],E=A[R+(H+2)%3],G=q.distanceToSquared(S[j]),D=Math.min(D,G),Q.push([j,E,G])}D+=1e-6;let Y=[],W=0,F=Q.length;for(let R=0;R<F;R++){[j,E,G]=Q[W];let z=g[j]?.includes(U)==!0;G<=D&&Y.push(j+ +z*P),W=Q.findIndex($=>$[0]==E)}g.push(Y)}let N=[];{let U=0,q=0,Q,j,E=p==3;for(let G=0;G<=i;G++){Q=G*(G+1)/2,j=(G+1)*(G+2)/2;for(let D=0;D<i-G;D++)[U,q]=[Q+D+G+2,j+D+G+3],N.push(Q,j,...E?[q,Q]:[U,j],q,U),[Q,j]=[U,q];N.push(Q,j,Q+i+2)}}let O=f.clone(),T=f.clone(),L=f.clone(),B=f.clone(),k=f.clone(),X=[],eA=I(S.length,()=>I(p,()=>f.clone()));for(let U=0;U<S.length;U++){f.copy(S[U]).normalize(),O.copy(f).multiplyScalar(y);let q=g[U];for(let Y=0;Y<q.length;Y++){let W=q[Y],F=q[(Y+1)%p];h.setFromPointsAndIndices(S,U,W%P,F%P),h.b.sub(h.a).setLength(1e10).add(h.a),h.c.sub(h.a).setLength(1e10).add(h.a),h.closestPointToPoint(O,eA[U][Y])}let Q=[],j=[],E=[],G=new qA.Vector3;i==0&&[...eA[U]].reduce((Y,W)=>Y.add(W),G).multiplyScalar(1/p);for(let Y=0;Y<p;Y++){let W=[],F=(Y-1+p)%p,R=eA[U][F],z=eA[U][Y];f.copy(R).sub(O),m.copy(z).sub(O);let $=O.angleTo(f),rA=f.angleTo(m),sA=Math.cos($)*x;i==0?T.copy(G):T.copy(O).setLength(y+sA),j.push(sA);let tA=[T,R,z];for(let AA=0;AA<2;AA++){let _=tA[AA],Z=tA[AA+1];B.subVectors(_,O),k.subVectors(Z,O),L.crossVectors(B,k).normalize();for(let fA=0;fA<b;fA++){let dA=[$,rA][AA]*fA/b;f.copy(B).applyAxisAngle(L,dA).add(O),Q.push(f.clone()),AA&&(v(f,O),W.push([fA==0?_:f.clone(),w.clone()]))}AA&&(v(Z,O),W.push([Z,w.clone()]))}E.push(W)}X.push(E);let D=2*b,H=2;for(let Y=0;Y<p;Y++){let W=D*Y,F=D*((Y+1)%p),R=[Q[W]];for(let $=1;$<b;$++){B=Q[W+$],k=Q[F+$],R.push(B);for(let rA=1,sA=$-H+1;rA<=sA;rA++)f.lerpVectors(B,k,rA/(sA+1)),f.sub(O).setLength(j[Y]).add(O),R.push(f.clone());R.push(k)}for(let $=0;$<b;$++)R.push(Q[$+b+W]);R.push(Q[F+b]);let z=N.map($=>R[$]);a.push(...z.map($=>[$.x,$.y,$.z]).flat()),u.push(...z.map($=>(v($,O),[w.x,w.y,w.z])).flat())}}let nA=[];for(let U=0;U<g.length;U++)for(let q=0;q<p;q++){let Q=g[U][q];if(Q<P){let j=g[Q].findIndex(D=>D%P==U),E=X[U][q],G=X[Q][j];for(let D=0;D<b;D++){let H=E[D],Y=G[b-D],W=E[D+1],F=G[b-(D+1)];[H,Y,W,W,Y,F].forEach(R=>{a.push(R[0].x,R[0].y,R[0].z),u.push(R[1].x,R[1].y,R[1].z)})}nA.push(E[0][0],G[b][0],E[b][0],G[0][0])}}for(;nA.length;){let U,q,Q,j;[U,q]=nA.splice(0,2);let E=[U];for(;U!=q;)E.push(q),Q=nA.indexOf(q),j=Q%2,q=nA.splice(Q-j,2)[1-j];w.subVectors(E[0],E[1]).cross(f.subVectors(E[0],E[2])).normalize();let G=w.dot(E[0])<0;G&&w.negate();for(let D=1;D<=E.length-2;D++)[E[D+ +G],E[D+1-+G],E[0]].forEach(H=>{a.push(H.x,H.y,H.z),u.push(w.x,w.y,w.z)})}}function c(){let d=new qA.Vector3;for(let S=0;S<a.length;S+=3){d.x=a[S+0],d.y=a[S+1],d.z=a[S+2];let g=v(d)/2/Math.PI+.5,P=I(d)/Math.PI+.5;l.push(g,1-P)}let p=new qA.Vector3,f=new qA.Vector3,m=new qA.Vector3,h=new qA.Vector3,x=new qA.Vector2,y=new qA.Vector2,b=new qA.Vector2,w=(S,g,P,N)=>{N<0&&S.x===1&&(l[g]=S.x-1),P.x===0&&P.z===0&&(l[g]=N/2/Math.PI+.5)};for(let S=0,g=0;S<a.length;S+=9,g+=6){p.set(a[S+0],a[S+1],a[S+2]),f.set(a[S+3],a[S+4],a[S+5]),m.set(a[S+6],a[S+7],a[S+8]),x.set(l[g+0],l[g+1]),y.set(l[g+2],l[g+3]),b.set(l[g+4],l[g+5]),h.copy(p).add(f).add(m).divideScalar(3);let P=v(h);w(x,g+0,p,P),w(y,g+2,f,P),w(b,g+4,m,P)}for(let S=0;S<l.length;S+=6){let g=l[S+0],P=l[S+2],N=l[S+4],O=Math.max(g,P,N),T=Math.min(g,P,N);O>.9&&T<.1&&(g<.2&&(l[S+0]+=1),P<.2&&(l[S+2]+=1),N<.2&&(l[S+4]+=1))}function v(S){return Math.atan2(S.z,-S.x)}function I(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}}static fromJSON(e){return new vr(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};var vf=require("three"),bf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new Wn(e*.5,n,i):new vf.DodecahedronGeometry(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"DodecahedronGeometry"}})}},Wn=class extends vr{constructor(e=1,A=.2,t=4){let r=(1+Math.sqrt(5))/2,n=1/r,i=[-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,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],a=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],l="DodecahedronGeometry";super(i,a,l,e,A,t),this.type=l}static fromJSON(e){return new Wn(e.radius,e.corner,e.cornerSides)}};var Tl=Math.PI*2;function Sl({x:o,y:e},A,t,r,n){return{x:o*A+r,y:e*t+n}}function V1(o,e){let A=e===1.5707963267948966?.551915024494:e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),t=Math.cos(o),r=Math.sin(o),n=Math.cos(o+e),i=Math.sin(o+e);return[{x:t-r*A,y:r+t*A},{x:n+i*A,y:i-n*A},{x:n,y:i}]}function wf(o,e,A,t){let r=o*t-e*A<0?-1:1,n=Math.min(1,Math.max(-1,o*A+e*t));return r*Math.acos(n)}function F1(o,e,A,t,r,n,i,a,l,u){let s=Math.pow(r,2),c=Math.pow(n,2),d=Math.pow(i,2),p=Math.pow(a,2),f=s*c-s*p-c*d;f<0&&(f=0),f/=s*p+c*d,f=Math.sqrt(f)*(l===u?-1:1);let m=f*r/n*a,h=f*-n/r*i,x=m+(o+A)/2,y=h+(e+t)/2,b=(i-m)/r,w=(a-h)/n,v=(-i-m)/r,I=(-a-h)/n,S=wf(1,0,b,w),g=wf(b,w,v,I);return!u&&g>0&&(g-=Tl),u&&g<0&&(g+=Tl),{centerx:x,centery:y,ang1:S,ang2:g}}function Sf({px:o,py:e,cx:A,cy:t,rx:r,ry:n,largeArcFlag:i,sweepFlag:a}){let l=[];if(r===0||n===0)return[];let u=(o-A)/2,s=(e-t)/2;if(u===0&&s===0)return[];r=Math.abs(r),n=Math.abs(n);let c=Math.pow(u,2)/Math.pow(r,2)+Math.pow(s,2)/Math.pow(n,2);c>1&&(r*=Math.sqrt(c),n*=Math.sqrt(c));let d=F1(o,e,A,t,r,n,u,s,i,a),{ang1:p,ang2:f}=d,{centerx:m,centery:h}=d,x=Math.abs(f)/(Tl/4);Math.abs(1-x)<1e-7&&(x=1);let y=Math.max(Math.ceil(x),1);f/=y;for(let b=0;b<y;b++)l.push(V1(p,f)),p+=f;return l.map(b=>{let{x:w,y:v}=Sl(b[0],r,n,m,h),{x:I,y:S}=Sl(b[1],r,n,m,h),{x:g,y:P}=Sl(b[2],r,n,m,h);return{x1:w,y1:v,x2:I,y2:S,x:g,y:P}})}var Qo=require("three"),Nf=Math.PI*2,If=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,spikes:t,angle:r,innerRadius:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,u=o.shape,s=e*.5,c=A*.5,d=j1(u,s,c,r*Math.PI/180,t,n);u.isClosed=!0,u.update();let p=fe.create({shape:u,parameters:{subdivisions:d,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(p,{userData:{...o,type:"EllipseGeometry"}})}};function j1(o,e,A,t,r,n){if(t>=Nf)return r>30||r%4===0?(k1(o,e,A,n),Math.round(r/4)):Tf(o,t,r,e,A,n);let i={x:0,y:A},a=t+Math.PI*.5,l={x:Math.cos(a)*e,y:Math.sin(a)*A},u=Sf({px:i.x,py:i.y,cx:l.x,cy:l.y,rx:e,ry:A,largeArcFlag:t>Math.PI,sweepFlag:!0});return r>30||r%u.length===0?z1(o,i.x,i.y,u,r,e,A,n):Tf(o,t,r,e,A,n)}function z1(o,e,A,t,r,n,i,a){let l=Math.round(r/t.length);o.addPoint(qo(e,A));for(let u=0,s=t.length;u<s;u++){let c=t[u],d=o.points[u],p=qo(c.x,c.y);d.controls[1].position.set(c.x1,c.y1),p.controls[0].position.set(c.x2,c.y2),o.addPoint(p)}return a>0?Pf(o,n,i,a):o.addPoint(qo(0,0)),l}function Tf(o,e,A,t,r,n){let i=-e/A;for(let a=0;a<=A;a++){let l=i*a,u=Math.sin(l)*t,s=Math.cos(l)*r;o.addPoint(qo(u,s))}return e<Nf?n>0?Pf(o,t,r,n):o.addPoint(qo(0,0)):(o.removePoint(o.points[o.points.length-1]),n>0&&Of(o,t,r,n)),1}function k1(o,e,A,t=0,r=0,n=0){let i=.5522847498,a=e*i,l=A*i;o.addPoint(Js(r-e,n,r-e,n-l,r-e,n+l)),o.addPoint(Js(r,n+A,r-a,n+A,r+a,n+A)),o.addPoint(Js(r+e,n,r+e,n+l,r+e,n-l)),o.addPoint(Js(r,n-A,r+a,n-A,r-a,n-A)),t>0&&Of(o,e,A,t)}function qo(o,e){return new nt(Qo.MathUtils.generateUUID(),new Qo.Vector2(o,e))}function Js(o,e,A,t,r,n){let i=qo(o,e);return i.controls[0].position.set(A,t),i.controls[1].position.set(r,n),i}function Pf(o,e,A,t){Cf(o,e,A,t).forEach(n=>o.addPoint(n))}function Of(o,e,A,t){let r=Cf(o,e,A,t),n=new TA;r.forEach(i=>n.addPoint(i)),n.isClosed=!0,o.shapeHoles.push(n)}function Cf(o,e,A,t){let r=t*e/100,n=r*(Math.abs(A)/Math.abs(e)),i=new Qo.Vector2(r/e,n/A),a=o.points.map(l=>{let u=l.clone();return u.uuid=Qo.MathUtils.generateUUID(),u}).reverse();return a.forEach(l=>{l.position.multiply(i);let u=l.controls[0].position.clone().multiply(i),s=l.controls[1].position.clone().multiply(i);l.controls[0].position.copy(s),l.controls[1].position.copy(u)}),a}var Zt=require("three"),Lf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??t),n=Math.abs(A.depth??t),i=Math.abs(Math.min(t,n))/2;return{parameters:Object.assign(A,{width:t,height:r,depth:n,radius:i,segments:Math.round(A.segments),pathSegments:Math.round(A.pathSegments),cornerSegments:Math.round(A.cornerSegments)})}}static build(o){let{width:e,height:A,depth:t,radius:r,revolutions:n,segments:i,pathRadius:a,pathType:l,pathSegments:u,cornerRadius:s,cornerSegments:c}=o.parameters,d=new qn(!1,e,A,t,r,n,i,a,l,u,s,c);return Object.assign(d,{userData:{...o,type:"HelixGeometry"}})}},qn=class extends Zt.BufferGeometry{constructor(e=!0,A=1,t=1,r=1,n=1,i=1,a=1,l=1,u=1,s=1,c=1,d=1){super();let p=e&&i===1;p&&(d=0),c>100&&(c=100);let f=()=>new Zt.Vector3,m=new Zt.Vector3,h=f(),x=f(),y=f(),b,w,v,I,S,g,P,N,O=f(),T=f(),L=f(),B=f(),k=f(),X=f(),eA=f(),nA=f(),U=t-2*l+.001,q=U/i,Q=Math.ceil(a*i),j=Q+1,E=U/Q,G=-U/2,D=s+1,H=2*Math.PI/s,Y=Math.PI/2/d,W=.01,F=Math.min((1-c/100)*l,l-W),R=l-F,z=0,$=2,rA=d*$+$,sA=D*rA/$,tA=sA+D*j,AA=D*(j+rA),[_,Z,fA]=[3,3,2].map(QA=>Array(AA*QA).fill(0)),dA=[],xA=n-l;function ie(QA,je){let dt=Math.PI/2;g=je*E,N=2*Math.PI*(g%q)/q+dt,g+=G,P=Math.sin(N)*xA,S=Math.cos(N)*xA,e?QA.set(S,P,g):QA.set(S,g,P)}ie(m,-1e-10),ie(h,0),O.copy(m),ie(m,1);let PA=m.distanceTo(h),CA=p?0:R+F,EA=PA*Q+2*CA,We=F,er=EA-CA;for(let QA=0;QA<=Q;QA++){ie(x,QA),nA.subVectors(x,O).normalize(),O.copy(x),X.copy(x).setComponent(+e+1,0).normalize(),eA.crossVectors(nA,X).normalize();let je=QA===0,dt=QA===Q,mh=je?3*Math.PI/2:Y,hh=je?We:er,gh=je?D:tA,yh=je?0:AA-D,xh=nA.clone().multiplyScalar(je?-R:R).add(x),vh=nA.clone().multiplyScalar(je?-1:1).normalize();for(let kt=0;kt<D;kt++){let uc=kt*H;if(T.addVectors(m.copy(X).multiplyScalar(l*Math.cos(uc)),h.copy(eA).multiplyScalar(l*Math.sin(uc))),L.copy(T).normalize(),je||dt){p||(z=yh+kt,[0,1,2].forEach(Oe=>{_[z*3+Oe]=xh.getComponent(Oe),Z[z*3+Oe]=vh.getComponent(Oe)}),fA[z*2]=+dt,fA[z*2+1]=kt/s),h.copy(L).multiplyScalar(F),y.addVectors(x,h);for(let Oe=0;Oe<d;Oe++){let Ia=Oe*Y+mh;B.addVectors(m.copy(nA).multiplyScalar(R*Math.sin(Ia)),h.copy(L).multiplyScalar(R*Math.cos(Ia))),k.copy(B).normalize(),h.addVectors(y,B),B.normalize(),z=gh+Oe*D+kt,[0,1,2].forEach(Mi=>{_[z*3+Mi]=h.getComponent(Mi),Z[z*3+Mi]=k.getComponent(Mi)});let bh=+je+Math.sin(Ia);fA[z*2]=(hh+R*bh)/EA,fA[z*2+1]=kt/s}}h.addVectors(x,T),z=sA+QA*D+kt,[0,1,2].forEach(Oe=>{_[z*3+Oe]=h.getComponent(Oe),Z[z*3+Oe]=L.getComponent(Oe)}),fA[z*2]=(CA+QA*PA)/EA,fA[z*2+1]=kt/s}}let Fe=j+2*d+$,Oi=1,[Ci,Li]=[+p,Fe-1];for(let QA=Ci;QA<=Li-1;QA++){let je=p&&QA===Li-1;for(let dt=0;dt<D-1;dt++)b=QA*D+dt,w=b+1,v=(je?dt:b)+D,I=(je?dt+1:w)+D,QA===0?dA.push(w,I,v):QA===Fe-2?dA.push(b,w,v):dA.push(b,w,v,w,I,v)}this.setIndex(dA),this.setAttribute("position",new Zt.Float32BufferAttribute(_,3)),this.setAttribute("normal",new Zt.Float32BufferAttribute(Z,3)),this.setAttribute("uv",new Zt.Float32BufferAttribute(fA,2))}};var Mf=require("three");var Bf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new Qn(e*.5,n,i):new Mf.IcosahedronGeometry(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"IcosahedronGeometry"}})}},Qn=class extends vr{constructor(e=1,A=.2,t=4){let r=(1+Math.sqrt(5))/2,n=[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],i=[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],a="IcosahedronGeometry";super(n,i,a,e,A,t),this.type=a}static fromJSON(e){return new Qn(e.radius,e.corner,e.cornerSides)}};var _s=require("three"),Ef=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){(o.parameters?.points??[]).forEach(t=>{Array.isArray(t)&&(t.x=t[0],t.y=t[1])});let A=Object.assign({},e?.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}]},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{points:e,segments:A,verticalSegments:t}=o.parameters,r=new _s.Shape;r.moveTo(e[0].x,e[0].y),r.bezierCurveTo(e[1].x,e[1].y,e[2].x,e[2].y,e[3].x,e[3].y);let n=new _s.LatheGeometry(r.extractPoints(t).shape,A);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...o,type:"LatheGeometry"}})}};var Ct=require("three");var Jt=require("three");var iA=require("three"),Ot=new iA.Matrix4,Nl=new iA.Object3D,$s=new iA.Vector3,br=class extends iA.EventDispatcher{constructor(){super(),this.uuid=iA.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(e){let A=new iA.Matrix3().getNormalMatrix(e);for(let t=0,r=this.vertices.length;t<r;t++)this.vertices[t].applyMatrix4(e);for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t];n.normal.applyMatrix3(A).normalize();for(let i=0,a=n.vertexNormals.length;i<a;i++)n.vertexNormals[i].applyMatrix3(A).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(e){return Ot.makeRotationX(e),this.applyMatrix4(Ot),this}rotateY(e){return Ot.makeRotationY(e),this.applyMatrix4(Ot),this}rotateZ(e){return Ot.makeRotationZ(e),this.applyMatrix4(Ot),this}translate(e,A,t){return Ot.makeTranslation(e,A,t),this.applyMatrix4(Ot),this}scale(e,A,t){return Ot.makeScale(e,A,t),this.applyMatrix4(Ot),this}lookAt(e){return Nl.lookAt(e),Nl.updateMatrix(),this.applyMatrix4(Nl.matrix),this}fromBufferGeometry(e){let A=this,t=e.index!==null?e.index:void 0,r=e.attributes;if(r.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let n=r.position,i=r.normal,a=r.color,l=r.uv,u=r.uv2;u!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<n.count;d++)A.vertices.push(new iA.Vector3().fromBufferAttribute(n,d)),a!==void 0&&A.colors.push(new iA.Color().fromBufferAttribute(a,d));function s(d,p,f,m){let h=a===void 0?[]:[A.colors[d].clone(),A.colors[p].clone(),A.colors[f].clone()],x=i===void 0?[]:[new iA.Vector3().fromBufferAttribute(i,d),new iA.Vector3().fromBufferAttribute(i,p),new iA.Vector3().fromBufferAttribute(i,f)],y=new Yo(d,p,f,x,h,m);A.faces.push(y),l!==void 0&&A.faceVertexUvs[0].push([new iA.Vector2().fromBufferAttribute(l,d),new iA.Vector2().fromBufferAttribute(l,p),new iA.Vector2().fromBufferAttribute(l,f)]),u!==void 0&&A.faceVertexUvs[1].push([new iA.Vector2().fromBufferAttribute(u,d),new iA.Vector2().fromBufferAttribute(u,p),new iA.Vector2().fromBufferAttribute(u,f)])}let c=e.groups;if(c.length>0)for(let d=0;d<c.length;d++){let p=c[d],f=p.start,m=p.count;for(let h=f,x=f+m;h<x;h+=3)t!==void 0?s(t.getX(h),t.getX(h+1),t.getX(h+2),p.materialIndex):s(h,h+1,h+2,p.materialIndex)}else if(t!==void 0)for(let d=0;d<t.count;d+=3)s(t.getX(d),t.getX(d+1),t.getX(d+2));else for(let d=0;d<n.count;d+=3)s(d,d+1,d+2);return this.computeFaceNormals(),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter($s).negate(),this.translate($s.x,$s.y,$s.z),this}normalize(){this.computeBoundingSphere();let e=this.boundingSphere.center,A=this.boundingSphere.radius,t=A===0?1:1/A,r=new iA.Matrix4;return r.set(t,0,0,-t*e.x,0,t,0,-t*e.y,0,0,t,-t*e.z,0,0,0,1),this.applyMatrix4(r),this}computeFaceNormals(){let e=new iA.Vector3,A=new iA.Vector3;for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t],i=this.vertices[n.a],a=this.vertices[n.b],l=this.vertices[n.c];e.subVectors(l,a),A.subVectors(i,a),e.cross(A),e.normalize(),n.normal.copy(e)}}computeVertexNormals(e=!0){let A=new Array(this.vertices.length);for(let t=0,r=this.vertices.length;t<r;t++)A[t]=new iA.Vector3;if(e){let t=new iA.Vector3,r=new iA.Vector3;for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=this.vertices[a.a],u=this.vertices[a.b],s=this.vertices[a.c];t.subVectors(s,u),r.subVectors(l,u),t.cross(r),A[a.a].add(t),A[a.b].add(t),A[a.c].add(t)}}else{this.computeFaceNormals();for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t];A[n.a].add(n.normal),A[n.b].add(n.normal),A[n.c].add(n.normal)}}for(let t=0,r=this.vertices.length;t<r;t++)A[t].normalize();for(let t=0,r=this.faces.length;t<r;t++){let n=this.faces[t],i=n.vertexNormals;i.length===3?(i[0].copy(A[n.a]),i[1].copy(A[n.b]),i[2].copy(A[n.c])):(i[0]=A[n.a].clone(),i[1]=A[n.b].clone(),i[2]=A[n.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let e=0,A=this.faces.length;e<A;e++){let t=this.faces[e],r=t.vertexNormals;r.length===3?(r[0].copy(t.normal),r[1].copy(t.normal),r[2].copy(t.normal)):(r[0]=t.normal.clone(),r[1]=t.normal.clone(),r[2]=t.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let A=0,t=this.faces.length;A<t;A++){let r=this.faces[A];r.__originalFaceNormal?r.__originalFaceNormal.copy(r.normal):r.__originalFaceNormal=r.normal.clone(),r.__originalVertexNormals||(r.__originalVertexNormals=[]);for(let n=0,i=r.vertexNormals.length;n<i;n++)r.__originalVertexNormals[n]?r.__originalVertexNormals[n].copy(r.vertexNormals[n]):r.__originalVertexNormals[n]=r.vertexNormals[n].clone()}let e=new br;e.faces=this.faces;for(let A=0,t=this.morphTargets.length;A<t;A++){if(!this.morphNormals[A]){this.morphNormals[A]={},this.morphNormals[A].faceNormals=[],this.morphNormals[A].vertexNormals=[];let n=this.morphNormals[A].faceNormals,i=this.morphNormals[A].vertexNormals;for(let a=0,l=this.faces.length;a<l;a++){let u=new iA.Vector3,s={a:new iA.Vector3,b:new iA.Vector3,c:new iA.Vector3};n.push(u),i.push(s)}}let r=this.morphNormals[A];e.vertices=this.morphTargets[A].vertices,e.computeFaceNormals(),e.computeVertexNormals();for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=r.faceNormals[n],u=r.vertexNormals[n];l.copy(a.normal),u.a.copy(a.vertexNormals[0]),u.b.copy(a.vertexNormals[1]),u.c.copy(a.vertexNormals[2])}}for(let A=0,t=this.faces.length;A<t;A++){let r=this.faces[A];r.normal=r.__originalFaceNormal,r.vertexNormals=r.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new iA.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new iA.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(e,A,t=0){if(!(e&&e.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",e);return}let r,n=this.vertices.length,i=this.vertices,a=e.vertices,l=this.faces,u=e.faces,s=this.colors,c=e.colors;A!==void 0&&(r=new iA.Matrix3().getNormalMatrix(A));for(let d=0,p=a.length;d<p;d++){let m=a[d].clone();A!==void 0&&m.applyMatrix4(A),i.push(m)}for(let d=0,p=c.length;d<p;d++)s.push(c[d].clone());for(let d=0,p=u.length;d<p;d++){let f=u[d],m,h,x=f.vertexNormals,y=f.vertexColors,b=new Yo(f.a+n,f.b+n,f.c+n);b.normal.copy(f.normal),r!==void 0&&b.normal.applyMatrix3(r).normalize();for(let w=0,v=x.length;w<v;w++)m=x[w].clone(),r!==void 0&&m.applyMatrix3(r).normalize(),b.vertexNormals.push(m);b.color.copy(f.color);for(let w=0,v=y.length;w<v;w++)h=y[w],b.vertexColors.push(h.clone());b.materialIndex=f.materialIndex+t,l.push(b)}for(let d=0,p=e.faceVertexUvs.length;d<p;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let m=0,h=f.length;m<h;m++){let x=f[m],y=[];for(let b=0,w=x.length;b<w;b++)y.push(x[b].clone());this.faceVertexUvs[d].push(y)}}}mergeMesh(e){if(!(e&&e.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",e);return}e.matrixAutoUpdate&&e.updateMatrix(),this.merge(e.geometry,e.matrix)}mergeVertices(e=4){let A={},t=[],r=[],n=Math.pow(10,e);for(let l=0,u=this.vertices.length;l<u;l++){let s=this.vertices[l],c=Math.round(s.x*n)+"_"+Math.round(s.y*n)+"_"+Math.round(s.z*n);A[c]===void 0?(A[c]=l,t.push(this.vertices[l]),r[l]=t.length-1):r[l]=r[A[c]]}let i=[];for(let l=0,u=this.faces.length;l<u;l++){let s=this.faces[l];s.a=r[s.a],s.b=r[s.b],s.c=r[s.c];let c=[s.a,s.b,s.c];for(let d=0;d<3;d++)if(c[d]===c[(d+1)%3]){i.push(l);break}}for(let l=i.length-1;l>=0;l--){let u=i[l];this.faces.splice(u,1);for(let s=0,c=this.faceVertexUvs.length;s<c;s++)this.faceVertexUvs[s].splice(u,1)}let a=this.vertices.length-t.length;return this.vertices=t,a}setFromPoints(e){this.vertices=[];for(let A=0,t=e.length;A<t;A++){let r=e[A];this.vertices.push(new iA.Vector3(r.x,r.y,r.z||0))}return this}sortFacesByMaterialIndex(){let e=this.faces,A=e.length;for(let l=0;l<A;l++)e[l]._id=l;function t(l,u){return l.materialIndex-u.materialIndex}e.sort(t);let r=this.faceVertexUvs[0],n=this.faceVertexUvs[1],i,a;r&&r.length===A&&(i=[]),n&&n.length===A&&(a=[]);for(let l=0;l<A;l++){let u=e[l]._id;i&&i.push(r[u]),a&&a.push(n[u])}i&&(this.faceVertexUvs[0]=i),a&&(this.faceVertexUvs[1]=a)}toJSON(){let e={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),this.parameters!==void 0){let f=this.parameters;for(let m in f)f[m]!==void 0&&(e[m]=f[m]);return e}let A=[];for(let f=0;f<this.vertices.length;f++){let m=this.vertices[f];A.push(m.x,m.y,m.z)}let t=[],r=[],n={},i=[],a={},l=[],u={};for(let f=0;f<this.faces.length;f++){let m=this.faces[f],h=!0,x=!1,y=this.faceVertexUvs[0][f]!==void 0,b=m.normal.length()>0,w=m.vertexNormals.length>0,v=m.color.r!==1||m.color.g!==1||m.color.b!==1,I=m.vertexColors.length>0,S=0;if(S=s(S,0,0),S=s(S,1,h),S=s(S,2,x),S=s(S,3,y),S=s(S,4,b),S=s(S,5,w),S=s(S,6,v),S=s(S,7,I),t.push(S),t.push(m.a,m.b,m.c),t.push(m.materialIndex),y){let g=this.faceVertexUvs[0][f];t.push(p(g[0]),p(g[1]),p(g[2]))}if(b&&t.push(c(m.normal)),w){let g=m.vertexNormals;t.push(c(g[0]),c(g[1]),c(g[2]))}if(v&&t.push(d(m.color)),I){let g=m.vertexColors;t.push(d(g[0]),d(g[1]),d(g[2]))}}function s(f,m,h){return h?f|1<<m:f&~(1<<m)}function c(f){let m=f.x.toString()+f.y.toString()+f.z.toString();return n[m]!==void 0||(n[m]=r.length/3,r.push(f.x,f.y,f.z)),n[m]}function d(f){let m=f.r.toString()+f.g.toString()+f.b.toString();return a[m]!==void 0||(a[m]=i.length,i.push(f.getHex())),a[m]}function p(f){let m=f.x.toString()+f.y.toString();return u[m]!==void 0||(u[m]=l.length/2,l.push(f.x,f.y)),u[m]}return e.data={},e.data.vertices=A,e.data.normals=r,i.length>0&&(e.data.colors=i),l.length>0&&(e.data.uvs=[l]),e.data.faces=t,e}clone(){return new br().copy(this)}copy(e){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=e.name;let A=e.vertices;for(let d=0,p=A.length;d<p;d++)this.vertices.push(A[d].clone());let t=e.colors;for(let d=0,p=t.length;d<p;d++)this.colors.push(t[d].clone());let r=e.faces;for(let d=0,p=r.length;d<p;d++)this.faces.push(r[d].clone());for(let d=0,p=e.faceVertexUvs.length;d<p;d++){let f=e.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let m=0,h=f.length;m<h;m++){let x=f[m],y=[];for(let b=0,w=x.length;b<w;b++){let v=x[b];y.push(v.clone())}this.faceVertexUvs[d].push(y)}}let n=e.morphTargets;for(let d=0,p=n.length;d<p;d++){let f={};if(f.name=n[d].name,n[d].vertices!==void 0){f.vertices=[];for(let m=0,h=n[d].vertices.length;m<h;m++)f.vertices.push(n[d].vertices[m].clone())}if(n[d].normals!==void 0){f.normals=[];for(let m=0,h=n[d].normals.length;m<h;m++)f.normals.push(n[d].normals[m].clone())}this.morphTargets.push(f)}let i=e.morphNormals;for(let d=0,p=i.length;d<p;d++){let f={};if(i[d].vertexNormals!==void 0){f.vertexNormals=[];for(let m=0,h=i[d].vertexNormals.length;m<h;m++){let x=i[d].vertexNormals[m],y={};y.a=x.a.clone(),y.b=x.b.clone(),y.c=x.c.clone(),f.vertexNormals.push(y)}}if(i[d].faceNormals!==void 0){f.faceNormals=[];for(let m=0,h=i[d].faceNormals.length;m<h;m++)f.faceNormals.push(i[d].faceNormals[m].clone())}this.morphNormals.push(f)}let a=e.skinWeights;for(let d=0,p=a.length;d<p;d++)this.skinWeights.push(a[d].clone());let l=e.skinIndices;for(let d=0,p=l.length;d<p;d++)this.skinIndices.push(l[d].clone());let u=e.lineDistances;for(let d=0,p=u.length;d<p;d++)this.lineDistances.push(u[d]);let s=e.boundingBox;s!==null&&(this.boundingBox=s.clone());let c=e.boundingSphere;return c!==null&&(this.boundingSphere=c.clone()),this.elementsNeedUpdate=e.elementsNeedUpdate,this.verticesNeedUpdate=e.verticesNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.lineDistancesNeedUpdate=e.lineDistancesNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,this}toBufferGeometry(){let e=new Il().fromGeometry(this),A=new iA.BufferGeometry,t=new Float32Array(e.vertices.length*3);if(A.setAttribute("position",new iA.BufferAttribute(t,3).copyVector3sArray(e.vertices)),e.normals.length>0){let r=new Float32Array(e.normals.length*3);A.setAttribute("normal",new iA.BufferAttribute(r,3).copyVector3sArray(e.normals))}if(e.colors.length>0){let r=new Float32Array(e.colors.length*3);A.setAttribute("color",new iA.BufferAttribute(r,3).copyColorsArray(e.colors))}if(e.uvs.length>0){let r=new Float32Array(e.uvs.length*2);A.setAttribute("uv",new iA.BufferAttribute(r,2).copyVector2sArray(e.uvs))}if(e.uvs2.length>0){let r=new Float32Array(e.uvs2.length*2);A.setAttribute("uv2",new iA.BufferAttribute(r,2).copyVector2sArray(e.uvs2))}A.groups=e.groups;for(let r in e.morphTargets){let n=[],i=e.morphTargets[r];for(let a=0,l=i.length;a<l;a++){let u=i[a],s=new iA.Float32BufferAttribute(u.data.length*3,3);s.name=u.name,n.push(s.copyVector3sArray(u.data))}A.morphAttributes[r]=n}if(e.skinIndices.length>0){let r=new iA.Float32BufferAttribute(e.skinIndices.length*4,4);A.setAttribute("skinIndex",r.copyVector4sArray(e.skinIndices))}if(e.skinWeights.length>0){let r=new iA.Float32BufferAttribute(e.skinWeights.length*4,4);A.setAttribute("skinWeight",r.copyVector4sArray(e.skinWeights))}return e.boundingSphere!==null&&(A.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(A.boundingBox=e.boundingBox.clone()),A}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(e){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(e)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(e){let A=new iA.BufferGeometry,t=e.geometry;if(e.isPoints||e.isLine){let r=new iA.Float32BufferAttribute(t.vertices.length*3,3),n=new iA.Float32BufferAttribute(t.colors.length*3,3);if(A.setAttribute("position",r.copyVector3sArray(t.vertices)),A.setAttribute("color",n.copyColorsArray(t.colors)),t.lineDistances&&t.lineDistances.length===t.vertices.length){let i=new iA.Float32BufferAttribute(t.lineDistances.length,1);A.setAttribute("lineDistance",i.copyArray(t.lineDistances))}t.boundingSphere!==null&&(A.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(A.boundingBox=t.boundingBox.clone())}else e.isMesh&&(A=t.toBufferGeometry());return A}};br.prototype.isGeometry=!0;var Il=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(e){let A=[],t,r,n,i=e.faces;for(r=0;r<i.length;r++){let a=i[r];a.materialIndex!==n&&(n=a.materialIndex,t!==void 0&&(t.count=r*3-t.start,A.push(t)),t={start:r*3,materialIndex:n})}t!==void 0&&(t.count=r*3-t.start,A.push(t)),this.groups=A}fromGeometry(e){let A=e.faces,t=e.vertices,r=e.faceVertexUvs,n=r[0]&&r[0].length>0,i=r[1]&&r[1].length>0,a=e.morphTargets,l=a.length,u;if(l>0){u=[];for(let x=0;x<l;x++)u[x]={name:a[x].name,data:[]};this.morphTargets.position=u}let s=e.morphNormals,c=s.length,d;if(c>0){d=[];for(let x=0;x<c;x++)d[x]={name:s[x].name,data:[]};this.morphTargets.normal=d}let p=e.skinIndices,f=e.skinWeights,m=p.length===t.length,h=f.length===t.length;t.length>0&&A.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let x=0;x<A.length;x++){let y=A[x];this.vertices.push(t[y.a],t[y.b],t[y.c]);let b=y.vertexNormals;if(b.length===3)this.normals.push(b[0],b[1],b[2]);else{let v=y.normal;this.normals.push(v,v,v)}let w=y.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let v=y.color;this.colors.push(v,v,v)}if(n===!0){let v=r[0][x];v!==void 0?this.uvs.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",x),this.uvs.push(new iA.Vector2,new iA.Vector2,new iA.Vector2))}if(i===!0){let v=r[1][x];v!==void 0?this.uvs2.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",x),this.uvs2.push(new iA.Vector2,new iA.Vector2,new iA.Vector2))}for(let v=0;v<l;v++){let I=a[v].vertices;u[v].data.push(I[y.a],I[y.b],I[y.c])}for(let v=0;v<c;v++){let I=s[v].vertexNormals[x];d[v].data.push(I.a,I.b,I.c)}m&&this.skinIndices.push(p[y.a],p[y.b],p[y.c]),h&&this.skinWeights.push(f[y.a],f[y.b],f[y.c])}return this.computeGroups(e),this.verticesNeedUpdate=e.verticesNeedUpdate,this.normalsNeedUpdate=e.normalsNeedUpdate,this.colorsNeedUpdate=e.colorsNeedUpdate,this.uvsNeedUpdate=e.uvsNeedUpdate,this.groupsNeedUpdate=e.groupsNeedUpdate,e.boundingSphere!==null&&(this.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(this.boundingBox=e.boundingBox.clone()),this}},Yo=class{constructor(e,A,t,r,n,i=0){this.a=e,this.b=A,this.c=t,this.normal=r&&r.isVector3?r:new iA.Vector3,this.vertexNormals=Array.isArray(r)?r:[],this.color=n&&n.isColor?n:new iA.Color,this.vertexColors=Array.isArray(n)?n:[],this.materialIndex=i}clone(){return new this.constructor().copy(this)}copy(e){this.a=e.a,this.b=e.b,this.c=e.c,this.normal.copy(e.normal),this.color.copy(e.color),this.materialIndex=e.materialIndex;for(let A=0,t=e.vertexNormals.length;A<t;A++)this.vertexNormals[A]=e.vertexNormals[A].clone();for(let A=0,t=e.vertexColors.length;A<t;A++)this.vertexColors[A]=e.vertexColors[A].clone();return this}};var U1=["a","b","c"];function H1(o,e){switch(e){case"c":return o.c;case"b":return o.b;case"a":default:return o.a}}function Pl(o,e,A){let t=Math.min(o,e),r=Math.max(o,e),n=t+"_"+r;return A.get(n)}function Ol(o,e,A,t,r,n){let i=Math.min(o,e),a=Math.max(o,e),l=i+"_"+a,u;if(t.has(l))u=t.get(l);else{let s=A[i],c=A[a];u={a:s,b:c,newEdge:null,faces:[]},t.set(l,u)}u.faces.push(r),n[o].edges.push(u),n[e].edges.push(u)}function W1(o,e,A,t){let r,n,i;for(r=0,n=o.length;r<n;r++)A[r]={edges:[]};for(r=0,n=e.length;r<n;r++)i=e[r],Ol(i.a,i.b,o,t,i,A),Ol(i.b,i.c,o,t,i,A),Ol(i.c,i.a,o,t,i,A)}function Aa(o,e,A,t,r){o.push(new Yo(e,A,t,void 0,void 0,r))}function Xo(o,e){return Math.abs(e-o)/2+Math.min(o,e)}function ea(o,e,A,t){o.push([e.clone(),A.clone(),t.clone()])}var ta=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof Jt.BufferGeometry?e=new br().fromBufferGeometry(e):e=e.clone(),e.mergeVertices();let A=this.subdivisions;for(;A-- >0;)this._smooth(e);return e.computeFaceNormals(),e.computeVertexNormals(),e}_smooth(e){let A=new Jt.Vector3,t,r,n,i,a,l=e.vertices,u=e.faces,s=e.faceVertexUvs[0],c=s!==void 0&&s.length>0,d=[],p=new Map;W1(l,u,d,p);let f=[],m,h,x,y,b,w,v;for(let W of Array.from(p.keys())){for(h=p.get(W),x=new Jt.Vector3,b=3/8,w=1/8,v=h.faces.length,v!=2&&(b=.5,w=0,v!=1),x.addVectors(h.a,h.b).multiplyScalar(b),A.set(0,0,0),i=0;i<v;i++){for(y=h.faces[i],a=0;a<3&&(m=l[H1(y,U1[a])],!(m!==h.a&&m!==h.b));a++);m&&A.add(m)}A.multiplyScalar(w),x.add(A),h.newEdge=f.length,f.push(x)}let I,S,g,P,N,O,T,L=[];for(r=0,n=l.length;r<n;r++){for(O=l[r],N=d[r].edges,t=N.length,t==3?I=3/16:t>3&&(I=3/(8*t)),S=1-t*Number(I),g=I,t<=2&&(t==2?(S=3/4,g=1/8):t==1||t==0),T=O.clone().multiplyScalar(S),A.set(0,0,0),i=0;i<t;i++)P=N[i],m=P.a!==O?P.a:P.b,A.add(m);A.multiplyScalar(Number(g)),T.add(A),L.push(T)}let B=L.concat(f),k=L.length,X,eA,nA,U=[],q=[],Q,j,E,G,D=new Jt.Vector2,H=new Jt.Vector2,Y=new Jt.Vector2;for(r=0,n=u.length;r<n;r++)y=u[r],X=Number(Pl(y.a,y.b,p).newEdge)+k,eA=Number(Pl(y.b,y.c,p).newEdge)+k,nA=Number(Pl(y.c,y.a,p).newEdge)+k,Aa(U,X,eA,nA,y.materialIndex),Aa(U,y.a,X,nA,y.materialIndex),Aa(U,y.b,eA,X,y.materialIndex),Aa(U,y.c,nA,eA,y.materialIndex),c&&(Q=s[r],j=Q[0],E=Q[1],G=Q[2],D.set(Xo(j.x,E.x),Xo(j.y,E.y)),H.set(Xo(E.x,G.x),Xo(E.y,G.y)),Y.set(Xo(j.x,G.x),Xo(j.y,G.y)),ea(q,D,H,Y),ea(q,j,D,Y),ea(q,E,H,D),ea(q,G,Y,H));e.vertices=B,e.faces=U,c&&(e.faceVertexUvs[0]=q)}};var ee=new Ct.Vector3,Df=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=o.geometry??e?.geometry??new Ct.BufferGeometry().copy(new Ct.BoxGeometry(100,100,100)),t;e===void 0?(A.computeBoundingBox(),A.boundingBox.getSize(ee),t={width:ee.x,height:ee.y,depth:ee.z,subdivisions:0}):t=e.parameters;let r={...t,...o.parameters};return{parameters:{width:Math.abs(r.width),height:Math.abs(r.height),depth:Math.abs(r.depth),subdivisions:Math.abs(r.subdivisions)},geometry:A}}static build(o){let{width:e,height:A,depth:t,subdivisions:r}=o.parameters,n=o.geometry??new Ct.BufferGeometry().copy(new Ct.BoxGeometry(100,100,100)),i=n.userData.parameters;i===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(ee)):ee.set(i.width,i.height,i.depth),(e!==ee.x||A!==ee.y||t!==ee.z)&&n.scale(ee.x===0?1:e/ee.x,ee.y===0?1:A/ee.y,ee.z===0?1:t/ee.z);let a=n.originalGeometry;return r>0?(a===void 0||i?.subdivisions!==r)&&(a===void 0&&(a=n),n=new ta(r).modify(a).toBufferGeometry()):(a!==void 0&&(n=a),a=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals()),a!==void 0&&Object.assign(n,{originalGeometry:a}),delete o.geometry,Object.assign(n,{userData:{...o,type:"NonParametricGeometry"}})}static loadFromUrl(o,e,A){new Ct.BufferGeometryLoader(A).load(o,r=>{let n=this.normalizeInputs({geometry:r});r.boundingBox.getSize(ee);let i=100/ee.x;Object.assign(n.parameters,{width:100,height:ee.y*i,depth:ee.z*i}),e(this.build(n))})}};var Gf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,spikes:t,cornerRadius:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}=o.parameters,l=o.shape,u=e*.5,s=A*.5,c=0,d=0,p=2*Math.PI/t;for(let m=0;m<t;m++){let h=p*m,x=c+Math.sin(h)*u,y=d+Math.cos(h)*s;l.addPoint(l.createPoint(x,y))}l.isClosed=!0;for(let m=0,h=l.points.length;m<h;m++)l.points[m].roundness=r;l.roundness=r,l.update();let f=fe.create({shape:l,parameters:{roundness:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(f,{userData:{...o,type:"PolygonGeometry"}})}};var bA=require("three"),Rf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,radialSegments:r,heightSegments:n,openEnded:i,cornerRadius:a,cornerSegments:l}=o.parameters,u=new Ll(e*.5,A,r,n,i,a,l);return u.scale(1,1,t/e),Object.assign(u,{userData:{...o,type:"PyramidGeometry"}})}};function Yn(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function Cl(o,e,A,t,r,n){let i=e.clone().sub(o),a=A.clone().sub(o),l=i.angleTo(a);if(i.normalize(),a.normalize(),t===r){let u=i.add(a).normalize();n.copy(o).addScaledVector(u,t/Math.sin(l/2))}else{let u=i.angleTo(a);n.copy(o),n.addScaledVector(i,r/Math.sin(u)),n.addScaledVector(a,t/Math.sin(u))}}function q1(o,e,A){let t=o.clone().sub(e),r=A.clone().sub(e);return t.projectOnVector(r),t.add(e)}var Ll=class extends bA.BufferGeometry{constructor(e=.5,A=1,t=4,r=1,n=!1,i=0,a=4){super(),t=Math.floor(Math.max(3,t)),r=Math.floor(r),a=Math.floor(a);let l=[],u=[],s=[],c=[],d=0,p=A/2,f=Math.PI/t,m=e*Math.cos(Math.PI/t),h=2*Math.PI/t,x=(t-2)*Math.PI/t,y=Math.PI-x,b=new bA.Vector3(0,-p,0),w=new bA.Vector3(0,p,0),v=new bA.Vector2(e,-p),I=new bA.Vector2(m,-p),S=new bA.Vector2(0,w.y).sub(I),g=new bA.Vector2(0,w.y).sub(v),P=new bA.Vector2(S.y,-S.x).normalize(),N=new bA.Vector2(g.y,-g.x).normalize(),T=e*Math.cos(Math.PI/t)*Math.tan((Math.PI-S.angle())/2)-1e-8;i=Math.min(i,T);let L;{let q=new bA.Vector3(P.x,P.y,0),Q=new bA.Vector3(Math.cos(h)*q.x,q.y,Math.sin(h)*q.x);L=q.angleTo(Q)}let B=i/Math.tan((Math.PI-S.angle())/2),k=i/Math.tan((Math.PI-L)/2),X=new bA.Vector3;if(!n){u.push(b.x,b.y,b.z),s.push(0,-1,0),c.push(0,0);let q=d++,Q=[],j=v.clone(),E=B/Math.cos(Math.PI/t);j.x-=E;for(let G=0;G<t;G++){let D=G/t*Math.PI*2+f,H=new bA.Vector2(Math.sin(D),Math.cos(D));Yn(j,H,X),u.push(X.x,X.y,X.z),s.push(0,-1,0),c.push(0,0),Q.push(d++)}for(let G=0;G<Q.length;G++)l.push(Q[G],q,Q[(G+1)%Q.length])}let eA=[];{let q=new bA.Vector3,Q=new bA.Vector3,j=new bA.Vector3,E=new bA.Vector3,G=new bA.Vector3,D=new bA.Vector3;for(let H=0;H<t;H++){let Y=H/t*Math.PI*2+f,W=(H+.5)/t*Math.PI*2+f,F=(H+1)/t*Math.PI*2+f,R=new bA.Vector2(Math.sin(Y),Math.cos(Y)),z=new bA.Vector2(Math.sin(W),Math.cos(W)),$=new bA.Vector2(Math.sin(F),Math.cos(F));Yn(v,R,Q),Yn(v,$,j),Yn(P,z,q),Cl(w,Q,j,k,k,E),u.push(E.x,E.y,E.z),Cl(Q,w,j,k,B,G),u.push(G.x,G.y,G.z),Cl(j,Q,w,B,k,D),u.push(D.x,D.y,D.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),c.push(0,0),c.push(0,0),c.push(0,0);let rA=d++,sA=d++,tA=d++;if(l.push(rA,sA,tA),i>0){{let Z=Q.clone().add(j).multiplyScalar(.5),fA=w.clone().sub(Z).normalize(),xA=b.clone().sub(Z).normalize().add(fA).normalize().multiplyScalar(-1),ie=D.clone().sub(G);nA(Z,ie,xA,S.angle())}let AA,_;{let Z=new bA.Vector3;Yn(N,$,Z);let fA=D.clone().add(E).multiplyScalar(.5);fA=q1(fA,j,w);let dA=D.clone().sub(E);[AA,_]=nA(fA,dA,Z,L,E.y)}{let Z=AA,fA=Z.clone().setY(0).normalize(),dA=new bA.Vector3(0,-1,0),xA=fA.clone().cross(dA);U(Z,fA,dA,xA)}eA.concat(_);{let Z=S.angle(),fA=Math.PI-Z,dA=w.clone();dA.y-=i/Math.sin(Z-Math.PI/2);let xA=new bA.Vector3,ie=[];for(let CA=0;CA<a;CA++){let EA=[],We=Math.PI/2-fA*CA/a,er=Math.cos(We),Fe=Math.sin(We),Oi=W;for(let Ci=0;Ci<=CA;Ci++){let Li=Math.cos(Oi),QA=Math.sin(Oi);q.x=er*QA,q.y=Fe,q.z=er*Li,xA.copy(dA).addScaledVector(q,i),u.push(xA.x,xA.y,xA.z),s.push(q.x,q.y,q.z),c.push(0,0),EA.push(d++),Oi+=Math.PI*2/CA/t}ie.push(EA)}_.reverse(),ie.push(_);let PA=ie.length-1;for(let CA=0;CA<PA;CA++){let EA=ie[CA],We=ie[CA+1],er=EA.length-1;l.push(We[1],EA[0],We[0]);for(let Fe=1;Fe<=er;Fe++)l.push(EA[Fe],EA[Fe-1],We[Fe]),l.push(We[Fe+1],EA[Fe],We[Fe])}}}}}this.setIndex(l),this.setAttribute("position",new bA.Float32BufferAttribute(u,3)),this.setAttribute("normal",new bA.Float32BufferAttribute(s,3)),this.setAttribute("uv",new bA.Float32BufferAttribute(c,2));function nA(q,Q,j,E,G){let D=-E/2,H=(Math.PI-E)/2,Y=Q.clone().normalize().cross(j);q.addScaledVector(j,-i/Math.sin(H));let W=new bA.Vector3,F=new bA.Vector3,R=1,z=d,$=[];for(let rA=0;rA<=a;rA++){let sA=D+rA/a*E;F.set(0,0,0),F.addScaledVector(Y,Math.sin(sA)),F.addScaledVector(j,Math.cos(sA));for(let tA=0;tA<=R;tA++){let AA=tA/R-.5;if(W.copy(q),W.addScaledVector(Q,AA),W.addScaledVector(F,i),G!=null){let _=Math.max(0,W.y-G);W.addScaledVector(Q,-_/Q.y)}u.push(W.x,W.y,W.z),s.push(F.x,F.y,F.z),c.push(0,0),tA===0&&$.push(d),d++}}for(let rA=0;rA<a;rA++)for(let sA=0;sA<R;sA++){let tA=z+sA+(R+1)*rA,AA=tA+(R+1),_=AA+1,Z=tA+1;l.push(tA,AA,Z),l.push(AA,_,Z)}return[q.clone().addScaledVector(Q,.5),$]}function U(q,Q,j,E){let G=Math.PI/2,D=g.angle()-G,H=[],Y=new bA.Vector3,W=new bA.Vector3;for(let R=0;R<=a;R++){let z=[],$=R/a;for(let rA=0;rA<=R;rA++){let tA=((R?rA/R:0)-.5)*y,AA=Math.cos(tA),_=Math.sin(tA),Z=Math.atan(Math.tan(D)*AA),fA=(G+Z)*$,dA=Math.cos(fA),xA=Math.sin(fA);Y.set(0,0,0),Y.addScaledVector(Q,xA*AA),Y.addScaledVector(j,dA),Y.addScaledVector(E,xA*_),W.copy(q).addScaledVector(Y,i),u.push(W.x,W.y,W.z),s.push(Y.x,Y.y,Y.z),c.push(0,0),z.push(d++)}H.push(z)}let F=H.length-1;for(let R=0;R<F;R++){let z=H[R],$=H[R+1],rA=z.length-1;l.push(z[0],$[1],$[0]);for(let sA=1;sA<=rA;sA++)l.push(z[sA-1],z[sA],$[sA]),l.push(z[sA],$[sA+1],$[sA])}}}};var Vf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters),t=Object.assign(e?.ui??{enabledIndieCorners:!1},o.ui);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)}),ui:t}}static build(o){let e=o.shape,{width:A,height:t,cornerRadius:r,cornerType:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,u={x:A*.5,y:t*.5},s={x:-u.x,y:-u.y},c={x:u.x,y:u.y};function d(w,v,I){return v>A&&I>t?Math.min(w*A/v,w*t/I):v>A?w*A/v:I>t?w*t/I:w}let p=[];p[0]=r[0]===0?0:d(r[0],r[0]+r[3],r[0]+r[1]),p[1]=r[1]===0?0:d(r[1],r[1]+r[2],r[1]+r[0]),p[2]=r[2]===0?0:d(r[2],r[2]+r[1],r[2]+r[3]),p[3]=r[3]===0?0:d(r[3],r[3]+r[0],r[3]+r[2]);let f=s.x,m=c.x,h=c.y,x=s.y;e.addPoint(e.createPoint(f,h)),e.addPoint(e.createPoint(m,h)),e.addPoint(e.createPoint(m,x)),e.addPoint(e.createPoint(f,x)),e.isClosed=!0;let y=!0;for(let w=0,v=e.points.length;w<v;w++)e.points[w].roundness=p[w],w>0&&p[w]!==p[w-1]&&(y=!1);y&&(e.roundness=p[0]),e.useCubicForRoundedCorners=n!==1,e.update();let b=fe.create({shape:e,parameters:{depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(b,{userData:{...o,type:"RectangleGeometry"}})}};var Ff=require("three"),jf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e=100,height:A=e,depth:t=e,widthSegments:r=64,heightSegments:n=64,phiStart:i,phiLength:a,thetaStart:l,thetaLength:u}=o.parameters,s=new Ff.SphereGeometry(.5*e,r,n,i,a,l,u);return s.scale(1,A/e,t/e),Object.assign(s,{userData:{...o,type:"SphereGeometry"}})}};var zf=require("three"),kf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:0})}}static build(o){let{width:e=100,height:A=e,widthSegments:t=8,heightSegments:r=8}=o.parameters,n=new zf.PlaneGeometry(e,A,t,r);return n.scale(1,1,1),Object.assign(n,{userData:{...o,type:"PlaneGeometry"}})}};var wr=require("three"),Uf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:e,height:A,depth:t,angle:r,cornerRadius:n,cornerSegments:i}=o.parameters,a=new Ml(e,A,t,r,n,i);return Object.assign(a,{userData:{...o,type:"BackdropGeometry"}})}},Ml=class extends wr.BufferGeometry{constructor(e=1,A=1,t=1,r=90,n=10,i=24){super(),this.type="BackdropGeometry";let a=[],l=[],u=[],s=.001;n==0&&(i=1),i=Math.max(1,Math.floor(i)),n=Math.min(n,100),r=Math.min(180-s,r),r*=Math.PI/180;let c=[],d=Math.PI/2,p=(W=0,F=0,R=0)=>new wr.Vector3(W,F,R),f=p(),m=p(),[h,x,y]=[A/2,e/2,t/2],b=-x,w=+x,[v,I,S]=[p(b,-h,+y),p(b,-h,-y),p(b,+h,-y)],g=(W,F=!1)=>Math.sin(W-Math.PI/(1+ +F)),P=(W,F=!1)=>Math.cos(W-Math.PI/(1+ +F));S.y=Math.sin(r)*A-h;let N=Math.cos(r)*A-y,O=v.z-s;r<=d?(S.z=Math.min(N,O),S.z==O&&(S.y-=(N-O)/Math.tan(d-r))):I.z=Math.min(I.z-N-y,v.z-s),f.subVectors(v,I),m.subVectors(S,I);let T=Math.min(f.length(),m.length())*n/100,L=T*Math.tan(r/2),B=T/Math.cos(r/2),k=f.clone().normalize().add(m.normalize()).setLength(B).add(I);f.set(0,g(r,!0),P(r,!0)),c.push([S,f.clone()]);let X=(Math.PI-r)/i;for(let W=0;W<=i;W++){let F=d+r+W*X;f.set(0,Math.sin(F)*L,Math.cos(F)*L),f.add(k),m.set(0,g(F),P(F)),c.push([f.clone(),m.clone()])}c.push([v,p(0,1,0)]);let eA=Math.sin(X/2)*L*2,nA=c.length-1,U=c[0][0].distanceTo(c[1][0]),q=c[nA-1][0].distanceTo(c[nA][0]),Q=U+eA*i+q;c[0].push(1);for(let W=0;W<=i;W++)c[W+1].push(1-(U+W*eA)/Q);c[nA].push(0);let[j,E,G]=c[0],D,H,Y;for(let W=1;W<c.length;W++)[D,H,Y]=c[W],a.push(b,j.y,j.z,b,D.y,D.z,w,j.y,j.z,w,j.y,j.z,b,D.y,D.z,w,D.y,D.z),l.push(0,E.y,E.z,0,H.y,H.z,0,E.y,E.z,0,E.y,E.z,0,H.y,H.z,0,H.y,H.z),u.push(0,G,0,Y,1,G,1,G,0,Y,1,Y),[j,E,G]=[D,H,Y];this.setAttribute("position",new wr.Float32BufferAttribute(a,3)),this.setAttribute("normal",new wr.Float32BufferAttribute(l,3)),this.setAttribute("uv",new wr.Float32BufferAttribute(u,2))}};var Hf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A,innerRadiusPercent:t,spikes:r,cornerRadius:n,angle:i,depth:a,extrudeBevelSize:l,extrudeBevelSegments:u}=o.parameters,s=o.shape,c=e*.5,d=A*.5,p=0,f=0,m=i*Math.PI/360/r,h=Math.PI/2*3*-1,x=c*t/100,y=d*t/100;if(r===3&&t===50){m=2*Math.PI/r;for(let w=0;w<r;w++){let v=m*w,I=p+Math.sin(v)*c,S=f+Math.cos(v)*d;s.addPoint(s.createPoint(I,S))}}else for(let w=0;w<r;w++){let v=p+Math.cos(h)*c,I=f+Math.sin(h)*d;s.addPoint(s.createPoint(v,I)),h+=m,v=p+Math.cos(h)*x,I=f+Math.sin(h)*y,w<=r,s.addPoint(s.createPoint(v,I)),h+=m}s.isClosed=!0;for(let w=0,v=s.points.length;w<v;w++)s.points[w].roundness=n;s.roundness=n,s.update();let b=fe.create({shape:s,parameters:{roundness:n,depth:a,extrudeBevelSize:l,extrudeBevelSegments:u}});return Object.assign(b,{userData:{...o,type:"StarGeometry"}})}};var Wf=require("three"),qf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e,height:A}=o.parameters,t=new Wf.PlaneGeometry(e,A);return Object.assign(t,{userData:{...o,type:"TextFrameGeometry"}})}};var Qf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},o.parameters),t=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.round(Math.abs(A.depth??A.width*.25));return{parameters:Object.assign(A,{width:t,height:r,depth:n})}}static build(o){let{width:e,height:A,depth:t,radialSegments:r,tubularSegments:n,arc:i,cornerRadius:a,cornerSegments:l}=o.parameters,u=Q1(e,A,t,e*.5,i,n,0,0,r,a,l);return u.scale(1,A/e,1),Object.assign(u,{userData:{...o,type:"TorusGeometry"}})}};function Q1(o,e,A,t,r,n,i,a,l,u,s){return[e,A]=[A,e],i=e/2,r/=2*Math.PI,r==1&&(u=0),new qn(!0,o,e,A,t,r,n,i,a,l,u,s)}var Yf=require("three"),Xf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),tube:A.tube??A.width*.125})}}static build(o){let{width:e,tube:A,tubularSegments:t,radialSegments:r,p:n,q:i}=o.parameters,a=e*.5;a!==A&&(a-=A);let l=new Yf.TorusKnotGeometry(a,A,t,r,n,i);return Object.assign(l,{userData:{...o,type:"TorusKnotGeometry"}})}};var Kf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=Object.assign({},e?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width*(A.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(A.depth??0)})}}static build(o){let{width:e=100,height:A,cornerRadius:t,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i,isRect:a}=o.parameters,l=o.shape,u=e*.5,s=A*.5;a?(l.addPoint(l.createPoint(-u,s)),l.addPoint(l.createPoint(u,-s)),l.addPoint(l.createPoint(-u,-s))):(l.addPoint(l.createPoint(0,s)),l.addPoint(l.createPoint(u,-s)),l.addPoint(l.createPoint(-u,-s))),l.isClosed=!0;for(let d=0,p=l.points.length;d<p;d++)l.points[d].roundness=t;l.roundness=t,l.update();let c=fe.create({shape:l,parameters:{roundness:t,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i}});return Object.assign(c,{userData:{...o,type:"TriangleGeometry"}})}};var Ur=require("three"),Jf=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Zf(){let o=new Ur.BufferGeometry;return o.setAttribute("position",new Ur.BufferAttribute(new Float32Array([]),3)),o.setIndex(new Ur.BufferAttribute(new Uint16Array([]),1)),o}var Y1=12;var Ko=class extends Ur.BufferGeometry{constructor(A,t){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let r=Zf();Object.entries(r.attributes).forEach(([n,i])=>{this.setAttribute(n,i)}),this.setIndex(r.index),this.updateFont(A.font,t),this.update(A)}async updateFont(A,t){let r=t.getFont(A);r&&(this.font=r,await r.loadingPromise)}async update(A){let t=this.font;if(this.userData={parameters:A,type:"TextGeometry"},!t||!t.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:r,height:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l,text:u,textTransform:s,subdivisions:c}=A;await t.loadingPromise;let d=s===2?u.toUpperCase():s===3?u.toLowerCase():u,p=X1(A,t,d),{shapes:f,charWidths:m,charCoords:h}=await t.generateShapes(p,A),x=r*.5,y=n*.5,b=f.map(I=>new TA().fromShape(I));this.vectorShapes=b;let w=b.map(I=>fe.create({shape:I,parameters:{depth:i,extrudeBevelSegments:l,extrudeBevelSize:a,windingRule:i<=0?DA.NONZERO:DA.ODD,subdivisions:c??Y1}})),v=w.length?(0,Jf.mergeBufferGeometries)(w):Zf();v.translate(-x,y,0),this.dispose(),this.wrappedText=p,this.charCoords=h,this.charWidths=m,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([I,S])=>{this.setAttribute(I,S)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let A=hr(new Ur.BufferGeometry,Ko.prototype);return A.copy(this),A}copy(A){return Object.entries(A.attributes).forEach(([t,r])=>{this.setAttribute(t,r)}),this.setIndex(A.index),this.userData={parameters:{...A.userData.parameters},type:"TextGeometry"},this}async setText(A){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:A})}get text(){return this.userData.parameters.text??""}};function X1(o,e,A){A=A??o.text;let t=[""],r="";for(let n of A)r+=n,n===" "||n===`
|
|
2
|
+
`?(t[t.length-1]+=r,r="",n===`
|
|
3
|
+
`&&t.push("")):e.getTextWidth(t[t.length-1]+r,o)>o.width&&(t[t.length-1].length&&t.push(""),e.getTextWidth(t[t.length-1]+r,o)>o.width&&(r.length===1?(t[t.length-1]+=r,r=""):(t[t.length-1]+=r.slice(0,-1),r=r[r.length-1],t.push(""))));return t[t.length-1]+=r,t}var XA=require("three");var _f=require("three");function ra(o,e){return K1(o)}function K1(o){let e={parameters:o,type:o.type};if(o.type==="VectorGeometry"){let t=TA.createFromState(o.shape,o.width,o.height);e.shape=t}else o.type==="NonParametricGeometry"&&(o.data.groups&&o.data.groups.forEach(t=>t.materialIndex=Math.max(t.materialIndex??0,0)),e.geometry=new _f.BufferGeometryLoader().parse(o));let A;try{A=Xn(e)}catch(t){console.error(t)}if(!A){let t=TA.createFromState(Oo.defaultData(),100,100);e.shape=t,A=Xn(e)}return A}var uA;Eo.then(o=>{uA=o});var $f=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Am=new Uint32Array([0,1,2,3]),em=new Uint8Array([4]),$e=class{static build(o,e,A,t,r){let n,i,a,l=o?.phongAngle??e?.phongAngle??35;if(t===!1&&(l=-1),o.positionWASM!==void 0){A&&A!==0&&(uA.free_bvh(A),uA.free_subdivision_surface(A));try{n=$e.allocate(o,r)}catch(u){console.error(u,o),n=$e.allocate({positionWASM:$f,indexWASM:Am,verticesPerFaceWASM:em},r)}uA.set_destination_refinement_level(n,0),i=$e.buildLevel(n,!0,l)}else n=A,o.phongAngle!==void 0&&(i=$e.buildLevel(n,!0,l));return o.subdivisions!==void 0&&(uA.set_destination_refinement_level(n,o.subdivisions),o.subdivisions>0?a=$e.buildLevel(n,!1,l):a=null),{subdivPointer:n,originalGeometry:i,subdividedGeometry:a}}static primitiveToQuads(o,e){o.widthSegments>16&&(o.widthSegments=16),o.heightSegments>16&&(o.heightSegments=16),o.depthSegments>16&&(o.depthSegments=16),o.radialSegments>16&&(o.radialSegments=16),o.type==="DodecahedronGeometry"&&(o.detail=0);let A=o.shape!==void 0?e.geometry:ra(o),t,r,n,i;({positions:t,triIndices:i}=Gl(A.getAttribute("position"),A.getIndex()));let a;if(o.type==="CylinderGeometry"&&o.cornerRadius===0&&o.hollow===0&&o.openEnded===!1){let l=o.radialSegments*o.heightSegments*3*2,u=l+o.radialSegments*3;a=[l,u]}return{indices:r,verticesPerFace:n}=Rl(t,i,A,a),{positions:t,indices:r,verticesPerFace:n}}static allocate(o,e){let A,t,r,n=[],i=[];o.positionWASM&&o.positionWASM.length>0?(A=o.positionWASM,t=o.indexWASM,r=o.verticesPerFaceWASM):(A=$f,t=Am,r=em);let a=A.length,l=t.length,u=r.length,s=A.length+n.length+i.length,c=t.length+r.length,d=s*Float32Array.BYTES_PER_ELEMENT+c*Uint32Array.BYTES_PER_ELEMENT,p=s*Float32Array.BYTES_PER_ELEMENT,f=c*Uint32Array.BYTES_PER_ELEMENT,m=uA._malloc(d),h=new Float32Array(uA.HEAPF32.buffer,m,s),x=new Uint32Array(uA.HEAPU32.buffer,m+p,c);h.set(A,0),h.set(n,A.length),h.set(i,A.length+n.length),x.set(t,0),x.set(r,t.length);let y;o?.scaleBaked?.some(w=>w!==1)&&(y=new XA.Matrix4().makeScale(...o.scaleBaked)),e&&(y?y.premultiply(e):y=e);let b=y?uA.alloc_subdivision_surface2(m,a,m+p,l,m+p+t.length*Uint32Array.BYTES_PER_ELEMENT,u,y.elements):uA.alloc_subdivision_surface(m,a,m+p,l,m+p+t.length*Uint32Array.BYTES_PER_ELEMENT,u);return uA._free(m),b}static buildLevel(o,e,A,t,r){let n=r?uA.get_mesh_data2(o,e?uA.Level.CONTROL:uA.Level.REFINED,A,r.elements):uA.get_mesh_data(o,e?uA.Level.CONTROL:uA.Level.REFINED,A),i=8,a=uA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(4,4+4),u=0,s=uA.HEAPU32[a[u]>>2],c=uA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=uA.HEAPU32[a[u]>>2],p=uA.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=uA.HEAPU32[a[u]>>2],m=uA.HEAPU32.subarray(f>>2,(f>>2)+l[u]);u++;let h=uA.HEAPU32[a[u]>>2],x=uA.HEAPU32.subarray(h>>2,(h>>2)+l[u]);if(u++,t===void 0){let y=new XA.BufferGeometry;if(y.setIndex(new XA.Uint32BufferAttribute(x,1)),y.setAttribute("position",new XA.Float32BufferAttribute(c,3)),y.setAttribute("normal",new XA.Float32BufferAttribute(p,3)),e){y.setAttribute("faceMap",new XA.Uint32BufferAttribute(m,1));let b=new Float32Array(p.length/3*4).fill(0);y.setAttribute("color",new XA.BufferAttribute(b,4))}return uA.free_mesh_data(n),y.userData.type="SubdivGeometry",y}t.getAttribute("position").copyArray(c),t.getAttribute("normal").copyArray(p),t.attributes.position.needsUpdate=!0,t.attributes.normal.needsUpdate=!0,uA.free_mesh_data(n)}static buildControlCageWireframe(o,e,A){let t=uA.get_wireframe_data_for_base_level(o),r=4,n=uA.HEAPU32.subarray(t>>2,(t>>2)+r),i=n.subarray(2,2+2),a=0,l=uA.HEAPU32[n[a]>>2],u=uA.HEAPF32.subarray(l>>2,(l>>2)+i[a]);a++;let s=uA.HEAPU32[n[a]>>2],c=uA.HEAPU32.subarray(s>>2,(s>>2)+i[a]);if(e===void 0){let d=new XA.BufferGeometry;d.setAttribute("position",new XA.Float32BufferAttribute(u,3));let p=new Float32Array(u.length);for(let f=0,m=u.length;f<m;)p[f++]=A.r,p[f++]=A.g,p[f++]=A.b;return d.setAttribute("color",new XA.BufferAttribute(p,3)),d.setIndex(new XA.Uint32BufferAttribute(c,1)),uA.free_wireframe_data_for_base_level(t),d}e.getAttribute("position").copyArray(u),e.attributes.position.needsUpdate=!0,uA.free_wireframe_data_for_base_level(t)}static updateCollabMesh(o,e,A){let t=e===0;t||uA.set_destination_refinement_level(o,e);let r=A?uA.get_topological_data2(o,t?uA.Level.CONTROL:uA.Level.REFINED,A.elements):uA.get_topological_data(o,t?uA.Level.CONTROL:uA.Level.REFINED),n=6,i=uA.HEAPU32.subarray(r>>2,(r>>2)+n),a=i.subarray(3,3+3),l=0,u=uA.HEAPU32[i[l]>>2],s=new Float32Array(uA.HEAPF32.subarray(u>>2,(u>>2)+a[l]));l++;let c=uA.HEAPU32[i[l]>>2],d=new Uint32Array(uA.HEAPU32.subarray(c>>2,(c>>2)+a[l]));l++;let p=uA.HEAPU32[i[l]>>2],f=new Uint8Array(uA.HEAPU32.subarray(p>>2,(p>>2)+a[l]));return uA.free_topological_data(r),{positions:s,indices:d,verticesPerFace:f}}};var tm=["getX","getY","getZ"];function Gl(o,e){let A={},t=e?e.count:o.count,r=0,n=[],i=[],a=1e4;for(let u=0;u<t;u++){let s=e?e.getX(u):u,c="";for(let d=0;d<3;d++)c+=`${~~(o[tm[d]](s)*a)},`;if(c in A)n.push(A[c]);else{for(let d=0;d<3;d++)i.push(o[tm[d]](s));A[c]=r,n.push(r),r++}}let l=[];for(let u=0;u<n.length;u+=3)n[u]===n[u+1]||n[u]===n[u+2]||n[u+1]===n[u+2]||l.push(n[u],n[u+1],n[u+2]);return{positions:i,triIndices:l}}var oa=new XA.Vector3,Bl=new XA.Vector3,El=new XA.Vector3,Dl=new XA.Vector3;function Rl(o,e,A,t){let r=[],n=[];if(A.userData.shape!==void 0&&A.userData.parameters.depth===0&&A.userData.shape.shapeHoles.length===0){let i=A.userData.shape.extractShapePointsToFlatArray([]),a=A.userData.parameters.spikes;if(A.userData.type==="EllipseGeometry"&&a<=24&&a%4===0&&A.userData.parameters.angle>=360){let s=i.length/2/a;i=i.filter((c,d)=>Math.floor(d/2)%s===0)}let l=0;for(let s=0;s<i.length;s+=2)l+=(i[s]-i[(s===0?i.length:s)-2])*(i[s+1]+i[(s===0?i.length:s)-1]);o.length=0;let u=0;if(l<0)for(let s=0;s<i.length;s+=2)o.push(i[s],i[s+1],0),r.push(u++);else for(let s=i.length-2;s>=0;s-=2)o.push(i[s],i[s+1],0),r.push(u++);return n.push(u),{indices:r,verticesPerFace:n}}for(let i=0,a=A.capStartIndex??e.length;i<a;)if(e[i+1]===e[i+3]&&e[i+2]===e[i+5]||e[i+0]===e[i+3]&&e[i+2]===e[i+4]){oa.set(o[e[i]*3],o[e[i]*3+1],o[e[i]*3+2]),Bl.set(o[e[i+1]*3],o[e[i+1]*3+1],o[e[i+1]*3+2]),El.set(o[e[i+4]*3],o[e[i+4]*3+1],o[e[i+4]*3+2]),Dl.set(o[e[i+5]*3],o[e[i+5]*3+1],o[e[i+5]*3+2]),Bl.sub(oa).normalize(),El.sub(oa).normalize(),Dl.sub(oa).normalize();let l=Bl.cross(El).dot(Dl);Math.abs(l)>.005||t&&t.some((u,s)=>s%2===1?!1:i>=t[s]&&i<t[s+1])?(r.push(e[i],e[i+1],e[i+2]),n.push(3),i+=3):(r.push(e[i],e[i+1],e[i+4],e[i+5]),n.push(4),i+=6)}else r.push(e[i],e[i+1],e[i+2]),n.push(3),i+=3;if(A.capStartIndex!==void 0){let i=[],a=[],l=0,u=new Float32Array([A.userData.parameters.depth])[0];for(let s=0,c=0;s<o.length;s+=3,c++)o[s+2]===0&&(i.push(c),l++),o[s+2]===u&&a.push(c);if(A.userData.parameters.extrudeBevelSize===0){let s=a[0];a[0]=a[1],a[1]=s}i.reverse(),r.push(...i,...a),n.push(l,l)}return{indices:r,verticesPerFace:n}}var it={};dc(it,{calcBoolean:()=>$1,calcBooleanTopological:()=>_1,freeMeshSet:()=>tw,getMeshSet:()=>Aw,transformMeshSet:()=>ew});var Z1,rm=new Promise(o=>{Z1=o});var Kn=require("three");var yA,Zo;rm.then(o=>yA=o);function J1(o,e,A){let t,{positions:r,triIndices:n}=Gl(o.getAttribute("position"),o.getIndex()),i;if(e&&A){let{indices:a,verticesPerFace:l}=Rl(r,n,o);i=l.length,t=[];for(let u=0,s=0;u<i;u++){t.push(l[u]);for(let c=0;c<l[u];c++)t.push(a[s++])}}else{let a=n.length;t=Array(a+a/3),i=0;for(let l=0,u=0;u<t.length;)t[u++]=3,i++,t[u++]=n[l++],t[u++]=n[l++],t[u++]=n[l++]}return{positions:r,faceIndices:t,nFaces:i}}function om(o){let e=o.length,A=e*Uint32Array.BYTES_PER_ELEMENT,t=e*Float32Array.BYTES_PER_ELEMENT,r=Number.isInteger(o[0])?A:t,n=yA._malloc(r);return(Number.isInteger(o[0])?new Uint32Array(yA.HEAPU32.buffer,n,e):new Float32Array(yA.HEAPF32.buffer,n,e)).set(o,0),n}function nm(o){switch(o){case 0:return yA.OP.UNION;case 1:return yA.OP.INTERSECTION;case 2:return yA.OP.A_MINUS_B;case 3:return yA.OP.B_MINUS_A;case 4:return yA.OP.SYMMETRIC_DIFFERENCE;case 5:return yA.OP.ALL;default:throw new Error("Unknown boolean operation "+o)}}function _1(o,e){Zo===void 0&&(Zo=yA.init_csg());let A=om(o),t=yA.csg_calc_topological(Zo,A,o.length,nm(e));yA._free(A);let r=6,n=yA.HEAPU32.subarray(t>>2,(t>>2)+r),i=n.subarray(3,3+3),a=0,l=yA.HEAPU32[n[a]>>2],u=new Float32Array(yA.HEAPF32.subarray(l>>2,(l>>2)+i[a]));a++;let s=yA.HEAPU32[n[a]>>2],c=new Uint32Array(yA.HEAPU32.subarray(s>>2,(s>>2)+i[a]));a++;let d=yA.HEAPU32[n[a]>>2],p=new Uint8Array(yA.HEAPU32.subarray(d>>2,(d>>2)+i[a]));return yA.free_mesh_data(t),{positions:u,indices:c,verticesPerFace:p}}function $1(o,e,A,t){Zo===void 0&&(Zo=yA.init_csg());let r=om(o),n=yA.csg_calc(Zo,r,o.length,t,nm(e));yA._free(r);let i=5,a=yA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+3),u=0,s=yA.HEAPU32[a[u]>>2],c=yA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=yA.HEAPU32[a[u]>>2],p=yA.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=l[u];A.setAttribute("position",new Kn.Float32BufferAttribute(c,3)),A.setAttribute("normal",new Kn.Float32BufferAttribute(p,3));let m=yA.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return A.boundingSphere===null&&(A.boundingSphere=new Kn.Sphere),A.boundingSphere.center.set(m[0],m[1],m[2]),A.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,A.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},yA.free_mesh_data(n),f}function Aw(o,e,A){if(yA===void 0)return-1;let t,r,n;if(e&&o.userData.positions!==void 0){let h=o.userData;n=h.verticesPerFace.length,t=h.positions,r=Array(h.verticesPerFace.reduce((x,y)=>x+y,0)+n);for(let x=0,y=0,b=0;x<h.verticesPerFace.length;x++){r[b++]=h.verticesPerFace[x];for(let w=0;w<h.verticesPerFace[x];w++)r[b++]=h.indices[y++]}}else({positions:t,faceIndices:r,nFaces:n}=J1(o,e,A));let i=t.length,a=r.length,l=t.length,u=r.length,s=l*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,c=l*Float32Array.BYTES_PER_ELEMENT,d=u*Uint32Array.BYTES_PER_ELEMENT,p=yA._malloc(s),f=new Float32Array(yA.HEAPF32.buffer,p,l),m=new Uint32Array(yA.HEAPU32.buffer,p+c,u);return f.set(t,0),m.set(r,0),yA.get_csg_mesh(p,i,p+c,a,n)}function ew(o,e){yA.transform_csg_mesh(o,e.elements)}function tw(o){yA.free_csg_mesh(o)}var Vl={ConeGeometry:yf,CubeGeometry:xf,CylinderGeometry:hf,DodecahedronGeometry:bf,EllipseGeometry:If,HelixGeometry:Lf,IcosahedronGeometry:Bf,LatheGeometry:Ef,NonParametricGeometry:Df,PolygonGeometry:Gf,PyramidGeometry:Rf,RectangleGeometry:Vf,SphereGeometry:jf,PlaneGeometry:kf,BackdropGeometry:Uf,StarGeometry:Hf,TextFrameGeometry:qf,TorusGeometry:Qf,TorusKnotGeometry:Xf,TriangleGeometry:Kf,VectorGeometry:fe},Xn=o=>Vl[o.type].create(o);var wm=require("three");var at=require("three");var Zn=class{constructor(e){e=e??{},this.name=e.name,this.type=e.type,this.node=e.node,this.size=e.size,this.needsUpdate=e.needsUpdate}get value(){return this.node.value}set value(e){this.node.value=e}};var im=require("three"),le=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=im.MathUtils.generateUUID(),this.type=e,this.name=""}analyze(e,A){A=A??{},e.analyzing=!0,this.build(e.addFlow(A.slot,A.cache,A.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1}analyzeAndFlow(e,A,t){return t=t??{},this.analyze(e,t),this.flow(e,A,t)}flow(e,A,t){t=t??{},e.addFlow(t.slot,t.cache,t.context);let r={result:this.build(e,A),code:e.clearNodeCode(),extra:e.context.extra};return e.removeFlow(),r}build(e,A,t){A=A??this.getType(e,A);let r=e.getNodeData(t??this);return e.analyzing&&this.appendDepsNode(e,r,A),e.nodes.indexOf(this)===-1&&e.nodes.push(this),this.updateFrame!==void 0&&e.updaters.indexOf(this)===-1&&e.updaters.push(this),this.generate(e,A,t)}updateFrame(e){}generateReadonly(e,A,t,r,n,i){return""}generate(e,A,t,r,n){return""}parse(e,A,t,r){}appendDepsNode(e,A,t){A.deps=(A.deps||0)+1;let r=e.getTypeLength(t);(r>(A.outputMax||0)||this.getType(e,t))&&(A.outputMax=r,A.output=t)}setName(e){this.name=e}getName(){return this.name}getType(e,A){return A==="sampler2D"||A==="samplerCube"?A:this.type}getHash(){let e="{",A,t;for(A in this)t=this[A],t instanceof le&&(e+='"'+A+'":'+t.getHash()+",");if(this.hashProperties)for(let r=0;r<this.hashProperties.length;r++)A=this.hashProperties[r],t=this[A],e+='"'+A+'":"'+String(t)+'",';return e+='"id":"'+this.uuid+'"}',e}};var Fl=class{constructor(){this.nodes={};this.keywords={}}add(e){this.nodes[e.name]=e}addKeyword(e,A,t){t=t!==void 0?t:!0,this.keywords[e]={callback:A,cache:t}}remove(e){delete this.nodes[e.name]}removeKeyword(e){delete this.keywords[e]}get(e){return this.nodes[e]}getKeyword(e,A){return this.keywords[e].callback(A)}getKeywordData(e){return this.keywords[e]}contains(e){return this.nodes[e]!==void 0}containsKeyword(e){return this.keywords[e]!==void 0}},te=new Fl;var jl=require("three");var sm=require("three"),lA=class extends le{constructor(A,t){super(A);this.scope="";t=t??{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(A,t,r,n){if(t=t??this.getType(A),this.getShared(A,t)){let i=this.getUnique(A,t);i&&this.uuid===void 0&&(this.uuid=sm.MathUtils.generateUUID()),r=A.getUUID(r??this.getUUID(),!i);let a=A.getNodeData(r),l=a.output||this.getType(A);if(A.analyzing)return(a.deps||0)>0||this.getLabel()?(this.appendDepsNode(A,a,t),this.generate(A,t,r)):super.build(A,t,r);if(i)return a.name=a.name||super.build(A,t,r),a.name;if(!this.getLabel()&&(!this.getShared(A,l)||A.context.ignoreCache||a.deps===1))return super.build(A,t,r);r=this.getUUID(!1);let u=this.getTemp(A,r);if(u)return A.format(u,l,t);{u=super.generate(A,t,r,a.output,n);let s=this.generate(A,l,r);return A.addNodeCode(u+" = "+s+";"),A.format(u,l,t)}}return super.build(A,t,r)}getShared(A,t){return t!=="sampler2D"&&t!=="samplerCube"&&this.shared}getUnique(A,t){return this.unique}setLabel(A){return this.label=A,this}getLabel(){return this.label}getUUID(A){let t=this.uuid;return typeof this.scope=="string"&&(t=this.scope+"-"+t),t}getTemp(A,t){t=t||this.uuid;let r=A.getVars()[t];return r?r.name:void 0}generate(A,t,r,n,i){return this.getShared(A,t)||console.error("TempNode is not shared"),r=r??this.uuid,A.getTempVar(r,n??this.getType(A),i,this.getLabel()).name}};var GA=class extends lA{constructor(A,t){t=t??{},t.shared=t.shared!==void 0?t.shared:!1;super(A,t);this.readonly=!1}setReadonly(A){return this.readonly=A,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(A,t,r,n,i,a){r=A.getUUID(r??this.getUUID()),n=n??this.getType(A);let l=A.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(A,t,r,n,i,a):A.isShader("vertex")?(l.vertex||(l.vertex=A.createVertexUniform(n,this,i,a,this.getLabel())),A.format(l.vertex.name,n,t)):(l.fragment||(l.fragment=A.createFragmentUniform(n,this,i,a,this.getLabel())),A.format(l.fragment.name,n,t))}};var ce=class extends GA{constructor(A=0,t){super("v2");this.nodeType="Vector2";this.value=A instanceof jl.Vector2?A:new jl.Vector2(A,t)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}generateReadonly(A,t,r,n,i,a){return A.format("vec2("+this.value.x+", "+this.value.y+")",n,t)}};var zl=require("three");var me=class extends GA{constructor(A=0,t,r){super("v3");this.nodeType="Vector3";this.value=A instanceof zl.Vector3?A:new zl.Vector3(A,t,r)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}get z(){return this.value.z}set z(A){this.value.z=A}generateReadonly(A,t,r,n,i,a){return A.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,t)}};var am=require("three"),re=class extends am.Color{constructor(A,t,r,n){super(A,t,r);this.isColorA=!0;this.a=n}setRGBA(A,t,r,n){super.setRGB(A,t,r),this.a=n}copy(A){return super.copy(A),this.a="a"in A?A.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(A){this.r=A}set y(A){this.g=A}set z(A){this.b=A}set w(A){this.a=A}};var At=class extends GA{constructor(A){super("v4");this.nodeType="Vector4";this.value=A instanceof re?A:new re(A.r,A.g,A.b,A.a)}generateReadonly(A,t,r,n,i,a){return A.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,t)}};var rw=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,lm=/[a-z_0-9]+/gi,K=class extends lA{constructor(A,t,r,n,i){super(i);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=i===void 0,this.isInterface=!1,this.parse(A,t,r,n)}getShared(A,t){return!this.isMethod}getType(A){return A.getTypeByFormat(this.type)}getInputByName(A){if(this.inputs){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===A)return this.inputs[t]}}getIncludeByName(A){if(this.includes){let t=this.includes.length;for(;t--;)if(this.includes[t].name===A)return this.includes[t]}}generate(A,t,r,n,i){let a,l=0,u=this.src;if(this.includes)for(let c=0;c<this.includes.length;c++)A.include(this.includes[c],this);for(let c in this.extensions)A.extensions[c]=!0;let s=[];for(;a=lm.exec(this.src);)s.push(a);for(let c=0;c<s.length;c++){let d=s[c],p=d[0],f=this.isMethod?!this.getInputByName(p):!0,m=p;if(this.keywords[p]||this.useKeywords&&f&&te.containsKeyword(p)){let h=this.keywords[p];if(!h){let x=te.getKeywordData(p);x.cache&&(h=A.keywords[p]),h=h||te.getKeyword(p,A),x.cache&&(A.keywords[p]=h)}m=h.build(A)}p!==m&&u[d.index+l-1]!=="."&&(u=u.substring(0,d.index+l)+m+u.substring(d.index+p.length+l),l+=m.length-p.length),this.getIncludeByName(m)===void 0&&te.contains(m)&&A.include(te.get(m))}return t==="source"?u:this.isMethod?(this.isInterface||A.include(this,void 0,u),this.name):A.format("( "+u+" )",this.getType(A),t)}parse(A,t,r,n){if(this.src=A||"",this.includes=t??[],this.extensions=r??{},this.keywords=n??{},this.isMethod){let i=rw.exec(this.src);if(this.inputs=[],i&&i.length==4){this.type=i[1],this.name=i[2];let a=i[3].match(lm);if(a){let l=0;for(;l<a.length;){let u=a[l++],s;u==="in"||u==="out"||u==="inout"?s=a[l++]:(s=u,u="");let c=a[l++];this.inputs.push({name:c,type:s,qualifier:u})}}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,kl=class extends lA{constructor(A="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(A||kl.PI,void 0,void 0,void 0,t)}getType(A){return A.getTypeByFormat(this.type)}parse(A,t,r,n,i){this.src=A||"";let a,l,u="",s=ow.exec(A);this.useDefine=i??this.src.charAt(0)==="#",s&&s.length>1?(l=s[1],a=s[2],u=s[3]):(a=this.src,l="f"),this.name=a,this.type=l,this.value=u}build(A,t){if(t==="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 A.include(this),A.format(this.name,this.getType(A),t)}generate(A,t,r,n,i){return A.format(this.name,this.getType(A),t)}},SA=kl;SA.PI="PI",SA.PI2="PI2",SA.RECIPROCAL_PI="RECIPROCAL_PI",SA.RECIPROCAL_PI2="RECIPROCAL_PI2",SA.LOG2="LOG2",SA.EPSILON="EPSILON";var nw=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
+
)*?)}`,"gim"),iw=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Jo=class extends lA{constructor(A=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(A)}getType(A){return A.getTypeByFormat(this.name)}getInputByName(A){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===A)return this.inputs[t]}generate(A,t,r,n,i){return t==="source"?this.src+";":A.format("( "+this.src+" )",this.getType(A),t)}parse(A=""){this.src=A,this.inputs=[];let t=nw.exec(A);if(t){let r=t[2],n;for(;n=iw.exec(r);)this.inputs.push({type:n[1],name:n[2]});this.name=t[1]}else this.name="";this.type=this.name}};var _o=class extends lA{constructor(A){super("v2",{shared:!1});this.nodeType="UV";this.index=A??0}generate(A,t){A.requires.uv[this.index]=!0;let r=this.index>0?this.index+1:"",n=A.isShader("vertex")?"uv"+r:"vUv"+r;return A.format(n,this.getType(A),t)}};te.addKeyword("uv",function(){return new _o});te.addKeyword("uv2",function(){return new _o(1)});var na=require("three");var Hr=class extends lA{constructor(A,t){super("v4");this.nodeType="ColorSpace";this.input=A,this.method=t??Hr.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(A){switch(A){case na.LinearEncoding:return["Linear"];case na.sRGBEncoding:return["sRGB"];default:return[]}}generate(A,t){let r=this.input.build(A,"v4"),n=this.getType(A),i=Hr.Nodes[this.method],a=A.include(i);if(a===Hr.LINEAR_TO_LINEAR)return A.format(r,n,t);if(i.inputs?.length===2){let l=this.factor.build(A,"f");return A.format(a+"( "+r+", "+l+" )",n,t)}else return A.format(a+"( "+r+" )",n,t)}fromEncoding(A){let t=Hr.getEncodingComponents(A);this.method="LinearTo"+t[0],this.factor=t[1]}fromDecoding(A){let t=Hr.getEncodingComponents(A);this.method=t[0]+"ToLinear",this.factor=t[1]}},Ie=Hr;Ie.Nodes={LinearToLinear:new K(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
|
|
5
|
+
`)),sRGBToLinear:new K(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
|
|
6
|
+
`)),LinearTosRGB:new K(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
|
|
7
|
+
`))},Ie.LINEAR_TO_LINEAR="LinearToLinear",Ie.SRGB_TO_LINEAR="sRGBToLinear",Ie.LINEAR_TO_SRGB="LinearTosRGB";var IA=class extends K{constructor(A="",t,r,n,i){super(A,i,n,r,t);this.nodeType="Expression"}};var cm=require("three"),De=class extends GA{constructor(A=new cm.Texture,t,r,n){super("v4",{shared:!0});this.nodeType="Texture";this.value=A,this.uv=t??new _o,this.bias=r,this.project=n!==void 0?n:!1}getTexture(A,t){return super.generate(A,t,this.value.uuid,"t")}generate(A,t){if(t==="sampler2D")return this.getTexture(A,t);let r=this.getTexture(A,t),n=this.uv.build(A,this.project?"v4":"v2"),i=this.bias?this.bias.build(A,"f"):void 0;i===void 0&&A.context.bias&&(i=A.context.bias.setTexture(this).build(A,"f"));let a,l;this.project?a="texture2DProj":a=i?"tex2DBias":"tex2D",i?l=a+"( "+r+", "+n+", "+i+" )":l=a+"( "+r+", "+n+" )";let u={include:A.isShader("vertex"),ignoreCache:!0},s=this.getType(A);return A.addContext(u),this.colorSpace=this.colorSpace??new Ie(new IA("",s)),this.colorSpace.fromDecoding(A.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(A,s),A.removeContext(),A.format(l,s,t)}};var J=class extends GA{constructor(A){super("f");this.nodeType="Float";this.value=A??0}generateReadonly(A,t,r,n,i,a){return A.format(this.value+(this.value%1?"":".0"),n,t)}};var Jn=class extends lA{constructor(A,t){super();this.inputs=[];this.nodeType="FunctionCall";this.value=A,this.inputs=t??[]}getFunction(){return this.value}getType(A){return this.value.getType(A)}generate(A,t,r,n,i){n=this.getType(A);let a=this.value,l=a.build(A,t)+"( ",u=[];if(a.inputs){for(let s=0;s<a.inputs.length;s++){let c=a.inputs[s],d=this.inputs[s]||this.inputs[c.name];u.push(d.build(A,A.getTypeByFormat(c.type)))}l+=u.join(", ")+" )"}return A.format(l,n,t)}};var Ul=class extends lA{constructor(A,t,r=Ul.ADD){super();this.nodeType="Operator";this.type=A.type,this.a=A,this.b=t,this.op=r}getType(A){let t=this.a.getType(A),r=this.b.getType(A);return A.isTypeMatrix(t)?"v4":A.getTypeLength(r)>A.getTypeLength(t)?r:t}generate(A,t){let r=this.getType(A);this.type=r;let n=this.a.build(A,r),i=this.b.build(A,r);return A.format("( "+n+" "+this.op+" "+i+" )",r,t)}},Ge=Ul;Ge.ADD="+",Ge.SUB="-",Ge.MUL="*",Ge.DIV="/";var BA=class extends lA{constructor(A,t=BA.ABS,r,n){super();this.nodeType="Math";this.a=A,typeof t!="string"?this.b=t:n=t,typeof r!="string"?this.c=r:n=r,this.method=n,this.hashProperties=["method"]}getNumInputs(A){switch(this.method){case BA.MIX:case BA.CLAMP:case BA.REFRACT:case BA.SMOOTHSTEP:case BA.FACEFORWARD:return 3;case BA.MIN:case BA.MAX:case BA.MOD:case BA.STEP:case BA.REFLECT:case BA.DISTANCE:case BA.DOT:case BA.CROSS:case BA.POW:return 2;default:return 1}}getInputType(A){let t=A.getTypeLength(this.a.getType(A)),r=this.b?A.getTypeLength(this.b.getType(A)):0,n=this.c?A.getTypeLength(this.c.getType(A)):0;return t>r&&t>n?this.a.getType(A):r>n?this.b.getType(A):this.c.getType(A)}getType(A){switch(this.method){case BA.LENGTH:case BA.DISTANCE:case BA.DOT:return"f";case BA.CROSS:return"v3"}return this.getInputType(A)}generate(A,t){let r,n,i,a=this.a?A.getTypeLength(this.a.getType(A)):0,l=this.b?A.getTypeLength(this.b.getType(A)):0,u=this.c?A.getTypeLength(this.c.getType(A)):0,s=this.getInputType(A),c=this.getType(A);switch(this.type=c,this.method){case BA.NEGATE:return A.format("( -"+this.a.build(A,s)+" )",s,t);case BA.INVERT:return A.format("( 1.0 - "+this.a.build(A,s)+" )",s,t);case BA.CROSS:r=this.a.build(A,"v3"),n=this.b.build(A,"v3");break;case BA.STEP:r=this.a.build(A,a===1?"f":s),n=this.b.build(A,s);break;case BA.MIN:case BA.MAX:case BA.MOD:r=this.a.build(A,s),n=this.b.build(A,l===1?"f":s);break;case BA.REFRACT:r=this.a.build(A,s),n=this.b.build(A,s),i=this.c.build(A,"f");break;case BA.MIX:r=this.a.build(A,s),n=this.b.build(A,s),i=this.c.build(A,u===1?"f":s);break;default:r=this.a.build(A,s),this.b&&(n=this.b.build(A,s)),this.c&&(i=this.c.build(A,s));break}let d=[];d.push(r),n&&d.push(n),i&&d.push(i);let p=this.getNumInputs(A);if(d.length!==p)throw Error(`Arguments not match used in "${this.method}". Require ${p}, currently ${d.length}.`);return A.format(this.method+"( "+d.join(", ")+" )",c,t)}},pA=BA;pA.RAD="radians",pA.DEG="degrees",pA.EXP="exp",pA.EXP2="exp2",pA.LOG="log",pA.LOG2="log2",pA.SQRT="sqrt",pA.INV_SQRT="inversesqrt",pA.FLOOR="floor",pA.CEIL="ceil",pA.NORMALIZE="normalize",pA.FRACT="fract",pA.SATURATE="saturate",pA.SIN="sin",pA.COS="cos",pA.TAN="tan",pA.ASIN="asin",pA.ACOS="acos",pA.ARCTAN="atan",pA.ABS="abs",pA.SIGN="sign",pA.LENGTH="length",pA.NEGATE="negate",pA.INVERT="invert",pA.MIN="min",pA.MAX="max",pA.MOD="mod",pA.STEP="step",pA.REFLECT="reflect",pA.DISTANCE="distance",pA.DOT="dot",pA.CROSS="cross",pA.POW="pow",pA.MIX="mix",pA.CLAMP="clamp",pA.REFRACT="refract",pA.SMOOTHSTEP="smoothstep",pA.FACEFORWARD="faceforward";var $o=class extends lA{constructor(A,t,r){super("v4");this.nodeType="TextureCubeUV";this.value=A,this.uv=t,this.bias=r}bilinearCubeUV(A,t,r,n){let i=new Jn($o.Nodes.bilinearCubeUV,[t,r,n]);this.colorSpaceTL=this.colorSpaceTL??new Ie(new IA("","v4")),this.colorSpaceTL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(i.build(A)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new Ie(new IA("","v4")),this.colorSpaceTR.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(i.build(A)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new Ie(new IA("","v4")),this.colorSpaceBL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(i.build(A)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new Ie(new IA("","v4")),this.colorSpaceBR.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(i.build(A)+".br");let a={include:A.isShader("vertex"),ignoreCache:!0};A.addContext(a),this.colorSpaceTLExp=new IA(this.colorSpaceTL.build(A,"v4"),"v4"),this.colorSpaceTRExp=new IA(this.colorSpaceTR.build(A,"v4"),"v4"),this.colorSpaceBLExp=new IA(this.colorSpaceBL.build(A,"v4"),"v4"),this.colorSpaceBRExp=new IA(this.colorSpaceBR.build(A,"v4"),"v4"),A.removeContext();let l=new IA("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return l.keywords.cubeUV_TL=this.colorSpaceTLExp,l.keywords.cubeUV_TR=this.colorSpaceTRExp,l.keywords.cubeUV_BL=this.colorSpaceBLExp,l.keywords.cubeUV_BR=this.colorSpaceBRExp,l.keywords.cubeUV=i,l}generate(A,t){if(A.isShader("fragment")){let r=this.uv,n=this.bias||A.context.roughness,i=new Jn($o.Nodes.roughnessToMip,[n]),a=new pA(i,$o.Nodes.m0,$o.Nodes.cubeUV_maxMipLevel,pA.CLAMP),l=new pA(a,pA.FLOOR),u=new pA(a,pA.FRACT),s=this.bilinearCubeUV(A,this.value,r,l),c=this.bilinearCubeUV(A,this.value,r,new Ge(l,new J(1).setReadonly(!0),Ge.ADD)),d=new pA(s,c,u,pA.MIX);return A.format(d.build(A),"v4",t)}else return console.warn("TextureCubeUVNode is not compatible with "+A.shader+" shader."),A.format("vec4( 0.0 )",this.getType(A),t)}},An=$o;An.Nodes=function(){let A=new Jo(`struct TextureCubeUVData {
|
|
8
8
|
vec4 tl;
|
|
9
9
|
vec4 tr;
|
|
10
10
|
vec4 br;
|
|
11
11
|
vec4 bl;
|
|
12
12
|
vec2 f;
|
|
13
|
-
}`),
|
|
13
|
+
}`),t=new SA("float cubeUV_maxMipLevel 8.0",!0),r=new SA("float cubeUV_minMipLevel 4.0",!0),n=new SA("float cubeUV_maxTileSize 256.0",!0),i=new SA("float cubeUV_minTileSize 16.0",!0),a=new K(`float getFace(vec3 direction) {
|
|
14
14
|
vec3 absDirection = abs(direction);
|
|
15
15
|
float face = -1.0;
|
|
16
16
|
if (absDirection.x > absDirection.z) {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
face = direction.y > 0.0 ? 1.0 : 4.0;
|
|
26
26
|
}
|
|
27
27
|
return face;
|
|
28
|
-
}`);
|
|
28
|
+
}`);a.useKeywords=!1;let l=new K(`vec2 getUV(vec3 direction, float face) {
|
|
29
29
|
vec2 uv;
|
|
30
30
|
if (face == 0.0) {
|
|
31
31
|
uv = vec2(direction.z, direction.y) / abs(direction.x); // pos x
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
uv = vec2(direction.x, direction.y) / abs(direction.z); // neg z
|
|
42
42
|
}
|
|
43
43
|
return 0.5 * (uv + 1.0);
|
|
44
|
-
}`);
|
|
44
|
+
}`);l.useKeywords=!1;let u=new K(`TextureCubeUVData bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {
|
|
45
45
|
float face = getFace(direction);
|
|
46
46
|
float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);
|
|
47
47
|
mipInt = max(mipInt, cubeUV_minMipLevel);
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
uv.x -= texelSize;
|
|
70
70
|
vec4 bl = texture2D(envMap, uv);
|
|
71
71
|
return TextureCubeUVData( tl, tr, br, bl, f );
|
|
72
|
-
}`,[
|
|
72
|
+
}`,[A,a,l,t,r,n,i]);u.useKeywords=!1;let s=new SA("float r0 1.0",!0),c=new SA("float v0 0.339",!0),d=new SA("float m0 -2.0",!0),p=new SA("float r1 0.8",!0),f=new SA("float v1 0.276",!0),m=new SA("float m1 -1.0",!0),h=new SA("float r4 0.4",!0),x=new SA("float v4 0.046",!0),y=new SA("float m4 2.0",!0),b=new SA("float r5 0.305",!0),w=new SA("float v5 0.016",!0),v=new SA("float m5 3.0",!0),I=new SA("float r6 0.21",!0),S=new SA("float v6 0.0038",!0),g=new SA("float m6 4.0",!0),P=[s,c,d,p,f,m,h,x,y,b,w,v,I,S,g],N=new K(`float roughnessToMip(float roughness) {
|
|
73
73
|
float mip = 0.0;
|
|
74
74
|
if (roughness >= r1) {
|
|
75
75
|
mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
|
|
84
84
|
}
|
|
85
85
|
return mip;
|
|
86
|
-
}`,
|
|
87
|
-
`);return
|
|
86
|
+
}`,P);return{bilinearCubeUV:u,roughnessToMip:N,m0:d,cubeUV_maxMipLevel:t}}();var Wr=class extends lA{constructor(A){super("v3");this.nodeType="Normal";this.scope=A??Wr.VIEW}getShared(){return this.scope===Wr.WORLD}build(A,t,r,n){let i=A.context[this.scope+"Normal"];return i?i.build(A,t,r,n):super.build(A,t,r)}generate(A,t,r,n,i){let a;switch(this.scope){case Wr.VIEW:A.isShader("vertex")?a="transformedNormal":a="geometryNormal";break;case Wr.LOCAL:A.isShader("vertex")?a="objectNormal":(A.requires.normal=!0,a="vObjectNormal");break;case Wr.WORLD:A.isShader("vertex")?a="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(A.requires.worldNormal=!0,a="vWNormal");break}return A.format(a,this.getType(A),t)}},ue=Wr;ue.LOCAL="local",ue.WORLD="world",ue.VIEW="view",ue.NORMAL="normal";te.addKeyword("viewNormal",function(){return new ue(ue.VIEW)});te.addKeyword("localNormal",function(){return new ue(ue.NORMAL)});te.addKeyword("worldNormal",function(){return new ue(ue.WORLD)});var Lt=class extends lA{constructor(A){super("v3");this.nodeType="Position";this.scope=A??Lt.LOCAL}getType(){switch(this.scope){case Lt.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Lt.LOCAL:case Lt.WORLD:return!1}return!0}generate(A,t,r,n,i){let a;switch(this.scope){case Lt.LOCAL:A.isShader("vertex")?a="transformed":(A.requires.position=!0,a="vPosition");break;case Lt.WORLD:if(A.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";A.requires.worldPosition=!0,a="vWPosition";break;case Lt.VIEW:a=A.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Lt.PROJECTION:a=A.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return A.format(a,this.getType(),t)}},Re=Lt;Re.LOCAL="local",Re.WORLD="world",Re.VIEW="view",Re.PROJECTION="projection";te.addKeyword("position",function(){return new Re});te.addKeyword("worldPosition",function(){return new Re(Re.WORLD)});te.addKeyword("viewPosition",function(){return new Re(Re.VIEW)});var st=class extends lA{constructor(A){super("v3");this.nodeType="Reflect";this.scope=A??st.CUBE}getUnique(A){return!A.context.viewNormal}getType(){switch(this.scope){case st.SPHERE:return"v2"}return this.type}generate(A,t){let r=this.getUnique(A);if(A.isShader("fragment")){let n;switch(this.scope){case st.VECTOR:{let i=new ue(ue.VIEW),a=A.context.roughness,l=i.build(A,"v3"),u=new Re(Re.VIEW).build(A,"v3"),s=a?a.build(A,"f"):void 0,c=`reflect( -normalize( ${u} ), ${l} )`;s&&(c=`normalize( mix( ${c}, ${l}, ${s} * ${s} ) )`);let d=`inverseTransformDirection( ${c}, viewMatrix )`;r?(A.addNodeCode(`vec3 reflectVec = ${d};`),n="reflectVec"):n=d;break}case st.CUBE:{let i=new st(st.VECTOR).build(A,"v3"),a="vec3( -"+i+".x, "+i+".yz )";r?(A.addNodeCode(`vec3 reflectCubeVec = ${a};`),n="reflectCubeVec"):n=a;break}case st.SPHERE:{let a="normalize( ( viewMatrix * vec4( "+new st(st.VECTOR).build(A,"v3")+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";r?(A.addNodeCode(`vec2 reflectSphereVec = ${a};`),n="reflectSphereVec"):n=a;break}}return A.format(n,this.getType(),t)}else return console.warn("ReflectNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.type,t)}},Mt=st;Mt.CUBE="cube",Mt.SPHERE="sphere",Mt.VECTOR="vector";var ia=class extends lA{constructor(A=new De,t,r){super("v4");this.nodeType="TextureCube";this.value=A,this.radianceNode=new An(this.value,t??new Mt(Mt.VECTOR),r),this.irradianceNode=new An(this.value,new ue(ue.WORLD),new J(1).setReadonly(!0))}generate(A,t){return A.isShader("fragment")?(A.require("irradiance"),A.context.bias&&A.context.bias.setTexture(this.value),(A.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(A,t)):(console.warn("TextureCubeNode is not compatible with "+A.shader+" shader."),A.format("vec4( 0.0 )",this.getType(A),t))}};var um=require("three");var sa=class extends GA{constructor(A=new um.CubeTexture,t,r){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=A,this.uv=t??new Mt,this.bias=r}getTexture(A,t){return super.generate(A,t,this.value.uuid,"tc")}generate(A,t){if(t==="samplerCube")return this.getTexture(A,t);let r=this.getTexture(A,t),n=this.uv?.build(A,"v3"),i=this.bias?this.bias.build(A,"f"):void 0;i===void 0&&A.context.bias&&(i=A.context.bias.setTexture(this).build(A,"f"));let a;i?a="texCubeBias( "+r+", "+n+", "+i+" )":a="texCube( "+r+", "+n+" )";let l={include:A.isShader("vertex"),ignoreCache:!0},u=this.getType(A);return A.addContext(l),this.colorSpace=this.colorSpace??new Ie(new IA("",u)),this.colorSpace.fromDecoding(A.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(a),a=this.colorSpace.build(A,u),A.removeContext(),A.format(a,u,t)}};var dm=["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[]"},aa=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function e(A,t){return A.deps.length-t.deps.length}return function(t,r){let n=this.getIncludes(t,r);if(!n)return"";let i="";n=n.sort(e);for(let a=0;a<n.length;a++)n[a].src&&(i+=n[a].src+`
|
|
87
|
+
`);return i}}();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
|
|
90
90
|
#define SPE_BLENDING_MULTIPLY 1
|
|
@@ -121,15 +121,15 @@
|
|
|
121
121
|
`),fragment:["float accumAlpha = 0.0;",`void accumulateAlpha(float alpha) {
|
|
122
122
|
accumAlpha += (1.0 - accumAlpha) * alpha;
|
|
123
123
|
}`,""].join(`
|
|
124
|
-
`)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(
|
|
125
|
-
`}addVertexNodeCode(
|
|
126
|
-
`}clearNodeCode(
|
|
127
|
-
`}addVertexParsCode(
|
|
128
|
-
`}addVaryCode(
|
|
129
|
-
`)}getVarListCode(
|
|
130
|
-
`:
|
|
131
|
-
`}return
|
|
132
|
-
`));let
|
|
124
|
+
`)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(e,A){this.buildShader("vertex",e),this.buildShader("fragment",A);for(let t=0;t<this.requires.uv.length;t++)if(this.requires.uv[t]){let r=t>0?t+1:"";this.addVaryCode("varying vec2 vUv"+r+";"),t>0&&this.addVertexParsCode("attribute vec2 uv"+r+";"),this.addVertexFinalCode("vUv"+r+" = uv"+r+";")}return this.requires.color[0]&&(this.addVaryCode("varying vec4 vColor;"),this.addVertexParsCode("attribute vec4 color;"),this.addVertexFinalCode("vColor = color;")),this.requires.color[1]&&(this.addVaryCode("varying vec4 vColor2;"),this.addVertexParsCode("attribute vec4 color2;"),this.addVertexFinalCode("vColor2 = color2;")),this.requires.position&&(this.addVaryCode("varying vec3 vPosition;"),this.addVertexFinalCode("vPosition = transformed;")),this.requires.worldPosition,this.requires.normal&&(this.addVaryCode("varying vec3 vObjectNormal;"),this.addVertexFinalCode("vObjectNormal = normal;")),this.requires.modelMatrix&&this.addFragmentParsCode("uniform mat4 modelMatrix;"),this.requires.viewMatrix&&this.addFragmentParsCode("uniform mat4 viewMatrix;"),this.requires.projectionMatrix&&this.addFragmentParsCode("uniform mat4 projectionMatrix;"),this.requires.worldNormal&&(this.addVaryCode("varying vec3 vWNormal;"),this.addVertexFinalCode("vWNormal = inverseTransformDirection( transformedNormal, viewMatrix ).xyz;")),this.requires.vWorldViewDir&&(this.addVaryCode("varying vec3 vWorldViewDir;"),this.addVertexFinalCode("vWorldViewDir = isPerspectiveMatrix( projectionMatrix ) ? ( (modelMatrix * vec4(position, 1.0)).xyz - cameraPosition ) : vec3( -viewMatrix[0][2], -viewMatrix[1][2], -viewMatrix[2][2] );")),this}buildShader(e,A){this.resultCode[e]=A.build(this.setShader(e),"v4")}setMaterial(e,A){return this.material=e,this.renderer=A,this.defines={},this}addFlow(e,A,t){return this.addSlot(e).addCache(A).addContext(t)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(e){return this.cache=e??"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(e){return this.context=Object.assign({},this.context,e),this.context.extra=this.context.extra||{},this.contexts.push(this.context),this}removeContext(){return this.contexts.pop(),this.context=this.contexts[this.contexts.length-1]||{},this}addSlot(e){return this.slot=e||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(e,A){this.fragmentVariables[e]===void 0&&(this.addFragmentCode(`${A} ${e};`),this.fragmentVariables[e]="")}addFragmentParsVariable(e,A){this.fragmentParsVariables[e]===void 0&&(this.addFragmentParsCode(`${A} ${e};`),this.fragmentParsVariables[e]="")}addVertexParsVariable(e,A){this.vertexParsVariables[e]===void 0&&(this.addVertexParsCode(`${A} ${e};`),this.vertexParsVariables[e]="")}addVertexCode(e){this.addCode(e,"vertex")}addFragmentCode(e){this.addCode(e,"fragment")}addCode(e,A){this.code[A??this.shader]+=e+`
|
|
125
|
+
`}addVertexNodeCode(e){this.addNodeCode(e,"vertex")}addFragmentNodeCode(e){this.addNodeCode(e,"fragment")}addNodeCode(e,A){this.nodeCode[A??this.shader]+=e+`
|
|
126
|
+
`}clearNodeCode(e){e=e??this.shader;let A=this.nodeCode[e];return this.nodeCode[e]="",A}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(e){this.addFinalCode(e,"vertex")}addFragmentFinalCode(e){this.addFinalCode(e,"fragment")}addFinalCode(e,A){this.finalCode[A??this.shader]+=e+`
|
|
127
|
+
`}addVertexParsCode(e){this.addParsCode(e,"vertex")}addFragmentParsCode(e){this.addParsCode(e,"fragment")}addParsCode(e,A){this.parsCode[A??this.shader]+=e+`
|
|
128
|
+
`}addVaryCode(e){this.addVertexParsCode(e),this.addFragmentParsCode(e)}isCache(e){return this.caches.indexOf(e)!==-1}isSlot(e){return this.slots.indexOf(e)!==-1}define(e,A){this.defines[e]=A===void 0?1:A}require(e){this.requires[e]=!0}isDefined(e){return this.defines[e]!==void 0}getVar(e,A,t,r="varying",n="V",i=""){let a=this.getVars(r),l=a[e];if(!l){let u=a.length;l={name:t||"node"+n+u+(i?"_"+i:""),type:A},a.push(l),a[e]=l}return l}getTempVar(e,A,t,r){return this.getVar(e,A,t,this.shader,"T",r)}getAttribute(e,A){if(!this.attributes[e]){let t=this.getVar(e,A);this.addVertexParsCode("attribute "+A+" "+e+";"),this.addVertexFinalCode(t.name+" = "+e+";"),this.attributes[e]={varying:t,name:e,type:A}}return this.attributes[e]}getCode(e){return[this.prefixCode,this.parsCode[e],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[e],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[e],"uniform"),this.getIncludesCode("consts",e),this.getIncludesCode("structs",e),this.getIncludesCode("functions",e),"void main() {",this.getVarListCode(this.getVars(e)),this.code[e],this.resultCode[e],this.finalCode[e],"}"].join(`
|
|
129
|
+
`)}getVarListCode(e,A){A=A??"";let t="";for(let r=0,n=e.length;r<n;++r){let i=e[r],a=i.type,l=i.name,u=i.size,s=this.getFormatByType(a);if(s===void 0)throw new Error("Node pars "+s+" not found.");s.includes("[]")?t+=A+" "+s.substring(0,s.length-2)+" "+l+`[${u}];
|
|
130
|
+
`:t+=A+" "+s+" "+l+`;
|
|
131
|
+
`}return t}getVars(e){return this.inputs.vars[e??this.shader]}getNodeData(e){let A=e instanceof le?e.uuid:e;return this.nodeData[A]=this.nodeData[A]||{}}createUniform(e,A,t,r,n,i){if(A.includes("[]")){let a=this.inputs.arrayUniforms,l=a.list.length,u=new Zn({type:A,size:t.size,name:r||"nodeUA"+l+(i?"_"+i:""),node:t,needsUpdate:n});return a.list.push(u),a[e].push(u),a[e][u.name]=u,this.uniforms[u.name]=u,u}else{let a=this.inputs.uniforms,l=a.list.length,u=new Zn({type:A,name:r||"nodeU"+l+(i?"_"+i:""),node:t,needsUpdate:n});return a.list.push(u),a[e].push(u),a[e][u.name]=u,this.uniforms[u.name]=u,u}}createVertexUniform(e,A,t,r,n){return this.createUniform("vertex",e,A,t,r,n)}createFragmentUniform(e,A,t,r,n){return this.createUniform("fragment",e,A,t,r,n)}include(e,A,t){let r;if(e=typeof e=="string"?te.get(e):e,this.context.include===!1)return e.name;e instanceof K?r=this.includes.functions:e instanceof SA?r=this.includes.consts:e instanceof Jo&&(r=this.includes.structs);let n=r[this.shader]=r[this.shader]||[];if(e){let i=n[e.name];if(i||(i=n[e.name]={node:e,deps:[]},n.push(i),i.src=e.build(this,"source")),e instanceof K&&A&&n[A.name]&&n[A.name].deps.indexOf(e)===-1&&(n[A.name].deps.push(e),e.includes?.length)){let a=0;do this.include(e.includes[a++],A);while(a<e.includes.length)}return t&&(i.src=t),e.name}else throw new Error("Include not found.")}colorToVectorProperties(e){return e.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(e){return e.replace(/c/g,"v3")}getIncludes(e,A){return this.includes[e][A||this.shader]}getConstructorFromLength(e){return sw[e-1]}isTypeMatrix(e){return/^m/.test(e)}getTypeLength(e){return e==="f"?1:parseInt(this.colorToVector(e).substr(1))}getTypeFromLength(e){return e===1?"f":"v"+e}findNode(...e){for(let A=0;A<arguments.length;A++){let t=e[A];if(t?.isNode)return t}}resolve(...e){for(let A=0;A<arguments.length;A++){let t=e[A];if(t!==void 0){if(t.isNode)return t;if(t.isTexture)switch(t.mapping){case at.CubeReflectionMapping:case at.CubeRefractionMapping:return new sa(t);case at.CubeUVReflectionMapping:return new ia(new De(t));default:return new De(t)}else{if(t.isVector2)return new ce(t);if(t.isVector3)return new me(t);if(t.isVector4)return new At(t)}}}}format(e,A,t){switch(this.colorToVector(t+" <- "+A)){case"f <- v2":return e+".x";case"f <- v3":return e+".x";case"f <- v4":return e+".x";case"f <- i":case"f <- b":return"float( "+e+" )";case"v2 <- f":return"vec2( "+e+" )";case"v2 <- v3":return e+".xy";case"v2 <- v4":return e+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+e+" ) )";case"v3 <- f":return"vec3( "+e+" )";case"v3 <- v2":return"vec3( "+e+", 0.0 )";case"v3 <- v4":return e+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+e+" ) )";case"v4 <- f":return"vec4( "+e+" )";case"v4 <- v2":return"vec4( "+e+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+e+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+e+" ) )";case"i <- f":case"i <- b":return"int( "+e+" )";case"i <- v2":return"int( "+e+".x )";case"i <- v3":return"int( "+e+".x )";case"i <- v4":return"int( "+e+".x )";case"b <- f":return"( "+e+" != 0.0 )";case"b <- v2":return"( "+e+" != vec2( 0.0 ) )";case"b <- v3":return"( "+e+" != vec3( 0.0 ) )";case"b <- v4":return"( "+e+" != vec4( 0.0 ) )";case"b <- i":return"( "+e+" != 0 )"}return e}getTypeByFormat(e){return aw[e]||e}getFormatByType(e){return lw[e]||e}getUUID(e,A){return A=A!==void 0?A:!0,A&&this.cache&&(e=this.cache+"-"+e),e}getElementByIndex(e){return dm[e]}getIndexByElement(e){return dm.indexOf(e)}isShader(e){return this.shader===e}setShader(e){return this.shader=e,this}mergeDefines(e){for(let A in e)this.defines[A]=e[A];return this.defines}mergeUniform(e){for(let A in e)this.uniforms[A]=e[A];return this.uniforms}getTextureEncodingFromMap(e){let A;return e?e.isTexture&&(A=e.encoding):A=at.LinearEncoding,A===at.LinearEncoding&&this.context.gamma&&(A=at.sRGBEncoding),A}};var FA=require("three");var OA=class extends GA{constructor(A=0,t,r,n){super("c");this.nodeType="Color";this.value=A instanceof re?A:new re(A||0,t,r,n)}setRGBA(A){this.value.setRGBA(A.r,A.g,A.b,A.a)}generate(A,t,r,n,i,a){r=A.getUUID(r??this.getUUID()),n=n??this.getType(A);let l=A.getNodeData(r),u=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let s=this.alpha.build(A,"f");A.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${s};`)}return u?this.generateReadonly(A,t,r,n,i,a):A.isShader("vertex")?(l.vertex||(l.vertex=A.createVertexUniform(n,this,i,a,this.getLabel())),A.format(l.vertex.name,n,t)):(l.fragment||(l.fragment=A.createFragmentUniform(n,this,i,a,this.getLabel())),A.format(l.fragment.name,n,t))}generateReadonly(A,t,r,n,i,a){return A.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",n,t)}};var vA=class extends GA{constructor(A){super("i");this.nodeType="Int";this.value=Math.floor(A??0)}generateReadonly(A,t,r,n,i,a){return A.format(this.value.toString(),n,t)}};var la=require("three");var qr=class extends le{constructor(){super("basic");this.nodeType="Basic";this.color=new OA(5855577),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}generate(A){let t;if(A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(la.UniformsUtils.merge([la.UniformsLib.fog])),A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
|
|
132
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
133
133
|
#if !defined( USE_LAYER_DISPLACE )
|
|
134
134
|
#include <defaultnormal_vertex>
|
|
135
135
|
#endif
|
|
@@ -145,10 +145,10 @@
|
|
|
145
145
|
#if !defined( USE_LAYER_DISPLACE )
|
|
146
146
|
#include <begin_vertex>
|
|
147
147
|
#endif /* !USE_LAYER_DISPLACE */
|
|
148
|
-
`];
|
|
149
|
-
`)}else{this.color===void 0&&(this.color=new
|
|
150
|
-
`));let
|
|
151
|
-
`)}return
|
|
148
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
149
|
+
`)}else{this.color===void 0&&(this.color=new OA(5855577)),this.color.analyze(A,{slot:"color"}),this.alpha&&this.alpha.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"});let r=this.color.flow(A,"c",{slot:"color"}),n=this.alpha?this.alpha.flow(A,"f"):void 0,i=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0;A.requires.transparent=n!==void 0,A.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
|
|
150
|
+
`));let a=["#include <normal_fragment_begin>",r.code];n&&a.push(n.code,"#ifdef ALPHATEST"," if ( "+n.result+" <= ALPHATEST ) discard;","#endif"),i?a.push(i.code,`vec3 outgoingLight = ${r.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${i.result}, 1.0, SPE_BLENDING_NORMAL);`):a.push(`vec3 finalColor = ${r.result};`),n?a.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${n.result} );`):a.push("gl_FragColor = vec4("+r.result+", 1.0 );"),a.push("#include <fog_fragment>","#include <dithering_fragment>"),t=a.join(`
|
|
151
|
+
`)}return t}};var di=require("three");var Sr=class extends GA{constructor(A){super("b");this.nodeType="Bool";this.value=A??!1}generateReadonly(A,t,r,n){return A.format(this.value?"true":"false",n,t)}};var pm=require("three");var en=class extends GA{constructor(A){super("m3");this.nodeType="Matrix3";this.value=A??new pm.Matrix3}generateReadonly(A,t,r,n,i,a){return A.format("mat3("+this.value.elements.join(", ")+")",n,t)}get elements(){return this.value.elements}set elements(A){this.value.fromArray(A)}};var lt=class extends GA{constructor(A=1,t){super("f[]");this.nodeType="FloatArray";this.size=A,this.value=Array.isArray(t)?t:typeof t=="number"?new Array(A).fill(t):new Array(A).fill(0)}};var Hl=require("three");var ct=class extends GA{constructor(A=1,t){super("v4[]");this.nodeType="Vector4Array";this.size=A,this.value=Array.isArray(t)?t:t instanceof Hl.Vector4?new Array(A).fill(t):new Array(A).fill(new Hl.Vector4(0))}};var _n=(n=>(n.SIMPLEX="simplex3d",n.SIMPLEX_FRACTAL="simplex3dFractal",n.ASHIMA="simplexAshima",n.FBM="fbm",n.PERLIN="perlin",n))(_n||{}),xe=function(){let e=new K(`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);
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
j *= .125;
|
|
158
158
|
r.y = fract(512.0*j);
|
|
159
159
|
return r-0.5;
|
|
160
|
-
}`),
|
|
160
|
+
}`),A=new K(`float simplex3d(vec3 p) {
|
|
161
161
|
vec3 s = floor(p + dot(p, vec3(F3)));
|
|
162
162
|
vec3 x = p - s + dot(s, vec3(G3));
|
|
163
163
|
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
d *= w;
|
|
189
189
|
|
|
190
190
|
return dot(d, vec4(52.0));
|
|
191
|
-
}`,[
|
|
191
|
+
}`,[e]);A.keywords.F3=new SA("float F3 0.3333333"),A.keywords.G3=new SA("float G3 0.1666667");let t=new K(`float simplex3dFractal(vec3 m) {
|
|
192
192
|
mat3 rot1 = mat3(-0.37, 0.36, 0.85,-0.14,-0.93, 0.34,0.92, 0.01,0.4);
|
|
193
193
|
mat3 rot2 = mat3(-0.55,-0.39, 0.74, 0.33,-0.91,-0.24,0.77, 0.12,0.63);
|
|
194
194
|
mat3 rot3 = mat3(-0.71, 0.52,-0.47,-0.08,-0.72,-0.68,-0.7,-0.45,0.56);
|
|
@@ -196,7 +196,7 @@
|
|
|
196
196
|
+ 0.2666667 * simplex3d(2.0 * m * rot2)
|
|
197
197
|
+ 0.1333333 * simplex3d(4.0 * m * rot3)
|
|
198
198
|
+ 0.0666667 * simplex3d(8.0 * m);
|
|
199
|
-
}`,[
|
|
199
|
+
}`,[A]),r=new K("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),n=new K("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),i=new K(`float simplexAshima(vec3 v) {
|
|
200
200
|
const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;
|
|
201
201
|
const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
|
|
202
202
|
vec3 i = floor(v + dot(v, C.yyy) );
|
|
@@ -241,7 +241,7 @@
|
|
|
241
241
|
m = m * m;
|
|
242
242
|
return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),
|
|
243
243
|
dot(p2,x2), dot(p3,x3) ) );
|
|
244
|
-
}`,[
|
|
244
|
+
}`,[r,n]),a=new K("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),l=new K("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[a]),u=new K(`float noise(vec3 p){
|
|
245
245
|
vec3 a = floor(p);
|
|
246
246
|
vec3 d = p - a;
|
|
247
247
|
d = d * d * (3.0 - 2.0 * d);
|
|
@@ -256,7 +256,7 @@
|
|
|
256
256
|
vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
|
|
257
257
|
vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
|
|
258
258
|
return o4.y * d.y + o4.x * (1.0 - d.y);
|
|
259
|
-
}`,[
|
|
259
|
+
}`,[l]),s=new K(`float fbm(vec3 x) {
|
|
260
260
|
float v = 0.0;
|
|
261
261
|
float a = 0.5;
|
|
262
262
|
vec3 shift = vec3(100);
|
|
@@ -266,7 +266,7 @@
|
|
|
266
266
|
a *= 0.5;
|
|
267
267
|
}
|
|
268
268
|
return v;
|
|
269
|
-
}`,[
|
|
269
|
+
}`,[u]);s.keywords.NUM_OCTAVES=new SA(`int NUM_OCTAVES ${5}`);let c=new K("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),d=new K(`float perlin(vec3 P){
|
|
270
270
|
vec3 Pi0 = floor(P);
|
|
271
271
|
vec3 Pi1 = Pi0 + vec3(1.0);
|
|
272
272
|
Pi0 = mod(Pi0, 289.0);
|
|
@@ -325,16 +325,16 @@
|
|
|
325
325
|
vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
|
|
326
326
|
float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
|
|
327
327
|
return 2.2 * n_xyz;
|
|
328
|
-
}`,[
|
|
328
|
+
}`,[r,n,c]);return{simplex:A,simplexFractal:t,simplexAshima:i,fbm:s,perlin:d}}();var $n=class extends lA{constructor(A,t,r,n,i,a,l,u,s,c,d,p){super("v3");this.nodeType="Noise";this.scale=A,this.size=t,this.move=r,this.fA=n,this.fB=i,this.distortion=a,this.colorA=l,this.colorB=u,this.colorC=s,this.colorD=c,this.alpha=d,this.noiseType=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t,r,n,i){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let a=Object.values(_n)[this.noiseType.value],l=new K(`vec3 ${a}customNoise(float scale, vec3 size, float move, vec2 fA, vec2 fB, vec2 distortion, vec4 colorA, vec4 colorB, vec4 colorC, vec4 colorD, float alpha, out float calpha) {
|
|
329
329
|
vec3 st = position / size;
|
|
330
330
|
st /= scale;
|
|
331
|
-
vec3 q = vec3(${
|
|
332
|
-
${
|
|
333
|
-
${
|
|
334
|
-
vec3 r = vec3(${
|
|
335
|
-
${
|
|
336
|
-
${
|
|
337
|
-
float f = ${
|
|
331
|
+
vec3 q = vec3(${a}(st),
|
|
332
|
+
${a}(st + vec3(1.0)),
|
|
333
|
+
${a}(st + vec3(1.0)));
|
|
334
|
+
vec3 r = vec3(${a}(st + vec3(distortion, 1.0) * q + vec3(fA, 1.0) + move),
|
|
335
|
+
${a}(st + vec3(distortion, 1.0) * q + vec3(fB, 1.0) + move),
|
|
336
|
+
${a}(st * q));
|
|
337
|
+
float f = ${a}(st + r);
|
|
338
338
|
vec4 color;
|
|
339
339
|
color = mix(colorA, colorB, clamp((f * f) * 4.0, 0.0, 1.0));
|
|
340
340
|
color = mix(color, colorC, clamp(length(q), 0.0, 1.0));
|
|
@@ -345,8 +345,8 @@
|
|
|
345
345
|
|
|
346
346
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
347
347
|
return clamp(color, 0.0, 1.0).rgb;
|
|
348
|
-
}`,[
|
|
349
|
-
`));let
|
|
348
|
+
}`,[xe.simplex,xe.simplexFractal,xe.simplexAshima,xe.fbm,xe.perlin]),u=A.include(l),s=[];return s.push(this.scale.build(A,"f")),s.push(this.size.build(A,"v3")),s.push(this.move.build(A,"f")),s.push(this.fA.build(A,"v2")),s.push(this.fB.build(A,"v2")),s.push(this.distortion.build(A,"v2")),s.push(this.colorA.build(A,"v4")),s.push(this.colorB.build(A,"v4")),s.push(this.colorC.build(A,"v4")),s.push(this.colorD.build(A,"v4")),s.push(this.alpha.build(A,"f")),s.push(this.calpha),A.format(u+"("+s.join(",")+")",this.getType(A),t)}};$n.numOctaves=5;var Ai=require("three");var ca=class extends le{constructor(){super("phong");this.nodeType="Phong";this.color=new OA(5855577),this.specular=new OA(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}build(A){let t;if(A.define("PHONG"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(Ai.UniformsUtils.merge([Ai.UniformsLib.fog,Ai.UniformsLib.lights])),A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
349
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
350
350
|
#ifndef USE_LAYER_DISPLACE
|
|
351
351
|
#include <defaultnormal_vertex>
|
|
352
352
|
#endif
|
|
@@ -363,9 +363,9 @@
|
|
|
363
363
|
#ifndef USE_LAYER_DISPLACE
|
|
364
364
|
#include <begin_vertex>
|
|
365
365
|
#endif
|
|
366
|
-
`];
|
|
367
|
-
`)}else{
|
|
368
|
-
`));let
|
|
366
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
367
|
+
`)}else{A.mergeUniform({penumbraSize:he.penumbraSize}),this.color===void 0&&(this.color=new OA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
|
|
368
|
+
`));let c=["#include <normal_fragment_begin>",`
|
|
369
369
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
370
370
|
vec3 viewdx = dFdx(vViewPosition);
|
|
371
371
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -373,21 +373,21 @@
|
|
|
373
373
|
if (dot(normal, faceNormal) < 0.0) {
|
|
374
374
|
normal *= -1.0;
|
|
375
375
|
}
|
|
376
|
-
`," BlinnPhongMaterial material;"];
|
|
376
|
+
`," BlinnPhongMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),c.push(`
|
|
377
377
|
if (outgoingLight != diffuseColor) {
|
|
378
378
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
379
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
380
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
379
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
380
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
381
381
|
}
|
|
382
|
-
`),
|
|
383
|
-
`)}return
|
|
382
|
+
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
383
|
+
`)}return t}};var Wl=class extends lA{constructor(A,t,r,n,i,a,l){super("v3");this.nodeType="Fresnel";this.color=A,this.bias=t,this.scale=r,this.intensity=n,this.factor=i,this.alpha=a,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include(Wl.Nodes.fresnel),n=[];return n.push(this.color.build(A,"c")),n.push(this.bias.build(A,"f")),n.push(this.scale.build(A,"f")),n.push(this.intensity.build(A,"f")),n.push(this.factor.build(A,"f")),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("FresnelNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},ei=Wl;ei.Nodes=function(){return{fresnel:new K(`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 ql=class extends lA{constructor(A,t,r,n,i,a,l){super("v3");this.nodeType="Rainbow";this.filmThickness=A,this.movement=t,this.wavelengths=r,this.noiseStrength=n,this.noiseScale=i,this.offset=a,this.alpha=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(ql.Nodes.rainbow),n=[];return n.push(this.filmThickness.build(A,"f")),n.push(this.movement.build(A,"f")),n.push(this.wavelengths.build(A,"v3")),n.push(this.noiseStrength.build(A,"f")),n.push(this.noiseScale.build(A,"f")),n.push(this.offset.build(A,"v3")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("RainbowNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},ti=ql;ti.Nodes=function(){let A=new K(`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)),
|
|
@@ -400,7 +400,7 @@
|
|
|
400
400
|
float noise = simplex3d(st + r);
|
|
401
401
|
|
|
402
402
|
return .5 + .5 * cos((((filmThickness + (noise * noiseStrength)) / (vec3(wavelengths.r * 1.0, wavelengths.g * 0.8, wavelengths.b * 0.6) + 1.0)) * dot(normalize(vWorldViewDir + (offset * -0.001)), normalize(vWNormal))) + movement);
|
|
403
|
-
}`,[
|
|
403
|
+
}`,[xe.simplex]);return{rainbow:new K(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
|
|
404
404
|
vec3 res = clamp(attenuation(wavelengths, filmThickness, movement, noiseStrength, noiseScale, offset), 0.0, 2.0);
|
|
405
405
|
|
|
406
406
|
float rainbowContribution = clamp(res.r + res.g + res.b, 0.0, 1.0);
|
|
@@ -409,21 +409,21 @@
|
|
|
409
409
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
410
410
|
|
|
411
411
|
return res;
|
|
412
|
-
}`,[
|
|
412
|
+
}`,[A])}}();var Ql=class extends lA{constructor(A,t,r,n,i,a,l,u,s,c,d,p,f,m,h,x){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=A,this.contourColor=t,this.outlineWidth=r,this.contourWidth=n,this.contourThreshold=i,this.outlineThreshold=a,this.contourFrequency=l,this.outlineSmoothing=u,this.contourDirection=s,this.positionalLines=c,this.compensation=d,this.resolution=p,this.normalMap=f,this.depthMap=m,this.pixelRatio=h,this.alpha=x,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.extensions.derivatives=!0,this.firstTime){let r=this.outlineWidth.build(A,"f"),n=this.resolution.build(A,"v2"),i=this.compensation.build(A,"b"),a=this.pixelRatio.build(A,"f");A.addVertexParsVariable("randomColor","attribute vec3"),A.addVertexParsVariable("extrudeNormal","attribute vec3"),A.addVertexParsVariable(r,"uniform float"),A.addVertexParsVariable(n,"uniform vec2"),A.addVertexParsVariable(i,"uniform bool"),A.addVertexParsVariable(a,"uniform float"),A.addVertexParsVariable("vID","flat out float"),A.addFragmentParsVariable("vID","flat in float");let l=`g${this.uuid.toString().replace(/-/g,"")}`;A.addVertexFinalCode(`
|
|
413
413
|
vID = randomColor.r;
|
|
414
|
-
if (${
|
|
415
|
-
vec4 ${
|
|
414
|
+
if (${i}) {
|
|
415
|
+
vec4 ${l}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
|
|
416
416
|
// NOTE: For certain shapes, like spheres, we get incorrect extrusion when the
|
|
417
417
|
// normals face the camera directly. So we hackily fix this by offsetting the normal
|
|
418
418
|
// by a tiny amount.
|
|
419
|
-
vec3 ${
|
|
420
|
-
vec2 ${
|
|
421
|
-
${
|
|
419
|
+
vec3 ${l}_clipNormal = mat3(projectionMatrix) * (mat3(modelViewMatrix) * extrudeNormal) + 0.0000001;
|
|
420
|
+
vec2 ${l}_offset = normalize(${l}_clipNormal.xy) / ${n} * (${r} / 2.0) * ${l}_clipPosition.w * 2.0 * ${a};
|
|
421
|
+
${l}_clipPosition.xy += ${l}_offset;
|
|
422
422
|
// TODO(MAX): To handle multiple outline layers, we only want to extrude
|
|
423
423
|
// if this offset is the biggest of all the potential offsets
|
|
424
|
-
gl_Position = ${
|
|
424
|
+
gl_Position = ${l}_clipPosition;
|
|
425
425
|
}
|
|
426
|
-
`)}if(
|
|
426
|
+
`)}if(A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(Ql.Nodes.outline),n=[];return n.push(this.outlineColor.build(A,"c")),n.push(this.contourColor.build(A,"c")),n.push(this.outlineWidth.build(A,"f")),n.push(this.contourWidth.build(A,"f")),n.push(this.contourThreshold.build(A,"f")),n.push(this.outlineThreshold.build(A,"f")),n.push(this.contourFrequency.build(A,"f")),n.push(this.outlineSmoothing.build(A,"f")),n.push(this.contourDirection.build(A,"v3")),n.push(this.positionalLines.build(A,"b")),n.push(this.resolution.build(A,"v2")),n.push(this.normalMap.getTexture(A,"t")),n.push(this.depthMap.getTexture(A,"t")),n.push(this.pixelRatio.build(A,"f")),n.push(this.compensation.build(A,"b")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),this.firstTime=!this.firstTime,A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("OutlineNode is not compatible with "+A.shader+" shader."),""}},ri=Ql;ri.Nodes=function(){let A=new K(`
|
|
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;
|
|
@@ -524,7 +524,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
524
524
|
float edgeNormal = sqrt(dot(sobel_edge_h, sobel_edge_h) + dot(sobel_edge_v, sobel_edge_v));
|
|
525
525
|
return edgeNormal;
|
|
526
526
|
}
|
|
527
|
-
`);return{outline:new
|
|
527
|
+
`);return{outline:new K(`vec3 outline(vec3 outlineColor, vec3 contourColor, float outlineWidth, float contourWidth, float outlineThreshold, float contourThreshold, float outlineSmoothing, float contourFrequency, vec3 contourDirection, bool positionalLines, vec2 resolution, sampler2D normalMap, sampler2D depthMap, float pixelRatio, bool compensation, float alpha, out float calpha) {
|
|
528
528
|
vec3 result = outlineColor;
|
|
529
529
|
float resultAlpha = 0.0;
|
|
530
530
|
|
|
@@ -563,11 +563,11 @@ 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
|
-
}`,[
|
|
566
|
+
}`,[A])}}();var Yl=class extends lA{constructor(A,t,r,n,i,a,l,u){super("v3");this.nodeType="Transmission";this.thickness=A,this.ior=t,this.roughness=r,this.transmissionSamplerSize=n,this.transmissionSamplerMap=i,this.transmissionDepthMap=a,this.aspectRatio=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.extensions.shaderTextureLOD=!0,A.extensions.derivatives=!0,A.isShader("fragment")){A.define("NUM_SAMPLES",30),A.require("worldPosition"),A.requires.worldNormal=!0,A.requires.modelMatrix=!0,A.requires.projectionMatrix=!0,A.addFragmentVariable(this.calpha,"float");let r=A.include(Yl.Nodes.transmission),n=[];return n.push(this.thickness.build(A,"f")),n.push(this.ior.build(A,"f")),n.push(this.roughness.build(A,"f")),n.push(this.transmissionSamplerSize.build(A,"v2")),n.push(this.transmissionSamplerMap.getTexture(A,"t")),n.push(this.transmissionDepthMap.getTexture(A,"t")),n.push(this.aspectRatio.build(A,"v2")),n.push("normal"),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("TransmissionNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},oi=Yl;oi.Nodes=function(){let A=new K(`
|
|
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 );
|
|
570
|
-
}`),
|
|
570
|
+
}`),t=new K(`
|
|
571
571
|
vec3 blur(sampler2D sp, vec2 U, vec2 scale, float lod, sampler2D dm, vec2 unrefractedU, vec2 aspectRatio) {
|
|
572
572
|
// Slightly modified version of this:
|
|
573
573
|
// https://www.shadertoy.com/view/ltScRG
|
|
@@ -597,7 +597,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
597
597
|
a += gaussian;
|
|
598
598
|
}
|
|
599
599
|
return O / a;
|
|
600
|
-
}`,[
|
|
600
|
+
}`,[A]),r=new K(`
|
|
601
601
|
vec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {
|
|
602
602
|
// Direction of refracted light.
|
|
603
603
|
vec3 refractionVector = refract( -v, n, 1.0 / ior );
|
|
@@ -608,18 +608,18 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
608
608
|
modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
|
|
609
609
|
// The thickness is specified in local space.
|
|
610
610
|
return normalize( refractionVector ) * thickness * modelScale;
|
|
611
|
-
}`),
|
|
611
|
+
}`),n=new K(`
|
|
612
612
|
float applyIorToRoughness( float roughness, float ior ) {
|
|
613
613
|
// Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and
|
|
614
614
|
// an IOR of 1.5 results in the default amount of microfacet refraction.
|
|
615
615
|
return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
|
|
616
|
-
} `),
|
|
616
|
+
} `),i=new K(`
|
|
617
617
|
vec3 getTransmissionSample( vec2 fragCoord, float roughness, float ior, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 unrefractedCoords, vec2 aspectRatio) {
|
|
618
618
|
float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
|
|
619
619
|
float lod = applyIorToRoughness(roughness, ior);
|
|
620
620
|
|
|
621
621
|
return blur(transmissionSamplerMap, fragCoord, vec2(lod / (transmissionSamplerSize.x / 2.)), min(framebufferLod / 5.5, 8.5), transmissionDepthMap, unrefractedCoords, aspectRatio);
|
|
622
|
-
}`,[
|
|
622
|
+
}`,[n,t]),a=new K(`
|
|
623
623
|
vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio ) {
|
|
624
624
|
vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
|
|
625
625
|
vec3 refractedRayExit = position + transmissionRay;
|
|
@@ -637,7 +637,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
637
637
|
|
|
638
638
|
// Sample framebuffer to get pixel the refracted ray hits.
|
|
639
639
|
return getTransmissionSample( refractionCoords, roughness, ior, transmissionSamplerSize, transmissionSamplerMap, transmissionDepthMap, unrefractedCoords, aspectRatio );
|
|
640
|
-
}`,[
|
|
640
|
+
}`,[i,r]);return{transmission:new K(`
|
|
641
641
|
vec3 transmission(float thickness, float ior, float roughness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio, vec3 normal, float alpha, out float calpha) {
|
|
642
642
|
vec3 v = vec3(0.);
|
|
643
643
|
if (isOrthographic) {
|
|
@@ -651,17 +651,17 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
651
651
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
652
652
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
653
653
|
return transmission;
|
|
654
|
-
}`,[
|
|
654
|
+
}`,[a])}}();var tn=class extends lA{constructor(A,t,r,n,i,a,l,u,s,c,d){super("v3");this.nodeType="Depth";this.gradientType=A,this.smooth=t,this.near=r,this.far=n,this.isVector=i,this.isWorldSpace=a,this.origin=l,this.direction=u,this.colors=s,this.steps=c,this.alpha=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){let r=`g${this.uuid.toString().replace(/-/g,"")}`,n=new K(`vec3 ${r}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${r}_MAX_COLORS], float steps[${r}_MAX_COLORS], float alpha, out float calpha) {
|
|
655
655
|
vec4 color = colors[0];
|
|
656
|
-
#ifdef ${
|
|
657
|
-
#ifdef ${
|
|
658
|
-
#ifdef ${
|
|
656
|
+
#ifdef ${r}_IS_VECTOR
|
|
657
|
+
#ifdef ${r}_LINEAR
|
|
658
|
+
#ifdef ${r}_WORLDSPACE
|
|
659
659
|
float depth = vectorLinearWorldSpaceDepth(direction, origin, near, far);
|
|
660
660
|
#else
|
|
661
661
|
float depth = vectorLinearObjectSpaceDepth(direction, origin, near, far);
|
|
662
662
|
#endif
|
|
663
663
|
#else
|
|
664
|
-
#ifdef ${
|
|
664
|
+
#ifdef ${r}_WORLDSPACE
|
|
665
665
|
float depth = vectorSphericalWorldSpaceDepth(origin, near, far);
|
|
666
666
|
#else
|
|
667
667
|
float depth = vectorSphericalObjectSpaceDepth(origin, near, far);
|
|
@@ -674,13 +674,13 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
674
674
|
|
|
675
675
|
|
|
676
676
|
float p;
|
|
677
|
-
#ifdef ${
|
|
678
|
-
for ( int i = 1; i < ${
|
|
677
|
+
#ifdef ${r}_SMOOTH
|
|
678
|
+
for ( int i = 1; i < ${r}_MAX_COLORS; i++ ) {
|
|
679
679
|
p = clamp( ( depth - steps[i-1] ) / ( steps[i] - steps[i-1] ), 0.0, 1.0 );
|
|
680
680
|
color = mix(color, colors[i], smoothstep(0.0, 1.0, p));
|
|
681
681
|
}
|
|
682
682
|
#else
|
|
683
|
-
for ( int i = 1; i < ${
|
|
683
|
+
for ( int i = 1; i < ${r}_MAX_COLORS; i++ ) {
|
|
684
684
|
p = clamp(( depth - steps[i - 1] ) / ( steps[i] - steps[i - 1] ), 0.0, 1.0);
|
|
685
685
|
color = mix(color, colors[i], p);
|
|
686
686
|
}
|
|
@@ -691,25 +691,25 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
691
691
|
|
|
692
692
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
693
693
|
return color.rgb;
|
|
694
|
-
}`,[
|
|
694
|
+
}`,[tn.Nodes.vectorLinearWorldSpaceDepth,tn.Nodes.vectorLinearObjectSpaceDepth,tn.Nodes.vectorSphericalObjectSpaceDepth,tn.Nodes.vectorSphericalWorldSpaceDepth]);if(A.isShader("fragment")){A.define(`${r}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&A.define(`${r}_SMOOTH`),this.isVector.value>.5&&A.define(`${r}_IS_VECTOR`),this.gradientType.value===0&&A.define(`${r}_LINEAR`),this.isWorldSpace.value>.5&&A.define(`${r}_WORLDSPACE`),A.require("worldPosition"),A.addFragmentVariable(this.calpha,"float");let i=A.include(n),a=[];return a.push(this.near.build(A,"f")),a.push(this.far.build(A,"f")),a.push(this.origin.build(A,"v3")),a.push(this.direction.build(A,"v3")),a.push(this.colors.build(A,"v4[]")),a.push(this.steps.build(A,"f[]")),a.push(this.alpha.build(A,"f")),a.push(this.calpha),A.format(i+"("+a.join(",")+")",this.getType(A),t)}else return console.warn("DepthNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},ni=tn;ni.Nodes=function(){let A=new K(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
|
|
695
695
|
vec3 n = normalize(direction);
|
|
696
696
|
float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
|
|
697
697
|
return ( dist - near ) / ( far - near );
|
|
698
|
-
}`),
|
|
698
|
+
}`),t=new K(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
|
|
699
699
|
vec3 n = normalize(direction);
|
|
700
700
|
float dist = (n.x*(position.x - origin.x) + n.y*(position.y - origin.y) + n.z*(position.z - origin.z));
|
|
701
701
|
return ( dist - near ) / ( far - near );
|
|
702
|
-
}`),
|
|
702
|
+
}`),r=new K(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
|
|
703
703
|
float dist = length(vWPosition - origin);
|
|
704
704
|
return ( dist - near ) / ( far - near );
|
|
705
|
-
}`),
|
|
705
|
+
}`),n=new K(`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:
|
|
708
|
+
}`);return{vectorLinearWorldSpaceDepth:A,vectorLinearObjectSpaceDepth:t,vectorSphericalWorldSpaceDepth:r,vectorSphericalObjectSpaceDepth:n}}();var ii=class extends lA{constructor(A,t,r,n){super("v3");this.nodeType="Blend";this.a=A,this.b=t,this.alpha=r,this.mode=n}generate(A,t){if(A.isShader("fragment")){let r=[];return r.push(this.a.build(A,"c")),r.push(this.b.build(A,"c")),r.push(this.alpha.build(A,"f")),r.push(this.mode.build(A,"i")),A.format("spe_blend("+r.join(",")+")",this.getType(A),t)}else return console.warn("BlendNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}};var Xl=(A=>(A.NOISE="noise",A.MAP="map",A))(Xl||{}),Kl=class extends lA{constructor(A,t,r,n,i){super("v3");this.displacementTypeIndex=new vA(0);this.nodeType="VertexDisplacement";this.intensity=A,this.movementOrTexture=t,Object.values(Xl)[this.displacementTypeIndex.value]==="map"&&(this.mat=new en(this.movementOrTexture.value.matrix)),this.cropOrOffset=r,this.scale=n,this.noiseFunctionIndex=i}generate(A,t){if(A.isShader("vertex")){A.define("USE_LAYER_DISPLACE");let r,n=[];switch(n.push("displaced_position"),n.push("displaced_normal"),Object.values(Xl)[this.displacementTypeIndex.value]){case"map":{r=A.include(Kl.Nodes.map),n.push(this.movementOrTexture.getTexture(A,"t")),n.push("uv"),n.push(this.cropOrOffset.build(A,"f")),this.mat&&n.push(this.mat.build(A,"mat3"));break}case"noise":{let a=Object.values(_n)[this.noiseFunctionIndex.value],l=new K(`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
|
-
}`),
|
|
711
|
-
return p + n * ${
|
|
712
|
-
}`,[
|
|
710
|
+
}`),u=new K(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
|
|
711
|
+
return p + n * ${a}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
|
|
712
|
+
}`,[xe.simplex,xe.simplexFractal,xe.simplexAshima,xe.fbm,xe.perlin]),s=new K(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
|
|
713
713
|
vec3 displaced_position = distorted(position, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
714
714
|
vec3 tangent1 = orthogonal(normal);
|
|
715
715
|
vec3 tangent2 = normalize(cross(normal, tangent1));
|
|
@@ -725,9 +725,9 @@ 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
|
-
}`,[
|
|
728
|
+
}`,[u,l]);r=A.include(s),n.push(this.scale.build(A,"f")),n.push(this.cropOrOffset.build(A,"v3")),n.push(this.movementOrTexture.build(A,"f"));break}}return n.push(this.intensity.build(A,"f")),n.push("displaced_normal"),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("VertexDisplacementNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},si=Kl;si.Nodes=function(){let A=new K(`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
|
+
}`),t=new K(`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;
|
|
732
732
|
vec4 tmp = texture2D(tex, uvs);
|
|
733
733
|
vec3 col = tmp.rgb;
|
|
@@ -737,7 +737,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
737
737
|
}
|
|
738
738
|
}
|
|
739
739
|
return col.r;
|
|
740
|
-
}`);return{map:new
|
|
740
|
+
}`);return{map:new K(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
|
|
741
741
|
vec3 displaced_position = position + normal * displacementMapTexture(tex, crop, uv, mat, vec2(0.0)) * intensity;
|
|
742
742
|
vec3 tangent1 = normalize(orthogonal(normal));
|
|
743
743
|
vec3 tangent2 = normalize(cross(normal, tangent1));
|
|
@@ -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
|
-
}`,[
|
|
750
|
+
}`,[A,t])}}();var Zl=class extends lA{constructor(A,t,r,n,i,a,l,u){super("v3");this.nodeType="Gradient";this.gradientType=A,this.smooth=t,this.colors=r,this.steps=n,this.offset=i,this.morph=a,this.angle=l,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.isShader("fragment")){A.define("GRAD_MAX",10),A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(Zl.Nodes.gradient),n=[];return n.push(this.gradientType.build(A,"i")),n.push(this.smooth.build(A,"b")),n.push(this.colors.build(A,"v4[]")),n.push(this.steps.build(A,"f[]")),n.push(this.offset.build(A,"v2")),n.push(this.morph.build(A,"v2")),n.push(this.angle.build(A,"f")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("GradientNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},ai=Zl;ai.Nodes=function(){return{gradient:new K(`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 );
|
|
@@ -789,16 +789,16 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
789
789
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
790
790
|
|
|
791
791
|
return color.xyz;
|
|
792
|
-
}`)}}();var
|
|
793
|
-
vec3 ${
|
|
792
|
+
}`)}}();var ci=class extends lA{constructor(A,t,r,n,i,a,l,u,s,c){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=A,this.textureSize=t,this.crop=r,this.projection=n,this.axis=i,this.side=a,this.size=l,this.mat=u,this.alpha=s,this.mode=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){A.require("position"),A.require("normal"),A.require("uv"),A.requires.uv=[!0],A.extensions.shaderTextureLOD=!0,A.extensions.derivatives=!0;let r=`g${this.uuid.toString().replace(/-/g,"")}`,n;switch(this.projection.value){case 3:n=A.include(ci.Nodes.cylindrical);break;case 2:n=A.include(ci.Nodes.spherical);break;case 1:let a=["vec3(1.0, 0.0, 0.0)","vec3(0.0, 1.0, 0.0)","vec3(0.0, 0.0, 1.0)"][this.axis.value],l=new K(`
|
|
793
|
+
vec3 ${r}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
794
794
|
|
|
795
|
-
vec2 uvs = ( mat * vec3( (${
|
|
795
|
+
vec2 uvs = ( mat * vec3( (${r}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
|
|
796
796
|
|
|
797
797
|
vec4 tmp = texture2D( tex, uvs );
|
|
798
798
|
|
|
799
799
|
vec3 col = tmp.rgb;
|
|
800
800
|
float lalpha = alpha * tmp.a;
|
|
801
|
-
${this.side.value===2?"":`lalpha *= step(0.0, ${this.side.value===1?"-1.0 * ":""}dot(vObjectNormal, mat * ${
|
|
801
|
+
${this.side.value===2?"":`lalpha *= step(0.0, ${this.side.value===1?"-1.0 * ":""}dot(vObjectNormal, mat * ${a}));`}
|
|
802
802
|
|
|
803
803
|
if ( crop > 0.5 ) {
|
|
804
804
|
if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) {
|
|
@@ -808,7 +808,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
808
808
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
809
809
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
810
810
|
return col;
|
|
811
|
-
}`);
|
|
811
|
+
}`);n=A.include(l);break;default:n=A.include(ci.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){A.addVertexParsCode(`varying vec2 ${r}_vCustomUv;`),A.addFragmentParsCode(`varying vec2 ${r}_vCustomUv;`);let a=["zy","xz","xy"][this.axis.value];A.addVertexFinalCode(`${r}_vCustomUv = (1. + (transformed.${a})) / 2.;`)}A.addFragmentVariable(this.calpha,"float");let i=[];return i.push(this.texture.generate(A,"t")),i.push(this.textureSize.build(A,"v2")),i.push(this.crop.build(A,"f")),i.push(this.mat.build(A,"mat3")),i.push(this.size.build(A,"v2")),i.push(this.alpha.build(A,"f")),i.push(this.mode.build(A,"i")),i.push(this.calpha),this.firstTime=!this.firstTime,A.format(n+"("+i.join(",")+")",this.getType(A),t)}},li=ci;li.Nodes=function(){let A=new K(`
|
|
812
812
|
vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
813
813
|
vec3 posN = normalize(position);
|
|
814
814
|
float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
|
|
@@ -838,7 +838,7 @@ vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, v
|
|
|
838
838
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
839
839
|
return col;
|
|
840
840
|
}
|
|
841
|
-
`),
|
|
841
|
+
`),t=new K(`
|
|
842
842
|
vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
843
843
|
vec3 posN = normalize(vPosition);
|
|
844
844
|
float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
|
|
@@ -866,7 +866,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
866
866
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
867
867
|
return col;
|
|
868
868
|
}
|
|
869
|
-
`),
|
|
869
|
+
`),r=new K(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
870
870
|
|
|
871
871
|
vec2 uvs = ( mat * vec3( vUv * 2. - 1., 1. ) / 2. + 0.5 ).xy;
|
|
872
872
|
vec4 tmp = texture2D( tex, uvs );
|
|
@@ -882,15 +882,15 @@ 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:
|
|
885
|
+
}`);return{cylindrical:A,spherical:t,uv:r}}();var Jl=class extends lA{constructor(A,t){super("v3");this.nodeType="CustomNormal";this.cnormal=A,this.alpha=t}generate(A,t){if(A.isShader("fragment")){let r=A.include(Jl.Nodes.customNormal),n=[];return n.push(this.cnormal.build(A,"v3")),n.push("normal"),n.push(this.alpha.build(A,"f")),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("CustomNormalNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},ui=Jl;ui.Nodes=function(){return{customNormal:new K(`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
|
|
893
|
-
`));let
|
|
892
|
+
}`)}}();var he={normalRenderTarget:new De,normalRenderTargetDepth:new De,transmissionRenderTarget:new De,transmissionSize:new ce(2048,2048),transmissionRenderTargetDepth:new De,pixelRatioNode:new J(1),resolution:new ce,penumbraSize:new lt(5,.5)};for(let o of Object.values(he))o.isRenderGlobal=!0;var pi=class extends le{constructor(){super("lambert");this.nodeType="Lambert";this.color=new OA(5855577),this.emissive=new OA(0),this.emissiveIntensity=new J(1),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}build(A){let t;if(A.define("LAMBERT"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(di.UniformsUtils.merge([di.UniformsLib.fog,di.UniformsLib.lights])),A.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
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
894
894
|
#ifndef USE_LAYER_DISPLACE
|
|
895
895
|
#include <defaultnormal_vertex>
|
|
896
896
|
#endif
|
|
@@ -906,7 +906,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
906
906
|
#ifndef USE_LAYER_DISPLACE
|
|
907
907
|
#include <begin_vertex>
|
|
908
908
|
#endif
|
|
909
|
-
`];
|
|
909
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>",`
|
|
910
910
|
vec3 diffuse = vec3( 1.0 );
|
|
911
911
|
GeometricContext geometry;
|
|
912
912
|
geometry.position = mvPosition.xyz;
|
|
@@ -980,23 +980,23 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
980
980
|
}
|
|
981
981
|
#pragma unroll_loop_end
|
|
982
982
|
#endif
|
|
983
|
-
`," #include <shadowmap_vertex>"," #include <fog_vertex>"),
|
|
984
|
-
`)}else{
|
|
985
|
-
`));let
|
|
983
|
+
`," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
984
|
+
`)}else{A.mergeUniform({penumbraSize:he.penumbraSize}),this.color===void 0&&(this.color=new OA(5855577)),this.color.analyze(A,{slot:"color"}),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.emissive.flow(A,"c",{slot:"emissive"}),i=this.emissiveIntensity.flow(A,"f",{slot:"emissive"}),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
|
|
985
|
+
`));let c=["#include <normal_fragment_begin>",`
|
|
986
986
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
987
987
|
vec3 viewdx = dFdx(vViewPosition);
|
|
988
988
|
vec3 viewdy = dFdy(vViewPosition);
|
|
989
989
|
vec3 faceNormal = normalize(cross(viewdx, viewdy));
|
|
990
990
|
bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
|
|
991
|
-
`,"#include <clipping_planes_fragment>"];
|
|
991
|
+
`,"#include <clipping_planes_fragment>"];c.push(r.code,"vec3 diffuseColor = "+r.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("#ifdef DOUBLE_SIDED"," reflectedLight.indirectDiffuse += ( isFrontFacing ) ? vIndirectFront : vIndirectBack;","#else"," reflectedLight.indirectDiffuse += vIndirectFront;","#endif","#include <lightmap_fragment>","reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );","#ifdef DOUBLE_SIDED"," reflectedLight.directDiffuse = ( isFrontFacing ) ? vLightFront : vLightBack;","#else"," reflectedLight.directDiffuse = vLightFront;","#endif","reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();"),n&&c.push(n.code,"reflectedLight.directDiffuse += "+n.result+" * "+i.result+";"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),c.push(`
|
|
992
992
|
if (outgoingLight != diffuseColor) {
|
|
993
993
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
994
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
995
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
994
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
995
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
996
996
|
}
|
|
997
|
-
`),
|
|
998
|
-
`)}return
|
|
999
|
-
`));let
|
|
997
|
+
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
998
|
+
`)}return t}};var rn=require("three");var fi=class extends le{constructor(){super("standard");this.nodeType="Standard";this.color=new OA(5855577),this.roughness=new J(.3),this.metalness=new J(0),this.reflectivity=new J(.5),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}build(A){let t;if(A.define("STANDARD"),A.requires.lights=!0,A.extensions.derivatives=!0,A.extensions.shaderTextureLOD=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(rn.UniformsUtils.merge([rn.UniformsLib.fog,rn.UniformsLib.lights])),rn.UniformsLib.LTC_1&&(A.uniforms.ltc_1={value:void 0},A.uniforms.ltc_2={value:void 0}),A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
999
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
1000
1000
|
#if !defined( USE_LAYER_DISPLACE )
|
|
1001
1001
|
#include <defaultnormal_vertex>
|
|
1002
1002
|
#endif
|
|
@@ -1012,9 +1012,9 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1012
1012
|
#if !defined( USE_LAYER_DISPLACE )
|
|
1013
1013
|
#include <begin_vertex>
|
|
1014
1014
|
#endif /* !USE_LAYER_DISPLACE */
|
|
1015
|
-
`];
|
|
1016
|
-
`)}else{
|
|
1017
|
-
`));let
|
|
1015
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
1016
|
+
`)}else{A.mergeUniform({penumbraSize:he.penumbraSize});let r={gamma:!0};this.color===void 0&&(this.color=new OA(5855577)),this.color.analyze(A,{slot:"color",context:r}),this.roughness.analyze(A),this.metalness.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A),this.reflectivity&&this.reflectivity.analyze(A);let n=this.color.flow(A,"c",{slot:"color",context:r}),i=this.roughness.flow(A,"f"),a=this.metalness.flow(A,"f"),l=this.shadingAlpha.flow(A,"f"),u=this.shadingBlend.flow(A,"i"),s=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(A,"f"):void 0,d=this.reflectivity?this.reflectivity.flow(A,"f"):void 0;A.requires.transparent=c!==void 0,A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
|
|
1017
|
+
`));let p=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
|
|
1018
1018
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
1019
1019
|
vec3 viewdx = dFdx(vViewPosition);
|
|
1020
1020
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -1022,15 +1022,15 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1022
1022
|
if (dot(normal, faceNormal) < 0.0) {
|
|
1023
1023
|
normal *= -1.0;
|
|
1024
1024
|
}
|
|
1025
|
-
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];
|
|
1025
|
+
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];p.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," float roughnessFactor = "+i.result+";",a.code," float metalnessFactor = "+a.result+";"),c&&p.push(c.code,"#ifdef ALPHATEST"," if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),p.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),p.push("material.diffuseColor = diffuseColor * ( 1.0 - metalnessFactor );","material.roughness = max( roughnessFactor, 0.0525 );","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.roughness = clamp( roughnessFactor, 0.04, 1.0 );"),d?p.push(d.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+d.result+" ) ), diffuseColor, metalnessFactor );"):p.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),p.push("#include <lights_fragment_begin>"),p.push("#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),p.push(`
|
|
1026
1026
|
if (outgoingLight != diffuseColor) {
|
|
1027
1027
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
1028
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
1029
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
1028
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
|
|
1029
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${u.result} );
|
|
1030
1030
|
}
|
|
1031
|
-
`),
|
|
1032
|
-
`)}return
|
|
1033
|
-
`));let
|
|
1031
|
+
`),s&&p.push(s.code,`outgoingLight = spe_blend(outgoingLight, ${s.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=p.join(`
|
|
1032
|
+
`)}return t}};var mi=require("three");var hi=class extends le{constructor(){super("toon");this.nodeType="Toon";this.color=new OA(5855577),this.specular=new OA(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}build(A){let t;if(A.define("TOON"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(mi.UniformsUtils.merge([mi.UniformsLib.fog,mi.UniformsLib.lights])),A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
1033
|
+
`));let n=["#include <beginnormal_vertex>",`
|
|
1034
1034
|
#ifndef USE_LAYER_DISPLACE
|
|
1035
1035
|
#include <defaultnormal_vertex>
|
|
1036
1036
|
#endif
|
|
@@ -1046,8 +1046,8 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1046
1046
|
#ifndef USE_LAYER_DISPLACE
|
|
1047
1047
|
#include <begin_vertex>
|
|
1048
1048
|
#endif
|
|
1049
|
-
`];
|
|
1050
|
-
`)}else{
|
|
1049
|
+
`];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
|
|
1050
|
+
`)}else{A.mergeUniform({penumbraSize:he.penumbraSize}),this.color===void 0&&(this.color=new OA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),u=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
|
|
1051
1051
|
varying vec3 vViewPosition;
|
|
1052
1052
|
struct ToonMaterial {
|
|
1053
1053
|
vec3 diffuseColor;
|
|
@@ -1068,7 +1068,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1068
1068
|
#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
|
|
1069
1069
|
#define Material_LightProbeLOD( material ) (0)
|
|
1070
1070
|
`,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
|
|
1071
|
-
`));let
|
|
1071
|
+
`));let c=["#include <normal_fragment_begin>",`
|
|
1072
1072
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
1073
1073
|
vec3 viewdx = dFdx(vViewPosition);
|
|
1074
1074
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -1076,14 +1076,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1076
1076
|
if (dot(normal, faceNormal) < 0.0) {
|
|
1077
1077
|
normal *= -1.0;
|
|
1078
1078
|
}
|
|
1079
|
-
`," ToonMaterial material;"];
|
|
1079
|
+
`," ToonMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),c.push(`
|
|
1080
1080
|
if (outgoingLight != diffuseColor) {
|
|
1081
1081
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
1082
|
-
accumAlpha += ( 1.0 - accumAlpha ) * ${
|
|
1083
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${
|
|
1082
|
+
accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
|
|
1083
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
|
|
1084
1084
|
}
|
|
1085
|
-
`),
|
|
1086
|
-
`)}return
|
|
1085
|
+
`),u&&c.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=c.join(`
|
|
1086
|
+
`)}return t}};var KA=require("three");function fm(o,e){switch(o.type){case"fresnel":return dw(o,e);case"gradient":return pw(o);case"depth":return fw(o);case"normal":return mw(o);case"noise":return hw(o,e);case"rainbow":return gw(o);case"toon":return yw(o,e);case"outline":return xw(o,e);case"transmission":return vw(o,e);case"color":return uw(o,e)}}function cw(o){return{type:o.type}}function Et(o){let{alpha:e,mode:A}=o;return{...cw(o),alpha:e,mode:A}}function uw(o,e){return{...Et(o),color:ae(o.color,e)}}function dw(o,e){let{bias:A,scale:t,intensity:r,factor:n,color:i}=o;return{...Et(o),color:ae(i,e),bias:A,scale:t,intensity:r,factor:n}}function pw(o){let{gradientType:e,smooth:A,colors:t,steps:r,angle:n,offset:i,morph:a}=o;return{...Et(o),gradientType:e,smooth:A,colors:t.map(l=>new KA.Vector4(l[0],l[1],l[2],l[3])),num:t.length,steps:r,offset:new KA.Vector2(...i),morph:new KA.Vector2(...a),angle:n}}function fw(o){let{gradientType:e,near:A,far:t,isVector:r,isWorldSpace:n,origin:i,direction:a,colors:l,steps:u,smooth:s}=o;return{...Et(o),gradientType:e,near:A,far:t,isVector:r,isWorldSpace:n,origin:new KA.Vector3(...i),direction:a?new KA.Vector3(...a):new KA.Vector3(1,0,0),colors:l.map(c=>c!==void 0?new KA.Vector4(c[0],c[1],c[2],c[3]):new KA.Vector4(0,0,0,0)),steps:u.slice(0,l.length),smooth:s}}function mw(o){let{cnormal:e}=o;return{...Et(o),cnormal:new KA.Vector3(e[0],e[1],e[2])}}function hw(o,e){return{...Et(o),scale:o.scale,move:o.move,fA:new KA.Vector2(...o.fA),fB:new KA.Vector2(...o.fB),size:new KA.Vector3(...o.size),distortion:new KA.Vector2(...o.distortion),colorA:ae(o.colorA,e),colorB:ae(o.colorB,e),colorC:ae(o.colorC,e),colorD:ae(o.colorD,e),noiseType:o.noiseType}}function gw(o){return{...Et(o),filmThickness:o.filmThickness,movement:o.movement,wavelengths:new KA.Vector3(...o.wavelengths),noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,offset:new KA.Vector3(...o.offset)}}function yw(o,e){return{...Et(o),positioning:o.positioning,colors:o.colors.map(A=>new KA.Vector4(A[0],A[1],A[2],A[3])),num:o.colors.length,steps:o.steps,source:new KA.Vector3(...o.source),isWorldSpace:o.isWorldSpace,noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,shadowColor:ae(o.shadowColor,e),offset:new KA.Vector3(...o.offset)}}function xw(o,e){return{...Et(o),outlineColor:ae(o.outlineColor,e),contourColor:ae(o.contourColor,e),outlineWidth:o.outlineWidth,contourWidth:o.contourWidth,outlineThreshold:o.outlineThreshold,contourThreshold:o.contourThreshold,outlineSmoothing:o.outlineSmoothing,contourFrequency:o.contourFrequency,contourDirection:o.contourDirection,positionalLines:o.positionalLines,compensation:o.compensation}}function vw(o,e){return{...Et(o),thickness:o.thickness,ior:o.ior,roughness:o.roughness}}var Tr=class extends re{};var hm=require("three");var da=require("three");var ua=class{constructor(e=1e3*10){this.timeout=e;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(...e){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let e=Date.now(),A=this.head.next;for(;A.time<e-this.timeout;)this.dispose(A.src,A.data),this.cache.delete(A.src),A=A.next,A.prev=this.head,this.head.next=A;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(e){let A=Date.now(),t=this.cache.get(e);return t===void 0?(t={data:this.create(e),src:e,time:A,next:null,prev:null},this.cache.set(e,t)):(t.time=A,t.prev.next=t.next,t.next.prev=t.prev),t.prev=this.tail.prev,t.next=this.tail,this.tail.prev.next=t,this.tail.prev=t,this.scheduleCleanup(),t.data}};var $l=class extends ua{create(e){return URL.createObjectURL(new Blob([e]))}dispose(e,A){URL.revokeObjectURL(A)}},_l;function mm(o){return typeof o=="string"?o:(_l||(_l=new $l),_l.load(o))}var Qr=class{constructor(e,A){this.data=e;this.onImageLoad=A;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type=="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.dispose(),this.loaded=!1;let A=()=>{this.loaded=!0;let r=[1e3,1001,1002];for(let n of r){let i=this[n];i&&(i.image=this.img,i.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.loop=!0,this.img.playsInline=!0,this.img.currentTime=.01,this.img.pause(),typeof e!="string"){var t=new FileReader;t.readAsDataURL(new Blob([e],{type:"video/mp4"}));let r;await new Promise(n=>{t.onloadend=i=>{r=i.target?.result,n(null)}}),this.img.src=r}else this.img.src=e;this.img.onloadeddata=A}else this.img=new Image,this.img.src=mm(e),this.img.onload=A}getTexture(e){let A=this[e];if(A)return A;{let t;return this.isVideo?t=new da.VideoTexture(this.img,void 0,e,e):t=new da.Texture(this.img,void 0,e,e),this.loaded&&(t.needsUpdate=!0),this[e]=t,t}}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 Dt=class extends Qr{};var Nr=class extends GA{};var Ac={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},ec={depth:["colors"]};function bw(o,e,A){let t=Ac[o.type],r=ec[o.type];if(r!==void 0){let n=o.color;if(r.includes(e)){let i=n[e]?.value?.length;if(i!==void 0&&i!==A.length)return!0}}return t!==void 0?t.includes(e):!1}function tc(o,e,A){let t=A.uniforms[`f${A.id}_texture`];if(!t)return!1;let r=!1,n=o;if("image"in n){let i=n.image,a=e.image(i),l=t;l instanceof Dt||l.image.dispose(),l.image=a}if("video"in n){let i=n.video,a=e.video(i),l=t;l instanceof Dt||l.image.dispose(),l.image=a}if("wrapping"in n){let i=t;i.wrap=n.wrapping}if("repeat"in n||"offset"in n){let i="mat",a=A.uniforms[`f${A.id}_${i}`];"repeat"in n&&(a.repeat=n.repeat),"offset"in n&&(a.offset=n.offset),a.updateMatrix()}return r}function gm(o,e,A,t){let r=!1;for(let[n,i]of Object.entries(o)){if(!n||i===void 0)continue;if(rc(n,A,t)){n==="visible"&&A.type==="light"&&(r=!0);continue}A.visible=t.visible;let a=A.uniforms[`f${A.id}_${n}`];if(!!a&&!(a instanceof Nr))switch(r=r||bw(A,n,i),a.constructor){case OA:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof Tr?a.value=new re(l.r,l.g,l.b,l.a):a.setRGBA(l);break}case At:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof Tr?a.value=new re(l.r,l.g,l.b,l.a):a.value.setRGBA(l.r,l.g,l.b,l.a);break}case ce:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]);break}case me:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]),a.value.setZ(l[2]);break}case De:{tc(i,e,A);break}case ct:{a.value=i.map(l=>new hm.Vector4(...l));break}default:{a.value=i;break}}}return r}var oc=class extends lA{constructor(A,t,r){super("v3");this.nodeType="Matcap";this.texture=A,this.alpha=t,this.mode=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include(oc.Nodes.matcap);A.require("normal"),A.requires.normal=!0;let n=[];return n.push(this.texture.generate(A,"t")),n.push("normal"),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("MatcapNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},gi=oc;gi.Nodes=function(){return{matcap:new K(`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,14 +1095,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1095
1095
|
|
|
1096
1096
|
return matcapColor.rgb;
|
|
1097
1097
|
}
|
|
1098
|
-
`)}}();var
|
|
1098
|
+
`)}}();var yi=class extends Nr{constructor(A,t){super("t");this.image=A;this.wrap=t}get value(){return this.image.getTexture(this.wrap)}};var ym=require("three");var pa=class extends Nr{constructor(A){super("v3");this.image=A;this._value=new ym.Vector3}get value(){return this._value.x=this.image.isVideo?this.image.img.videoWidth:this.image.img.width,this._value.y=this.image.isVideo?this.image.img.videoHeight:this.image.img.height,this._value}};var nc=class extends lA{constructor(A,t,r,n,i,a,l,u,s,c){super("v3");this.nodeType="Toon";this.positioning=A,this.colors=t,this.steps=r,this.source=n,this.isWorldSpace=i,this.noiseStrength=a,this.noiseScale=l,this.shadowColor=u,this.offset=s,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,t){if(A.require("worldNormal"),A.require("worldPosition"),A.isShader("fragment")){A.define("COLORS_MAX",10),A.addFragmentVariable(this.calpha,"float");let r=A.include(nc.Nodes.toon),n=[];return n.push(this.positioning.build(A,"i")),n.push(this.colors.build(A,"v4[]")),n.push(this.steps.build(A,"f[]")),n.push(this.source.build(A,"v3")),n.push(this.isWorldSpace.build(A,"b")),n.push(this.noiseStrength.build(A,"f")),n.push(this.noiseScale.build(A,"f")),n.push(this.shadowColor.build(A,"v4")),n.push(this.offset.build(A,"v3")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),t)}else return console.warn("ToonNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),t)}},xi=nc;xi.Nodes=function(){let A=new K(`float rand(float n) {
|
|
1099
1099
|
return fract(sin(n) * 43758.5453123);
|
|
1100
|
-
}`),
|
|
1100
|
+
}`),t=new K(`float hash1(float p) {
|
|
1101
1101
|
p = fract(p * 0.011);
|
|
1102
1102
|
p *= p + 7.5;
|
|
1103
1103
|
p *= p + p;
|
|
1104
1104
|
return fract(p);
|
|
1105
|
-
}`),
|
|
1105
|
+
}`),r=new K(`float valueNoise(vec3 x) {
|
|
1106
1106
|
const vec3 step = vec3(110, 241, 171);
|
|
1107
1107
|
|
|
1108
1108
|
vec3 i = floor(x);
|
|
@@ -1117,13 +1117,13 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1117
1117
|
mix( hash1(n + dot(step, vec3(0, 1, 0))), hash1(n + dot(step, vec3(1, 1, 0))), u.x), u.y),
|
|
1118
1118
|
mix(mix( hash1(n + dot(step, vec3(0, 0, 1))), hash1(n + dot(step, vec3(1, 0, 1))), u.x),
|
|
1119
1119
|
mix( hash1(n + dot(step, vec3(0, 1, 1))), hash1(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);
|
|
1120
|
-
}`,[
|
|
1120
|
+
}`,[t]),n=new K(`vec3 hash3(vec3 x) {
|
|
1121
1121
|
x = vec3(dot(x,vec3(127.1, 311.7, 74.7)),
|
|
1122
1122
|
dot(x,vec3(269.5, 183.3, 246.1)),
|
|
1123
1123
|
dot(x,vec3(113.5, 271.9, 124.6)));
|
|
1124
1124
|
|
|
1125
1125
|
return fract(sin(x)*43758.5453123);
|
|
1126
|
-
}`),
|
|
1126
|
+
}`),i=new K(`vec3 voronoiNoise(in vec3 x)
|
|
1127
1127
|
{
|
|
1128
1128
|
vec3 p = floor(x);
|
|
1129
1129
|
vec3 f = fract(x);
|
|
@@ -1154,7 +1154,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1154
1154
|
|
|
1155
1155
|
return vec3(sqrt(res), abs(id));
|
|
1156
1156
|
}
|
|
1157
|
-
`,[
|
|
1157
|
+
`,[n]);return{toon:new K(`vec3 toon(int positioning, vec4 colors[COLORS_MAX], float steps[COLORS_MAX], vec3 source, bool isWorldSpace, float noiseStrength, float noiseScale, vec4 shadowColor, vec3 offset, float alpha, out float calpha) {
|
|
1158
1158
|
float t = 0.0;
|
|
1159
1159
|
float shadow = 1.0;
|
|
1160
1160
|
|
|
@@ -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 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
|
-
`,
|
|
1336
|
-
`:
|
|
1337
|
-
`)
|
|
1338
|
-
`)>=0&&(
|
|
1334
|
+
}`,[xe.simplex,A,r,i])}}();var vm=require("three");function xm(o,e,A){o.setUvTransform(A[0],A[1],e[0],e[1],0,0,0)}var fa=class extends en{constructor(A,t){super(new vm.Matrix3);this.repeat=A;this.offset=t;xm(this.value,A,t)}updateMatrix(){xm(this.value,this.repeat,this.offset)}};var Gt=class{constructor(e,A,t,r){this.id=e;this.uuid=A;this.data=t;this.uniforms={};for(let n in r)this.uniforms[`f${this.id}_${n}`]=r[n];for(let n in t)rc(n,this,t)}get type(){return this.data.type}static create(e,A,t,r){if(t.type==="light")return Rt.createLigherLayer(e,A,t,r);if(t.type==="texture"||t.type==="video"){let n=t.type==="texture"?r.image(t.texture.image):r.video(t.texture.video),i=new yi(n,t.texture.wrapping),a=new pa(n),l=new fa(t.texture.repeat,t.texture.offset),u=new J(t.crop?1:0),s=new vA(t.projection??0),c=new vA(["x","y","z"].indexOf(t.axis)??0),d=new vA(t.side??0),p=new ce(t.size?new FA.Vector2(t.size[0],t.size[1]):new FA.Vector2(100,100)),f=new J(t.alpha??1),m=new vA(t.mode??0),h=new li(i,a,u,s,c,d,p,l,f,m),x=new IA(h.calpha,"f");return new oe(e,A,t,{texture:i,textureSize:a,crop:u,projection:s,axis:c,side:d,size:p,mat:l,alpha:f,mode:m},h,m,x)}else if(t.type==="matcap"){let n=r.image(t.texture.image),i=new yi(n,t.texture.wrapping),a=new J(t.alpha??1),l=new vA(t.mode??0),u=new gi(i,a,l),s=new IA(u.calpha,"f");return new oe(e,A,t,{texture:i,alpha:a,mode:l},u,l,s)}else if(t.type==="displace")if(t.displacementType==="noise"){let n=new me(new FA.Vector3(...t.offset)),i=new J(t.scale??10),a=new J(t.intensity??8),l=new J(t.movement??1),u=new vA(t.noiseType??0),s=new si(a,l,n,i,u);return new vi(e,A,t,{offset:n,scale:i,intensity:a,movement:l,noiseType:u},s)}else throw new Error;else return Sw(e,A,t,r)}updateByOp(e,A,t){let r=e;if(r.path[0]===void 0){if(r.type===0)return"type"in r.props||"category"in r.props?!0:gm(r.props,t,this,A)}else if(r.path[0]==="texture")return"texture"in A||"video"in A?tc(r.props,t,this):!0;return!1}dispose(){}hasValueByKey(e){return this.uniforms[e]!==void 0}hasValue(e){return this.hasValueByKey(`f${this.id}_${e}`)}setValue(e,A){let t=`f${this.id}_${e}`;this.hasValueByKey(t)&&A!==void 0&&(this.uniforms[t].value=A)}getNode(e){let A=`f${this.id}_${e}`;if(this.hasValueByKey(A))return this.uniforms[A]}getValue(e){let A=`f${this.id}_${e}`;if(this.hasValueByKey(A))return this.uniforms[A].value}getName(e){let t=/f\d+_(.*)/.exec(e);if(t&&t.length>1)return t[1];console.log(`Layer.getName: error ${e}`)}getNames(){let e=[];for(let A in this.uniforms){let t=this.getName(A);t&&e.push(t)}return e}},oe=class extends Gt{constructor(A,t,r,n,i,a,l){super(A,t,r,n);this.color=i;this.mode=a;this.alpha=l}},vi=class extends Gt{constructor(A,t,r,n,i){super(A,t,r,n);this.position=i}},Rt=class extends Gt{constructor(A,t,r,n,i){super(A,t,r,i);this.data=r;this.node=n}static createLigherLayer(A,t,r,n){let i,a=new J(r.alpha),l=new vA(r.mode),u;if(!r.visible)i=new qr,u={};else if(r.category==="lambert"){i=new pi;let s=new OA(n.color(r.emissive)??0);u={emissive:s},i.emissive=s}else if(r.category==="toon"){i=new hi;let s=new J(r.shininess??30),c=new OA(n.color(r.specular)??1118481);u={shininess:s,specular:c},i.shininess=s,i.specular=c}else if(r.category==="physical"){i=new fi;let s=new J(r.roughness??.3),c=new J(r.metalness??0),d=new J(r.reflectivity??.5);u={roughness:s,metalness:c,reflectivity:d},i.roughness=s,i.metalness=c,i.reflectivity=d}else{i=new ca;let s=new J(r.shininess??30),c=new OA(n.color(r.specular)??1118481);u={shininess:s,specular:c},i.shininess=s,i.specular=c}return i.alpha=new J(1),i.shadingAlpha=a,i.shadingBlend=l,u.alpha=i.shadingAlpha,u.mode=i.shadingBlend,new Rt(A,t,r,i,u)}};function bm(o){let e=o instanceof Gt?o.type:o;return e==="texture"||e==="video"||e==="displace_map"||e==="matcap"}function ww(o,e,A,t){switch(o.type){case"color":{let r=new OA(t.color??5855577),n=new J(t.alpha??1),i=new IA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new vA(t.mode??0);return r.alpha=n,new oe(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}case"fresnel":{let r=new OA(t.color??16777215),n=new J(t.bias??.1),i=new J(t.scale??1),a=new J(t.intensity??2),l=new J(t.factor??1),u=new J(t.alpha??1),s=new vA(t.mode??0),c=new ei(r,n,i,a,l,u,s),d=new IA(c.calpha,"f");return new oe(e,A,o,{color:r,bias:n,scale:i,intensity:a,factor:l,alpha:u,mode:s},c,s,d)}case"rainbow":{let r=new J(t.filmThickness??30),n=new J(t.movement??0),i=new me(t.wavelengths??new FA.Vector3(0,0,0)),a=new J(t.noiseStrength??0),l=new J(t.noiseScale??1),u=new me(t.offset??new FA.Vector3(0,0,0)),s=new J(t.alpha??1),c=new ti(r,n,i,a,l,u,s),d=new IA(c.calpha,"f"),p=new vA(t.mode??0);return new oe(e,A,o,{filmThickness:r,movement:n,wavelengths:i,noiseStrength:a,noiseScale:l,offset:u,alpha:s,mode:p},c,p,d)}case"transmission":{let r=new J(t.thickness??10),n=new J(t.ior??1.5),i=new J(t.roughness??.5),a=he.transmissionSize,l=he.transmissionRenderTarget,u=he.transmissionRenderTargetDepth,s=window.innerWidth,c=window.innerHeight,d=s>=c?new ce(c/s,1):new ce(1,s/c),p=new J(t.alpha??1),f=new oi(r,n,i,a,l,u,d,p),m=new IA(f.calpha,"f"),h=new vA(t.mode??0);return new oe(e,A,o,{thickness:r,ior:n,roughness:i,aspectRatio:d,alpha:p,mode:h},f,h,m)}case"toon":{let r=new vA(t.positioning??0),n;t.colors?n=new ct(t.colors.length,t.colors):(n=new ct(10,new FA.Vector4(0,0,0,1)),n.value[1]=new FA.Vector4(1,1,1,1));let i;t.steps?i=new lt(t.steps.length,t.steps):(i=new lt(10,1),i.value[0]=0);let a=new me(t.source??new FA.Vector3(0,0,0)),l=new Sr(t.isWorldSpace??!0),u=new J(t.noiseStrength??0),s=new J(t.noiseScale??1),c=new At(t.shadowColor),d=new me(t.offset??new FA.Vector3(0,0,0)),p=new J(t.alpha??1),f=new xi(r,n,i,a,l,u,s,c,d,p),m=new IA(f.calpha,"f"),h=new vA(t.mode??0);return new oe(e,A,o,{positioning:r,colors:n,steps:i,source:a,isWorldSpace:l,noiseStrength:u,noiseScale:s,shadowColor:c,offset:d,alpha:p,mode:h},f,h,m)}case"outline":{let r=new OA(t.outlineColor??16777215),n=new OA(t.contourColor??16777215),i=new J(t.outlineWidth??.1),a=new J(t.contourWidth??.1),l=new J(t.outlineThreshold??.1),u=new J(t.contourThreshold??.1),s=new J(t.outlineSmoothing??.1),c=new J(t.contourFrequency??.1),d=new me(t.contourDirections??new FA.Vector3(0,1,0)),p=new Sr(t.positionalLines??!1),f=new Sr(t.compensation??!0),m=he.normalRenderTarget,h=he.normalRenderTargetDepth,x=he.pixelRatioNode,y=he.resolution,b=new J(t.alpha??1),w=new ri(r,n,i,a,l,u,s,c,d,p,f,y,m,h,x,b),v=new IA(w.calpha,"f"),I=new vA(t.mode??0);return new oe(e,A,o,{outlineColor:r,contourColor:n,outlineWidth:i,contourWidth:a,outlineThreshold:l,contourThreshold:u,outlineSmoothing:s,contourFrequency:c,contourDirection:d,positionalLines:p,compensation:f,alpha:b,mode:I},w,I,v)}case"depth":{let r=new vA(t.gradientType??0),n=new Sr(t.smooth??!1),i=new J(t.near??50),a=new J(t.far??200),l=new J(t.isVector??1),u=new J(t.isWorldSpace??0),s=new me(t.origin??new FA.Vector3),c=new me(t.direction??new FA.Vector3),d;t.colors?d=new ct(t.colors.length,t.colors):(d=new ct(2,new FA.Vector4(0,0,0,1)),d.value[1]=new FA.Vector4(1,1,1,1));let p;t.steps?p=new lt(t.steps.length,t.steps):(p=new lt(2,1),p.value[0]=0);let f=new J(t.alpha??1),m=new vA(t.mode??0),h=new ni(r,n,i,a,l,u,s,c,d,p,f),x=new IA(h.calpha,"f");return new oe(e,A,o,{gradientType:r,smooth:n,near:i,far:a,isVector:l,isWorldSpace:u,origin:s,direction:c,colors:d,steps:p,alpha:f,mode:m},h,m,x)}case"noise":{let r=new J(t.scale??1),n=new me(t.size??new FA.Vector3(100,100,100)),i=new J(t.move??1),a=new ce(t.fA??new FA.Vector2(1.7,9.2)),l=new ce(t.fB??new FA.Vector2(8.3,2.8)),u=new ce(t.distortion??new FA.Vector2(1,1)),s=new At(t.colorA),c=new At(t.colorB),d=new At(t.colorC),p=new At(t.colorD),f=new J(t.alpha??1),m=new vA(t.mode??0),h=new vA(t.noiseType??0),x=new $n(r,n,i,a,l,u,s,c,d,p,f,h),y=new IA(x.calpha,"f");return new oe(e,A,o,{scale:r,size:n,move:i,fA:a,fB:l,distortion:u,colorA:s,colorB:c,colorC:d,colorD:p,alpha:f,mode:m,noiseType:h},x,m,y)}case"normal":{let r=new me(t.cnormal??new FA.Vector3(1,1,1)),n=new J(t.alpha??1),i=new vA(t.mode??0),a=new ui(r,n),l=new IA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=n,new oe(e,A,o,{cnormal:r,alpha:n,mode:i},a,i,l)}case"gradient":{let r=new vA(t.gradientType??0),n=new Sr(t.smooth??!1),i;t.colors?i=new ct(t.colors.length,t.colors):(i=new ct(10,new FA.Vector4(0,0,0,1)),i.value[1]=new FA.Vector4(1,1,1,1));let a;t.steps?a=new lt(t.steps.length,t.steps):(a=new lt(10,1),a.value[0]=0);let l=new ce(t.offset??new FA.Vector2(0,0)),u=new ce(t.morph??new FA.Vector2(0,0)),s=new J(t.angle??0),c=new J(t.alpha??1),d=new vA(t.mode??0),p=new ai(r,n,i,a,l,u,s,c),f=new IA(p.calpha,"f");return new oe(e,A,o,{gradientType:r,smooth:n,colors:i,steps:a,offset:l,morph:u,angle:s,alpha:c,mode:d},p,d,f)}default:{let r=new OA(1,0,0,1),n=new J(1),i=new IA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new vA(0);return r.alpha=n,new oe(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}}}function Sw(o,e,A,t){let r=fm(A,t);return ww(A,o,e,r)}function rc(o,e,A){if(A.type==="displace"&&(o==="intensity"||o==="visible")){let t=e.uniforms[`f${e.id}_intensity`];return t?(t.value=A.intensity*(A.visible?1:0),t):void 0}if(A.type!=="displace"&&(o==="alpha"||o==="visible")){let t=e.uniforms[`f${e.id}_alpha`];if(!t)return;if(t.value=A.alpha*(A.visible?1:0),A.type==="outline"&&o==="visible"){let r=e.uniforms[`f${e.id}_compensation`];r&&(r.value=A.compensation&&A.visible)}return t}}var Ue=class extends wm.ShaderMaterial{constructor(A,t){super(void 0);this.data=A;this.layerIdGen=0;this.type="NodeMaterial";this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.reset(A,t)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(A,t){let r=A.layers??Te.defaultTwoLayerData("phong").layers;this.layers=r.map(n=>Gt.create(this.layerIdGen++,n.id,n.data,t)),this.layers.reverse(),this.name=A.name??"Untitled Material",this.onUpdate(t),this.transparent=Te.isTransparent(A,t)}getLayersOfType(A){return this.layers.filter(t=>t.type===A)}getLayerByUuid(A){return this.layers.find(t=>t.uuid===A)}onUpdate(A){this.lightLayer=this.layers.find(t=>t instanceof Rt),this.lightLayer===void 0&&(this.lightLayer=new Rt(0,"",{...Se.defaultData("light","phong"),visible:!1},new qr,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(A,t,r){if(this.data=t,this.transparent=Te.isTransparent(t,r),A.path[0]==="layers"){let n=A.path[1];if(n===void 0){if(this.layers.reverse(),A.type===4){let i=Gt.create(this.layerIdGen++,A.id,A.data,r);this.layers.splice(A.localIndex,0,i)}else if(A.type===5)this.layers.splice(A.localIndex,1)[0].dispose();else if(A.type===6){let i=this.layers.findIndex(l=>l.uuid===A.id),a=this.layers[i];this.layers.splice(i,1),this.layers.splice(A.localIndex,0,a)}this.layers.reverse(),this.onUpdate(r)}else{let i=this.layers.find(a=>a.uuid===n);if(i){let a=t.layers.data(n);if(i.updateByOp({...A,path:A.path.slice(2)},a,r)){let u=Gt.create(this.layerIdGen++,n,a,r);this.layers.splice(this.layers.findIndex(s=>s.uuid===n),1,u),this.onUpdate(r)}}}}}blendColors(){let A=this.layers.findIndex(r=>r instanceof oe),t=this.layers.findIndex(r=>r instanceof Rt);if(A!==-1&&A<t){let r=this.layers[A].color;for(let n=A+1;n<t;++n){let i=this.layers[n];i instanceof oe&&(r=new ii(r,i.color,i.alpha,i.mode))}this.fragment.color=r}else this.fragment.color=void 0}blendAfterColors(){let A=new IA("outgoingLight","f"),t=this.layers.findIndex(r=>r instanceof Rt);if(this.layers.length>t+1){for(let r=t+1;r<this.layers.length;++r){let n=this.layers[r];n instanceof oe&&(A=new ii(A,n.color,n.alpha,n.mode))}this.fragment.afterColor=A}else this.fragment.afterColor=void 0}blendPositions(){let A=this.layers.filter(t=>t instanceof vi);if(A.length>0){let t=A[0].position;for(let r=1;r<A.length;++r)A[r]&&(t=new Ge(t,A[r].position,Ge.ADD),t=new Ge(t,new J(.5).setReadonly(!0),Ge.MUL));this.fragment.position=t}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(A,t){this.build({renderer:t}),A.defines=this.defines,A.uniforms=this.uniforms,A.vertexShader=this.vertexShader,A.fragmentShader=this.fragmentShader,A.extensionDerivatives=this.extensions.derivatives===!0,A.extensionFragDepth=this.extensions.fragDepth===!0,A.extensionDrawBuffers=this.extensions.drawBuffers===!0,A.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(A,t){let r=(n,i,a)=>Math.min(Math.max(n,i),a);for(let n of this.layers)if(n.type==="displace"){let i=r(n.uniforms[`f${n.id}_intensity`].value,A,t);n.uniforms[`f${n.id}_intensity`].value=i}}customProgramCacheKey(){let A="[";for(let{data:t}of this.data.layers)if(t.type==="light")A+=`"${t.visible?t.category.toUpperCase():"Basic"}"`;else{let r=(Ac[t.type]??[]).map(a=>t[a]),n=(ec[t.type]??[]).map(a=>t[a]?.length??0),i=[...r,...n];i.length?A+=`["${t.type}", "${i.join('","')}"],`:A+=`"${t.type}",`}return A=A.slice(0,-1)+"]",A}updateFrame(A){for(let t=0;t<this.updaters.length;++t)A.updateNode(this.updaters[t])}build(A){A=A??{};let t=A.builder??new aa;return this.lights=this.lightLayer.data.visible,t.setMaterial(this,A.renderer),t.build(this.fragment,this.fragment),this.vertexShader=t.getCode("vertex"),this.fragmentShader=t.getCode("fragment"),this.defines=t.defines,this.uniforms=t.uniforms,this.extensions=t.extensions,this.updaters=t.updaters,this}dispose(){this.layers.forEach(A=>A.dispose()),super.dispose()}getHash(){let A="{";return A+='"fragment":'+this.fragment.getHash(),A+="}",A}};Object.defineProperties(Ue.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(o){o===!0&&this.version++,this.needsCompile=o},get:function(){return this.needsCompile}}});var He=require("three");function Tw(o){if(o.geometry.attributes.extrudeNormal||!o.geometry.attributes.position||!o.geometry.attributes.normal)return;let e=new Map,A=o.geometry.attributes.position.array,t=o.geometry.attributes.normal.array,r=new Float32Array(A.length);for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=new He.Vector3(t[n],t[n+1],t[n+2]);e.has(i)?e.get(i)?.normals.push(a):e.set(i,{normals:[a],result:new He.Vector3})}e.forEach((n,i)=>{for(let a of n.normals)n.result.add(a);n.result.divideScalar(n.normals.length)});for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=e.get(i)?.result;a&&(r[n]=a.x,r[n+1]=a.y,r[n+2]=a.z)}o.geometry.setAttribute("extrudeNormal",new He.Float32BufferAttribute(r,3))}function Nw(o){if(o.geometry.attributes.extrudeNormals||!o.geometry.attributes.position)return;let e=o.geometry.attributes.position.array,A=new Float32Array(e.length),t=new He.Vector3;for(let r=0;r<e.length;r+=3)t.set(e[r],e[r+1],e[r+2]).normalize(),A[r]=t.x,A[r+1]=t.y,A[r+2]=t.z;o.geometry.setAttribute("extrudeNormal",new He.Float32BufferAttribute(A,3))}function Vt(o){if(Array.isArray(o.material)){for(let e of o.material)if(e.getLayersOfType("outline").length===0)return}else if(!(o.material instanceof Ue)||o.material.getLayersOfType("outline").length===0)return;o.objectType==="Mesh2D"||o.objectType==="TextFrame"&&o.data?.geometry?.depth===0?Nw(o):Tw(o)}function Ft(o){if(!o.geometry.attributes.position)return;let e=o.geometry.attributes.position.array,A=new Float32Array(e.length),t=parseInt(o.uuid.replace(/\D/g,"")),r=[He.MathUtils.seededRandom(t),He.MathUtils.seededRandom(t+1e4),He.MathUtils.seededRandom(t+2e4)];for(let n=0;n<e.length;n++)A[n]=r[n%3];o.geometry.setAttribute("randomColor",new He.BufferAttribute(A,3))}var Sm=require("three");var jt=(o,e)=>class extends o{constructor(){super(...arguments);this.objectHelper=new e(this)}get geometryHelper(){return e.geometryHelper}raycast(r,n){this.objectHelper.raycast(r,n)}fromLightState(r,n){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let i=this;r.color!==void 0&&(i.color=ae(r.color,n)),r.intensity!==void 0&&(i.intensity=r.intensity),r.depth!==void 0&&(i.shadow.camera.far=r.depth,i.shadow.needsUpdate=!0),r.shadows!==void 0&&(this.castShadow=r.shadows)}return this}};var _t=class extends jt(Ze(Sm.Group),Vo){constructor(){super(...arguments);this.objectType="EmptyObject"}createFromState(A,t){let r=new _t().fromState(t);return r.uuid=A,r.objectHelper.update(),r.setFromClonerState(t.cloner||null),r}get cloner(){return this._cloner}set cloner(A){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),A&&this.add(A),this._cloner=A}setFromClonerState(A){A===null||A.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Kt(this,A)),this.cloner.fromClonerState(A))}};function Iw(o){let e=o.parent;for(;e;){if(e instanceof _t&&e.cloner?.parameters.hideBase)return!0;e=e.parent}return!1}var ZA=class extends Ze(ma.Mesh){constructor(A,t){super(A,t);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new ma.Matrix4;this.booleanExclude=null;Array.isArray(t)&&A.groups.length===0&&A.addGroup(0,Math.max(A.getIndex()?.count??0,A.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0||Iw(this)}get isMesh(){return!this.isGroup}set isMesh(A){}get cloner(){return this._cloner}set cloner(A){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),A&&this.add(A),this._cloner=A}updateGeometry(A,t){let r=this.geometry,n=Vl[r.userData.type],i=this.objectType==="NonParametric"?Object.assign({},r.userData,{geometry:r}):r.userData,a=n.build(n.normalizeInputs(A,i)),l=r.uuid;this.geometry.dispose(),this.geometry=a,this.geometry.uuid=l,this.geometry.computeBoundingSphere(),Vt(this),r.getAttribute("randomColor")&&Ft(this)}clone(A){let t=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,r=Xn(t),n=this.material;return new this.constructor(r,n).copy(this,A)}copy(A,t=!0){return super.copy(A,t),A.cloner&&(this.cloner=new Kt(A,A.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(A){A===null||A.disabled?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Kt(this,A)),this.cloner.fromClonerState(A))}fromState(A,t){return super.fromState(A),A.type==="Mesh"&&(this.setFromClonerState(A.cloner),this.castShadow=A.castShadow??!0,this.receiveShadow=A.receiveShadow??!0,this.booleanExclude=A.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(it.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(A=!1){return A?this.booleanWasTransformed=!0:this.freeBooleanPointer(),bt(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let A of this.children)vt(A)&&(A.freeBooleanPointer(),bt(A)&&A.invalidateUpstreamBooleanData())}};var Pw=new Ir.Vector3(0,0,1),Tm=new Ir.Vector3,Nm=new Ir.Vector3,Im=new Ir.Matrix3,on=class extends ZA{constructor(A=fe.create({}),t){super(A,t);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new Ir.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=A.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(A){return super.fromState(A),this.shape.update(),this}setHelperVisibility(){}updateGeometry(A,t){if(super.updateGeometry(A,t),"userData"in this.geometry){let r=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:r})}}setShape(A){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=A,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(A,t){super.updateWorldMatrix(A,t),Im.getNormalMatrix(this.matrixWorld),Tm.copy(Pw).applyMatrix3(Im).normalize(),Nm.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Tm,Nm)}clone(A){let t=this.shape.clone(),r=this.material,n=this.geometry.userData,i=fe.create(Object.assign({},n,{shape:t})),a=new on(i,r).copy(this,A);return a.shape=t,t.update(),a}raycast(A,t){ZA.prototype.raycast.call(this,A,t)}};var nn=new kA.Vector3,ic=new kA.Vector3,$t=class extends jt(Ze(kA.Camera),qs){constructor(A=window.innerWidth,t=window.innerHeight,r=45,n,i=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=Er.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=A,this.height=t,this.orthoCamera=new kA.OrthographicCamera(A*-.5,A*.5,t*.5,t*-.5,n??-5e4,i),this.perspCamera=new kA.PerspectiveCamera(r,A/t,n??50,i),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(A,t){let r=new $t().fromState(t);return r.objectHelper.update(),r.uuid=A,r}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(A,t){A==="PerspectiveCamera"?this.perspCamera.near=t:this.orthoCamera.near=t}setZoom(A,t){t>=0&&(A==="PerspectiveCamera"?this.perspCamera.zoom=t:this.orthoCamera.zoom=t)}set cameraType(A){A==="PerspectiveCamera"?this.toPerspective():A==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(A){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=A:this.orthoCamera.near=A}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(A){A>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=A:this.orthoCamera.zoom=A)}lookAt(A){super.lookAt(A),this.getWorldPosition(nn),this.targetOffset=nn.distanceTo(A)}getTarget(A=new kA.Vector3){return this.getWorldDirection(ic),this.getWorldPosition(nn),ic.multiplyScalar(this.targetOffset),A.copy(nn).add(ic),A}getDistanceToTarget(){let A=this.getTarget();return this.getWorldPosition(nn),nn.distanceTo(A)}updateUp(){let A=this.getWorldQuaternion(new kA.Quaternion),t=new kA.Vector3(0,0,1).applyQuaternion(A),r=new kA.Vector3().copy(kA.Object3D.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(A);let n=new kA.Vector3().copy(kA.Object3D.DefaultUp).projectOnPlane(t),i=new kA.Vector3().crossVectors(n,r).dot(t)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*i}getViewFrontToObject(A){let t=A.getWorldPosition(new kA.Vector3),n=A.getWorldDirection(new kA.Vector3).multiplyScalar(this.targetOffset);return{position:t.clone().add(n),target:t}}getViewToObject(A){let t=A.getWorldPosition(new kA.Vector3),n=this.getWorldDirection(new kA.Vector3).multiplyScalar(this.targetOffset);return{position:t.clone().sub(n),target:t}}setViewplaneSize(A,t){this.left=-A*.5,this.right=A*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=A/t,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(A){this.perspCamera.setFocalLength(A),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(A,t,r,n,i,a){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(A,t,r,n,i,a):this.orthoCamera.setViewOffset(A,t,r,n,i,a)}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(A){super.updateMatrixWorld(A),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(A,t){super.updateWorldMatrix(A,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(A,t){return super.copy(A,t),this.orthoCamera.copy(A.orthoCamera),this.perspCamera.copy(A.perspCamera),this.left=A.left,this.right=A.right,this.top=A.top,this.bottom=A.bottom,this.far=A.far,this.view=A.view===null?null:Object.assign({},A.view),this._cameraType=A._cameraType,this.aspect=A.aspect,this.fov=A.fov,this.focus=A.focus,this.filmGauge=A.filmGauge,this.filmOffset=A.filmOffset,this.targetOffset=A.targetOffset,this.updateProjectionMatrix(),this}toCameraState(A=[]){let t={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 Io(t,A)}fromCameraState(A){let{orthographic:t,perspective:r}=A;return A.type!==void 0&&(this.cameraType=A.type),A.far!==void 0&&(this.far=A.far),t!==void 0&&(t.near!==void 0&&(this.orthoCamera.near=t.near),t.zoom!==void 0&&(this.orthoCamera.zoom=t.zoom)),r!==void 0&&(r.near!==void 0&&(this.perspCamera.near=r.near),r.fov!==void 0&&(this.perspCamera.fov=r.fov),r.zoom!==void 0&&(this.perspCamera.zoom=r.zoom)),A.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),A.up!==void 0&&this.up.fromArray(A.up),A.targetOffset!==void 0&&(this.targetOffset=A.targetOffset),A.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=A.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(A){return{...super.toState(A),...this.toCameraState(A),type:this.cameraType}}fromState(A){return super.fromState(A),this.fromCameraState(A),this}};var bi=require("three");var Pm=new bi.Matrix4;var ha=class extends ZA{constructor(A=new bi.BufferGeometry,t){super(A,t);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(A,t=!0){if(this.booleanMeshSetAddress!==-1)return;for(let n=0;n<this.children.length;n++){let i=this.children[n];bt(i)&&i.recomputeBoolean(A===!0,t)}this.meshSetAddresses=[];for(let n=0;n<this.children.length;n++){let i=this.children[n];if(Ep(i)&&i.booleanExclude===!1&&i.geometry.attributes.position?.count>0&&i.geometry.drawRange.count>0){if(i.booleanMeshSetAddress===-1){if((i.geometry.index??i.geometry.getAttribute("position")).count/3<15e5&&(i.booleanMeshSetAddress=it.getMeshSet(i.geometry,A===!0,t)),i.booleanMeshSetAddress===-1)return;it.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1}else bt(i)&&i.needsTransformForDownstream===!0?(it.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.needsTransformForDownstream=!1):i.booleanWasTransformed===!0&&(Pm.multiplyMatrices(i.matrix,i.booleanMatrixInvOld),it.transformMeshSet(i.booleanMeshSetAddress,Pm),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1);this.meshSetAddresses.push(i.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(A===!0)return it.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let r=this.geometry;r.dispose(),this.geometry=new bi.BufferGeometry,this.geometry.userData=r.userData,this.geometry.boundingSphere=r.boundingSphere;try{this.booleanMeshSetAddress=it.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(n){this.booleanMeshSetAddress=0,console.error(n)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Vt(this),Ft(this)}updateGeometry(A,t){let r=A.parameters;r.operation!==void 0&&(this.booleanOp=r.operation),r.phongAngle!==void 0&&(this.phongAngle=r.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Yr=require("three");var sn=class extends jt(Ze(Yr.DirectionalLight),Ro){constructor(...A){super(...A);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 r=this.shadow.camera;r.top=1250,r.bottom=-1250,r.right=1250,r.left=-1250,r.near=-1e4,r.far=2500;let n=new Yr.CameraHelper(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(A,t,r){let n=new sn().fromState(t,r);return n.uuid=A,n}get gizmos(){return this._gizmos}showGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Yr.CameraHelper&&(t.visible=!0)}}hideGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Yr.CameraHelper&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Yr.CameraHelper&&t.update()}}updateMatrixWorld(A){super.updateMatrixWorld(A),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(A,t){let r=A.depth!==void 0&&A.depth!==this.shadow.camera.far||A.size!==void 0&&A.size/2!==this.shadow.camera.right;return super.fromLightState(A,t),A.size!==void 0&&Lp(this,A.size),A.shadowRadius!==void 0&&(this.shadow.radius=A.shadowRadius),A.shadowResolution!==void 0&&(this.shadow.mapSize.set(A.shadowResolution,A.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),r&&this.update(),this}fromState(A,t){return super.fromState(A),this.fromDirectionalLightState(A,t),this}};var ve=require("three");var an=class extends jt(Ze(ve.PointLight),Fo){constructor(...A){super(...A);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 r=this.shadow.camera;r.fov=90,r.aspect=1,r.near=100,r.far=2500;let n=new ve.Vector3(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),i=new ve.Vector3(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z),a=new ve.Box3(n,i),l=new ve.Box3Helper(a,new ve.Color(16755200));l.visible=!1,this._gizmos.shadowmap=l,this.update()}static createFromState(A,t,r){let n=new an().fromState(t,r);return n.uuid=A,n}get gizmos(){return this._gizmos}showGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof ve.Box3Helper&&(t.visible=!0)}}hideGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof ve.Box3Helper&&(t.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let A in this._gizmos){let t=this._gizmos[A];if(t instanceof ve.Box3Helper){let r=this.shadow.camera,n=new ve.Vector3(-r.far+this.position.x,-r.far+this.position.y,-r.far+this.position.z),i=new ve.Vector3(r.far+this.position.x,r.far+this.position.y,r.far+this.position.z);t.box.set(n,i),t.updateMatrixWorld(!0)}}}updateMatrixWorld(A){super.updateMatrixWorld(A),this.objectHelper&&this.objectHelper.update()}fromPointLightState(A,t){return super.fromLightState(A,t),A.distance!==void 0&&(this.distance=A.distance),A.decay!==void 0&&(this.decay=A.decay),A.shadowRadius!==void 0&&(this.shadow.radius=A.shadowRadius),A.shadowResolution!==void 0&&(this.shadow.mapSize.set(A.shadowResolution,A.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(A,t){return super.fromState(A),this.fromPointLightState(A,t),this}};var Ve=require("three");var Om=new Ve.Vector3,Cm=new Ve.Vector3,Lm=new Ve.Quaternion,ln=class extends jt(Ze(Ve.SpotLight),Fn){constructor(...A){super(...A);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 r=this.shadow.camera;r.fov=Ve.MathUtils.RAD2DEG*2*this.angle,r.aspect=1,r.near=100,r.far=2500;let n=new Ve.CameraHelper(this.shadow.camera);n.visible=!1,this._gizmos.shadowmap=n,this.update()}static createFromState(A,t,r){let n=new ln().fromState(t,r);return n.uuid=A,n}get gizmos(){return this._gizmos}showGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Ve.CameraHelper&&(t.visible=!0)}}hideGizmos(){for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Ve.CameraHelper&&(t.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let A in this._gizmos){let t=this._gizmos[A];t instanceof Ve.CameraHelper&&t.update()}}updateMatrixWorld(A){super.updateMatrixWorld(A),Cm.setFromMatrixPosition(this.matrixWorld),Lm.setFromRotationMatrix(this.matrixWorld),Om.copy(this.up).applyQuaternion(Lm).negate().multiplyScalar(this.distance),this.target.position.copy(Cm).add(Om),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(A,t){return super.fromLightState(A,t),A.distance!==void 0&&(this.distance=A.distance),A.decay!==void 0&&(this.decay=A.decay),A.angle!==void 0&&(this.angle=A.angle),A.penumbra!==void 0&&(this.penumbra=A.penumbra),A.shadowRadius!==void 0&&(this.shadow.radius=A.shadowRadius),A.shadowResolution!==void 0&&(this.shadow.mapSize.set(A.shadowResolution,A.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(A,t){return super.fromState(A),this.fromSpotLightState(A,t),this}};var Mm=o=>o.tagName==="VIDEO",cn=class{static resize(e,A,t){let r=e/A,n;if(!t.image||!t.video)return;let i=t.image;Mm(i)?n=i.videoWidth/i.videoHeight:n=i.width/i.height,r>n&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1*n/r):t.repeat.set(1,1*n/r)),r<n&&(t.imageType=="WEBCAM"?t.repeat.set(1*r/n*-1,1):t.repeat.set(1*r/n,1)),r==n&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1):t.repeat.set(1,1))}static resizeTextureLayer(e,A,t){let r=e/A,n=t.image!==void 0?t.image.width/t.image.height:1,i;r>n?i={x:1,y:n/r}:r<n?i={x:r/n,y:1}:i={x:1,y:1},t.repeat.set(i.x,i.y),t.updateMatrix()}static resizeTextureLayers(e,A,t){let r=t.layers;for(let n=0;n<r.length;n++){let i=r[n];bm(i)&&cn.resizeTextureLayer(e,A,i.uniforms[`f${i.id}_texture`].value)}}static resizeComplex(e,A,t,r){let n=e/A,i,a=t.image;Mm(a)?i=a.videoWidth/a.videoHeight:i=a.width/a.height,r.geometry.type.includes("Shape")?(n>i&&(t.imageType=="WEBCAM"?t.repeat.set(1/e*-1,1/A*i/n):t.repeat.set(1/e,1/A*i/n)),n<i&&(t.imageType=="WEBCAM"?t.repeat.set(1/e*n/i*-1,1/A):t.repeat.set(1/e*n/i,1/A)),n==i&&(t.imageType=="WEBCAM"?t.repeat.set(1/e*-1,1/A):t.repeat.set(1/e,1/A))):(n>i&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1*i/n):t.repeat.set(1,1*i/n)),n<i&&(t.imageType=="WEBCAM"?t.repeat.set(1*n/i*-1,1):t.repeat.set(1*n/i,1)),n==i&&(t.imageType=="WEBCAM"?t.repeat.set(-1,1):t.repeat.set(1,1)))}};var ga=class extends ZA{constructor(A,t){super(A,t);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(A,t){super.updateGeometry(A,t),this.material.layers&&cn.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var un=class extends ZA{constructor(A,t){super(A,t);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var ya=class extends un{constructor(A,t){super(A,t);this.objectType="NonParametric"}};var Em,Si=new Promise(o=>{Em=o}),Bm=!1;async function Dm(){if(Bm)return;let o=await import("./opentype.js");Em(o),Bm=!0}var Ti=class{async load(e,A,t=()=>{}){let{load:r}=await Si;r(e,(n,i)=>{n||!i?t(n??"Something went wrong"):A(i)})}async parse(e){let{parse:A}=await Si;try{return A(e)}catch(t){console.error(t)}}};async function Ow(o){return await(await fetch(o)).arrayBuffer()}var Cw=new Ti;async function sc(o){let e,A,t=!1;if(o.url?(e=await Ow(o.url),A=o.url,t=o.url.startsWith("/")):o.data&&(e=o.data.buffer),e){let r=await Cw.parse(e);if(r)return{font:r,url:A,intercepted:t,arr:e}}}var dn=require("three");var Gm=new dn.Vector3,Rm=new dn.Matrix4,Vm=new dn.Ray;function Fm(o){let e=!1;return o.scene.objects.traverse((A,t)=>{t.type==="Mesh"&&t.geometry.type==="TextGeometry"&&(e=!0)}),e}var xa=class extends ZA{constructor(A,t,r){super(new Ko(t.geometry,r),r.material(t.material));this.data=t;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.name=t.name,this.uuid=A,this.updateState(t,r)}async updateGeometry(A,t){let r=A.parameters,n={...this.geometry.userData.parameters,...r};this.geometry.userData={parameters:n,type:"TextGeometry"},t&&(r.font||!this.geometry.font&&t.getFont(n.font))&&await this.geometry.updateFont(r.font??n.font,t),await this.geometry.update(n),Vt(this),Ft(this);let{wrappedText:i,charCoords:a,charWidths:l}=this.geometry;this.wrappedText=i,this.charWidths=l,this.charCoords=a,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateState(A,t){this.data=A,this.material=t.material(A.material),this.fromState(A,t),this.updateGeometry({parameters:A.geometry},t)}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(A,t){let{matrixWorld:r}=this;if(Rm.copy(r).invert(),Vm.copy(A.ray).applyMatrix4(Rm),Vm.intersectBox(this.singleBBox,Gm)){let n=Gm.applyMatrix4(r),i=A.ray.origin.distanceTo(n);t.push({distance:i,point:n.clone(),object:this})}}};var Pe=require("three");var Um=Ei(zm());var ac;Eo.then(o=>{ac=o});var Hm=new Pe.Matrix4,Lw=new Pe.Matrix4,Mw=new Pe.Matrix4,ut=new Pe.Box3,Pr=new Pe.Vector3,Bw=new Pe.Matrix4,Ew=new Pe.Matrix4;var pn=class extends ZA{constructor(A,t,r,n){super(r??t,n);this.subdivPointer=A;this.originalGeometry=t;this.subdividedGeometry=r;this.objectType="SubdivObject";this.hiddenMatrixOld=new Pe.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new Pe.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(A,t,r){let{subdivPointer:n,originalGeometry:i,subdividedGeometry:a}=$e.build(t.geometry,void 0,void 0,!t.flatShading),l=r.material(t.material),u=new pn(n,i,a||void 0,l);return t.geometry.phongAngle!==void 0&&(u.phongAngle=t.geometry.phongAngle),u.calcBoundingBox(),u.freeSubdivPointer(),u.uuid=A,u.fromState(t),u}buildFromStore(A,t){let{originalGeometry:r,subdividedGeometry:n,subdivPointer:i}=$e.build(A,t,this.subdivPointer,this.smoothShading,this.shearScale);A.phongAngle!==void 0&&(this.phongAngle=A.phongAngle),this.subdivPointer=i,r!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=r),n!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=n??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Vt(this),Ft(this),A.width&&(this.geometry.userData.parameters={width:A.width,height:A.height,depth:A.depth})}updateMesh(A=!1){$e.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,A?this.shearScaleInv:void 0),this.subdividedGeometry&&$e.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,A?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=$e.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=$e.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(A,t){this.geometry=this.originalGeometry,ZA.prototype.raycast.call(this,A,t),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let A=this.matrixWorld.elements,t=[[A[0],A[4],A[8]],[A[1],A[5],A[9]],[A[2],A[6],A[10]]],{u:r,v:n,q:i}=(0,Um.SVD)(t),a=Hm.set(r[0][0],r[0][1],r[0][2],0,r[1][0],r[1][1],r[1][2],0,r[2][0],r[2][1],r[2][2],0,0,0,0,1),l=Lw.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),u=Mw.copy(l).transpose();this.shearScale=Bw.makeScale(i[0],i[1],i[2]).multiply(u).premultiply(l),this.shearScaleInv=Ew.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(a,u),i.every(s=>Math.abs(i[0]-s)<.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 A=this.originalGeometry;A.boundingSphere===null&&(A.boundingSphere=new Pe.Sphere);let t=A.attributes.position,r=A.boundingSphere.center;ut.setFromBufferAttribute(t),ut.getCenter(r),A.boundingSphere.radius=r.distanceTo(ut.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ut.getSize(Pr);let n={width:Pr.x,height:Pr.y,depth:Pr.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(A){let t=this.originalGeometry;ut.min.set(A[0],A[2],A[4]),ut.max.set(A[1],A[3],A[5]),this.shearScaleInv&&(ut.min.applyMatrix4(this.shearScaleInv),ut.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new Pe.Sphere);let r=t.boundingSphere.center;ut.getCenter(r),t.boundingSphere.radius=r.distanceTo(ut.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ut.getSize(Pr);let n={width:Pr.x,height:Pr.y,depth:Pr.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(ac.free_bvh(this.subdivPointer),ac.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(A,t){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:A.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:A.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:A.parameters.depth/this.geometry.userData.parameters.depth,km(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(km(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...A.parameters}}};function km(o,e,A,t){let r=o.position.array,n=o.normal.array,i=Hm.makeScale(e,A,t).invert().elements,a,l,u;for(var s=0,c=r.length;s<c;s+=3)r[s]*=e,r[s+1]*=A,r[s+2]*=t,a=n[s],l=n[s+1],u=n[s+2],n[s]=i[0]*a+i[4]*l+i[8]*u,n[s+1]=i[1]*a+i[5]*l+i[9]*u,n[s+2]=i[2]*a+i[6]*l+i[10]*u}var Or=require("three");function Wm(o,e){e.flatShading!==void 0&&(o.flatShading=e.flatShading,o.needsUpdate=!0),e.wireframe!==void 0&&(o.wireframe=e.wireframe),e.side!==void 0&&(e.side===0?o.side=Or.FrontSide:e.side===1?o.side=Or.BackSide:o.side=Or.DoubleSide)}function Dw(o,e){if(Array.isArray(o.material))for(let A of o.material)Wm(A,e);else{let A=o.material;Wm(A,e)}o.objectType==="SubdivObject"&&e.flatShading!==void 0&&(o.material.flatShading=!1,o.smoothShading=!e.flatShading,o.updateMesh())}function qm(o,e,A){let t;if(e.geometry.type==="SubdivGeometry")t=pn.createFromState(o,e,A);else{let r=e.geometry.type==="BooleanGeometry"?new Or.BufferGeometry:ra(e.geometry,A),n="materials"in e?e.materials.map(i=>A.material(i)):A.material(e.material);Co.is2DParametricMesh(r.userData.type)?t=new ga(r,n):r?.userData.type==="VectorGeometry"?t=new on(r,n):e.geometry.type==="NonParametricGeometry"?t=new ya(r,n):e.geometry.type==="BooleanGeometry"?(t=new ha(void 0,n),t.booleanOp=e.geometry.operation,e.geometry.phongAngle!==void 0&&(t.phongAngle=e.geometry.phongAngle)):t=new un(r,n),t.uuid=o,t.fromState(e,A)}return Dw(t,e),t}function Qm(o,e,A){return e.type==="Mesh"?e.geometry.type==="TextGeometry"?new xa(o,e,A):qm(o,e,A):e.type==="Empty"?new _t().createFromState(o,e):e.type==="PointLight"?an.createFromState(o,e,A):e.type==="SpotLight"?ln.createFromState(o,e,A):e.type==="DirectionalLight"?sn.createFromState(o,e,A):ro.is(e.type)?$t.createFromState(o,e):(console.error(e),new _t)}var Xr=class extends Ue{};var Ar=require("three");function Ym(o,e){let A=!1,t=e.getLayersOfType("transmission"),r=e.getLayersOfType("outline");return r.length>0&&(o.layers.set(8),t.length>0&&o.layers.enable(3),A=!0,Ft(o),Vt(o)),t.length===0&&r.length===0&&o.layers.set(0),A}function Xm(o,e){if(!e.layers)return!1;let A=!1,t=e.getLayersOfType("transmission"),r=e.getLayersOfType("outline");return t.length>0&&(o.layers.set(3),r.length>0&&o.layers.enable(8),A=!0),t.length===0&&r.length===0&&o.layers.set(0),A}function Km(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof Ar.Mesh)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)Ym(A,A.material[t])&&(e=!0);else Ym(A,A.material)&&(e=!0)}),e}function Zm(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof Ar.Mesh)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)Xm(A,A.material[t])&&(e=!0);else Xm(A,A.material)&&(e=!0)}),e}function Jm(o){"material"in o&&Rw(o.material),"geometry"in o&&o.geometry.dispose()}function Rw(o){fp(o).forEach(e=>{e instanceof Xr||e.dispose()})}var Vw=new Ar.Raycaster,Fw=new Ar.Matrix4,jw=new Ar.Ray;function _m(o,e,A){let t=o.cloner;if(t)for(let r of t.children){let n=Fw.copy(r.matrixWorld).invert(),i=jw.copy(e.ray).applyMatrix4(n),a=o.matrixWorld;i.applyMatrix4(a);let l=Vw;l.set(i.origin,i.direction),l.near=e.near,l.far=e.far,l.intersectObject(o,!1).length>0&&A.push({object:o})}}var $m=new zt.Vector3,lc=class extends Fs(zt.Scene){constructor(A,t){super();this.objectType="Scene";this.backupFog=new zt.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 re(1,1,1,1);this.entityByUuid={};this.ambientLight=new zt.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=A.postprocessing,this.objectsData=A.objects.map(({data:r,id:n})=>({data:r,id:n})),this.init(A,t),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Zm(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Km(this),this.needsNormalDirty=!1),this._needsNormal}find(A){if(A===""||A===void 0)return;let t=this.entityByUuid[A];return t===void 0?this.getObjectByProperty("uuid",A):t}get enableFog(){return this.fog!==null}set enableFog(A){this.fog=A===!0?this.backupFog:null}init(A,t){if(this.createChildrenObjects(A.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(ae(A.backgroundColor,t)),this.updateFog(A.fog,t),this.updateAmbientLight(A.environment.ambientLight,t),this.activeCamera=this.personalCamera,A.publish.playCamera!==null){let r=this.find(A.publish.playCamera);r instanceof $t&&this.switchActiveCamera(r)}this.traverse(r=>{bt(r)&&r.recomputeBoolean()}),setTimeout(()=>this.updateCloner())}clearScene(){this.traverseEntity(A=>{Jm(A)});for(let A of this.children)Ke(A)&&A.removeFromParent()}resetAfterClear(A,t){this.init(A,t)}createPersonalCamera(){let A=$t.createFromState(lc.PERSONAL_CAMERA_ID,{...Os.defaultData,name:"Personal Camera"});return A.objectHelper.visible=!1,delete A.isEntity,this.registerObjectCreatedInLegacy(A),A}raycast(A){let t=[],r=n=>{for(let i of n.children)Ke(i)&&!i.raycastLock&&i.visible&&((vt(i)||Rs(i)&&this.enableHelpers&&i.objectHelper.visible)&&(A.intersectObject(i,!1,t),_m(i,A,t)),r(i))};return r(this),t}traverseEntity(A){for(let t of this.children)Ke(t)&&t.traverseEntity(A)}traverseVisibleEntity(A){for(let t of this.children)Ke(t)&&t.visible&&t.traverseVisibleEntity(A)}updateFog(A,t){this.enableFog=A.enabled,this.fogUseBGColor=A.useBackgroundColor,A.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=ae(A.color,t),this.backupFog.near=A.near,this.backupFog.far=A.far}dispose(){this.clearScene()}updateAmbientLight(A,t){Cp(this.ambientLight,A,t),A.groundColor!==void 0&&(this.ambientLight.groundColor=ae(A.groundColor,t)),A.enabled!==void 0&&(this.ambientLight.visible=A.enabled)}switchActiveCamera(A){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=A,A.objectHelper.visible=!1}setBackgroundColor(A){this.bgColor=A,this.fogUseBGColor===!0&&(this.backupFog.color=A)}createChildrenObjects(A,t,r){for(let n of A)this.createChildObject(n.id,n.data,n.children,t,r)}updateObjectCloner(A){if(A.parameters.type==="toObject"){let t=A.parameters.toObject.object;if(!t)return;let r=this.find(t);if(r){let n,i=this.objectsData.find(a=>a.id===r.uuid);if(i&&(n=i.data),r.objectType==="SubdivObject"){let a=r;n&&!a.subdivPointer&&a.buildFromStore(n.geometry)}A.setObjectForSample(r),A.update()}}}updateCloner(){this.traverse(A=>{let t=A;t.cloner&&(t.cloner._updateCount(0),t.cloner.update(),this.updateObjectCloner(t.cloner))})}registerObjectCreatedInLegacy(A){this.entityByUuid[A.uuid]=A}unregisterObject(A){delete this.entityByUuid[A.uuid];for(let t of A.children)this.unregisterObject(t)}createChildObject(A,t,r,n,i){let a=Qm(A,t,i);return a&&(this.entityByUuid[A]=a,n.add(a),bt(n)&&vt(a)&&(a.prevBooleanObjectParent=n),this.createChildrenObjects(r,a,i)),"cloner"in a&&(a.cloner?._updateCount(0),a.cloner?.update()),a}getCenter(A){let t=[];for(let n=0,i=A.length;n<i;++n){let{id:a,recursive:l}=A[n],u=this.find(a),s=l?u.recursiveBBox:u.singleBBox;t.push(...s.vertices)}let r=new zt.Box3;return r.setFromPoints(t),r.getCenter($m),$m}copyMatrixWorld(A,t){if(A===null){t.identity();return}let r=this.find(A);r?t.copy(r.matrixWorld):t.identity()}copyParentMatrixWorld(A,t){if(A===null){t.identity();return}let r=this.find(A)?.parent;r?t.copy(r.matrixWorld):t.identity()}traverseMaterial(A){this.traverseEntity(t=>{if(t instanceof ZA)if(Array.isArray(t.material))for(let r=0;r<t.material.length;r++)t.material[r]instanceof Ue&&A(t.material[r]);else t.material instanceof Ue&&A(t.material)})}updateCanvasSize(A,t){this.activeCamera.setViewplaneSize(A,t);let r,n;A>=t?(r=t/A,n=1):(r=1,n=A/t),this.traverseMaterial(i=>{i.getLayersOfType("transmission").forEach(l=>{l.uniforms[`f${l.id}_aspectRatio`].value.x=r,l.uniforms[`f${l.id}_aspectRatio`].value.y=n})})}},Ni=lc;Ni.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var rh=Ei(Ah());var eh=new Map;function th(o){if(typeof o=="string")return o;let e=eh.get(o);return e||(e={url:URL.createObjectURL(new Blob([o]))},eh.set(o,e)),e.url}var fn=class{constructor({src:e,volume:A,delay:t,loop:r}){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 n;typeof e=="string"?n={src:e}:n={src:th(e),format:"wav"},this.sound=new rh.Howl(n),this.sound.on("end",this.onEnd),this.src=e,A!==void 0&&(this.volume=A),t!==void 0&&(this.delay=t),r!==void 0&&(this.loop=r)}get status(){return this._status}get volume(){return this._volume}set volume(e){this._volume=e,this.sound.volume(e)}get loop(){return this._loop}set loop(e){this._loop=e,this.loopsRemaining=e}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(e,A=1e3){e?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,A),this.clearFade()},e)):this.sound.fade(this._volume,0,A)}on(e,A,t){this.sound.on(e,A,t)}off(e,A,t){this.sound.off(e,A,t)}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(e=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var ne=require("three"),wa=class{constructor(){this.type="ShapePath";this.color=new ne.Color;this.subPaths=[];this.currentPath=null}moveTo(e,A){return this.currentPath=new ne.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,A),this}lineTo(e,A){return this.currentPath?.lineTo(e,A),this}quadraticCurveTo(e,A,t,r){return this.currentPath?.quadraticCurveTo(e,A,t,r),this}bezierCurveTo(e,A,t,r,n,i){return this.currentPath?.bezierCurveTo(e,A,t,r,n,i),this}splineThru(e){return this.currentPath?.splineThru(e),this}toShapes(){let A={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},t={loc:A.ORIGIN,t:0};function r(m,h,x,y){let b=m.x,w=h.x,v=x.x,I=y.x,S=m.y,g=h.y,P=x.y,N=y.y,O=(I-v)*(S-P)-(N-P)*(b-v),T=(w-b)*(S-P)-(g-S)*(b-v),L=(N-P)*(w-b)-(I-v)*(g-S),B=O/L,k=T/L;if(L===0&&O!==0||B<=0||B>=1||k<0||k>1)return null;if(O===0&&L===0){for(let X=0;X<2;X++)if(n(X===0?x:y,m,h),t.loc===A.ORIGIN){let eA=X===0?x:y;return{x:eA.x,y:eA.y,t:t.t}}else if(t.loc===A.BETWEEN){let eA=+(b+t.t*(w-b)).toPrecision(10),nA=+(S+t.t*(g-S)).toPrecision(10);return{x:eA,y:nA,t:t.t}}return null}else{for(let nA=0;nA<2;nA++)if(n(nA===0?x:y,m,h),t.loc===A.ORIGIN){let U=nA===0?x:y;return{x:U.x,y:U.y,t:t.t}}let X=+(b+B*(w-b)).toPrecision(10),eA=+(S+B*(g-S)).toPrecision(10);return{x:X,y:eA,t:B}}}function n(m,h,x){let y=x.x-h.x,b=x.y-h.y,w=m.x-h.x,v=m.y-h.y,I=y*v-w*b;if(m.x===h.x&&m.y===h.y){t.loc=A.ORIGIN,t.t=0;return}if(m.x===x.x&&m.y===x.y){t.loc=A.DESTINATION,t.t=1;return}if(I<-Number.EPSILON){t.loc=A.LEFT;return}if(I>Number.EPSILON){t.loc=A.RIGHT;return}if(y*w<0||b*v<0){t.loc=A.BEHIND;return}if(Math.sqrt(y*y+b*b)<Math.sqrt(w*w+v*v)){t.loc=A.BEYOND;return}let S;y!==0?S=w/y:S=v/b,t.loc=A.BETWEEN,t.t=S}function i(m,h){let x=[],y=[];for(let b=1;b<m.length;b++){let w=m[b-1],v=m[b];for(let I=1;I<h.length;I++){let S=h[I-1],g=h[I],P=r(w,v,S,g);P!==null&&x.find(N=>N.t<=P.t+Number.EPSILON&&N.t>=P.t-Number.EPSILON)===void 0&&(x.push(P),y.push(new ne.Vector2(P.x,P.y)))}}return y}function a(m,h,x){let y=new ne.Vector2;h.getCenter(y);let b=[];return x.forEach(w=>{w.boundingBox.containsPoint(y)&&i(m,w.points).forEach(I=>{b.push({identifier:w.identifier,isCW:w.isCW,point:I})})}),b.sort((w,v)=>w.point.x-v.point.x),b}function l(m,h,x,y,b){(b==null||b==="")&&(b="nonzero");let w=new ne.Vector2;m.boundingBox.getCenter(w);let v=[new ne.Vector2(x,w.y),new ne.Vector2(y,w.y)],I=a(v,m.boundingBox,h);I.sort((T,L)=>T.point.x-L.point.x);let S=[],g=[];I.forEach(T=>{T.identifier===m.identifier?S.push(T):g.push(T)});let P=S[0].point.x,N=[],O=0;for(;O<g.length&&g[O].point.x<P;)N.length>0&&N[N.length-1]===g[O].identifier?N.pop():N.push(g[O].identifier),O++;if(N.push(m.identifier),b==="evenodd"){let T=N.length%2===0,L=N[N.length-2];return{identifier:m.identifier,isHole:T,for:L}}else if(b==="nonzero"){let T=!0,L=null,B=null;for(let k=0;k<N.length;k++){let X=N[k];h[X]&&(T?(B=h[X].isCW,T=!1,L=X):B!==h[X].isCW&&(B=h[X].isCW,T=!0))}return{identifier:m.identifier,isHole:T,for:L}}else console.warn('fill-rule: "'+b+'" is currently not implemented.')}let u=0,s=999999999,c=-999999999,d=[];this.subPaths.forEach(m=>{let h=m.getPoints(),x=-999999999,y=999999999,b=-999999999,w=999999999;for(let v=0;v<h.length;v++){let I=h[v];I.y>x&&(x=I.y),I.y<y&&(y=I.y),I.x>b&&(b=I.x),I.x<w&&(w=I.x)}c<=b&&(c=b+1),s>=w&&(s=w-1),h.length&&d.push({curves:m.curves,points:h,isCW:ne.ShapeUtils.isClockWise(h),identifier:u++,boundingBox:new ne.Box2(new ne.Vector2(w,y),new ne.Vector2(b,x))})});let p=d.map(m=>l(m,d,s,c,this.userData?.style.fillRule)),f=[];return d.forEach(m=>{let h=p[m.identifier];if(h&&!h.isHole){let x=new ne.Shape;x.curves=m.curves,p.filter(b=>b?.isHole&&b.for===m.identifier).forEach(b=>{if(b){let w=d[b.identifier],v=new ne.Path;v.curves=w.curves,x.holes.push(v)}}),f.push(x)}}),f}};var mn=require("three");var oh=require("three/examples/jsm/loaders/DRACOLoader.js");var Cr;function zw(){return Cr||(Cr=new oh.DRACOLoader,Cr.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Cr.decoderPending}async function kw(o){if(Cr){let e={attributeIDs:Cr.defaultAttributeIDs,attributeTypes:Cr.defaultAttributeTypes,useUniqueIDs:!1},A;try{A=await Cr.decodeGeometry(new Int8Array(o).buffer,e)}catch(t){console.error(t)}if(A)return{index:A.index?{array:A.index.array}:void 0,attributes:Object.entries(A.attributes).map(([t,r])=>({name:t,itemSize:r.itemSize,array:r.array}))}}return null}async function nh(o,e){let[A,t]=Ea(Zi.deserialize(new Uint8Array(o)));bp(A);let r=[];A.scene.objects.traverse((n,i)=>{i.type==="Mesh"&&i.geometry.type==="NonParametricGeometry"&&i.geometry.data.draco!==void 0&&r.push(i)}),r.length&&await zw();for(let n of r){let i=await kw(Ce(n.geometry.data.draco));if(i){i.index&&(n.geometry.data.index={array:i.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let a={};i.attributes.forEach(({name:l,array:u,itemSize:s})=>{a[l]={array:u,itemSize:s,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=a,n.geometry.data.draco=void 0}}return e&&e(A),t.result().data}function Uw(o,e){return e.state.glyphIndex===o||e.state.fina===o||e.state.medi===o||e.state.init===o}var Sa=class{constructor(e,A){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=e.isUserFont??!1,this._loadingPromise=sc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,A())})}update(e,A){this._isLoaded=!1,this._isUserFont=e.isUserFont??!1,this._loadingPromise=sc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,A())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(e,A,t){let{Bidi:r}=await Si,n=new r,i=c=>e.charToGlyphIndex(c.char);n.registerModifier("glyphIndex",null,i),n.applyFeatures(e,e.defaultRenderOptions.features),n.getTextGlyphs(A);let a=n.tokenizer.tokens,l=[],u=0,s=t.length===a.length;for(let c=0;c<t.length;c++){let d=t[c].index,p=String.fromCharCode(t[c].unicode),f=a[u];if(Uw(d,f)||s)l.push({char:p,index:d,replacements:[f.state.glyphIndex],replacementChars:[f.char]}),u++;else{let m=f.char,h="",x=[f.state.glyphIndex],y=[],b=!1;for(;!b;)u++,h=A.charAt(u),m+=h,x.push(e.charToGlyphIndex(h)),y=e.stringToGlyphs(m),y.length===1&&y[0].index===d&&(b=!0),u>A.length&&(b=!0);l.push({char:p,index:d,replacements:x,replacementChars:Array.from(m)}),u++}}return l}async generateShapes(e,A){await this._loadingPromise;let t=this.font,r=A.fontSize/this.unitsPerEm,n=A.fontSize*A.lineHeight,i=e.map(y=>this.getTextWidth(y,A)),a=A.width,l=this.getCharWidth(`
|
|
1335
|
+
`,A),u=A.horizontalAlign===1?l:0,s=this.computeSpaceWidthForLine(e,0,A),c=this.getLineInitialOffsetX(i[0],a,A.horizontalAlign,e[0],l),d=this.getLineInitialOffsetY(n,e.length,A.height,r,A.verticalAlign),p=[],f=e.map(y=>[]),m=e.map(y=>[]),h;for(let y=0;y<e.length;y++){let b=e[y],w={features:{liga:!0}},v=[];try{v=t.stringToGlyphs(b,w)}catch(S){console.warn(S)}c=this.getLineInitialOffsetX(i[y],a,A.horizontalAlign,b,l);let I=[];try{I=await this.reverseLigaturesTable(t,b,v)}catch(S){console.warn(S)}s=this.computeSpaceWidthForLine(e,y,A);for(let S=0;S<v.length;S++){let g=v[S],P=g.index===0?`
|
|
1336
|
+
`:g.unicode?String.fromCharCode(g.unicode):void 0,N=I[S],O=0,T=0;S===0&&A.horizontalAlign===2&&g.leftSideBearing!==void 0&&(T=-g.leftSideBearing*r),h&&(O=t.getKerningValue(g,h)*r),c+=T+O;let L=0;if(P===`
|
|
1337
|
+
`)L=u;else if(P===" ")L=s;else{let B=this.createPath(g,r,c,d,A);B&&(L=B.offsetX-(O+T),p.push(B.path))}if(N.replacements.length===1)m[y].push([c,d]),f[y].push(L);else{let B=N.replacements.map(nA=>(t.glyphs.get(nA).advanceWidth??0)*r),k=B.reduce((nA,U)=>nA+=U,0),X=B.map(nA=>nA/k),eA=c;for(let nA=0;nA<X.length;nA++){let U=L*X[nA];m[y].push([eA,d]),f[y].push(U),eA+=U}}c+=L,h=g}d-=n}let x=[];for(let y=0,b=p.length;y<b;y++)x.push(...p[y].toShapes());return{shapes:x,charWidths:f,lineWidths:i,charCoords:m}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(e,A,t,r,n){return(t===3||t===2)&&r.indexOf(`
|
|
1338
|
+
`)>=0&&(e-=n),t===3?A*.5-e*.5:t===2?A-e:0}getLineInitialOffsetY(e,A,t,r,n){let i=A*e,a=Math.abs(this.ascender-this.descender)*r,l=e-a,u=-this.ascender*r-l/2;return n===3?-(t-i-u):n===2?-(t*.5-i*.5-u):u}createPath(e,A,t,r,n){let i=e.getPath(t,-r,n.fontSize,{kerning:!1,letterSpacing:n.letterSpacing});if(!i){console.error('THREE.Font: character "'+e+'" does not exists in font family '+this.familyName+".");return}let a=new wa,l=(e.advanceWidth??1)*A;if(e)for(let u of i.commands){let s=a.currentPath?.currentPoint;if(!(s&&u.type!=="Z"&&s.x===u.x&&-s.y===u.y))switch(u.type){case"M":a.moveTo(u.x,-u.y);break;case"L":a.lineTo(u.x,-u.y);break;case"Q":a.quadraticCurveTo(u.x1,-u.y1,u.x,-u.y);break;case"C":a.bezierCurveTo(u.x1,-u.y1,u.x2,-u.y2,u.x,-u.y);break}}return a.subPaths.forEach(u=>{let s=Hw(u.curves);s!==void 0&&u.currentPoint.distanceTo(s)>0&&u.lineTo(s.x,s.y)}),{offsetX:l+n.fontSize*n.letterSpacing,path:a}}getCharWidth(e,A){return this.font?.getAdvanceWidth(e,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}getTextWidth(e,A){return this.font?.getAdvanceWidth(e,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}computeSpaceWidthForLine(e,A,t){let r=this.getCharWidth(" ",t),n=e[A];if(n){let i=this.countSpaces(n.trimEnd());if(t.horizontalAlign===4&&A<e.length-1&&i){let a=t.width,l=this.getTextWidth(n,t);return(a-(l-i*r))/i}}return r}countSpaces(e){return(e.match(/ /g)||[]).length}};function Hw(o){if(o.length){let e=o[0];if(e instanceof mn.LineCurve)return e.v1;if(e instanceof mn.CubicBezierCurve||e instanceof mn.QuadraticBezierCurve)return e.v0}}var Ii=class{constructor(e,A={}){this.deletedMaterial=new Xr(Te.defaultTwoLayerData("phong"),this);this.deletedImage=new Dt(Es.emptyImage);this.deletedVideo=new Dt(oo.defaultVideo);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(A.images)for(let[t,r]of Object.entries(A.images))this.addImage(t,r);if(A.videos)for(let[t,r]of Object.entries(A.videos))this.addVideo(t,r);if(A.audios)for(let[t,r]of Object.entries(A.audios))this.addAudio(t,r.data);this.reset(e)}setOnImageLoad(e){this._onImageLoad=e}setOnFontLoad(e){this._onFontLoad=e}reset(e){for(let[A,t]of Object.entries(e.images))this.addImage(A,t);for(let[A,t]of Object.entries(e.videos))this.addVideo(A,t);for(let[A,t]of Object.entries(e.colors))this.addColor(A,t);for(let[A,t]of Object.entries(e.materials))this.addMaterial(A,new Xr(t,this));for(let[A,t]of Object.entries(e.audios))this.addAudio(A,t.data);for(let[A,t]of Object.entries(e.fonts))this.addFont(A,t);this.penumbraSize=e.penumbraSize}addMaterial(e,A){A.uuid=e,this.materials[e]=A}deleteMaterial(e){this.materials[e]&&(this.materials[e].dispose(),delete this.materials[e])}getMaterial(e){let A=this.materials[e];return A}getMaterialOrDeletedPlaceholder(e){return this.materials[e]??this.deletedMaterial}material(e){return typeof e=="string"?this.getMaterialOrDeletedPlaceholder(e):new Ue(e,this)}getMaterials(){return this.materials}addImage(e,A){return this.images[e]?(this.images[e].updateSrc(A.data),!0):(this.images[e]=new Dt(A,this.onImageLoad),!1)}deleteImage(e){this.images[e]&&delete this.images[e]}getDefaultImage(){return this.images.image_0}getImage(e){return this.images[e]??this.deletedImage}image(e){return typeof e=="string"?this.getImage(e):new Qr(e,this.onImageLoad)}addVideo(e,A){return this.videos[e]?(this.videos[e].updateSrc(A.data),!0):(this.videos[e]=new Dt(A,this.onImageLoad),!1)}deleteVideo(e){this.videos[e]&&delete this.videos[e]}getVideo(e){return this.videos[e]??this.deletedVideo}video(e){return typeof e=="string"?this.getVideo(e):new Qr(e,this.onImageLoad)}addColor(e,A){return this.colors[e]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e),"a"in A?this.colors[e].setRGBA(A.r,A.g,A.b,A.a):this.colors[e].setRGBA(A.r,A.g,A.b,1),!0):("a"in A?this.colors[e]=new Tr(A.r,A.g,A.b,A.a):this.colors[e]=new Tr(A.r,A.g,A.b,1),!1)}updateColor(e,A){if(this.colors[e]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(e);let t=this.colors[e];return this.colors[e].r=A.r??t.r,this.colors[e].g=A.g??t.g,this.colors[e].b=A.b??t.b,this.colors[e].a=A.a??t.a,!0}return!1}deleteColor(e){this.colors[e]&&delete this.colors[e]}getColor(e){return this.colors[e]}color(e){let A;if(typeof e=="string"){let t=this.getColor(e);t?A=t:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),A=new re(0,0,0,0))}else return"a"in e?new re(e.r,e.g,e.b,e.a):new re(e.r,e.g,e.b,1);return A}addAudio(e,A){this.audios[e]=A}getAudio(e){let A=this.audios[e];if(A instanceof fn)return A;{let t=new fn({src:A});return this.audios[e]=t,t}}deleteAudio(e){this.audios[e]&&delete this.audios[e]}addFont(e,A){this.fonts[e]=new Sa(A,this.onFontLoad)}getFont(e){return this.fonts[e]}deleteFont(e){this.fonts[e]&&delete this.fonts[e]}dispose(){Object.keys(this.materials).forEach(A=>this.deleteMaterial(A)),this._onImageLoad=void 0,this._onFontLoad=void 0,Object.values(this.audios).forEach(A=>{A instanceof fn&&A.dispose()}),this.audios={}}},g5=new Ii(Ls.emptyData());var Ww=require("three"),qw=require("three/examples/jsm/utils/BufferGeometryUtils.js");function ih(o){let e;if(!!o.index)for(let A=0;A<o.index.array.length;A+=3)e=o.index.array[A],o.index.array[A]=o.index.array[A+2],o.index.array[A+2]=e}var Pi=require("three");function sh(o){let e=new Set;return o.traverse(A=>{if(vt(A))if(HA(A.material))A.material.forEach(t=>{let r=t;e.has(r)||e.add(r)});else{let t=A.material;e.has(t)||e.add(t)}}),e.forEach(A=>{if(A instanceof Array)return;let t=A.onBeforeCompile.bind(A);if(Qw(A)){Object.assign(A,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Pi.Color,specularColor:new Pi.Color});let r=0;A.onBeforeCompile=(n,i)=>{t&&t(n,i),n.uniforms=Object.assign({},Pi.ShaderLib.physical.uniforms,n.uniforms),A.getLayersOfType("transmission").forEach(a=>{if(n.uniforms.transmissionSamplerMap.value){let l=a.color;l&&(l.transmissionSamplerMap.value=n.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=n.uniforms.transmissionSamplerSize.value)}else r++,r<2&&(A.needsUpdate=!0)})}}else Yw(A)||(A.onBeforeCompile=(r,n)=>{t&&t(r,n),A.transparent=!1})}),o}function Qw(o){return o.getLayersOfType("transmission").length>0}function Yw(o){let e=0;return o.layers.forEach(A=>{if(A.type!=="light"&&A.type!=="fresnel"){let t=A.uniforms["f"+A.id+"_alpha"];t&&(e+=(1-e)*t.value)}}),e<1}function ah(o){return o.traverse(e=>{if(e.type==="Camera"){let A=e;A.type=A.cameraType}}),o}function lh(o){let e=[],A=(t,r=0)=>{let n=r>0?t+r:t;return e.includes(n)?A(t,r+1):n};return o.traverse(t=>{if(e.includes(t.name)){let r=t.name,n=A(t.name);if(t.name=n,t.isMesh){let i=t;i.material instanceof Array?i.material.forEach(a=>{a.name=a.name.replace(r,n)}):i.material.isAsset||(i.material.name=i.material.name.replace(r,n))}}e.push(t.name)}),o}var ch=require("three/examples/jsm/utils/BufferGeometryUtils.js");function uh(o){let e=[];return o.traverse(A=>{A instanceof Kt&&e.push(A)}),e.forEach(A=>{let t=A.object,n=A.children.map(a=>{a.updateMatrix();let l=a.geometry.clone().applyMatrix4(a.matrix);return a.matrix.determinant()<0&&ih(l),l}),i=(0,ch.mergeBufferGeometries)(A.parameters.hideBase?n:[t instanceof ZA?t.geometry:[],...n]);t instanceof ZA&&(t.geometry=i),t.remove(A),t.cloner=void 0}),o}function dh(o){return o.traverse(e=>{e.matrixAutoUpdate=!0}),o}function ph(o){Object.values(o.shared.materials).forEach(e=>{cc(e)}),o.scene.objects.traverse((e,A)=>{"material"in A?cc(A.material):"materials"in A&&A.materials.forEach(t=>{cc(t)})})}function cc(o){if(typeof o=="string")return;let e=[];o.layers.forEach((A,t)=>{A.type==="outline"&&e.push(t)}),e.reverse().forEach(A=>{o.layers.delete(A)}),e.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var fh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Ta=class extends Na.Loader{load(e,A,t,r=console.error){let n=new Na.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),e.endsWith(".spline")?console.warn(fh+" The .spline files are only meant to be used by the Editor."):e.endsWith(".splinecode")||console.warn(fh),n.load(e,async i=>{try{if(typeof i=="string")throw new Error("The .spline file is not binary!");let a=await this.parse(i);A(a)}catch(a){r(a)}},t,r)}async parse(e){let A=await nh(e,ph);Fm(A)&&await Dm();let t=new Ii(A.shared);Object.values(t.getMaterials()).forEach(i=>Object.assign(i,{isAsset:!0}));let r=new Ni(A.scene,t);r.remove(r.personalCamera),A.scene.environment.ambientLight.enabled||r.remove(r.ambientLight);let n=A.scene.publish.playCamera;if(n){let i=r.find(n);i&&Op(i)&&Object.assign(i,{makeDefault:!0})}return r=uh(r),r=sh(r),r=ah(r),r=lh(r),r=dh(r),r}};
|