@splinetool/loader 0.9.154 → 0.9.156

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,16 +1,16 @@
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===`
1
+ "use strict";var Nh=Object.create;var Fi=Object.defineProperty;var Ph=Object.getOwnPropertyDescriptor;var Ch=Object.getOwnPropertyNames;var Ih=Object.getPrototypeOf,Lh=Object.prototype.hasOwnProperty;var Da=(o,e)=>()=>(e||o((e={exports:{}}).exports,e),e.exports),wc=(o,e)=>{for(var A in e)Fi(o,A,{get:e[A],enumerable:!0})},Sc=(o,e,A,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ch(e))!Lh.call(o,r)&&r!==A&&Fi(o,r,{get:()=>e[r],enumerable:!(t=Ph(e,r))||t.enumerable});return o};var ji=(o,e,A)=>(A=o!=null?Nh(Ih(o)):{},Sc(e||!o||!o.__esModule?Fi(A,"default",{value:o,enumerable:!0}):A,o)),Mh=o=>Sc(Fi({},"__esModule",{value:!0}),o);var Ep=Da((ul,Bp)=>{(function(o,e){typeof ul=="object"?Bp.exports=e():typeof define=="function"&&define.amd?define(e):o.Alea=e()})(ul,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 Zf=Da((ra,Kf)=>{(function(o,e){typeof ra=="object"&&typeof Kf<"u"?e(ra):typeof define=="function"&&define.amd?define(["exports"],e):e((o=typeof globalThis<"u"?globalThis:o||self).SVDJS={})})(ra,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,g,x=e[0].length,w=e.length;if(w<x)throw new TypeError("Invalid matrix: m < n");for(var v=[],b=[],N=[],S=A==="f"?w:x,y=m=d=0;y<w;y++)b[y]=new Array(S).fill(0);for(y=0;y<x;y++)N[y]=new Array(x).fill(0);var P,O=new Array(x).fill(0);for(y=0;y<w;y++)for(i=0;i<x;i++)b[y][i]=e[y][i];for(y=0;y<x;y++){for(v[y]=d,f=0,l=y+1,i=y;i<w;i++)f+=Math.pow(b[i][y],2);if(f<n)d=0;else for(p=(c=b[y][y])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y]=c-d,i=l;i<x;i++){for(f=0,a=y;a<w;a++)f+=b[a][y]*b[a][i];for(c=f/p,a=y;a<w;a++)b[a][i]=b[a][i]+c*b[a][y]}for(O[y]=d,f=0,i=l;i<x;i++)f+=Math.pow(b[y][i],2);if(f<n)d=0;else{for(p=(c=b[y][y+1])*(d=c<0?Math.sqrt(f):-Math.sqrt(f))-f,b[y][y+1]=c-d,i=l;i<x;i++)v[i]=b[y][i]/p;for(i=l;i<w;i++){for(f=0,a=l;a<x;a++)f+=b[i][a]*b[y][a];for(a=l;a<x;a++)b[i][a]=b[i][a]+f*v[a]}}m<(h=Math.abs(O[y])+Math.abs(v[y]))&&(m=h)}if(t)for(y=x-1;0<=y;y--){if(d!==0){for(p=b[y][y+1]*d,i=l;i<x;i++)N[i][y]=b[y][i]/p;for(i=l;i<x;i++){for(f=0,a=l;a<x;a++)f+=b[y][a]*N[a][i];for(a=l;a<x;a++)N[a][i]=N[a][i]+f*N[a][y]}}for(i=l;i<x;i++)N[y][i]=0,N[i][y]=0;N[y][y]=1,d=v[y],l=y}if(A){if(A==="f")for(y=x;y<w;y++){for(i=x;i<w;i++)b[y][i]=0;b[y][y]=1}for(y=x-1;0<=y;y--){for(l=y+1,d=O[y],i=l;i<S;i++)b[y][i]=0;if(d!==0){for(p=b[y][y]*d,i=l;i<S;i++){for(f=0,a=l;a<w;a++)f+=b[a][y]*b[a][i];for(c=f/p,a=y;a<w;a++)b[a][i]=b[a][i]+c*b[a][y]}for(i=y;i<w;i++)b[i][y]=b[i][y]/d}else for(i=y;i<w;i++)b[i][y]=0;b[y][y]=b[y][y]+1}}for(r*=m,a=x-1;0<=a;a--)for(var C=0;C<50;C++){for(P=!1,l=a;0<=l;l--){if(Math.abs(v[l])<=r){P=!0;break}if(Math.abs(O[l-1])<=r)break}if(!P){for(s=0,u=l-(f=1),y=l;y<a+1&&(c=f*v[y],v[y]=s*v[y],!(Math.abs(c)<=r));y++)if(d=O[y],O[y]=Math.sqrt(c*c+d*d),s=d/(p=O[y]),f=-c/p,A)for(i=0;i<w;i++)h=b[i][u],g=b[i][y],b[i][u]=h*s+g*f,b[i][y]=-h*f+g*s}if(g=O[a],l===a){if(g<0&&(O[a]=-g,t))for(i=0;i<x;i++)N[i][a]=-N[i][a];break}for(m=O[l],c=(((h=O[a-1])-g)*(h+g)+((d=v[a-1])-(p=v[a]))*(d+p))/(2*p*h),d=Math.sqrt(c*c+1),c=((m-g)*(m+g)+p*(h/(c<0?c-d:c+d)-p))/m,y=l+(f=s=1);y<a+1;y++){if(d=v[y],h=O[y],p=f*d,d*=s,g=Math.sqrt(c*c+p*p),c=m*(s=c/(v[y-1]=g))+d*(f=p/g),d=-m*f+d*s,p=h*f,h*=s,t)for(i=0;i<x;i++)m=N[i][y-1],g=N[i][y],N[i][y-1]=m*s+g*f,N[i][y]=-m*f+g*s;if(g=Math.sqrt(c*c+p*p),c=(s=c/(O[y-1]=g))*d+(f=p/g)*h,m=-f*d+s*h,A)for(i=0;i<w;i++)h=b[i][y-1],g=b[i][y],b[i][y-1]=h*s+g*f,b[i][y]=-h*f+g*s}v[l]=0,v[a]=c,O[a]=m}for(y=0;y<x;y++)O[y]<r&&(O[y]=0);return{u:b,q:O,v:N}},o.VERSION="1.1.1",Object.defineProperty(o,"__esModule",{value:!0})})});var fm=Da(fa=>{(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,g=p.match(/Version\/(.*?) /),x=h&&g&&parseInt(g[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:!!(!x&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&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 g=s._howls[f]._soundById(m[h]);g&&g._node&&!g._node._unlocked&&(g._node._unlocked=!0,g._node.load())}s._autoResume();var x=s.ctx.createBufferSource();x.buffer=s._scratchBuffer,x.connect(s.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof s.ctx.resume=="function"&&s.ctx.resume(),x.onended=function(){x.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 w=0;w<s._howls.length;w++)s._howls[w]._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 g=h._id;return d._queue.push({event:"play",action:function(){d.play(g)}}),g}if(p&&!h._paused)return c||d._loadQueue("play"),h._id;d._webAudio&&e._autoResume();var x=Math.max(0,h._seek>0?h._seek:d._sprite[s][0]/1e3),w=Math.max(0,(d._sprite[s][0]+d._sprite[s][1])/1e3-x),v=w*1e3/Math.abs(h._rate),b=d._sprite[s][0]/1e3,N=(d._sprite[s][0]+d._sprite[s][1])/1e3;h._sprite=s,h._ended=!1;var S=function(){h._paused=!1,h._seek=x,h._start=b,h._stop=N,h._loop=!!(h._loop||d._sprite[s][2])};if(x>=N){d._ended(h);return}var y=h._node;if(d._webAudio){var P=function(){d._playLock=!1,S(),d._refreshBuffer(h);var L=h._muted||d._muted?0:h._volume;y.gain.setValueAtTime(L,e.ctx.currentTime),h._playStart=e.ctx.currentTime,typeof y.bufferSource.start>"u"?h._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,w):h._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,w),v!==1/0&&(d._endTimers[h._id]=setTimeout(d._ended.bind(d,h),v)),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 O=function(){y.currentTime=x,y.muted=h._muted||d._muted||e._muted||y.muted,y.volume=h._volume*e.volume(),y.playbackRate=h._rate;try{var L=y.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,S(),L.then(function(){d._playLock=!1,y._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)),y.playbackRate=h._rate,y.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),v):(d._endTimers[h._id]=function(){d._ended(h),y.removeEventListener("ended",d._endTimers[h._id],!1)},y.addEventListener("ended",d._endTimers[h._id],!1))}catch(B){d._emit("playerror",h._id,B)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var C=window&&window.ejecta||!y.readyState&&e._navigator.isCocoonJS;if(y.readyState>=3||C)O();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",O(),y.removeEventListener(e._canPlayEvent,T,!1)};y.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 g=0;g<p.length;g++)h=s._soundById(p[g]),h&&(h._volume=d,c[2]||s._stopFade(p[g]),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 g=f._soundById(m[h]);if(g){if(p||f._stopFade(m[h]),f._webAudio&&!g._muted){var x=e.ctx.currentTime,w=x+d/1e3;g._volume=s,g._node.gain.setValueAtTime(s,x),g._node.gain.linearRampToValueAtTime(c,w)}f._startFadeInterval(g,s,c,d,m[h],typeof p>"u")}}return f},_startFadeInterval:function(s,c,d,p,f,m){var h=this,g=c,x=d-c,w=Math.abs(x/.01),v=Math.max(4,w>0?p/w:p),b=Date.now();s._fadeTo=d,s._interval=setInterval(function(){var N=(Date.now()-b)/p;b=Date.now(),g+=x*N,g=Math.round(g*100)/100,x<0?g=Math.max(d,g):g=Math.min(d,g),h._webAudio?s._volume=g:h.volume(g,s._id,!0),m&&(h._volume=g),(d<c&&g<=d||d>c&&g>=d)&&(clearInterval(s._interval),s._interval=null,s._fadeTo=null,h.volume(d,s._id),h._emit("fade",s._id))},v)},_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 g=0;g<p.length;g++)if(h=s._soundById(p[g]),h){s.playing(p[g])&&(h._rateSeek=s.seek(p[g]),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 x=s.seek(p[g]),w=(s._sprite[h._sprite][0]+s._sprite[h._sprite][1])/1e3-x,v=w*1e3/Math.abs(h._rate);(s._endTimers[p[g]]||!h._paused)&&(s._clearTimer(p[g]),s._endTimers[p[g]]=setTimeout(s._ended.bind(s,h),v)),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 g=s.playing(p);g&&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 x=function(){g&&s.play(p,!0),s._emit("seek",p)};if(g&&!s._webAudio){var w=function(){s._playLock?setTimeout(w,0):x()};setTimeout(w,0)}else x()}else if(s._webAudio){var v=s.playing(p)?e.ctx.currentTime-h._playStart:0,b=h._rateSeek?h._rateSeek-h._seek:0;return h._seek+(b+v*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 g=Object.keys(p);for(m=0;m<g.length;m++)g[m].indexOf("_on")===0&&Array.isArray(p[g[m]])&&(p[g[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 fa<"u"&&(fa.Howler=e,fa.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 o1={};wc(o1,{default:()=>Ma});module.exports=Mh(o1);var Ba=require("three");var MA=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,MA.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,MA.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,MA.prototype),delete n[t],{data:n,actual:e,reverse:{type:1,id:t,data:r}}}}return null}};function yn(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"&&yn(t)}return Object.freeze(o)}function Tc(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{};function zi(o){let e={...o};return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}function xt(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 Oc(){return typeof process<"u"}function Nc(o,e){for(let A of o)e(A.id,A.data)!==!0&&Nc(A.children,e)}function Pc(o,e){if(e(o.id,o.data)!==!0)for(let A of o.children)Pc(A,e)}var ZA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,ZA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)yn(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&&Pc(r,t)}}traverse(A){Nc(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,ZA.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)=>Tc(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 xt(0,r,r);{let i=n[0].fi;return xt(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 xt(l,l+r,r)}else return xt(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={}));var yA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,yA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)yn(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,yA.prototype);let t=A;return Oc()||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 xt(0,t,t);{let n=r[0].fi;return xt(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 xt(a,a+t,t)}else return xt(n.fi,i.fi,t)}}};function _r(o){return o&&typeof o=="object"&&o instanceof ue}var ue=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?zi(t):new ue;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=zi(l),delete t[e.path[r-1]])}else{let l=A[r-1];if(l){let u=zi(l);u[e.path[r-1]]=t,t=u}else{let u=new ue;u[e.path[r-1]]=t,t=u}}r-=1}let i=Object.setPrototypeOf(t,ue.prototype),a={...e,props:n};return{data:i,actual:e,reverse:a}}},Ga;(t=>{function o(r,n){return gn(r,n)??r}t.apply=o;function e(r,n){return Cc(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=Qe.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=Ra([n],l);return u?(console.log(u),u):n}else return n}t.filterOp=A})(Ga||(Ga={}));function Ra(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=Ra(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 Bh(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 ZA){let A=Ra(o,e);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A}else{if(o instanceof yA)return Bh(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 Cc(o,e){if(o===void 0)return e;if(e===void 0)return o;if(!_r(e))return e;if(!_r(o))return Ga.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 ue;for(let r of A){let n=Cc(o===void 0?void 0:o[r],e===void 0?void 0:e[r]);t[r]=n}return t}function Ic(o,e){let A={cur:[],result:[],len:0};return o=xn(o,e,A)??o,[o,A.result]}function ki(o,e){return o===null?null:(o.cur[o.len]=e,o.len+=1,o)}function Ui(o){o&&(o.len-=1)}function Eh(o){if(o===null)return null;o.result.push(o.cur.slice(0,o.len))}function Lc(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=xn(n.data,e,ki(A,i));Ui(A),t=t||l!==void 0,l===void 0&&(l=n.data);let u=Lc(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 Dh(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=xn(n.data,e,ki(A,i));return Ui(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 xn(o,e,A){if(o instanceof ZA){let t=Lc(o,e,A);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}else{if(o instanceof yA)return Dh(o,e,A);if(Array.isArray(o)){let t=!1,r=o.map((n,i)=>{let a=xn(n,e,ki(A,i));return Ui(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=xn(i,e,ki(A,n));Ui(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");Eh(A)}return t}else return}}var Hi;(e=>{function o(A,t){let r=Qe.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})(Hi||(Hi={}));var he;(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 ue&&u.type===0&&(d=l.runOp({...u,path:s.slice(c.length)}),d===null&&(d=void 0)),c.length===s.length&&(l instanceof ZA||l instanceof yA||l instanceof MA?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 g=s[h],x=c[h];if(x instanceof ZA){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof yA){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof MA){if(typeof g=="number")throw new Error("illegal arg");m=x.modifyById(g,m)}else if(x instanceof ue){let w={...x,[g]:m};m=Object.setPrototypeOf(w,ue.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof g=="string"&&(g=parseInt(g),isNaN(g)))throw new Error("Invalid path");let w=m;m=[...x],m[g]=w}else m={...x,[g]: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 ZA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else if(l instanceof yA){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})(he||(he={}));var Va;(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=>he.subsumed(d,p))),...s]}l.compress=r;function n(u,s){return u.every(c=>s.every(d=>he.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=Qe.zoom(c,[...f.path,f.id]),h=he.apply(c,{...f,type:2});if(h!==null){c=h.data;let[g,x]=Ic(c,{[f.id]:m});c=g;for(let w of x){let v=w[w.length-1];w.splice(w.length-1,1),d.push({type:0,path:w,props:{[v]:m}}),p.push({type:0,path:w,props:{[v]:f.id}})}p.push(h.reverse),d.push(h.actual)}}else{let m=he.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})(Va||(Va={}));var Mc=Symbol(),Gh=Symbol(),vn=Symbol(),$t=class{reportOp(e,A,t=[]){let r=this;if(A===null)return;r._current=A.data;let n=t;for(;!(r instanceof qi);){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[vn];t&&t(),delete this._children[e]}}}},ja=class extends $t{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)}},za=class extends $t{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,MA.prototype)}runOp(e){this.reportOp(e,this._current.runOp(e))}},Bc={get(o,e){if(e===vn)return()=>{o._parent=null};if(e===Mc)return o._current;if(e===Gh)return o;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=Qi(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]}}},Rh={...Bc,set(o,e,A){let t={type:0,props:{[e]:ye(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}},Vh={...Bc,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 $t{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[vn]=()=>{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=Qi(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)}},Wi=class extends $t{constructor(e,A,t){super(),this._parent=e,this._path=A,this._current=t,this[vn]=()=>{this._parent=null}}feedOp(e){let{path:A,...t}=e;this.reportOp(t,he.apply(this._current,e),A)}},Ao=class extends $t{constructor(e,A,t){super(),this._children={},this._parent=e,this._path=A,this._current=t,this[vn]=()=>{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=Qi(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 Fa(o,e,A){if(o.length>0){let t=o[o.length-1];if(t.type===0&&e.type===0&&Qe.equal(t.path,A)){Object.assign(t.props,e.props);return}}o.push({...e,path:A})}var qi=class extends $t{constructor(e){super(),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){Fa(this.ts,A,e),Fa(this.actual,t,e),Fa(this.reverse,r,e)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Qi(o,e,A){return A instanceof ZA?new $r(o,e,A):A instanceof yA?new Ao(o,e,A):A instanceof ue?new Wi(o,e,A):A instanceof MA?new Proxy(new za(o,e,A),Vh):A!==null&&typeof A=="object"?Zr(A)?A:new Proxy(new ja(o,e,A),Rh):A}function ka(o){let e=new qi(o);return[Qi(e,"",o),e]}function Ua(o,e){let[A,t]=ka(o);return e(A),t.result()}function ye(o){return o instanceof $r||o instanceof Ao||o instanceof Wi?o._current:o!==null&&typeof o=="object"?o[Mc]:o}var Qe;(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 ZA||n instanceof $r)&&typeof i=="string")return n.data(i);if((n instanceof yA||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})(Qe||(Qe={}));function Ec(o,e){let A=[];if(e.length===o.length)for(var t=0;t<o.length;){if(e[t]==="*")A.push(o[t]);else if(o[t]!==e[t])return null;t+=1}else return null;return A}function Ar(o,e){let A=[];if(e.length<=o.length)for(var t=0;t<e.length;){if(e[t]==="*")A.push(o[t]);else if(o[t]!==e[t])return null;t+=1}else return null;return A}var Yi=class{},bn=class extends Yi{constructor(A){super();this.id=A}},wn=class extends Yi{constructor(A){super();this.data=A}};var Wa;try{Wa=new TextDecoder}catch{}var oA,tr,I=0;var kc=[],qa=kc,Qa=0,Ie={},OA,er,Ye=0,vt=0,ze,zt,be=[],BA,Dc={useRecords:!1,mapsAsObjects:!0},Sn=class{},Xa=new Sn;Xa.name="MessagePack 0xC1";var eo=!1,bt=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 Qc(()=>(Ki(),this?this.unpack(e,A):bt.prototype.unpack.call(Dc,e,A)));tr=A>-1?A:e.length,I=0,Qa=0,vt=0,er=null,qa=kc,ze=null,oA=e;try{BA=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 bt){if(Ie=this,this.structures)return OA=this.structures,Xi();(!OA||OA.length>0)&&(OA=[])}else Ie=Dc,(!OA||OA.length>0)&&(OA=[]);return Xi()}unpackMultiple(e,A){let t,r=0;try{eo=!0;let n=e.length,i=this?this.unpack(e,n):_i.unpack(e,n);if(A){for(A(i);I<n;)if(r=I,A(Xi())===!1)return}else{for(t=[i];I<n;)r=I,t.push(Xi());return t}}catch(n){throw n.lastPosition=r,n.values=t,n}finally{eo=!1,Ki()}}_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 Xi(){try{if(!Ie.trusted&&!eo){let e=OA.sharedLength||0;e<OA.length&&(OA.length=e)}let o=HA();if(I==tr)OA.restoreStructures&&Gc(),OA=null,oA=null,zt&&(zt=null);else if(I>tr){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 OA.restoreStructures&&Gc(),Ki(),(o instanceof RangeError||o.message.startsWith("Unexpected end of buffer"))&&(o.incomplete=!0),o}}function Gc(){for(let o in OA.restoreStructures)OA[o]=OA.restoreStructures[o];OA.restoreStructures=null}function HA(){let o=oA[I++];if(o<160)if(o<128){if(o<64)return o;{let e=OA[o&63]||Ie.getStructures&&Uc()[o&63];return e?(e.read||(e.read=Ka(e,o&63)),e.read()):o}}else if(o<144)if(o-=128,Ie.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Wc()]=HA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(HA(),HA());return e}else{o-=144;let e=new Array(o);for(let A=0;A<o;A++)e[A]=HA();return e}else if(o<192){let e=o-160;if(vt>=I)return er.slice(I-Ye,(I+=e)-Ye);if(vt==0&&tr<140){let A=e<16?Za(e):Hc(e);if(A!=null)return A}return Ya(e)}else{let e;switch(o){case 192:return null;case 193:return ze?(e=HA(),e>0?ze[1].slice(ze.position1,ze.position1+=e):ze[0].slice(ze.position0,ze.position0-=e)):Xa;case 194:return!1;case 195:return!0;case 196:return Ha(oA[I++]);case 197:return e=BA.getUint16(I),I+=2,Ha(e);case 198:return e=BA.getUint32(I),I+=4,Ha(e);case 199:return Pr(oA[I++]);case 200:return e=BA.getUint16(I),I+=2,Pr(e);case 201:return e=BA.getUint32(I),I+=4,Pr(e);case 202:if(e=BA.getFloat32(I),Ie.useFloat32>2){let A=Ji[(oA[I]&127)<<1|oA[I+1]>>7];return I+=4,(A*e+(e>0?.5:-.5)>>0)/A}return I+=4,e;case 203:return e=BA.getFloat64(I),I+=8,e;case 204:return oA[I++];case 205:return e=BA.getUint16(I),I+=2,e;case 206:return e=BA.getUint32(I),I+=4,e;case 207:return Ie.int64AsNumber?(e=BA.getUint32(I)*4294967296,e+=BA.getUint32(I+4)):e=BA.getBigUint64(I),I+=8,e;case 208:return BA.getInt8(I++);case 209:return e=BA.getInt16(I),I+=2,e;case 210:return e=BA.getInt32(I),I+=4,e;case 211:return Ie.int64AsNumber?(e=BA.getInt32(I)*4294967296,e+=BA.getUint32(I+4)):e=BA.getBigInt64(I),I+=8,e;case 212:if(e=oA[I++],e==114)return zc(oA[I++]&63);{let A=be[e];if(A)return A.read?(I++,A.read(HA())):A.noBuffer?(I++,A()):A(oA.subarray(I,++I));throw new Error("Unknown extension "+e)}case 213:return e=oA[I],e==114?(I++,zc(oA[I++]&63,oA[I++])):Pr(2);case 214:return Pr(4);case 215:return Pr(8);case 216:return Pr(16);case 217:return e=oA[I++],vt>=I?er.slice(I-Ye,(I+=e)-Ye):jh(e);case 218:return e=BA.getUint16(I),I+=2,vt>=I?er.slice(I-Ye,(I+=e)-Ye):zh(e);case 219:return e=BA.getUint32(I),I+=4,vt>=I?er.slice(I-Ye,(I+=e)-Ye):kh(e);case 220:return e=BA.getUint16(I),I+=2,Vc(e);case 221:return e=BA.getUint32(I),I+=4,Vc(e);case 222:return e=BA.getUint16(I),I+=2,Fc(e);case 223:return e=BA.getUint32(I),I+=4,Fc(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 Fh=/^[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=>Fh.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(HA);return o.highByte===0&&(o.read=Rc(e,o.read)),r()}let t={};for(let r=0,n=o.length;r<n;r++){let i=o[r];t[i]=HA()}return t}return A.count=0,o.highByte===0?Rc(e,A):A}var Rc=(o,e)=>function(){let A=oA[I++];if(A===0)return e();let t=o<32?-(o+(A<<5)):o+(A<<5),r=OA[t]||Uc()[t];if(!r)throw new Error("Record id is not defined for "+t);return r.read||(r.read=Ka(r,o)),r.read()};function Uc(){let o=Qc(()=>(oA=null,Ie.getStructures()));return OA=Ie._mergeStructures(o,OA)}var Ya=Zi,jh=Zi,zh=Zi,kh=Zi;function Zi(o){let e;if(o<16&&(e=Za(o)))return e;if(o>64&&Wa)return Wa.decode(oA.subarray(I,I+=o));let A=I+o,t=[];for(e="";I<A;){let r=oA[I++];if((r&128)===0)t.push(r);else if((r&224)===192){let n=oA[I++]&63;t.push((r&31)<<6|n)}else if((r&240)===224){let n=oA[I++]&63,i=oA[I++]&63;t.push((r&31)<<12|n<<6|i)}else if((r&248)===240){let n=oA[I++]&63,i=oA[I++]&63,a=oA[I++]&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+=ie.apply(String,t),t.length=0)}return t.length>0&&(e+=ie.apply(String,t)),e}function Vc(o){let e=new Array(o);for(let A=0;A<o;A++)e[A]=HA();return e}function Fc(o){if(Ie.mapsAsObjects){let e={};for(let A=0;A<o;A++)e[Wc()]=HA();return e}else{let e=new Map;for(let A=0;A<o;A++)e.set(HA(),HA());return e}}var ie=String.fromCharCode;function Hc(o){let e=I,A=new Array(o);for(let t=0;t<o;t++){let r=oA[I++];if((r&128)>0){I=e;return}A[t]=r}return ie.apply(String,A)}function Za(o){if(o<4)if(o<2){if(o===0)return"";{let e=oA[I++];if((e&128)>1){I-=1;return}return ie(e)}}else{let e=oA[I++],A=oA[I++];if((e&128)>0||(A&128)>0){I-=2;return}if(o<3)return ie(e,A);let t=oA[I++];if((t&128)>0){I-=3;return}return ie(e,A,t)}else{let e=oA[I++],A=oA[I++],t=oA[I++],r=oA[I++];if((e&128)>0||(A&128)>0||(t&128)>0||(r&128)>0){I-=4;return}if(o<6){if(o===4)return ie(e,A,t,r);{let n=oA[I++];if((n&128)>0){I-=5;return}return ie(e,A,t,r,n)}}else if(o<8){let n=oA[I++],i=oA[I++];if((n&128)>0||(i&128)>0){I-=6;return}if(o<7)return ie(e,A,t,r,n,i);let a=oA[I++];if((a&128)>0){I-=7;return}return ie(e,A,t,r,n,i,a)}else{let n=oA[I++],i=oA[I++],a=oA[I++],l=oA[I++];if((n&128)>0||(i&128)>0||(a&128)>0||(l&128)>0){I-=8;return}if(o<10){if(o===8)return ie(e,A,t,r,n,i,a,l);{let u=oA[I++];if((u&128)>0){I-=9;return}return ie(e,A,t,r,n,i,a,l,u)}}else if(o<12){let u=oA[I++],s=oA[I++];if((u&128)>0||(s&128)>0){I-=10;return}if(o<11)return ie(e,A,t,r,n,i,a,l,u,s);let c=oA[I++];if((c&128)>0){I-=11;return}return ie(e,A,t,r,n,i,a,l,u,s,c)}else{let u=oA[I++],s=oA[I++],c=oA[I++],d=oA[I++];if((u&128)>0||(s&128)>0||(c&128)>0||(d&128)>0){I-=12;return}if(o<14){if(o===12)return ie(e,A,t,r,n,i,a,l,u,s,c,d);{let p=oA[I++];if((p&128)>0){I-=13;return}return ie(e,A,t,r,n,i,a,l,u,s,c,d,p)}}else{let p=oA[I++],f=oA[I++];if((p&128)>0||(f&128)>0){I-=14;return}if(o<15)return ie(e,A,t,r,n,i,a,l,u,s,c,d,p,f);let m=oA[I++];if((m&128)>0){I-=15;return}return ie(e,A,t,r,n,i,a,l,u,s,c,d,p,f,m)}}}}}function Ha(o){return Ie.copyBuffers?Uint8Array.prototype.slice.call(oA,I,I+=o):oA.subarray(I,I+=o)}function Pr(o){let e=oA[I++];if(be[e])return be[e](oA.subarray(I,I+=o));throw new Error("Unknown extension type "+e)}var jc=new Array(4096);function Wc(){let o=oA[I++];if(o>=160&&o<192){if(o=o-160,vt>=I)return er.slice(I-Ye,(I+=o)-Ye);if(!(vt==0&&tr<180))return Ya(o)}else return I--,HA();let e=(o<<5^(o>1?BA.getUint16(I):o>0?oA[I]:0))&4095,A=jc[e],t=I,r=I+o-3,n,i=0;if(A&&A.bytes==o){for(;t<r;){if(n=BA.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 I=t,A.string;r-=3,t=I}for(A=[],jc[e]=A,A.bytes=o;t<r;)n=BA.getUint32(t),A.push(n),t+=4;for(r+=3;t<r;)n=oA[t++],A.push(n);let a=o<16?Za(o):Hc(o);return a!=null?A.string=a:A.string=Ya(o)}var zc=(o,e)=>{var A=HA();let t=o;e!==void 0&&(o=o<32?-((e<<5)+o):(e<<5)+o,A.highByte=e);let r=OA[o];return r&&r.isShared&&((OA.restoreStructures||(OA.restoreStructures=[]))[o]=r),OA[o]=A,A.read=Ka(A,t),A.read()},qc=typeof self=="object"?self:global;be[0]=()=>{};be[0].noBuffer=!0;be[101]=()=>{let o=HA();return(qc[o[0]]||Error)(o[1])};be[105]=o=>{let e=BA.getUint32(I-4);zt||(zt=new Map);let A=oA[I],t;A>=144&&A<160||A==220||A==221?t=[]:t={};let r={target:t};zt.set(e,r);let n=HA();return r.used?Object.assign(t,n):(r.target=n,n)};be[112]=o=>{let e=BA.getUint32(I-4),A=zt.get(e);return A.used=!0,A.target};be[115]=()=>new Set(HA());var Ja=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(o=>o+"Array");be[116]=o=>{let e=o[0],A=Ja[e];if(!A)throw new Error("Could not find typed array for code "+e);return new qc[A](Uint8Array.prototype.slice.call(o,1).buffer)};be[120]=()=>{let o=HA();return new RegExp(o[0],o[1])};be[98]=o=>{let e=(o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3],A=I;I+=e-4,ze=[HA(),HA()],ze.position0=0,ze.position1=0;let t=I;I=A;try{return HA()}finally{I=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 Qc(o){let e=tr,A=I,t=Qa,r=Ye,n=vt,i=er,a=qa,l=zt,u=ze,s=new Uint8Array(oA.slice(0,tr)),c=OA,d=OA.slice(0,OA.length),p=Ie,f=eo,m=o();return tr=e,I=A,Qa=t,Ye=r,vt=n,er=i,qa=a,zt=l,ze=u,oA=s,eo=f,OA=c,OA.splice(0,OA.length,...d),Ie=p,BA=new DataView(oA.buffer,oA.byteOffset,oA.byteLength),m}function Ki(){oA=null,zt=null,OA=null}function Yc(o){o.unpack?be[o.type]=o.unpack:be[o.type]=o}var Ji=new Array(147);for(let o=0;o<256;o++)Ji[o]=+("1e"+Math.floor(45.15-o*.30103));var _i=new bt({useRecords:!1}),Uh=_i.unpack,Hh=_i.unpackMultiple,Wh=_i.unpack,$i={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},qh=new Float32Array(1),cT=new Uint8Array(qh.buffer,0,4);var As;try{As=new TextEncoder}catch{}var es,$a,ts=typeof Buffer<"u",_a=ts?Buffer.allocUnsafeSlow:Uint8Array,Jc=ts?Buffer:Uint8Array,Xc=ts?4294967296:2144337920,V,YA,M=0,wt,St=null,Qh=/[\u0080-\uFFFF]/,Tn=Symbol("record-id"),Cr=class extends bt{constructor(e){super(e),this.offset=0;let A,t,r,n,i,a,l=0,u=Jc.prototype.utf8Write?function(y,P,O){return V.utf8Write(y,P,O)}:As&&As.encodeInto?function(y,P){return As.encodeInto(y,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,g=p+f+64;if(g>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],w=0,v=0;this.pack=this.encode=function(y,P){if(V||(V=new _a(8192),YA=new DataView(V.buffer,0,8192),M=0),wt=V.length-10,wt-M<2048?(V=new _a(V.length),YA=new DataView(V.buffer,0,V.length),wt=V.length-10,M=0):M=M+7&2147483640,t=M,a=s.structuredClone?new Map:null,s.bundleStrings?(St=["",""],V[M++]=214,V[M++]=98,St.position=M-t,M+=4):St=null,r=s.structures,r){r.uninitialized&&(r=s._mergeStructures(s.getStructures()));let O=r.sharedLength||0;if(O>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 C=0;C<O;C++){let T=r[C];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[Tn]=C+64}l=O}c||(r.nextId=O+64)}n&&(n=!1),i=r||[];try{if(b(y),St){YA.setUint32(St.position+t,M-St.position-t);let O=St;St=null,b(O[0]),b(O[1])}if(s.offset=M,a&&a.idsToInsert){M+=a.idsToInsert.length*6,M>wt&&S(M),s.offset=M;let O=Xh(V.subarray(t,M),a.idsToInsert);return a=null,O}return P&$c?(V.start=t,V.end=M,V):V.subarray(t,M)}finally{if(r){if(v<10&&v++,w>1e4)r.transitions=null,v=0,w=0,x.length>0&&(x=[]);else if(x.length>0&&!c){for(let O=0,C=x.length;O<C;O++)x[O][Tn]=0;x=[]}if(n&&s.saveStructures){let O=r.sharedLength||p;r.length>O&&(r=r.slice(0,O));let C=V.subarray(t,M);return s.saveStructures(r,l)===!1?(s._mergeStructures(s.getStructures()),s.pack(y)):(l=O,C)}}P&ey&&(M=t)}};let b=y=>{M>wt&&(V=S(M));var P=typeof y,O;if(P==="string"){let C=y.length;if(St&&C>=8&&C<4096){let B=Qh.test(y);St[B?0:1]+=y,V[M++]=193,b(B?-C:C);return}let T;C<32?T=1:C<256?T=2:C<65536?T=3:T=5;let L=C*3;if(M+L>wt&&(V=S(M+L)),C<64||!u){let B,k,X,eA=M+T;for(B=0;B<C;B++)k=y.charCodeAt(B),k<128?V[eA++]=k:k<2048?(V[eA++]=k>>6|192,V[eA++]=k&63|128):(k&64512)===55296&&((X=y.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);O=eA-M-T}else O=u(y,M+T,L);O<32?V[M++]=160|O:O<256?(T<2&&V.copyWithin(M+2,M+1,M+1+O),V[M++]=217,V[M++]=O):O<65536?(T<3&&V.copyWithin(M+3,M+2,M+2+O),V[M++]=218,V[M++]=O>>8,V[M++]=O&255):(T<5&&V.copyWithin(M+5,M+3,M+3+O),V[M++]=219,YA.setUint32(M,O),M+=4),M+=O}else if(P==="number")if(y>>>0===y)y<64?V[M++]=y:y<256?(V[M++]=204,V[M++]=y):y<65536?(V[M++]=205,V[M++]=y>>8,V[M++]=y&255):(V[M++]=206,YA.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?V[M++]=256+y:y>=-128?(V[M++]=208,V[M++]=y+256):y>=-32768?(V[M++]=209,YA.setInt16(M,y),M+=2):(V[M++]=210,YA.setInt32(M,y),M+=4);else{let C;if((C=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){V[M++]=202,YA.setFloat32(M,y);let T;if(C<4||(T=y*Ji[(V[M]&127)<<1|V[M+1]>>7])>>0===T){M+=4;return}else M--}V[M++]=203,YA.setFloat64(M,y),M+=8}else if(P==="object")if(!y)V[M++]=192;else{if(a){let T=a.get(y);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(y,{offset:M-t})}let C=y.constructor;if(C===Object)N(y,!0);else if(C===Array){O=y.length,O<16?V[M++]=144|O:O<65536?(V[M++]=220,V[M++]=O>>8,V[M++]=O&255):(V[M++]=221,YA.setUint32(M,O),M+=4);for(let T=0;T<O;T++)b(y[T])}else if(C===Map){O=y.size,O<16?V[M++]=128|O:O<65536?(V[M++]=222,V[M++]=O>>8,V[M++]=O&255):(V[M++]=223,YA.setUint32(M,O),M+=4);for(let[T,L]of y)b(T),b(L)}else{for(let T=0,L=es.length;T<L;T++){let B=$a[T];if(y instanceof B){let k=es[T];if(k.write){k.type&&(V[M++]=212,V[M++]=k.type,V[M++]=0),b(k.write.call(this,y));return}let X=V,eA=YA,nA=M;V=null;let U;try{U=k.pack.call(this,y,q=>(V=X,X=null,M+=q,M>wt&&S(M),{target:V,targetView:YA,position:M-q}),b)}finally{X&&(V=X,YA=eA,M=nA,wt=V.length-10)}U&&(U.length+M>wt&&S(U.length+M),M=Yh(U,V,M,k.type));return}}N(y,!y.hasOwnProperty)}}else if(P==="boolean")V[M++]=y?195:194;else if(P==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))V[M++]=211,YA.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)V[M++]=207,YA.setBigUint64(M,y);else if(this.largeBigIntToFloat)V[M++]=203,YA.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(P==="undefined")this.encodeUndefinedAsNil?V[M++]=192:(V[M++]=212,V[M++]=0,V[M++]=0);else if(P==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},N=this.useRecords===!1?this.variableMapSize?y=>{let P=Object.keys(y),O=P.length;O<16?V[M++]=128|O:O<65536?(V[M++]=222,V[M++]=O>>8,V[M++]=O&255):(V[M++]=223,YA.setUint32(M,O),M+=4);let C;for(let T=0;T<O;T++)b(C=P[T]),b(y[C])}:(y,P)=>{V[M++]=222;let O=M-t;M+=2;let C=0;for(let T in y)(P||y.hasOwnProperty(T))&&(b(T),b(y[T]),C++);V[O+++t]=C>>8,V[O+t]=C&255}:y=>{let P=Object.keys(y),O,C=i.transitions||(i.transitions=Object.create(null)),T=0;for(let B=0,k=P.length;B<k;B++){let X=P[B];O=C[X],O||(O=C[X]=Object.create(null),T++),C=O}let L=C[Tn];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<g||(L=h),i.nextOwnId=L+1):(L>=g&&(L=h),i.nextId=L+1);let B=P.highByte=L>=96&&m?L-96>>5:-1;C[Tn]=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&&(w+=v*T),x.length>=f&&(x.shift()[Tn]=0),x.push(C),b(P))}for(let B=0,k=P.length;B<k;B++)b(y[P[B]])},S=y=>{let P;if(y>16777216){if(y-t>Xc)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(Xc,Math.round(Math.max((y-t)*(y>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(y-t<<2,V.length-1)>>12)+1<<12;let O=new _a(P);return YA=new DataView(O.buffer,0,P),V.copy?V.copy(O,0,t,y):O.set(V.slice(t,y)),M-=t,t=0,wt=O.length-10,V=O}}useBuffer(e){V=e,YA=new DataView(V.buffer,V.byteOffset,V.byteLength),M=0}};$a=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Sn];es=[{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?Kc(o,16,e):Zc(ts?Buffer.from(o):new Uint8Array(o),e)}},{pack(o,e){let A=o.constructor;A!==Jc&&this.structuredClone?Kc(o,Ja.indexOf(A.name),e):Zc(o,e)}},{pack(o,e){let{target:A,position:t}=e(1);A[t]=193}}];function Kc(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 Zc(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 Yh(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 Xh(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 rr(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)");$a.unshift(o.Class),es.unshift(o)}Yc(o)}var _c=new Cr({useRecords:!1}),Kh=_c.pack,Zh=_c.pack;var{NEVER:Jh,ALWAYS:_h,DECIMAL_ROUND:$h,DECIMAL_FIT:Ay}=$i,$c=512,ey=1024;var Au=new Cr({structuredClone:!0});rr({Class:MA.prototype.constructor,type:1,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,MA.prototype),o}});rr({Class:yA.prototype.constructor,type:2,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,yA.prototype),o}});rr({Class:ZA.prototype.constructor,type:3,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,ZA.prototype),o}});rr({Class:bn.prototype.constructor,type:4,write(o){return o.id},read(o){return new bn(o)}});rr({Class:wn.prototype.constructor,type:5,write(o){return o.data},read(o){return new wn(o)}});rr({Class:ue.prototype.constructor,type:6,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,ue.prototype),o}});function ty(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 Al(o){if(Zr(o))return o;if(Array.isArray(o))return o.map(Al);if(typeof o=="object"&&o!==null){let e={};for(let A of Object.keys(o).sort())e[A]=Al(o[A]);return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}else return o}var rs;(t=>{function o(r){return Au.pack(r)}t.serialize=o;function e(r){return Au.unpack(r)}t.deserialize=e;function A(r){return ty(o(Al(r))).toString()}t.checksum=A})(rs||(rs={}));var eu;(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})(eu||(eu={}));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 tu;(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})(tu||(tu={}));var or;(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})(or||(or={}));var Le;(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})(Le||(Le={}));var it;(a=>{a.white={...Le.white,a:1},a.transparent={...Le.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{...Le.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 Le.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})(it||(it={}));var os;(e=>e.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(os||(os={}));var ru;(e=>e.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(ru||(ru={}));var ou;(e=>e.defaultData={control1:[.5,.05],control2:[.1,.3]})(ou||(ou={}));var kt;(A=>{A.all=["PerspectiveCamera","OrthographicCamera"];function e(t){return A.all.includes(t)}A.is=e})(kt||(kt={}));var Ir;(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})(Ir||(Ir={}));var On;(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(ry.forEach(i=>{Object.assign(n,{[i]:r[i]??t[i]})}),n.radial={...t.radial},r.radial){let i=t.radial,a=r.radial;oy.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;ny.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;iy.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;sy.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;ay.forEach(l=>{Object.assign(n.randomnessObject,{[l]:a[l]??i[l]})})}return n}A.merge=e})(On||(On={}));var ns;(t=>{t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let e=["radial","linear","grid","toObject","randomnessObject"];function A(r,n){let i=[];r.count!==void 0&&i.push({type:0,path:n,props:{count:r.count}});for(let a of e){let l=r[a];l&&Object.keys(l).length>0&&i.push({type:0,path:[...n,a],props:l})}return i}t.toOps=A})(ns||(ns={}));var ry=["count"],oy=["radius","start","end","position","scale","rotation"],ny=["position","scale","rotation"],iy=["count","size"],sy=["count","position","scale","rotation"],ay=["strength","scale","rotation","position","movement","seed","freqScale"];var is;(A=>{A.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function e(t){return A.all.includes(t)}A.is=e})(is||(is={}));var ss;(A=>{function o(t){return e(t)}A.defaultData=o;function e(t){if(t==="PointLight")return{type:t,color:it.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(t==="SpotLight")return{type:t,color:it.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:it.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ss||(ss={}));var el;(A=>{A.defaultData={castShadow:!0,receiveShadow:!0};function e(t,r){return t.castShadow===r.castShadow&&t.receiveShadow===r.receiveShadow}A.equals=e})(el||(el={}));var tl;(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})(tl||(tl={}));var as;(e=>e.defaultData={...tl.defaultData,...el.defaultData})(as||(as={}));var nu="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 ro;(A=>(A.defaultVideo={data:nu,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},A.maxSize=3e7))(ro||(ro={}));var ly=typeof global=="object"&&global&&global.Object===Object&&global,ls=ly;var cy=typeof self=="object"&&self&&self.Object===Object&&self,uy=ls||cy||Function("return this")(),JA=uy;var dy=JA.Symbol,we=dy;var iu=Object.prototype,py=iu.hasOwnProperty,fy=iu.toString,Nn=we?we.toStringTag:void 0;function my(o){var e=py.call(o,Nn),A=o[Nn];try{o[Nn]=void 0;var t=!0}catch{}var r=fy.call(o);return t&&(e?o[Nn]=A:delete o[Nn]),r}var su=my;var hy=Object.prototype,yy=hy.toString;function gy(o){return yy.call(o)}var au=gy;var xy="[object Null]",vy="[object Undefined]",lu=we?we.toStringTag:void 0;function by(o){return o==null?o===void 0?vy:xy:lu&&lu in Object(o)?su(o):au(o)}var ke=by;function wy(o){return o!=null&&typeof o=="object"}var ge=wy;var Sy="[object Symbol]";function Ty(o){return typeof o=="symbol"||ge(o)&&ke(o)==Sy}var oo=Ty;function Oy(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 cs=Oy;var Ny=Array.isArray,WA=Ny;var Py=1/0,cu=we?we.prototype:void 0,uu=cu?cu.toString:void 0;function du(o){if(typeof o=="string")return o;if(WA(o))return cs(o,du)+"";if(oo(o))return uu?uu.call(o):"";var e=o+"";return e=="0"&&1/o==-Py?"-0":e}var pu=du;function Cy(o){var e=typeof o;return o!=null&&(e=="object"||e=="function")}var _A=Cy;function Iy(o){return o}var us=Iy;var Ly="[object AsyncFunction]",My="[object Function]",By="[object GeneratorFunction]",Ey="[object Proxy]";function Dy(o){if(!_A(o))return!1;var e=ke(o);return e==My||e==By||e==Ly||e==Ey}var no=Dy;var Gy=JA["__core-js_shared__"],ds=Gy;var fu=function(){var o=/[^.]+$/.exec(ds&&ds.keys&&ds.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}();function Ry(o){return!!fu&&fu in o}var mu=Ry;var Vy=Function.prototype,Fy=Vy.toString;function jy(o){if(o!=null){try{return Fy.call(o)}catch{}try{return o+""}catch{}}return""}var Ut=jy;var zy=/[\\^$.*+?()[\]{}|]/g,ky=/^\[object .+?Constructor\]$/,Uy=Function.prototype,Hy=Object.prototype,Wy=Uy.toString,qy=Hy.hasOwnProperty,Qy=RegExp("^"+Wy.call(qy).replace(zy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Yy(o){if(!_A(o)||mu(o))return!1;var e=no(o)?Qy:ky;return e.test(Ut(o))}var hu=Yy;function Xy(o,e){return o?.[e]}var yu=Xy;function Ky(o,e){var A=yu(o,e);return hu(A)?A:void 0}var Me=Ky;var Zy=Me(JA,"WeakMap"),ps=Zy;var gu=Object.create,Jy=function(){function o(){}return function(e){if(!_A(e))return{};if(gu)return gu(e);o.prototype=e;var A=new o;return o.prototype=void 0,A}}(),xu=Jy;function _y(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 vu=_y;function $y(o,e){var A=-1,t=o.length;for(e||(e=Array(t));++A<t;)e[A]=o[A];return e}var fs=$y;var Ag=800,eg=16,tg=Date.now;function rg(o){var e=0,A=0;return function(){var t=tg(),r=eg-(t-A);if(A=t,r>0){if(++e>=Ag)return arguments[0]}else e=0;return o.apply(void 0,arguments)}}var bu=rg;function og(o){return function(){return o}}var wu=og;var ng=function(){try{var o=Me(Object,"defineProperty");return o({},"",{}),o}catch{}}(),io=ng;var ig=io?function(o,e){return io(o,"toString",{configurable:!0,enumerable:!1,value:wu(e),writable:!0})}:us,Su=ig;var sg=bu(Su),ms=sg;function ag(o,e){for(var A=-1,t=o==null?0:o.length;++A<t&&e(o[A],A,o)!==!1;);return o}var Tu=ag;var lg=9007199254740991,cg=/^(?:0|[1-9]\d*)$/;function ug(o,e){var A=typeof o;return e=e??lg,!!e&&(A=="number"||A!="symbol"&&cg.test(o))&&o>-1&&o%1==0&&o<e}var nr=ug;function dg(o,e,A){e=="__proto__"&&io?io(o,e,{configurable:!0,enumerable:!0,value:A,writable:!0}):o[e]=A}var so=dg;function pg(o,e){return o===e||o!==o&&e!==e}var ir=pg;var fg=Object.prototype,mg=fg.hasOwnProperty;function hg(o,e,A){var t=o[e];(!(mg.call(o,e)&&ir(t,A))||A===void 0&&!(e in o))&&so(o,e,A)}var ao=hg;function yg(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?so(A,a,l):ao(A,a,l)}return A}var Xe=yg;var Ou=Math.max;function gg(o,e,A){return e=Ou(e===void 0?o.length-1:e,0),function(){for(var t=arguments,r=-1,n=Ou(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),vu(o,this,a)}}var hs=gg;function xg(o,e){return ms(hs(o,e,us),o+"")}var Nu=xg;var vg=9007199254740991;function bg(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=vg}var lo=bg;function wg(o){return o!=null&&lo(o.length)&&!no(o)}var sr=wg;function Sg(o,e,A){if(!_A(A))return!1;var t=typeof e;return(t=="number"?sr(A)&&nr(e,A.length):t=="string"&&e in A)?ir(A[e],o):!1}var Pu=Sg;function Tg(o){return Nu(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&&Pu(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 Cu=Tg;var Og=Object.prototype;function Ng(o){var e=o&&o.constructor,A=typeof e=="function"&&e.prototype||Og;return o===A}var co=Ng;function Pg(o,e){for(var A=-1,t=Array(o);++A<o;)t[A]=e(A);return t}var Iu=Pg;var Cg="[object Arguments]";function Ig(o){return ge(o)&&ke(o)==Cg}var rl=Ig;var Lu=Object.prototype,Lg=Lu.hasOwnProperty,Mg=Lu.propertyIsEnumerable,Bg=rl(function(){return arguments}())?rl:function(o){return ge(o)&&Lg.call(o,"callee")&&!Mg.call(o,"callee")},Ht=Bg;function Eg(){return!1}var Mu=Eg;var Du=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bu=Du&&typeof module=="object"&&module&&!module.nodeType&&module,Dg=Bu&&Bu.exports===Du,Eu=Dg?JA.Buffer:void 0,Gg=Eu?Eu.isBuffer:void 0,Rg=Gg||Mu,uo=Rg;var Vg="[object Arguments]",Fg="[object Array]",jg="[object Boolean]",zg="[object Date]",kg="[object Error]",Ug="[object Function]",Hg="[object Map]",Wg="[object Number]",qg="[object Object]",Qg="[object RegExp]",Yg="[object Set]",Xg="[object String]",Kg="[object WeakMap]",Zg="[object ArrayBuffer]",Jg="[object DataView]",_g="[object Float32Array]",$g="[object Float64Array]",Ax="[object Int8Array]",ex="[object Int16Array]",tx="[object Int32Array]",rx="[object Uint8Array]",ox="[object Uint8ClampedArray]",nx="[object Uint16Array]",ix="[object Uint32Array]",zA={};zA[_g]=zA[$g]=zA[Ax]=zA[ex]=zA[tx]=zA[rx]=zA[ox]=zA[nx]=zA[ix]=!0;zA[Vg]=zA[Fg]=zA[Zg]=zA[jg]=zA[Jg]=zA[zg]=zA[kg]=zA[Ug]=zA[Hg]=zA[Wg]=zA[qg]=zA[Qg]=zA[Yg]=zA[Xg]=zA[Kg]=!1;function sx(o){return ge(o)&&lo(o.length)&&!!zA[ke(o)]}var Gu=sx;function ax(o){return function(e){return o(e)}}var po=ax;var Ru=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Pn=Ru&&typeof module=="object"&&module&&!module.nodeType&&module,lx=Pn&&Pn.exports===Ru,ol=lx&&ls.process,cx=function(){try{var o=Pn&&Pn.require&&Pn.require("util").types;return o||ol&&ol.binding&&ol.binding("util")}catch{}}(),Wt=cx;var Vu=Wt&&Wt.isTypedArray,ux=Vu?po(Vu):Gu,ys=ux;var dx=Object.prototype,px=dx.hasOwnProperty;function fx(o,e){var A=WA(o),t=!A&&Ht(o),r=!A&&!t&&uo(o),n=!A&&!t&&!r&&ys(o),i=A||t||r||n,a=i?Iu(o.length,String):[],l=a.length;for(var u in o)(e||px.call(o,u))&&!(i&&(u=="length"||r&&(u=="offset"||u=="parent")||n&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||nr(u,l)))&&a.push(u);return a}var gs=fx;function mx(o,e){return function(A){return o(e(A))}}var xs=mx;var hx=xs(Object.keys,Object),Fu=hx;var yx=Object.prototype,gx=yx.hasOwnProperty;function xx(o){if(!co(o))return Fu(o);var e=[];for(var A in Object(o))gx.call(o,A)&&A!="constructor"&&e.push(A);return e}var ju=xx;function vx(o){return sr(o)?gs(o):ju(o)}var fo=vx;function bx(o){var e=[];if(o!=null)for(var A in Object(o))e.push(A);return e}var zu=bx;var wx=Object.prototype,Sx=wx.hasOwnProperty;function Tx(o){if(!_A(o))return zu(o);var e=co(o),A=[];for(var t in o)t=="constructor"&&(e||!Sx.call(o,t))||A.push(t);return A}var ku=Tx;function Ox(o){return sr(o)?gs(o,!0):ku(o)}var Tt=Ox;var Nx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Px=/^\w*$/;function Cx(o,e){if(WA(o))return!1;var A=typeof o;return A=="number"||A=="symbol"||A=="boolean"||o==null||oo(o)?!0:Px.test(o)||!Nx.test(o)||e!=null&&o in Object(e)}var Uu=Cx;var Ix=Me(Object,"create"),qt=Ix;function Lx(){this.__data__=qt?qt(null):{},this.size=0}var Hu=Lx;function Mx(o){var e=this.has(o)&&delete this.__data__[o];return this.size-=e?1:0,e}var Wu=Mx;var Bx="__lodash_hash_undefined__",Ex=Object.prototype,Dx=Ex.hasOwnProperty;function Gx(o){var e=this.__data__;if(qt){var A=e[o];return A===Bx?void 0:A}return Dx.call(e,o)?e[o]:void 0}var qu=Gx;var Rx=Object.prototype,Vx=Rx.hasOwnProperty;function Fx(o){var e=this.__data__;return qt?e[o]!==void 0:Vx.call(e,o)}var Qu=Fx;var jx="__lodash_hash_undefined__";function zx(o,e){var A=this.__data__;return this.size+=this.has(o)?0:1,A[o]=qt&&e===void 0?jx:e,this}var Yu=zx;function mo(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])}}mo.prototype.clear=Hu;mo.prototype.delete=Wu;mo.prototype.get=qu;mo.prototype.has=Qu;mo.prototype.set=Yu;var nl=mo;function kx(){this.__data__=[],this.size=0}var Xu=kx;function Ux(o,e){for(var A=o.length;A--;)if(ir(o[A][0],e))return A;return-1}var ar=Ux;var Hx=Array.prototype,Wx=Hx.splice;function qx(o){var e=this.__data__,A=ar(e,o);if(A<0)return!1;var t=e.length-1;return A==t?e.pop():Wx.call(e,A,1),--this.size,!0}var Ku=qx;function Qx(o){var e=this.__data__,A=ar(e,o);return A<0?void 0:e[A][1]}var Zu=Qx;function Yx(o){return ar(this.__data__,o)>-1}var Ju=Yx;function Xx(o,e){var A=this.__data__,t=ar(A,o);return t<0?(++this.size,A.push([o,e])):A[t][1]=e,this}var _u=Xx;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=Xu;ho.prototype.delete=Ku;ho.prototype.get=Zu;ho.prototype.has=Ju;ho.prototype.set=_u;var lr=ho;var Kx=Me(JA,"Map"),cr=Kx;function Zx(){this.size=0,this.__data__={hash:new nl,map:new(cr||lr),string:new nl}}var $u=Zx;function Jx(o){var e=typeof o;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?o!=="__proto__":o===null}var Ad=Jx;function _x(o,e){var A=o.__data__;return Ad(e)?A[typeof e=="string"?"string":"hash"]:A.map}var ur=_x;function $x(o){var e=ur(this,o).delete(o);return this.size-=e?1:0,e}var ed=$x;function A0(o){return ur(this,o).get(o)}var td=A0;function e0(o){return ur(this,o).has(o)}var rd=e0;function t0(o,e){var A=ur(this,o),t=A.size;return A.set(o,e),this.size+=A.size==t?0:1,this}var od=t0;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=$u;yo.prototype.delete=ed;yo.prototype.get=td;yo.prototype.has=rd;yo.prototype.set=od;var Cn=yo;var r0="Expected a function";function il(o,e){if(typeof o!="function"||e!=null&&typeof e!="function")throw new TypeError(r0);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(il.Cache||Cn),A}il.Cache=Cn;var nd=il;var o0=500;function n0(o){var e=nd(o,function(t){return A.size===o0&&A.clear(),t}),A=e.cache;return e}var id=n0;var i0=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s0=/\\(\\)?/g,a0=id(function(o){var e=[];return o.charCodeAt(0)===46&&e.push(""),o.replace(i0,function(A,t,r,n){e.push(r?n.replace(s0,"$1"):t||A)}),e}),sd=a0;function l0(o){return o==null?"":pu(o)}var ad=l0;function c0(o,e){return WA(o)?o:Uu(o,e)?[o]:sd(ad(o))}var Ke=c0;var u0=1/0;function d0(o){if(typeof o=="string"||oo(o))return o;var e=o+"";return e=="0"&&1/o==-u0?"-0":e}var dr=d0;function p0(o,e){e=Ke(e,o);for(var A=0,t=e.length;o!=null&&A<t;)o=o[dr(e[A++])];return A&&A==t?o:void 0}var vs=p0;function f0(o,e){for(var A=-1,t=e.length,r=o.length;++A<t;)o[r+A]=e[A];return o}var go=f0;var ld=we?we.isConcatSpreadable:void 0;function m0(o){return WA(o)||Ht(o)||!!(ld&&o&&o[ld])}var cd=m0;function ud(o,e,A,t,r){var n=-1,i=o.length;for(A||(A=cd),r||(r=[]);++n<i;){var a=o[n];e>0&&A(a)?e>1?ud(a,e-1,A,t,r):go(r,a):t||(r[r.length]=a)}return r}var dd=ud;function h0(o){var e=o==null?0:o.length;return e?dd(o,1):[]}var pd=h0;function y0(o){return ms(hs(o,void 0,pd),o+"")}var bs=y0;var g0=xs(Object.getPrototypeOf,Object),xo=g0;var x0="[object Object]",v0=Function.prototype,b0=Object.prototype,fd=v0.toString,w0=b0.hasOwnProperty,S0=fd.call(Object);function T0(o){if(!ge(o)||ke(o)!=x0)return!1;var e=xo(o);if(e===null)return!0;var A=w0.call(e,"constructor")&&e.constructor;return typeof A=="function"&&A instanceof A&&fd.call(A)==S0}var ws=T0;function O0(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 md=O0;function N0(){this.__data__=new lr,this.size=0}var hd=N0;function P0(o){var e=this.__data__,A=e.delete(o);return this.size=e.size,A}var yd=P0;function C0(o){return this.__data__.get(o)}var gd=C0;function I0(o){return this.__data__.has(o)}var xd=I0;var L0=200;function M0(o,e){var A=this.__data__;if(A instanceof lr){var t=A.__data__;if(!cr||t.length<L0-1)return t.push([o,e]),this.size=++A.size,this;A=this.__data__=new Cn(t)}return A.set(o,e),this.size=A.size,this}var vd=M0;function vo(o){var e=this.__data__=new lr(o);this.size=e.size}vo.prototype.clear=hd;vo.prototype.delete=yd;vo.prototype.get=gd;vo.prototype.has=xd;vo.prototype.set=vd;var Ss=vo;function B0(o,e){return o&&Xe(e,fo(e),o)}var bd=B0;function E0(o,e){return o&&Xe(e,Tt(e),o)}var wd=E0;var Nd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Sd=Nd&&typeof module=="object"&&module&&!module.nodeType&&module,D0=Sd&&Sd.exports===Nd,Td=D0?JA.Buffer:void 0,Od=Td?Td.allocUnsafe:void 0;function G0(o,e){if(e)return o.slice();var A=o.length,t=Od?Od(A):new o.constructor(A);return o.copy(t),t}var Ts=G0;function R0(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 Pd=R0;function V0(){return[]}var Os=V0;var F0=Object.prototype,j0=F0.propertyIsEnumerable,Cd=Object.getOwnPropertySymbols,z0=Cd?function(o){return o==null?[]:(o=Object(o),Pd(Cd(o),function(e){return j0.call(o,e)}))}:Os,bo=z0;function k0(o,e){return Xe(o,bo(o),e)}var Id=k0;var U0=Object.getOwnPropertySymbols,H0=U0?function(o){for(var e=[];o;)go(e,bo(o)),o=xo(o);return e}:Os,Ns=H0;function W0(o,e){return Xe(o,Ns(o),e)}var Ld=W0;function q0(o,e,A){var t=e(o);return WA(o)?t:go(t,A(o))}var Ps=q0;function Q0(o){return Ps(o,fo,bo)}var Md=Q0;function Y0(o){return Ps(o,Tt,Ns)}var Cs=Y0;var X0=Me(JA,"DataView"),Is=X0;var K0=Me(JA,"Promise"),Ls=K0;var Z0=Me(JA,"Set"),Ms=Z0;var Bd="[object Map]",J0="[object Object]",Ed="[object Promise]",Dd="[object Set]",Gd="[object WeakMap]",Rd="[object DataView]",_0=Ut(Is),$0=Ut(cr),Av=Ut(Ls),ev=Ut(Ms),tv=Ut(ps),Lr=ke;(Is&&Lr(new Is(new ArrayBuffer(1)))!=Rd||cr&&Lr(new cr)!=Bd||Ls&&Lr(Ls.resolve())!=Ed||Ms&&Lr(new Ms)!=Dd||ps&&Lr(new ps)!=Gd)&&(Lr=function(o){var e=ke(o),A=e==J0?o.constructor:void 0,t=A?Ut(A):"";if(t)switch(t){case _0:return Rd;case $0:return Bd;case Av:return Ed;case ev:return Dd;case tv:return Gd}return e});var wo=Lr;var rv=Object.prototype,ov=rv.hasOwnProperty;function nv(o){var e=o.length,A=new o.constructor(e);return e&&typeof o[0]=="string"&&ov.call(o,"index")&&(A.index=o.index,A.input=o.input),A}var Vd=nv;var iv=JA.Uint8Array,sl=iv;function sv(o){var e=new o.constructor(o.byteLength);return new sl(e).set(new sl(o)),e}var So=sv;function av(o,e){var A=e?So(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.byteLength)}var Fd=av;var lv=/\w*$/;function cv(o){var e=new o.constructor(o.source,lv.exec(o));return e.lastIndex=o.lastIndex,e}var jd=cv;var zd=we?we.prototype:void 0,kd=zd?zd.valueOf:void 0;function uv(o){return kd?Object(kd.call(o)):{}}var Ud=uv;function dv(o,e){var A=e?So(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.length)}var Bs=dv;var pv="[object Boolean]",fv="[object Date]",mv="[object Map]",hv="[object Number]",yv="[object RegExp]",gv="[object Set]",xv="[object String]",vv="[object Symbol]",bv="[object ArrayBuffer]",wv="[object DataView]",Sv="[object Float32Array]",Tv="[object Float64Array]",Ov="[object Int8Array]",Nv="[object Int16Array]",Pv="[object Int32Array]",Cv="[object Uint8Array]",Iv="[object Uint8ClampedArray]",Lv="[object Uint16Array]",Mv="[object Uint32Array]";function Bv(o,e,A){var t=o.constructor;switch(e){case bv:return So(o);case pv:case fv:return new t(+o);case wv:return Fd(o,A);case Sv:case Tv:case Ov:case Nv:case Pv:case Cv:case Iv:case Lv:case Mv:return Bs(o,A);case mv:return new t;case hv:case xv:return new t(o);case yv:return jd(o);case gv:return new t;case vv:return Ud(o)}}var Hd=Bv;function Ev(o){return typeof o.constructor=="function"&&!co(o)?xu(xo(o)):{}}var Es=Ev;var Dv="[object Map]";function Gv(o){return ge(o)&&wo(o)==Dv}var Wd=Gv;var qd=Wt&&Wt.isMap,Rv=qd?po(qd):Wd,Qd=Rv;var Vv="[object Set]";function Fv(o){return ge(o)&&wo(o)==Vv}var Yd=Fv;var Xd=Wt&&Wt.isSet,jv=Xd?po(Xd):Yd,Kd=jv;var zv=1,kv=2,Uv=4,Zd="[object Arguments]",Hv="[object Array]",Wv="[object Boolean]",qv="[object Date]",Qv="[object Error]",Jd="[object Function]",Yv="[object GeneratorFunction]",Xv="[object Map]",Kv="[object Number]",_d="[object Object]",Zv="[object RegExp]",Jv="[object Set]",_v="[object String]",$v="[object Symbol]",Ab="[object WeakMap]",eb="[object ArrayBuffer]",tb="[object DataView]",rb="[object Float32Array]",ob="[object Float64Array]",nb="[object Int8Array]",ib="[object Int16Array]",sb="[object Int32Array]",ab="[object Uint8Array]",lb="[object Uint8ClampedArray]",cb="[object Uint16Array]",ub="[object Uint32Array]",FA={};FA[Zd]=FA[Hv]=FA[eb]=FA[tb]=FA[Wv]=FA[qv]=FA[rb]=FA[ob]=FA[nb]=FA[ib]=FA[sb]=FA[Xv]=FA[Kv]=FA[_d]=FA[Zv]=FA[Jv]=FA[_v]=FA[$v]=FA[ab]=FA[lb]=FA[cb]=FA[ub]=!0;FA[Qv]=FA[Jd]=FA[Ab]=!1;function Ds(o,e,A,t,r,n){var i,a=e&zv,l=e&kv,u=e&Uv;if(A&&(i=r?A(o,t,r,n):A(o)),i!==void 0)return i;if(!_A(o))return o;var s=WA(o);if(s){if(i=Vd(o),!a)return fs(o,i)}else{var c=wo(o),d=c==Jd||c==Yv;if(uo(o))return Ts(o,a);if(c==_d||c==Zd||d&&!r){if(i=l||d?{}:Es(o),!a)return l?Ld(o,wd(i,o)):Id(o,bd(i,o))}else{if(!FA[c])return r?o:{};i=Hd(o,c,a)}}n||(n=new Ss);var p=n.get(o);if(p)return p;n.set(o,i),Kd(o)?o.forEach(function(h){i.add(Ds(h,e,A,h,o,n))}):Qd(o)&&o.forEach(function(h,g){i.set(g,Ds(h,e,A,g,o,n))});var f=u?l?Cs:Md:l?Tt:fo,m=s?void 0:f(o);return Tu(m||o,function(h,g){m&&(g=h,h=o[g]),ao(i,g,Ds(h,e,A,g,o,n))}),i}var Gs=Ds;var db=1,pb=4;function fb(o){return Gs(o,db|pb)}var Mr=fb;function mb(o,e){return o!=null&&e in Object(o)}var $d=mb;function hb(o,e,A){e=Ke(e,o);for(var t=-1,r=e.length,n=!1;++t<r;){var i=dr(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&&lo(r)&&nr(i,r)&&(WA(o)||Ht(o)))}var Ap=hb;function yb(o,e){return o!=null&&Ap(o,e,$d)}var ep=yb;function gb(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 tp=gb;var xb=tp(),rp=xb;function vb(o,e,A){(A!==void 0&&!ir(o[e],A)||A===void 0&&!(e in o))&&so(o,e,A)}var In=vb;function bb(o){return ge(o)&&sr(o)}var op=bb;function wb(o,e){if(!(e==="constructor"&&typeof o[e]=="function")&&e!="__proto__")return o[e]}var Ln=wb;function Sb(o){return Xe(o,Tt(o))}var np=Sb;function Tb(o,e,A,t,r,n,i){var a=Ln(o,A),l=Ln(e,A),u=i.get(l);if(u){In(o,A,u);return}var s=n?n(a,l,A+"",o,e,i):void 0,c=s===void 0;if(c){var d=WA(l),p=!d&&uo(l),f=!d&&!p&&ys(l);s=l,d||p||f?WA(a)?s=a:op(a)?s=fs(a):p?(c=!1,s=Ts(l,!0)):f?(c=!1,s=Bs(l,!0)):s=[]:ws(l)||Ht(l)?(s=a,Ht(a)?s=np(a):(!_A(a)||no(a))&&(s=Es(l))):c=!1}c&&(i.set(l,s),r(s,l,t,n,i),i.delete(l)),In(o,A,s)}var ip=Tb;function sp(o,e,A,t,r){o!==e&&rp(e,function(n,i){if(r||(r=new Ss),_A(n))ip(o,e,i,A,sp,t,r);else{var a=t?t(Ln(o,i),n,i+"",o,e,r):void 0;a===void 0&&(a=n),In(o,i,a)}},Tt)}var ap=sp;function Ob(o){var e=o==null?0:o.length;return e?o[e-1]:void 0}var lp=Ob;function Nb(o,e){return e.length<2?o:vs(o,md(e,0,-1))}var cp=Nb;var Pb=Cu(function(o,e,A){ap(o,e,A)}),al=Pb;function Cb(o,e){return e=Ke(e,o),o=cp(o,e),o==null||delete o[dr(lp(e))]}var up=Cb;function Ib(o){return ws(o)?void 0:o}var dp=Ib;var Lb=1,Mb=2,Bb=4,Eb=bs(function(o,e){var A={};if(o==null)return A;var t=!1;e=cs(e,function(n){return n=Ke(n,o),t||(t=n.length>1),n}),Xe(o,Cs(o),A),t&&(A=Gs(A,Lb|Mb|Bb,dp));for(var r=e.length;r--;)up(A,e[r]);return A}),To=Eb;function Db(o,e,A,t){if(!_A(o))return o;e=Ke(e,o);for(var r=-1,n=e.length,i=n-1,a=o;a!=null&&++r<n;){var l=dr(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:nr(e[r+1])?[]:{})}ao(a,l,u),a=a[l]}return o}var pp=Db;function Gb(o,e,A){for(var t=-1,r=e.length,n={};++t<r;){var i=e[t],a=vs(o,i);A(a,i)&&pp(n,Ke(i,o),a)}return n}var fp=Gb;function Rb(o,e){return fp(o,e,function(A,t){return ep(o,t)})}var mp=Rb;var Vb=bs(function(o,e){return o==null?{}:mp(o,e)}),Oo=Vb;var hp=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],yp=["wrapping","image","video"],Se;(r=>{function o(n,i){al(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:ro.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Le.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:{...Le.fromHex(6710886),a:1},colorB:{...Le.fromHex(6710886),a:1},colorC:{...Le.fromHex(16777215),a:1},colorD:{...Le.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:it.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:it.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:it.fromHexAndA(0,1),contourColor:it.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 Ue;(a=>{function o(l){return!l.layers.some(s=>s.data.type==="texture"&&s.data.projection!==0||s.data.type==="depth"&&!s.data.isWorldSpace||s.data.type==="noise"||s.data.type==="displace")}a.isMergable=o;function e(l){let u="";return l.layers.forEach(s=>{Object.entries(s.data).forEach(([c,d])=>{u+=`${c}${d}`,Array.isArray(d)?d.forEach(p=>u+=`${p}`):typeof d=="object"?Object.values(d).forEach(p=>{typeof p=="number"?u+=`${p.toFixed(4)}`:u+=`${p}`}):u+=`${d}`})}),u}a.getHash=e;function A(){return{layers:new yA}}a.defaultEmptyData=A;function t(l="layer1",u="layer2"){return r("phong",l,u)}a.defaultData=t;function r(l,u="layer1",s="layer2"){let c=new yA;return c.push({fi:0,data:Se.defaultData("light",l),id:u}),c.push({fi:1,data:Se.defaultData("color"),id:s}),{layers:c}}a.defaultTwoLayerData=r;function n(l,u="phong",s="layer1",c="layer2"){let d=Se.defaultData("texture");Object.assign(d.texture,{image:l});let p=new yA;return p.push({fi:0,data:d,id:s}),p.push({fi:1,data:Se.defaultData("light",u),id:c}),{layers:p}}a.defaultTwoLayerTextureData=n;function i(l,u="phong",s="layer1",c="layer2"){let d=Se.defaultData("video");Object.assign(d.texture,{video:l});let p=new yA;return p.push({fi:0,data:d,id:s}),p.push({fi:1,data:Se.defaultData("light",u),id:c}),{layers:p}}a.defaultTwoLayerVideoTextureData=i})(Ue||(Ue={}));var No;(e=>{function o(){return{points:new yA,roundness:0,shapeHoles:[],isClosed:!1}}e.defaultData=o})(No||(No={}));var Mn;(e=>{function o(A){return A==="PolygonGeometry"||A==="RectangleGeometry"||A==="StarGeometry"||A==="TriangleGeometry"||A==="EllipseGeometry"}e.is2DParametricMesh=o})(Mn||(Mn={}));var pr;(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:No.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})(pr||(pr={}));var Bn;(r=>{r.identity={...os.identity,hiddenMatrix:or.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:or.isEqual(n.hiddenMatrix,i.hiddenMatrix)?null:i.hiddenMatrix}}r.diff=t})(Bn||(Bn={}));var ll;(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]})(ll||(ll={}));var st;(e=>e.defaultData={states:new yA,events:new yA,visible:!0,raycastLock:!1,physics:null,...Bn.identity,cloner:null})(st||(st={}));var gp;(e=>e.defaultData={type:"Empty",...st.defaultData})(gp||(gp={}));var Br;(e=>e.defaultData={type:"Mesh",...st.defaultData,...as.defaultData})(Br||(Br={}));var Po;(e=>e.defaultData={...st.defaultData,...Bn.identity,...Ir.defaultData})(Po||(Po={}));var xp;(e=>{function o(A){return{...st.defaultData,...ss.defaultData(A)}}e.defaultData=o})(xp||(xp={}));var vp;(r=>(r.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:or.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:ll.defaultData,states:new yA,events:new yA,cloner:null,...Ir.defaultData},r.defaultMeshObject={name:"Rectangle",...st.defaultData,...Br.defaultData,geometry:pr.defaultData("RectangleGeometry"),material:Ue.defaultTwoLayerData("phong","layer1","layer2")},r.defaultBooleanObject={name:"Boolean",...st.defaultData,...Br.defaultData,geometry:pr.defaultData("BooleanGeometry"),material:Ue.defaultTwoLayerData("phong","layer1","layer2")},r.defaultTextObject={name:"Text",...st.defaultData,...Br.defaultData,geometry:pr.defaultData("TextGeometry"),material:Ue.defaultTwoLayerData("phong","layer1","layer2")}))(vp||(vp={}));var Er;(r=>{function o(n,i){let a={name:i};return n.type==="Mesh"?(a.geometry={},"material"in n&&(a.material={layers:new MA}),"materials"in n&&(a.materials=n.materials.map(l=>({layers:new MA})))):kt.is(n.type)&&(a.perspective={},a.orthographic={}),a}r.newEmpty=o;function e(n,i){if(i===void 0)return n;let a={...n};return"material"in a&&"material"in i&&i.material&&(a.material=Ua(a.material,l=>{if(typeof l!="string")for(let[u,s]of Object.entries(i.material.layers)){let c=l.layers.data(u);c&&Se.patch(c,s)}}).data),a.materials&&i.materials&&(a.materials=Ua(a.materials,l=>{for(let u=0;u<a.materials.length;u++){let s=i.materials[u];if(typeof s!="string")for(let[c,d]of Object.entries(s.layers)){let p=l[u]?.layers?.data(c);p&&Se.patch(p,d)}}}).data),a}function A(n,i){let a,l=[],u={orthographic:0,perspective:0,geometry:0};function s(c,d){for(let[p,f]of Object.entries(d.layers)){let{texture:m,...h}=f;if(m!==void 0&&Object.keys(m).length>0){let g={path:[...c,"layers",p,"texture"],props:m,type:0};l.push(g)}if(Object.keys(h).length>0){let g={path:[...c,"layers",p],props:h,type:0};l.push(g)}}}for(let[c,d]of Object.entries(i))if(c!=="name")if(c==="cloner")l.push(...ns.toOps(d,["cloner"]));else if(c==="material")s(["material"],d);else if(c==="materials")for(let[p,f]of Object.entries(d))s(["materials",p],f);else if(u[c]===0){if(Object.keys(d).length>0){let p={path:[c],props:d,type:0};l.push(p)}}else a===void 0&&(a={path:[],props:{},type:0},l.push(a)),a.props[c]=d;return l}r.toOps=A;function t(n,i){if(i===void 0)return n;let a={...n};if(Object.assign(a,Bn.merge(a,i)),kt.is(n.type)){a.orthographic={...a.orthographic},a.perspective={...a.perspective};let l=i;l.orthographic?.zoom!==void 0&&(a.orthographic.zoom=l.orthographic.zoom),l.perspective?.zoom!==void 0&&(a.perspective.zoom=l.perspective.zoom),l.isUpVectorFlipped!==void 0&&(a.isUpVectorFlipped=l.isUpVectorFlipped),l.targetOffset!==void 0&&(a.targetOffset=l.targetOffset)}else if(n.type==="Mesh")i.geometry&&(a.geometry={...a.geometry},Object.assign(a.geometry,i.geometry)),(i.material||i.materials)&&(a=e(a,i)),a.cloner&&"cloner"in i&&Object.assign(a,{cloner:On.merge(a.cloner,i.cloner)});else if(n.type==="Empty")a.cloner&&"cloner"in i&&Object.assign(a,{cloner:On.merge(a.cloner,i.cloner)});else if(is.is(n.type)){let l=i;l.intensity!==void 0&&(a.intensity=l.intensity),l.color!==void 0&&(typeof l.color=="string"?a.color=l.color:a.color=Le.clone(l.color))}return a}r.patch=t})(Er||(Er={}));var Co;(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})(Co||(Co={}));var Rs;(e=>e.defaultData={orbitControls:Co.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})(Rs||(Rs={}));function fr(o,e){return Object.setPrototypeOf(o,e),o}var wp=void 0!=="true";function Sp(o){return Array.isArray(o)?o:[o]}function Tp(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 Vs;(A=>{function o(){let t={};return t["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},fr(t,MA.prototype)}A.defaultColors=o;function e(){return{materials:new MA,images:new MA,videos:new MA,colors:new MA,audios:new MA,fonts:new MA,penumbraSize:[.5,.5,.5]}}A.emptyData=e})(Vs||(Vs={}));var En=require("three");function Op(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={...Oo(ye(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={...ye(e),near:Math.max(e.near,0),far:Math.max(e.far,0)};Object.assign(e,A)}})}function Fs(o,e){Object.values(o.shared.materials).forEach(A=>e(A))}function js(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 Fb(o){Object.assign(o.scene.publish,{orbitControls:{...Co.defaultData,...ye(o.scene.publish.orbitControls)}})}function jb(o){Object.assign(o.scene.publish.settings,{video:{...Rs.defaultData.settings.video,...ye(o.scene.publish.settings.video)}})}function zb(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((hp.includes(r)||typeof n=="boolean")&&delete t[r],r==="texture")for(let[i,a]of Object.entries(n))(yp.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 kb(o){o.scene.publish.withBackground=!0}function Ub(o){o.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Hb(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 Wb(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 qb(o){o.scene.objects.traverse((e,A)=>{let t=o.scene.objects.unproxy().parent(e);if(t){let r=ye(o.scene.objects.data(t));r&&r.type==="Mesh"&&r.geometry.type==="BooleanGeometry"&&A.type==="Mesh"&&(A.visible=ye(A).booleanExclude!==!0)}})}function Qb(o){o.scene.objects.traverse((e,A)=>{if(A.type==="Mesh"){let t=A;A.geometry.type==="NonParametricGeometry"?t.material!==void 0&&delete t.material:t.materials!==void 0&&delete t.materials}})}function Np(o){o.layers===void 0&&Object.assign(o,Ue.defaultTwoLayerData("lambert"))}function cl(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={...ye(e),colors:A,steps:t};Object.assign(e,r)}})}function Yb(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&(A.geometry.type==="BooleanGeometry"||A.geometry.type==="SubdivGeometry")&&(A.geometry.phongAngle=35)})}function Pp(o){o.scene.objects.traverse((e,A)=>{"materials"in A?A.materials.forEach(t=>{typeof t!="string"&&cl(t)}):"material"in A&&typeof A.material!="string"&&cl(A.material)}),Object.values(o.shared.materials).forEach(e=>cl(e))}function Xb(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 Kb(o){o.shared.audios=fr({},MA.prototype)}function Zb(o){o.shared.videos=fr({},MA.prototype)}function Jb(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 _b(o){Object.entries(ye(o.shared.images)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.images[t]}),Object.entries(ye(o.shared.audios)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete o.shared.audios[t]})}function $b(o){o.scene.publish.settings.web.preload=!1}function Cp(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 Aw(o){o.shared.fonts=fr({},MA.prototype)}function ew(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 tw(o){let e=[];o.scene.objects.traverse((A,t)=>{let r=t;if(r.type==="TextFrame"){let n=Ue.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=ew(r.font);o.shared.fonts[a]===void 0&&(o.shared.fonts[a]={name:a});let l={name:r.name,...st.defaultData,...Br.defaultData,flatShading:!1,wireframe:!1,geometry:{...pr.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:ye(r.states),events:ye(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},u=ye(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 rw(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 yA,move:new yA,jump:new yA}});else{let n=new yA;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:En.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,Oo(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 yA({fi:0,id:En.MathUtils.generateUUID(),data:u},{fi:1,id:En.MathUtils.generateUUID(),data:d})};n.push({fi:l,id:a,data:p})}),delete r.targets)}})})}function ow(o){o.scene.objects.traverse((e,A)=>{function t(r,n){let i=new yA,a=[];if(A.events.forEach((l,u,s)=>{if(l.type==="Audio"&&l.trigger===n){let c;a.push(u),l.interaction==="play"?c={...Oo(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={...Oo(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:En.MathUtils.generateUUID(),data:{type:r,actions:i}}])}}t("Start","start"),t("MouseDown","mouseDown"),t("MouseUp","mouseUp"),t("KeyDown","keyDown"),t("KeyUp","keyUp")})}function Ip(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 nw(o){Fs(o,Ip),js(o,Ip)}function iw(o){o.scene.objects.traverse((e,A)=>{A.type==="Mesh"&&A.geometry.type==="SubdivGeometry"&&(A.geometry.scaleBaked||(A.geometry.scaleBaked=[1,1,1]))})}function sw(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 Lp=27;function Mp(o){let e=o.schema??0;e!==Lp&&(console.warn("updating from ",e,"to ",Lp),e<1&&(js(o,Op),Fs(o,Op),o.schema=1),e<2&&(Fb(o),o.schema=2),e<3&&(zb(o),o.schema=3),e<4&&(kb(o),o.schema=4),e<5&&(Ub(o),o.schema=5),e<6&&(Hb(o),o.schema=6),e<7&&(Wb(o),o.schema=7),e<8&&(o.schema=8),e<9&&(Pp(o),o.schema=9),e<10&&(Yb(o),o.schema=10),e<11&&(Xb(o),o.schema=11),e<12&&(Pp(o),o.schema=12),e<13&&(Kb(o),o.schema=13),e<14&&(Jb(o),o.schema=14),e<15&&(_b(o),o.schema=15),e<16&&($b(o),o.schema=16),e<17&&(js(o,Cp),Fs(o,Cp),o.schema=17),e<18&&(js(o,Np),Fs(o,Np),o.schema=18),e<19&&(jb(o),o.schema=19),e<20&&(Aw(o),tw(o),o.schema=20),e<21&&(rw(o),ow(o),o.schema=21),e<22&&(nw(o),o.schema=22),e<23&&(iw(o),o.schema=23),e<24&&(sw(o),o.schema=24),(e<25||o.shared.videos===void 0)&&(Zb(o),e<25&&(o.schema=25)),e<26&&(qb(o),o.schema=26),e<27&&(Qb(o),o.schema=27))}var zs;(e=>e.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(zs||(zs={}));var IA=require("three"),an=ji(Ep());var aw=.5*(Math.sqrt(3)-1),Gn=(3-Math.sqrt(3))/6,lw=1/3,Ot=1/6,YE=(Math.sqrt(5)-1)/4,XE=(5-Math.sqrt(5))/20,Rn=o=>Math.floor(o)|0,Dp=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]),dl=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 ks(o=Math.random){let e=Rp(o),A=new Float64Array(e).map(r=>Dp[r%12*2]),t=new Float64Array(e).map(r=>Dp[r%12*2+1]);return function(n,i){let a=0,l=0,u=0,s=(n+i)*aw,c=Rn(n+s),d=Rn(i+s),p=(c+d)*Gn,f=c-p,m=d-p,h=n-f,g=i-m,x,w;h>g?(x=1,w=0):(x=0,w=1);let v=h-x+Gn,b=g-w+Gn,N=h-1+2*Gn,S=g-1+2*Gn,y=c&255,P=d&255,O=.5-h*h-g*g;if(O>=0){let L=y+e[P],B=A[L],k=t[L];O*=O,a=O*O*(B*h+k*g)}let C=.5-v*v-b*b;if(C>=0){let L=y+x+e[P+w],B=A[L],k=t[L];C*=C,l=C*C*(B*v+k*b)}let T=.5-N*N-S*S;if(T>=0){let L=y+1+e[P+1],B=A[L],k=t[L];T*=T,u=T*T*(B*N+k*S)}return 70*(a+l+u)}}function Gp(o=Math.random){let e=Rp(o),A=new Float64Array(e).map(n=>dl[n%12*3]),t=new Float64Array(e).map(n=>dl[n%12*3+1]),r=new Float64Array(e).map(n=>dl[n%12*3+2]);return function(i,a,l){let u,s,c,d,p=(i+a+l)*lw,f=Rn(i+p),m=Rn(a+p),h=Rn(l+p),g=(f+m+h)*Ot,x=f-g,w=m-g,v=h-g,b=i-x,N=a-w,S=l-v,y,P,O,C,T,L;b>=N?N>=S?(y=1,P=0,O=0,C=1,T=1,L=0):b>=S?(y=1,P=0,O=0,C=1,T=0,L=1):(y=0,P=0,O=1,C=1,T=0,L=1):N<S?(y=0,P=0,O=1,C=0,T=1,L=1):b<S?(y=0,P=1,O=0,C=0,T=1,L=1):(y=0,P=1,O=0,C=1,T=1,L=0);let B=b-y+Ot,k=N-P+Ot,X=S-O+Ot,eA=b-C+2*Ot,nA=N-T+2*Ot,U=S-L+2*Ot,q=b-1+3*Ot,Q=N-1+3*Ot,j=S-1+3*Ot,E=f&255,G=m&255,D=h&255,H=.6-b*b-N*N-S*S;if(H<0)u=0;else{let R=E+e[G+e[D]];H*=H,u=H*H*(A[R]*b+t[R]*N+r[R]*S)}let Y=.6-B*B-k*k-X*X;if(Y<0)s=0;else{let R=E+y+e[G+P+e[D+O]];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+C+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 Rp(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 Vp=require("three"),at=new Vp.Triangle,Us=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;at.a.fromBufferAttribute(e,r),at.b.fromBufferAttribute(e,r+1),at.c.fromBufferAttribute(e,r+2),n*=at.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),at.a.fromBufferAttribute(this.positionAttribute,e*3),at.b.fromBufferAttribute(this.positionAttribute,e*3+1),at.c.fromBufferAttribute(this.positionAttribute,e*3+2),A.set(0,0,0).addScaledVector(at.a,r).addScaledVector(at.b,n).addScaledVector(at.c,1-(r+n)),at.getNormal(t),this}};var Fp=require("three");var Io=require("three"),Lo=o=>class extends o{constructor(){super(...arguments);this.hiddenMatrix=new Io.Matrix4}isDescendantOf(t){t instanceof Io.Object3D&&(t=t.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===t)return!0;r=r.parent}return!1}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)}attach(t,r){this.updateWorldMatrix(!0,!1);let n=new Io.Matrix4().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),n.multiply(t.parent.matrixWorld)),"hiddenMatrix"in t&&t.hiddenMatrix instanceof Io.Matrix4?t.hiddenMatrix.premultiply(n):t.applyMatrix4(n),t.updateWorldMatrix(!1,!1),this.add(t),r!==void 0&&(this.children.pop(),this.children.splice(r,0,t)),this}};var pl=class extends Lo(Fp.Object3D){},cw=o=>o.type==="Mesh",Qt=class extends pl{constructor(A){super();this.object=A;this.matrixAutoUpdate=!0}expand(){let A=0,t=this.object.entityChildren(A);for(;t;){let r=this.children[A];r?.object!==t&&(r&&this.remove(r),r=new Qt(t),this.add(r),r.matrixAutoUpdate=!1,r.matrix=t.matrix,r.hiddenMatrix=t.hiddenMatrix),r.expand(),A+=1,t=this.object.entityChildren(A)}for(;this.children.length>A;)this.remove(this.children[A])}get visible(){return this.object.visible||this.object.dataPatched.cloner?.hideBase===!0}set visible(A){}get castShadow(){return this.object.castShadow}set castShadow(A){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(A){}get isMesh(){return cw(this.object)}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 Yo=require("three");var ea=require("three");var XA=require("three"),Dr=new XA.Vector3,Gr=new XA.Vector3,Mo=new XA.Matrix4,zp=[new XA.Vector3(-1,1,1),new XA.Vector3(-1,-1,1),new XA.Vector3(1,-1,1),new XA.Vector3(1,1,1),new XA.Vector3(-1,1,-1),new XA.Vector3(-1,-1,-1),new XA.Vector3(1,-1,-1),new XA.Vector3(1,1,-1)],uw=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],dw=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],jp=(o,e,A)=>{o.updateEntityBoxSize(Dr,Gr),Mo.copy(e).multiply(o.matrixWorld),Gr.x===0&&Gr.y===0&&Gr.z===0?A.push(new XA.Vector3(Dr.x,Dr.y,Dr.z).applyMatrix4(Mo)):zp.forEach(t=>{A.push(t.clone().multiply(Gr).add(Dr).applyMatrix4(Mo))})},Vn=class extends XA.Box3{constructor(){super(...arguments);this.matrix=new XA.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 XA.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&&jp(i,t,n)}):jp(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(Mo.copy(this.matrix).setPosition(0,0,0)),A}computeVertices(){this.getSize(Gr).multiplyScalar(.5),this.getCenter(Dr),Mo.copy(this.matrix).setPosition(Dr),this.vertices=zp.map(A=>A.clone().multiply(Gr).applyMatrix4(Mo))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=uw.map(([A,t])=>new XA.Line3(this.vertices[A],this.vertices[t])),this.centerEdges=this.edges.map(A=>A.getCenter(new XA.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=dw.map(([A,t])=>this.vertices[A].clone().add(this.vertices[t]).multiplyScalar(.5))}};var mr={Cloner:()=>{},changeEntityProptotype:()=>{}};var Ze;(e=>{function o(A){return A&&A.__isEntity}e.is=o})(Ze||(Ze={}));var Yt=o=>Ze.is(o),Je=o=>class extends Lo(o){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.stateSelection=null;this.currentState=null;this.currentTransitionAction=null;this._singleBBox=new Vn;this._recursiveBBox=new Vn;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0}get __isEntity(){return!0}entityChildren(t){let r=this.children[t];if(Ze.is(r))return r}get overrideDataCleanup(){if(!(this.overrideData&&Object.keys(this.overrideData).length===1&&"descendants"in this.overrideData))return this.overrideData}super_Entity(t,r){typeof t=="string"&&(this.uuid=t),this.identity=t,this.data=r,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(t,r,n=!1){if(!(this.data.states.length===0&&!n)){for(let i of this.data.states)Er.toOps(this.data,i.data).forEach(l=>{let u=Hi.replaceProps(l,this.data);this.updateByPatchedOp(u,this.data,r)});if(t!==null){let i=this.data.states.data(t);i&&(this.dataPatched=Er.patch(this.data,i),Er.toOps(this.data,i).forEach(l=>{this.updateByPatchedOp(l,this.dataPatched,r)}))}else this.dataPatched=this.data;n&&this.updateTransformState(this.dataPatched),this.stateSelection=t}}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}updateEntityBoxSize(t,r){t.setScalar(0),r.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(t=>{Yt(t)&&t.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(t=>{t.resetBBoxNeedsUpdateSelf()})}find(t){let r;return this.traverseEntity(n=>{n.uuid===t&&(r=n)}),r}traverseSortNextHelper(){let t=this.parent;if(t){let r=t.children,n=r.indexOf(this)+1;if(Ze.is(r[n]))return r[n];if(Ze.is(t))return t.traverseSortNextHelper()}}sortNext(){let t=this.children;return this.children.length>0&&Ze.is(this.children[0])?t[0]:this.traverseSortNextHelper()}goUp(t){let r=this;for(;t>0&&r!==null;)r=r.parent,t-=1;return r}hasAnccestorOrSelf(t){return this===t||this.hasAnccestor(t)}hasAnccestor(t){let r=this.parent;for(;r;){if(t===r)return!0;r=r.parent}return!1}countToAccestor(t){let r=0,n=this;for(;n!==t;){if(n===null)return-1;n=n.parent,r+=1}return r}traverseEntityAncestors(t){this.traverseAncestors(r=>{Ze.is(r)&&t(r)})}traverseEntity(t,r=0){if(t(this,r)!==!0)for(let i of this.children)Yt(i)&&i.traverseEntity(t,r+1)}traverseVisibleEntity(t){t(this);for(let r of this.children)Yt(r)&&r.visible&&r.traverseVisibleEntity(t)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}copy(t,r=!0){return super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),this}hasEntityChild(){return this.children.some(t=>Yt(t))}isAncestorOf(t){if(this.uuid===t)return!1;let r=!1;return this.traverseEntity(n=>{n.uuid===t&&(r=!0)}),r}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 To(r,t)}updateTransformState(t){let r=!1;return t.position&&(this.position.fromArray(t.position),r=!0),t.rotation&&(this.rotation.fromArray(t.rotation),r=!0),t.scale&&(r=!0,this.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&(r=!0,this.hiddenMatrix.fromArray(t.hiddenMatrix??or.identity)),r&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(n=>{n.invalidateClonerTransform(this)})),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),r}dispose(){this.cloner&&this.cloner.removeFromParent()}disposeRecursively(){this.dispose(),this.children.forEach(t=>{Ze.is(t)&&t.disposeRecursively()})}toState(t=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(t)};return To(r,t)}updateByOp(t,r,n){this.data=r;let i=t,a=Ar(t.path,["states","*"]);if(a!==null){if(t.type===0){let[l]=a;if(this?.stateSelection===l){let u={...t.props};if(Object.values(t.props).some(s=>s===void 0)){let s=this.data;if(s!==void 0){let c=Qe.zoom(s,t.path.slice(2));if(c)for(let d in t.props)t.props[d]===void 0&&d in c&&(u[d]=c[d])}}i={...t,props:u,path:t.path.slice(2)}}}}else if(t.type===0){let l=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(l!==void 0){if(t.props.name!==void 0&&l.name){let{name:s,...c}=l;l=c}if(t.props.material!==void 0&&"material"in l){let{material:s,...c}=l;l=c}let u=Qe.removeOverridden(t.path,t.props,l);i={...t,props:u}}}this.updateByPatchedOpBase(i,Er.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),n)}updateByPatchedOpBase(t,r,n){if(this.dataPatched=r,t.path.length===0&&t.type===0)t.props.type!==void 0&&!kt.is(t.props.type)&&mr.changeEntityProptotype(this,r,n);else if(t.path.length===1&&t.path[0]==="geometry"&&t.type===0&&"type"in t.props){mr.changeEntityProptotype(this,r,n);for(let i of this.children)Ze.is(i)&&i.updateVisible()}this.updateByPatchedOp(t,r,n)}updateByPatchedOp(t,r,n){if(t.path.length===0&&t.type===0&&this.updateState(t.props,n),Ar(t.path,["cloner"])!==null){let i=he.drop(t,1);i.path.length===0&&i.type===0&&i.props.disabled===!0?this.setFromClonerState(null,n):this.cloner?this.cloner.updateState(r.cloner,n.scene):(this.setFromClonerState(r.cloner,n),this.expandCloner(n.scene)),this.updateVisible()}}updateVisible(){this.visible=this.dataPatched.visible&&this.dataPatched.cloner?.hideBase!==!0}updateState_Entity(t,r){t.name!==void 0&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.visible!==void 0&&(this.updateVisible(),this.resetBBoxNeedsUpdate()),"cloner"in t&&t.cloner!==void 0&&(this.setFromClonerState(t.cloner,r),this.updateVisible()),this.updateTransformState(t)}get attachedSurfaceCloners(){return this.children.filter(t=>t instanceof mr.Cloner&&t.parameters.type==="toObject")}setFromClonerState(t,r){t===null||t.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):(this.cloner===void 0&&(this.cloner=new mr.Cloner(this,t),r.scene.addPendingExpandCloner(this)),this.cloner.updateState(t,r.scene))}expandCloner(t){this.cloner&&this.cloner.expandClones(t)}invalidateClonerTransform(t){this.cloner&&this.cloner.invalidateTransform(t)}};var Hp=require("three");var kA=require("three"),Up=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 Fn(u,s,t,r,n,i,a,l*Math.PI/180,c,c,d,p):f=new kA.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 hr(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function kp(o){return new kA.Vector2(o.y,-o.x)}var Fn=class extends kA.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=[],g=[],x=0,w=t/2,v=new kA.Vector3,b=new kA.Vector3;p&&e==0&&(e=u),p&&A==0&&(A=s);let N=new kA.Vector2(e,w),S=new kA.Vector2(A,-w),y=null,P=null,O=null,C=null,T=N.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=N.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;y=N.clone().sub(new kA.Vector2(F,u)),d&&(O=y.clone(),O.x-=L-Q*u),N.sub(T.clone().setLength(F))}if(s>0){let F=s/q;P=S.clone().sub(new kA.Vector2(F,-s)),S.add(T.clone().setLength(F)),d&&(C=P.clone(),C.x-=L-Q*s,X.sub(T.clone().setLength(F)))}T=N.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 kA.Vector2(Math.sin($),Math.cos($));C&&P?(H(R,z,rA,eA,s,C,-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=kp(T).normalize();if(hr(sA,rA,v),!G)for(let tA=0;tA<=n;tA++){let AA=tA/n,_=T.clone().multiplyScalar(AA).add(S);hr(_,rA,b),m.push(b.x,b.y,b.z),h.push(v.x,v.y,v.z),g.push(z,.5+b.y/t),R.push(x++)}if(O&&y?(H(R,z,rA,eA,u,y,1,!1),H(R,z,rA,nA,u,O,1,!0)):y?(H(R,z,rA,eA,u,y,1,!1),Y(R,rA,y.x,0,1)):i||Y(R,rA,e,B,1),d&&!G){let tA=kp(T).multiplyScalar(-1).normalize();hr(tA,rA,v);for(let AA=0;AA<=n;AA++){let _=AA/n,Z=T.clone().multiplyScalar(-_).add(X);hr(Z,rA,b),m.push(b.x,b.y,b.z),h.push(v.x,v.y,v.z),g.push(z,.5+b.y/t),R.push(x++)}}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 kA.Float32BufferAttribute(m,3)),this.setAttribute("normal",new kA.Float32BufferAttribute(h,3)),this.setAttribute("uv",new kA.Float32BufferAttribute(g,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 kA.Vector2(Math.sin(fA),Math.cos(fA)*tA),xA=dA.clone().multiplyScalar(rA).add(sA);hr(xA,z,b),m.push(b.x,b.y,b.z),hr(dA,z,v),h.push(v.x,v.y,v.z),g.push(R,.5+b.y/t),F.push(x++)}}function Y(F,R,z,$,rA){let sA=new kA.Vector3,tA=new kA.Vector2,AA=[z,$];rA<0&&AA.reverse();for(let _ of AA)tA.set(_,w*rA),hr(tA,R,sA),m.push(sA.x,sA.y,sA.z),h.push(0,rA,0),g.push(.5,.5),F.push(x++)}function W(F,R,z){let $=new kA.Vector2(Math.sin(z),Math.cos(z)),rA=new kA.Vector2(-Math.cos(z),Math.sin(z)),sA=new kA.Vector3,tA=F<0?(Z,fA,dA)=>f.push(Z,fA,dA):(Z,fA,dA)=>f.push(Z,dA,fA),AA=new kA.Vector2((e+A+B+k)/4,0);hr(AA,$,sA),m.push(sA.x,sA.y,sA.z),h.push(rA.x,0,rA.y),g.push(.5,.5);let _=x++;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=g.slice(Z*2,Z*2+2);g.push(...dA),x++}for(let Z=_+1;Z<x-1;Z++)tA(_,Z,Z+1);tA(_,x-1,_+1)}}};var Wp=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 Fn(0,e/2,t,r,n,i,a,l*Math.PI/180,u,s,c,0,!0):d=new Hp.ConeGeometry(e/2,t,r,n,i),d.scale(1,1,A/e),Object.assign(d,{userData:{...o,type:"ConeGeometry"}})}};var Be=require("three"),qp=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 Be.BoxGeometry(e,A,t,r,n,i):u=new ml(e,A,t,r,n,i,a,l),Object.assign(u,{userData:{...o,type:"CubeGeometry"}})}},fl=Math.PI/2,ml=class extends Be.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&&(g("z","y","x",-1,-1,1,t,A,e,i,0),g("z","y","x",1,-1,-1,t,A,e,i,1),g("z","y","x",-1,1,-1,t,A,e,i,1),g("z","y","x",1,1,1,t,A,e,i,0),g("x","y","z",-1,-1,-1,e,A,t,r,0),g("x","y","z",1,-1,1,e,A,t,r,1),g("x","y","z",-1,1,1,e,A,t,r,0),g("x","y","z",1,1,-1,e,A,t,r,1),g("y","x","z",-1,-1,1,A,e,t,n,0),g("y","x","z",1,-1,-1,A,e,t,n,1),g("y","x","z",1,1,1,A,e,t,n,1),g("y","x","z",-1,1,-1,A,e,t,n,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(s),this.setAttribute("position",new Be.Float32BufferAttribute(c,3)),this.setAttribute("normal",new Be.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Be.Float32BufferAttribute(p,2));function h(w,v,b,N,S,y,P,O,C,T,L){let B=(y-2*a)/C,k=(P-2*a)/T,X=y/2-a,eA=P/2-a,nA=O/2,U=C+1,q=T+1,Q=0,j=0,E=new Be.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[w]=Y*N,E[v]=D*S,E[b]=nA,c.push(E.x,E.y,E.z),E[w]=0,E[v]=0,E[b]=O>0?1:-1,d.push(E.x,E.y,E.z),p.push(H/C),p.push(1-G/T),Q+=1}}for(let G=0;G<T;G++)for(let D=0;D<C;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 g(w,v,b,N,S,y,P,O,C,T,L){let B=(P-2*a)/T,k=P/2-a,X=O/2-a,eA=C/2,nA=T+1,U=0,q=0,Q=new Be.Vector3,j=new Be.Vector3;for(let E=0;E<l+1;E++){let G=E/l*fl,D=Math.sin(G)*a,H=(1-Math.cos(G))*a,Y=Math.sin(G),W=Math.cos(G);Q[v]=(X+D)*S,Q[b]=(eA-H)*y,j[w]=0,j[v]=Y*Math.sign(Q[v]),j[b]=W*Math.sign(Q[b]);for(let F=0;F<nA;F++){let R=F*B-k;Q[w]=R*N,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 x(w,v,b){let N=new Be.Vector3,S=new Be.Vector3(e/2,A/2,t/2);S.subScalar(a);let y=[],P=w*v*b>0?(C,T,L)=>s.push(C,T,L):(C,T,L)=>s.push(C,L,T);for(let C=0;C<=l;C++){let T=[],L=fl*(1-C/l),B=Math.cos(L),k=Math.sin(L),X=0;for(let eA=0;eA<=C;eA++){let nA=Math.cos(X),U=Math.sin(X);N.x=B*nA,N.y=k,N.z=B*U;let q=S.clone().addScaledVector(N,a);c.push(w*q.x,v*q.y,b*q.z),d.push(w*N.x,v*N.y,b*N.z),p.push(0,0),T.push(f++),X+=fl/C}y.push(T)}let O=y.length-1;for(let C=0;C<O;C++){let T=y[C],L=y[C+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"),yr=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,g=n*r,x=r-g,w=i+1,v=new qA.Vector3,b=(U,q)=>v.subVectors(U,q).normalize(),N=(U,q)=>Array(U).fill(void 0).map(q),S=N(e.length/3,(U,q)=>new qA.Vector3().fromArray(e,q*3).setLength(r)),y=[],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=y[j]?.includes(U)==!0;G<=D&&Y.push(j+ +z*P),W=Q.findIndex($=>$[0]==E)}y.push(Y)}let O=[];{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],O.push(Q,j,...E?[q,Q]:[U,j],q,U),[Q,j]=[U,q];O.push(Q,j,Q+i+2)}}let C=f.clone(),T=f.clone(),L=f.clone(),B=f.clone(),k=f.clone(),X=[],eA=N(S.length,()=>N(p,()=>f.clone()));for(let U=0;U<S.length;U++){f.copy(S[U]).normalize(),C.copy(f).multiplyScalar(x);let q=y[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(C,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(C),m.copy(z).sub(C);let $=C.angleTo(f),rA=f.angleTo(m),sA=Math.cos($)*g;i==0?T.copy(G):T.copy(C).setLength(x+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(_,C),k.subVectors(Z,C),L.crossVectors(B,k).normalize();for(let fA=0;fA<w;fA++){let dA=[$,rA][AA]*fA/w;f.copy(B).applyAxisAngle(L,dA).add(C),Q.push(f.clone()),AA&&(b(f,C),W.push([fA==0?_:f.clone(),v.clone()]))}AA&&(b(Z,C),W.push([Z,v.clone()]))}E.push(W)}X.push(E);let D=2*w,H=2;for(let Y=0;Y<p;Y++){let W=D*Y,F=D*((Y+1)%p),R=[Q[W]];for(let $=1;$<w;$++){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(C).setLength(j[Y]).add(C),R.push(f.clone());R.push(k)}for(let $=0;$<w;$++)R.push(Q[$+w+W]);R.push(Q[F+w]);let z=O.map($=>R[$]);a.push(...z.map($=>[$.x,$.y,$.z]).flat()),u.push(...z.map($=>(b($,C),[v.x,v.y,v.z])).flat())}}let nA=[];for(let U=0;U<y.length;U++)for(let q=0;q<p;q++){let Q=y[U][q];if(Q<P){let j=y[Q].findIndex(D=>D%P==U),E=X[U][q],G=X[Q][j];for(let D=0;D<w;D++){let H=E[D],Y=G[w-D],W=E[D+1],F=G[w-(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[w][0],E[w][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];v.subVectors(E[0],E[1]).cross(f.subVectors(E[0],E[2])).normalize();let G=v.dot(E[0])<0;G&&v.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(v.x,v.y,v.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 y=b(d)/2/Math.PI+.5,P=N(d)/Math.PI+.5;l.push(y,1-P)}let p=new qA.Vector3,f=new qA.Vector3,m=new qA.Vector3,h=new qA.Vector3,g=new qA.Vector2,x=new qA.Vector2,w=new qA.Vector2,v=(S,y,P,O)=>{O<0&&S.x===1&&(l[y]=S.x-1),P.x===0&&P.z===0&&(l[y]=O/2/Math.PI+.5)};for(let S=0,y=0;S<a.length;S+=9,y+=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]),g.set(l[y+0],l[y+1]),x.set(l[y+2],l[y+3]),w.set(l[y+4],l[y+5]),h.copy(p).add(f).add(m).divideScalar(3);let P=b(h);v(g,y+0,p,P),v(x,y+2,f,P),v(w,y+4,m,P)}for(let S=0;S<l.length;S+=6){let y=l[S+0],P=l[S+2],O=l[S+4],C=Math.max(y,P,O),T=Math.min(y,P,O);C>.9&&T<.1&&(y<.2&&(l[S+0]+=1),P<.2&&(l[S+2]+=1),O<.2&&(l[S+4]+=1))}function b(S){return Math.atan2(S.z,-S.x)}function N(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}}static fromJSON(e){return new yr(e.vertices,e.indices,e.radius,e.corner,e.cornerSides)}};var Qp=require("three"),Yp=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 jn(e*.5,n,i):new Qp.DodecahedronGeometry(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"DodecahedronGeometry"}})}},jn=class extends yr{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 jn(e.radius,e.corner,e.cornerSides)}};var TA=require("three");var hA=require("three"),zn=1e-12,Bo=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 Bo(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Eo=class extends Bo{constructor(A){super(A.position);this.parent=A}copy(A){return super.copy(A),this}clone(){return new Eo(this.parent).copy(this)}},lt=class extends Bo{constructor(A,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=A,this.controls.push(new Eo(this),new Eo(this))}static create(A,t){let r=new lt(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 lt(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&&(Xp(r,A),Xp(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 Xp(o,e=new hA.Vector2){let A=o.length();return e.set(-o.y/A,o.x/A)}var yl=o=>o,Do=new hA.Vector2,Hs=new hA.Vector2,pw=new hA.Vector2,fw=new hA.Vector2,mw=new hA.Vector2,hw=new hA.Vector2,Zp=new hA.Vector3,Jp=new hA.Vector3;function _p(o){let e=new hA.Vector2;e.addVectors(o.v0,Do.subVectors(o.v1,o.v0).multiplyScalar(2/3));let A=new hA.Vector2;return A.addVectors(o.v2,Hs.subVectors(o.v1,o.v2).multiplyScalar(2/3)),new hA.CubicBezierCurve(o.v0,e,A,o.v2)}function kn(o,e,A=Number.EPSILON){return Math.abs(o-e)<A}function yw(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function gw(o,e,A=Number.EPSILON){return o.distanceTo(e)<A}function gl(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 $p(o,e,A){return Kp(o,e)&&Kp(e,A)&&hl(o.position,e.position,A.position)}function hl(o,e,A){return Do.copy(e).sub(o).cross(Hs.copy(A).sub(o))===0}function Af(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 ef(o,e,A){let t=o.distanceTo(A),r=e.distanceTo(A);return t<r?e:o}function tf(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 gl(e,o,A)>Math.PI&&(s*=-1),kn(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 xl(o,e){return o.position.equals(o.controls[1].position)&&e.position.equals(e.controls[0].position)}function Kp(o,e){return hl(o.position,o.controls[1].position,e.position)&&hl(o.position,e.controls[0].position,e.position)}function rf(o,e,A,t,r=.5){let n=Do.subVectors(e,o).multiplyScalar(r).add(o),i=Hs.subVectors(A,e).multiplyScalar(r).add(e),a=pw.subVectors(t,A).multiplyScalar(r).add(A),l=n,u=fw.subVectors(i,n).multiplyScalar(r).add(n),s=mw.subVectors(a,i).multiplyScalar(r).add(i),c=a,d=hw.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 of(o,e,A=12,t=!0){let r=Jp.set(0,0,0),n,i=0,a=[];for(let l=0;l<e.length;l++){let u=yl(e[l]),s=Do,c=gr(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&&gw(n,r))continue;n===void 0&&(n=Zp),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 nf(o,e,A,t=12,r=!0){let n=Jp.set(0,0,0),i=0,a=[];for(let l=0;l<e.length;l++){if(A[l]===!1)continue;let u,s=yl(e[l]),c=Do,d=gr(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=Zp:(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 vl(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=gr(i.roundedCurveCorner,e)*.5;r>0&&(t[r-1]+=l),a+=l}i.curveAfter!==void 0&&(a+=gr(i.curveAfter,e)),t.push(a)}return o.length>0&&A&&o[0].roundedCurveCorner!==void 0&&(t[o.length-1]+=gr(o[0].roundedCurveCorner,e)*.5),t}function gr(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 sf(o,e,A=12,t=!0){let r,n=0;for(let i=0;i<e.length;i++){let a=yl(e[i]),l=gr(a,A),u=Do;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&&yw(r,u,zn))continue;r===void 0&&(r=Hs),r.copy(u),o.push(u.x,u.y),n++}}return kn(o[0],o[o.length-2],zn)&&kn(o[1],o[o.length-1],zn)&&(o.pop(),o.pop()),t&&n>1&&!(kn(o[n-1],o[1],zn)&&kn(o[n-2],o[0],zn))&&(o.push(o[0],o[1]),n++),o}var bl=new TA.Vector2,xw=new TA.Vector2,vw=new TA.Vector2,bw=new TA.Vector2,ww=new TA.Vector2,Sw=new TA.Vector2,SA=class extends TA.Shape{constructor(A=100,t=100){super();this.points=[];this.shapeHoles=[];this.plane=new TA.Plane(new TA.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=TA.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=A,this._height=t}static createFromState(A,t,r){let n=new SA;return n.isClosed=A.isClosed,n.points=A.points.map(i=>lt.create(i.id,i.data)),typeof A.roundness=="number"&&(n.roundness=A.roundness),n.shapeHoles=A.shapeHoles.map(i=>SA.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=bl.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()}createPoint(A,t=0,r=TA.MathUtils.generateUUID()){let n;A instanceof TA.Vector2?n=A:n=new TA.Vector2(A,t);let i=new lt(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(){for(let A=0,t=this.shapeHoles.length;A<t;A++)this.shapeHoles[A].update();this._update()}extractShapePointsToBuffer(A,t=12,r=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let n=r?this.roundedCurveDivisions:this.curveDivisions;return of(A,r?this.roundedCurves:this.curves,t,this.autoClose),n.reduce((i,a)=>i+a,0)+1}computeCurveDivisions(A=12){return this.curveDivisions=vl(this.points,A,!1),this.roundedCurveDivisions=vl(this.points,A,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(A,t,r=12){return nf(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),sf(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=gr(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(xl(n,i)){let c=n.position.distanceTo(i.position);return n.position.distanceTo(bl.set(r.x,r.y))/c}let u=0;for(let c=0;c<A;c++)u+=a[c];return(t-u)/l}dispose(){}_applyCurveForPoint(A,t){xl(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(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let t=0,r=this.points.length;t<r;t++){let n=this.points[t];if(t===0)this.moveTo(n.position.x,n.position.y);else{let i=this.points[t-1];this._applyCurveForPoint(n,i)}}let A=this.getLastPoint();if(A?.curveAfter&&(A.curveAfter=void 0),this.isClosed){let t=this.points[0],r=this.points[this.points.length-1];this._applyCurveForPoint(t,r)}if(this.points.length>2){let t=0;for(let r=0,n=this.points.length;r<n;r++){let i=this.points[r],a=this.points[r-1]??this.points[this.points.length-1],l=this.points[r+1]??this.points[0],u=i.roundness,s=a&&l&&$p(a,i,l);if(!i.controlsMoved()&&u>0&&!s){let c=i.curveBefore,d=i.curveAfter;if(c===void 0||d===void 0)continue;let p=i.roundedCurveBefore,f=i.roundedCurveAfter,m=c.getLength(),h=d.getLength(),g=Math.min(u,m*.499),x=Math.min(u,h*.499),w=Math.min(g,x),v=1-w/m,b=w/h,N=c.getPointAt(v,bl),S=d.getPointAt(b,xw);this._subSplitCurve(c,p,v,N,void 0),this._subSplitCurve(d,f,b,void 0,S);let y;if(this.useCubicForRoundedCorners){let P=gl(N,i.position,S)/2,O=Math.tan(P)*N.distanceTo(i.position),[C,T]=Af(N,S,O,vw,bw),L=ef(C,T,i.position),[B,k]=tf(L,N,S,O,ww,Sw);y=new TA.CubicBezierCurve(N.clone(),B.clone(),k.clone(),S.clone())}else y=new TA.QuadraticBezierCurve(N.clone(),i.position.clone(),S.clone());i.roundedCurveCorner=y,this.roundedCurves.splice(r+t,0,y),t++}}}}_subSplitCurve(A,t,r,n,i){if(A instanceof TA.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=rf(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 SA(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 lt(TA.MathUtils.generateUUID(),new TA.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 SA;return n.fromJSON(r),n}):[],this.isClosed=A.isClosed,this._roundness=A.roundness,this._update(),this}fromShape(A){let t=(n,i)=>{i instanceof TA.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 TA.QuadraticBezierCurve&&(n[a]=_p(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 TA.CubicBezierCurve?(p=this.createPoint(c.v0),p.controls[1].position.copy(c.v1)):c instanceof TA.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 TA.CubicBezierCurve?u.v3.equals(i[0].position)&&(i[0].controls[0].position.copy(u.v2),s=!0):u instanceof TA.LineCurve&&u.v2.equals(i[0].position)&&(s=!0),this.isClosed=s,i};return this.points=r(A.curves),A instanceof TA.Shape&&(this.shapeHoles=A.holes.map(n=>{let i=new SA;return i.fromShape(n),i})),this.update(),this}updatePoint(A,t){let r=this.getPointByUuid(A);r&&(t.position!==void 0&&r.position.fromArray(t.position),t.roundness!==void 0&&(r.roundness=t.roundness),t.areControlsDirectionsMirrored!==void 0&&(r.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(A,t){let n=this.getPointByUuid(A)?.controls[0];n&&(t.position&&n.position.fromArray(t.position),this.needsUpdate=!0)}updateNextControl(A,t){let n=this.getPointByUuid(A)?.controls[1];n&&(t.position&&n.position.fromArray(t.position),this.needsUpdate=!0)}};var Sl=Math.PI*2;function wl({x:o,y:e},A,t,r,n){return{x:o*A+r,y:e*t+n}}function Tw(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 af(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 Ow(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,g=m+(o+A)/2,x=h+(e+t)/2,w=(i-m)/r,v=(a-h)/n,b=(-i-m)/r,N=(-a-h)/n,S=af(1,0,w,v),y=af(w,v,b,N);return!u&&y>0&&(y-=Sl),u&&y<0&&(y+=Sl),{centerx:g,centery:x,ang1:S,ang2:y}}function lf({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=Ow(o,e,A,t,r,n,u,s,i,a),{ang1:p,ang2:f}=d,{centerx:m,centery:h}=d,g=Math.abs(f)/(Sl/4);Math.abs(1-g)<1e-7&&(g=1);let x=Math.max(Math.ceil(g),1);f/=x;for(let w=0;w<x;w++)l.push(Tw(p,f)),p+=f;return l.map(w=>{let{x:v,y:b}=wl(w[0],r,n,m,h),{x:N,y:S}=wl(w[1],r,n,m,h),{x:y,y:P}=wl(w[2],r,n,m,h);return{x1:v,y1:b,x2:N,y2:S,x:y,y:P}})}var Vr=require("three");var GA;(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"})(GA||(GA={}));var $A;(function(o){o[o.POLYGONS=0]="POLYGONS",o[o.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",o[o.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})($A||($A={}));function uA(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){uA(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){uA(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){uA(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){uA(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}(),Un=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}(),Ws=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}(),Go=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}(),cf=function(){function o(){var e=new Go,A=new Un,t=new Ws(0),r=new Ws(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 Ws(0),t=new Ws(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;uA(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;uA(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 Go,A=new Go,t=new Un,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 Go;this.makeVertex_(n,A,e.Org),e.Org.anEdge=e}if(!t){var i=new Un;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 Un;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 Go;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 Un;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){uA(r.prev===n),l=r.anEdge;do uA(l.Sym!==l),uA(l.Sym.Sym===l),uA(l.Lnext.Onext.Sym===l),uA(l.Onext.Sym.Lnext===l),uA(l.Lface===r),l=l.Lnext;while(l!==r.anEdge)}for(uA(r.prev===n&&r.anEdge===null),a=A,a=A;(i=a.next)!==A;a=i){uA(i.prev===a),l=i.anEdge;do uA(l.Sym!==l),uA(l.Sym.Sym===l),uA(l.Lnext.Onext.Sym===l),uA(l.Onext.Sym.Lnext===l),uA(l.Org===i),l=l.Onext;while(l!==i.anEdge)}for(uA(i.prev===a&&i.anEdge===null),u=t,u=t;(l=u.next)!==t;u=l)uA(l.Sym.next===u.Sym),uA(l.Sym!==l),uA(l.Sym.Sym===l),uA(l.Org!==null),uA(l.Dst!==null),uA(l.Lnext.Onext.Sym===l),uA(l.Onext.Sym.Lnext===l);uA(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}(),uf=function(){function o(){this.handle=null}return o}(),df=function(){function o(){this.key=null,this.node=0}return o}(),Nw=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 uf,this.handles[t]=new df;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,uA(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 uf;for(n=this.handles.length,this.handles.length=this.max+1,r=n;r<this.handles.length;r++)this.handles[r]=new df}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;uA(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}(),Tl=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}(),pf=function(){function o(){this.key=null,this.next=null,this.prev=null}return o}(),Pw=function(){function o(e,A){this.frame=e,this.leq=A,this.head=new pf,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 pf;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}(),Cw=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&&uA(A.eUp.winding===0),A.eUp.activeRegion=null,e.dict.delete(A.nodeUp)},o.fixUpperEdge=function(e,A,t){uA(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 Tl;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 GA.ODD:return(A&1)!==0;case GA.NONZERO:return A!==0;case GA.POSITIVE:return A>0;case GA.NEGATIVE:return A<0;case GA.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 uA(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,uA(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(uA(!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 Go,p,f;if(uA(!aA.vertEq(u,l)),uA(aA.edgeSign(l,e.event,i)<=0),uA(aA.edgeSign(u,e.event,a)>=0),uA(i!==e.event&&a!==e.event),uA(!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),uA(Math.min(i.t,l.t)<=d.t),uA(d.t<=Math.max(a.t,u.t)),uA(Math.min(u.s,l.s)<=d.s),uA(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)){uA(!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}uA(!1),A=o.topRightRegion(A),l=o.regionBelow(A),i=l.eUp.Sym,n=a=i.Onext,l.fixUpperEdge&&(uA(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 Tl;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);uA(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 Tl,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 Pw(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||(uA(A.fixUpperEdge),uA(++t===1)),uA(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 Nw(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,uA(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}(),Iw=function(){function o(){this.mesh=new cf,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=GA.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 g=0;g<3;++g)n=A.coords[g],n<u[g]&&(u[g]=n,f[g]=A),n>l[g]&&(l[g]=n,p[g]=A);var x=0;if(l[1]-u[1]>l[0]-u[0]&&(x=1),l[2]-u[2]>l[x]-u[x]&&(x=2),u[x]>=l[x]){e[0]=0,e[1]=0,e[2]=1;return}for(a=0,t=f[x],r=p[x],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===$A.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===$A.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 cf),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=GA.ODD),A===void 0&&(A=$A.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_(),Cw.computeInterior(this,i);var a=this.mesh;return A===$A.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),i&&a.check(),A===$A.BOUNDARY_CONTOURS?this.outputContours_(a,r):this.outputPolymesh_(a,A,t,r),!0},o}();function Rr(o){var e=o.windingRule,A=e===void 0?GA.ODD:e,t=o.elementType,r=t===void 0?$A.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 g=new Iw;o.edgeCreateCallback&&(g.edgeCreateCallback=o.edgeCreateCallback),o.vertexIdCallback&&(g.vertexIdCallback=o.vertexIdCallback);for(var x=0;x<d.length;x++)g.addContour(l||2,d[x]);return g.tesselate(A,r,i,l,s,f),{vertices:g.vertices,vertexIndices:g.vertexIndices,vertexCount:g.vertexCount,elements:g.elements,elementCount:g.elementCount,mesh:h?g.mesh:void 0}}}var q3=GA.ODD,Q3=GA.NONZERO,Y3=GA.POSITIVE,X3=GA.NEGATIVE,K3=GA.ABS_GEQ_TWO,Z3=$A.POLYGONS,J3=$A.CONNECTED_POLYGONS,_3=$A.BOUNDARY_CONTOURS;var Ro=class extends Vr.BufferGeometry{constructor(A,t=12,r={}){super();this.type="ShapeGeometry";this.windingRule=GA.ODD;this.elementType=$A.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=A,this._curveSegments=t,this._triangulationOptions=Object.assign({windingRule:GA.ODD,elementType:$A.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,g=n[h+0],x=n[h+1];if(s!==void 0&&g!==s&&(l=!1),c!==void 0&&x!==c&&(u=!1),s=g,c=x,!l&&!u)break}!l&&!u&&(a=Rr({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 Vr.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new Vr.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new Vr.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new Vr.BufferAttribute(new Uint32Array(p*3),1),a){let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let v=0,b=d;v<b;v++){let N=v*2,S=a.vertices[N+0],y=a.vertices[N+1];S<f&&(f=S),S>m&&(m=S),y<h&&(h=y),y>g&&(g=y)}let x=m-f,w=g-h;for(let v=0,b=d;v<b;v++){let N=v*2,S=a.vertices[N+0],y=a.vertices[N+1],P=(S-f)/x,O=(y-h)/w;this._positionAttribute.setXYZ(v,S,y,0),this._normalAttribute.setXYZ(v,0,0,1),this._uvAttribute.setXY(v,P,O)}for(let v=0,b=p;v<b;v++){let N=v*3,S=a.elements[N+0],y=a.elements[N+1],P=a.elements[N+2];this._indexAttribute.setX(N+0,S),this._indexAttribute.setX(N+1,y),this._indexAttribute.setX(N+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 Ro(this._shape,this._curveSegments);return A.userData=Mr(this.userData),A}};var Fr=require("three");var qs=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*qs.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*qs.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)}},Hn=qs;Hn.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Ol=(o,e)=>([A,t])=>(t<A&&(t+=e),(o>=A?o:o+e)<=t),Vo=class extends Fr.BufferGeometry{constructor(A,t,r=0,n=12,i=3,a=GA.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(y=>{let P=y.extractShapePointsToFlatArray([],n),O=[];for(let C=P.length-1;C>=1;C-=2){let T=P[C-1],L=P[C-0];O.push(T,L)}return O}),s=Rr({windingRule:a,elementType:$A.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),c=Rr({windingRule:GA.ODD,elementType:$A.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 y=0;y<c.elements.length;y++){let P=c.elements[y],O=y%2===0?s.vertexCount:0;s.elements.push(P+O)}for(let y=0;y<c.vertexIndices.length;y++){let P=c.vertexIndices[y],O=s.vertexCount;s.vertexIndices.push(P+O)}for(let y=0;y<c.vertices.length;y++){let P=c.vertices[y];s.vertices.push(P)}}let p=1/0,f=-1/0,m=1/0,h=-1/0;for(let y=0,P=s.vertexCount;y<P;y++){let O=y*2,C=s.vertices[O+0],T=s.vertices[O+1];C<p&&(p=C),C>f&&(f=C),T<m&&(m=T),T>h&&(h=T)}this._minX=p,this._minY=m,this._width=f-p,this._height=h-m;let g=s.vertexCount*2*(2+this._bevelSegments);this._buffer=new Hn(g);let x=[],w=[];for(let y=s.elementCount-1;y>=0;y--){let P=y>=d,O=y*2,C=s.elements[O+0],T=s.elements[O+1],L=C+T,B={start:C,count:T,normals:[],continuous:[],concave:[]},k=C,X=L-1,eA=C+1,nA=this._shape.roundedCurves.length;do{let j=k-C,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!==C+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:s.vertices.slice(C*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(C*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 ne=xA-dA;if(B.continuous[z]||P){let PA=dA+ne/2,LA=Math.cos(PA)*G,DA=Math.sin(PA)*G;D[2*F+0]=sA+LA*(P?-1:1),D[2*F+1]=tA+DA*(P?-1:1),W[F]=z,F++}else{let PA=Math.max(1,Math.floor(n/4*Math.abs(ne)/Math.PI));for(let LA=0;LA<=PA;LA++){let DA=dA+ne*(LA/PA),qe=Math.cos(DA)*G,_t=Math.sin(DA)*G;D[2*F+0]=sA+qe,D[2*F+1]=tA+_t,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=Rr({windingRule:GA.POSITIVE,elementType:$A.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=x.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=Ol(W,T);for(;!E.boundary.vertexIndices.filter(F).length||!G.boundary.vertexIndices.filter(F).length;)W++,F=Ol(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=Ol(W,T);let dA=q(E,R,F),xA=q(G,z,F),ne=fA;if(fA=!1,dA&&!xA){for(let PA=0;PA<dA;PA++)_=this.buildBevelVert(B,E,(R+PA)%D,PA/(dA-1)),x.push(tA.topN,_.topP,AA.topN),x.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)),x.push(AA.topN,tA.topP,Z.topP),x.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),ne?(x.push(tA.topN,Z.topP,AA.topN),x.push(tA.topN,_.topP,Z.topP),x.push(Z.bottomP,tA.bottomN,AA.bottomN),x.push(Z.bottomP,_.bottomP,tA.bottomN)):(x.push(AA.topN,tA.topN,_.topP),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,tA.bottomN,AA.bottomN),x.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)),x.push(tA.topN,_.topP,AA.topN),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,tA.bottomN,AA.bottomN),x.push(_.bottomP,AA.bottomN,Z.bottomP),tA=_,AA=Z;else if(dA>xA){let PA=dA/xA,LA=0;for(let DA=1;DA<dA;DA++)_=this.buildBevelVert(B,E,(R+DA)%D,DA/(dA-1)),x.push(tA.topN,_.topP,AA.topN),x.push(_.bottomP,tA.bottomN,AA.bottomN),tA=_,DA>(LA+1)*PA&&(LA++,Z=this.buildBevelVert(B,G,(z+LA)%H,LA/(xA-1)),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z)}else{let PA=xA/dA,LA=0;for(let DA=1;DA<xA;DA++)Z=this.buildBevelVert(B,G,(z+DA)%H,DA/(xA-1)),x.push(AA.topN,_.topP,Z.topP),x.push(_.bottomP,AA.bottomN,Z.bottomP),AA=Z,DA>(LA+1)*PA&&(LA++,_=this.buildBevelVert(B,E,(R+LA)%D,LA/(dA-1)),x.push(tA.topN,_.topP,AA.topN),x.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);x.push(H.topP,D.topN,D.bottomN),x.push(H.topP,D.bottomN,H.bottomP)}}if(P){let j=[];for(let E=x.length-1;E>=Q+2;E-=3){let G=x[E-2],D=x[E-1],H=x[E-0];j.push(H,D,G)}x.splice(Q,x.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)}w.push(j)}if(!P){let j=U[U.length-1],E=Rr({windingRule:U.length>1?GA.POSITIVE:GA.ODD,elementType:$A.POLYGONS,vertexSize:2,strict:!0,contours:[j.insetPoints,...w]});if(!E)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:x.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]);x.push(D.top,H.top,Y.top),x.push(Y.bottom,H.bottom,D.bottom)}}this.vertexCache={}}this._buffer.shrink();let v=new Fr.BufferAttribute(Uint32Array.from(x),1),b=new Fr.BufferAttribute(this._buffer.positions,3),N=new Fr.BufferAttribute(this._buffer.normals,3),S=new Fr.BufferAttribute(this._buffer.uvs,2);b.needsUpdate=!0,N.needsUpdate=!0,S.needsUpdate=!0,v.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",N),this.setAttribute("uv",S),this.setIndex(v)}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,g=s*2,x=t.boundary.vertices[m+0],w=t.boundary.vertices[m+1],v=(1-f)*this._bevelSize,b=(x-this._minX)/this._width,N=(w-this._minY)/this._height,S=A.normals[h+0],y=A.normals[h+1],P=A.normals[g+0],O=A.normals[g+1];if(d){let k=P-S,X=O-y;S=S+k*(1-n),y=y+X*(1-n);let eA=Math.sqrt(S*S+y*y);S/=eA,y/=eA}let C=this._buffer.get(c?2:4),T=C*3,L=C*2,B={i:r,fi:u,topP:C+0,topN:C+0,bottomP:C+1,bottomN:C+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-v,this._buffer.normals[T+0]=S*p,this._buffer.normals[T+1]=y*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=v,this._buffer.normals[T+3]=S*p,this._buffer.normals[T+4]=y*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=N,this._buffer.uvs[L+3]=b,c||(C+=2,T+=6,L+=4,B.topP=C+0,B.bottomP=C+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-v,this._buffer.normals[T+0]=P*p,this._buffer.normals[T+1]=O*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=v,this._buffer.normals[T+3]=P*p,this._buffer.normals[T+4]=O*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=N,this._buffer.uvs[L+3]=b),this.vertexCache[i]=B,B}clone(){let A=new Vo(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return A.userData=Mr(this.userData),A}};var Ee=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:GA.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 SA?(i.width!==t||i.height!==r)&&i.applySize(t,r):i=new SA(t,r).fromJSON(i),o.parameters?.roundness!==void 0&&o.parameters?.roundness>0&&i.update());let l=i??new SA(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 Ro(o.shape,r,{windingRule:i}):a=new Vo(o.shape,e,A,r,t,i),Object.assign(a,{userData:{...o,type:"VectorGeometry"}})}};var jo=require("three"),mf=Math.PI*2,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,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof SA?o.shape:new SA,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=Lw(u,s,c,r*Math.PI/180,t,n);u.isClosed=!0,u.update();let p=Ee.create({shape:u,parameters:{subdivisions:d,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(p,{userData:{...o,type:"EllipseGeometry"}})}};function Lw(o,e,A,t,r,n){if(t>=mf)return r>30||r%4===0?(Bw(o,e,A,n),Math.round(r/4)):ff(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=lf({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?Mw(o,i.x,i.y,u,r,e,A,n):ff(o,t,r,e,A,n)}function Mw(o,e,A,t,r,n,i,a){let l=Math.round(r/t.length);o.addPoint(Fo(e,A));for(let u=0,s=t.length;u<s;u++){let c=t[u],d=o.points[u],p=Fo(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?yf(o,n,i,a):o.addPoint(Fo(0,0)),l}function ff(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(Fo(u,s))}return e<mf?n>0?yf(o,t,r,n):o.addPoint(Fo(0,0)):(o.removePoint(o.points[o.points.length-1]),n>0&&gf(o,t,r,n)),1}function Bw(o,e,A,t=0,r=0,n=0){let i=.5522847498,a=e*i,l=A*i;o.addPoint(Qs(r-e,n,r-e,n-l,r-e,n+l)),o.addPoint(Qs(r,n+A,r-a,n+A,r+a,n+A)),o.addPoint(Qs(r+e,n,r+e,n+l,r+e,n-l)),o.addPoint(Qs(r,n-A,r+a,n-A,r-a,n-A)),t>0&&gf(o,e,A,t)}function Fo(o,e){return new lt(jo.MathUtils.generateUUID(),new jo.Vector2(o,e))}function Qs(o,e,A,t,r,n){let i=Fo(o,e);return i.controls[0].position.set(A,t),i.controls[1].position.set(r,n),i}function yf(o,e,A,t){xf(o,e,A,t).forEach(n=>o.addPoint(n))}function gf(o,e,A,t){let r=xf(o,e,A,t),n=new SA;r.forEach(i=>n.addPoint(i)),n.isClosed=!0,o.shapeHoles.push(n)}function xf(o,e,A,t){let r=t*e/100,n=r*(Math.abs(A)/Math.abs(e)),i=new jo.Vector2(r/e,n/A),a=o.points.map(l=>{let u=l.clone();return u.uuid=jo.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 Xt=require("three"),vf=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 Wn(!1,e,A,t,r,n,i,a,l,u,s,c);return Object.assign(d,{userData:{...o,type:"HelixGeometry"}})}},Wn=class extends Xt.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 Xt.Vector3,m=new Xt.Vector3,h=f(),g=f(),x=f(),w,v,b,N,S,y,P,O,C=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 ne(QA,je){let gt=Math.PI/2;y=je*E,O=2*Math.PI*(y%q)/q+gt,y+=G,P=Math.sin(O)*xA,S=Math.cos(O)*xA,e?QA.set(S,P,y):QA.set(S,y,P)}ne(m,-1e-10),ne(h,0),C.copy(m),ne(m,1);let PA=m.distanceTo(h),LA=p?0:R+F,DA=PA*Q+2*LA,qe=F,_t=DA-LA;for(let QA=0;QA<=Q;QA++){ne(g,QA),nA.subVectors(g,C).normalize(),C.copy(g),X.copy(g).setComponent(+e+1,0).normalize(),eA.crossVectors(nA,X).normalize();let je=QA===0,gt=QA===Q,xh=je?3*Math.PI/2:Y,vh=je?qe:_t,bh=je?D:tA,wh=je?0:AA-D,Sh=nA.clone().multiplyScalar(je?-R:R).add(g),Th=nA.clone().multiplyScalar(je?-1:1).normalize();for(let jt=0;jt<D;jt++){let bc=jt*H;if(T.addVectors(m.copy(X).multiplyScalar(l*Math.cos(bc)),h.copy(eA).multiplyScalar(l*Math.sin(bc))),L.copy(T).normalize(),je||gt){p||(z=wh+jt,[0,1,2].forEach(Ce=>{_[z*3+Ce]=Sh.getComponent(Ce),Z[z*3+Ce]=Th.getComponent(Ce)}),fA[z*2]=+gt,fA[z*2+1]=jt/s),h.copy(L).multiplyScalar(F),x.addVectors(g,h);for(let Ce=0;Ce<d;Ce++){let Ea=Ce*Y+xh;B.addVectors(m.copy(nA).multiplyScalar(R*Math.sin(Ea)),h.copy(L).multiplyScalar(R*Math.cos(Ea))),k.copy(B).normalize(),h.addVectors(x,B),B.normalize(),z=bh+Ce*D+jt,[0,1,2].forEach(Vi=>{_[z*3+Vi]=h.getComponent(Vi),Z[z*3+Vi]=k.getComponent(Vi)});let Oh=+je+Math.sin(Ea);fA[z*2]=(vh+R*Oh)/DA,fA[z*2+1]=jt/s}}h.addVectors(g,T),z=sA+QA*D+jt,[0,1,2].forEach(Ce=>{_[z*3+Ce]=h.getComponent(Ce),Z[z*3+Ce]=L.getComponent(Ce)}),fA[z*2]=(LA+QA*PA)/DA,fA[z*2+1]=jt/s}}let Fe=j+2*d+$,Di=1,[Gi,Ri]=[+p,Fe-1];for(let QA=Gi;QA<=Ri-1;QA++){let je=p&&QA===Ri-1;for(let gt=0;gt<D-1;gt++)w=QA*D+gt,v=w+1,b=(je?gt:w)+D,N=(je?gt+1:v)+D,QA===0?dA.push(v,N,b):QA===Fe-2?dA.push(w,v,b):dA.push(w,v,b,v,N,b)}this.setIndex(dA),this.setAttribute("position",new Xt.Float32BufferAttribute(_,3)),this.setAttribute("normal",new Xt.Float32BufferAttribute(Z,3)),this.setAttribute("uv",new Xt.Float32BufferAttribute(fA,2))}};var bf=require("three");var wf=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 bf.IcosahedronGeometry(e*.5,r);return a.scale(1,A/e,t/e),Object.assign(a,{userData:{...o,type:"IcosahedronGeometry"}})}},qn=class extends yr{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 Ys=require("three"),Sf=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 Ys.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 Ys.LatheGeometry(r.extractPoints(t).shape,A);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...o,type:"LatheGeometry"}})}};var Pt=require("three");var Kt=require("three");var iA=require("three"),Nt=new iA.Matrix4,Nl=new iA.Object3D,Xs=new iA.Vector3,xr=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 Nt.makeRotationX(e),this.applyMatrix4(Nt),this}rotateY(e){return Nt.makeRotationY(e),this.applyMatrix4(Nt),this}rotateZ(e){return Nt.makeRotationZ(e),this.applyMatrix4(Nt),this}translate(e,A,t){return Nt.makeTranslation(e,A,t),this.applyMatrix4(Nt),this}scale(e,A,t){return Nt.makeScale(e,A,t),this.applyMatrix4(Nt),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()],g=i===void 0?[]:[new iA.Vector3().fromBufferAttribute(i,d),new iA.Vector3().fromBufferAttribute(i,p),new iA.Vector3().fromBufferAttribute(i,f)],x=new zo(d,p,f,g,h,m);A.faces.push(x),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,g=f+m;h<g;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(Xs).negate(),this.translate(Xs.x,Xs.y,Xs.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 xr;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,g=f.vertexNormals,x=f.vertexColors,w=new zo(f.a+n,f.b+n,f.c+n);w.normal.copy(f.normal),r!==void 0&&w.normal.applyMatrix3(r).normalize();for(let v=0,b=g.length;v<b;v++)m=g[v].clone(),r!==void 0&&m.applyMatrix3(r).normalize(),w.vertexNormals.push(m);w.color.copy(f.color);for(let v=0,b=x.length;v<b;v++)h=x[v],w.vertexColors.push(h.clone());w.materialIndex=f.materialIndex+t,l.push(w)}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 g=f[m],x=[];for(let w=0,v=g.length;w<v;w++)x.push(g[w].clone());this.faceVertexUvs[d].push(x)}}}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,g=!1,x=this.faceVertexUvs[0][f]!==void 0,w=m.normal.length()>0,v=m.vertexNormals.length>0,b=m.color.r!==1||m.color.g!==1||m.color.b!==1,N=m.vertexColors.length>0,S=0;if(S=s(S,0,0),S=s(S,1,h),S=s(S,2,g),S=s(S,3,x),S=s(S,4,w),S=s(S,5,v),S=s(S,6,b),S=s(S,7,N),t.push(S),t.push(m.a,m.b,m.c),t.push(m.materialIndex),x){let y=this.faceVertexUvs[0][f];t.push(p(y[0]),p(y[1]),p(y[2]))}if(w&&t.push(c(m.normal)),v){let y=m.vertexNormals;t.push(c(y[0]),c(y[1]),c(y[2]))}if(b&&t.push(d(m.color)),N){let y=m.vertexColors;t.push(d(y[0]),d(y[1]),d(y[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 xr().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 g=f[m],x=[];for(let w=0,v=g.length;w<v;w++){let b=g[w];x.push(b.clone())}this.faceVertexUvs[d].push(x)}}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 g=i[d].vertexNormals[m],x={};x.a=g.a.clone(),x.b=g.b.clone(),x.c=g.c.clone(),f.vertexNormals.push(x)}}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 Pl().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}};xr.prototype.isGeometry=!0;var Pl=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 g=0;g<l;g++)u[g]={name:a[g].name,data:[]};this.morphTargets.position=u}let s=e.morphNormals,c=s.length,d;if(c>0){d=[];for(let g=0;g<c;g++)d[g]={name:s[g].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 g=0;g<A.length;g++){let x=A[g];this.vertices.push(t[x.a],t[x.b],t[x.c]);let w=x.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[2]);else{let b=x.normal;this.normals.push(b,b,b)}let v=x.vertexColors;if(v.length===3)this.colors.push(v[0],v[1],v[2]);else{let b=x.color;this.colors.push(b,b,b)}if(n===!0){let b=r[0][g];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",g),this.uvs.push(new iA.Vector2,new iA.Vector2,new iA.Vector2))}if(i===!0){let b=r[1][g];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",g),this.uvs2.push(new iA.Vector2,new iA.Vector2,new iA.Vector2))}for(let b=0;b<l;b++){let N=a[b].vertices;u[b].data.push(N[x.a],N[x.b],N[x.c])}for(let b=0;b<c;b++){let N=s[b].vertexNormals[g];d[b].data.push(N.a,N.b,N.c)}m&&this.skinIndices.push(p[x.a],p[x.b],p[x.c]),h&&this.skinWeights.push(f[x.a],f[x.b],f[x.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}},zo=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 Ew=["a","b","c"];function Dw(o,e){switch(e){case"c":return o.c;case"b":return o.b;case"a":default:return o.a}}function Cl(o,e,A){let t=Math.min(o,e),r=Math.max(o,e),n=t+"_"+r;return A.get(n)}function Il(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 Gw(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],Il(i.a,i.b,o,t,i,A),Il(i.b,i.c,o,t,i,A),Il(i.c,i.a,o,t,i,A)}function Ks(o,e,A,t,r){o.push(new zo(e,A,t,void 0,void 0,r))}function ko(o,e){return Math.abs(e-o)/2+Math.min(o,e)}function Zs(o,e,A,t){o.push([e.clone(),A.clone(),t.clone()])}var Js=class{constructor(e=1){this.subdivisions=e}modify(e){e instanceof Kt.BufferGeometry?e=new xr().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 Kt.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;Gw(l,u,d,p);let f=[],m,h,g,x,w,v,b;for(let W of Array.from(p.keys())){for(h=p.get(W),g=new Kt.Vector3,w=3/8,v=1/8,b=h.faces.length,b!=2&&(w=.5,v=0,b!=1),g.addVectors(h.a,h.b).multiplyScalar(w),A.set(0,0,0),i=0;i<b;i++){for(x=h.faces[i],a=0;a<3&&(m=l[Dw(x,Ew[a])],!(m!==h.a&&m!==h.b));a++);m&&A.add(m)}A.multiplyScalar(v),g.add(A),h.newEdge=f.length,f.push(g)}let N,S,y,P,O,C,T,L=[];for(r=0,n=l.length;r<n;r++){for(C=l[r],O=d[r].edges,t=O.length,t==3?N=3/16:t>3&&(N=3/(8*t)),S=1-t*Number(N),y=N,t<=2&&(t==2?(S=3/4,y=1/8):t==1||t==0),T=C.clone().multiplyScalar(S),A.set(0,0,0),i=0;i<t;i++)P=O[i],m=P.a!==C?P.a:P.b,A.add(m);A.multiplyScalar(Number(y)),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 Kt.Vector2,H=new Kt.Vector2,Y=new Kt.Vector2;for(r=0,n=u.length;r<n;r++)x=u[r],X=Number(Cl(x.a,x.b,p).newEdge)+k,eA=Number(Cl(x.b,x.c,p).newEdge)+k,nA=Number(Cl(x.c,x.a,p).newEdge)+k,Ks(U,X,eA,nA,x.materialIndex),Ks(U,x.a,X,nA,x.materialIndex),Ks(U,x.b,eA,X,x.materialIndex),Ks(U,x.c,nA,eA,x.materialIndex),c&&(Q=s[r],j=Q[0],E=Q[1],G=Q[2],D.set(ko(j.x,E.x),ko(j.y,E.y)),H.set(ko(E.x,G.x),ko(E.y,G.y)),Y.set(ko(j.x,G.x),ko(j.y,G.y)),Zs(q,D,H,Y),Zs(q,j,D,Y),Zs(q,E,H,D),Zs(q,G,Y,H));e.vertices=B,e.faces=U,c&&(e.faceVertexUvs[0]=q)}};var Ae=new Pt.Vector3,Tf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,e){let A=o.geometry??e?.geometry??new Pt.BufferGeometry().copy(new Pt.BoxGeometry(100,100,100)),t;e===void 0?(A.computeBoundingBox(),A.boundingBox.getSize(Ae),t={width:Ae.x,height:Ae.y,depth:Ae.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 Pt.BufferGeometry().copy(new Pt.BoxGeometry(100,100,100)),i=n.userData.parameters;i===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(Ae)):Ae.set(i.width,i.height,i.depth),(e!==Ae.x||A!==Ae.y||t!==Ae.z)&&n.scale(Ae.x===0?1:e/Ae.x,Ae.y===0?1:A/Ae.y,Ae.z===0?1:t/Ae.z);let a=n.originalGeometry;return r>0?(a===void 0||i?.subdivisions!==r)&&(a===void 0&&(a=n),n=new Js(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 Pt.BufferGeometryLoader(A).load(o,r=>{let n=this.normalizeInputs({geometry:r});r.boundingBox.getSize(Ae);let i=100/Ae.x;Object.assign(n.parameters,{width:100,height:Ae.y*i,depth:Ae.z*i}),e(this.build(n))})}};var Of=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 SA?o.shape:new SA,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,g=c+Math.sin(h)*u,x=d+Math.cos(h)*s;l.addPoint(l.createPoint(g,x))}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=Ee.create({shape:l,parameters:{roundness:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(f,{userData:{...o,type:"PolygonGeometry"}})}};var bA=require("three"),Nf=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 Ml(e*.5,A,r,n,i,a,l);return u.scale(1,1,t/e),Object.assign(u,{userData:{...o,type:"PyramidGeometry"}})}};function Qn(o,e,A){A.x=o.x*e.x,A.y=o.y,A.z=o.x*e.y}function Ll(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 Rw(o,e,A){let t=o.clone().sub(e),r=A.clone().sub(e);return t.projectOnVector(r),t.add(e)}var Ml=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,g=(t-2)*Math.PI/t,x=Math.PI-g,w=new bA.Vector3(0,-p,0),v=new bA.Vector3(0,p,0),b=new bA.Vector2(e,-p),N=new bA.Vector2(m,-p),S=new bA.Vector2(0,v.y).sub(N),y=new bA.Vector2(0,v.y).sub(b),P=new bA.Vector2(S.y,-S.x).normalize(),O=new bA.Vector2(y.y,-y.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(w.x,w.y,w.z),s.push(0,-1,0),c.push(0,0);let q=d++,Q=[],j=b.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));Qn(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));Qn(b,R,Q),Qn(b,$,j),Qn(P,z,q),Ll(v,Q,j,k,k,E),u.push(E.x,E.y,E.z),Ll(Q,v,j,k,B,G),u.push(G.x,G.y,G.z),Ll(j,Q,v,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=v.clone().sub(Z).normalize(),xA=w.clone().sub(Z).normalize().add(fA).normalize().multiplyScalar(-1),ne=D.clone().sub(G);nA(Z,ne,xA,S.angle())}let AA,_;{let Z=new bA.Vector3;Qn(O,$,Z);let fA=D.clone().add(E).multiplyScalar(.5);fA=Rw(fA,j,v);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=v.clone();dA.y-=i/Math.sin(Z-Math.PI/2);let xA=new bA.Vector3,ne=[];for(let LA=0;LA<a;LA++){let DA=[],qe=Math.PI/2-fA*LA/a,_t=Math.cos(qe),Fe=Math.sin(qe),Di=W;for(let Gi=0;Gi<=LA;Gi++){let Ri=Math.cos(Di),QA=Math.sin(Di);q.x=_t*QA,q.y=Fe,q.z=_t*Ri,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),DA.push(d++),Di+=Math.PI*2/LA/t}ne.push(DA)}_.reverse(),ne.push(_);let PA=ne.length-1;for(let LA=0;LA<PA;LA++){let DA=ne[LA],qe=ne[LA+1],_t=DA.length-1;l.push(qe[1],DA[0],qe[0]);for(let Fe=1;Fe<=_t;Fe++)l.push(DA[Fe],DA[Fe-1],qe[Fe]),l.push(qe[Fe+1],DA[Fe],qe[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=y.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)*x,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 Pf=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 SA?o.shape:new SA,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(v,b,N){return b>A&&N>t?Math.min(v*A/b,v*t/N):b>A?v*A/b:N>t?v*t/N:v}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,g=s.y;e.addPoint(e.createPoint(f,h)),e.addPoint(e.createPoint(m,h)),e.addPoint(e.createPoint(m,g)),e.addPoint(e.createPoint(f,g)),e.isClosed=!0;let x=!0;for(let v=0,b=e.points.length;v<b;v++)e.points[v].roundness=p[v],v>0&&p[v]!==p[v-1]&&(x=!1);x&&(e.roundness=p[0]),e.useCubicForRoundedCorners=n!==1,e.update();let w=Ee.create({shape:e,parameters:{depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(w,{userData:{...o,type:"RectangleGeometry"}})}};var Cf=require("three"),If=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 Cf.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 Lf=require("three"),Mf=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 Lf.PlaneGeometry(e,A,t,r);return n.scale(1,1,1),Object.assign(n,{userData:{...o,type:"PlaneGeometry"}})}};var vr=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,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 Bl(e,A,t,r,n,i);return Object.assign(a,{userData:{...o,type:"BackdropGeometry"}})}},Bl=class extends vr.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 vr.Vector3(W,F,R),f=p(),m=p(),[h,g,x]=[A/2,e/2,t/2],w=-g,v=+g,[b,N,S]=[p(w,-h,+x),p(w,-h,-x),p(w,+h,-x)],y=(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 O=Math.cos(r)*A-x,C=b.z-s;r<=d?(S.z=Math.min(O,C),S.z==C&&(S.y-=(O-C)/Math.tan(d-r))):N.z=Math.min(N.z-O-x,b.z-s),f.subVectors(b,N),m.subVectors(S,N);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(N);f.set(0,y(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,y(F),P(F)),c.push([f.clone(),m.clone()])}c.push([b,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(w,j.y,j.z,w,D.y,D.z,v,j.y,j.z,v,j.y,j.z,w,D.y,D.z,v,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 vr.Float32BufferAttribute(a,3)),this.setAttribute("normal",new vr.Float32BufferAttribute(l,3)),this.setAttribute("uv",new vr.Float32BufferAttribute(u,2))}};var Ef=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 SA?o.shape:new SA,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,g=c*t/100,x=d*t/100;if(r===3&&t===50){m=2*Math.PI/r;for(let v=0;v<r;v++){let b=m*v,N=p+Math.sin(b)*c,S=f+Math.cos(b)*d;s.addPoint(s.createPoint(N,S))}}else for(let v=0;v<r;v++){let b=p+Math.cos(h)*c,N=f+Math.sin(h)*d;s.addPoint(s.createPoint(b,N)),h+=m,b=p+Math.cos(h)*g,N=f+Math.sin(h)*x,v<=r,s.addPoint(s.createPoint(b,N)),h+=m}s.isClosed=!0;for(let v=0,b=s.points.length;v<b;v++)s.points[v].roundness=n;s.roundness=n,s.update();let w=Ee.create({shape:s,parameters:{roundness:n,depth:a,extrudeBevelSize:l,extrudeBevelSegments:u}});return Object.assign(w,{userData:{...o,type:"StarGeometry"}})}};var Df=require("three"),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},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 Df.PlaneGeometry(e,A);return Object.assign(t,{userData:{...o,type:"TextFrameGeometry"}})}};var Rf=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=Vw(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 Vw(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 Wn(!0,o,e,A,t,r,n,i,a,l,u,s)}var Vf=require("three"),Ff=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 Vf.TorusKnotGeometry(a,A,t,r,n,i);return Object.assign(l,{userData:{...o,type:"TorusKnotGeometry"}})}};var jf=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 SA?o.shape:new SA,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=Ee.create({shape:l,parameters:{roundness:t,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i}});return Object.assign(c,{userData:{...o,type:"TriangleGeometry"}})}};var jr=require("three"),zf=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Fw(){let o=new jr.BufferGeometry;return o.setAttribute("position",new jr.BufferAttribute(new Float32Array([]),3)),o.setIndex(new jr.BufferAttribute(new Uint16Array([]),1)),o}var jw=12,zw=1,Uo=class extends jr.BufferGeometry{constructor(A,t){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];this.userData={parameters:A,type:"TextGeometry"};let r=t.getFont(A.font);r?.isLoaded?(this.font=r,this.update(A)):this.updateFont(A.font,t).then(()=>{this.update(A),t._onFontLoad()})}async updateFont(A,t){let r=t.getFont(A);r&&(this.font=r,await r.loadingPromise)}update(A){let t=this.font;if(this.userData={parameters:A,type:"TextGeometry"},!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}=A,c=s===2?u.toUpperCase():s===3?u.toLowerCase():u,d=kw(A,t,c),{shapes:p,charWidths:f,charCoords:m}=t.generateShapes(d,A),h=r*.5,g=n*.5,x=p.map(b=>new SA().fromShape(b));this.vectorShapes=x;let w=x.map(b=>Ee.create({shape:b,parameters:{depth:i,extrudeBevelSegments:l,extrudeBevelSize:a,windingRule:i<=0?GA.NONZERO:GA.ODD,subdivisions:this.isLowResolution&&i>0?zw:jw}})),v=w.length?(0,zf.mergeBufferGeometries)(w):Fw();v.translate(-h,g,0),this.dispose(),this.wrappedText=d,this.charCoords=m,this.charWidths=f,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([b,N])=>{this.setAttribute(b,N)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let A=fr(new jr.BufferGeometry,Uo.prototype);return A.copy(this),console.log("CloneGeometry",this,A),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 kw(o,e,A){A=A??o.text;let t=[""],r="";for(let n of A)r+=n,n===" "||n===`
2
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(`
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 VA=require("three");var Uw,Ho=new Promise(o=>{Uw=o});var kf=require("three");function Wo(o,e,A){let t={parameters:o,type:o.type};if(o.type==="VectorGeometry"){let n=SA.createFromState(o.shape,o.width,o.height);t.shape=n}else if(o.type==="NonParametricGeometry")o.data.groups&&o.data.groups.forEach(n=>n.materialIndex=Math.max(n.materialIndex??0,0)),t.geometry=new kf.BufferGeometryLoader().parse(o);else{if(o.type==="SubdivGeometry")return new se(o,A);if(o.type==="TextGeometry")return new Uo(o,e)}let r;try{r=El(t)}catch(n){console.error(n)}if(!r){let n=SA.createFromState(No.defaultData(),100,100);t.shape=n,r=El(t)}return r}var _s=new VA.Box3,$s=new VA.Vector3,cA;Ho.then(o=>{cA=o});var Uf=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Hf=new Uint32Array([0,1,2,3]),Wf=new Uint8Array([4]),se=class extends VA.BufferGeometry{constructor(A,t){super();let{originalGeometry:r,subdividedGeometry:n,subdivPointer:i}=se.build(A,void 0,!t,void 0);this.subdivPointer=i,this.originalGeometry=r,this.subdividedGeometry=n??void 0;let a=this.subdividedGeometry??this.originalGeometry;Object.assign(this,a),this.calcBoundingBox()}dispose(){se.freeSubdivPointer(this.subdivPointer)}calcBoundingBox(){let A=this.originalGeometry;A.boundingSphere===null&&(A.boundingSphere=new VA.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=A.boundingSphere));let t=A.attributes.position,r=A.boundingSphere.center;_s.setFromBufferAttribute(t),_s.getCenter(r),A.boundingSphere.radius=r.distanceTo(_s.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),_s.getSize($s);let n={width:$s.x,height:$s.y,depth:$s.z};return this.userData.parameters=n,n}static build(A,t,r,n){let i,a,l,u=A?.phongAngle??35;r===!1&&(u=-1),t&&(cA.free_bvh(t),cA.free_subdivision_surface(t));try{i=se.allocate(A,n)}catch(s){console.error(s,A),i=se.allocate({positionWASM:Uf,indexWASM:Hf,verticesPerFaceWASM:Wf},n)}return cA.set_destination_refinement_level(i,0),a=se.buildLevel(i,!0,u),A.subdivisions>0?(cA.set_destination_refinement_level(i,A.subdivisions),l=se.buildLevel(i,!1,u)):l=null,{subdivPointer:i,originalGeometry:a,subdividedGeometry:l}}static primitiveToQuads(A,t,r){A.widthSegments>16&&(A.widthSegments=16),A.heightSegments>16&&(A.heightSegments=16),A.depthSegments>16&&(A.depthSegments=16),A.radialSegments>16&&(A.radialSegments=16),A.type==="DodecahedronGeometry"&&(A.detail=0);let n=A.shape!==void 0?t.geometry:Wo(A,r,!1),i,a,l,u;({positions:i,triIndices:u}=Vl(n.getAttribute("position"),n.getIndex()));let s;if(A.type==="CylinderGeometry"&&A.cornerRadius===0&&A.hollow===0&&A.openEnded===!1){let c=A.radialSegments*A.heightSegments*3*2,d=c+A.radialSegments*3;s=[c,d]}return{indices:a,verticesPerFace:l}=Fl(i,u,n,s),{positions:i,indices:a,verticesPerFace:l}}static allocate(A,t){let r,n,i,a=[],l=[];A.positionWASM&&A.positionWASM.length>0?(r=A.positionWASM,n=A.indexWASM,i=A.verticesPerFaceWASM):(r=Uf,n=Hf,i=Wf);let u=r.length,s=n.length,c=i.length,d=r.length+a.length+l.length,p=n.length+i.length,f=d*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,m=d*Float32Array.BYTES_PER_ELEMENT,h=p*Uint32Array.BYTES_PER_ELEMENT,g=cA._malloc(f),x=new Float32Array(cA.HEAPF32.buffer,g,d),w=new Uint32Array(cA.HEAPU32.buffer,g+m,p);x.set(r,0),x.set(a,r.length),x.set(l,r.length+a.length),w.set(n,0),w.set(i,n.length);let v;A?.scaleBaked?.some(N=>N!==1)&&(v=new VA.Matrix4().makeScale(...A.scaleBaked)),t&&(v?v.premultiply(t):v=t);let b=v?cA.alloc_subdivision_surface2(g,u,g+m,s,g+m+n.length*Uint32Array.BYTES_PER_ELEMENT,c,v.elements):cA.alloc_subdivision_surface(g,u,g+m,s,g+m+n.length*Uint32Array.BYTES_PER_ELEMENT,c);return cA._free(g),b}static buildLevel(A,t,r,n,i){let a=i?cA.get_mesh_data2(A,t?cA.Level.CONTROL:cA.Level.REFINED,r,i.elements):cA.get_mesh_data(A,t?cA.Level.CONTROL:cA.Level.REFINED,r),l=8,u=cA.HEAPU32.subarray(a>>2,(a>>2)+l),s=u.subarray(4,4+4),c=0,d=cA.HEAPU32[u[c]>>2],p=cA.HEAPF32.subarray(d>>2,(d>>2)+s[c]);c++;let f=cA.HEAPU32[u[c]>>2],m=cA.HEAPF32.subarray(f>>2,(f>>2)+s[c]);c++;let h=cA.HEAPU32[u[c]>>2],g=cA.HEAPU32.subarray(h>>2,(h>>2)+s[c]);c++;let x=cA.HEAPU32[u[c]>>2],w=cA.HEAPU32.subarray(x>>2,(x>>2)+s[c]);if(c++,n===void 0){let v=new VA.BufferGeometry;if(v.setIndex(new VA.Uint32BufferAttribute(w,1)),v.setAttribute("position",new VA.Float32BufferAttribute(p,3)),v.setAttribute("normal",new VA.Float32BufferAttribute(m,3)),t){v.setAttribute("faceMap",new VA.Uint32BufferAttribute(g,1));let b=new Float32Array(m.length/3*4).fill(0);v.setAttribute("color",new VA.BufferAttribute(b,4))}return cA.free_mesh_data(a),v.userData.type="SubdivGeometry",v}n.getAttribute("position").copyArray(p),n.getAttribute("normal").copyArray(m),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,cA.free_mesh_data(a)}static freeSubdivPointer(A){cA.free_bvh(A),cA.free_subdivision_surface(A)}static buildControlCageWireframe(A,t,r){let n=cA.get_wireframe_data_for_base_level(A),i=4,a=cA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+2),u=0,s=cA.HEAPU32[a[u]>>2],c=cA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=cA.HEAPU32[a[u]>>2],p=cA.HEAPU32.subarray(d>>2,(d>>2)+l[u]);if(t===void 0){let f=new VA.BufferGeometry;f.setAttribute("position",new VA.Float32BufferAttribute(c,3));let m=new Float32Array(c.length);for(let h=0,g=c.length;h<g;)m[h++]=r.r,m[h++]=r.g,m[h++]=r.b;return f.setAttribute("color",new VA.BufferAttribute(m,3)),f.setIndex(new VA.Uint32BufferAttribute(p,1)),cA.free_wireframe_data_for_base_level(n),f}t.getAttribute("position").copyArray(c),t.attributes.position.needsUpdate=!0,cA.free_wireframe_data_for_base_level(n)}static updateCollabMesh(A,t,r){let n=t===0;n||cA.set_destination_refinement_level(A,t);let i=r?cA.get_topological_data2(A,n?cA.Level.CONTROL:cA.Level.REFINED,r.elements):cA.get_topological_data(A,n?cA.Level.CONTROL:cA.Level.REFINED),a=6,l=cA.HEAPU32.subarray(i>>2,(i>>2)+a),u=l.subarray(3,3+3),s=0,c=cA.HEAPU32[l[s]>>2],d=new Float32Array(cA.HEAPF32.subarray(c>>2,(c>>2)+u[s]));s++;let p=cA.HEAPU32[l[s]>>2],f=new Uint32Array(cA.HEAPU32.subarray(p>>2,(p>>2)+u[s]));s++;let m=cA.HEAPU32[l[s]>>2],h=new Uint8Array(cA.HEAPU32.subarray(m>>2,(m>>2)+u[s]));return cA.free_topological_data(i),{positions:d,indices:f,verticesPerFace:h}}};var qf=["getX","getY","getZ"];function Vl(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[qf[d]](s)*a)},`;if(c in A)n.push(A[c]);else{for(let d=0;d<3;d++)i.push(o[qf[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 Aa=new VA.Vector3,Dl=new VA.Vector3,Gl=new VA.Vector3,Rl=new VA.Vector3;function Fl(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]){Aa.set(o[e[i]*3],o[e[i]*3+1],o[e[i]*3+2]),Dl.set(o[e[i+1]*3],o[e[i+1]*3+1],o[e[i+1]*3+2]),Gl.set(o[e[i+4]*3],o[e[i+4]*3+1],o[e[i+4]*3+2]),Rl.set(o[e[i+5]*3],o[e[i+5]*3+1],o[e[i+5]*3+2]),Dl.sub(Aa).normalize(),Gl.sub(Aa).normalize(),Rl.sub(Aa).normalize();let l=Dl.cross(Gl).dot(Rl);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 ct={};wc(ct,{calcBoolean:()=>Qw,calcBooleanTopological:()=>qw,freeMeshSet:()=>Kw,getMeshSet:()=>Yw,transformMeshSet:()=>Xw});var Hw,Qf=new Promise(o=>{Hw=o});var Yn=require("three");var gA,qo;Qf.then(o=>gA=o);function Ww(o,e,A){let t,{positions:r,triIndices:n}=Vl(o.getAttribute("position"),o.getIndex()),i;if(e&&A){let{indices:a,verticesPerFace:l}=Fl(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 Yf(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=gA._malloc(r);return(Number.isInteger(o[0])?new Uint32Array(gA.HEAPU32.buffer,n,e):new Float32Array(gA.HEAPF32.buffer,n,e)).set(o,0),n}function Xf(o){switch(o){case 0:return gA.OP.UNION;case 1:return gA.OP.INTERSECTION;case 2:return gA.OP.A_MINUS_B;case 3:return gA.OP.B_MINUS_A;case 4:return gA.OP.SYMMETRIC_DIFFERENCE;case 5:return gA.OP.ALL;default:throw new Error("Unknown boolean operation "+o)}}function qw(o,e){qo===void 0&&(qo=gA.init_csg());let A=Yf(o),t=gA.csg_calc_topological(qo,A,o.length,Xf(e));gA._free(A);let r=6,n=gA.HEAPU32.subarray(t>>2,(t>>2)+r),i=n.subarray(3,3+3),a=0,l=gA.HEAPU32[n[a]>>2],u=new Float32Array(gA.HEAPF32.subarray(l>>2,(l>>2)+i[a]));a++;let s=gA.HEAPU32[n[a]>>2],c=new Uint32Array(gA.HEAPU32.subarray(s>>2,(s>>2)+i[a]));a++;let d=gA.HEAPU32[n[a]>>2],p=new Uint8Array(gA.HEAPU32.subarray(d>>2,(d>>2)+i[a]));return gA.free_mesh_data(t),{positions:u,indices:c,verticesPerFace:p}}function Qw(o,e,A,t){qo===void 0&&(qo=gA.init_csg());let r=Yf(o),n=gA.csg_calc(qo,r,o.length,t,Xf(e));gA._free(r);let i=5,a=gA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+3),u=0,s=gA.HEAPU32[a[u]>>2],c=gA.HEAPF32.subarray(s>>2,(s>>2)+l[u]);u++;let d=gA.HEAPU32[a[u]>>2],p=gA.HEAPF32.subarray(d>>2,(d>>2)+l[u]);u++;let f=l[u];A.setAttribute("position",new Yn.Float32BufferAttribute(c,3)),A.setAttribute("normal",new Yn.Float32BufferAttribute(p,3));let m=gA.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return A.boundingSphere===null&&(A.boundingSphere=new Yn.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},gA.free_mesh_data(n),f}function Yw(o,e,A){if(gA===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((g,x)=>g+x,0)+n);for(let g=0,x=0,w=0;g<h.verticesPerFace.length;g++){r[w++]=h.verticesPerFace[g];for(let v=0;v<h.verticesPerFace[g];v++)r[w++]=h.indices[x++]}}else({positions:t,faceIndices:r,nFaces:n}=Ww(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=gA._malloc(s),f=new Float32Array(gA.HEAPF32.buffer,p,l),m=new Uint32Array(gA.HEAPU32.buffer,p+c,u);return f.set(t,0),m.set(r,0),gA.get_csg_mesh(p,i,p+c,a,n)}function Xw(o,e){gA.transform_csg_mesh(o,e.elements)}function Kw(o){gA.free_csg_mesh(o)}var Zw={ConeGeometry:Wp,CubeGeometry:qp,CylinderGeometry:Up,DodecahedronGeometry:Yp,EllipseGeometry:hf,HelixGeometry:vf,IcosahedronGeometry:wf,LatheGeometry:Sf,NonParametricGeometry:Tf,PolygonGeometry:Of,PyramidGeometry:Nf,RectangleGeometry:Pf,SphereGeometry:If,PlaneGeometry:Mf,BackdropGeometry:Bf,StarGeometry:Ef,TextFrameGeometry:Gf,TorusGeometry:Rf,TorusKnotGeometry:Ff,TriangleGeometry:jf,VectorGeometry:Ee},El=o=>Zw[o.type].create(o);function Xn(o){return o!==null&&"booleanOp"in o}var Qo=class extends Je(ea.Mesh){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new ea.Matrix4}updateVisible(){super.updateVisible(),this.visible=!Xn(this.parent)&&this.visible,Xn(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(ct.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(A=!1){return A?this.booleanWasTransformed=!0:this.freeBooleanPointer(),Xn(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let A of this.children)A instanceof Qo&&(A.freeBooleanPointer(),Xn(A)&&A.invalidateUpstreamBooleanData())}updateTransformState(A){let t=super.updateTransformState(A);return t&&Xn(this.parent)&&this.invalidateDownstreamBooleanData(!0),t}};var ta=new Yo.Box3;function jl(o,e=0,A=o.count,t,r){let n=1/0,i=1/0,a=1/0,l=-1/0,u=-1/0,s=-1/0;for(let c=e;c<A;c++){let d=o.getX(c),p=o.getY(c),f=o.getZ(c);d<n&&(n=d),p<i&&(i=p),f<a&&(a=f),d>l&&(l=d),p>u&&(u=p),f>s&&(s=f)}ta.min.set(n,i,a),ta.max.set(l,u,s),ta.getCenter(t),ta.getSize(r).multiplyScalar(.5)}var Jw=new Yo.BufferGeometry,_w=new Yo.MeshBasicMaterial,de=class extends Qo{constructor(e,A){super(Jw,_w),this.super_Entity(e,A)}updateState(e,A){this.updateState_Entity(e,A)}updateEntityBoxSize(e,A){let t=this.geometry.getAttribute("position");t!==void 0?jl(t,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:t.count,e,A):super.updateEntityBoxSize(e,A)}};var Ne=require("three");var Tm=ji(Zf());var We=require("three");var pm=require("three");var dt=require("three");var Kn=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 Jf=require("three"),ae=class{constructor(e){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=Jf.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 ae&&(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 zl=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}},ee=new zl;var kl=require("three");var _f=require("three"),lA=class extends ae{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=_f.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 RA=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 le=class extends RA{constructor(A=0,t){super("v2");this.nodeType="Vector2";this.value=A instanceof kl.Vector2?A:new kl.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 Ul=require("three");var pe=class extends RA{constructor(A=0,t,r){super("v3");this.nodeType="Vector3";this.value=A instanceof Ul.Vector3?A:new Ul.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 $f=require("three"),te=class extends $f.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 _e=class extends RA{constructor(A){super("v4");this.nodeType="Vector4";this.value=A instanceof te?A:new te(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 $w=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Am=/[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=Am.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&&ee.containsKeyword(p)){let h=this.keywords[p];if(!h){let g=ee.getKeywordData(p);g.cache&&(h=A.keywords[p]),h=h||ee.getKeyword(p,A),g.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&&ee.contains(m)&&A.include(ee.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=$w.exec(this.src);if(this.inputs=[],i&&i.length==4){this.type=i[1],this.name=i[2];let a=i[3].match(Am);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 AS=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Hl=class extends lA{constructor(A="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(A||Hl.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=AS.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)}},wA=Hl;wA.PI="PI",wA.PI2="PI2",wA.RECIPROCAL_PI="RECIPROCAL_PI",wA.RECIPROCAL_PI2="RECIPROCAL_PI2",wA.LOG2="LOG2",wA.EPSILON="EPSILON";var eS=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
+ )*?)}`,"gim"),tS=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Xo=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=eS.exec(A);if(t){let r=t[2],n;for(;n=tS.exec(r);)this.inputs.push({type:n[1],name:n[2]});this.name=t[1]}else this.name="";this.type=this.name}};var Ko=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)}};ee.addKeyword("uv",function(){return new Ko});ee.addKeyword("uv2",function(){return new Ko(1)});var oa=require("three");var zr=class extends lA{constructor(A,t){super("v4");this.nodeType="ColorSpace";this.input=A,this.method=t??zr.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(A){switch(A){case oa.LinearEncoding:return["Linear"];case oa.sRGBEncoding:return["sRGB"];default:return[]}}generate(A,t){let r=this.input.build(A,"v4"),n=this.getType(A),i=zr.Nodes[this.method],a=A.include(i);if(a===zr.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=zr.getEncodingComponents(A);this.method="LinearTo"+t[0],this.factor=t[1]}fromDecoding(A){let t=zr.getEncodingComponents(A);this.method=t[0]+"ToLinear",this.factor=t[1]}},Te=zr;Te.Nodes={LinearToLinear:new K(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
5
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
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 {
7
+ `))},Te.LINEAR_TO_LINEAR="LinearToLinear",Te.SRGB_TO_LINEAR="sRGBToLinear",Te.LINEAR_TO_SRGB="LinearTosRGB";var NA=class extends K{constructor(A="",t,r,n,i){super(A,i,n,r,t);this.nodeType="Expression"}};var em=require("three"),De=class extends RA{constructor(A=new em.Texture,t,r,n){super("v4",{shared:!0});this.nodeType="Texture";this.value=A,this.uv=t??new Ko,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 Te(new NA("",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 RA{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 Zn=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 Wl=class extends lA{constructor(A,t,r=Wl.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=Wl;Ge.ADD="+",Ge.SUB="-",Ge.MUL="*",Ge.DIV="/";var EA=class extends lA{constructor(A,t=EA.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 EA.MIX:case EA.CLAMP:case EA.REFRACT:case EA.SMOOTHSTEP:case EA.FACEFORWARD:return 3;case EA.MIN:case EA.MAX:case EA.MOD:case EA.STEP:case EA.REFLECT:case EA.DISTANCE:case EA.DOT:case EA.CROSS:case EA.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 EA.LENGTH:case EA.DISTANCE:case EA.DOT:return"f";case EA.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 EA.NEGATE:return A.format("( -"+this.a.build(A,s)+" )",s,t);case EA.INVERT:return A.format("( 1.0 - "+this.a.build(A,s)+" )",s,t);case EA.CROSS:r=this.a.build(A,"v3"),n=this.b.build(A,"v3");break;case EA.STEP:r=this.a.build(A,a===1?"f":s),n=this.b.build(A,s);break;case EA.MIN:case EA.MAX:case EA.MOD:r=this.a.build(A,s),n=this.b.build(A,l===1?"f":s);break;case EA.REFRACT:r=this.a.build(A,s),n=this.b.build(A,s),i=this.c.build(A,"f");break;case EA.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=EA;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 Zo=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 Zn(Zo.Nodes.bilinearCubeUV,[t,r,n]);this.colorSpaceTL=this.colorSpaceTL??new Te(new NA("","v4")),this.colorSpaceTL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(i.build(A)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new Te(new NA("","v4")),this.colorSpaceTR.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(i.build(A)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new Te(new NA("","v4")),this.colorSpaceBL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(i.build(A)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new Te(new NA("","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 NA(this.colorSpaceTL.build(A,"v4"),"v4"),this.colorSpaceTRExp=new NA(this.colorSpaceTR.build(A,"v4"),"v4"),this.colorSpaceBLExp=new NA(this.colorSpaceBL.build(A,"v4"),"v4"),this.colorSpaceBRExp=new NA(this.colorSpaceBR.build(A,"v4"),"v4"),A.removeContext();let l=new NA("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 Zn(Zo.Nodes.roughnessToMip,[n]),a=new pA(i,Zo.Nodes.m0,Zo.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)}},Jo=Zo;Jo.Nodes=function(){let A=new Xo(`struct TextureCubeUVData {
8
8
  vec4 tl;
9
9
  vec4 tr;
10
10
  vec4 br;
11
11
  vec4 bl;
12
12
  vec2 f;
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) {
13
+ }`),t=new wA("float cubeUV_maxMipLevel 8.0",!0),r=new wA("float cubeUV_minMipLevel 4.0",!0),n=new wA("float cubeUV_maxTileSize 256.0",!0),i=new wA("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) {
@@ -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
- }`,[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) {
72
+ }`,[A,a,l,t,r,n,i]);u.useKeywords=!1;let s=new wA("float r0 1.0",!0),c=new wA("float v0 0.339",!0),d=new wA("float m0 -2.0",!0),p=new wA("float r1 0.8",!0),f=new wA("float v1 0.276",!0),m=new wA("float m1 -1.0",!0),h=new wA("float r4 0.4",!0),g=new wA("float v4 0.046",!0),x=new wA("float m4 2.0",!0),w=new wA("float r5 0.305",!0),v=new wA("float v5 0.016",!0),b=new wA("float m5 3.0",!0),N=new wA("float r6 0.21",!0),S=new wA("float v6 0.0038",!0),y=new wA("float m6 4.0",!0),P=[s,c,d,p,f,m,h,g,x,w,v,b,N,S,y],O=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,7 +83,7 @@
83
83
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
84
84
  }
85
85
  return mip;
86
- }`,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+`
86
+ }`,P);return{bilinearCubeUV:u,roughnessToMip:O,m0:d,cubeUV_maxMipLevel:t}}();var kr=class extends lA{constructor(A){super("v3");this.nodeType="Normal";this.scope=A??kr.VIEW}getShared(){return this.scope===kr.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 kr.VIEW:A.isShader("vertex")?a="transformedNormal":a="geometryNormal";break;case kr.LOCAL:A.isShader("vertex")?a="objectNormal":(A.requires.normal=!0,a="vObjectNormal");break;case kr.WORLD:A.isShader("vertex")?a="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(A.requires.worldNormal=!0,a="vWNormal");break}return A.format(a,this.getType(A),t)}},ce=kr;ce.LOCAL="local",ce.WORLD="world",ce.VIEW="view",ce.NORMAL="normal";ee.addKeyword("viewNormal",function(){return new ce(ce.VIEW)});ee.addKeyword("localNormal",function(){return new ce(ce.NORMAL)});ee.addKeyword("worldNormal",function(){return new ce(ce.WORLD)});var Ct=class extends lA{constructor(A){super("v3");this.nodeType="Position";this.scope=A??Ct.LOCAL}getType(){switch(this.scope){case Ct.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Ct.LOCAL:case Ct.WORLD:return!1}return!0}generate(A,t,r,n,i){let a;switch(this.scope){case Ct.LOCAL:A.isShader("vertex")?a="transformed":(A.requires.position=!0,a="vPosition");break;case Ct.WORLD:if(A.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";A.requires.worldPosition=!0,a="vWPosition";break;case Ct.VIEW:a=A.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Ct.PROJECTION:a=A.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return A.format(a,this.getType(),t)}},Re=Ct;Re.LOCAL="local",Re.WORLD="world",Re.VIEW="view",Re.PROJECTION="projection";ee.addKeyword("position",function(){return new Re});ee.addKeyword("worldPosition",function(){return new Re(Re.WORLD)});ee.addKeyword("viewPosition",function(){return new Re(Re.VIEW)});var ut=class extends lA{constructor(A){super("v3");this.nodeType="Reflect";this.scope=A??ut.CUBE}getUnique(A){return!A.context.viewNormal}getType(){switch(this.scope){case ut.SPHERE:return"v2"}return this.type}generate(A,t){let r=this.getUnique(A);if(A.isShader("fragment")){let n;switch(this.scope){case ut.VECTOR:{let i=new ce(ce.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 ut.CUBE:{let i=new ut(ut.VECTOR).build(A,"v3"),a="vec3( -"+i+".x, "+i+".yz )";r?(A.addNodeCode(`vec3 reflectCubeVec = ${a};`),n="reflectCubeVec"):n=a;break}case ut.SPHERE:{let a="normalize( ( viewMatrix * vec4( "+new ut(ut.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)}},It=ut;It.CUBE="cube",It.SPHERE="sphere",It.VECTOR="vector";var na=class extends lA{constructor(A=new De,t,r){super("v4");this.nodeType="TextureCube";this.value=A,this.radianceNode=new Jo(this.value,t??new It(It.VECTOR),r),this.irradianceNode=new Jo(this.value,new ce(ce.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 tm=require("three");var ia=class extends RA{constructor(A=new tm.CubeTexture,t,r){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=A,this.uv=t??new It,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 Te(new NA("",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 rm=["x","y","z","w"],rS=["float","vec2","vec3","vec4"],oS={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},nS={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[]"},sa=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
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
@@ -121,14 +121,14 @@
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(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+`
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.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
125
  `}addVertexNodeCode(e){this.addNodeCode(e,"vertex")}addFragmentNodeCode(e){this.addNodeCode(e,"fragment")}addNodeCode(e,A){this.nodeCode[A??this.shader]+=e+`
126
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
127
  `}addVertexParsCode(e){this.addParsCode(e,"vertex")}addFragmentParsCode(e){this.addParsCode(e,"fragment")}addParsCode(e,A){this.parsCode[A??this.shader]+=e+`
128
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
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
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(`
131
+ `}return t}getVars(e){return this.inputs.vars[e??this.shader]}getNodeData(e){let A=e instanceof ae?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 Kn({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 Kn({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"?ee.get(e):e,this.context.include===!1)return e.name;e instanceof K?r=this.includes.functions:e instanceof wA?r=this.includes.consts:e instanceof Xo&&(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 rS[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 dt.CubeReflectionMapping:case dt.CubeRefractionMapping:return new ia(t);case dt.CubeUVReflectionMapping:return new na(new De(t));default:return new De(t)}else{if(t.isVector2)return new le(t);if(t.isVector3)return new pe(t);if(t.isVector4)return new _e(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 oS[e]||e}getFormatByType(e){return nS[e]||e}getUUID(e,A){return A=A!==void 0?A:!0,A&&this.cache&&(e=this.cache+"-"+e),e}getElementByIndex(e){return rm[e]}getIndexByElement(e){return rm.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=dt.LinearEncoding,A===dt.LinearEncoding&&this.context.gamma&&(A=dt.sRGBEncoding),A}};var jA=require("three");var CA=class extends RA{constructor(A=0,t,r,n){super("c");this.nodeType="Color";this.value=A instanceof te?A:new te(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 RA{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 aa=require("three");var Ur=class extends ae{constructor(){super("basic");this.nodeType="Basic";this.color=new CA(5855577),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}get category(){return"phong"}generate(A){let t;if(A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(aa.UniformsUtils.merge([aa.UniformsLib.fog])),A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
132
132
  `));let n=["#include <beginnormal_vertex>",`
133
133
  #if !defined( USE_LAYER_DISPLACE )
134
134
  #include <defaultnormal_vertex>
@@ -146,9 +146,238 @@
146
146
  #include <begin_vertex>
147
147
  #endif /* !USE_LAYER_DISPLACE */
148
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(`
149
+ `)}else{this.color===void 0&&(this.color=new CA(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
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) {
151
+ `)}return t}};var Jn=require("three");var pt=class extends RA{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 fe={normalRenderTarget:new De,normalRenderTargetDepth:new De,transmissionRenderTarget:new De,transmissionSize:new le(2048,2048),transmissionRenderTargetDepth:new De,pixelRatioNode:new J(1),resolution:new le,penumbraSize:new pt(5,.5)};for(let o of Object.values(fe))o.isRenderGlobal=!0;var _n=class extends ae{constructor(){super("lambert");this.nodeType="Lambert";this.color=new CA(5855577),this.emissive=new CA(0),this.emissiveIntensity=new J(1),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}get category(){return"lambert"}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(Jn.UniformsUtils.merge([Jn.UniformsLib.fog,Jn.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(`
152
+ `));let n=["#include <beginnormal_vertex>",`
153
+ #ifndef USE_LAYER_DISPLACE
154
+ #include <defaultnormal_vertex>
155
+ #endif
156
+
157
+ vec3 displaced_position = position;
158
+ vec3 displaced_normal = normal;
159
+
160
+ #ifdef USE_LAYER_DISPLACE
161
+ vec3 transformed;
162
+ vec3 transformedNormal;
163
+ #endif
164
+ `,"#include <normal_vertex>",`
165
+ #ifndef USE_LAYER_DISPLACE
166
+ #include <begin_vertex>
167
+ #endif
168
+ `];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>",`
169
+ vec3 diffuse = vec3( 1.0 );
170
+ GeometricContext geometry;
171
+ geometry.position = mvPosition.xyz;
172
+ geometry.normal = normalize( transformedNormal );
173
+ geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );
174
+ GeometricContext backGeometry;
175
+ backGeometry.position = geometry.position;
176
+ backGeometry.normal = -geometry.normal;
177
+ backGeometry.viewDir = geometry.viewDir;
178
+ vLightFront = vec3( 0.0 );
179
+ vIndirectFront = vec3( 0.0 );
180
+ #ifdef DOUBLE_SIDED
181
+ vLightBack = vec3( 0.0 );
182
+ vIndirectBack = vec3( 0.0 );
183
+ #endif
184
+ IncidentLight directLight;
185
+ float dotNL;
186
+ vec3 directLightColor_Diffuse;
187
+ vIndirectFront += getAmbientLightIrradiance( ambientLightColor );
188
+ vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );
189
+ #ifdef DOUBLE_SIDED
190
+ vIndirectBack += getAmbientLightIrradiance( ambientLightColor );
191
+ vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );
192
+ #endif
193
+ #if NUM_POINT_LIGHTS > 0
194
+ #pragma unroll_loop_start
195
+ for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
196
+ getPointLightInfo( pointLights[ i ], geometry, directLight );
197
+ dotNL = dot( geometry.normal, directLight.direction );
198
+ directLightColor_Diffuse = directLight.color;
199
+ vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
200
+ #ifdef DOUBLE_SIDED
201
+ vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
202
+ #endif
203
+ }
204
+ #pragma unroll_loop_end
205
+ #endif
206
+ #if NUM_SPOT_LIGHTS > 0
207
+ #pragma unroll_loop_start
208
+ for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
209
+ getSpotLightInfo( spotLights[ i ], geometry, directLight );
210
+ dotNL = dot( geometry.normal, directLight.direction );
211
+ directLightColor_Diffuse = directLight.color;
212
+ vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
213
+ #ifdef DOUBLE_SIDED
214
+ vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
215
+ #endif
216
+ }
217
+ #pragma unroll_loop_end
218
+ #endif
219
+ #if NUM_DIR_LIGHTS > 0
220
+ #pragma unroll_loop_start
221
+ for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
222
+ getDirectionalLightInfo( directionalLights[ i ], geometry, directLight );
223
+ dotNL = dot( geometry.normal, directLight.direction );
224
+ directLightColor_Diffuse = directLight.color;
225
+ vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
226
+ #ifdef DOUBLE_SIDED
227
+ vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
228
+ #endif
229
+ }
230
+ #pragma unroll_loop_end
231
+ #endif
232
+ #if NUM_HEMI_LIGHTS > 0
233
+ #pragma unroll_loop_start
234
+ for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
235
+ vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );
236
+ #ifdef DOUBLE_SIDED
237
+ vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );
238
+ #endif
239
+ }
240
+ #pragma unroll_loop_end
241
+ #endif
242
+ `," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=n.join(`
243
+ `)}else{A.mergeUniform({penumbraSize:fe.penumbraSize}),this.color===void 0&&(this.color=new CA(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(`
244
+ `));let c=["#include <normal_fragment_begin>",`
245
+ // NOTE: gl_FrontFacing alternative using face normal estimation.
246
+ vec3 viewdx = dFdx(vViewPosition);
247
+ vec3 viewdy = dFdy(vViewPosition);
248
+ vec3 faceNormal = normalize(cross(viewdx, viewdy));
249
+ bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
250
+ `,"#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(`
251
+ if (outgoingLight != diffuseColor) {
252
+ float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
253
+ accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
254
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
255
+ }
256
+ `),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(`
257
+ `)}return t}};var $n=require("three");var la=class extends ae{constructor(){super("phong");this.nodeType="Phong";this.color=new CA(5855577),this.specular=new CA(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}get category(){return"phong"}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($n.UniformsUtils.merge([$n.UniformsLib.fog,$n.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(`
258
+ `));let n=["#include <beginnormal_vertex>",`
259
+ #ifndef USE_LAYER_DISPLACE
260
+ #include <defaultnormal_vertex>
261
+ #endif
262
+
263
+
264
+ vec3 displaced_position = position;
265
+ vec3 displaced_normal = normal;
266
+
267
+ #ifdef USE_LAYER_DISPLACE
268
+ vec3 transformed;
269
+ vec3 transformedNormal;
270
+ #endif
271
+ `,"#include <normal_vertex>",`
272
+ #ifndef USE_LAYER_DISPLACE
273
+ #include <begin_vertex>
274
+ #endif
275
+ `];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(`
276
+ `)}else{A.mergeUniform({penumbraSize:fe.penumbraSize}),this.color===void 0&&(this.color=new CA(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(`
277
+ `));let c=["#include <normal_fragment_begin>",`
278
+ // NOTE: gl_FrontFacing alternative using face normal estimation.
279
+ vec3 viewdx = dFdx(vViewPosition);
280
+ vec3 viewdy = dFdy(vViewPosition);
281
+ vec3 faceNormal = normalize(cross(viewdx,viewdy));
282
+ if (dot(normal, faceNormal) < 0.0) {
283
+ normal *= -1.0;
284
+ }
285
+ `," 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(`
286
+ if (outgoingLight != diffuseColor) {
287
+ float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
288
+ accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
289
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
290
+ }
291
+ `),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(`
292
+ `)}return t}};var _o=require("three");var Ai=class extends ae{constructor(){super("standard");this.nodeType="Standard";this.color=new CA(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)}get category(){return"physical"}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(_o.UniformsUtils.merge([_o.UniformsLib.fog,_o.UniformsLib.lights])),_o.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(`
293
+ `));let n=["#include <beginnormal_vertex>",`
294
+ #if !defined( USE_LAYER_DISPLACE )
295
+ #include <defaultnormal_vertex>
296
+ #endif
297
+
298
+ vec3 displaced_position = position;
299
+ vec3 displaced_normal = normal;
300
+
301
+ #if defined( USE_LAYER_DISPLACE )
302
+ vec3 transformed;
303
+ vec3 transformedNormal;
304
+ #endif
305
+ `,"#include <normal_vertex>",`
306
+ #if !defined( USE_LAYER_DISPLACE )
307
+ #include <begin_vertex>
308
+ #endif /* !USE_LAYER_DISPLACE */
309
+ `];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(`
310
+ `)}else{A.mergeUniform({penumbraSize:fe.penumbraSize});let r={gamma:!0};this.color===void 0&&(this.color=new CA(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(`
311
+ `));let p=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
312
+ // NOTE: gl_FrontFacing alternative using face normal estimation.
313
+ vec3 viewdx = dFdx(vViewPosition);
314
+ vec3 viewdy = dFdy(vViewPosition);
315
+ vec3 faceNormal = normalize(cross(viewdx,viewdy));
316
+ if (dot(normal, faceNormal) < 0.0) {
317
+ normal *= -1.0;
318
+ }
319
+ `," 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(`
320
+ if (outgoingLight != diffuseColor) {
321
+ float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
322
+ accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
323
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${u.result} );
324
+ }
325
+ `),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(`
326
+ `)}return t}};var ei=require("three");var ti=class extends ae{constructor(){super("toon");this.nodeType="Toon";this.color=new CA(5855577),this.specular=new CA(1118481),this.shininess=new J(30),this.shadingAlpha=new J(1),this.shadingBlend=new vA(0)}get category(){return"toon"}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(ei.UniformsUtils.merge([ei.UniformsLib.fog,ei.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(`
327
+ `));let n=["#include <beginnormal_vertex>",`
328
+ #ifndef USE_LAYER_DISPLACE
329
+ #include <defaultnormal_vertex>
330
+ #endif
331
+
332
+ vec3 displaced_position = position;
333
+ vec3 displaced_normal = normal;
334
+
335
+ #ifdef USE_LAYER_DISPLACE
336
+ vec3 transformed;
337
+ vec3 transformedNormal;
338
+ #endif
339
+ `,"#include <normal_vertex>",`
340
+ #ifndef USE_LAYER_DISPLACE
341
+ #include <begin_vertex>
342
+ #endif
343
+ `];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(`
344
+ `)}else{A.mergeUniform({penumbraSize:fe.penumbraSize}),this.color===void 0&&(this.color=new CA(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>",`
345
+ varying vec3 vViewPosition;
346
+ struct ToonMaterial {
347
+ vec3 diffuseColor;
348
+ vec3 specularColor;
349
+ float specularShininess;
350
+ float specularStrength;
351
+ };
352
+ void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
353
+ vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;
354
+
355
+ reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
356
+ reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;
357
+ }
358
+ void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
359
+ reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
360
+ }
361
+ #define RE_Direct RE_Direct_Toon
362
+ #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
363
+ #define Material_LightProbeLOD( material ) (0)
364
+ `,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
365
+ `));let c=["#include <normal_fragment_begin>",`
366
+ // NOTE: gl_FrontFacing alternative using face normal estimation.
367
+ vec3 viewdx = dFdx(vViewPosition);
368
+ vec3 viewdy = dFdy(vViewPosition);
369
+ vec3 faceNormal = normalize(cross(viewdx,viewdy));
370
+ if (dot(normal, faceNormal) < 0.0) {
371
+ normal *= -1.0;
372
+ }
373
+ `," 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(`
374
+ if (outgoingLight != diffuseColor) {
375
+ float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
376
+ accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
377
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
378
+ }
379
+ `),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(`
380
+ `)}return t}};var br=class extends RA{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 om=require("three");var $o=class extends RA{constructor(A){super("m3");this.nodeType="Matrix3";this.value=A??new om.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 ql=require("three");var ft=class extends RA{constructor(A=1,t){super("v4[]");this.nodeType="Vector4Array";this.size=A,this.value=Array.isArray(t)?t:t instanceof ql.Vector4?new Array(A).fill(t):new Array(A).fill(new ql.Vector4(0))}};var ri=(n=>(n.SIMPLEX="simplex3d",n.SIMPLEX_FRACTAL="simplex3dFractal",n.ASHIMA="simplexAshima",n.FBM="fbm",n.PERLIN="perlin",n))(ri||{}),xe=function(){let e=new K(`vec3 random3(vec3 c) {
152
381
  float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
153
382
  vec3 r;
154
383
  r.z = fract(512.0*j);
@@ -188,7 +417,7 @@
188
417
  d *= w;
189
418
 
190
419
  return dot(d, vec4(52.0));
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) {
420
+ }`,[e]);A.keywords.F3=new wA("float F3 0.3333333"),A.keywords.G3=new wA("float G3 0.1666667");let t=new K(`float simplex3dFractal(vec3 m) {
192
421
  mat3 rot1 = mat3(-0.37, 0.36, 0.85,-0.14,-0.93, 0.34,0.92, 0.01,0.4);
193
422
  mat3 rot2 = mat3(-0.55,-0.39, 0.74, 0.33,-0.91,-0.24,0.77, 0.12,0.63);
194
423
  mat3 rot3 = mat3(-0.71, 0.52,-0.47,-0.08,-0.72,-0.68,-0.7,-0.45,0.56);
@@ -266,7 +495,7 @@
266
495
  a *= 0.5;
267
496
  }
268
497
  return v;
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){
498
+ }`,[u]);s.keywords.NUM_OCTAVES=new wA(`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
499
  vec3 Pi0 = floor(P);
271
500
  vec3 Pi1 = Pi0 + vec3(1.0);
272
501
  Pi0 = mod(Pi0, 289.0);
@@ -325,7 +554,7 @@
325
554
  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
326
555
  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
327
556
  return 2.2 * n_xyz;
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) {
557
+ }`,[r,n,c]);return{simplex:A,simplexFractal:t,simplexAshima:i,fbm:s,perlin:d}}();var oi=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(ri)[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
558
  vec3 st = position / size;
330
559
  st /= scale;
331
560
  vec3 q = vec3(${a}(st),
@@ -345,49 +574,14 @@
345
574
 
346
575
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
347
576
  return clamp(color, 0.0, 1.0).rgb;
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
- #ifndef USE_LAYER_DISPLACE
351
- #include <defaultnormal_vertex>
352
- #endif
353
-
354
-
355
- vec3 displaced_position = position;
356
- vec3 displaced_normal = normal;
357
-
358
- #ifdef USE_LAYER_DISPLACE
359
- vec3 transformed;
360
- vec3 transformedNormal;
361
- #endif
362
- `,"#include <normal_vertex>",`
363
- #ifndef USE_LAYER_DISPLACE
364
- #include <begin_vertex>
365
- #endif
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
- // NOTE: gl_FrontFacing alternative using face normal estimation.
370
- vec3 viewdx = dFdx(vViewPosition);
371
- vec3 viewdy = dFdy(vViewPosition);
372
- vec3 faceNormal = normalize(cross(viewdx,viewdy));
373
- if (dot(normal, faceNormal) < 0.0) {
374
- normal *= -1.0;
375
- }
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
- if (outgoingLight != diffuseColor) {
378
- float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
379
- accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
380
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
381
- }
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) {
577
+ }`,[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)}};oi.numOctaves=5;var Ql=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(Ql.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)}},ni=Ql;ni.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
578
  float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
385
579
 
386
580
  float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
387
581
  calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
388
582
  accumAlpha += (1.0 - accumAlpha) * lalpha;
389
583
  return color;
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) {
584
+ }`)}}();var Yl=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(Yl.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)}},ii=Yl;ii.Nodes=function(){let A=new K(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
391
585
  vec3 st = position / noiseScale;
392
586
  vec3 q = vec3(simplex3d(st),
393
587
  simplex3d(st + vec3(1.0)),
@@ -409,7 +603,7 @@
409
603
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
410
604
 
411
605
  return res;
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(`
606
+ }`,[A])}}();var Xl=class extends lA{constructor(A,t,r,n,i,a,l,u,s,c,d,p,f,m,h,g){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=g,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
607
  vID = randomColor.r;
414
608
  if (${i}) {
415
609
  vec4 ${l}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
@@ -423,7 +617,7 @@
423
617
  // if this offset is the biggest of all the potential offsets
424
618
  gl_Position = ${l}_clipPosition;
425
619
  }
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(`
620
+ `)}if(A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(Xl.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."),""}},si=Xl;si.Nodes=function(){let A=new K(`
427
621
  float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
428
622
  {
429
623
  vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
@@ -563,7 +757,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
563
757
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
564
758
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
565
759
  return result;
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(`
760
+ }`,[A])}}();var Kl=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(Kl.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)}},ai=Kl;ai.Nodes=function(){let A=new K(`
567
761
  float gaussian(vec2 i) {
568
762
  const float sigma = float(NUM_SAMPLES) * .25;
569
763
  return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
@@ -651,7 +845,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
651
845
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
652
846
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
653
847
  return transmission;
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) {
848
+ }`,[a])}}();var An=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
849
  vec4 color = colors[0];
656
850
  #ifdef ${r}_IS_VECTOR
657
851
  #ifdef ${r}_LINEAR
@@ -691,7 +885,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
691
885
 
692
886
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
693
887
  return color.rgb;
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) {
888
+ }`,[An.Nodes.vectorLinearWorldSpaceDepth,An.Nodes.vectorLinearObjectSpaceDepth,An.Nodes.vectorSphericalObjectSpaceDepth,An.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)}},li=An;li.Nodes=function(){let A=new K(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
695
889
  vec3 n = normalize(direction);
696
890
  float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
697
891
  return ( dist - near ) / ( far - near );
@@ -705,7 +899,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
705
899
  }`),n=new K(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
706
900
  float dist = length(position - origin);
707
901
  return ( dist - near ) / ( far - near );
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) {
902
+ }`);return{vectorLinearWorldSpaceDepth:A,vectorLinearObjectSpaceDepth:t,vectorSphericalWorldSpaceDepth:r,vectorSphericalObjectSpaceDepth:n}}();var ci=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 Zl=(A=>(A.NOISE="noise",A.MAP="map",A))(Zl||{}),Jl=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(Zl)[this.displacementTypeIndex.value]==="map"&&(this.mat=new $o(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(Zl)[this.displacementTypeIndex.value]){case"map":{r=A.include(Jl.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(ri)[this.noiseFunctionIndex.value],l=new K(`vec3 orthogonal(vec3 v) {
709
903
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
710
904
  }`),u=new K(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
711
905
  return p + n * ${a}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
@@ -725,7 +919,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
725
919
  vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
726
920
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
727
921
  return displaced_position;
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) {
922
+ }`,[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)}},ui=Jl;ui.Nodes=function(){let A=new K(`vec3 orthogonal(vec3 v) {
729
923
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
730
924
  }`),t=new K(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
731
925
  vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
@@ -747,7 +941,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
747
941
  vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
748
942
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
749
943
  return displaced_position;
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) {
944
+ }`,[A,t])}}();var _l=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(_l.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)}},di=_l;di.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
945
  vec4 color = colors[0];
752
946
  vec2 m = morph / vUv.xy;
753
947
  vec2 rot = vec2( 0.5 + m.x, m.y );
@@ -789,7 +983,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
789
983
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
790
984
 
791
985
  return color.xyz;
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(`
986
+ }`)}}();var fi=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(fi.Nodes.cylindrical);break;case 2:n=A.include(fi.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
987
  vec3 ${r}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
794
988
 
795
989
  vec2 uvs = ( mat * vec3( (${r}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
@@ -808,7 +1002,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
808
1002
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
809
1003
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
810
1004
  return col;
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(`
1005
+ }`);n=A.include(l);break;default:n=A.include(fi.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)}},pi=fi;pi.Nodes=function(){let A=new K(`
812
1006
  vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
813
1007
  vec3 posN = normalize(position);
814
1008
  float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
@@ -882,208 +1076,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
882
1076
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
883
1077
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
884
1078
  return col;
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) {
1079
+ }`);return{cylindrical:A,spherical:t,uv:r}}();var $l=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($l.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)}},mi=$l;mi.Nodes=function(){return{customNormal:new K(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
886
1080
  vec3 normal = packNormalToRGB( norm ).rgb;
887
1081
  normal *= step( vec3(0.5), cnormal );
888
1082
 
889
1083
  accumAlpha += ( 1.0 - accumAlpha ) * alpha;
890
1084
 
891
1085
  return normal;
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
- #ifndef USE_LAYER_DISPLACE
895
- #include <defaultnormal_vertex>
896
- #endif
897
-
898
- vec3 displaced_position = position;
899
- vec3 displaced_normal = normal;
900
-
901
- #ifdef USE_LAYER_DISPLACE
902
- vec3 transformed;
903
- vec3 transformedNormal;
904
- #endif
905
- `,"#include <normal_vertex>",`
906
- #ifndef USE_LAYER_DISPLACE
907
- #include <begin_vertex>
908
- #endif
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
- vec3 diffuse = vec3( 1.0 );
911
- GeometricContext geometry;
912
- geometry.position = mvPosition.xyz;
913
- geometry.normal = normalize( transformedNormal );
914
- geometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );
915
- GeometricContext backGeometry;
916
- backGeometry.position = geometry.position;
917
- backGeometry.normal = -geometry.normal;
918
- backGeometry.viewDir = geometry.viewDir;
919
- vLightFront = vec3( 0.0 );
920
- vIndirectFront = vec3( 0.0 );
921
- #ifdef DOUBLE_SIDED
922
- vLightBack = vec3( 0.0 );
923
- vIndirectBack = vec3( 0.0 );
924
- #endif
925
- IncidentLight directLight;
926
- float dotNL;
927
- vec3 directLightColor_Diffuse;
928
- vIndirectFront += getAmbientLightIrradiance( ambientLightColor );
929
- vIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );
930
- #ifdef DOUBLE_SIDED
931
- vIndirectBack += getAmbientLightIrradiance( ambientLightColor );
932
- vIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );
933
- #endif
934
- #if NUM_POINT_LIGHTS > 0
935
- #pragma unroll_loop_start
936
- for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
937
- getPointLightInfo( pointLights[ i ], geometry, directLight );
938
- dotNL = dot( geometry.normal, directLight.direction );
939
- directLightColor_Diffuse = directLight.color;
940
- vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
941
- #ifdef DOUBLE_SIDED
942
- vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
943
- #endif
944
- }
945
- #pragma unroll_loop_end
946
- #endif
947
- #if NUM_SPOT_LIGHTS > 0
948
- #pragma unroll_loop_start
949
- for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
950
- getSpotLightInfo( spotLights[ i ], geometry, directLight );
951
- dotNL = dot( geometry.normal, directLight.direction );
952
- directLightColor_Diffuse = directLight.color;
953
- vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
954
- #ifdef DOUBLE_SIDED
955
- vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
956
- #endif
957
- }
958
- #pragma unroll_loop_end
959
- #endif
960
- #if NUM_DIR_LIGHTS > 0
961
- #pragma unroll_loop_start
962
- for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
963
- getDirectionalLightInfo( directionalLights[ i ], geometry, directLight );
964
- dotNL = dot( geometry.normal, directLight.direction );
965
- directLightColor_Diffuse = directLight.color;
966
- vLightFront += saturate( dotNL ) * directLightColor_Diffuse;
967
- #ifdef DOUBLE_SIDED
968
- vLightBack += saturate( -dotNL ) * directLightColor_Diffuse;
969
- #endif
970
- }
971
- #pragma unroll_loop_end
972
- #endif
973
- #if NUM_HEMI_LIGHTS > 0
974
- #pragma unroll_loop_start
975
- for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
976
- vIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );
977
- #ifdef DOUBLE_SIDED
978
- vIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );
979
- #endif
980
- }
981
- #pragma unroll_loop_end
982
- #endif
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
- // NOTE: gl_FrontFacing alternative using face normal estimation.
987
- vec3 viewdx = dFdx(vViewPosition);
988
- vec3 viewdy = dFdy(vViewPosition);
989
- vec3 faceNormal = normalize(cross(viewdx, viewdy));
990
- bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
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
- if (outgoingLight != diffuseColor) {
993
- float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
994
- accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
995
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
996
- }
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
- #if !defined( USE_LAYER_DISPLACE )
1001
- #include <defaultnormal_vertex>
1002
- #endif
1003
-
1004
- vec3 displaced_position = position;
1005
- vec3 displaced_normal = normal;
1006
-
1007
- #if defined( USE_LAYER_DISPLACE )
1008
- vec3 transformed;
1009
- vec3 transformedNormal;
1010
- #endif
1011
- `,"#include <normal_vertex>",`
1012
- #if !defined( USE_LAYER_DISPLACE )
1013
- #include <begin_vertex>
1014
- #endif /* !USE_LAYER_DISPLACE */
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
- // NOTE: gl_FrontFacing alternative using face normal estimation.
1019
- vec3 viewdx = dFdx(vViewPosition);
1020
- vec3 viewdy = dFdy(vViewPosition);
1021
- vec3 faceNormal = normalize(cross(viewdx,viewdy));
1022
- if (dot(normal, faceNormal) < 0.0) {
1023
- normal *= -1.0;
1024
- }
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
- if (outgoingLight != diffuseColor) {
1027
- float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
1028
- accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
1029
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${u.result} );
1030
- }
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
- #ifndef USE_LAYER_DISPLACE
1035
- #include <defaultnormal_vertex>
1036
- #endif
1037
-
1038
- vec3 displaced_position = position;
1039
- vec3 displaced_normal = normal;
1040
-
1041
- #ifdef USE_LAYER_DISPLACE
1042
- vec3 transformed;
1043
- vec3 transformedNormal;
1044
- #endif
1045
- `,"#include <normal_vertex>",`
1046
- #ifndef USE_LAYER_DISPLACE
1047
- #include <begin_vertex>
1048
- #endif
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
- varying vec3 vViewPosition;
1052
- struct ToonMaterial {
1053
- vec3 diffuseColor;
1054
- vec3 specularColor;
1055
- float specularShininess;
1056
- float specularStrength;
1057
- };
1058
- void RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
1059
- vec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;
1060
-
1061
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
1062
- reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;
1063
- }
1064
- void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
1065
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
1066
- }
1067
- #define RE_Direct RE_Direct_Toon
1068
- #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
1069
- #define Material_LightProbeLOD( material ) (0)
1070
- `,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
1071
- `));let c=["#include <normal_fragment_begin>",`
1072
- // NOTE: gl_FrontFacing alternative using face normal estimation.
1073
- vec3 viewdx = dFdx(vViewPosition);
1074
- vec3 viewdy = dFdy(vViewPosition);
1075
- vec3 faceNormal = normalize(cross(viewdx,viewdy));
1076
- if (dot(normal, faceNormal) < 0.0) {
1077
- normal *= -1.0;
1078
- }
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
- if (outgoingLight != diffuseColor) {
1081
- float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
1082
- accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
1083
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
1084
- }
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.playsInline=!0,this.img.currentTime=.01,this.img.autoplay=!0,this.img.muted=!0,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"],video:["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) {
1086
+ }`)}}();var KA=require("three");function Oe(o,e){return e.color(o)}function nm(o,e){switch(o.type){case"fresnel":return aS(o,e);case"gradient":return lS(o);case"depth":return cS(o);case"normal":return uS(o);case"noise":return dS(o,e);case"rainbow":return pS(o);case"toon":return fS(o,e);case"outline":return mS(o,e);case"transmission":return hS(o,e);case"color":return sS(o,e)}}function iS(o){return{type:o.type}}function Mt(o){let{alpha:e,mode:A}=o;return{...iS(o),alpha:e,mode:A}}function sS(o,e){return{...Mt(o),color:Oe(o.color,e)}}function aS(o,e){let{bias:A,scale:t,intensity:r,factor:n,color:i}=o;return{...Mt(o),color:Oe(i,e),bias:A,scale:t,intensity:r,factor:n}}function lS(o){let{gradientType:e,smooth:A,colors:t,steps:r,angle:n,offset:i,morph:a}=o;return{...Mt(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 cS(o){let{gradientType:e,near:A,far:t,isVector:r,isWorldSpace:n,origin:i,direction:a,colors:l,steps:u,smooth:s}=o;return{...Mt(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 uS(o){let{cnormal:e}=o;return{...Mt(o),cnormal:new KA.Vector3(e[0],e[1],e[2])}}function dS(o,e){return{...Mt(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:Oe(o.colorA,e),colorB:Oe(o.colorB,e),colorC:Oe(o.colorC,e),colorD:Oe(o.colorD,e),noiseType:o.noiseType}}function pS(o){return{...Mt(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 fS(o,e){return{...Mt(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:Oe(o.shadowColor,e),offset:new KA.Vector3(...o.offset)}}function mS(o,e){return{...Mt(o),outlineColor:Oe(o.outlineColor,e),contourColor:Oe(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 hS(o,e){return{...Mt(o),thickness:o.thickness,ior:o.ior,roughness:o.roughness}}var wr=class extends te{};var sm=require("three");var ua=require("three");var ca=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 ec=class extends ca{create(e){return URL.createObjectURL(new Blob([e]))}dispose(e,A){URL.revokeObjectURL(A)}},Ac;function im(o){return typeof o=="string"?o:(Ac||(Ac=new ec),Ac.load(o))}var Hr=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.playsInline=!0,this.img.currentTime=.01,this.img.muted=!0,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=im(e),this.img.onload=A}getTexture(e){let A=this[e];if(A)return A;{let t;return this.isVideo?t=new ua.VideoTexture(this.img,void 0,e,e):t=new ua.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 $e=class extends Hr{};var Sr=class extends RA{};var tc={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},rc={depth:["colors"]};function yS(o,e,A){let t=tc[o.type],r=rc[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 oc(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 $e||l.image.dispose(),l.image=a}if("video"in n){let i=n.video,a=e.video(i),l=t;l instanceof $e||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 am(o,e,A,t){let r=!1;for(let[n,i]of Object.entries(o)){if(!n||i===void 0)continue;if(nc(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 Sr))switch(r=r||yS(A,n,i),a.constructor){case CA:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof wr?a.value=new te(l.r,l.g,l.b,l.a):a.setRGBA(l);break}case _e:if(typeof i=="string"){let l=e.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof wr?a.value=new te(l.r,l.g,l.b,l.a):a.value.setRGBA(l.r,l.g,l.b,l.a);break}case le:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]);break}case pe:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]),a.value.setZ(l[2]);break}case De:{oc(i,e,A);break}case ft:{a.value=i.map(l=>new sm.Vector4(...l));break}default:{a.value=i;break}}}return r}var ic=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(ic.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)}},hi=ic;hi.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,7 +1095,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1095
1095
 
1096
1096
  return matcapColor.rgb;
1097
1097
  }
1098
- `)}}();var 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) {
1098
+ `)}}();var yi=class extends Sr{constructor(A,t){super("t");this.image=A;this.wrap=t}get value(){return this.image.getTexture(this.wrap)}};var lm=require("three");var da=class extends Sr{constructor(A){super("v3");this.image=A;this._value=new lm.Vector3}get value(){return this._value.x=this.image.isVideo?this.image.img.videoWidth??0:this.image.img.width,this._value.y=this.image.isVideo?this.image.img.videoHeight??0:this.image.img.height,this._value}};var sc=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(sc.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)}},gi=sc;gi.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);
@@ -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
- }`,[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}};
1334
+ }`,[xe.simplex,A,r,i])}}();var um=require("three");function cm(o,e,A){o.setUvTransform(A[0],A[1],e[0],e[1],0,0,0)}var pa=class extends $o{constructor(A,t){super(new um.Matrix3);this.repeat=A;this.offset=t;cm(this.value,A,t)}updateMatrix(){cm(this.value,this.repeat,this.offset)}};var Bt=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)nc(n,this,t)}get type(){return this.data.type}static create(e,A,t,r){if(t.type==="light")return Et.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 da(n),l=new pa(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 le(t.size?new jA.Vector2(t.size[0],t.size[1]):new jA.Vector2(100,100)),f=new J(t.alpha??1),m=new vA(t.mode??0),h=new pi(i,a,u,s,c,d,p,l,f,m),g=new NA(h.calpha,"f");return new re(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,g)}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 hi(i,a,l),s=new NA(u.calpha,"f");return new re(e,A,t,{texture:i,alpha:a,mode:l},u,l,s)}else if(t.type==="displace")if(t.displacementType==="noise"){let n=new pe(new jA.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 ui(a,l,n,i,u);return new xi(e,A,t,{offset:n,scale:i,intensity:a,movement:l,noiseType:u},s)}else throw new Error;else return vS(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?(t.scene?.markNeedsUpdateRendererDirty(),!0):am(r.props,t.shared,this,A)}else if(r.path[0]==="texture")return"texture"in A||"video"in A?oc(r.props,t.shared,this):!0;return!1}dispose(){if(gS(this)){let e=this.uniforms[`f${this.id}_texture`];if(!e)return!1;let A=e;A instanceof $e||A.image.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}},re=class extends Bt{constructor(A,t,r,n,i,a,l){super(A,t,r,n);this.color=i;this.mode=a;this.alpha=l}},xi=class extends Bt{constructor(A,t,r,n,i){super(A,t,r,n);this.position=i}},Et=class extends Bt{constructor(A,t,r,n,i){super(A,t,r,i);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 Ur,u={};else if(r.category==="lambert"){i=new _n;let s=new CA(n.color(r.emissive)??0);u={emissive:s},i.emissive=s}else if(r.category==="toon"){i=new ti;let s=new J(r.shininess??30),c=new CA(n.color(r.specular)??1118481);u={shininess:s,specular:c},i.shininess=s,i.specular=c}else if(r.category==="physical"){i=new Ai;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 la;let s=new J(r.shininess??30),c=new CA(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 Et(A,t,r,i,u)}get category(){return this.node.category}};function gS(o){let e=o instanceof Bt?o.type:o;return e==="texture"||e==="video"||e==="displace_map"||e==="matcap"}function xS(o,e,A,t){switch(o.type){case"color":{let r=new CA(t.color??5855577),n=new J(t.alpha??1),i=new NA("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 re(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}case"fresnel":{let r=new CA(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 ni(r,n,i,a,l,u,s),d=new NA(c.calpha,"f");return new re(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 pe(t.wavelengths??new jA.Vector3(0,0,0)),a=new J(t.noiseStrength??0),l=new J(t.noiseScale??1),u=new pe(t.offset??new jA.Vector3(0,0,0)),s=new J(t.alpha??1),c=new ii(r,n,i,a,l,u,s),d=new NA(c.calpha,"f"),p=new vA(t.mode??0);return new re(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=fe.transmissionSize,l=fe.transmissionRenderTarget,u=fe.transmissionRenderTargetDepth,s=window.innerWidth,c=window.innerHeight,d=s>=c?new le(c/s,1):new le(1,s/c),p=new J(t.alpha??1),f=new ai(r,n,i,a,l,u,d,p),m=new NA(f.calpha,"f"),h=new vA(t.mode??0);return new re(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 ft(t.colors.length,t.colors):(n=new ft(10,new jA.Vector4(0,0,0,1)),n.value[1]=new jA.Vector4(1,1,1,1));let i;t.steps?i=new pt(t.steps.length,t.steps):(i=new pt(10,1),i.value[0]=0);let a=new pe(t.source??new jA.Vector3(0,0,0)),l=new br(t.isWorldSpace??!0),u=new J(t.noiseStrength??0),s=new J(t.noiseScale??1),c=new _e(t.shadowColor),d=new pe(t.offset??new jA.Vector3(0,0,0)),p=new J(t.alpha??1),f=new gi(r,n,i,a,l,u,s,c,d,p),m=new NA(f.calpha,"f"),h=new vA(t.mode??0);return new re(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 CA(t.outlineColor??16777215),n=new CA(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 pe(t.contourDirections??new jA.Vector3(0,1,0)),p=new br(t.positionalLines??!1),f=new br(t.compensation??!0),m=fe.normalRenderTarget,h=fe.normalRenderTargetDepth,g=fe.pixelRatioNode,x=fe.resolution,w=new J(t.alpha??1),v=new si(r,n,i,a,l,u,s,c,d,p,f,x,m,h,g,w),b=new NA(v.calpha,"f"),N=new vA(t.mode??0);return new re(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:w,mode:N},v,N,b)}case"depth":{let r=new vA(t.gradientType??0),n=new br(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 pe(t.origin??new jA.Vector3),c=new pe(t.direction??new jA.Vector3),d;t.colors?d=new ft(t.colors.length,t.colors):(d=new ft(2,new jA.Vector4(0,0,0,1)),d.value[1]=new jA.Vector4(1,1,1,1));let p;t.steps?p=new pt(t.steps.length,t.steps):(p=new pt(2,1),p.value[0]=0);let f=new J(t.alpha??1),m=new vA(t.mode??0),h=new li(r,n,i,a,l,u,s,c,d,p,f),g=new NA(h.calpha,"f");return new re(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,g)}case"noise":{let r=new J(t.scale??1),n=new pe(t.size??new jA.Vector3(100,100,100)),i=new J(t.move??1),a=new le(t.fA??new jA.Vector2(1.7,9.2)),l=new le(t.fB??new jA.Vector2(8.3,2.8)),u=new le(t.distortion??new jA.Vector2(1,1)),s=new _e(t.colorA),c=new _e(t.colorB),d=new _e(t.colorC),p=new _e(t.colorD),f=new J(t.alpha??1),m=new vA(t.mode??0),h=new vA(t.noiseType??0),g=new oi(r,n,i,a,l,u,s,c,d,p,f,h),x=new NA(g.calpha,"f");return new re(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},g,m,x)}case"normal":{let r=new pe(t.cnormal??new jA.Vector3(1,1,1)),n=new J(t.alpha??1),i=new vA(t.mode??0),a=new mi(r,n),l=new NA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=n,new re(e,A,o,{cnormal:r,alpha:n,mode:i},a,i,l)}case"gradient":{let r=new vA(t.gradientType??0),n=new br(t.smooth??!1),i;t.colors?i=new ft(t.colors.length,t.colors):(i=new ft(10,new jA.Vector4(0,0,0,1)),i.value[1]=new jA.Vector4(1,1,1,1));let a;t.steps?a=new pt(t.steps.length,t.steps):(a=new pt(10,1),a.value[0]=0);let l=new le(t.offset??new jA.Vector2(0,0)),u=new le(t.morph??new jA.Vector2(0,0)),s=new J(t.angle??0),c=new J(t.alpha??1),d=new vA(t.mode??0),p=new di(r,n,i,a,l,u,s,c),f=new NA(p.calpha,"f");return new re(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 CA(1,0,0,1),n=new J(1),i=new NA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new vA(0);return r.alpha=n,new re(e,A,o,{color:r,alpha:n,mode:a},r,a,i)}}}function vS(o,e,A,t){let r=nm(A,t);return xS(A,o,e,r)}function nc(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}}function dm(o,e){let A=0;for(let t of o.layers)if(t.data.type!=="displace"&&"alpha"in t.data&&t.data.type!=="light"&&t.data.type!=="fresnel"&&t.data.type!=="texture"&&t.data.type!=="matcap"&&t.data.type!=="rainbow"&&t.data.type!=="outline"){let r=t.data.visible?t.data.alpha:0;if(r==1&&t.data.type=="depth"||t.data.type=="gradient"){for(let n of t.data.colors)if(n[3]<1){r=n[3];break}}else if(r==1&&t.data.type=="noise"){let n=e.color(t.data.colorA).a,i=e.color(t.data.colorB).a,a=e.color(t.data.colorC).a,l=e.color(t.data.colorD).a,u=Math.min(n,Math.min(i,Math.min(a,l)));u<1&&(r=u)}A+=(1-A)*r}return A<1}var He=class extends pm.ShaderMaterial{constructor(){super(void 0);this.flatShading=!1;this.cacheKey="";this.fog=!0,this.dithering=!0,this.vertexColors=!0,this.transparent=!0}customProgramCacheKey(){return this.cacheKey}},ac=class extends He{constructor(A,t,r,n){super();this.flatShading=A;this.side=t;this.wireframe=r;this.root=n}updateAfterBuild(){let A=this.root;this.lights=A.lights,this.vertexShader=A.vertexShader,this.fragmentShader=A.fragmentShader,this.defines=A.defines,this.uniforms=A.uniforms,this.extensions=A.extensions,this.transparent=A.transparent,this.cacheKey=A.customProgramCacheKey()+"flat"+this.flatShading+this.side}onBeforeCompile(A,t){this.root.onBeforeCompile(A)}get data(){return this.root.data}get category(){return this.root.category}getFlavor(A,t,r){return this.root.getFlavor(A,t,r)}get layers(){return this.root.layers}get fragment(){return this.root.fragment}getLayersOfType(A){return this.root.getLayersOfType(A)}getLayerByUuid(A){return this.root.getLayerByUuid(A)}updateByOp(A,t,r){this.root.updateByOp(A,t,r)}},en=class extends He{constructor(A,t){super();this.data=A;this.layerIdGen=0;this.flavors=[];this.type="NodeMaterial";this.updaters=[],this.reset0(A,t)}get nodeMaterial(){return this}getFlavor(A,t,r){let n=r?6:(A?3:0)+t;if(n===0)return this;this.flavors===void 0&&(this.flavors=[]),n-=1;let i=this.flavors[n];return i===void 0&&(i=new ac(A,t,r,this),this.flavors[n]=i,i.flatShading=A,i.side=t,i.updateAfterBuild()),i}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.category}reset(A,t){this.data!==A&&this.reset0(A,t)}reset0(A,t){this.data=A;let r=A.layers??Ue.defaultTwoLayerData("phong").layers;this.layers=r.map(n=>Bt.create(this.layerIdGen++,n.id,n.data,t.shared)),this.layers.reverse(),this.name=A.name??"Untitled Material",this.onUpdate(),this.transparent=dm(A,t.shared)}getLayersOfType(A){return this.layers.filter(t=>t.type===A)}getLayerByUuid(A){return this.layers.find(t=>t.uuid===A)}onUpdate(){this.cacheKey=this.computeCacheKey(),this.lightLayer=this.layers.find(A=>A instanceof Et),this.lightLayer===void 0&&(this.lightLayer=new Et(0,"",{...Se.defaultData("light","phong"),visible:!1},new Ur,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(A,t,r){if(this.data=t,this.transparent=dm(t,r.shared),A.path[0]==="layers"){this.data=t;let n=r.shared,i=A.path[1];if(i===void 0){if(this.layers.reverse(),A.type===4){let a=Bt.create(this.layerIdGen++,A.id,A.data,r.shared);this.layers.splice(A.localIndex,0,a),r.scene?.markNeedsUpdateRendererDirty()}else if(A.type===5)this.layers.splice(A.localIndex,1)[0].dispose(),r.scene?.markNeedsUpdateRendererDirty();else if(A.type===6){let a=this.layers.findIndex(u=>u.uuid===A.id),l=this.layers[a];this.layers.splice(a,1),this.layers.splice(A.localIndex,0,l),r.scene?.markNeedsUpdateRendererDirty()}this.layers.reverse(),this.onUpdate()}else{let a=this.layers.find(l=>l.uuid===i);if(a){let l=t.layers.data(i);if(a.updateByOp({...A,path:A.path.slice(2)},l,r)){let s=Bt.create(this.layerIdGen++,i,l,n);this.layers.splice(this.layers.findIndex(c=>c.uuid===i),1,s),this.onUpdate()}}}}else this.reset(t,r)}blendColors(){let A=this.layers.findIndex(r=>r instanceof re),t=this.layers.findIndex(r=>r instanceof Et);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 re&&(r=new ci(r,i.color,i.alpha,i.mode))}this.fragment.color=r}else this.fragment.color=void 0}blendAfterColors(){let A=new NA("outgoingLight","f"),t=this.layers.findIndex(r=>r instanceof Et);if(this.layers.length>t+1){for(let r=t+1;r<this.layers.length;++r){let n=this.layers[r];n instanceof re&&(A=new ci(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 xi);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){this.build(),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}}computeCacheKey(){let A="[";for(let{data:t}of this.data.layers)if(t.type==="light")A+=`"${t.visible?t.category.toUpperCase():"Basic"}"`;else{let r=(tc[t.type]??[]).map(a=>t[a]),n=(rc[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(){let A=new sa;this.lights=this.lightLayer.data.visible,A.build(this.fragment,this.fragment),this.vertexShader=A.getCode("vertex"),this.fragmentShader=A.getCode("fragment"),this.defines=A.defines,this.uniforms=A.uniforms,this.extensions=A.extensions,this.updaters=A.updaters;for(let t of this.flavors)t&&t.updateAfterBuild();return this}dispose(){this.layers.forEach(A=>A.dispose()),super.dispose();for(let A of this.flavors)A&&A.dispose()}getHash(){let A="{";return A+='"fragment":'+this.fragment.getHash(),A+="}",A}};Object.defineProperties(He.prototype,{properties:{get:function(){return this.fragment.properties}}});var Wr=class extends en{};var ym=ji(fm());var mm=new Map;function hm(o){if(typeof o=="string")return o;let e=mm.get(o);return e||(e={url:URL.createObjectURL(new Blob([o]))},mm.set(o,e)),e.url}var tn=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:hm(e),format:"wav"},this.sound=new ym.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 oe=require("three"),ma=class{constructor(){this.type="ShapePath";this.color=new oe.Color;this.subPaths=[];this.currentPath=null}moveTo(e,A){return this.currentPath=new oe.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,g,x){let w=m.x,v=h.x,b=g.x,N=x.x,S=m.y,y=h.y,P=g.y,O=x.y,C=(N-b)*(S-P)-(O-P)*(w-b),T=(v-w)*(S-P)-(y-S)*(w-b),L=(O-P)*(v-w)-(N-b)*(y-S),B=C/L,k=T/L;if(L===0&&C!==0||B<=0||B>=1||k<0||k>1)return null;if(C===0&&L===0){for(let X=0;X<2;X++)if(n(X===0?g:x,m,h),t.loc===A.ORIGIN){let eA=X===0?g:x;return{x:eA.x,y:eA.y,t:t.t}}else if(t.loc===A.BETWEEN){let eA=+(w+t.t*(v-w)).toPrecision(10),nA=+(S+t.t*(y-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?g:x,m,h),t.loc===A.ORIGIN){let U=nA===0?g:x;return{x:U.x,y:U.y,t:t.t}}let X=+(w+B*(v-w)).toPrecision(10),eA=+(S+B*(y-S)).toPrecision(10);return{x:X,y:eA,t:B}}}function n(m,h,g){let x=g.x-h.x,w=g.y-h.y,v=m.x-h.x,b=m.y-h.y,N=x*b-v*w;if(m.x===h.x&&m.y===h.y){t.loc=A.ORIGIN,t.t=0;return}if(m.x===g.x&&m.y===g.y){t.loc=A.DESTINATION,t.t=1;return}if(N<-Number.EPSILON){t.loc=A.LEFT;return}if(N>Number.EPSILON){t.loc=A.RIGHT;return}if(x*v<0||w*b<0){t.loc=A.BEHIND;return}if(Math.sqrt(x*x+w*w)<Math.sqrt(v*v+b*b)){t.loc=A.BEYOND;return}let S;x!==0?S=v/x:S=b/w,t.loc=A.BETWEEN,t.t=S}function i(m,h){let g=[],x=[];for(let w=1;w<m.length;w++){let v=m[w-1],b=m[w];for(let N=1;N<h.length;N++){let S=h[N-1],y=h[N],P=r(v,b,S,y);P!==null&&g.find(O=>O.t<=P.t+Number.EPSILON&&O.t>=P.t-Number.EPSILON)===void 0&&(g.push(P),x.push(new oe.Vector2(P.x,P.y)))}}return x}function a(m,h,g){let x=new oe.Vector2;h.getCenter(x);let w=[];return g.forEach(v=>{v.boundingBox.containsPoint(x)&&i(m,v.points).forEach(N=>{w.push({identifier:v.identifier,isCW:v.isCW,point:N})})}),w.sort((v,b)=>v.point.x-b.point.x),w}function l(m,h,g,x,w){(w==null||w==="")&&(w="nonzero");let v=new oe.Vector2;m.boundingBox.getCenter(v);let b=[new oe.Vector2(g,v.y),new oe.Vector2(x,v.y)],N=a(b,m.boundingBox,h);N.sort((T,L)=>T.point.x-L.point.x);let S=[],y=[];N.forEach(T=>{T.identifier===m.identifier?S.push(T):y.push(T)});let P=S[0].point.x,O=[],C=0;for(;C<y.length&&y[C].point.x<P;)O.length>0&&O[O.length-1]===y[C].identifier?O.pop():O.push(y[C].identifier),C++;if(O.push(m.identifier),w==="evenodd"){let T=O.length%2===0,L=O[O.length-2];return{identifier:m.identifier,isHole:T,for:L}}else if(w==="nonzero"){let T=!0,L=null,B=null;for(let k=0;k<O.length;k++){let X=O[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: "'+w+'" is currently not implemented.')}let u=0,s=999999999,c=-999999999,d=[];this.subPaths.forEach(m=>{let h=m.getPoints(),g=-999999999,x=999999999,w=-999999999,v=999999999;for(let b=0;b<h.length;b++){let N=h[b];N.y>g&&(g=N.y),N.y<x&&(x=N.y),N.x>w&&(w=N.x),N.x<v&&(v=N.x)}c<=w&&(c=w+1),s>=v&&(s=v-1),h.length&&d.push({curves:m.curves,points:h,isCW:oe.ShapeUtils.isClockWise(h),identifier:u++,boundingBox:new oe.Box2(new oe.Vector2(v,x),new oe.Vector2(w,g))})});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 g=new oe.Shape;g.curves=m.curves,p.filter(w=>w?.isHole&&w.for===m.identifier).forEach(w=>{if(w){let v=d[w.identifier],b=new oe.Path;b.curves=v.curves,g.holes.push(b)}}),f.push(g)}}),f}};var xm,lc=new Promise(o=>{xm=o}),gm=!1;async function vm(){if(gm)return;let o=await import("./opentype.js");xm(o),gm=!0}var vi=class{async load(e,A,t=()=>{}){let{load:r}=await lc;r(e,(n,i)=>{n||!i?t(n??"Something went wrong"):A(i)})}async parse(e){let{parse:A,Bidi:t}=await lc;try{let r=A(e),n=new t,i=a=>r.charToGlyphIndex(a.char);return n.registerModifier("glyphIndex",null,i),n.applyFeatures(r,r.defaultRenderOptions.features),{font:r,bidi:n}}catch(r){console.error(r)}}};async function bS(o){return await(await fetch(o)).arrayBuffer()}var wS=new vi;async function cc(o){let e,A,t=!1;if(o.url?(e=await bS(o.url),A=o.url,t=o.url.startsWith("/")):o.data&&(e=o.data.buffer),e){let r=await wS.parse(e);if(r)return{font:r.font,url:A,intercepted:t,arr:e,bidi:r.bidi}}}var rn=require("three");function SS(o,e){return e.state.glyphIndex===o||e.state.fina===o||e.state.medi===o||e.state.init===o}var ha=class{constructor(e,A){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=e.isUserFont??!1,this._loadingPromise=cc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,this._bidi=t.bidi,A())})}update(e,A){this._isLoaded=!1,this._isUserFont=e.isUserFont??!1,this._loadingPromise=cc(e).then(t=>{t&&(this._arrayBuffer=t.arr,this._url=t.url,this.font=t.font,this._intercepted=t.intercepted,this._isLoaded=!0,this._bidi=t.bidi,A())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(e,A,t){if(!this._bidi)return[];let r=this._bidi;r.getTextGlyphs(A);let n=r.tokenizer.tokens,i=[],a=0,l=t.length===n.length;for(let u=0;u<t.length;u++){let s=t[u].index,c=String.fromCharCode(t[u].unicode),d=n[a];if(SS(s,d)||l)i.push({char:c,index:s,replacements:[d.state.glyphIndex],replacementChars:[d.char]}),a++;else{let p=d.char,f="",m=[d.state.glyphIndex],h=[],g=!1;for(;!g;)a++,f=A.charAt(a),p+=f,m.push(e.charToGlyphIndex(f)),h=e.stringToGlyphs(p),h.length===1&&h[0].index===s&&(g=!0),a>A.length&&(g=!0);i.push({char:c,index:s,replacements:m,replacementChars:Array.from(p)}),a++}}return i}generateShapes(e,A){if(!this._isLoaded)return;let t=this.font,r=A.fontSize/this.unitsPerEm,n=A.fontSize*A.lineHeight,i=e.map(x=>this.getTextWidth(x,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(x=>[]),m=e.map(x=>[]),h;for(let x=0;x<e.length;x++){let w=e[x],v={features:{liga:!0}},b=[];try{b=t.stringToGlyphs(w,v)}catch(S){console.warn(S)}c=this.getLineInitialOffsetX(i[x],a,A.horizontalAlign,w,l);let N=[];try{N=this.reverseLigaturesTable(t,w,b)}catch(S){console.warn(S)}s=this.computeSpaceWidthForLine(e,x,A);for(let S=0;S<b.length;S++){let y=b[S],P=y.index===0?`
1336
+ `:y.unicode?String.fromCharCode(y.unicode):void 0,O=N[S],C=0,T=0;S===0&&A.horizontalAlign===2&&y.leftSideBearing!==void 0&&(T=-y.leftSideBearing*r),h&&(C=t.getKerningValue(y,h)*r),c+=T+C;let L=0;if(P===`
1337
+ `)L=u;else if(P===" ")L=s;else{let B=this.createPath(y,r,c,d,A);B&&(L=B.offsetX-(C+T),p.push(B.path))}if(O.replacements.length===1)m[x].push([c,d]),f[x].push(L);else{let B=O.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[x].push([eA,d]),f[x].push(U),eA+=U}}c+=L,h=y}d-=n}let g=[];for(let x=0,w=p.length;x<w;x++)g.push(...p[x].toShapes());return{shapes:g,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 ma,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=TS(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 TS(o){if(o.length){let e=o[0];if(e instanceof rn.LineCurve)return e.v1;if(e instanceof rn.CubicBezierCurve||e instanceof rn.QuadraticBezierCurve)return e.v0}}var uc=class{constructor(){this.objects=new Map;this.unreachable=new Set}getCached(e){return this.objects.get(e)}get size(){return this.objects.size}get(e,A){let t=this.objects.get(e);return t===void 0&&(t=this.createObject(e,A),this.objects.set(e,t)),t}startGc(){this.unreachable=new Set(this.objects.keys())}markAsReachable(e,A){let t=this.objects.get(e);A===t?this.unreachable.delete(e):wp&&console.warn("Reachable but deleted",e)}endGc(){this.unreachable.forEach(e=>{this.disposeObject(this.objects.get(e)),this.objects.delete(e)}),this.unreachable.clear()}dispose(){this.objects.forEach(e=>{this.disposeObject(e)}),this.objects.clear()}},bi=class extends uc{constructor(A){super();this.flatShading=A}disposeObject(A){A.dispose()}createObject(A,t){let r=Wo(A,t,this.flatShading);return r.computeBoundingSphere(),r}};var bm={find(o){},markNeedsUpdateRendererDirty:function(){},markGeometryCacheDirty:function(){},addPendingExpandCloner:function(o){}};var qr=class{constructor(e,A={}){this.geometryCache=new bi(!0);this.geometryCache2=new bi(!1);this.thisContext={scene:bm,shared:this};this.deletedMaterial=new Wr(Ue.defaultTwoLayerData("phong"),this.thisContext);this.deletedImage=new $e(zs.emptyImage);this.deletedVideo=new $e(ro.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 Wr(t,this.thisContext));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 en(e,this.thisContext)}getMaterials(){return this.materials}addImage(e,A){return this.images[e]?(this.images[e].updateSrc(A.data),!0):(this.images[e]=new $e(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 Hr(e,this.onImageLoad)}addVideo(e,A){return this.videos[e]?(this.videos[e].updateSrc(A.data),!0):(this.videos[e]=new $e(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 Hr(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 wr(A.r,A.g,A.b,A.a):this.colors[e]=new wr(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 te(0,0,0,0))}else return"a"in e?new te(e.r,e.g,e.b,e.a):new te(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 tn)return A;{let t=new tn({src:A});return this.audios[e]=t,t}}deleteAudio(e){this.audios[e]&&delete this.audios[e]}addFont(e,A){this.fonts[e]=new ha(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 tn&&A.dispose()}),this.audios={},this.geometryCache.dispose(),this.geometryCache2.dispose()}},wm=new qr(Vs.emptyData());var mt=class extends de{updateByPatchedOp(A,t,r){if(super.updateByPatchedOp(A,t,r),Ec(A.path,["materials"])!==null&&A.type===0&&Array.isArray(this.material))for(let[n,i]of Object.entries(A.props)){let a=r.shared.material(i);this.material[Number(n)]=a}else if(Ar(A.path,["material"])&&this.material instanceof He)"material"in t&&typeof t.material!="string"&&this.material.updateByOp(he.drop(A,1),t.material,r);else if(Ar(A.path,["materials","*"])&&Array.isArray(this.material)){let n=A.path[1];if("materials"in t&&n<this.material.length){let i=t.materials[n];typeof i!="string"&&this.material[n].updateByOp(he.drop(A,2),i,r)}}}updateState(A,t){super.updateState(A,t),A.castShadow!==void 0&&(this.castShadow=A.castShadow),A.receiveShadow!==void 0&&(this.receiveShadow=A.receiveShadow);let r=this.dataPatched;if(A.geometry?.type!=="NonParametricGeometry"&&"material"in A&&A.material!==void 0&&(this.disposeMaterial(),this.material=t.shared.material(A.material).getFlavor(r.flatShading,r.side,r.wireframe),t.scene?.markNeedsUpdateRendererDirty()),A.geometry?.type==="NonParametricGeometry"&&("materials"in A&&A.materials!==void 0?(this.disposeMaterial(),this.material=A.materials.map(n=>t.shared.material(n).getFlavor(r.flatShading,r.side,r.wireframe)),t.scene?.markNeedsUpdateRendererDirty()):"material"in A&&A.material!==void 0&&(this.disposeMaterial(),this.material=[t.shared.material(A.material).getFlavor(r.flatShading,r.side,r.wireframe)],t.scene?.markNeedsUpdateRendererDirty())),A.flatShading!==void 0||A.wireframe!==void 0||A.side!==void 0)if(Array.isArray(this.material))for(let n=0;n<this.material.length;n++)this.material[n]=this.material[n].getFlavor(r.flatShading,r.side,r.wireframe);else this.material=this.material.getFlavor(r.flatShading,r.side,r.wireframe)}disposeMaterial(){this.material&&Sp(this.material).forEach(A=>{A instanceof Wr||A.dispose()})}dispose(){this.disposeMaterial(),super.dispose()}};var Sm=require("three");var At=class extends mt{constructor(A,t,r){super(A,t);this.data=t;this.localGeometry=void 0}chooseGeoemtryCache(A){return A.geometryCache}markGeometryAsReachable(A){this.geometryCreateDeleyed instanceof Sm.BufferGeometry&&this.chooseGeoemtryCache(A).markAsReachable(this.dataPatched.geometry,this.geometryCreateDeleyed)}get geometry(){if(this.localGeometry!==void 0)return this.localGeometry;if(this.geometryCreateDeleyed instanceof qr){let A=this.geometryCreateDeleyed,t=this.chooseGeoemtryCache(A);this.geometryCreateDeleyed=t.get(this.dataPatched.geometry,A)}return this.geometryCreateDeleyed}set geometry(A){this.localGeometry=A}get is2DAndNoDepth(){let A=this.dataPatched.geometry;return Mn.is2DParametricMesh(A.type)&&A.depth===0}get is2DType(){return Mn.is2DParametricMesh(this.geometry.userData.type)}updateByPatchedOp(A,t,r){super.updateByPatchedOp(A,t,r),Ar(A.path,["geometry"])&&this.updateByPatchedOpGeometry(he.drop(A,1),t.geometry,r)}removeInteractionGeometry(){this.localGeometry?.dispose(),this.localGeometry=void 0}updateGeometryInteractions(A,t){this.invalidateDownstreamBooleanData();let r={...this.data.geometry,...A};this.localGeometry?.dispose(),this.localGeometry=Wo(r,t,this.data.flatShading)}createGeometryDelayed(A){this.geometryCreateDeleyed=A.shared;for(let t of this.attachedSurfaceCloners)t.update()}updateByPatchedOpGeometry(A,t,r){r.scene?.markGeometryCacheDirty(),this.createGeometryDelayed(r),this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateGeometryOnStateUpdate(A,t){this.createGeometryDelayed(t)}updateState(A,t){A.geometry!==void 0&&this.updateGeometryOnStateUpdate(A.geometry,t),super.updateState(A,t),Array.isArray(this.material)&&this.geometry.groups.length===0&&this.geometry.addGroup(0,Math.max(this.geometry.getIndex()?.count??0,this.geometry.getAttribute("position").count),0)}updateEntityBoxSize(A,t){let r=this.geometry.userData.parameters;this.is2DType?A.set(0,0,r.depth*.5):A.setScalar(0),t.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}};function OS(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 We.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 We.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 We.Float32BufferAttribute(r,3))}function NS(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 We.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 We.Float32BufferAttribute(A,3))}function on(o){if(Array.isArray(o.material)){for(let e of o.material)if(e.getLayersOfType("outline").length===0)return}else if(!(o.material instanceof He)||o.material.getLayersOfType("outline").length===0)return;o instanceof At&&o.is2DAndNoDepth?NS(o):OS(o)}function nn(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=[We.MathUtils.seededRandom(t),We.MathUtils.seededRandom(t+1e4),We.MathUtils.seededRandom(t+2e4)];for(let n=0;n<e.length;n++)A[n]=r[n%3];o.geometry.setAttribute("randomColor",new We.BufferAttribute(A,3))}var PS;Ho.then(o=>{PS=o});var CS=new Ne.Matrix4,IS=new Ne.Matrix4,LS=new Ne.Matrix4,ht=new Ne.Box3,Tr=new Ne.Vector3,MS=new Ne.Matrix4,BS=new Ne.Matrix4;var Qr=class extends At{constructor(A,t,r){super(A,t,r);this.data=t;this.hiddenMatrixOld=new Ne.Matrix4;this.smoothShading=!0;this.matrixWorldRigid=new Ne.Matrix4;this.skipReactionUpdate=!1}chooseGeoemtryCache(A){return this.dataPatched.flatShading?A.geometryCache:A.geometryCache2}get subdivPointerNew(){return this.localGeometry!==void 0?this.subdivPointer:this.geometry.subdivPointer}get originalGeometryNew(){return this.localGeometry!==void 0?this.originalGeometry:this.geometry.originalGeometry}get phongAngle(){return this.data.geometry.phongAngle??45}updateEntityBoxSize(A,t){let r=this.geometry.userData.parameters;A.copy(this.originalGeometryNew.boundingSphere.center),t.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}createGeometryByControls(A){if(this.skipReactionUpdate===!0)return;let t=this.localGeometry?.uuid,{originalGeometry:r,subdividedGeometry:n,subdivPointer:i}=se.build(A,this.subdivPointer,this.smoothShading,this.shearScale);this.subdivPointer=i,r!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=r),n!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=n??void 0),this.localGeometry=this.subdividedGeometry??this.originalGeometry,on(this),nn(this),this.calcBoundingBox(),t&&(this.localGeometry.uuid=t)}updateState(A,t){if(super.updateState(A,t),A.flatShading!==void 0){let r=this.material;this.material=r.getFlavor(!1,r.side,r.wireframe),this.smoothShading=!A.flatShading,this.createGeometryDelayed(t)}}updateMesh(A=!1){se.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,A?this.shearScaleInv:void 0),this.subdividedGeometry&&se.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,A?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=se.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=se.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.localGeometry=this.subdividedGeometry??this.originalGeometry}raycast(A,t){let r=this.localGeometry;this.localGeometry=this.originalGeometryNew,de.prototype.raycast.call(this,A,t),this.localGeometry=r}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,Tm.SVD)(t),a=CS.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=IS.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=LS.copy(l).transpose();this.shearScale=MS.makeScale(i[0],i[1],i[2]).multiply(u).premultiply(l),this.shearScaleInv=BS.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 Ne.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=A.boundingSphere));let t=A.attributes.position,r=A.boundingSphere.center;ht.setFromBufferAttribute(t),ht.getCenter(r),A.boundingSphere.radius=r.distanceTo(ht.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ht.getSize(Tr);let n={width:Tr.x,height:Tr.y,depth:Tr.z};return this.geometry.userData.parameters=n,n}updateBoundingBox(A){let t=this.originalGeometry;ht.min.set(A[0],A[2],A[4]),ht.max.set(A[1],A[3],A[5]),this.shearScaleInv&&(ht.min.applyMatrix4(this.shearScaleInv),ht.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new Ne.Sphere);let r=t.boundingSphere.center;ht.getCenter(r),t.boundingSphere.radius=r.distanceTo(ht.max),isNaN(t.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ht.getSize(Tr);let n={width:Tr.x,height:Tr.y,depth:Tr.z};return this.geometry.userData.parameters=n,n}freeSubdivPointer(){this.subdivPointer&&(se.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0),this.localGeometry=void 0,this.originalGeometry?.dispose(),this.subdividedGeometry?.dispose()}dispose(){super.dispose(),this.freeSubdivPointer()}updateByPatchedOpGeometry(A,t,r){super.updateByPatchedOpGeometry(A,t,r),this.localGeometry&&this.createGeometryByControls(t)}};var Dt=require("three"),Om=-1,ES=1,Nm={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Pm={polygon_center:0,edge:1,vertex:2},wi=(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-Om)*(A-t)/(ES-Om)+t};function Cm(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 DS=new Dt.Vector3,ya=new Dt.Vector3,GS=new Dt.Vector3,RS=new Dt.Vector3;function sn(o,e){let A=GS.fromArray(o),t=RS.fromArray(e);ya.copy(t).sub(A);let r=ya.length();return ya.normalize().multiplyScalar(r*.5),DS.copy(A).add(ya).toArray()}var et=new Dt.Triangle,ga=new Dt.Vector3,xa=new Dt.Vector3,Yr=new Dt.Vector3;function Im(o){let e=[];for(let A=0;A<=o.index.count;A++)if(ga.fromArray(o.index.array,A*3),et.setFromAttributeAndIndices(o.attributes.position,ga.x,ga.y,ga.z),et.getNormal(xa),et.getMidpoint(Yr),!(isNaN(Yr.x)||isNaN(Yr.y)||isNaN(Yr.z))){let{a:t,b:r,c:n}=et,i=t.toArray(),a=r.toArray(),l=n.toArray(),u=t.distanceTo(r),s=r.distanceTo(n),c=n.distanceTo(t),d=sn(i,a),p=sn(a,l),f=sn(l,i),m=[u,s,c],h=Math.max(...m),g=m.filter(v=>Math.round(v)===Math.round(h)).length>1,x=[],w=et.getMidpoint(Yr).toArray();h===u&&!g&&(x=[p,f,f],w=d),h===s&&!g&&(x=[d,f,f],w=p),h===c&&!g&&(x=[d,p,p],w=f),g&&(x=[d,p,f]),e.push({vertices:[i,a,l],faceCenters:x,midpoint:w,norm:et.getNormal(xa).toArray()})}return e}function Lm(o){let e=[],{position:A}=o.attributes;for(let t=0;t<A.count;t++){et.setFromAttributeAndIndices(A,t*3,t*3+1,t*3+2),et.getNormal(xa),et.getMidpoint(Yr);let r=et.a.toArray(),n=et.b.toArray(),i=et.c.toArray();e.push({vertices:[r,n,i],faceCenters:[sn(r,n),sn(n,i),sn(i,r)],midpoint:Yr.toArray(),norm:xa.toArray()})}return e}var VS=4,FS=.5,dc=o=>.5*(1-Math.cos(o*Math.PI)),pc=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 g=0;g<4095+1;g++)this.perlin[g]=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 g=0;g<VS;g++){let x=r+(n<<4)+(i<<8);s=dc(a),c=dc(l),f=this.perlin[x&4095],f+=s*(this.perlin[x+1&4095]-f),m=this.perlin[x+16&4095],m+=s*(this.perlin[x+16+1&4095]-m),f+=c*(m-f),x+=256,m=this.perlin[x&4095],m+=s*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=s*(this.perlin[x+16+1&4095]-h),m+=c*(h-m),f+=dc(u)*(m-f),d+=f*p,p*=FS,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()}},Mm=pc;var Pe=1e-4,Gt,Dm,Gm,Rm,Bm=new IA.Vector3,Em=new IA.Vector3;Ho.then(o=>{Gt=o,Dm=[Gt.get_face_center,Gt.get_edge_midpoint,Gt.get_vertex_position],Gm=[Gt.get_face_normal,Gt.get_edge_normal,Gt.get_vertex_normal],Rm=[Gt.face_count,Gt.edge_count,Gt.vertex_count]});var jS=new IA.Matrix4,zS=new IA.Matrix4,Or=new IA.Vector3,Xr=new IA.Vector3,Si=new IA.Vector3,fc=new IA.Vector3,kS=new IA.Vector3,US=new IA.Vector3;var Zt=new Mm,ln=class extends Lo(IA.Object3D){constructor(A,t){super();this.parameters=t;this.objectForSample=void 0;this.object=A}resetOnMove(){this.removeFromParent(),this.parent=null}expandClones(A){if(this.parent===null)this.updateState(this.parameters,A);else for(let t of this.children)t instanceof Qt&&t.expand()}invalidateTransform(A){this.matrixWorldNeedsUpdate=!0,this.traverse(t=>{t instanceof Qt&&t.object===A&&(t.matrixWorldNeedsUpdate=!0)})}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}}_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.children;if(r.length===t)return;if(r.length<t)for(let n=0,i=t-r.length;n<i;++n){let a=new Qt(this.object);a.expand(),this.add(a)}else for(let n=0,i=r.length-t;n<i;++n)this.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 Qt(this.object);i.expand(),this.add(i)}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*IA.MathUtils.DEG2RAD,n=t.end*IA.MathUtils.DEG2RAD,i=r-n,a=new IA.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),l;switch(t.axis){case"z":l=new IA.Vector3(0,0,1);break;case"y":l=new IA.Vector3(0,1,0);break;default:case"x":l=new IA.Vector3(1,0,0);break}let u=A.randomnessObject,s=u.noiseType==="perlin";Zt.noiseSeed(u.seed);let c=ks((0,an.default)(u.seed)),d=wi(u.strength,this.parameters.randomness);for(let[p,f]of this.children.entries()){let m=p*(u.freqScale/10)+u.movement,h=s?Zt.noise(m):c(m,m);f.scale.x=t.scale[0]+d(p,mA(h,u.scale[0]))||Pe,f.scale.y=t.scale[1]+d(p,mA(h,u.scale[1]))||Pe,f.scale.z=t.scale[2]+d(p,mA(h,u.scale[2]))||Pe,f.position.setScalar(0);let g=i/A.count*p-r;switch(t.axis){case"x":f.rotation.set(0,g,0);break;case"y":f.rotation.set(0,0,g);break;case"z":f.rotation.set(g,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 x=d(p,mA(h,u.rotation[0])),w=d(p,mA(h,u.rotation[1])),v=d(p,mA(h,u.rotation[2]));t.alignment===!0?(f.rotation.x+=a.x+x,f.rotation.y+=a.y+w,f.rotation.z+=a.z+v):f.rotation.set(a.x+x,a.y+w,a.z+v)}}_updateLinear(A){if(A.type!=="linear")throw new Error;let t=A.linear,r=new IA.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Zt.noiseSeed(n.seed);let a=ks((0,an.default)(n.seed)),l=wi(n.strength,this.parameters.randomness);for(let[u,s]of this.children.entries()){let c=u*(n.freqScale/10)+n.movement,d=i?Zt.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]))||Pe,s.scale.y=1+(t.scale[1]-1)*u+l(u,mA(d,n.scale[1]))||Pe,s.scale.z=1+(t.scale[2]-1)*u+l(u,mA(d,n.scale[2]))||Pe,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=wi(n.strength,this.parameters.randomness),a=n.noiseType==="perlin";Zt.noiseSeed(n.seed);let l=Gp((0,an.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 IA.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?Zt.noise(...f):l(...f),h=this.children[t++];h.scale.x=1+i(t,mA(m,n.scale[0]))||Pe,h.scale.y=1+i(t,mA(m,n.scale[1]))||Pe,h.scale.z=1+i(t,mA(m,n.scale[2]))||Pe;let g=i(t,mA(m,n.rotation[0])),x=i(t,mA(m,n.rotation[1])),w=i(t,mA(m,n.rotation[2]));h.rotation.set(g,x,w),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?Zt.noise(...d):l(...d),f=this.children[t++];f.scale.x=1+i(t,mA(p,n.scale[0]))||Pe,f.scale.y=1+i(t,mA(p,n.scale[1]))||Pe,f.scale.z=1+i(t,mA(p,n.scale[2]))||Pe;let m=i(t,mA(p,n.rotation[0])),h=i(t,mA(p,n.rotation[1])),g=i(t,mA(p,n.rotation[2]));f.rotation.set(m,h,g),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 IA.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),n=A.randomnessObject,i=n.noiseType==="perlin";Zt.noiseSeed(n.seed);let a=ks((0,an.default)(n.seed)),l=wi(n.strength,this.parameters.randomness);if(!t.object){for(let[,g]of this.children.entries())g.position.set(0,0,0),g.scale.setScalar(1),g.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let u=this.getSubdivData(),s=[],c=g=>{let x=g.length,w=g.map(N=>N[0]).reduce((N,S)=>N+S,0),v=g.map(N=>N[1]).reduce((N,S)=>N+S,0),b=g.map(N=>N[2]).reduce((N,S)=>N+S,0);return[w/x,v/x,b/x]},d=g=>Math.round(g*1e6)/1e6;u.forEach(g=>{let x=u.filter(w=>d(g.pos[0])===d(w.pos[0])&&d(g.pos[1])===d(w.pos[1])&&d(g.pos[2])===d(w.pos[2]));x.length>1?s.push({pos:g.pos,norm:c(x.map(w=>w.norm))}):s.push(g)});let p=Cm(s);if(u.length>0){let g=Math.round(p.length*t.count/100);this._updateCount(g)}this.objectForSample.updateMatrixWorld();let f=new Us(this.objectForSample).build(),m=Nm[t.axis],h=this.children;f.setRandomGenerator((0,an.default)(this.object.uuid+t.seed));for(let[g,x]of h.entries()){let w=g*(n.freqScale/10)+n.movement,v=i?Zt.noise(w):a(w,w),b=l(g,mA(v,n.rotation[0])),N=l(g,mA(v,n.rotation[1])),S=l(g,mA(v,n.rotation[2]));t.spreadType==="random"?f.sample(Si,fc):(p.length&&(Si.fromArray(p[g].pos),fc.fromArray(p[g].norm)),this.objectForSample instanceof Qr&&Si.applyMatrix4(jS.copy(this.objectForSample.matrixWorld).invert())),Si.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(Si),Or.fromArray(m);let y=t.align==="normal"?fc:this.object.getWorldDirection(US),P=Xr.fromArray(t.position);Xr.x+=Xr.x+l(g,mA(v,n.position[0])),Xr.y+=Xr.y+l(g,mA(v,n.position[1])),Xr.z+=Xr.z+l(g,mA(v,n.position[2]));let O=Math.acos(y.dot(Or)),C=kS.crossVectors(Or,y).normalize(),T=zS.makeRotationAxis(C,O),L=y.clone().cross(this.object.up).normalize(),B=L.clone().cross(y).normalize(),k=new IA.Matrix4().makeBasis(L,y,B),X=new IA.Vector3(Or.y,Or.z,Or.x).normalize(),eA=X.clone().cross(Or).normalize(),nA=new IA.Matrix4().makeBasis(X,Or,eA).invert(),U=new IA.Matrix4().multiplyMatrices(k,nA);x.rotation.setFromRotationMatrix(U),P.applyMatrix4(T),x.position.add(P),x.rotation.x=x.rotation.x+r.x+b,x.rotation.y=x.rotation.y+r.y+N,x.rotation.z=x.rotation.z+r.z+S,x.scale.setScalar(1),x.scale.x=x.scale.x+t.scale[0]+l(g,mA(v,n.scale[0]))||Pe,x.scale.y=x.scale.y+t.scale[1]+l(g,mA(v,n.scale[1]))||Pe,x.scale.z=x.scale.z+t.scale[2]+l(g,mA(v,n.scale[2]))||Pe,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}getSubdivData(){if(!this.objectForSample)return[];let A=this.parameters.toObject.spreadType;if(A==="random")return[];if(this.objectForSample instanceof Qr){let t=this.objectForSample,r=Pm[A],n=Rm[r],i=Dm[r],a=Gm[r],l=[],u=n(t.subdivPointerNew);for(let s=0;s<=u-1;s++){let c=i(t.subdivPointerNew,s),d=a(t.subdivPointerNew,s);Bm.fromArray(c).applyMatrix4(t.matrixWorld),Em.fromArray(d),l.push({pos:Bm.toArray(),norm:Em.toArray()})}return l}else return(this.objectForSample.geometry.index?Im(this.objectForSample.geometry):Lm(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()}updateState(A,t){if(this.parameters=Mr(A),this.parameters.type!=="toObject")(this.parent===null||this.parent!==this.object)&&(this.removeFromParent(),this.object.parent?.add(this),this.matrix=this.object.matrix,this.hiddenMatrix=this.object.hiddenMatrix,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1);else if(this.parent===null||this.parent.uuid!==this.parameters.toObject.object){this.removeFromParent();let r=t.find(this.parameters.toObject.object);r instanceof de?this.objectForSample=r:this.objectForSample=void 0,this.matrix=new IA.Matrix4,this.hiddenMatrix=new IA.Matrix4,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1,r&&r.add(this)}this.update()}};var nt=require("three");var UA=require("three");var me=require("three");var Vm=require("three"),Rt=o=>{var e;return e=class extends o{},e.geometryHelper=new Vm.BoxGeometry(30,30,30),e};var ve=require("three"),va=new ve.Ray,mc=new ve.Sphere,Fm=new ve.Matrix4,Vt=(o,e,A,t,r=!1)=>{let n=e,i=o.matrixWorld;if(n.boundingSphere===null&&n.computeBoundingSphere(),mc.copy(n.boundingSphere),mc.applyMatrix4(i),A.ray.intersectsSphere(mc)===!1||(Fm.copy(i).invert(),va.copy(A.ray).applyMatrix4(Fm),n.boundingBox!==null&&va.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 g=Math.max(0,p.start),x=Math.min(c.count,p.start+p.count);for(f=g,m=x;f<m;f+=3)if(l=c.getX(f),u=c.getX(f+1),s=c.getX(f+2),a=h(o,A,va,d,l,u,s),a){a.faceIndex=Math.floor(f/3),t.push(a);return}}else{let x=n.attributes.position,w=new ve.Vector3,v=new ve.Vector3,b=new ve.Vector3,N=new ve.Vector3,S=2,P=1/((o.scale.x+o.scale.y+o.scale.z)/3),O=P*P,C=Math.max(0,p.start),T=Math.min(x.count,p.start+p.count);for(let L=C,B=T-1;L<B;L+=S){if(w.fromBufferAttribute(x,L),v.fromBufferAttribute(x,L+1),va.distanceSqToSegment(w,v,N,b)>O)continue;N.applyMatrix4(o.matrixWorld);let X=A.ray.origin.distanceTo(N);X<A.near||X>A.far||t.push({distance:X,point:b.clone().applyMatrix4(o.matrixWorld),object:o})}}function h(g,x,w,v,b,N,S){let y=new ve.Vector3,P=new ve.Vector3,O=new ve.Vector3,C=new ve.Vector3,T=new ve.Vector3;if(y.fromBufferAttribute(v,b),P.fromBufferAttribute(v,N),O.fromBufferAttribute(v,S),w.intersectTriangle(y,P,O,!1,C)===null)return null;T.copy(C),T.applyMatrix4(g.matrixWorld);let B=x.ray.origin.distanceTo(T);return B<x.near||B>x.far?null:{faceIndex:1,distance:B,point:T.clone(),object:g}}};var ba=new me.Vector3,tt=new me.Camera,hc=class extends me.LineSegments{constructor(A){let t=new me.BufferGeometry,r=new me.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],i=[],a={},l=new me.Color(15711266),u=new me.Color(15711266),s=new me.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 me.Float32BufferAttribute(n,3)),t.setAttribute("color",new me.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;tt.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;yt("n1",t,A,tt,-n,-i,a),yt("n2",t,A,tt,n,-i,a),yt("n3",t,A,tt,-n,i,a),yt("n4",t,A,tt,n,i,a);let l=a;yt("f1",t,A,tt,-n,-i,l),yt("f2",t,A,tt,n,-i,l),yt("f3",t,A,tt,-n,i,l),yt("f4",t,A,tt,n,i,l);let u=l,s=.5;yt("u1",t,A,tt,n*.7*s,i*1.1,u),yt("u2",t,A,tt,-n*.7*s,i*1.1,u),yt("u3",t,A,tt,0,i*(1.1+.9*s),u),A.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function yt(o,e,A,t,r,n,i){ba.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],ba.x,ba.y,ba.z)}}var wa=class extends Rt(hc){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){Vt(this.object,this.geometry,A,t,!0)}};var Ti=require("three"),Sa;(e=>e.is=A=>"objectHelper"in A)(Sa||(Sa={}));var Ft=(o,e)=>class extends o{constructor(){super(...arguments);this.objectHelper=new e(this);this.gizmos={}}get geometryHelper(){return e.geometryHelper}raycast(r,n){this.objectHelper.raycast(r,n)}showGizmos(){for(let r in this.gizmos){let n=this.gizmos[r];n instanceof Ti.Box3Helper&&(n.visible=!0)}}updateEntityBoxSize(r,n){this.objectHelper.visible&&this.geometryHelper instanceof Ti.BoxGeometry?(r.setScalar(0),n.set(this.geometryHelper.parameters.width,this.geometryHelper.parameters.height,this.geometryHelper.parameters.height).multiplyScalar(.5)):super.updateEntityBoxSize(r,n)}hideGizmos(){for(let r in this.gizmos){let n=this.gizmos[r];n instanceof Ti.Box3Helper&&(n.visible=!1)}}};var cn=new UA.Vector3,yc=new UA.Vector3,Jt=class extends Ft(Je(UA.Camera),wa){constructor(A="",t={...Po.defaultData,name:""}){super();this._cameraType="OrthographicCamera";this.targetOffset=Ir.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.super_Entity(A,t),this.matrixAutoUpdate=!0,this.width=window.innerWidth,this.height=window.innerHeight;let r=this.width,n=this.height;this.orthoCamera=new UA.OrthographicCamera(r*-.5,r*.5,n*.5,n*-.5,-5e4,1e4),this.perspCamera=new UA.PerspectiveCamera(45,r/n,50,1e4),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.objectHelper.update()}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}set fov(A){this.perspCamera.fov=A}get fov(){return this.perspCamera.fov}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(cn),this.targetOffset=cn.distanceTo(A)}getTarget(A=new UA.Vector3){return this.getWorldDirection(yc),this.getWorldPosition(cn),yc.multiplyScalar(this.targetOffset),A.copy(cn).add(yc),A}getDistanceToTarget(){let A=this.getTarget();return this.getWorldPosition(cn),cn.distanceTo(A)}updateUp(){let A=this.getWorldQuaternion(new UA.Quaternion),t=new UA.Vector3(0,0,1).applyQuaternion(A),r=new UA.Vector3().copy(UA.Object3D.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(A);let n=new UA.Vector3().copy(UA.Object3D.DefaultUp).projectOnPlane(t),i=new UA.Vector3().crossVectors(n,r).dot(t)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*i}updateTransformState(A){let t=super.updateTransformState(A);return A.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=A.isUpVectorFlipped),this.updateUp(),t}getViewFrontToObject(A){let t=A.getWorldPosition(new UA.Vector3),n=A.getWorldDirection(new UA.Vector3).multiplyScalar(this.targetOffset);return{position:t.clone().add(n),target:t}}getViewToObject(A){let t=A.getWorldPosition(new UA.Vector3),n=this.getWorldDirection(new UA.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 To(t,A)}updateCameraSubtype(A,t){let r=A==="perspective"?"PerspectiveCamera":"OrthographicCamera";t.zoom!==void 0&&this.setZoom(r,t.zoom),t.near!==void 0&&this.setNear(r,t.near),t.fov!==void 0&&r==="PerspectiveCamera"&&(this.fov=t.fov)}updateState(A){this.updateCameraState(A)}updateCameraState(A){this.updateState_Entity(A,{}),A.far!==void 0&&(this.far=A.far),A.orthographic!==void 0&&this.updateCameraSubtype("orthographic",A.orthographic),A.perspective!==void 0&&this.updateCameraSubtype("perspective",A.perspective),A.type!==void 0&&(this.cameraType=A.type),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()}updateByPatchedOp(A,t,r){super.updateByPatchedOp(A,t,r),A.path.length===1&&A.type===0&&this.updateCameraSubtype(A.path[0],A.props)}toState(A){return{...super.toState(A),...this.toCameraState(A),type:this.cameraType}}};var Oi=require("three");var jm=new Oi.Matrix4;var rt=class extends mt{constructor(A,t,r){super(A,t);this.data=t;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.geometry=new Oi.BufferGeometry;this.geometry.userData.parameters={width:0,height:0,depth:0}}get booleanOp(){return this.data.geometry.operation}get phongAngle(){return this.data.geometry.phongAngle??45}get isLOD(){return this.recomputeBoolean(),!1}updateByPatchedOp(A,t,r){super.updateByPatchedOp(A,t,r),A.path.length===1&&A.path[0]==="geometry"&&A.type===0&&A.props.operation!==void 0&&(this.freeBooleanPointer(),this.resetBBoxNeedsUpdate())}freeBooleanPointer(){super.freeBooleanPointer(),this.geometry.dispose()}recomputeBoolean(A,t=!0){if(this.booleanMeshSetAddress!==-1)return;for(let n=0;n<this.children.length;n++){let i=this.children[n];i instanceof rt&&i.recomputeBoolean(A===!0,t)}this.meshSetAddresses=[];for(let n=0;n<this.children.length;n++){let i=this.children[n];if(i instanceof de&&i.dataPatched.visible===!0&&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=ct.getMeshSet(i.geometry,A===!0,t)),i.booleanMeshSetAddress===-1)return;ct.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1}else i instanceof rt&&i.needsTransformForDownstream===!0?(ct.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.needsTransformForDownstream=!1):i.booleanWasTransformed===!0&&(jm.multiplyMatrices(i.matrix,i.booleanMatrixInvOld),ct.transformMeshSet(i.booleanMeshSetAddress,jm),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 ct.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let r=this.geometry;r.dispose(),this.geometry=new Oi.BufferGeometry,this.geometry.userData=r.userData,this.geometry.boundingSphere=r.boundingSphere;try{this.booleanMeshSetAddress=ct.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,on(this),nn(this)}dispose(){super.dispose(),this.geometry.dispose()}};var km=require("three");var zm;(e=>{function o(A){return Ze.is(A)&&A instanceof km.Light}e.is=o})(zm||(zm={}));var un=o=>class extends o{updateState_Light(A,t){this.updateState_Entity(A,t),A.color!==void 0&&(this.color=t.shared.color(A.color)),A.intensity!==void 0&&(this.intensity=A.intensity),A.depth!==void 0&&(this.shadow.camera.far=A.depth,this.shadow.needsUpdate=!0),A.shadows!==void 0&&(this.castShadow=A.shadows)}};var Ni=o=>o instanceof de,Pi=o=>o!==null&&o instanceof rt,Um=o=>o instanceof Jt;var Hm=o=>Sa.is(o);var qm=require("three");var Wm=require("three");var dn=class extends Rt(Wm.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){Vt(this.object,dn.geometryHelper,A,t)}update(){}};var Ci=class extends Ft(Je(qm.Group),dn){constructor(e,A){super(),this.super_Entity(e,A),this.objectHelper.update()}updateState(e,A){this.updateState_Entity(e,A)}};var Li=require("three");var Qm=require("three");var pn=class extends Rt(Qm.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){Vt(this.object,pn.geometryHelper,A,t)}};var Ym=require("three");var fn=class extends Rt(Ym.PointLightHelper){constructor(A,t=15,r=6710886){super(A,t,r);this.object=A;this.name=`PointLightHelper: ${A.uuid}`}raycast(A,t){Vt(this.object,fn.geometryHelper,A,t)}};var Oa=require("three");var Ta=class extends Rt(Oa.SpotLightHelper){constructor(A,t=6710886){super(A,t);this.object=A;this.name=`SpotLightHelper: ${A.uuid}`}raycast(A,t){Vt(this.object,Ta.geometryHelper,A,t)}update(){if(this.object!==void 0){let A=Ta._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)}}},Ii=Ta;Ii._vector=new Oa.Vector3;function WS(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 Na=class extends un(Ft(Je(Li.DirectionalLight),pn)){constructor(e,A,t){super(),this.super_Entity(e,A),this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.top=1250,n.bottom=-1250,n.right=1250,n.left=-1250,n.near=-1e4,n.far=2500;let i=new Li.CameraHelper(this.shadow.camera);i.visible=!1,this.gizmos.shadowmap=i}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this.gizmos){let A=this.gizmos[e];A instanceof Li.CameraHelper&&A.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}updateState(e,A){this.updateState_Light(e,A);let t=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;e.size!==void 0&&WS(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)),t&&this.update()}};var Ve=require("three");var Pa=class extends un(Ft(Je(Ve.PointLight),fn)){constructor(e,A,t){super(),this.super_Entity(e,A),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.fov=90,n.aspect=1,n.near=100,n.far=2500;let i=new Ve.Vector3(-n.far+this.position.x,-n.far+this.position.y,-n.far+this.position.z),a=new Ve.Vector3(n.far+this.position.x,n.far+this.position.y,n.far+this.position.z),l=new Ve.Box3(i,a),u=new Ve.Box3Helper(l,new Ve.Color(16755200));u.visible=!1,this.gizmos.shadowmap=u,this.update()}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this.gizmos))for(let e in this.gizmos){let A=this.gizmos[e];if(A instanceof Ve.Box3Helper){let t=this.shadow.camera,r=new Ve.Vector3(-t.far+this.position.x,-t.far+this.position.y,-t.far+this.position.z),n=new Ve.Vector3(t.far+this.position.x,t.far+this.position.y,t.far+this.position.z);A.box.set(r,n),A.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}updateState(e,A){this.updateState_Light(e,A),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))}};var ot=require("three");var Xm=new ot.Vector3,Km=new ot.Vector3,Zm=new ot.Quaternion,Ca=class extends un(Ft(Je(ot.SpotLight),Ii)){constructor(e,A,t){super(),this.super_Entity(e,A),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.fov=ot.MathUtils.RAD2DEG*2*this.angle,n.aspect=1,n.near=100,n.far=2500;let i=new ot.CameraHelper(this.shadow.camera);i.visible=!1,this.gizmos.shadowmap=i,this.update()}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this.gizmos){let A=this.gizmos[e];A instanceof ot.CameraHelper&&A.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Km.setFromMatrixPosition(this.matrixWorld),Zm.setFromRotationMatrix(this.matrixWorld),Xm.copy(this.up).applyQuaternion(Zm).negate().multiplyScalar(this.distance),this.target.position.copy(Km).add(Xm),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}updateState(e,A){this.updateState_Light(e,A),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))}};var Ia=class extends At{get forceComputeSize(){return!0}get shape(){return this.geometry.userData.shape}constructor(e,A,t){super(e,A,t)}updateEntityBoxSize(e,A){let t=this.geometry.getAttribute("position");t!==void 0?jl(t,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:t.count,e,A):super.updateEntityBoxSize(e,A)}};var mn=require("three");var Jm=new mn.Vector3,_m=new mn.Matrix4,$m=new mn.Ray;function Ah(o){let e=!1;return o.scene.objects.traverse((A,t)=>{t.type==="Mesh"&&t.geometry.type==="TextGeometry"&&(e=!0)}),e}var La=class extends At{constructor(A,t,r){super(A,t,r);this.data=t}get textGeometry(){return this.geometry}get charWidths(){return this.textGeometry.charWidths}get charCoords(){return this.textGeometry.charCoords}get wrappedText(){return this.textGeometry.wrappedText}get font(){return this.textGeometry.font}get initialOffsetY(){let A=this.dataPatched;return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,A.geometry.height,this.fontScale,A.geometry.verticalAlign)??0}get fontScale(){let A=this.dataPatched;return this.font?A.geometry.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){let A=this.dataPatched;return A.geometry.fontSize*A.geometry.lineHeight}raycast(A,t){let{matrixWorld:r}=this;if(_m.copy(r).invert(),$m.copy(A.ray).applyMatrix4(_m),$m.intersectBox(this.singleBBox,Jm)){let n=Jm.applyMatrix4(r),i=A.ray.origin.distanceTo(n);t.push({distance:i,point:n.clone(),object:this})}}};function qS(o,e,A){let t;return e.geometry.type==="TextGeometry"?new La(o,e,A):(e.geometry.type==="SubdivGeometry"?t=new Qr(o,e,A):e.geometry.type==="VectorGeometry"?t=new Ia(o,e,A):e.geometry.type==="BooleanGeometry"?t=new rt(o,e,A):t=new At(o,e,A),t)}function gc(o,e,A){return e.type==="Mesh"?qS(o,e,A):e.type==="Empty"?new Ci(o,e):e.type==="PointLight"?new Pa(o,e,A):e.type==="SpotLight"?new Ca(o,e,A):e.type==="DirectionalLight"?new Na(o,e,A):kt.is(e.type)?new Jt(o,e):(console.error(e),new Ci(o,e))}function QS(o,e,A){let t=gc(o.identity,e,A),r=o.children,n=o.parent,i=o.overrideData,a=o.uuid,l=o.stateSelection;o.dispose();for(let u of Object.keys(o))delete o[u];Object.setPrototypeOf(o,Object.getPrototypeOf(t));for(let u of Object.keys(t))o[u]=t[u];o.children=[...o.children,...r],o.parent=n,o.uuid=a,o.overrideData=i,o.updateState(o.data,A),l&&o.changeSelectedState(l,A),o.resetBBoxNeedsUpdate()}mr.changeEntityProptotype=QS;mr.Cloner=ln;function eh(o,e,A,t){o.data=A,o.updateByOp(e,A,t)}var hn=require("three");function th(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,nn(o),on(o)),t.length===0&&r.length===0&&o.layers.set(0),A}function rh(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 oh(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof mt)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)th(A,A.material[t])&&(e=!0);else th(A,A.material)&&(e=!0)}),e}function nh(o){let e=!1;return o.traverseEntity(A=>{if(A instanceof mt)if(Array.isArray(A.material))for(let t=0;t<A.material.length;t++)rh(A,A.material[t])&&(e=!0);else rh(A,A.material)&&(e=!0)}),e}var XS=new hn.Raycaster,KS=new hn.Matrix4,ZS=new hn.Ray;function ih(o,e,A){let t=o.cloner;if(t)for(let r of t.children){let n=KS.copy(r.matrixWorld).invert(),i=ZS.copy(e.ray).applyMatrix4(n),a=o.matrixWorld;i.applyMatrix4(a);let l=XS;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 JS=new nt.MeshStandardMaterial;JS.wireframe=!0;var sh=new nt.Vector3,xc=class extends nt.Scene{constructor(A,t){super();this.data=A;this.backupFog=new nt.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.geometryCacheChanged=!1;this.bgColor=new te(1,1,1,1);this.entityByUuid={};this.toExpandCloner=new Set;this.ambientLight=new nt.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.init(A,t),this.matrixAutoUpdate=!1}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=nh(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=oh(this),this.needsNormalDirty=!1),this._needsNormal}getWithSortKey(A){let t=this.find(A);if(t===void 0)return;let r=[],n=t;for(;n!==this;){let i=n;n=n.parent;let a=n.children.indexOf(i);r.splice(0,0,a)}return{entity:t,sortKey:r}}getAllSorted(A){let t=[];for(let r of A){let n=this.getWithSortKey(r.id);n!==void 0&&t.push(n)}return t.sort((r,n)=>Tp(r.sortKey,n.sortKey)),t.map(r=>r.entity)}find(A){if(A===""||A===void 0)return;let t=this.entityByUuid[A];return t===void 0?this.getObjectByProperty("uuid",A):t}addPendingExpandCloner(A){this.toExpandCloner.add(A)}markToExpandCloner(A){this.toExpandCloner.add(A),A.traverseEntityAncestors(t=>{this.toExpandCloner.add(t)})}doPendingExpandCloner(){this.toExpandCloner.forEach(A=>{A.expandCloner(this)}),this.toExpandCloner.clear()}updateTreeByOp(A,t){if(A.path.length===0&&A.type===7){let r=A.parent===null?this:this.find(A.parent);if(r===void 0)throw new Error("unexpected");let n=this.createChildObject(A.id,A.data,A.children,r,A.localIndex,t);n.updateVisible(),n.resetBBoxNeedsUpdate(),Ni(n)&&Pi(n.parent)&&(n.invalidateUpstreamBooleanData(),n.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markToExpandCloner(n)}else if(A.path.length===0&&A.type===8){let r=this.find(A.id);if(r===void 0)throw new Error("unexpected");this.markToExpandCloner(r),r.resetBBoxNeedsUpdate(),this.unregisterObject(r);let n=r.parent;r.parent.remove(r),Pi(r.parent)&&(r.parent.invalidateUpstreamBooleanData(),r.parent.invalidateDownstreamBooleanData().recomputeBoolean()),Ni(r)&&(r.freeBooleanPointer(),n instanceof rt&&n.invalidateDownstreamBooleanData().recomputeBoolean()),r.dispose()}else if(A.path.length===0&&A.type===9){let r=this.find(A.id);if(r===void 0)throw new Error("unexpected");let n=r.parent;r.cloner?.resetOnMove(),this.markToExpandCloner(r);let i=A.parent===null?this:this.find(A.parent);if(i===void 0)throw new Error("unexpected");i.add(r),this.markToExpandCloner(r),r.invalidateClonerTransform(r),r.updateVisible(),r.resetBBoxNeedsUpdate();let a=A.localIndex;i.children.splice(a,0,i.children.pop()),Ni(r)&&(r.invalidateUpstreamBooleanData(),Pi(r.parent)?r.parent.invalidateDownstreamBooleanData().recomputeBoolean():n instanceof rt&&n.invalidateDownstreamBooleanData().recomputeBoolean())}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}updateEntityByOp(A,t,r,n){let i=this.find(A);i&&eh(i,t,r,{scene:this,shared:n})}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(Oe(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 Jt&&this.switchActiveCamera(r)}this.traverseEntity(r=>{Pi(r)&&r.recomputeBoolean()}),this.doPendingExpandCloner()}clearScene(){for(let A of this.children)Yt(A)&&A.disposeRecursively();this.children.length=0}resetAfterClear(A,t){this.init(A,t)}createPersonalCamera(){let A=new Jt(xc.PERSONAL_CAMERA_ID,{...Po.defaultData,name:"Personal Camera"});return A.objectHelper.visible=!1,this.registerObjectCreatedInLegacy(A),A}raycast(A){let t=[],r=n=>{for(let i of n.children)Yt(i)&&!i.raycastLock&&i.visible&&((Ni(i)||Hm(i)&&this.enableHelpers&&i.objectHelper.visible)&&(A.intersectObject(i,!1,t),ih(i,A,t)),r(i))};return r(this),t}traverseEntity(A){for(let t of this.children)Yt(t)&&t.traverseEntity(A)}traverseVisibleEntity(A){for(let t of this.children)Yt(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=Oe(A.color,t),this.backupFog.near=A.near,this.backupFog.far=A.far}dispose(){this.clearScene()}updateAmbientLight(A,t){A.color!==void 0&&(this.ambientLight.color=Oe(A.color,t)),A.intensity!==void 0&&(this.ambientLight.intensity=A.intensity),A.groundColor!==void 0&&(this.ambientLight.groundColor=Oe(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){let n=0;for(let i of A)this.createChildObject(i.id,i.data,i.children,t,n,r),n+=1}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,a){let l={scene:this,shared:a},u=gc(A,t,l);return u&&(this.entityByUuid[A]=u,n.add(u),n.children.splice(i,0,n.children.pop()),this.createChildrenObjects(r,u,a),u.updateState(t,l),u.updateVisible()),u.cloner&&this.toExpandCloner.add(u),u}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 nt.Box3;return r.setFromPoints(t),r.getCenter(sh),sh}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 de)if(Array.isArray(t.material))for(let r=0;r<t.material.length;r++)t.material[r]instanceof He&&A(t.material[r]);else t.material instanceof He&&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})})}},Bi=xc;Bi.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var ah=require("three/examples/jsm/loaders/DRACOLoader.js");var Nr;function _S(){return Nr||(Nr=new ah.DRACOLoader,Nr.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Nr.decoderPending}async function $S(o){if(Nr){let e={attributeIDs:Nr.defaultAttributeIDs,attributeTypes:Nr.defaultAttributeTypes,useUniqueIDs:!1},A;try{A=await Nr.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 lh(o,e){let[A,t]=ka(rs.deserialize(new Uint8Array(o)));Mp(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 _S();for(let n of r){let i=await $S(ye(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}var A1=require("three"),e1=require("three/examples/jsm/utils/BufferGeometryUtils.js");function ch(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 Ei=require("three");function uh(o){let e=new Set;return o.traverse(A=>{if(A instanceof mt)if(WA(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(t1(A)){Object.assign(A,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Ei.Color,specularColor:new Ei.Color});let r=0;A.onBeforeCompile=(n,i)=>{t&&t(n,i),n.uniforms=Object.assign({},Ei.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 r1(A)||(A.onBeforeCompile=(r,n)=>{t&&t(r,n),A.transparent=!1})}),o}function t1(o){return o.getLayersOfType("transmission").length>0}function r1(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 dh(o){return o.traverse(e=>{if(e.type==="Camera"){let A=e;A.type=A.cameraType}}),o}function ph(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 fh=require("three/examples/jsm/utils/BufferGeometryUtils.js");function mh(o){let e=[];return o.traverse(A=>{A instanceof ln&&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&&ch(l),l}),i=(0,fh.mergeBufferGeometries)(A.parameters.hideBase?n:[t instanceof de?t.geometry:[],...n]);t instanceof de&&(t.geometry=i),A.removeFromParent(),t.setFromClonerState(null,{scene:o,shared:wm})}),o}function hh(o){return o.traverse(e=>{e.matrixAutoUpdate=!0}),o}function yh(o){Object.values(o.shared.materials).forEach(e=>{vc(e)}),o.scene.objects.traverse((e,A)=>{"material"in A?vc(A.material):"materials"in A&&A.materials.forEach(t=>{vc(t)})})}function vc(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 gh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Ma=class extends Ba.Loader{load(e,A,t,r=console.error){let n=new Ba.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),e.endsWith(".spline")?console.warn(gh+" The .spline files are only meant to be used by the Editor."):e.endsWith(".splinecode")||console.warn(gh),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 lh(e,yh);Ah(A)&&await vm();let t=new qr(A.shared);Object.values(t.getMaterials()).forEach(i=>Object.assign(i,{isAsset:!0}));let r=new Bi(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&&Um(i)&&Object.assign(i,{makeDefault:!0})}return r=mh(r),r=uh(r),r=dh(r),r=ph(r),r=hh(r),r}};